dcmd_register(playerid,params[]) { new index = 0; tmps1 = strtok(params, index); GetPlayerName(playerid, playername, sizeof(playername)); if(!strlen(tmps1)) { SendClientMessage(playerid, COLOR_CMD, "* USAGE: /register [password]. This will register your nick. Don't forget your password."); return 1; } if(20 < strlen(tmps1) || strlen(tmps1) < 5) { SendClientMessage(playerid, COLOR_SYSTEM_PW, "* Password length must be 5-20 symbols."); return 1; } else { if (!dini_Exists(udb_encode(playername))) { dini_Create(udb_encode(playername)); dini_IntSet(udb_encode(playername), "password", udb_hash(tmps1)); dini_IntSet(udb_encode(playername), "newplayer", 1); format(strings, sizeof(strings), "%s --- %s (id: %d) created account. Passwordhash: %s.", SystemTime,playername, playerid,udb_hash(tmps1)); printf(strings); format(strings, sizeof(strings), "* Account named %s created! You can login with password %s.", playername, tmps1); SendClientMessage(playerid, COLOR_SYSTEM_PM, strings); if(spawned[playerid]){ GameTextForPlayer(playerid, "~w~ You are not logged in! type /login", 120000, 3); LoginTimeout[playerid]=60; } } else { format(strings, sizeof(strings), "* %s is already registered.", playername,tmps1); SendClientMessage(playerid, COLOR_SYSTEM_PW, strings); } } return 1; } |
f(logged[playerid] == 0){ dcmd(help,4,cmdtext); dcmd(register,8,cmdtext); dcmd(login,5,cmdtext); dcmd(accounthelp,11,cmdtext); return SendClientMessage(playerid,COLOR_MENU,"* You need to login before other commands are available. Check /accounthelp for the available commands."); |
example
SetPlayerInterior(playerid,3); SetPlayerFacingAngle(playerid, 90); SetCameraBehindPlayer(playerid); SetPlayerPos(playerid, notLoggedSpawn[0], notLoggedSpawn[1], notLoggedSpawn[2]); spawned[playerid] = 1; GameTextForPlayer(playerid, "~w~ You require an account! type /register", 120000, 3); SendClientMessage(playerid, COLOR_SYSTEM_PM, "* Before you can play, you need to register. You can type /register <your password>."); SendClientMessage(playerid, COLOR_SYSTEM_PM, "* After successful registration, identify yourself using /login <your password>."); SendClientMessage(playerid, COLOR_SYSTEM_PM, "* This server saves your progress(money, frags, etc)."); LoginTimeout[playerid]=60; return 1; } |
////////////Not logged or spawned///////////// if(spawned[playerid] == 1){ GetPlayerName(playerid,playername,sizeof(playernam e)); if (dini_Exists(udb_encode(playername))) { if(logged[playerid] == 0) { LoginTimeout[playerid]--; if( LoginTimeout[playerid] == 50 || LoginTimeout[playerid] == 40 || LoginTimeout[playerid] == 30 || LoginTimeout[playerid] == 20 || LoginTimeout[playerid] == 10 ){ //Bekende gebruiker, niet ingelogd. SendClientMessage(playerid, COLOR_GREENYELLOW, "* You are not logged in. Type /login <password> to login."); SendClientMessage(playerid, COLOR_GREENYELLOW, "* Note that you will receive your spawn weapons at your next spawn (next time you have died)."); format(strings,sizeof(strings),"~w~You have %d seconds to login. type /login", LoginTimeout[playerid]); GameTextForPlayer(playerid, strings, 120000, 3); } if(LoginTimeout[playerid] == 1) { SendClientMessage(playerid, COLOR_GREENYELLOW, "* You failed to login. The connection to the server will be disconnected."); } if(LoginTimeout[playerid] == 0) { //Niet ingelogd binnen de minuut, kick format(strings,sizeof(strings),"* Player %s failed to login within the 60 seconds period.",playername); SendClientMessageToAll(COLOR_SYSTEM_GW, strings); Kick(playerid); } } } else { LoginTimeout[playerid]--; if( LoginTimeout[playerid] == 50 || LoginTimeout[playerid] == 40 || LoginTimeout[playerid] == 30 || LoginTimeout[playerid] == 20 || LoginTimeout[playerid] == 10 ){ //Niet bekende gebruiker, niet ingelogd. SendClientMessage(playerid, COLOR_GREENYELLOW, "* You need to create an account on this server. Type /register <password> to do so."); format(strings,sizeof(strings),"~w~You have %d seconds to register. type /register", LoginTimeout[playerid]); GameTextForPlayer(playerid, strings, 120000, 3); } if(LoginTimeout[playerid] == 1) { //Niet geregistreerd binnen de minuut, kick SendClientMessage(playerid, COLOR_GREENYELLOW, "* You failed to register. The connection to the server will be disconnected."); } if(LoginTimeout[playerid] == 0) { format(strings,sizeof(strings),"* Player %s failed to register within the 60 seconds period.",playername); SendClientMessageToAll(COLOR_SYSTEM_GW, strings); Kick(playerid); } |
public OnPlayerSpawn(playerid)
{
spawned[playerid] = 1;
return 1;
}