Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //Version 2, by ZiPoNz - LRZ System - HEB.
- #include "a_samp"
- #include "dini"
- #include "dutils"
- //V-1
- #define Register 500
- #define Login 501
- #define MaxTimesInvalidPass 3
- #define Spawn_Money 800
- //V-2
- #define DNick 502
- #define DBank 503
- #define DDeposit 504
- #define DWithdraw 505
- #define DTransfer 506
- #define DTName 507
- new TransferName[30][MAX_PLAYERS];
- enum MyInfo
- {
- Kills,
- Deaths,
- Bank,
- bool:Logged,
- InvalidPassword
- }
- new Player[MAX_PLAYERS][MyInfo];
- public OnPlayerConnect(playerid)
- {
- format(TransferName[playerid], 30, "%s", ("None"));
- 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[150];
- if(!Player[playerid][Logged])
- {
- if(!dini_Exists(CheckFile(playerid)))
- {
- format(string, 150, "!áøåê äáà ,%s ùìåí\n\r.àéðê øùåí ìîòøëú\n\r.àðà øùåí àú ñéñîúê äçãùä\n\r.ZiPoNz äîòøëú áð÷/äúçáøåú/äøùîä ðåöøä òì éãé", CheckName(playerid));
- ShowPlayerDialog(playerid, Register, DIALOG_STYLE_INPUT, ".áøåê äáà ìùøú", string, "!äøùí", "");
- }
- else
- {
- if(!strcmp(dini_Get(CheckFile(playerid), "IP"), CheckIP(playerid), 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;
- SendClientMessage(playerid, 0xFFFFFF00, "[System] äúçáøú ìôé ëúåáú äàééôé ùìê.");
- format(string, 135, ".äúçáø ëòú ìùøú %s", CheckName(playerid));
- return SendClientMessageToAll(0xFFFFFF00, string);
- }
- format(string, 150, ".áøåê ùåáê ,%s ùìåí\n\r.àúä ëáø øùåí áîòøëú\n\r.àðà øùåí àú ñéñîúê äðåëçéú\n\r.ZiPoNz äîòøëú áð÷/äúçáøåú/äøùîä ðåöøä òì éãé", CheckName(playerid));
- ShowPlayerDialog(playerid, Login, DIALOG_STYLE_PASSWORD, ".áøåê äáà ìùøú", string, "!äúçáø", "");
- }
- }
- return true;
- }
- public OnPlayerRequestSpawn(playerid)
- {
- new string[150];
- if(!Player[playerid][Logged])
- {
- if(!dini_Exists(CheckFile(playerid)))
- {
- format(string, 150, "!áøåê äáà ,%s ùìåí\n\r.àéðê øùåí ìîòøëú\n\r.àðà øùåí àú ñéñîúê äçãùä\n\r.ZiPoNz äîòøëú áð÷/äúçáøåú/äøùîä ðåöøä òì éãé", CheckName(playerid));
- ShowPlayerDialog(playerid, Register, DIALOG_STYLE_INPUT, ".áøåê äáà ìùøú", string, "!äøùí", "");
- }
- else
- {
- if(!strcmp(dini_Get(CheckFile(playerid), "IP"), CheckIP(playerid), 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;
- SendClientMessage(playerid, 0xFFFFFF00, "[System] äúçáøú ìôé ëúåáú äàééôé ùìê.");
- format(string, 135, ".äúçáø ëòú ìùøú %s", CheckName(playerid));
- return SendClientMessageToAll(0xFFFFFF00, string);
- }
- format(string, 150, ".áøåê ùåáê ,%s ùìåí\n\r.àúä ëáø øùåí áîòøëú\n\r.àðà øùåí àú ñéñîúê äðåëçéú\n\r.ZiPoNz äîòøëú áð÷/äúçáøåú/äøùîä ðåöøä òì éãé", CheckName(playerid));
- ShowPlayerDialog(playerid, Login, DIALOG_STYLE_PASSWORD, ".áøåê äáà ìùøú", string, "!äúçáø", "");
- }
- }
- return true;
- }
- 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[])
- {
- new cmd[256], idx;
- cmd = strtok(cmdtext, idx);
- if(!strcmp(cmd, "/changepassword", true))
- {
- cmd = strtok(cmdtext, idx);
- if(!Player[playerid][Logged]) return SendClientMessage(playerid, 0xFFFFFF00, "[Error] .àéðê îçåáø");
- if(strlen(cmd) < 5) return SendClientMessage(playerid, 0xFFFFFF00, "[Error] .àðà øùåí îòì ì 5 úååéí");
- dini_Set(CheckFile(playerid), "Password", cmd);
- return SendClientMessage(playerid, 0xFFFFFF00, "[System] .ùéðéú àú ñéñîúê");
- }
- if(!strcmp(cmd, "/changename", true))
- {
- if(!Player[playerid][Logged]) return SendClientMessage(playerid, 0xFFFFFF00, "[Error] .àéðê îçåáø");
- return ShowPlayerDialog(playerid, DNick, DIALOG_STYLE_INPUT, ".ùðä àú ùîé", ".ùðä àú ùéîê òì éãé ä÷ìãä áúéáä äáàä", "ùðä", "áèì");
- }
- if(!strcmp(cmdtext, "/stats", true))
- {
- new ip[17], string[128];
- GetPlayerIp(playerid, ip, 17);
- format(string, 128, ".%s :ùí\n\räøéâåú: %d.\n\rîéúåú: %d.\n\ráð÷: %d.\n\r.%s :äàééôé ùìé", CheckName(playerid), Player[playerid][Kills], Player[playerid][Deaths], Player[playerid][Bank], ip);
- return ShowPlayerDialog(playerid, 504, DIALOG_STYLE_MSGBOX, ".äñèàèéñèé÷åú ùìé", string, "ñâåø", "");
- }
- if(!strcmp(cmdtext, "/nstats", true))
- {
- new ip[17], string[128];
- GetPlayerIp(playerid, ip, 17);
- format(string, 128, ".%s :äàééôé ùìê ,%s :äùí", ip, CheckName(playerid));
- SendClientMessage(playerid, 0xFFFFFF00, string);
- format(string, 128, "äøéâåú: %d - îéúåú: %d - áð÷: %d", Player[playerid][Kills], Player[playerid][Deaths], Player[playerid][Bank]);
- return SendClientMessage(playerid, 0xFFFFFF00, string);
- }
- if(!strcmp(cmd, "/bank", true))
- {
- new string[128];
- format(string, 128, ".ñëåí äëñó áçùáåï äáð÷: %d ãåìø\n\r\n\räô÷ã\n\räô÷ã äëì\n\rîùåê\n\rîùåê äëì\n\rùéâåø\n\räòáø ëñó îçùáåï ìçùáåï àçø", Player[playerid][Bank]);
- return ShowPlayerDialog(playerid, DBank, DIALOG_STYLE_LIST, ".øùéîú àåôöéåú äáð÷", string, "áçø", "áèì");
- }
- if(!strcmp(cmd, "/nbank", true))
- {
- new string[128];
- cmd = strtok(cmdtext, idx);
- if(!strlen(cmd)) return SendClientMessage(playerid, 0xFFFFFF00, "[Command] /nbank [withdraw, deposit, balance]");
- if(!strcmp(cmd, "withdraw", true))
- {
- if(!IsPlayerInRangeOfPoint(playerid, 50, -27.312299,-29.277599,1003.557250)) return SendClientMessage(playerid, 0xFFFFFF00, "[Error] .äéðê öøéê ìäéåú ááð÷");
- cmd = strtok(cmdtext, idx);
- if(Player[playerid][Bank] < strval(cmd)) return SendClientMessage(playerid, 0xFFFFFF00, "[Error] .àéï ìê ñëåí æä");
- if(!CheckNumber(cmd) || !strval(cmd)) return SendClientMessage(playerid, 0xFFFFFF00, "[Error] .øùåí îñôøéí îòì 0");
- GivePlayerMoney(playerid, strval(cmd));
- Player[playerid][Bank] -= strval(cmd);
- format(string, 128, "[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] .äéðê öøéê ìäéåú ááð÷");
- cmd = strtok(cmdtext, idx);
- if(GetPlayerMoney(playerid) < strval(cmd)) return SendClientMessage(playerid, 0xFFFFFF00, "[Error] .àéï ìê ñëåí æä");
- if(!CheckNumber(cmd) || !strval(cmd)) return SendClientMessage(playerid, 0xFFFFFF00, "[Error] .øùåí îñôøéí îòì 0");
- GivePlayerMoney(playerid, -strval(cmd));
- Player[playerid][Bank] += strval(cmd);
- format(string, 128, "[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] .äéðê öøéê ìäéåú ááð÷");
- format(string, 128, "[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[128];
- if(strlen(inputtext) < 5) return ShowPlayerDialog(playerid, Register, DIALOG_STYLE_INPUT, "Welcome to the server!", "Hello, welcome!\n\rYour'e not registered.\n\rPlease write your new password.\n\nPlease write more letters.", "Register", "");
- dini_Create(CheckFile(playerid));
- dini_Set(CheckFile(playerid), "Password", inputtext);
- dini_Set(CheckFile(playerid), "IP", CheckIP(playerid));
- 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, 128, ".ðøùí ëòú ìùøú %s", CheckName(playerid));
- SendClientMessageToAll(0xFFFFFF00, string);
- }
- case Login:
- {
- new string[128];
- if(strcmp(inputtext, dini_Get(CheckFile(playerid), "Password"), false) != 0)
- {
- if(Player[playerid][InvalidPassword] == MaxTimesInvalidPass)
- {
- SendClientMessage(playerid, 0xFFFFFF00, ".(äéðê ÷éáìú ÷é÷ òëá ääúçáøåú äëåùìú (ðñéåðåú: 3");
- Kick(playerid);
- }
- format(string, 150, ".áøåê ùåáê ,%s ùìåí\n\r.àúä ëáø øùåí áîòøëú\n\r.àðà øùåí àú ñéñîúê äðåëçéú\n\r.ZiPoNz äîòøëú áð÷/äúçáøåú/äøùîä ðåöøä òì éãé", CheckName(playerid));
- ShowPlayerDialog(playerid, Login, DIALOG_STYLE_PASSWORD, ".áøåê äáà ìùøú", string, "!äúçáø", "");
- Player[playerid][InvalidPassword]++;
- return true;
- }
- dini_Set(CheckFile(playerid), "Password", inputtext);
- dini_Set(CheckFile(playerid), "IP", CheckIP(playerid));
- 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, 128, ".äúçáø ëòú ìùøú %s", CheckName(playerid));
- SendClientMessageToAll(0xFFFFFF00, string);
- }
- case DNick:
- {
- new string[128], newname[30];
- format(newname, 30, "/Users/%s.ini", inputtext);
- frenames(CheckFile(playerid), newname);
- SetPlayerName(playerid, inputtext);
- format(string, 128, "!%s ùéðéú àú ùéîê ì\n\r.æëåø ìäúçáø òí ùí æä áäúçáøåú äáàä", CheckName(playerid));
- ShowPlayerDialog(playerid, 999, DIALOG_STYLE_MSGBOX, ".ùí ùåðä áäöìçä", string, "ñâåø", "");
- }
- case DBank:
- {
- new string[128];
- if(!response) return true;
- switch(listitem)
- {
- case 0, 1: return true;
- case 2:
- {
- if(!IsPlayerInRangeOfPoint(playerid, 50, -27.312299,-29.277599,1003.557250)) return SendClientMessage(playerid, 0xFFFFFF00, "[Error] .äéðê öøéê ìäéåú ááð÷");
- ShowPlayerDialog(playerid, DDeposit, DIALOG_STYLE_INPUT, "äô÷ã áçùáåï äáð÷", ".øùåí àú äñëåí ùáøöåðê ìäô÷éã ááð÷", "äô÷ã", "áèì");
- }
- case 3:
- {
- if(!IsPlayerInRangeOfPoint(playerid, 50, -27.312299,-29.277599,1003.557250)) return SendClientMessage(playerid, 0xFFFFFF00, "[Error] .äéðê öøéê ìäéåú ááð÷");
- if(GetPlayerMoney(playerid) < strval(inputtext)) return SendClientMessage(playerid, 0xFFFFFF00, "[Error] .àéï ìê ñëåí æä");
- Player[playerid][Bank] += GetPlayerMoney(playerid);
- GivePlayerMoney(playerid, -GetPlayerMoney(playerid));
- format(string, 128, "[System] äéðê äô÷ãú áçùáåï äáð÷ àú ëì ëñôê, ëòú éù áå: %d ãåìø.", Player[playerid][Bank]);
- SendClientMessage(playerid, 0xFFFFFF00, string);
- }
- case 4:
- {
- if(!IsPlayerInRangeOfPoint(playerid, 50, -27.312299,-29.277599,1003.557250)) return SendClientMessage(playerid, 0xFFFFFF00, "[Error] .äéðê öøéê ìäéåú ááð÷");
- ShowPlayerDialog(playerid, DWithdraw, DIALOG_STYLE_INPUT, "îùåê îçùáåï äáð÷", ".àðà øùåí àú äñëåí ùáøöåðê ìîùåê îäáð÷", "îùåê", "áèì");
- }
- case 5:
- {
- if(!IsPlayerInRangeOfPoint(playerid, 50, -27.312299,-29.277599,1003.557250)) return SendClientMessage(playerid, 0xFFFFFF00, "[Error] .äéðê öøéê ìäéåú ááð÷");
- if(!Player[playerid][Bank]) return SendClientMessage(playerid, 0xFFFFFF00, "[Error] .àéï ìê ëñó áçùáåï äáð÷");
- GivePlayerMoney(playerid, Player[playerid][Bank]);
- SendClientMessage(playerid, 0xFFFFFF00, "[System] äéðê îùëú îçùáåï äáð÷ àú ëì ëñôê, ëòú àéï áå ëñó");
- Player[playerid][Bank] = 0;
- }
- case 6:
- {
- SetPlayerPos(playerid, -27.312299,-29.277599,1003.557250);
- SetPlayerInterior(playerid, 4);
- SendClientMessage(playerid, 0xFFFFFF00, "[System] .äùúâøú ìáð÷");
- }
- case 7:
- {
- if(!IsPlayerInRangeOfPoint(playerid, 50, -27.312299,-29.277599,1003.557250)) return SendClientMessage(playerid, 0xFFFFFF00, "[Error] .äéðê öøéê ìäéåú ááð÷");
- ShowPlayerDialog(playerid, DTName, DIALOG_STYLE_INPUT,"äòáøú ëñó ìçùáåï áð÷", ".àðà øùåí àú ùîå äîìà ùì äùç÷ï ùáøöåðê ìùìåç ëñó\n\r.ZiPoNz :ãåâîà", "äáà", "áèì");
- }
- }
- }
- case DTransfer:
- {
- new string[128], exname[30], found;
- format(exname, 30, "/Users/%s.ini", TransferName[playerid]);
- if(!dini_Exists(exname)) return SendClientMessage(playerid, 0xFFFFFF00, "[Error] .ùí æä àéðå ÷ééí áîòøëú");
- if(GetPlayerMoney(playerid) < strval(inputtext)) return SendClientMessage(playerid, 0xFFFFFF00, "[Error] .àéï ìê ñëåí æä");
- for(new i = 0; i < MAX_PLAYERS; i++)
- {
- if(!strcmp(CheckName(i), TransferName[playerid], true))
- {
- found++;
- Player[i][Bank] += strval(inputtext);
- GivePlayerMoney(playerid, -strval(inputtext));
- format(string, 128, "[System] äùç÷ï %s ùìç ìçùáåï äáð÷ ùìê %d ãåìø.", CheckName(playerid), strval(inputtext));
- SendClientMessage(i, 0xFFFFFF00, string);
- format(string, 128, "[System] äéðê ùìçú ìùç÷ï %s ìçùáåï äáð÷ ùìå %d ãåìø.", CheckName(i), strval(inputtext));
- return SendClientMessage(playerid, 0xFFFFFF00, string);
- }
- }
- if(!found) return dini_IntSet(TransferName[playerid], "Bank", dini_Int(TransferName[playerid], "Bank")+strval(inputtext));
- }
- case DTName:
- {
- if(!response) return ShowPlayerDialog(playerid, DTName, DIALOG_STYLE_INPUT,"äòáøú ëñó ìçùáåï áð÷", ".àðà øùåí àú ùîå äîìà ùì äùç÷ï ùáøöåðê ìùìåç ëñó\n\r.ZiPoNz :ãåâîà", "äáà", "áèì");
- format(TransferName[playerid], 30, "%s", inputtext);
- print(TransferName[playerid]);
- ShowPlayerDialog(playerid, DTransfer, DIALOG_STYLE_INPUT, "äòáøú ëñó ìçùáåï äáð÷", ".àðà øùåí àú ñëåí äëñó ùáøöåðê ìäòáéø\n\r.ãåâîà: 30000", "äòáø", "çæåø");
- }
- case DDeposit:
- {
- new string[128];
- if(GetPlayerMoney(playerid) < strval(inputtext)) return SendClientMessage(playerid, 0xFFFFFF00, "[Error] .àéï ìê ñëåí æä");
- if(!CheckNumber(inputtext) || !strval(inputtext)) return SendClientMessage(playerid, 0xFFFFFF00, "[Error] .àðà øùåí îñôøéí îòì 0");
- GivePlayerMoney(playerid, -strval(inputtext));
- Player[playerid][Bank] += strval(inputtext);
- format(string, 128, "[System] äéðê äô÷ãú áçùáåï äáð÷ %d, ëòú éù áçùáåï äáð÷ ùìê %d ãåìø.", strval(inputtext), Player[playerid][Bank]);
- SendClientMessage(playerid, 0xFFFFFF00, string);
- }
- case DWithdraw:
- {
- new string[128];
- if(Player[playerid][Bank] < strval(inputtext)) return SendClientMessage(playerid, 0xFFFFFF00, "[Error] .àéï ìê ñëåí æä");
- if(!CheckNumber(inputtext) || !strval(inputtext)) return SendClientMessage(playerid, 0xFFFFFF00, "[Error] .àðà øùåí îñôøéí îòì 0");
- GivePlayerMoney(playerid, strval(inputtext));
- Player[playerid][Bank] -= strval(inputtext);
- format(string, 128, "[System] äéðê îùëú îäáð÷ %d, ëòú éù áçùáåï äáð÷ ùìê %d ãåìø.", strval(inputtext), Player[playerid][Bank]);
- SendClientMessage(playerid, 0xFFFFFF00, string);
- }
- }
- return true;
- }
- stock CheckName(playerid)
- {
- new name[24];
- GetPlayerName(playerid, name, 24);
- return name;
- }
- stock CheckIP(playerid)
- {
- new MyIP[17];
- GetPlayerIp(playerid, MyIP, 17);
- return MyIP;
- }
- stock CheckFile(playerid)
- {
- new file[64];
- format(file, 64, "/Users/%s.ini", CheckName(playerid));
- return file;
- }
- CheckNumber(const string[])
- {
- for (new i = 0, j = strlen(string); i < j; i++) if (string[i] > '9' || string[i] < '0') return false;
- return true;
- }
- forward frenames(old[], newf[]);
- public frenames(old[], newf[])
- {
- if(!fexist(old)) return printf("File \"%s\" doesn't exist!", newf),0;
- if(fexist(newf)) return printf("File \"%s\" already exist!", newf),0;
- new File:orig = fopen(old, io_read);
- new File:newf2 = fopen(newf, io_write);
- new string[256];
- while(fread(orig, string, sizeof(string))) fwrite(newf2, string);
- fclose(orig); fclose(newf2);
- fremove(old);
- return 1;
- }
Advertisement
Add Comment
Please, Sign In to add comment