Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "a_samp"
- #include "dini"
- #include "dutils"
- #define Register 500
- #define Login 501
- #define MaxTimesInvalidPass 3
- #define Spawn_Money 800
- enum MyInfo
- {
- Kills,
- Deaths,
- Bank,
- bool:Logged,
- InvalidPassword
- }
- new Player[MAX_PLAYERS][MyInfo];
- public OnPlayerConnect(playerid)
- {
- Player[playerid][Kills] = 0;
- Player[playerid][Deaths] = 0;
- Player[playerid][Bank] = 0;
- Player[playerid][InvalidPassword] = 0;
- Player[playerid][Logged] = false;
- return true;
- }
- public OnPlayerRequestClass(playerid,classid)
- {
- new string[256];
- if(!Player[playerid][Logged])
- {
- if(!dini_Exists(CheckFile(playerid)))
- {
- format(string, 256, "!áøåê äáà ,%s ùìåí\n\r.àéðê ðøùîú ìîòøëú\n\r.àðà øùåí àú ñéñîúê äçãùä\n\r.ZiPoNz îòøëú ääøùîä åääúçáøåú ðåöøä òì éãé", CheckName(playerid));
- ShowPlayerDialog(playerid, Register, DIALOG_STYLE_INPUT, "!áøåê äáà ìùøú", string, "äøùí", "");
- }
- else
- {
- format(string, 256, "!áøåê ùåáê ,%s ùìåí\n\r.àúä ëáø ðøùîú ìùøú\n\r.àðà øùåí àú ñéñîúê äðåëçéú\n\r.ZiPoNz îòøëú ääøùîä åääúçáøåú ðåöøä òì éãé", CheckName(playerid));
- ShowPlayerDialog(playerid, Login, DIALOG_STYLE_PASSWORD, "!áøåê ùåáê ìùøú", string, "äúçáø", "");
- }
- }
- return true;
- }
- public OnPlayerRequestSpawn(playerid)
- {
- new string[256];
- if(!Player[playerid][Logged])
- {
- if(!dini_Exists(CheckFile(playerid)))
- {
- format(string, 256, "!áøåê äáà ,%s ùìåí\n\r.àéðê ðøùîú ìîòøëú\n\r.àðà øùåí àú ñéñîúê äçãùä\n\r.ZiPoNz îòøëú ääøùîä åääúçáøåú ðåöøä òì éãé", CheckName(playerid));
- ShowPlayerDialog(playerid, Register, DIALOG_STYLE_INPUT, "!áøåê äáà ìùøú", string, "äøùí", "");
- }
- else
- {
- format(string, 256, "!áøåê ùåáê ,%s ùìåí\n\r.àúä ëáø ðøùîú ìùøú\n\r.àðà øùåí àú ñéñîúê äðåëçéú\n\r.ZiPoNz îòøëú ääøùîä åääúçáøåú ðåöøä òì éãé", CheckName(playerid));
- ShowPlayerDialog(playerid, Login, DIALOG_STYLE_PASSWORD, "!áøåê ùåáê ìùøú", string, "äúçáø", "");
- }
- }
- return 1;
- }
- public OnPlayerDisconnect(playerid, reason)
- {
- dini_IntSet(CheckFile(playerid), "Kills", Player[playerid][Kills]);
- dini_IntSet(CheckFile(playerid), "Deaths", Player[playerid][Deaths]);
- dini_IntSet(CheckFile(playerid), "Bank", Player[playerid][Bank]);
- return true;
- }
- public OnPlayerSpawn(playerid)
- {
- ResetPlayerMoney(playerid);
- GivePlayerMoney(playerid, Spawn_Money);
- return true;
- }
- public OnPlayerDeath(playerid, killerid, reason)
- {
- SendDeathMessage(killerid, playerid, reason);
- if(killerid != INVALID_PLAYER_ID)
- {
- Player[killerid][Kills]++;
- Player[playerid][Deaths]++;
- GivePlayerMoney(killerid, GetPlayerMoney(playerid));
- }
- return true;
- }
- public OnPlayerCommandText(playerid, cmdtext[])
- {
- if(!Player[playerid][Logged]) return SendClientMessage(playerid, 0xFFFFFF00, "[Error] .àéðê îçåáø ìùøú");
- new cmd[256], idx;
- cmd = strtok(cmdtext, idx);
- if(!strcmp(cmd, "/changepassword", true))
- {
- cmd = strtok(cmdtext, idx);
- if(strlen(cmd) < 5) return SendClientMessage(playerid, 0xFFFFFF00, "[Error] .àðà øùåí îòì ì 5 úååéí");
- dini_Set(CheckFile(playerid), "Password", cmd);
- return SendClientMessage(playerid, 0xFFFFFF00, "[System] .äéðê òøëú àú ñéñîúê");
- }
- if(!strcmp(cmdtext, "/stats", true))
- {
- new ip[17], string[256];
- GetPlayerIp(playerid, ip, 17);
- format(string, 256, ".%s :äñèèéñèé÷åú ùì", CheckName(playerid));
- SendClientMessage(playerid, 0xFFFFFF00, string);
- format(string, 256, "äøéâåú: %d - îéúåú: %d - îöá äáð÷: %d - äàééôé: %s", Player[playerid][Kills], Player[playerid][Deaths], Player[playerid][Bank], ip);
- return SendClientMessage(playerid, 0xFFFFFF00, string);
- }
- if(!strcmp(cmd, "/bank", true))
- {
- new string[256];
- cmd = strtok(cmdtext, idx);
- if(!strlen(cmd)) return SendClientMessage(playerid, 0xFFFFFF00, "[Command] /bank [withdraw, deposit, balance]");
- if(!strcmp(cmd, "withdraw", true))
- {
- if(!IsPlayerInRangeOfPoint(playerid, 50, -27.312299,-29.277599,1003.557250)) return SendClientMessage(playerid, 0xFFFFFF00, "[Error] ./bank teleport àéðê ðîöà ááð÷, àðà äùúâø ìáð÷ áô÷åãä");
- cmd = strtok(cmdtext, idx);
- if(Player[playerid][Bank] < strval(cmd)) return SendClientMessage(playerid, 0xFFFFFF00, "[Error] .àéï ìê ñëåí æä");
- if(!IsNumeric(cmd) || !strval(cmd)) return SendClientMessage(playerid, 0xFFFFFF00, "[Error] .àðà øùåí îñôøéí îòì äîñôø 1");
- GivePlayerMoney(playerid, strval(cmd));
- Player[playerid][Bank] -= strval(cmd);
- format(string, 256, "[System] àúä äåöàú îäáð÷ %d ãåìøéí, ðùàø ìê áçùáåï òåã %d.", strval(cmd), Player[playerid][Bank]);
- return SendClientMessage(playerid, 0xFFFFFF00, string);
- }
- if(!strcmp(cmd, "deposit", true))
- {
- if(!IsPlayerInRangeOfPoint(playerid, 50, -27.312299,-29.277599,1003.557250)) return SendClientMessage(playerid, 0xFFFFFF00, "[Error] ./bank teleport àéðê ðîöà ááð÷, àðà äùúâø ìáð÷ áô÷åãä");
- cmd = strtok(cmdtext, idx);
- if(GetPlayerMoney(playerid) < strval(cmd)) return SendClientMessage(playerid, 0xFFFFFF00, "[Error] .àéï ìê ñëåí æä");
- if(!IsNumeric(cmd) || !strval(cmd)) return SendClientMessage(playerid, 0xFFFFFF00, "[Error] .àðà øùåí îñôøéí îòì äîñôø 1");
- GivePlayerMoney(playerid, -strval(cmd));
- Player[playerid][Bank] += strval(cmd);
- format(string, 256, "[System] äéðê ùîú ááð÷ %d ãåìøéí, éù ìê ëòú áçùáåï äáð÷ %d.", strval(cmd), Player[playerid][Bank]);
- return SendClientMessage(playerid, 0xFFFFFF00, string);
- }
- if(!strcmp(cmd, "status", true))
- {
- if(!IsPlayerInRangeOfPoint(playerid, 50, -27.312299,-29.277599,1003.557250)) return SendClientMessage(playerid, 0xFFFFFF00, "[Error] ./bank teleport àéðê ðîöà ááð÷, àðà äùúâø ìáð÷ áô÷åãä");
- format(string, 256, "[System] .éù ìê áçùáåï äáð÷ %d ãåìøéí", Player[playerid][Bank]);
- return SendClientMessage(playerid, 0xFFFFFF00, string);
- }
- if(!strcmp(cmd, "teleport", true))
- {
- SetPlayerPos(playerid, -27.312299,-29.277599,1003.557250);
- SetPlayerInterior(playerid, 4);
- return SendClientMessage(playerid, 0xFFFFFF00, "[System] .äùúâøú ìáð÷");
- }
- return true;
- }
- return false;
- }
- public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
- {
- switch(dialogid)
- {
- case Register:
- {
- new string[256];
- if(strlen(inputtext) < 5) return ShowPlayerDialog(playerid, Register, DIALOG_STYLE_INPUT, "!áøåê äáà ìùøú", "!ùìåí, áøåê äáà\n\r.àéðê øùåí ìùøú æä\n\r.àðà øùåí àú äñéñîà äçãùä ùìê\n\r\n\r.àðà úøùåí úååéí ðåñôéí ìñéñîà", "Register", "");
- dini_Create(CheckFile(playerid));
- dini_Set(CheckFile(playerid), "Password", inputtext);
- dini_IntSet(CheckFile(playerid), "Kills", 0);
- dini_IntSet(CheckFile(playerid), "Deaths", 0);
- dini_IntSet(CheckFile(playerid), "Bank", 0);
- Player[playerid][Kills] = dini_Int(CheckFile(playerid), "Kills");
- Player[playerid][Deaths] = dini_Int(CheckFile(playerid), "Deaths");
- Player[playerid][Bank] = dini_Int(CheckFile(playerid), "Bank");
- Player[playerid][Logged] = true;
- format(string, 256, "%s ðøùí ìùøú áäöìçä.", CheckName(playerid));
- SendClientMessageToAll(0xFFFFFF00, string);
- }
- case Login:
- {
- new string[256];
- if(strcmp(inputtext, dini_Get(CheckFile(playerid), "Password"), false) != 0)
- {
- if(Player[playerid][InvalidPassword] == MaxTimesInvalidPass)
- {
- SendClientMessage(playerid, 0xFFFFFF00, ".(äéðê ÷éáìú ÷é÷ òì îéøá äðñéåðåú ääúçáøåú ùëùìå (3 ôòîéí");
- Kick(playerid);
- }
- format(string, 256, "!áøåê ùåáê ,%s ùìåí\n\r.àúä ëáø ðøùîú ìùøú\n\r.àðà øùåí àú ñéñîúê äðåëçéú\n\r\n\r.øùîú ëáø %d/3 ôòîéí ñéñîà ùâåéä", CheckName(playerid),Player[playerid][InvalidPassword]);
- ShowPlayerDialog(playerid, Login, DIALOG_STYLE_PASSWORD, "!áøåê ùåáê ìùøú", string, "äúçáø", "");
- Player[playerid][InvalidPassword]++;
- return true;
- }
- Player[playerid][Kills] = dini_Int(CheckFile(playerid), "Kills");
- Player[playerid][Deaths] = dini_Int(CheckFile(playerid), "Deaths");
- Player[playerid][Bank] = dini_Int(CheckFile(playerid), "Bank");
- Player[playerid][Logged] = true;
- format(string, 256, "%s äúçáø ìùøú.", CheckName(playerid));
- SendClientMessageToAll(0xFFFFFF00, string);
- }
- }
- return true;
- }
- stock CheckName(playerid)
- {
- new name[24];
- GetPlayerName(playerid, name, 24);
- return name;
- }
- stock CheckFile(playerid)
- {
- new file[64];
- format(file, 64, "/Users/%s.ini", CheckName(playerid));
- return file;
- }
- IsNumeric(const string[])
- {
- for (new i = 0, j = strlen(string); i < j; i++)
- {
- if (string[i] > '9' || string[i] < '0') return false;
- }
- return true;
- }
Advertisement
Add Comment
Please, Sign In to add comment