#include #include #include #include #define dcmd(%1,%2,%3) if ((strcmp((%3)[1], #%1, true, (%2)) == 0) && ((((%3)[(%2) + 1] == 0) && (dcmd_%1(playerid, "")))||(((%3)[(%2) + 1] == 32) && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1 #define COLOR_SYSTEM 0xEFEFF7AA new PLAYERLIST_authed[MAX_PLAYERS]; main(){} public OnGameModeInit() { SetGameModeText("Lol"); AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0); AddPlayerClass(1, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0); AddPlayerClass(2, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0); return 1; } public OnPlayerConnect(playerid) { PLAYERLIST_authed[playerid]=false; return 1; } public OnPlayerRequestClass(playerid, classid) { SetPlayerPos(playerid, 2406.4287,-2266.3171,60.9073); SetPlayerFacingAngle(playerid,40.3585); SetPlayerCameraPos(playerid, 2399.1299,-2256.8811,66.1072); SetPlayerCameraLookAt(playerid, 2406.4287,-2266.3171,61.9073); } stock SystemMsg(playerid,msg[]) { if ((IsPlayerConnected(playerid))&&(strlen(msg)>0)) { SendClientMessage(playerid,COLOR_SYSTEM,msg); } return 1; } public OnPlayerCommandText(playerid,cmdtext[]) { dcmd(login,5,cmdtext); // because login has 5 characters dcmd(register,8,cmdtext); // because register has 8 characters return false; } public OnPlayerDisconnect(playerid) { if (PLAYERLIST_authed[playerid]) { // Was loggedin, so save the data! dUserSetINT(PlayerName(playerid)).("money",GetPlayerMoney(playerid)); } PLAYERLIST_authed[playerid]=false; return false; } dcmd_register(playerid,params[]) { // The command shouldn't work if we already are authed if (PLAYERLIST_authed[playerid]) return SystemMsg(playerid,"Already authed."); // The command shouldn't work if an account with this // nick already exists if (udb_Exists(PlayerName(playerid))) return SystemMsg(playerid,"Account already exists, please use '/login password'."); // Did he forgot the password? if (strlen(params)==0) return SystemMsg(playerid,"Correct usage: '/register password'"); // We save the money to the accstate if (udb_Create(PlayerName(playerid),params)) return SystemMsg(playerid,"Account successfully created. Login with '/login password' now."); return true; } dcmd_login(playerid,params[]) { // The command shouldn't work if we already are authed if (PLAYERLIST_authed[playerid]) return SystemMsg(playerid,"Already authed."); // The command shouldn't work if an account with this // nick does not exists if (!udb_Exists(PlayerName(playerid))) return SystemMsg(playerid,"Account doesn't exist, please use '/register password'."); // Did he forgot the password? if (strlen(params)==0) return SystemMsg(playerid,"Correct usage: '/login password'"); if (udb_CheckLogin(PlayerName(playerid),params)) { // Login was correct // Following thing is the same like the missing SetPlayerCommand GivePlayerMoney(playerid,dUserINT(PlayerName(playerid)).("money")-GetPlayerMoney(playerid)); ForceClassSelection(playerid); PLAYERLIST_authed[playerid]=true; return SystemMsg(playerid,"Successfully authed!"); } // Login was incorrect return SystemMsg(playerid,"Login failed!"); } /* * This function will be useful when we need the playername * (c) by DracoBlue 2006 */ stock PlayerName(playerid) { new name[255]; GetPlayerName(playerid, name, 255); return name; } public OnGameModeExit() { return 1; } public OnPlayerRequestSpawn(playerid) { 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 OnPlayerPrivmsg(playerid, recieverid, text[]) { return 1; } public OnPlayerInfoChange(playerid) { 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 OnObjectMoved(objectid) { return 1; } public OnPlayerObjectMoved(playerid, objectid) { return 1; } public OnPlayerPickUpPickup(playerid, pickupid) { return 1; } public OnPlayerSelectedMenuRow(playerid, row) { return 1; } public OnPlayerExitedMenu(playerid) { return 1; }