Jump to content

Search the Community

Showing results for tags 'warning'.

  • Search By Tags

    Oddělujte čárkami
  • Search By Author

Content Type


Fórum

  • Obecné
    • Všeobecné
    • Všechno možné
  • Programování
    • Poradna
    • Návody
    • Tvorba
    • Hledám programátora
  • Herní oblast
    • Poradna
    • Jak na to?
    • Herní kontext
    • Herní zážitky
    • Komunita
  • Grafika
    • Poradna
    • Návody
    • Tvorba
  • Ostatní
    • Hardware a software
    • Hledám/nabízím
    • Archiv
    • 3D Tisk

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


Web


Facebook


Jabber


Skype


Steam


Twitter


Github


Pastebin

Found 3 results

  1. Zdarec.. mam takovy problem nevim jak se zbavit tohohle warningu.. byl bych moc rad kdyby jste mi pomohli diky Warning: ​C:\Users\MegaTheVova\Desktop\Různé\server\Drift.pwn(2079) : warning 213: tag mismatch Prikaz: if(strcmp("/gotoon", cmdtext, true, 10) == 0) { if(GOTO[playerid] == false) { SendClientMessage(playerid, COLOR_RED, "{FFFFFF}[{3399FF}Aw{FFFFFF}]{3399FF}:{FFFFFF} You have enabled goto."); GOTO[playerid] = 1; } else { if(GOTO[playerid] == true) return SendClientMessage(playerid, COLOR_GREEN, "{FFFFFF}[{3399FF}Aw{FFFFFF}]{3399FF}:{FFFFFF} At the moment you have enabled goto."); return 1; } }
  2. Stack/heap size warning Niektorým z vás sa už stalo, že pri kompilácii ste uvideli správu podobnú tejto: Header size: 88 bytes Code size: 60 bytes Data size: 0 bytes Stack/heap size: 16384 bytes; estimated max. usage=4064 cells (16256 bytes) Total requirements: 16532 bytes Je to chyba vášho kódu, ale kompiler ju nedokáže sám nájsť. Tým, čo nevedia o čo sa jedná, vysvetlím čo je to za chybu, ako ju nájsť a opraviť. Text uvedený vyššie bol vygenerovaný pri kompilácii nasledujúceho kódu: main() { new pole[4059]; } Štruktúra AMX súboru Keď sa skompilovaný .amx súbor nahrá do pamäte (pri spustení servera), má nasledovnú štruktúru: +--------+ | prefix | <- metadáta o amx súbore, napr. adresy sekcií code a data, verzia kompilera, .. | ------ | | code | <- v tejto časti sa nachádza kód skriptu | ------ | | data | <- nemenné dáta, hlavne stringy | ------ | | stack | <- časť pamäte, do ktorej sa ukladajú lokálne premenné | ~~~~~~ | | heap | <- časť pamäte, do ktorej sa ukladajú globálne a static premenné +--------+ Prefix má najnižšiu adresu v RAM a heap je na konci programu - najvyššia adresa v RAM. Zásobník - stack V stacku sú uložené všetky lokálne premenné. Pri spustení servera preto stack začína prázdny. Medzi heap a stack je v tom momente rezervovaný priestor. Podľa výstupu kompilera (uvedený vyššie) je defaultná veľkosť celej dynamickej oblasti 16KB. Keďže veľkosť dát alokovaných na zásobníku sa nedá pri kompilácii predpovedať (lokálne premené vzniknú až počas behu programu), kompiler iba odhadne, že hrozí pretečenie zásobníka. Nedokáže povedať kedy ani kde. Avšak, ak už raz si myslí, že k nemu dôjde, tak mu treba veriť. V prípade, že nastane povestný stack overflow, tak dáta zo sekcie stack začnú prepisovať dáta zo sekcie heap (lokálne premenné zmenia chybne hodnoty globálnych premenných). V Pawn každá premenná zaberá 4 bajty. Testovací kód vyššie, kde pole má 4059 prvkov, zaberie 16276 bajtov. Na stack sa tiež ukladajú ďalšie hodnoty, o ktorých programátor nemá prehľad, adresa návratu z funkcie, atď. Tieto dokopy budú mať tých 16 KB. Navyše, je to len odhad kompilera, že sa niečo stane. new test0; /* zabera 4 bajty */ new test1[3]; /* zabera 12 bajtov */ Viac informácií nájdete na nete. Ako to opraviť Najrozumnejšie bude zoptimalizovať kód - odstrániť 256 bajtové polia, nepotrebné premenné a všetko bude fungovať. Sú gamemody rátajúc 100 000 riadkov, ktoré tento limit neprekračujú, prečo by mal váš skript prekračovať? Pragma dynamic V prípade, že už nemôžete optimalizovať viac, môžete manuálne zväčšiť dynamickú pamäť pre .amx súbor. Direktíva preprocesoru pragma dynamic určuje koľko dynamickej (stack/heap) pamäte bude skript používať. Nastavíte to jednoducho pomocou #pragma dynamic 17000 /* velkost dynamickej pamate v bajtoch */
  3. C:\Users\acer\Desktop\RGRP\gamemodes\xxx.pwn(19411) : warning 217: loose indentation C:\Users\acer\Desktop\RGRP\gamemodes\xxx.pwn(22338) : warning 213: tag mismatch C:\Users\acer\Desktop\RGRP\gamemodes\xxx.pwn(22727) : warning 217: loose indentation C:\Users\acer\Desktop\RGRP\gamemodes\xxx.pwn(22732) : warning 217: loose indentation C:\Users\acer\Desktop\RGRP\gamemodes\xxx.pwn(27082) : warning 217: loose indentation C:\Users\acer\Desktop\RGRP\gamemodes\xxx.pwn(27510) : warning 217: loose indentation C:\Users\acer\Desktop\RGRP\gamemodes\xxx.pwn(27515) : warning 217: loose indentation C:\Users\acer\Desktop\RGRP\gamemodes\xxx.pwn(28179) : warning 217: loose indentation C:\Users\acer\Desktop\RGRP\gamemodes\xxx.pwn(28245) : warning 217: loose indentation C:\Users\acer\Desktop\RGRP\gamemodes\xxx.pwn(28269) : warning 217: loose indentation C:\Users\acer\Desktop\RGRP\gamemodes\xxx.pwn(28421) : warning 217: loose indentation C:\Users\acer\Desktop\RGRP\gamemodes\xxx.pwn(28426) : warning 217: loose indentation C:\Users\acer\Desktop\RGRP\gamemodes\xxx.pwn(46832) : warning 217: loose indentation C:\Users\acer\Desktop\RGRP\gamemodes\xxx.pwn(58226) : warning 203: symbol is never used: "ret_memcpy" Pawn compiler 3.2.3664 Copyright © 1997-2006, ITB CompuPhase 14 Warnings. Vedel by mi s tým niekto pomôcť prosím? pragma tabsize 0 som dával, ale nič mi nepomáha. Ďakujem za všetky odpovede.
×
×
  • Create New...