Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Include
- #include <a_samp>
- #include <a_mysql>
- #include <zcmd>
- #include <sscanf2>
- #include <foreach>
- #include <YSI\y_iterate>
- // Define
- #define function%0(%1) forward%0(%1); public%0(%1)
- #define SCM SendClientMessage
- #define AdminOnly "Nu ai acces la aceasta comanda!"
- // Colors
- #define COLOR_WHITE -1
- #define COLOR_RED 0xff0000FF
- #define COLOR_GREEN 0x04ff00FF
- #define COLOR_DARKGREEN 0x088e0aFF
- #define COLOR_GREY 0xAFAFAFFF
- #define COLOR_ADMINCHAT 0xFFC266FF
- #define COLOR_LOGS 0xE6833CFF
- #define COLOR_LIGHTBLUE 0x00C3FFFF
- #define COLOR_YELLOW 0xF5DEB3FF
- #define COLOR_WARNING 0xDE1414FF
- // New
- new SQL = -1, gQuery[256], gString[256];
- new attemptsPassoword[MAX_PLAYERS];
- new PlayerText:Logo;
- // Enum
- enum pInfo {
- pSQLID,
- pName[MAX_PLAYERS],
- pPassword[32],
- pEmail[32],
- pGender,
- pAge,
- pSkin,
- pAdmin
- }
- new PlayerInfo[MAX_PLAYERS][pInfo];
- enum {
- // Register
- DIALOG_REGISTER,
- DIALOG_EMAIL,
- DIALOG_GENDER,
- DIALOG_AGE,
- // Login
- DIALOG_LOGIN
- }
- // Started Gamemode
- main()
- {
- print("\n----------------------------------");
- print(" Starting gamemode by NighTeN");
- print("----------------------------------\n");
- }
- public OnGameModeInit()
- {
- SQL = mysql_connect("localhost", "root", "newgm", "");
- SetGameModeText("RPG ROMANIA v0.1");
- AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
- return 1;
- }
- public OnPlayerRequestClass(playerid, classid)
- {
- TogglePlayerSpectating(playerid, false);
- SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
- SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
- SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
- return 1;
- }
- public OnPlayerConnect(playerid) {
- Logo = CreatePlayerTextDraw(playerid, 639.333251, 433.911224, "ExtremE_/_RPG.NighTeN.RO");
- PlayerTextDrawLetterSize(playerid, Logo, 0.400000, 1.600000);
- PlayerTextDrawAlignment(playerid, Logo, 3);
- PlayerTextDrawColor(playerid, Logo, -1);
- PlayerTextDrawSetShadow(playerid, Logo, 69);
- PlayerTextDrawSetOutline(playerid, Logo, 1);
- PlayerTextDrawBackgroundColor(playerid, Logo, 255);
- PlayerTextDrawFont(playerid, Logo, 1);
- PlayerTextDrawSetProportional(playerid, Logo, 1);
- PlayerTextDrawSetShadow(playerid, Logo, 69);
- attemptsPassoword[playerid] = 0;
- SetPlayerSkin(playerid, PlayerInfo[playerid][pSkin]);
- gQuery[0] = EOS;
- mysql_format(SQL, gQuery, sizeof(gQuery), "SELECT * FROM `users` WHERE `Name` = '%s' LIMIT 1", GetName(playerid));
- mysql_tquery(SQL, gQuery, "checkAccount", "i", playerid);
- return 1;
- }
- public OnPlayerSpawn(playerid) {
- new string[100];
- format(string, sizeof(string), "%s / RPG.NighTeN.RO", GetName(playerid));
- PlayerTextDrawSetString(playerid, Logo, string);
- PlayerTextDrawShow(playerid, Logo);
- }
- public OnPlayerCommandPerformed(playerid, cmdtext[], success) {
- SendClientMessage(playerid, -1, "Aceasta comanda nu exista!");
- return 1;
- }
- public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) {
- switch(dialogid) {
- case DIALOG_REGISTER: {
- if(!response)
- return Kick(playerid);
- if(strlen(inputtext) < 6 || strlen(inputtext) > 32)
- return ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD, "Register Stage", "Parola trebuie sa contina minim 6 caractere / maxim 32!", "Select", "Cancel");
- gQuery[0] = EOS;
- mysql_format(SQL, gQuery, sizeof(gQuery), "INSERT INTO `users` (`Name`, `Password`) VALUES ('%s', '%s')", GetName(playerid), inputtext);
- mysql_tquery(SQL, gQuery, "insertAccount", "i", playerid);
- gString[0] = EOS;
- format(gString, sizeof(gString), "Parola ta contine %d caractere!", strlen(inputtext));
- SCM(playerid, -1, gString);
- format(PlayerInfo[playerid][pPassword], 32, inputtext);
- ShowPlayerDialog(playerid, DIALOG_EMAIL, DIALOG_STYLE_INPUT, "Email", "Scrieti adresa de email!", "Select", "Cancel");
- }
- case DIALOG_EMAIL: {
- if(!response)
- return Kick(playerid);
- if(strlen(inputtext) < 6 || strlen(inputtext) > 32)
- return ShowPlayerDialog(playerid, DIALOG_EMAIL, DIALOG_STYLE_INPUT, "Email Stage", "Email-ul trebuie sa contina minim 6 caractere / maxim 32!", "Select", "Cancel");
- gQuery[0] = EOS;
- mysql_format(SQL, gQuery, sizeof(gQuery), "UPDATE `users` SET `Email`='%s' WHERE `ID`='%d'", inputtext, PlayerInfo[playerid][pSQLID]);
- mysql_tquery(SQL, gQuery, "", "", playerid);
- gString[0] = EOS;
- format(gString, sizeof(gString), "Email setat: %s", inputtext);
- SCM(playerid, -1, gString);
- format(PlayerInfo[playerid][pEmail], 32, inputtext);
- ShowPlayerDialog(playerid, DIALOG_GENDER, DIALOG_STYLE_MSGBOX, "Gender Stage", "Seteaza-ti sexul:", "Masculin", "Feminin");
- }
- case DIALOG_GENDER: {
- switch(response) {
- case 0: {
- PlayerInfo[playerid][pGender] = 2;
- PlayerInfo[playerid][pSkin] = 93;
- SCM(playerid, -1, "Sex setat: Feminin");
- gQuery[0] = EOS;
- mysql_format(SQL, gQuery, sizeof(gQuery), "UPDATE `users` SET `Gender`='2' AND `Skin` = '%d' WHERE `ID`='%d'", PlayerInfo[playerid][pSkin], PlayerInfo[playerid][pSQLID]);
- mysql_tquery(SQL, gQuery, "", "", playerid);
- }
- case 1: {
- PlayerInfo[playerid][pGender] = 1;
- PlayerInfo[playerid][pSkin] = 250;
- SCM(playerid, -1, "Sex setat: Masculin");
- gQuery[0] = EOS;
- mysql_format(SQL, gQuery, sizeof(gQuery), "UPDATE `users` SET `Gender`='1' AND `Skin` = '%d' WHERE `ID`='%d'", PlayerInfo[playerid][pSkin], PlayerInfo[playerid][pSQLID]);
- mysql_tquery(SQL, gQuery, "", "", playerid);
- }
- }
- ShowPlayerDialog(playerid, DIALOG_AGE, DIALOG_STYLE_INPUT, "Age Stage", "Seteaza-ti varsta caracterului tau!", "Select", "Cancel");
- }
- case DIALOG_AGE: {
- if(!response)
- return Kick(playerid);
- new tmppass[64];
- mysql_real_escape_string(inputtext, tmppass);
- new age = strval(tmppass);
- PlayerInfo[playerid][pAge] = age;
- if(strval(inputtext) < 13 || strval(inputtext) > 60)
- return ShowPlayerDialog(playerid, DIALOG_AGE, DIALOG_STYLE_INPUT, "Age Stage", "Seteaza-ti varsta caracterului tau!(minim 13 ani, maxim 60 ani)", "Select", "Cancel");
- gQuery[0] = EOS;
- mysql_format(SQL, gQuery, sizeof(gQuery), "UPDATE `users` SET `Age` = '%d' WHERE `ID` = '%d'", PlayerInfo[playerid][pAge], PlayerInfo[playerid][pSQLID]);
- mysql_tquery(SQL, gQuery, "", "", playerid);
- gString[0] = EOS;
- format(gString, sizeof(gString), "Varsta caracterului tau este %d.", age);
- SCM(playerid, -1, gString);
- SpawnPlayer(playerid);
- }
- case DIALOG_LOGIN: {
- if(!response)
- return Kick(playerid);
- mysql_format(SQL, gQuery, sizeof(gQuery), "SELECT * FROM `users` WHERE `Name`='%s' AND `Password`='%s' LIMIT 1", GetName(playerid), inputtext);
- mysql_tquery(SQL, gQuery, "onLogin", "i", playerid);
- }
- }
- return 1;
- }
- // Function
- function checkAccount(playerid) {
- switch(cache_num_rows()) {
- case 0: ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD, "Register", "Scrie o parola pentru a te putea inregistra!", "Select", "Cancel");
- case 1: ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Login", "Scrieti parola pe care o ai!", "Login", "Cancel");
- }
- return 1;
- }
- function insertAccount(playerid) {
- PlayerInfo[playerid][pAdmin] = 0;
- PlayerInfo[playerid][pSQLID] = cache_insert_id();
- printf("[REGISTER] %s s-a inregistrat cu SQLID-ul #%d.", GetName(playerid), PlayerInfo[playerid][pSQLID]);
- return 1;
- }
- function onLogin(playerid) {
- switch(cache_num_rows()) {
- case 0: {
- attemptsPassoword[playerid] ++;
- gString[0] = EOS;
- format(gString, sizeof(gString), "Parola incorecta! (%d/3 incercari ramase)", attemptsPassoword[playerid]);
- SendClientMessage(playerid, COLOR_RED, gString);
- if(attemptsPassoword[playerid] == 3) Kick(playerid);
- else ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Login", "Scrieti parola pe care o ai!", "Login", "Cancel");
- }
- case 1: {
- new
- result[64];
- PlayerInfo[playerid][pSQLID] = cache_get_field_content_int(0, "ID");
- PlayerInfo[playerid][pGender] = cache_get_field_content_int(0, "Gender");
- PlayerInfo[playerid][pAge] = cache_get_field_content_int(0, "Age");
- PlayerInfo[playerid][pSkin] = cache_get_field_content_int(0, "Skin");
- PlayerInfo[playerid][pAdmin] = cache_get_field_content_int(0, "Admin");
- cache_get_field_content(0, "Name", result); format(PlayerInfo[playerid][pName], MAX_PLAYER_NAME, result);
- cache_get_field_content(0, "Password", result); format(PlayerInfo[playerid][pPassword], 32, result);
- cache_get_field_content(0, "Email", result); format(PlayerInfo[playerid][pEmail], 32, result);
- printf("%s (user:%d) s-a logat. [Gender: %d, Name: %s, Password: %s, Email: %s, Admin: %d, Skin: %d]", GetName(playerid), PlayerInfo[playerid][pSQLID], PlayerInfo[playerid][pGender], PlayerInfo[playerid][pName], PlayerInfo[playerid][pPassword], PlayerInfo[playerid][pEmail], PlayerInfo[playerid][pAdmin], PlayerInfo[playerid][pSkin]);
- for(new i = 0; i < 25; i++) SendClientMessage(playerid, -1, " ");
- SendClientMessage(playerid, COLOR_DARKGREEN, "Te-ai logat cu succes!");
- SpawnPlayer(playerid);
- }
- }
- return 1;
- }
- function SendAdminMessage(color, string[])
- {
- for(new i = 0; i < MAX_PLAYERS; i++)
- {
- if(IsPlayerConnected(i))
- {
- if(PlayerInfo[i][pAdmin] >= 1)
- {
- SendClientMessage(i, color, string);
- }
- }
- }
- }
- // Stock
- stock GetName(playerid) {
- new playerName[MAX_PLAYER_NAME];
- GetPlayerName(playerid, playerName, MAX_PLAYER_NAME);
- return playerName;
- }
- // Comenzi
- CMD:setadmin(playerid, params[])
- {
- new id, adminlevel, sendername[30], string[100];
- if(sscanf(params, "ui",id,adminlevel)) return SendClientMessage(playerid, -1, "/setadmin <playerid/name> <level>");
- GetPlayerName(playerid, sendername, sizeof(sendername));
- format(string, sizeof(string), "Ai primit admin %d de la adminul %s!", adminlevel, sendername);
- SCM(playerid, COLOR_LIGHTBLUE, string);
- format(string, sizeof(string), "i-ai setat lui %s admin %d!", GetName(id), adminlevel);
- SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
- format(string, sizeof(string), "AdmCmd: %s i-a setat lui %s admin %d!", GetName(playerid), GetName(id), adminlevel);
- if(GetPVarInt(playerid, "Cover") == 0) SendAdminMessage(COLOR_LOGS, string);
- PlayerInfo[id][pAdmin] = adminlevel;
- mysql_format(SQL, string, sizeof(string),"UPDATE users SET `Admin`='%d' WHERE `Name`='%s'", PlayerInfo[id][pAdmin], PlayerInfo[id][pName]);
- mysql_tquery(SQL, string, "","");
- return true;
- }
- CMD:a(playerid, params[])
- {
- new string[128];
- if(PlayerInfo[playerid][pAdmin] < 1) return SendClientMessage(playerid, -1, AdminOnly);
- if(sscanf(params, "s[128]", string)) return SendClientMessage(playerid, COLOR_GREY, "Syntax: /a <text>");
- {
- format(string, sizeof(string), "* Admin %d %s: %s", PlayerInfo[playerid][pAdmin], GetName(playerid), string);
- SendAdminMessage(COLOR_ADMINCHAT, string);
- }
- return 1;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement