-
Utoljára szerkesztve: 11/04/18
Tudom hogy már van egy ilyen leírás a fórumon viszont a hawernak szüksége van egy másfelé kinyúló leírásra, ezenkívül pedig a Csabesz által leírt módnál ezerszer egyszerubb lehetoségek is vannak, amikor ugyanolyan közérthetok.
Eloször is szükségünk lesz egy változóra amibol minden játékoshoz tartozik egy cella.
A deklaráció mellett gondoskodunk róla, hogy ez alapból mindenkinél -1 legyen.
static dmid[MAX_PLAYERS]={ -1, ... };
Ezenkívül a hibák elkerülése végett felcsatlakozáskor a játékos azonosítószámához tartozó cellát szintén \'ürítjük\'
public OnPlayerConnect(playerid)
{
dmid[playerid] = -1;
return 1;
}
Ezután már tudunk dolgozni a változóval a következoképp;
Eloször is eldöntjük hogy melyik DM-nek melyik lesz az azonosítószáma. (Nem ajánlom a definálást x)
Ezután pedig az OnPlayerSpawn eljárásnál rendezetten ellátjuk a különbözo DM-ekhez kapcsolódó feladatokat.
public OnPlayerSpawn(playerid)
{
switch(dmid[playerid])
{
case 0: // 0-ás azonosítószámú dm zónához tartozó tevékenységek
{
SetPlayerPos(playerid,0.0,0.0,3.5); // Elhelyezés a dMben. Itt akár véletlenszeru spawnot is írhatunk, de az átláthatóság kedvéért maradjunk ennél
SetPlayerFacingAngle(playerid,90.0); // Játékos írányba állítása; elforgatás
ResetPlayerWeapons(playerid); // fegyverek elvétele <- FONTOS
GivePlayerWeapon(playerid,4,1); // Felfegyverzés
GivePlayerWeapon(playerid,34,10); // Felfegyverzés
SetPlayerVirtualWorld(playerid,dmid[playerid]); // áthelyezés mási VW-be
}
case 1: // 1-es azonosítószámú dm zónához tartozó tevékenységek
{
SetPlayerPos(playerid,-1379.3,428.2,30.0); // Elhelyezés a dMben. Itt akár véletlenszeru spawnot is írhatunk, de az átláthatóság kedvéért maradjunk ennél
SetPlayerFacingAngle(playerid,180.0); // Játékos írányba állítása; elforgatás
ResetPlayerWeapons(playerid); // fegyverek elvétele <- FONTOS
GivePlayerWeapon(playerid,24,100); // Felfegyverzés
GivePlayerWeapon(playerid,34,10); // Felfegyverzés
SetPlayerVirtualWorld(playerid,dmid[playerid]); // áthelyezés mási VW-be
}
case 2: // 2-es azonosítószámú dm zónához tartozó tevékenységek
{
SetPlayerPos(playerid,1379.3,-28.2,30.0); // Elhelyezés a dMben. Itt akár véletlenszeru spawnot is írhatunk, de az átláthatóság kedvéért maradjunk ennél
SetPlayerFacingAngle(playerid,110.0); // Játékos írányba állítása; elforgatás
ResetPlayerWeapons(playerid); // fegyverek elvétele <- FONTOS
GivePlayerWeapon(playerid,20,100); // Felfegyverzés
GivePlayerWeapon(playerid,32,10); // Felfegyverzés
SetPlayerVirtualWorld(playerid,dmid[playerid]); // áthelyezés mási VW-be
}
default: // Alap spawn funkciók. Amikor a játékos NINCS DM-BEN ÉS ÚGY SPAWNOL
{// Ide kell írni ami alap ból az OnPlayerSpawnnál volt
GivePlayerMoney(playerid,100);
GivePlayerWeapon(playerid,1,1);
SetPlayerVirtualWorld(playerid,0); // Vissz*rakás az alap VW-be FONTOS
}
}
return 1;
}
Ha így elintéztünk minden DM-zónát akkor már megkönnyebbülhetünk mert innentol már egyszeru a dolgunk.
Menjünk az OnPlayerCommandText eljáráshoz és pötyögjük oda a következot. Ez legyen az elso parancs:
if (strcmp(\"/exitdm\", cmdtext, true) == 0)
{
if(dmid[playerid] == -1) return SendClientMessage(playerid,SZÍN, \"A parancs használatához elobb lépj be egy DM zónába!\");
dmid[playerid] = -1;
SpawnPlayer(playerid);
return SendClientMessage(playerid,SZÍN,\"Kiléptél a DeathMatch zónából.\");
}else if(dmid[playerid] != -1) return SendClientMessage(playerid,SZÍN,\"Elöbb lépj ki a dmbol\");
Most pedig írjuk meg a három DM-be csatlakozó parancsot.
if (strcmp(\"/dmparancs\", cmdtext, true) == 0)
{
dmid[playerid] = 0; // Azonosítószám megadása FONTOS
SpawnPlayer(playerid); // Játékos lespawnolása
SendClientMessage(playerid,SZÍN,\"Csatlakoztál a xXX DM -hez\");
return 1;
}
if (strcmp(\"/dmparancs2\", cmdtext, true) == 0)
{
dmid[playerid] = 1; // Azonosítószám megadása FONTOS
SpawnPlayer(playerid); // Játékos lespawnolása
SendClientMessage(playerid,SZÍN,\"Csatlakoztál a xXXx DM -hez\");
return 1;
}
if (strcmp(\"/dmparancs3\", cmdtext, true) == 0)
{
dmid[playerid] = 2; // Azonosítószám megadása FONTOS
SpawnPlayer(playerid); // Játékos lespawnolása
SendClientMessage(playerid,SZÍN,\"Csatlakoztál a xXYXx DM -hez\");
return 1;
}
Remélem ezen hármas példa elemezgetésével ti is rájöttök, hogyan kell DM zónákat készíteni.
Amennyiben nem kérdezzetek.
Amit készítettünk:
A játékosok csatlakozhatnak különbözo dm zónákba.
A játékosok nem használhatnak más parancsokat míg nem hagyják el a dm zónát.
a játékosok a dm zónában kezdenek mindaddig míg el nem hagyják azt.
a játékosok nem látják a dmben lévo játékosokat
Epsilon
-
Szép leírás és hasznos is. Ezt én is pontosan ugyanígy csinálom azzal a külömbséggel, hogy nem a cmdtext tetejére írom a parnacs letiltót.
-
Jó, http://users.atw.hu/hun-sa-mp-forum/index.php?topic=3911.0, írhatna ezzel is valaki;)
-
Jó, http://users.atw.hu/hun-sa-mp-forum/index.php?topic=3911.0, írhatna ezzel is valaki;)
Mondjuk Te ? :D
-
nekem iylenekt ír
H:\\sa-mp\\szerver\\gamemodes\\lvdm.pwn(327) : error 001: expected token: \";\", but found \"}\"
H:\\sa-mp\\szerver\\gamemodes\\lvdm.pwn(334) : error 001: expected token: \";\", but found \"}\"
H:\\sa-mp\\szerver\\gamemodes\\lvdm.pwn(341) : error 001: expected token: \";\", but found \"}\"
H:\\sa-mp\\szerver\\gamemodes\\lvdm.pwn(460) : error 017: undefined symbol \"playeid\"
H:\\sa-mp\\szerver\\gamemodes\\lvdm.pwn(469) : error 017: undefined symbol \"playeid\"
H:\\sa-mp\\szerver\\gamemodes\\lvdm.pwn(478) : error 017: undefined symbol \"playeid\"
H:\\sa-mp\\szerver\\gamemodes\\lvdm.pwn(484) : error 017: undefined symbol \"playeid\"
-
A példákban elírásokat találtam próbáld most.
-
Hasznos kis tut :)
-
ja és le hagytad a parancsonál a return 1; nél ezt ; meg hogy csatlakosztál ott pediga szint igy pedig jó nekem csak még egy hiba ha kilépek dm bol akkor is ugyan oda rak ha be irom hogy /kill és ugyan abba virtualdwolrdbe vagyaok
-
Köszönöm, a hibák jelzését. Korrigáltam a leírást.
-
925 if (strcmp(\"/rocket-dm\", cmdtext, true) == 0)[/quote]
C:\\Program Files\\Rockstar Games\\Szerver2\\gamemodes\\lvdm2.pwn(925) : warning 225: unreachable code[/quote]
-
Több mint valószínu hogy a parancsod végén vagy nincs return 1;, vagy valamelyik függvény amit meghívtál nem hívódhat meg.
-
Több mint valószínu hogy a parancsod végén vagy nincs return 1;
van return1;
vagy valamelyik függvény amit meghívtál nem hívódhat meg.
[/quote]
???
-
Pl:
public OnPlayerSpawn(playerid) {
if(1 == 1) return printf(\"Ez tuti meghivodik\");
else return printf(\"Erre viszont wanringot ir. Hogy nem lehet 1 ugyan az mint 1\");
return 1;
}
de a warningokkal is futni fog a scripted.
-
Hello
Nagyon jó lett de van 1 gondom!
Azt hogy csináljam meg hogy a filterscriptek parancsait is tiltsa le?
-
ha fs-be van irva csak akkor lehet ..na meg ha ez inc lenne :)
-
Értem
Kössz
-
Hali!
Lehet nagyon hülye kérdésem van,de pawnozás nem az erosségem.A legelso sort azt a staticosat hova kell beilleszteni?
-
A GM tetejére, ugyanúgy mint a new -okat.
-
thx.
-
Segítettél! Kösz!
-
Örülök, hogy segíthettem.
-
Ó thx, amikor másképp oldottam meg az egész bebugolt és kicrashelt :D Nagy segítég volt ;)
-
Sikerült megcsinálni ,kösz,de van egy kis bukkanó!A teleportokat meg az autó spawnolást még mindig engedi a DM zónában!
-
Ó thx, amikor másképp oldottam meg az egész bebugolt és kicrashelt :D Nagy segítég volt ;)
Örülök, hogy segíthettem.
[/quote]
A telepotokat és az autospawnert a játékmódnak kell tartalmaznia.
-
A teleportokat a játékmód tartalmazza
-
És, a javasolt helyen vannak?
-
Ezt inkább átrakom a tanulós részbe :D
Nagyon hasznos :)
-
És, a javasolt helyen vannak?
Igen,a javasolt helyen vannak, oda raktam mindent ahova kell!
-
Ezek szerint az \'/exitdm\' parancs az összes többi parancsod felett van? (legalábbis a teleportok felett)
-
Ezek szerint az \'/exitdm\' parancs az összes többi parancsod felett van? (legalábbis a teleportok felett)
Igen,alá kelett volna rakni? :)
-
Nem.
Szervered használ filterszkripteket?
-
Nem.
Szervered használ filterszkripteket?
Igen használ,köszi de már megvan,igazából evvel segítettél a legjobban:
Ezek szerint az \'/exitdm\' parancs az összes többi parancsod felett van? (legalábbis a teleportok felett)
[/quote]
Köszi! ;)
-
Nincs mit. ;)
-
Nekem 1 errort ír.
...(94) : error 030: compound statement not closed at the end of file (started at line 64)
És a 64-es sor:
if (strcmp(\"/exitdm\", cmdtext, true) == 0)
{
if(dmid[playerid] == -1) return SendClientMessage(playerid,0xbc0000, \"A parancs használatához elobb lépj be egy DM zónába!\");
dmid[playerid] = -1;
SpawnPlayer(playerid);
return SendClientMessage(playerid,0xbc0000,\"Kiléptél a DeathMatch zónából.\");
}else if(dmid[playerid] != -1) return SendClientMessage(playerid,0xbc0000,\"Elöbb lépj ki a dm-bõl!\");
Return 1; -et is próbáltam a parancs végére rakni, de így meg 7 error xd
Valaki leírná hogy mit tegyek? pls
Akár az is jó ha linkeltek egy kész dm zónát
-
Ha a hiba a 94-es sorban van miért a 64-eset másoltad be?
-
Alapból egy kérdés felvetõtödd bennem:
else if(dmid[playerid] != -1) return SendClientMessage(playerid,0xbc0000,\"Elöbb lépj ki a dm-bõl!\");
Ez minek a végére? Az exitdmnek pont az a lényege ha a változó értéke nem -1 akkor DMbõl ki tud lépni.
2 lehetséges út van: vagy bent van a DMben vagy nincs. Ha nincs bent akkor bekell lépnie, ha bent van kitud lépni, de azt hogy csinálja hogy \"Elõbb lépj ki a dm-bõl!\"? :D
Ez a sor szerintem felesleges.
-
Alapból egy kérdés felvetõtödd bennem:
else if(dmid[playerid] != -1) return SendClientMessage(playerid,0xbc0000,\"Elöbb lépj ki a dm-bõl!\");
Ez minek a végére? Az exitdmnek pont az a lényege ha a változó értéke nem -1 akkor DMbõl ki tud lépni.
2 lehetséges út van: vagy bent van a DMben vagy nincs. Ha nincs bent akkor bekell lépnie, ha bent van kitud lépni, de azt hogy csinálja hogy \"Elõbb lépj ki a dm-bõl!\"? :D
Ez a sor szerintem felesleges.
Nem.
Félreértelmezted az feltételeket.
Ha azt írta be, hogy \"/exitdm\" akkor lefut a parancs, ha pedig mást, akkor kiírja, hogy elõbb lépj ki a DM-bõl.
Amit készítettünk:
A játékosok nem használhatnak más parancsokat míg nem hagyják el a dm zónát.
[/quote]
-
Ha a hiba a 94-es sorban van miért a 64-eset másoltad be?
MERT 94-es sor NINCS xD
Lehet én baxtam el. Itt van, lehet ebbe van a hiba, ha láttok hibát plz iríátok le!
#define FILTERSCRIPT
#include <a_samp>
static dmid[MAX_PLAYERS]={ -1};
public OnFilterScriptInit()
{
print(\"\\n--------------------------------------\");
print(\" DM zóna\");
print(\" Készítõ: Lancer\");
print(\" Ez alapján:\");
print(\" http://sampforum.hu/index.php?topic=3967.0\");
print(\"--------------------------------------\\n\");
return 1;
}
public OnPlayerDisconnect(playerid,reason)
{
dmid[playerid] = -1;
return 1;
}
public OnPlayerSpawn(playerid)
{
switch(dmid[playerid])
{
case 0: // 0-ás azonosítószámú dm zónához tartozó tevékenységek
{
SetPlayerPos(playerid,0.0,0.0,3.5); // Elhelyezés a dMben. Itt akár véletlenszeru spawnot is írhatunk, de az átláthatóság kedvéért maradjunk ennél ;)
SetPlayerFacingAngle(playerid,90.0); // Játékos írányba állítása; elforgatás
ResetPlayerWeapons(playerid); // fegyverek elvétele <- FONTOS
GivePlayerWeapon(playerid,4,1); // Felfegyverzés
GivePlayerWeapon(playerid,34,10); // Felfegyverzés
SetPlayerVirtualWorld(playerid,dmid[playerid]); // áthelyezés mási VW-be
}
case 1: // 1-es azonosítószámú dm zónához tartozó tevékenységek
{
SetPlayerPos(playerid,-1379.3,428.2,30.0); // Elhelyezés a dMben. Itt akár véletlenszeru spawnot is írhatunk, de az átláthatóság kedvéért maradjunk ennél ;)
SetPlayerFacingAngle(playerid,180.0); // Játékos írányba állítása; elforgatás
ResetPlayerWeapons(playerid); // fegyverek elvétele <- FONTOS
GivePlayerWeapon(playerid,24,100); // Felfegyverzés
GivePlayerWeapon(playerid,34,10); // Felfegyverzés
SetPlayerVirtualWorld(playerid,dmid[playerid]); // áthelyezés mási VW-be
}
case 2: // 2-es azonosítószámú dm zónához tartozó tevékenységek
{
SetPlayerPos(playerid,1379.3,-28.2,30.0); // Elhelyezés a dMben. Itt akár véletlenszeru spawnot is írhatunk, de az átláthatóság kedvéért maradjunk ennél ;)
SetPlayerFacingAngle(playerid,110.0); // Játékos írányba állítása; elforgatás
ResetPlayerWeapons(playerid); // fegyverek elvétele <- FONTOS
GivePlayerWeapon(playerid,20,100); // Felfegyverzés
GivePlayerWeapon(playerid,32,10); // Felfegyverzés
SetPlayerVirtualWorld(playerid,dmid[playerid]); // áthelyezés mási VW-be
}
default: // Alap spawn funkciók. Amikor a játékos NINCS DM-BEN ÉS ÚGY SPAWNOL
{// Ide kell írni ami alap ból az OnPlayerSpawnnál volt
GivePlayerMoney(playerid,100);
GivePlayerWeapon(playerid,1,1);
SetPlayerVirtualWorld(playerid,0); // Vissz*rakás az alap VW-be FONTOS
}
}
return 1;
}
public OnPlayerCommandText(playerid, cmdtext[])
{
if (strcmp(\"/exitdm\", cmdtext, true) == 0)
{
if(dmid[playerid] == -1) return SendClientMessage(playerid,0xbc0000, \"A parancs használatához elobb lépj be egy DM zónába!\");
dmid[playerid] = -1;
SpawnPlayer(playerid);
return SendClientMessage(playerid,0xbc0000,\"Kiléptél a DeathMatch zónából.\");
}else if(dmid[playerid] != -1) return SendClientMessage(playerid,0xbc0000,\"Elöbb lépj ki a dm-bõl!\");
if (strcmp(\"/dm1\", cmdtext, true) == 0)
{
dmid[playerid] = 0; // Azonosítószám megadása FONTOS
SpawnPlayer(playerid); // Játékos lespawnolása
SendClientMessage(playerid,0xbc0000,\"Ez még csak egy teszt parancs.\");
return 1;
}
if (strcmp(\"/dm2\", cmdtext, true) == 0)
{
dmid[playerid] = 1; // Azonosítószám megadása FONTOS
SpawnPlayer(playerid); // Játékos lespawnolása
SendClientMessage(playerid,0xbc0000,\"Ez még csak egy teszt parancs.\");
return 1;
}
if (strcmp(\"/dm3\", cmdtext, true) == 0)
{
dmid[playerid] = 2; // Azonosítószám megadása FONTOS
SpawnPlayer(playerid); // Játékos lespawnolása
SendClientMessage(playerid,0xbc0000,\"Ez még csak egy teszt parancs.\");
return 1;
}
return 0;
-
#define FILTERSCRIPT
#include <a_samp>
#pragma tabsize 0
static dmid[MAX_PLAYERS]={ -1};
public OnFilterScriptInit()
{
print(\"\\n--------------------------------------\");
print(\" DM zóna\");
print(\" Készítõ: Lancer\");
print(\" Ez alapján:\");
print(\" http://sampforum.hu/index.php?topic=3967.0\");
print(\"--------------------------------------\\n\");
return 1;
}
public OnPlayerDisconnect(playerid,reason)
{
dmid[playerid] = -1;
return 1;
}
public OnPlayerSpawn(playerid)
{
switch(dmid[playerid])
{
case 0: // 0-ás azonosítószámú dm zónához tartozó tevékenységek
{
SetPlayerPos(playerid,0.0,0.0,3.5); // Elhelyezés a dMben. Itt akár véletlenszeru spawnot is írhatunk, de az átláthatóság kedvéért maradjunk ennél
SetPlayerFacingAngle(playerid,90.0); // Játékos írányba állítása; elforgatás
ResetPlayerWeapons(playerid); // fegyverek elvétele <- FONTOS
GivePlayerWeapon(playerid,4,1); // Felfegyverzés
GivePlayerWeapon(playerid,34,10); // Felfegyverzés
SetPlayerVirtualWorld(playerid,dmid[playerid]); // áthelyezés mási VW-be
}
case 1: // 1-es azonosítószámú dm zónához tartozó tevékenységek
{
SetPlayerPos(playerid,-1379.3,428.2,30.0); // Elhelyezés a dMben. Itt akár véletlenszeru spawnot is írhatunk, de az átláthatóság kedvéért maradjunk ennél
SetPlayerFacingAngle(playerid,180.0); // Játékos írányba állítása; elforgatás
ResetPlayerWeapons(playerid); // fegyverek elvétele <- FONTOS
GivePlayerWeapon(playerid,24,100); // Felfegyverzés
GivePlayerWeapon(playerid,34,10); // Felfegyverzés
SetPlayerVirtualWorld(playerid,dmid[playerid]); // áthelyezés mási VW-be
}
case 2: // 2-es azonosítószámú dm zónához tartozó tevékenységek
{
SetPlayerPos(playerid,1379.3,-28.2,30.0); // Elhelyezés a dMben. Itt akár véletlenszeru spawnot is írhatunk, de az átláthatóság kedvéért maradjunk ennél
SetPlayerFacingAngle(playerid,110.0); // Játékos írányba állítása; elforgatás
ResetPlayerWeapons(playerid); // fegyverek elvétele <- FONTOS
GivePlayerWeapon(playerid,20,100); // Felfegyverzés
GivePlayerWeapon(playerid,32,10); // Felfegyverzés
SetPlayerVirtualWorld(playerid,dmid[playerid]); // áthelyezés mási VW-be
}
default: // Alap spawn funkciók. Amikor a játékos NINCS DM-BEN ÉS ÚGY SPAWNOL
{// Ide kell írni ami alap ból az OnPlayerSpawnnál volt
GivePlayerMoney(playerid,100);
GivePlayerWeapon(playerid,1,1);
SetPlayerVirtualWorld(playerid,0); // Vissz*rakás az alap VW-be FONTOS
}
}
return 1;
}
public OnPlayerCommandText(playerid, cmdtext[])
{
if (strcmp(\"/exitdm\", cmdtext, true) == 0)
{
if(dmid[playerid] == -1) return SendClientMessage(playerid,0xbc0000, \"A parancs használatához elobb lépj be egy DM zónába!\");
dmid[playerid] = -1;
SpawnPlayer(playerid);
return SendClientMessage(playerid,0xbc0000,\"Kiléptél a DeathMatch zónából.\");
}else if(dmid[playerid] != -1) return SendClientMessage(playerid,0xbc0000,\"Elöbb lépj ki a dm-bõl!\");
if (strcmp(\"/dm1\", cmdtext, true) == 0)
{
dmid[playerid] = 0; // Azonosítószám megadása FONTOS
SpawnPlayer(playerid); // Játékos lespawnolása
SendClientMessage(playerid,0xbc0000,\"Ez még csak egy teszt parancs.\");
return 1;
}
if (strcmp(\"/dm2\", cmdtext, true) == 0)
{
dmid[playerid] = 1; // Azonosítószám megadása FONTOS
SpawnPlayer(playerid); // Játékos lespawnolása
SendClientMessage(playerid,0xbc0000,\"Ez még csak egy teszt parancs.\");
return 1;
}
if (strcmp(\"/dm3\", cmdtext, true) == 0)
{
dmid[playerid] = 2; // Azonosítószám megadása FONTOS
SpawnPlayer(playerid); // Játékos lespawnolása
SendClientMessage(playerid,0xbc0000,\"Ez még csak egy teszt parancs.\");
return 1;
}
return 0;
}
Tessék, elvileg jó :)
-
Frissítve!
Korrigáltam egy - a leírás elkészültekor észre nem vett - dolgot, mégpedig azt, hogy:
Nem lecsatlakozáskor kell \'üríteni\', hanem felcsatlakozáskor, ugyanis szerver-újraindítás esetén nem történik lecsatlakozás. (nem hívódik meg az eljárás)
Érdemes a szkriptjeitekben is átírni, nem kötelezõ, és a fent leírtakon kívül más hátránya sincs.
-
Szép leírás.
(Nem ajánlom a definálást x)
Ezt kifejtenéd bõvebben mire érted és miért is?
-
Lásd:
#define CSIPADM1 1
#define CSIPADM2 2
#define CSIPADM3 3
#define CSIPADM4 4
#define CSIPADM5 5
#define CSIPADM6 6
#define CSIPADM7 7
Lassítják az átfordítást és feleslegesek (olyan nehéz megjegyezni pár számot?)
-
Ilyen esetben még nem annyira nehéz, de mondjuk ha van már 15+ DM-ed, akkor más a helyzet :D
-
Azt értem hogy lassítják az átfordítást de megelõznek egy csomó hibát amit nem odafigyelés végett el lehet követni. Ezért én meg ajánlom a használatát.
Ha van CSIPAUZI dm és az már 14-es dm, szerintem egyszerûbb megjegyezni ha egy hivatkozást CSIPAUZI névre tesszük mint azt hogy dm egyenlõ-e 14-el. A pawn fordító meg ha most 100ms késõbb fordítja át akkor meg kibírom várni.
13 és 15 ezer sor közt ingázó módomat átlag 3700ms-4000ms alatt fordítja át, amiben van pár include fájl is. Szerintem ennyit igazán ki lehet bírni.
-
hasznáát veszeem
-
És igaz ha ZCMD-vel használnám akkor hasznavehetetlen?
-
És ugyan miért ne mûködne?....
-
Na ki próbáltam de ez a hiba üdvözölt:
********\\SAMPSZERVER\\gamemodes\\xxxxx.pwn(543) : error 010: invalid function or declaration
És ezt a sort hibáztatja:
}else if(dmid[playerid] != -1) return SendClientMessage(playerid,pirosszin,\"Elöbb lépj ki a dmbol\");
EDIT: PROBLÉMÁT MEGOLDOTTAM
-
Sziasztok? hogy lehet a Virtual World-ot beállítani? Mert nemtalálom a leírásban :-[
-
[pawn]SetPlayerVirtualWorld(playerid, VirtualWolrdid);[/pawn]
-
Odaírtam de nem tesz arra a VW-re.
-
Hova írtad?
-
Odaírtam de nem tesz arra a VW-re :-[
-
Ha a leírás szerint készíted, nem kell odaraknod, mert tartalmazza.
-
Jó kis leirás biztos valakinek jóljön :)
-
Na ki próbáltam de ez a hiba üdvözölt:
********\\SAMPSZERVER\\gamemodes\\xxxxx.pwn(543) : error 010: invalid function or declaration
És ezt a sort hibáztatja:
}else if(dmid[playerid] != -1) return SendClientMessage(playerid,pirosszin,\"Elöbb lépj ki a dmbol\");
EDIT: PROBLÉMÁT MEGOLDOTTAM
én meg nemtomezt...
-
Na ez kellet nekem köszi :)
-
Jó lett Köszi!
-
hasznos jó lett :D
-
nem rossz kezdõknek :thumbsup:
-
Mûködik, minden fain.
RandomSpawnt, hogy lehet hozzárendelni?
-
OnPlayerSpawn alatt van ugye a case 0: cuccnál ez:
SetPlayerPos(playerid,0.0,0.0,3.5);
Ez ezt írd át erre:
switch(random(5))
{
case 0: SetPlayerPos(playerid,0.0,0.0,3.5);
case 1; SetPlayerPos(playerid,0.0,0.0,3.5);
//case 2:
}
-
OnPlayerSpawn alatt van ugye a case 0: cuccnál ez:
SetPlayerPos(playerid,0.0,0.0,3.5);
Ez ezt írd át erre:
switch(random(5))
{
case 0: SetPlayerPos(playerid,0.0,0.0,3.5);
case 1; SetPlayerPos(playerid,0.0,0.0,3.5);
//case 2:
}
Valamiért kifagy a pawno amikor lecompilezom. :confused:
-
OnPlayerSpawn alatt van ugye a case 0: cuccnál ez:
SetPlayerPos(playerid,0.0,0.0,3.5);
Ez ezt írd át erre:
switch(random(5))
{
case 0: SetPlayerPos(playerid,0.0,0.0,3.5);
case 1; SetPlayerPos(playerid,0.0,0.0,3.5);
//case 2:
}
public OnPlayerSpawn(playerid)
{
switch(dmid[playerid])
{
case 0: // 0-ás azonosítószámú dm zónához tartozó tevékenységek
{
switch(random(3))
{
case 0: SetPlayerPos(playerid,0.0,0.0,3.5);
case 1; SetPlayerPos(playerid,0.0,0.0,3.5);
case 2: SetPlayerPos(playerid,0.0,0.0,3.5);
}
SetPlayerFacingAngle(playerid,90.0); // Játékos írányba állítása; elforgatás
ResetPlayerWeapons(playerid); // fegyverek elvétele <- FONTOS
GivePlayerWeapon(playerid,4,1); // Felfegyverzés
GivePlayerWeapon(playerid,34,10); // Felfegyverzés
SetPlayerVirtualWorld(playerid,dmid[playerid]); // áthelyezés mási VW-be
}
//case 1 stb ahogy a fõpostban van
-
Már nem fagy ki, viszont maradt 4 error.
Most vagy vak vagyok, vagy nemtudom... ::| :D
Itt az én kódom:
public OnPlayerSpawn(playerid)
{
switch(dmid[playerid])
{
case 0:
{
SetPlayerHealth(playerid, 100);
SetPlayerArmour(playerid, 0);
SetPlayerPos(playerid,1777.3622,-1774.7927,52.4688);
SetPlayerFacingAngle(playerid,90.0);
ResetPlayerWeapons(playerid);
GivePlayerWeapon(playerid,26,1500);
SetPlayerVirtualWorld(playerid,dmid[playerid]);
}
case 1:
{
{
switch(random(6))
{
case 0: SetPlayerPos(playerid,2614.9651,2708.6431,25.8222);
case 1: SetPlayerPos(playerid,2591.8381,2699.1733,10.8203);
case 2: SetPlayerPos(playerid,2671.5667,2818.5789,36.3222);
case 3: SetPlayerPos(playerid,2544.7354,2800.0752,10.8203);
case 4: SetPlayerPos(playerid,2607.7263,2809.6113,10.8203);
case 5: SetPlayerPos(playerid,2647.5715,2804.6311,10.8203);
}
SetPlayerHealth(playerid, 100);
SetPlayerArmour(playerid, 100);
SetPlayerFacingAngle(playerid,180.0);
ResetPlayerWeapons(playerid);
GivePlayerWeapon(playerid,22,1900);
GivePlayerWeapon(playerid,25,750);
GivePlayerWeapon(playerid,29,1650);
GivePlayerWeapon(playerid,30,1650);
GivePlayerWeapon(playerid,34,60);
GivePlayerWeapon(playerid,16,5);
SetPlayerVirtualWorld(playerid,dmid[playerid]);
}
case 2: //Ez az 588-as sor
{
SetPlayerHealth(playerid, 50);
SetPlayerArmour(playerid, 0);
SetPlayerPos(playerid,2462.4910,2287.7676,91.6300);
SetPlayerFacingAngle(playerid,110.0);
ResetPlayerWeapons(playerid);
GivePlayerWeapon(playerid,10,1);
SetPlayerVirtualWorld(playerid,dmid[playerid]);
}
default:
{
SetPlayerHealth(playerid, 100);
SetPlayerArmour(playerid, 0);
new rand = random(sizeof(RandomSpawn));
SetPlayerPos(playerid, RandomSpawn[rand][0], RandomSpawn[rand][1],RandomSpawn[rand][2]);
SetPlayerVirtualWorld(playerid, 0);
SetPlayerInterior(playerid, 0);
StopAudioStreamForPlayer (playerid);
}
}
return 1;
}
Hibakód:
SZERVER\\gamemodes\\Bworld.pwn(588) : error 014: invalid statement; not in switch
SZERVER\\gamemodes\\Bworld.pwn(588) : warning 215: expression has no effect
SZERVER\\gamemodes\\Bworld.pwn(588) : error 001: expected token: \";\", but found \":\"
SZERVER\\gamemodes\\Bworld.pwn(588) : error 029: invalid expression, assumed zero
SZERVER\\gamemodes\\Bworld.pwn(588) : fatal error 107: too many error messages on one line
-
case 1:
{
{
Találd meg
-
Basszus... Jól benéztem... :D
Köszönet mindenkinek!