Kész.
Töltsd le a ZCMDt és a SSCANFt, ha nincs meg, innen:
http://sampforum.hu/index.php?topic=4400.0A szkripted elejére, az #include <a_samp> alá:
#include <zcmd>
#include <sscanf>
Ezzel beágyaztuk a zcmd és a sscanf függvénykönyvtárakat.
Most defináljuk a maximum admin jelszó hosszát(ezt az include sorok alá írd):
#define MAX_JELSZO_HOSSZ 16
Ezzel lehet belépni adminisztrátornak(3 admint írtam, írd át többre, csak az utolsó else if sort kell másolnod):
CMD:admin(playerid, params[])
{
new jelszo[MAX_JELSZO_HOSSZ+1], nev[20];
if (sscanf(params, \"s[MAX_JELSZO_HOSSZ+1]\", jelszo)) return SendClientMessage(playerid, 0xFF0000FF, \"Használat: /admin [jelszó]\");
GetPlayerName(playerid, nev, 20);
if (!strcmp(nev, \"admin_név_1\", true) && !strcmp(jelszo, \"admin_1_jelszava\", false)) SetPVarInt(playerid, \"Admin\", 1);
else if (!strcmp(nev, \"admin_név_2\", true) && !strcmp(jelszo, \"admin_2_jelszava\", false)) SetPVarInt(playerid, \"Admin\", 1);
else if (!strcmp(nev, \"admin_név_3\", true) && !strcmp(jelszo, \"admin_3_jelszava\", false)) SetPVarInt(playerid, \"Admin\", 1);
else return SendClientMessage(playerid, 0xFF0000FF, \"Nem egy admin nevével csatlakoztál fel vagy rossz jelszót adtál meg!\");
return 1;
}
Ezzel tudjuk ellenõrizni, hogy adminisztrátor a felhasználó, vagy sem:
stock IsAnAdmin(playerid) return GetPVarInt(playerid, \"Admin\");
És itt egy példa egy admin parancsra:
CMD:adminuzenet(playerid, params[])
{
new auzenet[128], kuzenet[128], nev[20];
if (sscanf(params, \"s\", auzenet)) return SendClientMessage(playerid, 0xFF0000FF, \"Használat: /adminuzenet [üzenet] - mindenkinek elküldi az üzenetet zöld színnel\");
if (!IsAnAdmin(playerid)) return SendClientMessage(playerid, 0xFF0000FF, \"Ezt a parancsot csak adminisztrátorok használhatják.\");
GetPlayerName(playerid, nev, 20);
format(kuzenet, 128, \"Admin %s: %s\", nev, auzenet);
SendClientMessageToAll(0x00FF00FF, kuzenet);
return 1;
}
Ha bármi gond van, szólj.
Edit: Mielõtt bárki is belekötne, tudom, hogy pár dolgot máshogy is meg lehet oldani, de így lehet a legkönnyebben megérteni.