Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <a_samp>
- #include <a_mysql>
- #include <zcmd>
- #include <sscanf2>
- /*#define SQL_HOST "localhost"
- #define SQL_USER "root"
- #define SQL_DATA "samp"
- #define SQL_PASS ""*/
- new nev[MAX_PLAYER_NAME];
- new Belepve[MAX_PLAYERS];
- new Regelve[MAX_PLAYERS];
- new JelszoLehetosegek[MAX_PLAYERS];
- new Penz[MAX_PLAYERS];
- new Szint[MAX_PLAYERS];
- new XP[MAX_PLAYERS];
- new Perc[MAX_PLAYERS];
- new Ora[MAX_PLAYERS];
- main()
- {
- print("\n----------------------------------");
- print(" Blank Gamemode by your name here");
- print("----------------------------------\n");
- }
- public OnGameModeInit()
- {
- SetGameModeText("Blank Script");
- AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
- //mysql_connect(SQL_HOST, SQL_USER, SQL_DATA, SQL_PASS);
- mysql_connect("localhost","root","samp","");
- mysql_debug(1);
- //mysql_query("CREATE TABLE IF NOT EXISTS felhasznalok(id INT(6) NOT NULL AUTO_INCREMENT,nev VARCHAR(24), jelszo VARCHAR(16), szint INT(20), penz INT(32), IP VARCHAR(16), xp INT(20), perc INT(20), ora INT(20), ban BOOLEAN() )");
- return 1;
- }
- public OnGameModeExit()
- {
- mysql_close();
- return 1;
- }
- public OnPlayerRequestClass(playerid, classid)
- {
- 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)
- {
- JelszoLehetosegek[playerid] = 3;
- new query[200]; //Creates our variables.
- GetPlayerName(playerid, nev, sizeof(nev)); //Gets the players name
- format(query, sizeof(query), "SELECT IP FROM `felhasznalok` WHERE nev = '%s' LIMIT 1", nev); //Formats the query, view above the code for a explanation
- mysql_query(query); //This is our query function to query the string
- mysql_store_result(); //We store the result.
- new rows = mysql_num_rows(); //We get how many rows the query returned.
- if(rows == 0)
- {
- SendClientMessage(playerid,-1,"Üdv a szerveren!");
- SendClientMessage(playerid,-1,"Még nem regisztráltál a szerverre.Használd a /regisztracio [jelszó] parancsot!");
- Regelve[playerid] = 0;
- }
- if(rows == 1)
- {
- SendClientMessage(playerid,-1,"Üdv a szerveren!");
- SendClientMessage(playerid,-1,"Már regisztráltál a szerverre.Használd a /bejelentkezes [jelszó] parancsot!");
- Regelve[playerid] = 1;
- }
- return 1;
- }
- public OnPlayerDisconnect(playerid, reason)
- {
- Belepve[playerid] = 0;
- Regelve[playerid] = 0;
- JelszoLehetosegek[playerid] = 0;
- Szint[playerid] = 0;
- XP[playerid] = 0;
- Perc[playerid] = 0;
- Ora[playerid] = 0;
- Penz[playerid] = 0;
- return 1;
- }
- public OnPlayerSpawn(playerid)
- {
- return 1;
- }
- public OnPlayerDeath(playerid, killerid, reason)
- {
- return 1;
- }
- public OnVehicleSpawn(vehicleid)
- {
- return 1;
- }
- public OnVehicleDeath(vehicleid, killerid)
- {
- return 1;
- }
- public OnPlayerText(playerid, text[])
- {
- return 1;
- }
- public OnPlayerCommandText(playerid, cmdtext[])
- {
- if (strcmp("/mycommand", cmdtext, true, 10) == 0)
- {
- // Do something here
- return 1;
- }
- return 0;
- }
- public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
- {
- return 1;
- }
- public OnPlayerExitVehicle(playerid, vehicleid)
- {
- return 1;
- }
- public OnPlayerStateChange(playerid, newstate, oldstate)
- {
- return 1;
- }
- public OnPlayerEnterCheckpoint(playerid)
- {
- return 1;
- }
- public OnPlayerLeaveCheckpoint(playerid)
- {
- return 1;
- }
- public OnPlayerEnterRaceCheckpoint(playerid)
- {
- return 1;
- }
- public OnPlayerLeaveRaceCheckpoint(playerid)
- {
- return 1;
- }
- public OnRconCommand(cmd[])
- {
- return 1;
- }
- public OnPlayerRequestSpawn(playerid)
- {
- return 1;
- }
- public OnObjectMoved(objectid)
- {
- return 1;
- }
- public OnPlayerObjectMoved(playerid, objectid)
- {
- return 1;
- }
- public OnPlayerPickUpPickup(playerid, pickupid)
- {
- return 1;
- }
- public OnVehicleMod(playerid, vehicleid, componentid)
- {
- return 1;
- }
- public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
- {
- return 1;
- }
- public OnVehicleRespray(playerid, vehicleid, color1, color2)
- {
- return 1;
- }
- public OnPlayerSelectedMenuRow(playerid, row)
- {
- return 1;
- }
- public OnPlayerExitedMenu(playerid)
- {
- return 1;
- }
- public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
- {
- return 1;
- }
- public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
- {
- return 1;
- }
- public OnRconLoginAttempt(ip[], password[], success)
- {
- return 1;
- }
- public OnPlayerUpdate(playerid)
- {
- return 1;
- }
- public OnPlayerStreamIn(playerid, forplayerid)
- {
- return 1;
- }
- public OnPlayerStreamOut(playerid, forplayerid)
- {
- return 1;
- }
- public OnVehicleStreamIn(vehicleid, forplayerid)
- {
- return 1;
- }
- public OnVehicleStreamOut(vehicleid, forplayerid)
- {
- return 1;
- }
- public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
- {
- return 1;
- }
- public OnPlayerClickPlayer(playerid, clickedplayerid, source)
- {
- return 1;
- }
- CMD:regisztracio(playerid,params[])
- {
- if(IsPlayerConnected(playerid))
- {
- /*new query[200]; //Creates our variables.
- GetPlayerName(playerid, nev, sizeof(nev)); //Gets the players name
- format(query, sizeof(query), "SELECT IP FROM `felhasznalok` WHERE nev = '%s' LIMIT 1", nev); //Formats the query, view above the code for a explanation
- mysql_query(query); //This is our query function to query the string
- mysql_store_result(); //We store the result.
- new rows = mysql_num_rows(); //We get how many rows the query returned.*/
- if(Regelve[playerid] == 0)
- {
- new jelszo[128];
- if(sscanf(params,"s[128]",jelszo)) return SendClientMessage(playerid,-1,"Használat: /regisztracio [Jelszó]");
- if(strlen(jelszo) >=4 && strlen(jelszo) <= 16)
- {
- new IP[16],query[200];
- GetPlayerName(playerid, nev, sizeof(nev));
- GetPlayerIp(playerid, IP, 16);
- format(query, sizeof(query), "INSERT INTO felhasznalok(id, nev, jelszo, szint, penz, IP, xp, perc, ora, ban ) VALUES( 0,'%s', SHA1('%s'), 1, 0, '%s', 0, 0, 0, false)", nev, jelszo, IP);
- mysql_query(query);
- SendClientMessage(playerid,-1,"Sikeresen regisztráltál a szerverre!Használd a /bejelentkezes [jelszo] parancsot!");
- printf("%s regisztrált a szerverre.",nev);
- Regelve[playerid] = 1;
- mysql_free_result();
- return 1;
- }
- else return SendClientMessage(playerid,-1,"A jelszó hosszúsága minium 4 karakter,maximum 16 karakter.");
- }
- if(Regelve[playerid] == 1) return SendClientMessage(playerid,-1,"Már regisztráltál a szerverre!");
- }
- return 1;
- }
- CMD:bejelentkezes(playerid,params[])
- {
- if(IsPlayerConnected(playerid))
- {
- /*new query[300]; //Creates our variables.
- GetPlayerName(playerid, nev, sizeof(nev)); //Gets the players name
- format(query, sizeof(query), "SELECT IP FROM `felhasznalok` WHERE nev = '%s' LIMIT 1", nev); //Formats the query, view above the code for a explanation
- mysql_query(query); //This is our query function to query the string
- mysql_store_result(); //We store the result.
- new rows = mysql_num_rows(); //We get how many rows the query returned.
- if(Regelve[playerid] == 1)*/
- {
- new jelszo[128],query[200];
- GetPlayerName(playerid, nev, sizeof(nev));
- if(sscanf(params,"s[128]",jelszo)) return SendClientMessage(playerid,-1,"Használat: /bejelentkezes [Jelszó]");
- new escapepass[100]; //
- mysql_real_escape_string(jelszo, escapepass); //We escape the inputtext to avoid SQL injections.
- format(query, sizeof(query), "SELECT `nev` FROM felhasznalok WHERE nev = '%s' AND jelszo = SHA1('%s')", nev, escapepass);
- mysql_query(query);
- mysql_store_result();
- new numrows = mysql_num_rows();
- mysql_free_result();
- if(!numrows)
- {
- //This means that the password that the player
- //typed was incorrect and we will resend the dialog.
- new string[64];
- if(JelszoLehetosegek[playerid] > 1)
- {
- JelszoLehetosegek[playerid] --;
- format(string,sizeof(string),"Rossz jelszó,még ennyi lehetőséged van: %d",JelszoLehetosegek[playerid]);
- SendClientMessage(playerid,-1,string);
- printf("%s elrontotta a jelszavát.",nev);
- return 1;
- }
- else if(JelszoLehetosegek[playerid] == 1)
- {
- SendClientMessage(playerid,-1,"Minden lehetőségedet elrontottad,ezért ki lettél rúgva!");
- printf("%s ki lett rúgva mert háromszor rossz jelszót írt be.",nev);
- Kick(playerid);
- return 1;
- }
- }
- else
- {
- new savingstring[20];
- GetPlayerName(playerid, nev, sizeof(nev));
- format(query, sizeof(query), "SELECT * FROM felhasznalok WHERE nev = '%s'", nev);
- //We only select the variables that we want to use.
- //We don't need things like the password string or the user string.
- mysql_query(query); //Queries the result
- mysql_store_result(); //Store a result because it's a SELECT statement.
- while(mysql_fetch_row_format(query,"|"))
- {
- //We use while so that it does a single query, not multiple
- //Especially when we have more variables. If there is more
- //Variables, you should just split the line with sscanf. To
- //Make it easier.
- mysql_fetch_field_row(savingstring, "szint"); Szint[playerid] = strval(savingstring);
- mysql_fetch_field_row(savingstring, "xp"); XP[playerid] = strval(savingstring);
- mysql_fetch_field_row(savingstring, "perc"); Perc[playerid] = strval(savingstring);
- mysql_fetch_field_row(savingstring, "ora"); Ora[playerid] = strval(savingstring);
- mysql_fetch_field_row(savingstring, "penz"); Penz[playerid] = strval(savingstring);
- //If you are wondering why I'm using savingstring instead
- //Of a variable like using MoneyGiven right away, it's because
- //mysql_fetch_field_row requires a string.
- }
- mysql_free_result(); //We must always free a stored result
- SendClientMessage(playerid, -1, "Sikeresen bejelentkeztél!"); //Sends the client a message.
- Belepve[playerid] = 1; //Sets our logged in variable to one
- printf("%s bejelentkezett.",nev);
- return 1;
- }
- //This means that there is a user in the database with the same
- //password that we typed, we now proceed by using the login function.
- //mysql_free_result();
- }
- if(Regelve[playerid] == 0) return SendClientMessage(playerid,-1,"Még nem regisztráltál a szerverre!");
- }
- return 1;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement