Jump to content

HighPrint

Globální moderátor
  • Příspěvků

    1335
  • Registrován

  • Aktivní

  • Vítězných dnů

    30

Everything posted by HighPrint

  1. status jenom aby se vyplnil sidebar HK avatarama

  2. určitě jde enum pInfo { pHeslo, pPenize, pVIP[128] } Ale ukládáš předpokládám jen Ano/Ne, tak stačí asi o velikosti 5
  3. řekl bych, že je to tím že pVIP nebude string
  4. HighPrint

    pomoc MySQL

    mysql_static je verze která je staticky nalinkovaná přímo s tou libkou, proto takovej work-around je si jenom stáhnout ten static a nic neřešit.
  5. HighPrint

    pomoc MySQL

    Proč loadíš dvakrát MySQL plugin? Zkus jen ten static
  6. Čeho přesně chceš docílit?
  7. Předdefinuješ si měsíce (new daysinMonth[12] = {31,28,31,...}; // vyplň si to sám), kolik dní v nich jsou. Zjistíš dnešní datum (dále jako d, m, y). Podmínka na zjištění přestupného roku jsem někde psal tak si to jen dovolím zkopírovat: if (y % 4 == 0 && ( y % 100 != 0 || y % 400 == 0 )) Teď je potřeba zajistit zacyklení a zjišťovat jestli nastavený čas (time) je vyšší než zbývající dny v měsíci (time > daysinMonth[m-1]-d). // m-1 kvůli indexaci od 0 Pokud ano, odečteš daysinMonth[m]-d od time a zvýšíš m Pokud ne, nastavíš den d jako time a ukončíš cyklus A takhle pokračuješ v cyklu dokud nějaký ten zbývající time existuje (resp. pokud je menší než zbývající počet dní v měsíci). BACHA na případ, kdy je m prosinec a převyšuje počet dní, tzn. zvýšit rok (y++), m nastavit na leden. Pak zabalit d, m, y a vrátit jako nové datum – tedy datum ukončení banu/VIP Zkus nad tím popřemýšlet, napsat vlastní kód, pokud se někde zasekneš, tak ti pomůžu, ale celý kód ti nenapíšu
  8. nejlépe zamezit nějakou podmínkou... new bool: loginDialog[MAX_PLAYERS]; OnPlayerConnect: loginDialog[playerid] = false; OnPlayerRequestClass: if(!loginDialog[playerid]){ ShowDialog... loginDialog[playerid] = true; }
  9. Dělá to na všech serverech? Jak moc namódovaný SA máš? Co zkusit čistou instalaci?
  10. HighPrint

    pomoc Premenná

    Defaultně jsou proměnné v pawnu inicializované na 0
  11. bank[playerid] += strval(inputtext); bank[playerid] -= strval(inputtext);
  12. HighPrint

    script New Drift Point Counter

    Já jsem nevěděl, že opisovat takový kód trvá 4-5 hodin
  13. HighPrint

    script [inc] ReturnDate

    Jo dobrá poznámka... ještě uveď příklad použití, aby lidi co nechtěli zkoumat kód věděli jak se to používá. @Tango aha, díky ty dvě hodiny jsem nechtěl zjišťovat, dobrá informace Na tohle bych se rád mrknul, jestli bys mi poslal ten timestamp do SZ
  14. HighPrint

    script [inc] ReturnDate

    Zajímavý koncept. Přiložíš ještě kód k benchmarku? Každopádně pár připomínek: 1) např rok 2100 rozhodně není přestupný, ale je dělitelný 4. (Sice se toho nedožije naše generace, ale bylo by fajn si ujasnit, co přesně ten přestupný rok je) A year is not a leap year if it's NOT divisible by 4, OR if it's divisible by 100 AND NOT divisible by 400. 2) while(py > 3) //Každé 4 roky přidá 1 den { rday++; py -= 4; } Tohle je basically matematická operace dělení, stejný output je rday = py / 4; 3) goto je opravdu prasárna, celý ten koloběh ifů se dá přepsat do cyklu 4) ty while těch dnů/hodin/minut/(sekund) se dá také přepsat do dělení (+ modulo) 5) Proč se odečítají 2h? 6) Jaký smysl má odečítat v první iteraci 366 dní? new py; if(ts > 31535999) // 365dní { /*...*/ py++; if(py == 1) { if(ts > 31622399) // 366dní { py = 0; ryear++; ts -= 31622400; } } } Jinak hezká práce
  15. Mám pocit, že chyba leží někde jinde. Jsi si jistý, že ti to začalo vypisovat když si testoval zbrojní průkaz? Pošli ještě kód ohledně střílení do terčů (jestli to máš implementované). Chyba ti hlásí, protože přijímáš až moc požadavků ze serveru (ack = acknowledgment signal/response). Takovej špinavej trik jak tohle obejít je zvednout ackslimit v server.cfg, ale asi bude lepší najít tu chybu
  16. HighPrint

    pomoc Spawn

    Tohle všechno budeš muset provádět v OnPlayerSpawn. OnPlayerDeath se triggne když hráč umře ale následně se zavolá OnPlayerSpawn. Takže spíš něco jako new bool:death[MAX_PLAYERS]; OnPlayerDeath: death[playerid] = true; OnPlayerSpawn: if(death[playerid]){ // delayspawn timer or whatsoever } else{ // obyc. spawn } delayspawn: death[playerid] = false; spawnplayer;
  17. Děkujeme za hodnotný příspěvek, je to přesně to co jsem navrhnul...
  18. if( minuta > 10 ) // tu začína ta uprava zkus si znova intepretovat slovy tuhle podmínku pokud je minuta větší než 10 Jinak to lze vyřešit i bez podmínky takto: format(string,sizeof(string),"%02d:%02d",hodina,minuta); // padding nulama
  19. Chtělo by to nějak označit vstupy, aby lidi věděli, že se vstupuje do budov enterem. Další věc co mě opravdu sere jsou nekonzistentní názvy příkazů (půlka z nich je v češtině a půlka v AJ). Nemluvě o tom, že některé jsou poměrně dlouhé a nikoho nebaví ty příkazy psát, takže buď to zkrátit nebo vymyslet lepší mechanismus (viz. /zmenitobleceni – alternativa: enter u pickupu? /skin? /vzhled?). Nebylo by na škodu nějaký úvodní tutoriál co se smí a co se nesmí v RP a případně základní info o GM. Nicméně teď nějaké ty chyby: https://prnt.sc/g40n56 1) to už tady někdo zmínil 2), 3), 4) chyba při výpisu 5) levitující objekty Každopádně už jsem to tu i zmínil, neresetují se proměnné. Přihlásil jsem se za Michaela_Scofielda a na podruhé mě to kicklo, protože jsem zapomněl heslo (pohoda, chápu). Přihlásil jsem se znovu a kicklo mě to už na poprvé.
  20. HighPrint

    pomoc Chyba

    Tester[i] = 1 ====> přiřazování Tester[i] == 1 =====> ověřování rovnosti
  21. Ah pravda, to mi nedošlo. Díky za upozornění
  22. Off-topic! Vyvarujte se offtopicu! Další zpráva reagující na předchozí zprávu bude vyhodnocena jako spam Já si dovolím trochu odbočit než bude "platit" toto upozornění: @Weed/DeNiSko: PM se snad nedá ani jinak udělat... tvůj argument "částečný kód z módu" je nevalidní k problému, řekl bych, že musíš specifikovat max. délku stringu v sscanfu. Jistý si ale nejsem
  23. Chápu teda že chceš aby si napsal nějaké slovo, dal enter a pak ti vypíše kolik znaků obsahuje to slovo?
×
×
  • Create New...