Takže ahoj,
Ukážu vám jednoduchý základ admin systému vše jsem dělal já až na příkaz ten do 35% sem dělal já sám xD
Pusťme se do toho :-)
#include <a_samp>//zakladní include
#include <dini>//ukladací include
#include <izcmd>//přikazový include
#define MAX_PLAYERS_EX 100 //zadejte si počet slotů které máte na serveru
new al[MAX_PLAYERS_EX]; //podmínka kterou vzniká celý admin systém
//========tak a pustíme se do práce========//
//========1 věc ukladání========//
stock SaveLevel(playerid)//ukladání admin levelu zapotřebí include dini
{
new cesta[64];
format(cesta, sizeof(cesta),"WS/%s.cfg", Meno(playerid));// 'WS' je složka kterou máte vytvořenou ve scriptfiles jestli nemáte vytvořte jí
if(!fexist(cesta)) dini_Create(cesta);
{
dini_IntSet(cesta, "ALevel", al[playerid]);//uložíme
}
return 1;
}
public OnPlayerDisconnect(playerid,reason)//když se hráč odpojí ze hry (/q)
{
SaveLevel(playerid);//uloží mu to admin level
return 1;
}
//========2.načitání========//
stock LoadLevel(playerid)//načitání admin levelu zapotřebí include dini
{
new cesta[64];
format(cesta, sizeof(cesta),"WS/%s.cfg", Meno(playerid));
if(fexist(cesta))
{
al[playerid] = dini_Int(cesta,"ALevel");//načteme
}
if(!fexist(cesta)) fremove(cesta);
return 1;
}
public OnPlayerConnect(playerid)//když se hráč připojí
{
LoadLevel(playerid);//načte mu to uložený admin level
return 1;
}
//========3.Admin přikaz========//
CMD:vyhra(playerid,params[])//výhra přikaz
{//zacatek
if(al[playerid] < 3) return SendClientMessage(playerid, -1, "{ff0066}[ ES ] {ffffff}Musíš mít {00ccff}Dostatečný Level.");//když hráč má admin level stejný jak 3 a nebo i 3+ admin level např lvl 4 může použit příkaz
if(!strlen(params)||!IsNumeric(params)) return SendClientMessage(playerid,-1,"{ff0000}[ ES ] Použití: {ffffff}/Vyhra [ ID ]"); //použití = když hráč zadal např.: /vyhra 0 500000 vyjede mu tato zpráva že je špatně příkaz
new string[1000];//[1000] = délka písma jinak string je použít pro format a pro zprávu všem může být použit i na jiné věci než je sendclientmessagetoall
new CMD_ID = strval(params);//definice id zvoleného hráče
if(!IsPlayerConnected(CMD_ID)) return SendClientMessage(playerid,-1,"{ff0066}[ ES ] {ffffff}Tento Hráč neni pripojený.");//když hráč není připojený
format(string,sizeof(string),"{ff0000}Eventér {ffffff}%s {ff0000}udělil výhru hráčovi {ffffff}%s [{ff0000} 7.000.000{ffffff}]",Meno(playerid),Meno(CMD_ID));//format který použijeme níze pro zprávu všem
SendClientMessageToAll(0x0000FFFF,string);//zpráva do chatu pro všechny barva, format který jsme použili víš
GivePlayerMoney(CMD_ID, 7000000);//zakladní samp funcke pro davání pěněz POZOR!! ve rze 8 a nižší verze nejde
return CMD_SUCCESS;//samotný return
}//konec
//=======potřebné věci=====//
stock IsNumeric(const string[])
{
new length=strlen(string);
if (length==0) return false;
for (new i = 0; i < length; i++)
{
if ((string[i] > '9' || string[i] < '0' && string[i]!='-' && string[i]!='+')|| (string[i]=='-' && i!=0)|| (string[i]=='+' && i!=0)) return false;
}
if (length==1 && (string[0]=='-' || string[0]=='+')) return false;
return true;
}
stock Meno(playerid)
{
new pName[MAX_PLAYER_NAME];
if(IsPlayerConnected(playerid))
{
GetPlayerName(playerid, pName, sizeof(pName));
}
return pName;
}
//=======KONEC=====//
Includy máte v attachments xD
Admin.rar