Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <a_samp>
- #include <a_mysql>
- //MySQL Configuration
- #define SQL_HOST "localhost"
- #define SQL_DB "sa-mp"
- #define SQL_USER "cunt"
- #define SQL_PASS ""
- #define TABLENAME "users"
- #define CONNECT_THREAD_ID 1
- #define REG_THREAD_ID 2
- #define LOGIN_THREAD_ID 3
- #define UPDATE_THREAD_ID 4
- #define INSERT_THREAD_ID 5
- #define CREATE_THREAD_ID 6
- #define GREY 0xAFAFAFAA
- #define RED 0xFF0000AA
- #define YELLOW 0xFFFF00AA
- #define LIGHTBLUE 0x33CCFFAA
- #define dcmd(%1,%2,%3) if (!strcmp((%3)[1], #%1, true, (%2)) && ((((%3)[(%2) + 1] == '\0') && (dcmd_%1(playerid, ""))) || (((%3)[(%2) + 1] == ' ') && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1
- //global variables
- new
- bool:LoggedIn[MAX_PLAYERS] = { false, ... },
- bool:AccRegistered[MAX_PLAYERS] = { false, ... },
- Wrongattempt[MAX_PLAYERS],
- TimerSet[MAX_PLAYERS],
- pLogtimer[MAX_PLAYERS],
- PlayerMoney[MAX_PLAYERS];
- main()
- {
- print("\n----------------------------------");
- print(" -------> Lees Test Script <------");
- print("----------------------------------\n");
- }
- public OnGameModeInit()
- {
- SetGameModeText("Test Script");
- mysql_debug(1);
- mysql_connect(SQL_HOST, SQL_USER,SQL_DB, SQL_PASS);
- SetupTable();
- }
- public OnGameModeExit()
- {
- if(mysql_ping()) mysql_close();
- }
- SetupTable()
- {
- return mysql_query("CREATE TABLE IF NOT EXISTS `"TABLENAME"`(`id` int(11) NOT NULL auto_increment PRIMARY KEY,`Username` varchar(30) NOT NULL,`Password` varchar(50) NOT NULL,`Money` int(10) NOT NULL default '0')",CREATE_THREAD_ID,5);
- }
- public OnQueryFinish(query[], resultid, extraid, connectionHandle)
- {
- new string[128],pName[MAX_PLAYER_NAME+1];
- switch(resultid)
- {
- case CONNECT_THREAD_ID: {
- if(IsPlayerConnected(extraid)) {
- GetPlayerName(extraid,pName,sizeof pName);
- mysql_store_result();
- if(mysql_num_rows() > 0) {
- format(string,sizeof(string),">> This account (%s) is registered.Please login by using /login [pass]",pName);
- SendClientMessage(extraid,GREY,string);
- AccRegistered[extraid] = true;
- pLogtimer[extraid] = SetTimerEx("LoginKick",30000,0,"d",extraid);
- } else {
- format(string,sizeof(string),">> Welcome %s, you can register by using /register [pass]",pName);
- SendClientMessage(extraid,GREY,string);
- AccRegistered[extraid] = false;
- }
- mysql_free_result();
- } else {
- //to avoid "commands out of sync" errors
- mysql_store_result();
- mysql_free_result();
- }
- return 1;
- }
- case REG_THREAD_ID: {
- if(IsPlayerConnected(extraid)) {
- GetPlayerName(extraid,pName,sizeof pName);
- format(string,sizeof(string),">> Account %s successfully registered - Remember your password for later use.",pName);
- SendClientMessage(extraid,GREY,string);
- SendClientMessage(extraid,GREY,"You have been automatically logged in");
- LoggedIn[extraid] = true;
- AccRegistered[extraid] = true;
- }
- return 1;
- }
- case LOGIN_THREAD_ID: {
- if(IsPlayerConnected(extraid)) {
- mysql_store_result();
- if(mysql_num_rows() == 1) {
- PlayerMoney[extraid] = mysql_fetch_int();
- GivePlayerMoney(extraid,PlayerMoney[extraid]);
- LoggedIn[extraid] = true;
- format(string,sizeof(string),">> You have been successfully logged in. (Money: %d)",PlayerMoney[extraid]);
- SendClientMessage(extraid,GREY,string);
- mysql_free_result();
- } else {
- Wrongattempt[extraid] += 1;
- printf("Bad log in attempt by %s (Total attempts: %d)",pName,Wrongattempt[extraid]);
- if(Wrongattempt[extraid] >= 3) {
- SendClientMessage(extraid,RED,">> You have been kicked.( 3 times wrong pass )");
- mysql_free_result();
- return Kick(extraid);
- }
- mysql_free_result();
- SendClientMessage(extraid,RED,">> Wrong Password");
- }
- } else {
- //to avoid "commands out of sync" errors
- mysql_store_result();
- mysql_free_result();
- }
- return 1;
- }
- case UPDATE_THREAD_ID: {
- printf("UPDATE query finished (%s)",query);
- return 1;
- }
- case INSERT_THREAD_ID: {
- printf("INSERT query finished (%s)",query);
- return 1;
- }
- case CREATE_THREAD_ID: {
- printf("CREATE query finished (%s)",query);
- return 1;
- }
- }
- return 1;
- }
- MySQLCheck()
- {
- mysql_reconnect();
- return 1;
- }
- RegisterAccount(playerid,pass[])
- {
- MySQLCheck();
- new
- pName[MAX_PLAYER_NAME],
- query[256];
- GetPlayerName(playerid,pName,sizeof(pName));
- mysql_real_escape_string(pName,pName);
- mysql_real_escape_string(pass,pass);
- format(query,sizeof(query),"INSERT INTO `"TABLENAME"` (Username,Password) VALUES ('%s',md5('%s'))",pName,pass);
- mysql_query(query,REG_THREAD_ID,playerid);
- return 1;
- }
- LoginPlayer(playerid,pass[])
- {
- new
- pName[MAX_PLAYER_NAME],
- query[256];
- GetPlayerName(playerid,pName,sizeof(pName));
- MySQLCheck();
- mysql_real_escape_string(pName,pName);
- mysql_real_escape_string(pass,pass);
- format(query,sizeof(query),"SELECT Money FROM `"TABLENAME"` WHERE Username = '%s' AND Password = md5('%s') LIMIT 1",pName,pass);
- mysql_query(query,LOGIN_THREAD_ID,playerid);
- 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)
- {
- new
- query[256],
- pname[MAX_PLAYER_NAME];
- Wrongattempt[playerid] = 0;
- LoggedIn[playerid] = false;
- TimerSet[playerid] = 0;
- GetPlayerName(playerid,pname,sizeof(pname));
- MySQLCheck();
- format(query,sizeof(query),"SELECT * FROM `"TABLENAME"` WHERE Username = '%s'",pname);
- mysql_query(query,CONNECT_THREAD_ID,playerid);
- return 1;
- }
- forward LoginKick(playerid);
- public LoginKick(playerid)
- {
- if(!LoggedIn[playerid]) KickEx(playerid,"Not logged in");
- else
- {
- KillTimer(pLogtimer[playerid]);
- pLogtimer[playerid] = 0;
- }
- return 1;
- }
- public OnPlayerDisconnect(playerid,reason)
- {
- if(pLogtimer[playerid] != 0) KillTimer(pLogtimer[playerid]);
- new
- query[300],
- pName[MAX_PLAYER_NAME];
- GetPlayerName(playerid,pName,sizeof(pName));
- if(LoggedIn[playerid]) {
- new Float:arm;
- GetPlayerArmour(playerid,arm);
- format(query,sizeof(query),"UPDATE `"TABLENAME"` SET `Money`='%d' WHERE (`Username` = '%s')",GetPlayerMoney(playerid),pName);
- mysql_query(query,UPDATE_THREAD_ID);
- }
- 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[])
- {
- dcmd(register,8,cmdtext);
- dcmd(login,5,cmdtext);
- return 0;
- }
- dcmd_login(playerid, params[])
- {
- if(LoggedIn[playerid])
- {
- return SendClientMessage(playerid,RED,">> You are already logged in");
- }
- if(!AccRegistered[playerid])
- {
- return SendClientMessage(playerid,RED,">> This Account is not registered. ( Use /register [pass] )");
- }
- if(!strlen(params))
- {
- return SendClientMessage(playerid,RED,"SYNTAX: /login [password]");
- }
- LoginPlayer(playerid,params);
- return true;
- }
- dcmd_register(playerid, params[])
- {
- new pName[MAX_PLAYER_NAME];
- GetPlayerName(playerid,pName,sizeof(pName));
- if(AccRegistered[playerid])
- {
- return SendClientMessage(playerid,RED,">> This account is already registered. ( /login [pass] )");
- }
- if(LoggedIn[playerid])
- {
- return SendClientMessage(playerid,RED,">> You are already logged in");
- }
- if(!strlen(params))
- {
- return SendClientMessage(playerid,RED,"SYNTAX: /register [password]");
- }
- if(strlen(params) < 6)
- {
- return SendClientMessage(playerid,RED,">> The password should contain 6 characters at least.");
- }
- RegisterAccount(playerid,params);
- return 1;
- }
- stock KickEx(playerid,reason[])
- {
- new
- string[1000],
- MsgAll[128],
- pName[MAX_PLAYER_NAME];
- GetPlayerName(playerid,pName,sizeof(pName));
- format(string,sizeof(string),"You have been kicked: ");
- strcat(string,reason,sizeof(string));
- SendClientMessage(playerid,RED,string);
- Kick(playerid);
- format(MsgAll,sizeof(MsgAll),">> %s has been kicked.(Reason: %s)",pName,reason);
- SendClientMessageToAll(GREY,MsgAll);
- return 1;
- }
- 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;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement