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!
Nemrossz,de ez kicsit unalmas,bár alap arendszernek jó.
Nemrossz,de ez kicsit unalmas,bár alap arendszernek jó.
Köszi. Nem véletlenül a készülõ munkákhoz raktam, a kezdõknek címezve :D
Ebbõl bárki ki tud indulni, és tud más rendszereket is készíteni, azonban majd publikálni fogom készen is, parancsokkal, de most a módomat írom, tehát nem tudom, mikor.
Szkripter LvL 5 <--Szerintem ezt felejtsd el.... :facepalm:
Szkripter LvL 5 <--Szerintem ezt felejtsd el.... :facepalm:
Mi a bajod?! :facepalm: Ez egy alap te nagyon okos, átírhatja bárki arra, amire akarja.