parancsolj..ez saját, egy elkezdet módomnak az eleje...
egy-két módosítás kellhet, de egyébként mûködik..
a scriptfilesba: server.ini
scriptfileson belül Jatekosok mappa
#include <a_samp>
#include <dini>
#include <zcmd>
#define Version \"1.0\"
#define Maker \"JustaCube\"
#define web \"phoenix.clans.hu\"
#define PlayerSlot 60
#define ServerFile \"/server.ini\"
#define AccFile \"/Jatekosok/%s.ini\"
new strr[1024],file[128], str[1024];
#define DIALOG_REGISTER 1
#define DIALOG_LOGIN 2
#define KICK_DIALOG 3
#define LGreen 0x00ff00AA
#define RED 0xff0000aa
#define Orange 0xff9900AA
enum Adatok {
Level,
Pass[128],
Vip,
Money,
Score,
LoggedIn,
LoginWarn,
Warns,
OnServer
};
new Data[MAX_PLAYERS][Adatok];
main(){}
public OnGameModeInit()
{
print(\"A szerver töltõdik....\");
CheckConfig();
SetGameModeText(dini_Get(ServerFile, \"GameMode\"));
format(str, sizeof(str), \"hostname %s\", dini_Get(ServerFile, \"ServerName\"));
SendRconCommand(str);
format(str, sizeof(str), \"weburl %s\", web);
SendRconCommand(str);
printf(\"A szerver betöltve. Készítõ: %s, Verzió: %s\", Maker, Version);
return 1;
}
public OnPlayerConnect(playerid)
{
RegCheck(playerid);
format(strr, sizeof(strr), \"-==[%s csatlakozott a szerverhez! (%d/%d)]==-\", pName(playerid), GetPlayersOnServer(), PlayerSlot);
SendClientMessageToAll(Orange, strr);
printf(\"%s csatlakozott a szerverhez!(%d/%d)\",pName(playerid),GetPlayersOnServer(), PlayerSlot);
return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
SavePlayerData(playerid);
switch(reason)
{
case 0: format(strr, sizeof(strr), \"-==[%s elhagyta a szervert! (Crash)]==-\", pName(playerid));
case 1: format(strr, sizeof(strr), \"-==[%s elhagyta a szervert! (Kilépés)]==-\", pName(playerid));
case 2: format(strr, sizeof(strr), \"-==[%s elhagyta a szervert! (Kick/Ban)]==-\", pName(playerid));
}
SendClientMessageToAll(Orange, strr);
return 1;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
format(file, sizeof(file), AccFile, pName(playerid));
if(dialogid == DIALOG_REGISTER)
{
if(!response) return Kickk(playerid, \"Szerver\", \"Nem regisztrált!\");
else
if(response)
{
if(!strlen(inputtext) || strlen(inputtext) < 4 || strlen(inputtext) > 20)
{
format(str, sizeof(str),\"Hibásan adtad meg a jelszavad a regisztrációhoz!\\nA jelszó nem lehet kisebb, mint 3 karakter!\\nKérlek próbáld meg újra a regisztrációt!\");
ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD, \"Regisztráció\", str, \"Regisztráció\", \"Kilép\");
}
else
{
dini_Create(file);
dini_IntSet(file, \"Level\", 0);
dini_Set(file, \"Pass\", inputtext);
dini_IntSet(file, \"Money\", 0);
dini_IntSet(file, \"Score\", 0);
dini_IntSet(file, \"Vip\", 0);
dini_IntSet(file, \"OnServer\", 1);
dini_IntSet(ServerFile, \"Regisztraltak\", dini_Int(ServerFile, \"Regisztraltak\") +1);
SendClientMessage(playerid, LGreen, \"Sikeresen regisztráltál......\");
}
}
}
if(dialogid == DIALOG_LOGIN)
{
if(!response)
{
if(Data[playerid][LoginWarn] < 3)
{
ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, \"Bejelentkezés\", \"Hibásan adtad meg a jelszavad\\nKérlek próbáld meg újra!\", \"Belépés!\", \"Mégse\");
Data[playerid][LoginWarn]++;
}else
if(Data[playerid][LoginWarn] > 2)
{
Kickk(playerid, \"Szerver\", \"Sikertelen bejelentkezés\");
}
}else
if(response)
{
if(!strcmp(inputtext, Data[playerid][Pass]) && strlen(inputtext) > 2)
{
LoginPlayer(playerid);
}else
if(Data[playerid][LoginWarn] < 3 || !strlen(inputtext))
{
ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, \"Bejelentkezés\", \"{ff0000}Hibásan adtad meg a jelszavad\\nKérlek próbáld meg újra!\", \"Belépés!\", \"Mégse\");
Data[playerid][LoginWarn]++;
}else
if(Data[playerid][LoginWarn] > 2)
{
Kickk(playerid, \"Szerver\", \"Sikertelen bejelentkezés\");
}
}
}
return 1;
}
stock GetPlayersOnServer()
{
new count;
for(new x=0; x< MAX_PLAYERS; x++)
{
if(IsPlayerConnected(x))
{
count++;
}
}
return count;
}
stock SavePlayerData(playerid)
{
format(file, sizeof(file), AccFile, pName(playerid));
dini_IntSet(file, \"Level\", Data[playerid][Level]);
dini_IntSet(file, \"Score\", Data[playerid][score]);
dini_IntSet(file, \"Money\", Data[playerid][Money]);
dini_IntSet(file, \"Vip\", Data[playerid][Vip]);
return 1;
}
stock LoginPlayer(playerid)
{
format(file, sizeof(file), AccFile, pName(playerid));
Data[playerid][Level] = dini_Int(file, \"Level\");
Data[playerid][Money] = dini_Int(file, \"Money\");
Data[playerid][score] = dini_Int(file, \"Score\");
Data[playerid][Vip] = dini_Int(file, \"Vip\");
dini_IntSet(file, \"OnServer\", dini_Int(file, \"OnServer\")+1);
PlayerPlaySound(playerid,1057,0.0,0.0,0.0);
SendClientMessage(playerid, LGreen, \"Sikeresen bejelentkeztél, Jó játékot!\");
return 1;
}
stock CommandCheck(playerid)
{
if(GetPlayerVirtualWorld(playerid) != 0)
{
SendClientMessage(playerid, Red, \"Itt nem használható ez a parancs!\");
}
return 0;
}
stock RegCheck(playerid)
{
format(file, sizeof(file), AccFile, pName(playerid));
if(!dini_Exists(file))
{
format(str, sizeof(str), \"{00ff00}Üdvözlünk, {ffffff}%s!\\n{00ff00}Jelenlegi IP-d: {ffffff}%s\\n\\n\", pName(playerid), pIp(playerid));
strcat(strr, str);
strcat(strr, \"{00ff00}A neved még nincs regisztrálva,\\nÍrj be egy tetszõleges jelszót!\");
ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD, \"Regisztráció:\", strr, \"Regisztrál!\", \"Kilép\");
}else
{
format(Data[playerid][Pass], 256, \"%s\", dini_Get(file, \"Pass\"));
new str2[1024],str3[1024];
format(str2, sizeof(str2), \"{00ff00}Üdvözlünk, {ffffff}%s!\\n{00ff00}Jelenlegi IP-d: {ffffff}%s\\n\\n\", pName(playerid), pIp(playerid));
strcat(str3, str2);
strcat(str3, \"{00ff00}A neved már regisztrálva van,\\nAdd meg a jelszavad a bejelentkezéshez!\");
ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, \"Bejelentkezés:\", str3, \"Belépés!\", \"Kilép\");
}
return 1;
}
stock Kickk(playerid, kickker[], indok[])
{
format(strr, sizeof(strr), \"[KICK] {ffffff}%s{ff0000} kickelve lett {ffffff}%s {ff0000}által! [indok: {ffffff}%s{ff0000}]\",pName(playerid), kickker, indok);
SendClientMessageToAll(RED, strr
);
format(str, sizeof(str),\"{ffffff}Kickelve lettél!\\nKickkelõ:{ff0000}%s\\n{ffffff}Indok:{ff0000}%s\\n\\nHa jogtalannak tartod a kickket,\\nírd meg nekünk a fórumon! ({00ff00}%s{ff0000})\", kickker, indok, web);
ShowPlayerDialog(playerid, KICK_DIALOG, DIALOG_STYLE_MSGBOX, \"Kick!\", str, \"Oké\", \"\");
SetTimerEx(\"KickNow\", 100, false, \"i\", playerid);
return 1;
}
forward KickNow(playerid);
public KickNow(playerid)
{
Kick(playerid);
return 0;
}
stock pName(playerid)
{
new name[32];
GetPlayerName(playerid, name, sizeof(name));
return name;
}
stock pIp(playerid)
{
new ip[32];
GetPlayerIp(playerid, ip, sizeof(ip));
return ip;
}
stock CheckConfig()
{
if(dini_Exists(ServerFile))
{
print(\"A szerver configfájlja létezik, betöltve!\");
}else
{
dini_Create(ServerFile);
print(\"A szerver config fájlja nem létezett, létrehozva!\");
}
return 1;
}