Sziasztok! Készülõben van egy Admin Rendszer, amelynek az alapjával gyorsan végeztem. Úgy gondoltam, készítek egy teljes Admin rendszert, melybõl csupán a mentéssel, és egy alap paranccsal végeztem. Kezdõknek jól jöhet, ha kell egy példa esetleg a fájlba mentéssel kapcsolatban - avagy a dini, és a PlayerInfo használatáról. Ebbõl bárki ki tud indulni, és nem csak Admin rendszert tud belõle gyártani, ezért úgy gondoltam, publikálom. Egy alap parancsot tartalmaz.
Kezdõknek: hozd létre a scriptfiles mappán belül az Adminok mappát, hogy sikeresen elmentõdjenek a szintek!
/*
Alap Admin Rendszer by Dfoglalo
Adminsegéd LvL 1
Admin LvL 2
Fõadmin LvL 3
Tulajdonos LvL 4
Szkripter LvL 5
Az alap parancs, a /acmds (vagy /ahelp vagy /ah) alapján meg tudod írni a többi parancsot.
Ebben a rendszerben autómatikusan betöltõdik, és mentõdik az Admin szint.
Az adott játékos szintje a pAdmin tárolóban tárolódik.
Az if(pInfo[playerid][pAdmin] == 0)-val határozhatod meg, hogy az adott parancs, hányas szintû adminra vonatkozzon.
Példák
>= 3-nál a 3-as, 4-es, és 5-ös adminok használhatják a parancsot.
== 1-nél csak az 1-es Admin használhatja a parancsot.
== 5-nál csak az 5-ös Admin használhatja a parancsot.
== 0-nál csak a 0-ás, azaz sima Játékos használhatja a parancsot.
if(pInfo[playerid][pAdmin] == 1 || pInfo[playerid][pAdmin] == 5) - Csak 1-es, és 5-ös Admin használhatja a parancsot.
*/
#include <a_samp>
#include <sscanf2>
#include <Dini>
#define COLOR_RED 0xFF0000FF
#define COLOR_YELLOW 0xFFFF00FF
enum pInformacio
{
pAdmin,
}
new pInfo[MAX_PLAYERS][pInformacio];
new nev[MAX_PLAYER_NAME];
new Betolt[128];
new Ment[128];
public OnPlayerConnect(playerid)
{
GetPlayerName(playerid, nev, sizeof(nev));
format(Betolt, sizeof(Betolt), \"Adminok/%s.ini\",nev);
if(!dini_Exists(Betolt))
{
dini_Create(Betolt);
dini_Set(Betolt, \"Admin\", \"0\");
dini_IntSet(Betolt, \"Admin\", pInfo[playerid][pAdmin]);
}
else
{
pInfo[playerid][pAdmin] = dini_Int(Betolt,\"Admin\");
}
return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
GetPlayerName(playerid, nev, sizeof(nev));
format(Ment, sizeof(Ment), \"Adminok/%s.ini\",nev);
if(!dini_Exists(Ment)){}
else
{
dini_IntSet(Ment, \"Admin\", pInfo[playerid][pAdmin]);
}
return 1;
}
public OnPlayerCommandText(playerid, cmdtext[])
{
if(!strcmp(cmdtext, \"/acmds\") || !strcmp(cmdtext, \"/ahelp\") || !strcmp(cmdtext, \"/ah\"))
{
if(pInfo[playerid][pAdmin] == 0)
{
SendClientMessage(playerid, COLOR_RED, \"Ezt a parancsot csak Adminok használhatják!\");
}
if(pInfo[playerid][pAdmin] >= 1)
{
SendClientMessage(playerid, COLOR_YELLOW, \"Adminsegéd Parancsok: NINCS\");
}
if(pInfo[playerid][pAdmin] >= 2)
{
SendClientMessage(playerid, COLOR_YELLOW, \"Admin Parancsok: NINCS\");
}
if(pInfo[playerid][pAdmin] >= 3)
{
SendClientMessage(playerid, COLOR_YELLOW, \"Fõadmin Parancsok: NINCS\");
}
if(pInfo[playerid][pAdmin] >= 4)
{
SendClientMessage(playerid, COLOR_YELLOW, \"Tulajdonos Parancsok: NINCS)\");
}
if(pInfo[playerid][pAdmin] >= 5)
{
SendClientMessage(playerid, COLOR_YELLOW, \"Szkripter Parancsok: NINCS\");
}
return 1;
}
return 1;
}
Nem tudom, mikorra lesz kész, mert közben leginkább a módom elkészítésével foglalatoskodom, amelybe viszont valószínûleg ezt az admin rendszert fogom bele tenni.
Akár tanácsokat és észrevételeket is várok!