Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <a_samp>
- #include <a_mysql>
- #include <ZCMD>
- #include <sscanf>
- #include <zones>
- #define DHOST ""
- #define DUSER ""
- #define DPASS ""
- #define DDB ""
- #define DIALOG_LOGIN 100
- #define DIALOG_REGISTER 101
- #define DIALOG_MYINFO 105
- #define DIALOG_SUGGESTION 106
- #define gLOGIN 1
- #define gREGISTRATION 2
- #define gINIT 3
- #define gSAVE 4
- #define gNEWUSER 5
- #define Report 6
- #define SERVERNAME "Welcome to the server!"
- #define SERVER "Server by Georgelopez"
- #define cGREEN 0x33AA33AA
- #define cRED 0xAA3333AA
- #define cYELLOW 0xFFFF00AA
- #define cLIGHTBLUE 0x33CCFFAA
- #define cORANGE 0xFF9900AA
- #define cWHITE 0xFFFFFFAA
- main(){}
- enum pInfo
- {
- Username[25],
- Password[50],
- PlayerIP[19],
- pScore,
- pMoney,
- pLevel
- };
- new PlayerInfo[MAX_PLAYERS][pInfo];
- public OnGameModeInit()
- {
- mysql_debug(1);
- mysql_connect(DHOST, DUSER, DDB, DPASS);
- SetGameModeText(SERVER);
- AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
- return 1;
- }
- public OnGameModeExit()
- {
- mysql_close();
- return 1;
- }
- public OnPlayerConnect(playerid)
- {
- CheckUser(playerid);
- return 1;
- }
- public OnPlayerDisconnect(playerid)
- {
- SaveUser(playerid);
- return 1;
- }
- public OnPlayerSpawn(playerid)
- {
- return 1;
- }
- //=========Commands==========
- CMD:suggestion(playerid, params[])
- {
- ShowPlayerDialog(playerid, DIALOG_SUGGESTION, DIALOG_STYLE_INPUT, SERVERNAME, "Insert your suggestion below!", "Submit", "Cancel");
- }
- CMD:myinfo(playerid, params[])
- {
- new string[200];
- format(string,sizeof(string),"Your IP: %s \r\nYour Name: %s \r\nYour Score: %d \r\nYour Ping: %d",GetIp(playerid), GetName(playerid), PlayerInfo[playerid][pScore], GetPlayerPing(playerid));
- ShowPlayerDialog(playerid, DIALOG_MYINFO, DIALOG_STYLE_MSGBOX, "Player Info", string, "Finished", "Cancel");
- return 1;
- }
- CMD:score(playerid, params[])
- {
- SetPlayerScore(playerid, GetPlayerScore(playerid) + 10);
- GivePlayerMoney(playerid, GetPlayerMoney(playerid) + 10);
- return 1;
- }
- COMMAND:fix(playerid,params[])
- {
- if(IsPlayerInAnyVehicle(playerid))
- {
- if(GetPlayerMoney(playerid) > 400)
- {
- RepairVehicle(GetPlayerVehicleID(playerid));
- GivePlayerMoney(playerid, -500);
- SendClientMessage(playerid, cGREEN, "You vehicle has been repaired");
- }
- else
- {
- SendClientMessage(playerid, cRED, "You dont have enough money to use this service!");
- }
- }
- else
- {
- SendClientMessage(playerid, cRED, "You arnt currently in a vehicle");
- }
- return 1;
- }
- CMD:setlevel(playerid, params[])
- {
- new pId, alevel;
- if(PlayerInfo[playerid][pLevel] >= 5 || IsPlayerAdmin(playerid))
- {
- if(sscanf(params, "dd", pId, alevel)) return SendClientMessage(playerid, cYELLOW, "Usage: /setlvl [ID] [0 - 5]");
- else if(!IsPlayerConnected(pId)) return SendClientMessage(playerid, cRED, "The ID You Entered Was Not Found.");
- else if(alevel < 0) return SendClientMessage(playerid, cYELLOW, "Usage: /setlvl [ID] [0 - 5]");
- else if(alevel > 5) return SendClientMessage(playerid, cYELLOW, "Usage: /setlvl [ID] [0 - 5]");
- else
- {
- new pName[MAX_PLAYER_NAME], pName2[MAX_PLAYER_NAME];
- new string[256],string2[256];
- GetPlayerName(playerid,pName,sizeof(pName));
- GetPlayerName(pId,pName2,sizeof(pName2));
- format(string,sizeof(string),"[Administrator]: %s (%d) Has Set %s's (%d) Level To %d.",pName,playerid,pName2,pId,alevel);
- format(string2,sizeof(string2),"SERVER: %s (%d) Has Set Your Level To %d.",pName,playerid,alevel);
- SendClientMessageToAll(cYELLOW,string);
- SendClientMessage(pId,cYELLOW,string2);
- PlayerInfo[playerid][pLevel] = alevel;
- }
- }
- else
- {
- return 0;
- }
- return 1;
- }
- //=====Stocks======
- stock GetIp(playerid)
- {
- new Ip[16];
- GetPlayerIp(playerid, Ip, sizeof(Ip));
- return Ip;
- }
- stock GetName(playerid)
- {
- new pName[MAX_PLAYER_NAME];
- GetPlayerName(playerid, pName, sizeof(pName));
- return pName;
- }
- stock CheckUserLogin(playerid, password[])
- {
- new Query[400]; format(Query, sizeof(Query), "SELECT * FROM `names` WHERE username = '%s' AND password = '%s';",GetName(playerid), password);
- mysql_query(Query);
- return 1;
- }
- stock CreateUser(playerid, password[])
- {
- new Query[400];
- format(Query, sizeof(Query), "INSERT INTO `names` (`Username`, `Password`, `PlayerIP`) VALUES('%s', '%s', '%s')", GetName(playerid), password, GetIp(playerid));
- mysql_query(Query, gNEWUSER, playerid);
- SendClientMessage(playerid, cYELLOW, "Account created, you should be logged in any second now.");
- LoginUser(playerid);
- }
- stock SaveSuggestion(playerid, suggestion[])
- {
- new Query[400];
- format(Query, sizeof(Query), "INSERT INTO `suggestions` (`Username`, `Suggestion`) VALUES('%s', '%s')", GetName(playerid), suggestion);
- mysql_query(Query, gNEWUSER, playerid);
- SendClientMessage(playerid, cYELLOW, "Thank you for your suggestion! An admin will review this shortly!");
- }
- COMMAND:report(playerid, params[])
- {
- new warnID, aReason[250], warnname[25];
- if(sscanf(params,"ds",warnID, aReason)) return SendClientMessage(playerid, cRED, "/report (playerid) (reason)");
- if(!IsPlayerConnected(playerid)) return SendClientMessage(playerid, cRED,"Player not connected.");
- if(warnID == playerid) return SendClientMessage(playerid, cRED,"You cannot report yourself!");
- new Query[400], string[198];
- format(string, 198, "You have reported %s for '%s'",warnname, aReason);
- SendClientMessage(playerid, cWHITE, string);
- GetPlayerName(warnID,warnname,25);
- format(Query, sizeof(Query), "INSERT INTO `reports` (`Reported`, `Reporter`, `Reason`) VALUES('%s', '%s', '%s')", warnname, GetName(playerid), aReason);
- mysql_query(Query, Report, playerid);
- return 1;
- }
- stock CheckUser(playerid)
- {
- new Query[400];
- format(Query, sizeof(Query), "SELECT * FROM `names` WHERE `Username` = '%s'",GetName(playerid));
- mysql_query(Query, gINIT, playerid);
- return 1;
- }
- stock LoginUser(playerid)
- {
- new Query[400];
- format(Query, sizeof(Query), "SELECT * FROM `names` WHERE `Username` = '%s'", GetName(playerid));
- mysql_query(Query, gLOGIN, playerid);
- return 1;
- }
- stock SaveUser(playerid)
- {
- new query[400];
- format(query, sizeof(query), "UPDATE `names` SET `Score` = %d, `Money` = %d, `pLevel` = %d WHERE `Username` = '%s'", GetPlayerScore(playerid), GetPlayerMoney(playerid), PlayerInfo[playerid][pLevel], GetName(playerid));
- mysql_query(query, gSAVE);
- }
- public OnQueryFinish(query[], resultid, extraid, connectionHandle)
- {
- switch(resultid)
- {
- case gINIT:
- {
- mysql_store_result();
- if(mysql_num_rows() > 0) ShowPlayerDialog(extraid, DIALOG_LOGIN, DIALOG_STYLE_INPUT, "Server", "Please enter your password to login", "Login", "Cancel");
- else ShowPlayerDialog(extraid, DIALOG_REGISTER, DIALOG_STYLE_INPUT, "Server", "Please insert a password with between 3 and 15 characters!", "Register", "Cancel");
- mysql_free_result();
- }
- case gLOGIN:
- {
- mysql_store_result();
- sscanf(query, "p<|>s[25]s[50]s[19]ddd", PlayerInfo[extraid]);
- mysql_free_result();
- GivePlayerMoney(extraid, PlayerInfo[extraid][pMoney]);
- SetPlayerScore(extraid, PlayerInfo[extraid][pScore]);
- SendClientMessage(extraid, cYELLOW, "You have successfully logged in!");
- new query2[128];
- format(query2, sizeof(query2), "UPDATE `names` SET `PlayerIP` = '%s' WHERE `Username` = '%s'", GetIp(extraid), GetName(extraid));
- mysql_query(query2);
- }
- case gSAVE: return 1;
- case gREGISTRATION: return 1;
- case gNEWUSER: return 1;
- }
- return 1;
- }
- public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
- {
- switch(dialogid)
- {
- case DIALOG_LOGIN:
- {
- if(CheckUserLogin(playerid,inputtext)) LoginUser(playerid);
- else ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT, "That account is not in the database!", "I'm sorry, That password was incorrect! Try again!", "Login", "Cancel");
- }
- case DIALOG_REGISTER:
- {
- if(response)
- {
- if(strlen(inputtext) >= 3 && strlen(inputtext) <= 15) CreateUser(playerid, inputtext);
- else
- {
- SendClientMessage(playerid, cYELLOW, "Password has to contain between 3 and 15 letters / numbers.");
- ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT, SERVERNAME, "Please insert a password with between 3 and 15 characters!", "Register", "Cancel");
- }
- }
- }
- case DIALOG_SUGGESTION:
- {
- if(response)
- {
- if(strlen(inputtext) >= 10 && strlen(inputtext) <= 250) SaveSuggestion(playerid, inputtext);
- else
- {
- SendClientMessage(playerid, cYELLOW, "Suggestion has to contain between 10 and 250 words/numbers.");
- }
- }
- }
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement