Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //Version 1, by ZiPoNz - LRZ System - ENG.
- #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, "Hello %s, welcome!\n\rYour'e not registered.\n\rPlease write your new password.\n\rThe login-register system created by ZiPoNz.", CheckName(playerid));
- ShowPlayerDialog(playerid, Register, DIALOG_STYLE_INPUT, "Welcome to the server!", string, "Register", "");
- }
- else
- {
- format(string, 256, "Hello %s, welcome back!\n\rYour'e already registered.\n\rPlease write your current password.\n\rThe login-register system created by ZiPoNz.", CheckName(playerid));
- ShowPlayerDialog(playerid, Login, DIALOG_STYLE_PASSWORD, "Welcome to the server!", string, "Login", "");
- }
- }
- return true;
- }
- public OnPlayerRequestSpawn(playerid)
- {
- new string[256];
- if(!Player[playerid][Logged])
- {
- if(!dini_Exists(CheckFile(playerid)))
- {
- format(string, 256, "Hello %s, welcome!\n\rYour'e not registered.\n\rPlease write your new password.\n\rThe login-register system created by ZiPoNz.", CheckName(playerid));
- ShowPlayerDialog(playerid, Register, DIALOG_STYLE_INPUT, "Welcome to the server!", string, "Register", "");
- }
- else
- {
- format(string, 256, "Hello %s, welcome back!\n\rYour'e already registered.\n\rPlease write your current password.\n\rThe login-register system created by ZiPoNz.", CheckName(playerid));
- ShowPlayerDialog(playerid, Login, DIALOG_STYLE_PASSWORD, "Welcome to the server!", string, "Login", "");
- }
- return 0;
- }
- 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[])
- {
- 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] You aren't logged in.");
- if(strlen(cmd) < 5) return SendClientMessage(playerid, 0xFFFFFF00, "[Error] Please write above 5 letters.");
- dini_Set(CheckFile(playerid), "Password", cmd);
- return SendClientMessage(playerid, 0xFFFFFF00, "[System] You changed your password!");
- }
- if(!strcmp(cmdtext, "/stats", true))
- {
- new ip[17], string[256];
- GetPlayerIp(playerid, ip, 17);
- format(string, 256, "Name: %s - Kills: %d - Deaths: %d - Bank: %d - My IP: %s", CheckName(playerid), 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] You have to be in the bank, /bank teleport.");
- cmd = strtok(cmdtext, idx);
- if(Player[playerid][Bank] < strval(cmd)) return SendClientMessage(playerid, 0xFFFFFF00, "[Error] You don't have this amount.");
- if(!IsNumeric(cmd) || !strval(cmd)) return SendClientMessage(playerid, 0xFFFFFF00, "[Error] Write numbers above the number 0.");
- GivePlayerMoney(playerid, strval(cmd));
- Player[playerid][Bank] -= strval(cmd);
- format(string, 256, "[System] You took from your bank account: %d dollars, now you have in your bank: %d dollars.", 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] You have to be in the bank, /bank teleport.");
- cmd = strtok(cmdtext, idx);
- if(GetPlayerMoney(playerid) < strval(cmd)) return SendClientMessage(playerid, 0xFFFFFF00, "[Error] You don't have this amount.");
- if(!IsNumeric(cmd) || !strval(cmd)) return SendClientMessage(playerid, 0xFFFFFF00, "[Error] Write numbers above the number 0.");
- GivePlayerMoney(playerid, -strval(cmd));
- Player[playerid][Bank] += strval(cmd);
- format(string, 256, "[System] You set in your bank account: %d dollars, now you have in your bank: %d dollars.", 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] You have to be in the bank, /bank teleport.");
- format(string, 256, "[System] You have in your bank: %d dollars.", 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, "[Error] You teleported to the bank!");
- }
- 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, "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_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 is registered in the the server.", 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, "You kicked from the server, reason: Invalid password (3 times).");
- Kick(playerid);
- }
- format(string, 256, "Hello %s, welcome back!\n\rYour'e already registered.\n\rPlease write your current password.\n\nYou typed invalid password: %d/3 times.", CheckName(playerid),Player[playerid][InvalidPassword]);
- ShowPlayerDialog(playerid, Login, DIALOG_STYLE_PASSWORD, "Welcome to the server!", string, "Login", "");
- 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 is logged in to the server.", 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