Forrs:Depi, SampFrumrl DM zna ltrehozsa
Na, amit Ti is lthatjtok a cmbl, most azt fogom lerni Nektek, hogy hogyan is lehet megoldani,
azt ha valaki DM znba van, akkor onnan csak egy bizonyos paranccsal tudjon kijnni ill. ms parancsot se tudjon hasznlni addig.

Na kezdjk is el:

1. Ltre kell hozni egy globlis vltozt, ami trolja, hogy a jtkos Dm znba van-e vagy nincs
new: bool:DM[MAX_PLAYERS];
A vltoznknak kt rtke lehet,
- els:
True
( igaz )
- msodik:
False
( hamis ).
Akkor a
True
jelzi majd, hogy DM znba van, s a
False
pedig hogy nincs.
2. Ha valaki csatlakozik a szerverre akkor a DM vltoz rtke egyrtelmen False ( hamis ) lesz.
public OnPlayerConnect(playerid)
{
DM[playerid] = false;
return 1;
}
Teht, True ( hamis ) rtket adtunk neki.
3. Ha valaki le csatlakozik akkor is False ( hamis ) rtket adunk neki.
public OnPlayerDisconnect(playerid, reason)
{
DM[playerid] = false;
return 1;
}
Jhetnek a parancsok
4.
DM parancs ltrehozsa
if(strcmp(cmdtext, "/dm") == 0 )
{
if(DM[playerid] == true) return SendClientMessage(playerid,0xFFFF00AA,"DM znban vagy ! Elszr /exitdm");
// Lekrdezzk hogy DM znban van-e vagy nincs
ResetPlayerWeapons(playerid); // meglv fegyvereit elvesszk
GivePlayerWeapon(playerid,32,1000); // Adunk neki fegyvert
SetPlayerArmour(playerid, 100); // Adunk neki pnclt
SetPlayerPos(playerid,2782.3257,-2019.7649,13.5620); // Teleport koordintja ( ide teleportlja )
SendClientMessage(playerid, 0xFFFF00AA,"Csatlakoztl a DM-hez! Kilpshez: /exitdm");
// Ki runk neki egy 'inf' szveget
DM[playerid] = true; // belltjuk a DM vltozt, hogy True ( igaz ) rtket mutasson.
return 1; // Visszatrs
}
Ht ennyi lenne, egy egyszer DM parancs, de ezt mg lehet 'cifrzni' karakter,fegyver,let,pncl mentsvel.

Na, ha mr megvolt a DM parancs, akkor hozzunk ltre egy exitdm nev parancsot.

5.
Exitdm parancs ltrehozsa
if(strcmp(cmdtext, "/exitdm") == 0)
{
if(DM[playerid] == false) return SendClientMessage(playerid,0xFFFF00AA,"Nem vagy DM znban!");
DM[playerid] = false; // Ha a jtkos sikeresen kilpet akkor false ( hamis ) rtket kap
SendClientMessage(playerid, 0xFFFF00AA,"Sikeresen kilptl a DM znbl!");
// Ha kilpett a DM znbl akkor kldnk neki zenetet
ResetPlayerWeapons(playerid); // Elvesszk a fegyvereit.
return 1; // Visszatrs
}
Teht, ez lesz az a parancs, amit a DM znba hasznlhat.
6. Nzznk egy egyszer parancsot
if(strcmp(cmdtext, "/tudom") == 0)
{
if(dm[playerid] == true) return SendClientMessage(playerid,0xFFFF00AA,"DM znban vagy ! Elszr /exitdm");
// Megvizsgljuk, hogy DM znba vane- vagy nincs, ha nincs akkor lefut a parancs
SendClientMessage(playerid,0xFFFF00AA,"Ezt mr te is megtanultad!"); // szveget runk neki, ha nincs DM znban
return 1; // Visszatrs
}
Ht ennyi lenne rviden. Lehet kifogom egszti az adatok mentsvel.

Sok sikert.

|
Az elejt elrontottad.
new: bool:DM[MAX_PLAYERS];
helyett
new bool:DM[MAX_PLAYERS];
A kettspont nem kell a new utn.