Jump to content

Twixo

Uživatel
  • Příspěvků

    120
  • Registrován

  • Aktivní

  • Vítězných dnů

    1

Everything posted by Twixo

  1. Twixo

    pomoc Nemizne CP

    Je dobre, ak máš tie CP v switchovaní, tak zrušiť CP a potom načitať ďalšie. Skús si pozrieť toto -> https://pawno.cz/topic/25658-race-checkpoint/ malo by ti vyslevetliť používanie race "čekpointov"
  2. Twixo

    pomoc Nová možnosť

    Bol mi poradený lepší systém, kt. vyzerá prehladno a pekne. Bolo mi tím navrhnuté aby som ukladal auta a potom ich zapisoval, kt. chcem mať na zavode. Tanga mi na ukážku priložil kód, lenže to bol enum s kt. som ešte moc nepracoval a nemám s ním také skusenosti (odkazy na enum netreba viem ako pracuje, len ešte nemám také skusenosti), tím, že tam bolo slovo "cars", tak ma napadlo, že v tom enume bude viac ako jedno auto, takže všetky pozície, aké chcem na tom zavode, tak som sa spýtal, či idem na to dobre. Takže odpoveď na tvoju otázku je: "Ako docielim zapísanie všetkých pozícií".
  3. Uprav podľa seba ten duel join, keď hráč zakladá ten duel, takže všetko čo je pred if(duel[počethraču] == 1), takže ak to založí, tak sprav timer napr. na 20sec. A keď skončí timer, tak zruší duel. Skús si pozrieť duelupdate public a všetko za }else{ slúži ku ukončeniu duelu. A potom, keď sa napojí druhý hráč, takže pod if(duel[počethraču] == 1) skonči timer. To by si mohol zvládnuť Funkcie kt. budeš potrebovať, sú v tom duelupdate timer napr. CMD: ... for(new i = 0; i <= MAX_PLAYERS; i++) { DuelZbran = 0; IsPlayerInDuel = 0; SpawnPlayer(i); Duel[Pocethracu] --; if(Duel[Pocethracu] == 0) KillTimer(Duel[TimerUpdate]); Duel[started] = 0; a tak ďalej
  4. Vyzerá to ako ATomasov duel, ten by sa mal ukončovať hneď, keď niekto umrie.
  5. pwn s tvojim kodom -> http://leteckaposta.cz/499059230 Je to spravené na štýl gm, takže ak máš gm, tak si to daj podľa toho + ten pickup je na letisku pri tej drahe a ak ho zobereš, tak sa znova zobrazí za 30sec. + ak nechápeš pawnu, tak nekopíruj...
  6. public OnPlayerPickUpPickup(playerid, pickupid) { if( pickupid == balik) { GivePlayerWeapon(playerid, 28, 50); } return 1; } Ukladanie, ak uložíš to .pwn, tak sa ti uloží i amx, ak nemáš chyby. Ak je chyba pri kompilácii, tak neuloží amx + uložené amx ti zmaže. Ak budeš mať chybu, tak posielaj pawnerom chyby, kt. sa ti ukážu pri kompilácií, ak to budeš mať bez chýb, bude to vyzerať takto:
  7. Twixo

    pomoc Nová možnosť

    S enumom som moc nerobil, má sa to robíť, že enum BridgeCarsEnum { Float:POSX, Float:POSY, Float:POSZ, bool:OCCUPIED Float:POSXďalšieho auta y z obsadený atd }; ?
  8. Twixo

    pomoc Začátečník

    Ak je hráč pripojený. tak napr. new pripojený[MAX_PLAYER]; Do príkazu, v kt. sa pripája nastavíš true/1, že hodnota pripojený je aktivovaná, ak umrie, tak ho odpojí z duelu, tak dáš pripojený = false/0 + ostatne funkcie z toho duelu. if(IsPlayerInDuel[playerid] != 0) return SendClientMessage(playerid,BARVA_BILA,"[!] Jiz jste v duelu!"); vytvortil teda premennu - new IsPlayerInDuel[MAX_PLAYERS]; A potom zistil či je v duelu, takže keď neni v duelu, alebo Je v duelu sa nerovná 0. != (nerovnosť) Potom nižšie založil IsPlayerInDuel[playerid] = 1; takže nastavil, že je v dueli pretože 1 = true, true v preklade je pravda, takže IsPlayerInDuel je pravda. Alebo ak si dáš napr. PripojilDoDuelu je pravda, hocičo, to máš jedno, len takto budeš v tom lepší prehlad A to, že ako zistuje, že spadol je asi toto: if(X >= 2445.0791 && X <= 2497.3074 && Y >= 2350.9741 && Y <= 2402.0007), keď pozícia X je väčšia ako hodnota "a" (&&) X je pritom menšia ako hodnota atd. (X a X a Y a Y predstavuu takú zónu, si predstav takú myslenú žiaru pod strechou toho domu, takú zónu MinY v MinX > *------------- | | | gangzone | | center | | | -------------* < MaxX ^ MaxY obr. zdroj -> http://wiki.sa-mp.com/wiki/GangZoneCreate Ak spadne pod zónu, tak zruší duel, dúfajme, že vieš čo je X,Y,Z a čo predstavujú, ak nie tak to inak nepochopíš Má to v timeri, kt. sa spustí pri štartnutí duelu: public duelTimerUpdate() { for(new i=0; i< MAX_PLAYERS_EX; i++) { if(IsPlayerConnected(i)) { if(IsPlayerInDuel != 0) { new Float:X,Float:Y,Float:Z; GetPlayerPos(i,X,Y,Z); if(X >= 2445.0791 && X <= 2497.3074 && Y >= 2350.9741 && Y <= 2402.0007) { if(Duel[Counter] == 0) { if(Duel[Pocethracu] == 1) { new string[150]; format(string,sizeof(string),"Vitezem duelu je %s.",Jmeno(i)); SendClientMessageToAll(BARVA_MODRA,string); KillTimer(Duel[TimerUpdate]); DuelZbran = 0; IsPlayerInDuel = 0; SpawnPlayer(i); Duel[started] = 0; Duel[Pocethracu] = 0; } } }else{ DuelZbran = 0; IsPlayerInDuel = 0; SpawnPlayer(i); new string[150]; format(string,sizeof(string),"Hrac %s opustil duel.",Jmeno(i)); SendClientMessageToAll(BARVA_MODRA,string); Duel[Pocethracu] --; if(Duel[Pocethracu] == 0) { KillTimer(Duel[TimerUpdate]); Duel[started] = 0; } } } } } return 1; } keď duel skončí (keď hráč spadne, umrie, odpojí sa atd.) tak ho vypne, takže nebude bugovať hráča a nebude stále vypínať duel. Stačí iba čítať, ak máš všetko v sekcií začiatočník zmaknuté, tak to zvládneš (https://pawno.cz/topic/24321-duel-release-by-atomas/)
  9. Popis problému: Zdravím, robil som taký jednoduchá race system, hrač dá prikaz, v ňom určí počet závodnikov (napr. 3) a vybere auto. Robil som to pomocou kontroli premennej (v kode vypísané). Je to také amatérske a chcem sa vás opýtať, či sa to nedá najeko lepšie a ľahšie napísať, pretože toto je i zĺhavejšie a by som sa niečo nové priučil čo by mi pomohlo do budúcna. btw. ten systém mi šiel, tak ako som chcel, len sa chcem naučiť lepší systém. Chyby/varování kompilátoru a při běhu: -- Kód: Dodatečné poznámky: --
  10. Twixo

    pomoc Errory

    Skús inak používať ten timer, CMD:kick(...) { error správy, funkcie atd. a potom si sprav timer, takže SetTimer("Názov funkcie, takže aky public budeš chcieť", čas v mili sekundách, či chceš aby každých napr. 3000ml, ak chceš aby opakovalo ten kick delay nastavíš 1/true, ak nie, tak nastavíme hodnotu 0/false) - SetTimer("KickDelay",1000,0); // chcel si po 1sec = 1000ml return 1; } //ukončíme príkaz hore do modu si zadefinuj public, takže forward názov(a čo bude využívať) //to posledné neviem presne popísať takže napr. forward KickDelay(playerid), keďže budeme pracovať iba s hráčovim id, tak to tam musíme napísať, inak by hádzalo undefinned symbol alebo niečo podobného štýlu. vytvor public public KickDelay(playerid) //názov musí byť úplne presný { return 1; } a do neho dáš ten kick, takže public KickDelay(playerid) // spustí 1 krát po 1s, po zadaní príkazu /kick { Kick(playerid); return 1; } Neviem či si to pochopil, pretože na vysvetlovanie nie som ten pravý a hlavne nekopíruj ale čítaj. Ocet ti to pekne napísal, lenže ak to skopčíš, tak to menej pochopíš. tu to máš i pekne znázornené -> http://wiki.sa-mp.com/wiki/SetTimer btw. ten kill timer sa používa, ak to opakovanie (repeating) je nastavený na true, takže to stále opakuje, v tedy sa to nedá nijak zastaviť, ale ak si dáš 0, že to dá iba raz netreba to ničiť, pretože to viac krát nespustí, iba ak dáš znovu ten príkaz. Potom si zle použil ten killtimer... //do modu hore definujeme premenú new timer; timer = SetTimer(...); KillTimer(timer); funcname[] - neni ID Skús si pozrieť tie wiki, lebo ti lepšie poradia. Ja som sa ti to nejak snažil iba popísať, ako cca to funguje. http://wiki.sa-mp.com/wiki/KillTimer
  11. Twixo

    pomoc Začátečník

    Keď som začínal, tak som našiel pwn VojnyGangov. Tento pwn súbor bol určený na učenie pawna, bol docela dobré popisaný, ale momentálne neviem, kde je k stiahnuťiu. Skús pozerať návody a hľadaj nejaké pekne popísané, kde sa naučíš zakladne funkcie. Potom ak zistiš najakú funkciu (napr. GetPlayerMoney), kt. nebudeš rozumieť, tak si do google daj nazov funkcie a pozri si to na SAMP Wiki, ak to nepochopíš z wiki, tak sa skús spýtať v pomoc sekcií.
  12. Twixo

    pomoc "offline timer"

    Dobre, skúsim to nejako. "ale celý kód ti nenapíšu" to som ani nečakal. Chcem sa to naučiť a nie odkopčiť
  13. Twixo

    pomoc "offline timer"

    Hip, ospravelnujem sa, ale asi som sa zle vyjadril. Ide o mesiace, kt. nie sú vždy roznako dlhé. Napr. február má 28 dní. Napr. Hrač dostane 26.2. premium na 10 dní. Keby mám systém, že každých 30 dní sa mení mesiac, tak by som mu premium predĺžilo, takže ak by si mi mohol poradiť, pretože ako si hovoril : "Jenže tohle mi přijde jako hloupost, protože člověk chce VIP hned a ne čekat na začátek měsíce." A viacej to je moja chyba, že som sa zle vyjadril. Len čo neviem je, že ak dostane hráč 2mesiace prémia, takže 60d, tak ako zistovať kedy skončí to premium. Napr. dostane to 1.1, takže od 1.1. - 2.3. (feb. v tomto príklade má 28 dní).
  14. Twixo

    pomoc "offline timer"

    Aha, super. Ďakujem. Ešte ak sa môžem spýtať, tak každý mesiac ma iný počet dní a + môže byť prestupný rok, nejaká rada ako nastaviť to, že ak nwm ak má hráč ban napr. na 2 mesiace alebo napr. VIP, tak každý z tých mesiacov nemá 30dní, takže x/30 sa nedá, nejaká rada ako to vyriešiť?
  15. Twixo

    pomoc "offline timer"

    Funguje to, ak sa môže opýtať, čo predstavuje "%" ?
  16. Popis problému: Ahoj, chcel by som poradiť ako z danej hodnoty zistiť koľko dní bude obsahovať a ak ešte nejaká časť zostane, tak koľko hod. to je. Trošku horšie vysvetlené, ale teraz to asi lepšie vysvetlím. Ide o to, že mám nejakú premennu, napr. new bantime a bude to napr. 360hodín, tak tu je otázka, koľko dní prejde za 360h, to ako neni ťažké 360/24, lenže, nie u každého času sa nedá deliť 24, napr. 50, takže potrebujem zistiť, koľko maximalne dní prejde (u 50h to su 2deni) + ak ostane nejaký čas koľko to je hodín, takže (50hodinový ban = 2dni a 2hod Mna napadlo toto, ale moc to asi nebude fungovať: (v kode) Bol by som rád keby mi pomôžete s tímto problémom. Chyby/varování kompilátoru a při běhu: -- Kód: Dodatečné poznámky: --
  17. Twixo

    pomoc Dlhá správa

    ";" nechýbalo. Bolo mi poradené riešenie a že som si to nevšimol bolo moc amaterské. Chcem sa ospravedlniť za zbytočné topiky, len proste cez leto to nemyslí. LOCK
  18. Twixo

    pomoc Dlhá správa

    Neviem či som to robil dobre, ale to vehiclecolor[0] znázornuje: "{F5F5F5}1.\t{767B7C}33.\t{8E8C46}65.\t{6C8495}97.\t{210606}129.\t{993E4D}160.\t{818D96}192.\t{42420D}224.\n \ {2A77A1}2.\t{646464}34.\t{341A1E}66.\t{4D8495}98.\t{125478}130.\t{1E4C99}161.\t{99991E}193.\t{4C991E}225.\n \ {D50000}3.\t{5A5752}35.\t{6A7A8C}67.\t{AE9B7F}99.\t{452A0D}131.\t{198181}162.\t{7F994C}194.\t{082A1D}226.\n \ {263739}4.\t{252527}36.\t{AAAD8E}68.\t{406C8F}100.\t{571E1E}132.\t{1A292A}163.\t{839292}195.\t{96821D}227.\n" atd. Ale nehovorím ,že to mám dobre
  19. Popis problému: Tak, sr*l som sa s textom, kt. obsahuje všetky idfarby aut s danou farbou. Ten text bol samozrejme dlhý. Tím, že som začiatočník, tak nepoznám moc riešení. Mám dve riešenia, ale obe zle, takže som prišiel za vami. Chyby/varování kompilátoru a při běhu: Chyby som dal do poznámok do kódu aby ste to mali prehladnejšie. Kód: Dodatečné poznámky: Predom Ďakujem
  20. Twixo

    pomoc Warp

    Ten príkaz som robil tak odfláknuto... jemu stačí aby to fungovalo čo i robí. //edit: Radšej používam IsPlayerInVehicle, lebo si rovno zistím ID auta, ak by som použil IsPlayerInAnyVehicle, tak by si to i tak zistoval u toho prikazu.
  21. Aha, som toto písal 3x a nevšimol som si to Je vidieť, že v tom horku sa nedá rozmýšlať. Ďakujem ti za tvoje riešenie, kt. mi ušetrilo miesto Môžete LOCK
  22. Twixo

    pomoc Warp

    Pomocou ZCMD CMD:warp(playerid, params[]) { #pragma unused params SetPlayerPos(playerid,1718.3700,1532.7534,10.7846); new veh = GetPlayerVehicleID(playerid); if(IsPlayerInVehicle(playerid, veh)) { SetVehiclePos(veh,1718.3700,1532.7534,10.7846); new sedacka = GetPlayerVehicleSeat(playerid); PutPlayerInVehicle(playerid, veh, sedacka); } return 1; } Normlane public OnPlayerCommandText(playerid, cmdtext[]) { if (strcmp("/warp", cmdtext, true, 10) == 0) { SetPlayerPos(playerid,1718.3700,1532.7534,10.7846); new veh = GetPlayerVehicleID(playerid); if(IsPlayerInVehicle(playerid, veh)) { SetVehiclePos(veh,1718.3700,1532.7534,10.7846); new sedacka = GetPlayerVehicleSeat(playerid); PutPlayerInVehicle(playerid, veh, sedacka); } return 1; } return 0; } Ak si chcel aby ťa to warplo pri letisko LV vedľa autobusovej zastávky, tak to funguje Dal som ti sem príkaz z kt. by si si mohol niečo zobrať + si pozri radu od octa, možno sa v tom lepšie vyznáš. Ak by si sa chcel viac naučiť ohladne tohoto, tak ti doporučujem -> http://wiki.sa-mp.com/wiki/SetPlayerPos | http://wiki.sa-mp.com/wiki/Floats atd.
  23. Popis problému: Zdravím, spravil som si hodiny, kt. sa ukazujú v TD. Všetko ide, lenže ak je napr. 9 hodín, tak to ukazuje 9:30, čo neni až tak zlé, ale ak je minuta 1 - 9 to vyzerá strašne (20:9). Snažil som sa to nejak spraviť, ale stále to nešlo, tak ako som si predstavoval a po tejto poslednej úprave ma už nenapadla žiadna možnosť, tak sa opraciam k vám. Chyby/varování kompilátoru a při běhu: -- Kód: Dodatečné poznámky: --
×
×
  • Create New...