Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //Version 2, by ZiPoNz - LRZ System - ENG.
- #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[135];
- if(!Player[playerid][Logged])
- {
- if(!dini_Exists(CheckFile(playerid)))
- {
- format(string, 135, "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
- {
- 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;
- format(string, 135, "%s is logged-in to the server.", CheckName(playerid));
- return SendClientMessageToAll(0xFFFFFF00, string);
- }
- format(string, 135, "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[135];
- if(!Player[playerid][Logged])
- {
- if(!dini_Exists(CheckFile(playerid)))
- {
- format(string, 135, "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
- {
- 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;
- format(string, 135, "%s is logged-in to the server.", CheckName(playerid));
- return SendClientMessageToAll(0xFFFFFF00, string);
- }
- format(string, 135, "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 false;
- }
- 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] 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(cmd, "/changename", true))
- {
- if(!Player[playerid][Logged]) return SendClientMessage(playerid, 0xFFFFFF00, "[Error] You aren't logged in.");
- return ShowPlayerDialog(playerid, DNick, DIALOG_STYLE_INPUT, "Change my name.", "Change your name by typing the new name into the box.", "Change", "Cancel");
- }
- if(!strcmp(cmdtext, "/stats", true))
- {
- new ip[17], string[128];
- GetPlayerIp(playerid, ip, 17);
- format(string, 128, "Name: %s.\n\rKills: %d.\n\rDeaths: %d.\n\rBank: %d.\n\rMy IP: %s.", CheckName(playerid), Player[playerid][Kills], Player[playerid][Deaths], Player[playerid][Bank], ip);
- return ShowPlayerDialog(playerid, 504, DIALOG_STYLE_MSGBOX, "My stats.", string, "Okay", "");
- }
- if(!strcmp(cmdtext, "/nstats", true))
- {
- new ip[17], string[128];
- GetPlayerIp(playerid, ip, 17);
- format(string, 128, "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[128];
- format(string, 128, "My amount in the bank: %d dollars.\n\r\n\rDeposit\n\rDeposit all\n\rWithdraw\n\rWithdraw all\n\rTeleport\n\rTransfer", Player[playerid][Bank]);
- return ShowPlayerDialog(playerid, DBank, DIALOG_STYLE_LIST, "Bank options list.", string, "Select", "Cancel");
- }
- 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] 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(!CheckNumber(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, 128, "[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(!CheckNumber(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, 128, "[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, 128, "[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[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 is registered in the the server.", 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, "You kicked from the server, reason: Invalid password (3 times).");
- Kick(playerid);
- }
- format(string, 128, "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;
- }
- 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 is logged-in to the server.", 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, "You changed your name to %s!\n\rRemember to change your name at the next login.", CheckName(playerid));
- ShowPlayerDialog(playerid, 999, DIALOG_STYLE_MSGBOX, "Changed name successfuly.", string, "Okay", "");
- }
- 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] You have to be in the bank.");
- ShowPlayerDialog(playerid, DDeposit, DIALOG_STYLE_INPUT, "Deposit into your bank account", "Please write the amount that you want to deposit.", "Okay", "Cancel");
- }
- case 3:
- {
- if(!IsPlayerInRangeOfPoint(playerid, 50, -27.312299,-29.277599,1003.557250)) return SendClientMessage(playerid, 0xFFFFFF00, "[Error] You have to be in the bank.");
- if(GetPlayerMoney(playerid) < strval(inputtext)) return SendClientMessage(playerid, 0xFFFFFF00, "[Error] You don't have this amount.");
- Player[playerid][Bank] += GetPlayerMoney(playerid);
- GivePlayerMoney(playerid, -GetPlayerMoney(playerid));
- format(string, 128, "[System] You deposit all money in your bank account, now you have in your bank: %d dollars.", Player[playerid][Bank]);
- SendClientMessage(playerid, 0xFFFFFF00, string);
- }
- case 4:
- {
- if(!IsPlayerInRangeOfPoint(playerid, 50, -27.312299,-29.277599,1003.557250)) return SendClientMessage(playerid, 0xFFFFFF00, "[Error] You have to be in the bank.");
- ShowPlayerDialog(playerid, DWithdraw, DIALOG_STYLE_INPUT, "Withdraw from your bank account", "Please write the amount that you want to withdraw.", "Okay", "Cancel");
- }
- case 5:
- {
- if(!IsPlayerInRangeOfPoint(playerid, 50, -27.312299,-29.277599,1003.557250)) return SendClientMessage(playerid, 0xFFFFFF00, "[Error] You have to be in the bank.");
- if(!Player[playerid][Bank]) return SendClientMessage(playerid, 0xFFFFFF00, "[Error] You don't have money in your bank account.");
- GivePlayerMoney(playerid, Player[playerid][Bank]);
- format(string, 128, "[System] You withdrawed all money from your bank account, you withdrawed %d dollars.", Player[playerid][Bank]);
- SendClientMessage(playerid, 0xFFFFFF00, string);
- Player[playerid][Bank] = 0;
- }
- case 6:
- {
- SetPlayerPos(playerid, -27.312299,-29.277599,1003.557250);
- SetPlayerInterior(playerid, 4);
- SendClientMessage(playerid, 0xFFFFFF00, "[Error] You teleported to the bank!");
- }
- case 7:
- {
- if(!IsPlayerInRangeOfPoint(playerid, 50, -27.312299,-29.277599,1003.557250)) return SendClientMessage(playerid, 0xFFFFFF00, "[Error] You have to be in the bank.");
- ShowPlayerDialog(playerid, DTName, DIALOG_STYLE_INPUT, "Transfering money.", "Please write the name of the character to transfer money.\n\rExample: ZiPoNz.", "Next", "Cancel");
- }
- }
- }
- 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] Name isn't exists in the server!");
- if(GetPlayerMoney(playerid) < strval(inputtext)) return SendClientMessage(playerid, 0xFFFFFF00, "[Error] You don't have this amount.");
- 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] The player %s transfered to your bank account %d dollars.", CheckName(playerid), strval(inputtext));
- SendClientMessage(i, 0xFFFFFF00, string);
- format(string, 128, "[System] You transfered to the player %s amount of %d dollars to his bank account.", 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, "Transfering money.", "Please write the name of the character to transfer money.\n\rExample: ZiPoNz.", "Next", "Cancel");
- format(TransferName[playerid], 30, "%s", inputtext);
- print(TransferName[playerid]);
- ShowPlayerDialog(playerid, DTransfer, DIALOG_STYLE_INPUT, "Transfering money.", "Please write the amount of the money to transfer.\n\rExample: 30000.", "Transfer", "Back");
- }
- case DDeposit:
- {
- new string[128];
- if(GetPlayerMoney(playerid) < strval(inputtext)) return SendClientMessage(playerid, 0xFFFFFF00, "[Error] You don't have this amount.");
- if(!CheckNumber(inputtext) || !strval(inputtext)) return SendClientMessage(playerid, 0xFFFFFF00, "[Error] Write numbers above the number 0.");
- GivePlayerMoney(playerid, -strval(inputtext));
- Player[playerid][Bank] += strval(inputtext);
- format(string, 128, "[System] You set in your bank account: %d dollars, now you have in your bank: %d dollars.", 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] You don't have this amount.");
- if(!CheckNumber(inputtext) || !strval(inputtext)) return SendClientMessage(playerid, 0xFFFFFF00, "[Error] Write numbers above the number 0.");
- GivePlayerMoney(playerid, strval(inputtext));
- Player[playerid][Bank] -= strval(inputtext);
- format(string, 128, "[System] You took from your bank account: %d dollars, now you have in your bank: %d dollars.", 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