Ez a szekció lehetővé teszi a felhasználó által írt összes hozzászólás megtekintését. Vedd figyelembe, hogy csak azokba a fórumokba írt hozzászólásokat látod, amelyekhez hozzáférésed van.
Üzenetek - Dfoglalo
Oldalak: 1 ... 247 248 [249] 250 251 ... 261
3721
« Dátum: 2013. április 16. - 17:14:41 »
CMD:nyit(playerid) { if(IsPlayerInRangeOfPoint(playerid,5.0,1554.1825,-1253.1516,8606.0859)) { if(PlayerInfo[playerid][pLeader] != 1 && PlayerInfo[playerid][pMember] != 1) return HU(playerid, HPIROS, \"Nincs kulcsod az ajtóhoz\"); { SetObjectRot(pdajto,0.00, 0.00, 90.00); cmd_me(playerid,\"lehúzza a kártyáját, és kinyitja az ajtót.\"); return 1; } } else if(IsPlayerInRangeOfPoint(playerid,10,135.2556,1946.8518,19.3614)) { if(PlayerInfo[playerid][pLeader] != 9 && PlayerInfo[playerid][pMember] != 9) return HU(playerid, HPIROS, \"Nincs kulcsod az ajtóhoz\"); { MoveObject(area51bejarat, 121.00, 1941.54, 21.67, 2.00); cmd_me(playerid,\"lehúzza a kártyáját, és kinyitja az ajtót.\"); return 1; } } else if(IsPlayerInRangeOfPoint(playerid,10,286.9180,1821.3264,18.0773)) { if(PlayerInfo[playerid][pLeader] != 9 && PlayerInfo[playerid][pMember] != 9) return HU(playerid, HPIROS, \"Nincs kulcsod az ajtóhoz\"); { MoveObject(area51repterbejarat, 285.99, 1834.00, 19.95, 2.00); cmd_me(playerid,\"lehúzza a kártyáját, és kinyitja az ajtót.\"); return 1; } } else SendClientMessage(playerid, COLOR_RED, \"Nem vagy kapu közelében!\"); return 1; } Jó volt úgy ahogy írtad, csak a felkiáltójelek nem kellettek volna az IsPlayerInRangeOfPoint elé. A pLeader és a pMember ellenõrzés pedig azért volt helyes, mert akkor megállt a parancs ha az adott frakciónak nem a leadere és nem is a tagja. Amit elõttem leírtak az akkor állítja meg, hogyha a pLeader és a pMember is egyenlõ a megadott számmal.
Hm nem vettem észre én sem sajnos a IsPlayerInRangeOfPoint-os ! jeleket  De mivel az alap kódot másoltad ki, ismét hibás. Tehát a helyes kód: CMD:nyit(playerid) { if(IsPlayerInRangeOfPoint(playerid,5.0,1554.1825,-1253.1516,8606.0859)) { if(PlayerInfo[playerid][pLeader] == 1 || PlayerInfo[playerid][pMember] == 1) return HU(playerid, HPIROS, \"Nincs kulcsod az ajtóhoz\"); { SetObjectRot(pdajto,0.00, 0.00, 90.00); cmd_me(playerid,\"lehúzza a kártyáját, és kinyitja az ajtót.\"); return 1; } } else if(IsPlayerInRangeOfPoint(playerid,10,135.2556,1946.8518,19.3614)) { if(PlayerInfo[playerid][pLeader] == 9 || PlayerInfo[playerid][pMember] == 9) return HU(playerid, HPIROS, \"Nincs kulcsod az ajtóhoz\"); { MoveObject(area51bejarat, 121.00, 1941.54, 21.67, 2.00); cmd_me(playerid,\"lehúzza a kártyáját, és kinyitja az ajtót.\"); return 1; } } else if(IsPlayerInRangeOfPoint(playerid,10,286.9180,1821.3264,18.0773)) { if(PlayerInfo[playerid][pLeader] == 9 || PlayerInfo[playerid][pMember] == 9) return HU(playerid, HPIROS, \"Nincs kulcsod az ajtóhoz\"); { MoveObject(area51repterbejarat, 285.99, 1834.00, 19.95, 2.00); cmd_me(playerid,\"lehúzza a kártyáját, és kinyitja az ajtót.\"); return 1; } } else SendClientMessage(playerid, COLOR_RED, \"Nem vagy kapu közelében!\"); return 1; } ! jelek kivéve az IsPlayerInRangeOfPoint függvényekbõl. (! jellel akkor teljesül a parancs, ha NINCS a pont közelében) ! jelek kivéve a PlayerInfo-kból. (! jellel akkor teljesül a parancs, ha a játékos NEM a megadott frakcióhoz tartozik) && jelek javítva || -re. (&& esetén csak akkor teljesül a parancs, ha a játékos Leader, és Member is egyben. Tehát most elég az egyiknek teljesülnie, elég ha tag. Ha persze a kaput csak Leader nyithatja, akkor jöhet az && jel, de akkor viszont bõven elég simán a (pl.) PlayerInfo[playerid][pLeader] == 9 is.
3722
« Dátum: 2013. április 16. - 16:51:41 »
Ugyan úgy bugos. Csak most a probléma a következõ : akárhol beírom hogy nyit kiirja a /me-t.
Ha Area 51-nél írom be a /nyit parancsot a rendõrségen nyitja ki. Ha a Rnedõrséágen írom be az Area 51-nél nyitja ki. Holott a kordináták hibátlanok
Ezek szerint mégsem hibátlanok  Egyszerûen cseréld fel a rendõrségi, meg a körzeti kapuk koordinátáit a parancsban, nyilván fordítva írtad õket bele.
3723
« Dátum: 2013. április 16. - 16:27:33 »
3724
« Dátum: 2013. április 16. - 16:24:40 »
Egyszer úgyis beraknád a reget... Szóval szerintem most.
3725
« Dátum: 2013. április 16. - 15:31:07 »
public OnPlayerConnect(playerid) { GetPlayerName(playerid,nev,sizeof(nev)); format(file,sizeof(file),\"/Player/%s.ini\",nev); if(!dini_Exists(file)) { dini_Create(file) dini_Set(file, \"Penz\", \"0\"); } else { dini_IntSet(file, \"Penz\", pInfo[playerid][pPenz]); } return 1; } public OnPlayerDisconnect(playerid, reason) { dini_IntSet(file, \"Penz\", pInfo[playerid][pPenz]); return 1; } Köszi, de most én kicsit átírtam, de én egy \"komplett\" rendszert írtam, amit nem publikálnék. Igazából itt van ez a rész... Nekem teljesen így van más kód nevekkel + ugye az értéke megvan adva stb stb.. Minden király, lementi az adatot, de betöltéskor ha már létezik is az a név, akkor az éppen \"Pénz\"-t átírja 0 ára... Pl én hiába írom át 50 ezerre.. Ezt nem értem.
Szivesen. Én úgy csinálnám, hogy írnék egy alap dialogos regisztrációt, és nem úgy lenne, hogy kapcsolódáskor hozza létre a fájlt, hanem regisztrációkor. Ha pedig már regisztrált, csak beolvasná, és csak belépne egy dialogon át.
// Ezt nem én írtam, innen, a fórumról van. De azért mûködnie kéne, ahogy ránéztem, hiszen én is hasonlót használok. #include <a_samp> #include <zcmd> #include <sscanf2> #include <Dini> new File[128]; new PW[64]; new WPW[MAX_PLAYERS]; public OnPlayerConnect(playerid) { format(File, sizeof(File), \"User/%s.ini\", Nev(playerid)); if(!fexist(File)) { ShowPlayerDialog(playerid, 1, DIALOG_STYLE_INPUT, \"Regisztráció\", \"Írj be egy tetszõleges jelszót!\", \"Oké\", \"Mégse\"); } else { ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, \"Belépés\", \"Írd be a jelszavad!\", \"Rendben\", \"Mégse\"); } return 1; } public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) { if(dialogid == 1) { if(!response) Kick(playerid); if(strlen(inputtext) == 0) { ShowPlayerDialog(playerid, 1, DIALOG_STYLE_INPUT, \"Regisztráció\", \"Írj be egy tetszõleges jelszót!\", \"Rendben\", \"Mégsem\"); return 0; } format(File, sizeof(File), \"User/%s.ini\", Nev(playerid)); if(!fexist(File)) { dini_Create(File); dini_Set(File, \"Pasword\", inputtext); ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, \"Belépés\", \"Írd be a jelszavad.\", \"Rendben\", \"Mégsem\"); } } if(dialogid == 2) { format(File, sizeof(File), \"User/%s.ini\", Nev(playerid)); if(!response) { Kick(playerid); } format(PW, 64, \"%s\", dini_Get(File, \"Password\")); if(!strcmp(inputtext, PW, false)) { SendClientMessage(playerid, -1, \"Sikeres belépés! Nyomj a \'SPAWN\' gombra!\"); } else { WPW[playerid] ++; SendClientMessage(playerid, -1, \"Rossz jelszó!\"); if(WPW[playerid] == 3) { Kick(playerid); } ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, \"Belépés\", \"Írd be a jelszavad\", \"Oké\", \"Mégse\"); } } return 1; } stock Nev(playerid) { new Neve[MAX_PLAYER_NAME]; GetPlayerName(playerid, Neve, sizeof(Neve)); return Neve; }
Szerkeszd át úgy, ahogy kell neked. Ha a játékos nincs még regisztrálva, akkor elõhozza a regisztrációs dialogot, ha pedig már be van, akkor elõhozza a belépés dialogot. Ha ezt használod, akkor itt a megfelelõ adat betöltés:
public OnPlayerConnect(playerid) { GetPlayerName(playerid,nev,sizeof(nev)); format(file,sizeof(file),\"/Player/%s.ini\",nev); if(!dini_Exists(file)){} else { dini_IntSet(file, \"Penz\", pInfo[playerid][pPenz]); } return 1; } Elméletileg így van nálad, tehát Player mappában, a pénz a Penz sorban, szóval akkor ezt nem is kell szerkesztened. [/quote] Egyenlõre nem akarok nagyokba vágni, de azt írtad, hogy az én rendszeremnek mûködnie kéne, pedig amikor fellépek a szerverre 0 ázza a pénzt, hiába volt az elõtt nála vagy 50000... Szal valami bugos. [/quote] Az ettõl volt:
dini_Set(file, \"Penz\", \"0\"); Én olyat használok, ahol a regisztrációval hozza létre, és csak betölti, tehát nem hozza létre belépéskor. Ezért nem tudhattam, hogy mindig átállítja 0-ra. Amit nem értek, hiszen elméletileg csak akkor kellene beállítani 0-ra, amikor nem létezik a fájl.
if(!dini_Exists(file)) // Ha nem (! a tagadás) létezik a file, akkor csinálja ezeket. { dini_Create(file) // Létrehozza, dini_Set(file, \"Penz\", \"0\"); // átírja. } else // De ha létezik, { dini_IntSet(file, \"Penz\", pInfo[playerid][pPenz]); // beállítja a fájlban található Penz sor értékét a pPenz tárolóba, méghozzá az adott playernek. }
Ez az elmélet, de valamiért átállítja mindig - ezek szerint. Alapból nem hibás a kód, tehát én sem értem a dolgot.
3726
« Dátum: 2013. április 16. - 15:26:54 »
ZyZu egyszer belinkelte neked a Wikit, onnan mindent megtudhatsz, minimális angol tudással is. Vagy a chrome még le is fordítja, olyan google angolosan  Na szóval az \"x, y, z ,65.0, 0\"-bõl a 65.0 jelenti a magasságot, amit szerintem pont jó helyen van a pickup fölött, mert szerintem halaloszto100 nem véletlenül írt oda 65.0-öt.
3727
« Dátum: 2013. április 16. - 15:25:05 »
Én ezt a kocsis rendszert egyszer raktam be, mikor megjelent, minden módomon sz*r volt xD Resizte a szervert :wall:
3728
« Dátum: 2013. április 16. - 15:12:29 »
Szedj le egy másikat. Egyébként installed verziót, vagy pedig iso-s verziót használsz? Úgy értem, hogy olyat, ami alapból telepítve van, és csak el kell indítani, vagy telepíteni is kell egy virtuális merevlemezre?
3730
« Dátum: 2013. április 16. - 15:05:09 »
Csak másold ki  Ahogyan elõttem leírták, nem kell a ! jel. De én kicseréltem gyorsan a megfelelõ helyeket. És amit nem írt le elõttem, azt le szeretném írni neked, csak hogy megtanuld: a ! jel mindig tagadást jelent a pawn nyelveben, és még más programozási nyelvekben is! Például ha egy frakciónak szeretnéd letiltani a funkciót, akkor kitûnõ megoldás a != <Frackió ID> alkalmazása. És még egy dolog: mivel kezdõ vagy, neked még jó a ZCMD, de akár ha meg tudnál birkózni az strcmp-vel, szerintem inkább azt használd, ugyanis abban lehet ékezetes karaktereket is használni, a ZCMD parancsfeldolgozónál pedig nem. Ez azért hasznos, mert szerintem sokkal jobban illenek egy RPG szerverre (a tiéd nyilván az) az ékezetes parancsok, mi több, magyarok vagyunk, szerintem elvárható, hogy pl. /eves helyett /evés legyen. A nyit paranccsal még szerencséd van, de mással nem.  Na szóval csak ezt le szerettem volna neked írni. Tudom, a hozzászólásom nagy része off, vagy már leírták elõttem, kivéve a ! jelentését. Körmöltem neked egy adagod, csak hogy tippeket adhassak. Remélem nem baj. CMD:nyit(playerid) { if(!IsPlayerInRangeOfPoint(playerid,5.0,1554.1825,-1253.1516,8606.0859)) { if(PlayerInfo[playerid][pLeader] == 1 && PlayerInfo[playerid][pMember] == 1) return HU(playerid, HPIROS, \"Nincs kulcsod az ajtóhoz\"); { SetObjectRot(pdajto,0.00, 0.00, 90.00); cmd_me(playerid,\"lehúzza a kártyáját, és kinyitja az ajtót.\"); return 1; } } else if(!IsPlayerInRangeOfPoint(playerid,10,135.2556,1946.8518,19.3614)) { if(PlayerInfo[playerid][pLeader] == 9 && PlayerInfo[playerid][pMember] == 9) return HU(playerid, HPIROS, \"Nincs kulcsod az ajtóhoz\"); { MoveObject(area51bejarat, 121.00, 1941.54, 21.67, 2.00); cmd_me(playerid,\"lehúzza a kártyáját, és kinyitja az ajtót.\"); return 1; } } else if(!IsPlayerInRangeOfPoint(playerid,10,286.9180,1821.3264,18.0773)) { if(PlayerInfo[playerid][pLeader] == 9 && PlayerInfo[playerid][pMember] == 9) return HU(playerid, HPIROS, \"Nincs kulcsod az ajtóhoz\"); { MoveObject(area51repterbejarat, 285.99, 1834.00, 19.95, 2.00); cmd_me(playerid,\"lehúzza a kártyáját, és kinyitja az ajtót.\"); return 1; } } else SendClientMessage(playerid, COLOR_RED, \"Nem vagy kapu közelében!\"); return 1; }
3731
« Dátum: 2013. április 16. - 14:12:32 »
public OnPlayerConnect(playerid) { GetPlayerName(playerid,nev,sizeof(nev)); format(file,sizeof(file),\"/Player/%s.ini\",nev); if(!dini_Exists(file)) { dini_Create(file) dini_Set(file, \"Penz\", \"0\"); } else { dini_IntSet(file, \"Penz\", pInfo[playerid][pPenz]); } return 1; } public OnPlayerDisconnect(playerid, reason) { dini_IntSet(file, \"Penz\", pInfo[playerid][pPenz]); return 1; } Köszi, de most én kicsit átírtam, de én egy \"komplett\" rendszert írtam, amit nem publikálnék. Igazából itt van ez a rész... Nekem teljesen így van más kód nevekkel + ugye az értéke megvan adva stb stb.. Minden király, lementi az adatot, de betöltéskor ha már létezik is az a név, akkor az éppen \"Pénz\"-t átírja 0 ára... Pl én hiába írom át 50 ezerre.. Ezt nem értem.
Szivesen. Én úgy csinálnám, hogy írnék egy alap dialogos regisztrációt, és nem úgy lenne, hogy kapcsolódáskor hozza létre a fájlt, hanem regisztrációkor. Ha pedig már regisztrált, csak beolvasná, és csak belépne egy dialogon át. // Ezt nem én írtam, innen, a fórumról van. De azért mûködnie kéne, ahogy ránéztem, hiszen én is hasonlót használok. #include <a_samp> #include <zcmd> #include <sscanf2> #include <Dini> new File[128]; new PW[64]; new WPW[MAX_PLAYERS]; public OnPlayerConnect(playerid) { format(File, sizeof(File), \"User/%s.ini\", Nev(playerid)); if(!fexist(File)) { ShowPlayerDialog(playerid, 1, DIALOG_STYLE_INPUT, \"Regisztráció\", \"Írj be egy tetszõleges jelszót!\", \"Oké\", \"Mégse\"); } else { ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, \"Belépés\", \"Írd be a jelszavad!\", \"Rendben\", \"Mégse\"); } return 1; } public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) { if(dialogid == 1) { if(!response) Kick(playerid); if(strlen(inputtext) == 0) { ShowPlayerDialog(playerid, 1, DIALOG_STYLE_INPUT, \"Regisztráció\", \"Írj be egy tetszõleges jelszót!\", \"Rendben\", \"Mégsem\"); return 0; } format(File, sizeof(File), \"User/%s.ini\", Nev(playerid)); if(!fexist(File)) { dini_Create(File); dini_Set(File, \"Pasword\", inputtext); ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, \"Belépés\", \"Írd be a jelszavad.\", \"Rendben\", \"Mégsem\"); } } if(dialogid == 2) { format(File, sizeof(File), \"User/%s.ini\", Nev(playerid)); if(!response) { Kick(playerid); } format(PW, 64, \"%s\", dini_Get(File, \"Password\")); if(!strcmp(inputtext, PW, false)) { SendClientMessage(playerid, -1, \"Sikeres belépés! Nyomj a \'SPAWN\' gombra!\"); } else { WPW[playerid] ++; SendClientMessage(playerid, -1, \"Rossz jelszó!\"); if(WPW[playerid] == 3) { Kick(playerid); } ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, \"Belépés\", \"Írd be a jelszavad\", \"Oké\", \"Mégse\"); } } return 1; } stock Nev(playerid) { new Neve[MAX_PLAYER_NAME]; GetPlayerName(playerid, Neve, sizeof(Neve)); return Neve; }
Szerkeszd át úgy, ahogy kell neked. Ha a játékos nincs még regisztrálva, akkor elõhozza a regisztrációs dialogot, ha pedig már be van, akkor elõhozza a belépés dialogot. Ha ezt használod, akkor itt a megfelelõ adat betöltés: public OnPlayerConnect(playerid) { GetPlayerName(playerid,nev,sizeof(nev)); format(file,sizeof(file),\"/Player/%s.ini\",nev); if(!dini_Exists(file)){} else { dini_IntSet(file, \"Penz\", pInfo[playerid][pPenz]); } return 1; } Elméletileg így van nálad, tehát Player mappában, a pénz a Penz sorban, szóval akkor ezt nem is kell szerkesztened.
3732
« Dátum: 2013. április 15. - 19:54:57 »
Esetleg ha simán megdupláznád a parancsot? CMD:cmdigy(playerid, params[]) { SendClientMessage(playerid, COLOR_YELLOW, \"Kiírja ezt.\"); } CMD:parancsigy(playerid, params[]) { SendClientMessage(playerid, COLOR_YELLOW, \"Kiírja ezt.\"); } Ugyanaz teljesül, csak más paranccsal. Igen egyszerû, habár nagyon sok parancs esetén ezzel lassulhat a parancs beteljesedése. De nem hiszem, hogy lassabb lenne, nincs annyi parancsod valószínûleg.
3733
« Dátum: 2013. április 15. - 19:50:10 »
enum pInformacio { pPenz } new pInfo[MAX_PLAYERS][pInformacio]; new nev[MAX_PLAYER_NAME]; new file[128]; public OnPlayerConnect(playerid) { GetPlayerName(playerid,nev,sizeof(nev)); format(file,sizeof(file),\"/Player/%s.ini\",nev); if(!dini_Exists(file)) { dini_Create(file) dini_Set(file, \"Penz\", \"0\"); } else { dini_IntSet(file, \"Penz\", pInfo[playerid][pPenz]); } return 1; }
Tessék. Így létrehozza 0 értékkel akkor, ha nem létezik, és betölti a pPenz tárolóba, ha már létezik.
3734
« Dátum: 2013. április 15. - 19:42:31 »
Kedves témanyitó! Ajánlom neked ezt az editort: http://sampforum.hu/index.php?topic=11607.0Könnyû a kezelése, könnyû az objecteket törölni, a kódot alapból a megfelelõ módon adja meg számodra, lehet kiírni .pwn fájlba is, stb. (észrevétel: nálam a linkelt editor map tesztelõje nem mûködik). Remélem hasznos  Ha persze maradsz az MTA-nál, oké.
3735
« Dátum: 2013. április 15. - 19:34:33 »
Szia! Régebben nálam is volt ilyen, de mostanában nincs ilyen problémám. Befagyott a játék, mikor beléptem a menübe, és még a start gombbal sem tudtam le vinni a tálcára, sõt, még a feladatkezelõt sem tudtam elõtérbe helyezni, hogy bezárjam a játékot. Szerintem mindegy honnan tölti le az ember, ha nem eredeti, bizony lehetnek problémák, akár még az nCoreos torrenteknél is. De ki tudja, akár lehet gépfüggõ is a dolog. Én egyébként a thepiratebay.se-rõl töltöttem le a játékot.
Oldalak: 1 ... 247 248 [249] 250 251 ... 261
|