Jump to content

Quiter

Uživatel
  • Příspěvků

    827
  • Registrován

  • Aktivní

  • Vítězných dnů

    32

Everything posted by Quiter

  1. Prvé 2 warningy znamenajú, že lokálna premenná "lightss" prekrýva inú premennú (tj. majú rovnaký názov) - treba zmeniť názov premennej všetky ostatné errory znamenajú, že daná funkcia/názov/definícia neexistuje (pawno ju nepozná) - väčšinou znamená že si dal zlý názov, niekedy že ti chýbajú novšie includy, alebo ti chýba includ úplne Dúfam že som ti pomohol, a ak nie, tak odporúčam stiahnúť iný mód (alebo vytvoriť vlastný, ale do toho sa ti asi nebude chcieť)
  2. Quiter

    pomoc sscanf

    Skús stiahnúť iný sscanf - možno je poškodeny. Prečo nepoužiješ plugin? Funguje príkaz normálne keď dáš preš sscanf?
  3. Vysvetlíš mi, akú logiku má vypnutie ochrany ktorá funguje (teda, predpokladám že funguje keď tam je). To je ako keby si doma nechal otvorené dvere len preto, aby si nemusel používať kľúč...
  4. Noooo, tak: 1) Chválim tvoj ultra HD 4K obrázok 2) Čo je specialní Infernus 3) Spawneš auto a prilepíš naň objekty... Nerozumiem v čom z týchto 2 vecí je u teba problém Trošku viac rozpíš v čom presne máš problém... Lebo z tvojho popisu ti viem poradiť akurát tak môj bod č.3
  5. Hmmm, no tak ma napadá použiť ten include čo ti poslal xpress... Prípadne, pokiaľ chceš aby ti na servery hrali češi a slováci, daj pred prihlásením overovaciu otázku typu: Aké je hlavné mesto čiech: a odpoveď daj Praha... málokto bude rozumieť v sk/cz jazyku a ešte menej bude vedieť správne napísať mesto A ešte to budeš mať ako IQ test pred vstupom na server
  6. Quiter

    script Warp System

    Ako už bolo spomenuté, ZCMD tam je zbytočne. Ďalej: #define COLOR_RED 0xFFFF0000 Taktiež nikde nevyužívaš. if (strcmp("/warpy", cmdtext, true, 10) == 0) Vieš čo znamená to číslo 10? Nie nevieš, naštuduj si... ShowPlayerDialog(playerid,1 1? Nabudúce použi iné číslo, väčšina ľudí už v GM nejaké tie dialógy má a väčšinou začínajú číslom 1. No a posledná vec, nedávaj sem scripty ktoré obsahujú 2 funkcie (dialogy a nastavenie pozície), ak by si spravil dynamický warp, malo by to akú takú hodnotu...
  7. A čo tak to sám realne vyskúšať? Tá dnešná mládež je neskutočne lenivá... BTW: treba čítať aj popís k tým funkciam... // Reading Directories functions new Dir:test = dopen("test"), // Open directory str[64], type; while(dread(test, str, type)) { // Read directory printf("%s: %s, type: %d", (type == TYPE_DIR)? ("dir"):("file"), str, type); } dclose(test); // Close directory Otvori priečinok "test" Prečíta všetky priečinky a súbory v priečinku "test" a postupne ich vypíše vo formáte DIR/FILE: názov, type: 0/1 // 0 a 1 len predpokladám, neviem presne aké číslo tam bude takže názov súboru/priečinka budeš mať v premennej STR a typ (či je to priečinok alebo súbor) budeš mať v TYPE Ďalej už len cez Y_INY funkcie zistíš v ktorom súbore sa nachádza najvyššia hodnota... Čo presne si na tom nechápal?
  8. <table> <?php $res = mysql_query("SELECT * FROM tabulka ORDER BY rozhodujuca_hodnota DESC LIMIT limit_vysledkov"); //$res - premenná do ktorej uložíme výsledok // mysql_query - príkaz na odoslanie SQL príkazu // SELECT * FROM tabulka - SQL príkaz na výber dát z tabuliek // * - dáta ktoré budu vybraté (* - všetky dáta), môžeš tam písať názvy stĺpcov (meno, level, exp atď) // WHERE level < '10' - podmienka (táto konkretne ak je na danom riadku level menší ako 10) // ORDER BY - zoraď podľa // rozhodujuca_hodnota - názov stĺpca podla ktorého budeš dáta triediť // DESC - vzostupne (od najväčšieho po najmenšie) ASC - zostupne (od najmenšieho po najväčšie) - funguje aj na abecedu // LIMIT limit_vysledkov - namiesto limit_vysledkov daj číslo koľko výsledkov to má nájsť, v prípade že toto nepoužiješ tak to zoradí úplne všetkých while($data = mysql_fetch_assoc($res)) { //$data - premenná na uloženie dát // mysql_fetch_assoc($res) - príkaz na konvertovanie výsledkov do premennej, $res - zdroj odkial sa výsledky konvertujú echo "<tr>\n"; echo "<td>\n"; echo $data["name"]; // echo - príkaz na vypís HTML kódu v PHP... $data["name"] - premenná v ktorej je uchovaná hodnota aktuálneho riadku v stĺpci "name" echo "</td>\n"; echo "<td>\n"; echo $data["level"]; echo "</td>\n"; echo "</tr>\n"; } ?> </table> Sorry, môj prvý post je zlý, dlho som s tým nerobil... Tu je opravený + vysvetlené všetko čo by si potreboval... HTML dúfam ovládaš
  9. Neviem presne či sme sa pochopili ale môžeš skúsiť toto: Toto je názorna ukážka v PHP/HTML. Neviem či to chceš do pawna alebo kam, ale princíp s MySQL je rovnaký, použi sql príkaz na zoradenie dát <table> <?php $res = mysql_query("SELECT * FROM tabulka ORDER BY rozhodujuca_hodnota DESC LIMIT limit_vysledkov"); $data = mysql_fetch_assoc($res); for(new i=0;i<mysql_num_rows($res);i++) { echo "<tr>\n"; echo "<td>\n"; echo $data[name]; echo "</td>\n"; echo "<td>\n"; echo $data[level]; echo "</td>\n"; echo "</tr>\n"; } ?> </table>
  10. Tak problém som dočasne vyriešil ukladaním textov do premennej o veľkosti 4096... Bohužial toto riešenie mi nejak nevyhovuje, nakoľko to zaberá príliš pamäte... Vedel by niekto o nejakom lepšom spôsobe?
  11. Quiter

    pomoc VGA

    How I fixed it; 1) Check for Windows Update. Tweak was still giving me the error after updating. 2) Open GeForce Experience. Run Express installation. Tweak was still giving me the error. 3) Restart Computer 4) Open GeForce Experience. Run Custom Installation. Make sure to check the "Clean Installation" box. GeForce Experience prompted a restart. As soon as I restarted Tweak opened as soon as Windows was loaded. Zdroj: https://linustechtips.com/main/topic/835951-load-venderdll-fail-install-vga-driver/ Skús, možno pomôže
  12. Čaute, Mám tu taký zapeklitý problém, lámem si s tým hlavu a neviem sa pohnúť ďalej... Problém spočíva v tom, že keď dám skompilovať svoj mód, zamrzne mi Pawno. Deje sa to len v prípade, že diaREG_SK je dlhší ako 73 znakov, pokiaľ je kratší, všetko funguje ako má. Taktiež keď použijem ShowPlayerDialog, všetko funguje (z toho usdzujem že je chyba niekde v SPD definícií) #define SPD(%0,%1,%2,%3); \ if(GetPlayerLang(%0) == 0) ShowPlayerDialog(%0,%1,%2,%3_HEAD_SK,%3_SK,%3_YES_SK,%3_NO_SK); \ if(GetPlayerLang(%0) == 1) ShowPlayerDialog(%0,%1,%2,%3_HEAD_SK,%3_SK,%3_YES_SK,%3_NO_SK); #define diaREG_HEAD_SK ""COL_DEF"** "COL_REG_HEAD" Registrácia "COL_DEF" **" #define diaREG_YES_SK ""COL_CMD_ERROR"Registrovať" #define diaREG_NO_SK ""COL_CMD_ERROR"Zrušiť" #define diaREG_SK "Vitaj v Ghost Town. Ghost Town je herný mód vyvíjaný týmom Reversion.\r\n Tento mód bla bla bla. Zadaj heslo:" // \r\n tam pôvodne nebolo, myslel som že presahuje dĺžku riadku ale robí to aj s tým SPD(playerid, D_REGISTER, DIALOG_STYLE_PASSWORD, diaREG); // pri takomto použití to zamrzne ShowPlayerDialog(playerid, D_REGISTER, DIALOG_STYLE_PASSWORD, diaREG_HEAD_SK, diaREG_SK, diaREG_YES_SK, diaREG_NO_SK); // pri takomto použití to funguje Nevedel by mi niekto poradiť čo s tým?
  13. http://wiki.sa-mp.com/wiki/TextDrawFont Aby to farebne blikalo, budeš potrebovať http://wiki.sa-mp.com/wiki/SetTimer http://wiki.sa-mp.com/wiki/TextDrawSetString Spustíš timer a zakaždým prepíšeš text spolu s farbami
  14. Fúha, lákava prezentácia... Čo je to za mód? (podla webu predpokladám RZE) Hodne povolaní a nových povolaní? Akých nových? A aké sú tie staré? Nový tuning aut? Akože nové komponenty alebo čo si mám pod tým predstaviť? Plnit ruzne ukoly od tamtoho a hentoho? K čomu? Aké úlohy? Čo za to dostanem? Úprimne, prezentácia úplne na ho*no a tom som ešte veľmi pekne povedal....
  15. No myslím že ani nie... 0.3.8 bolo zrušené (vývoj) a premenované na verziu 0.3 DL a nechce sa mi moc veriť že sa novšej verzie dočkáme skôr ako za pár rokov
  16. Wtf? Môže to byť *.pwn ale nie *.amx? To si jako chceš prepísať autora, alebo prečo nechceš amx? Btw, skúsil si google? http://forum.sa-mp.com/showthread.php?t=588987 prvý odkaz na google... a nepindaj že je to v angličtine lebo SK/CZ len ťažko nájdeš a ešte aj s pwn súborom Admin systém čo by mal pwn a príkaz mute som nenašiel, takže musíš skúsiť sám použiť google a prehladávať fórka
  17. Tak použi SetPvarString na hráča ktorého sa chystáš kicknuť
  18. Quiter

    script Pravidlá FS

    No myslím, že admin by mal byť schopný potrestať iného administrátora pokiaľ hrubo porušil pravidlá. Samozrejme že v realnom svete (myslím tým prácu/školu) treba podobné problémy riešiť s nadriadeným, ale takto v hre si myslím že by to zakázane byť nemalo. Ak k tomu chceš ešte niečo napísať, tak PM - nech to tu zbytočne nespamujeme.
  19. Quiter

    script Pravidlá FS

    Čo je toto? new giveid; Ten tvoj "script" to vždy zobrazí hráčovi s ID 0 Naviac, pravidlo číslo 13 je čo za wtf? Prečo by admin nemôhol napomenúť admina? Ak admin cheatuje/nadáva alebo robí čokolvek v rozpore s pravidlami tak to majú ostatní admini ignorovať? Jop a v OnFSInit máš chybu Rrravidlový script By : Klokan
  20. • No pridávať ich budeš tak či tak cez pawno a nie nejakým ingame príkazom, takže byť tebou, nechám to cez funkciu • Nie, pre číslo 4 to nie je nutné, pretože číslo 4 je posledná otázka, takže nemá zmysel aby porovnávalo samo seba (tj. otázka č.4 porovná otázku 0,1,2 a 3) • Nemusíš... Keď sa pozrieš na môj kód tak na záver používam premennu allot[] ktorú si definoval pri náhodnom výbere otázky - každopádne by som si to upravil aby táto premenná obsahovala parameter PLAYERID, alebo bude mať celý server rovnaké otázky? • Ak by ti niečo nebolo jasné tak napíš sem alebo do PM
  21. Plánuješ s tými otázkami ďalej v GM pracovať (upravovať/meniť ich)? Ak nie, spravil by som ich pomocou funkcie a returnu - nespotrebuješ toľko pamäti. stock GetQuestion(id) { new str[]; // tu nemusíš mať číslo 1000, proste zober najdlšiu otázku a spočítaj kolko sa v nej nachádza znakov switch(id) { case 0: str = "Otázka1"; case 1: str = "Otázka2"; //atď... default: str = "Otázka neexistuje!"; } return str; } stock GetAnswer(id) { new str[2]; switch(id) { case 1: str = "a"; case 2: str = "c"; //atď... default: str = "0"; } } No, aby sa otázka neopakovala, musíš prekontrolovať všetky doteraz dosadené otázky new allot[5]; for(new i = 0; i < 5; i++) { new bool:corr_question; // kontrolná podmienka aby cyklus vedel že má skončiť while(!corr_question) // cyklus sa bude opakovať až pokial corr_question == true { allot[i] = random(19); corr_question = true; // POZOR! TRUE musíš nastaviť až tu, ak ho nastavíš pri deklarácií, cyklus while sa nespustí for(new a=0;a<i;a++) // spustíme cyklus od 0 po i (tj. ak si na 4 otázke tak cyklus prebehne pre čísla 0,1,2,3) { // PS: cyklus v cykle v cykle (ano 3 cykly) nepoužívaj bez premýšlania! Toto sú nízke hodnoty, ale keby dáš for pre 50 a 3x do seba, tak máš 125 000 opakovaní, tak pozor na to if(allot[a] == allot[i]) corr_question = false; // nastavíme na false pretože táto otázka už existuje } } } A musíš ich ukladať? Ďalej s nimi nijak nepracuješ, naviac sú obsiahnuté už v jednej premennej (u mňa vo funkcií) takže zbytočné vytvárať novú Takto by som upravil vypisovanie otátok. new allquestions[]; // toto číslo si nastav na 5x dĺžku definovanú vo funkcii GetQuestion for(new i=0;i<5;i++) { format(allquestions, sizeof(allquestions), "%s%d. %s\n", allquestions,i, GetQuestion(allot[i])); } ShowPlayerDialogEx(playerid, 0, DIALOG_STYLE_INPUT, "Otázky", allquestions, "Odeslat", "Ukončit"); No a nakoniec k porovnaniu. new questionout[5][2]; //tady nevím, jak to bude s velikostmi - myslím, že v prvním poli bude 5 jako pět částí stringu a u druhého nevím questioncount = strexplode(questionout, inputtext, ","); //include strlib if(questioncount != 5) return SCM //špatný formát // k funkcii strexplode sa ti nevyjadrím, lebo som ju nikdy nepoužil, ale ak by robila problém tak použi sscanf2 for(new i=0;i<5;i++) { if(!strcmp(questionout[i], GetAnswer(allot[i]), true)) { // Odpoveď na otázku č.%d je správna... } else // odpoveď je nesprávna } Podľa môjho názoru je to takto jednoduchšie, nevytváraš zbytočne veľké polia a taktiež nemusíš do zblbnutia opakovať rovnaké podmienky (nahradené cyklami)
  22. Quiter

    hledám Event systém

    http://forum.sa-mp.com/showthread.php?t=286 /GETHERE <NICK OR ID> - Teleports a player to you in a car or not. /ANNOUNCE <TEXT> - Send game text to all players. /SAY <TEXT> - Send a client message with your text. Uznávam, nie je tam príkaz port, ale /gethere ti bohate stačí na tých 5 ľudí čo bude na servery
  23. Quiter

    hledám Event systém

    Načo ti je event systém keď to čo ty chceš má každý 2. admin system?
  24. Quiter

    pomoc NPC Problem

    Neviem načo by niekto takúto hlúposť potreboval? Ak ti vadí to číslo 98 tak si nastav server na 92 alebo 102 hráčov a budeš to máš pekne gulaté alebo miesto botov využi actorov - tí miesto nezaberajú - ale nepodporujú nahrávky
  25. CMD:adoplnky(playerid, params[]) { new string[2000]; SendClientMessage(playerid, -1, "Bagr"); /*for(new i=0;i<MAX_WEAPON;i++) // Bodky sa ti zobrazujú kvôli tomuto, vždy keď napíšeš príkaz /adoplnky tak sa všetkym zbraniam náhodne nastaví zobrazenie/skrytie { if(random(2) == 0) AllowWeap[i] = false; else AllowWeap[i] = true; }*/ for(new i=0;i<MAX_WEAPON;i++) { if(AllowWeap[i]) format(string, sizeof(string), "%s\tZbran\tCena\tNaboje\n%s\t%d\t%d\t", string, WeapName[i], WeapData[i][0], WeapData[i][1]); } ShowPlayerDialog(playerid, DIALOG_ADOPLNKY, DIALOG_STYLE_TABLIST_HEADERS, "Doplnky by Paulee - Administrace", string, "Potvrdit", "Zavřít"); return (true); } Spravil by som ten príkaz trošku inak Sprav si že /adoplnky zobrazí úplne všetky zbrane a farebne rozlišuj ktoré sú zobrazené a ktoré nie Príklad: for(new i=0;i<MAX_WEAPON;i++) { if(AllowWeap[i]) format(string, sizeof(string), "%s\tZbran\tCena\tNaboje\n{00FF00}%s\t%d\t%d\t", string, WeapName[i], WeapData[i][0], WeapData[i][1]); else format(string, sizeof(string), "%s\tZbran\tCena\tNaboje\n{990000}%s\t%d\t%d\t", string, WeapName[i], WeapData[i][0], WeapData[i][1]); } Samozrejme všetky zbrane zobraz len adminom!! Hráčovi stále zobraz len tie, ktoré sú povolené... No a keď použije /adoplnky a v tomto dialogu zvolí niektorú zbraň, tak mu zobraz ďalší dialog s možnosťami: Zakázať/Povoliť zbraň Upraviť cenu Upraviť počet nábojov
×
×
  • Create New...