Naretev

Fórumozó
  • Hozzászólások

    136
  • Csatlakozott

  • Utoljára aktív

Közösségi hírnév

17 Újonc

2 követő

Naretev felhasználóról

  • Rang
    Teljes tag
  • Születésnap 2000-02-16

Egyéb

  • Játékos név
    Naretev

Utolsó profil megtekintők

229 profil megtekintés
  1. Ezt én írtam neked, és csak random összedobtam, nyilván hibás, mert csak vázlatosan írtam. Egyébként mysql_tquery-t írj, mert sima querynek nincs Callback visszatérése.
  2. Használj streamer plugint. Egyébként amit meg Ben írt nem tudom, hogy tudod komolyan venni, ha csak elolvasod érzed, hogy ez csak vicc. #Uvenohumor
  3. A frakis kocsikat vedd ki belőle, és rakosgasd le őket. Úgy eléggé gagyi rendszereket lehet írni, hogy csak a felére érvényesek, mert ha 1 ID elcsúszik akkor felborul az egész.
  4. Lehet, hogy a windowsos verzió új, de a linuxos meg régi, nem lett egyidejűleg frissítve. Frissítsd le őket!
  5. Failed (plugins/libRegEx.so: cannot open shared object file: No such file or directory) Nemtalálja azt a fájlt?
  6. Valószínűleg az lesz a hiba, amit a kolléga már leírt, hogy a változó mérete eltérő, elég sokat számít. A másik dolog, egyszer CompareEx-et használsz az IsPlayerCar-nál meg már Egyezik függvényt, lehet azokkal van baj. 3. Kellene a /getcartulaj parancsod, hátha abból többet megtudunk. 4. Ha a ciklus lefutott állítsd le mert idővel probléma is lehet, hogy " laggol a szerver nemtudom miért", + eléggé szemet szúró. Itt konkrétan a /parkol parancsra gondolok. De a többinél is ugyanez van. Ha nem írtad át a MAX_VEHICLES definíciót, akkor 1000x lefut. 5. Dini-n igazából fölösleges tanulni is, mivel csak problémát okoz majd a későbbiekben a gondolkozásodban. Inkább kezdj valami nehezebbel pl. Mysql, de ha azt megérted, akkor nincs olyan, hogy "nem értek valamit". + Az alap rendszereket fejben kigondolod, a mentés / betöltés része, csak a legkisebb része. 6. Ez igazából nézőpont kérdése, viszont átláthatóbbá teszi a kódot. Van egy ősi technika, amikor az IF-ben a feltételnek az ellenkezőjét kezeled, és ha az az feltétel teljesül akkor "kitérsz", ha nem nyílván az igaz teljesül. Igazából ilyen catch-hez hasonlítanám. Így nem kell minden egyes if után nyitnod egy utasítás tömböt és beljebb tabolni, majd 10 feltétel után már 2 kilométeres a tabolásod. Hanem egymás alá soronként írod. pl. #Belopjákaparancsotlol CMD:admin(playerid,params[]) { new id,level; if(!OnlineCheck(playerid)) return 1; if(!IsAdmin(playerid,ADMIN_FOADMIN)) return Permission(playerid); if(!Player_ADuty[playerid]) return DutyNeed(playerid); if(sscanf(params,"ud",id,level)) return HELP(playerid,"/admin [Név/ID] [Szint]"); if(!OnlineCheck(id)) return OfflinePlayer(playerid); if(level < 0 || level > 5) return ERROR(playerid,"Érvénytelen Admin szint ! ( 0-5 )"); if(pInfo[id][pAdmin] > pInfo[playerid][pAdmin] && !IsDeveloper(playerid)) return ERROR(playerid,"Tőled magasabb szintű Adminnak nemtudod korlátozni a szintjét !"); if(level > pInfo[playerid][pAdmin] && !IsDeveloper(playerid)) return ERROR(playerid,"A sajátodnál nagyobb Admin szintet nem tudsz adni !"); if(pInfo[id][pAdmin] == level) return ERROR(playerid,"Az illető jelenleg ezen az Admin szinten van !"); new string[128]; if(pInfo[id][pAdmin] > level) format(string,sizeof(string),"Lefokozás"); else if(pInfo[id][pAdmin] < level) format(string,sizeof(string),"Előléptetés"); pInfo[id][pAdmin] = level; MSGF(id,"Az Admin jogosultságod megváltozott, %s által ! Szint : %s, Változás : %s",pName(playerid),AdminLevels[level-1],string); AdminF("%s megváltoztatta %s Admin jogosultságát ! Szint : %s, Változás : %s",pName(playerid),pName(id),AdminLevels[level-1],string); return 1; } vagy if(ehesvagyok) { if(nincskajam) { if(vaneboltkozelben) { if(nyitvavaneabolt) { if(vaneaboltbankaja) { if(vanekajarapenzem) { pInfo[playerid][pkaja]++; } } } } } }
  7. Amivel meghívod a dialogot is hasznos lenne, egyébként return 0 helyett használj return 1;-t
  8. stock SaveVehicle(vehicleid) { vehicleid = GetFreeVehicleSlot(); Ez itt mi akar lenni? A függvényt úgy hívod meg, hogy paraméternek megvan adva a vehiclel id alapból. Te meg felülíród ezt free vehicle slottal? Ha levan rakva 1 kocsi, legyen az IDje 0. Te azt le akarod menteni, meghívod a SaveVehicle(/*vehicleid ==*/ 0) függvényt. Mikor meg lefut akkor meg GetFreeVehicleSlot-al felülírod, és keres egy üres slotot? Ha a 0 valid car, akkor azt kihagyja, és a következő ami nem valid car az az utána következő tehát 1-es lesz. Tehát ha lemented a 0-ás kocsit akkor az 1-es invalid kocsinak a tulajdonságait menti le, ami nem létezik tehát = nincs mentés. Nemtudom hogy gondoltad ezt. + dini-t ne használjunk már 2018-ban >< Nyílván mindenki azzal kezdi, de minnél jobban igyekezni kell elhagyni azt.
  9. ha törlődik a cache akkor próbáld tquery-vel, mert az ugye úgymond várólistára rakja őket, habár ez pici laggal is járhat.
  10. A JarmuInfo enumot + a változó tömböt küld el, gondolom ott ronthattál el valamit.
  11. Rég volt, hogy pawnoztam ezek szerint :D A javahoz vagyok szokva ott pedig ilyen alattomos hibák mint pl. az " int i = 0;" szokott hiba lenni és órákig keresem :) De ezek szerint pawnoban ez elhanyagolható. Viszont az érdekes hiba, mert logikailag működnie kellene. new STRING[ 128 ]; format( STRING, sizeof( STRING ), "SELECT * FROM users WHERE PayCheck != '0'" ); mysql_tquery( MHandle, STRING, "MakePays", "d", 0 ); Ez pontosan hogyan hívódik meg? Timerrel gondolom, de küld el azt is, úgy átláthatóbb. Esetleg próbáld meg az eredményeket kiiratni konzolba, így nyomon tudod követni, hogy hol van a hiba.
  12. for( new i; i != rows; i ++ ) Az ' i ' változónak nincs kezdőértéke, habár azt hiszem erre a pawno is errort ír. Nyílván ha nincs kezdőérték akkor nem tudja, melyik sorból kell kiszedni. for( playerid; playerid < MAX_PLAYERS; playerid ++ ) { if( CompareEx( NAME, PlayerName( playerid ) ) ) { if( IsPlayerConnected( playerid ) ) { SendFormatMessage( playerid, -1, "[{f3ff4a} SZERVER {ffffff}] Fizetésed átutalva a bankszámládra! ( {f3ff4a}$%s{ffffff} )", FormatNumber( PAY ) ); } } } Ezzel meg annyi a probléma, hogy a MAX_PLAYERS értékig fut le, ami alapesetben 1000, viszont ha átírtad, 30-50-80 stb. akkor is egészen nagy. Illetve le sem állítod, tehát ha pl. a 0-ás IDjű játékosnál teljesül a feltétel, akkor a többi (n-1)-szor lefutás fölösleges. Próbáld meg úgy, hogy IsPlayerConnected, és hogyha igaz értékkel tér vissza, akkor fentvan azt már tudod kezelni. Kicsit hasonló az eljárás, csak ebben az esetben csak annyiszor fut le a keresési ciklus ahány játékos van a szerveren, vagyis ( GetPlayerPoolSize = legnagyobb ID a szerveren, kis prioritásoknál nagyon hasznos. ), illetve az értékkel return-olok is ami megszakítja a ciklust. GetPlayerIdFromName(playername[]) { for(new i = 0, j = GetPlayerPoolSize(); i < j; i++) if(!strcmp(playername,GetPlayerName(i)) return i; return -1; } A fenti kód lefut az összes játékoson akik fentvannak egészen a legmagasabb ID-ig, nyílván 1-2 "üres tick" lehet, mivel a játékos ID-je lehet magasabb is mint a playerszám, viszont a playerszám nem lehet nagyobb az ID-nél :D ( vagyis n-1 mivel 20 játékosnál 19 a legnagyobb ID de ez lényegtelen mert csak összezavarlak vele :D ) És ha megtalálta az ID-t akkor visszatér vele. Ez ugyanúgy müködik mint a te esetedben, viszont ott nem szakítsa meg a ciklust ha teljesel a feltétel, illetve a feltétel túl nagy. A lenti kóddal lekérdezed az ID-t a név alapján. Ha nincs fent akkor az érték -1 lesz, és ha az érték -1 returnol tehát kihagyja. new id = GetPlayerIdFromName(NAME); if( id == -1) return 1; SendClientMessage(playerid,-1,"Megjött a fizud te$$$$$$$$$$$$$$$$$$"); pInfo[id][pBank] = pInfo[id][pBank] + MONEY; Remélem azért érthető, eléggé rosszul magyarázok, ha van valami kérdésed csak írj!
  13. SAMP részleg, habár sokat nem számít, úgyis tolonganak a fejlesztők manapság :/
  14. Frissítsd le a pluginokat, includeket. A runtime error-ok nagyrészét ez orvosolja.
  15. A megtett kilométer neked egyenlő a jármű sebességével? 1 sec alatt az onplayerupdate lefut vagy 7-8x, Ha a jármű megy 100km/h-val. akkor 1 sec alatt 7-8x lefut az update. tehát 700-800km lesz a megtett táv? Holott 1 sec alatt 1 km-t sem megy. Nem valami valós a számítás. Ha ezt még beszorozza az útdíjjal ami gondolom nem 1 egység, akkor nyilván felugrik milliókba pillanatok alatt. De ha jobban belegondolsz elég logikus szóval gondold át.