Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //===========================================//
- //** System: GameMode Base DOF2 v1.5 ( http://forum.sa-mp.com/showthread.php?p=3824052 )
- //** Credits: Pedro Eduardo
- //===========================================//
- //======================================[ INCLUDE ]====================================||
- #include a_samp
- #include DOF2
- #include zcmd
- #include sscanf2
- //======================================[ DEFINE ]====================================||
- #undef MAX_PLAYERS
- #define MAX_PLAYERS 50
- #define DarMoney(%0,%1) ResetPlayerMoney(%0) && GivePlayerMoney(%0,%1)
- //======================================[ DIALOG ]====================================||
- #define DIALOG_REGISTER 0
- #define DIALOG_LOGIN 1
- //======================================[ Start ]======================================||
- main(){}
- enum pInfo
- {
- pAdmin,
- pSkin,
- pScore,
- pMoney,
- Float:pPosX,
- Float:pPosY,
- Float:pPosZ,
- Float:pPosA,
- pInterior,
- pVW,
- bool:pLogado
- }
- new
- Player[MAX_PLAYERS][pInfo],reset[pInfo],
- Conta[256]
- ;
- //=====================================[ CALLBACKS ]====================================||
- public OnGameModeInit()
- {
- print("\n ====================================================================");
- print(" | |");
- print(" | GameMode Base DOF2 Version 1.5 Started... |");
- print(" | |");
- print(" | * By Pedro Eduardo. * |");
- print(" | |");
- print(" ====================================================================\n");
- SetGameModeText("by Pedro Eduardo");
- UsePlayerPedAnims();
- ShowPlayerMarkers(PLAYER_MARKERS_MODE_STREAMED);
- ShowNameTags(1);
- SetNameTagDrawDistance(100.0);
- return 1;
- }
- public OnGameModeExit()
- {
- DOF2_Exit();
- return 1;
- }
- public OnPlayerRequestClass(playerid, classid)
- {
- IsPlayerLogged(playerid);
- return false;
- }
- public OnPlayerRequestSpawn(playerid) return IsPlayerLogged(playerid);
- IsPlayerLogged(playerid)
- {
- if(Player[playerid][pLogado] == true)
- {
- SetSpawnInfo(playerid,-1,Player[playerid][pSkin],Player[playerid][pPosX],Player[playerid][pPosY],Player[playerid][pPosZ],Player[playerid][pPosA],0,0,0,0,0,0);
- SpawnPlayer(playerid);
- SetPlayerInterior(playerid, 0);
- SetCameraBehindPlayer(playerid);
- }
- return 1;
- }
- public OnPlayerDeath(playerid, killerid, reason)
- {
- //hospital
- Player[playerid][pPosX]=2034.1435;
- Player[playerid][pPosY]=-1402.1190;
- Player[playerid][pPosZ]=16.6299;
- Player[playerid][pPosA]=90.0;
- return 1;
- }
- public OnPlayerText(playerid, text[ ])
- {
- if(Player[playerid][pLogado] == false) return SendClientMessage(playerid,-1,"[ ERROR ] Você não está logado!"),false;
- if(strlen(text) > 100) return SendClientMessage(playerid,-1,"[ ERROR ] Não escreva um texto muito grande!"),false;
- return 1;
- }
- public OnPlayerConnect(playerid)
- {
- Player[playerid][pLogado]=false;
- //=================================[ LOGIN/REGISTRO ]===============================||
- format(Conta, sizeof(Conta), "Contas/%s.ini", Name(playerid));
- if(!DOF2_FileExists(Conta))
- {
- ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT, "Register", "Escreva uma senha, para se registrar!", "Registrar", "Sair");
- }
- else
- {
- ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "LOGIN", "Bem vindo ! \nEscreva uma senha abaixo para entrar em sua conta.", "Entrar", "Sair");
- }
- //==================================================================================||
- return 1;
- }
- public OnPlayerDisconnect(playerid, reason)
- {
- SalvarConta(playerid);
- //reset in variable's
- Player[playerid] = reset;
- return 1;
- }
- public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
- {
- //=================================[ DIALOG_REGISTER ]==============================||
- if(dialogid == DIALOG_REGISTER)
- {
- if(!response) return Kick(playerid);
- if(strlen(inputtext) < 4) return ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT, "Register", "Escreva uma senha, para se registrar!", "registrar", "sair");
- if(response)
- {
- if(strlen(inputtext))
- {
- format(Conta, sizeof(Conta), "Contas/%s.ini", Name(playerid));
- DOF2_CreateFile(Conta);
- DOF2_SetString(Conta, "Password", inputtext);
- DOF2_SaveFile();
- CriarConta(playerid);
- CarregarConta(playerid);
- }
- else ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT, "Register", "Escreva uma senha, para se registrar!", "registrar", "Sair");
- }
- return 1;
- }
- //=================================[ DIALOGO LOGIN ]==============================||
- if(dialogid == DIALOG_LOGIN)
- {
- if(!response) return Kick(playerid);
- if(response)
- {
- if(!strlen(inputtext))
- {
- return ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT, "LOGIN", "Bem vindo ! \nEscreva uma senha abaixo para entrar em sua conta.","entrar", "sair");
- }
- format(Conta, sizeof(Conta), "Contas/%s.ini", Name(playerid));
- if(strcmp(inputtext, DOF2_GetString(Conta, "Password"), true))
- {
- ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT, "LOGIN", "Bem vindo ! \nEscreva uma senha abaixo para entrar em sua conta.","entrar", "sair");
- SendClientMessage(playerid, -1, "[ SERVER ] a senha está errada!");
- }
- else //se acertar a senha
- {
- CarregarConta(playerid);
- }
- }
- return 1;
- }
- return 1;
- }
- public OnPlayerSpawn(playerid)
- {
- SetPlayerSkin(playerid, Player[playerid][pSkin]);
- DarMoney(playerid,Player[playerid][pMoney]);
- TogglePlayerControllable(playerid,true);
- SendClientMessage(playerid, -1,"[ SERVER ] Use: /Ajuda para mostrar todos os comandos do servidor");
- return 1;
- }
- //=============================[Comandos]==============================================||
- CMD:mudarsenha(playerid,params[])
- {
- new KinG1[48 + 42];
- if(isnull(params)) return SendClientMessage(playerid, -1, "[ ERROR ] Use: /MudarSenha [nova senha]");
- format(Conta, sizeof(Conta), "Contas/%s.ini", Name(playerid));
- DOF2_SetString(Conta, "Password", params);
- DOF2_SaveFile();
- format(KinG1, sizeof(KinG1), "[ SERVER ] Sua nova senha é {12FF05}'%s'",params);
- SendClientMessage(playerid, -1, KinG1);
- return 1;
- }
- CMD:mudarnick(playerid,params[])
- {
- new KinG1[46+24+24], KinG2[40];
- if(isnull(params)) return SendClientMessage(playerid, -1, "[ ERROR ] Use: /MudarNick [novo nick]");
- format(Conta, sizeof(Conta), "Contas/%s.ini", Name(playerid));
- if(!DOF2_FileExists(Conta))
- {
- format(KinG1, sizeof(KinG1), "[ SERVER ] O Jogador '%s' mudou o nome para '%s'", Name(playerid),params);
- SendClientMessageToAll(-1, KinG1);
- format(KinG2, sizeof(KinG2), "Contas/%s.ini", params);
- DOF2_RenameFile(Conta, KinG2);
- SetPlayerName(playerid, params);
- }
- else SendClientMessage(playerid, -1, "[ ERROR ] Desculpe.. mais este nome já está sendo utilizado");
- return 1;
- }
- CMD:setadming(playerid, params[])
- {
- new id;
- if(sscanf(params, "ud", id, Player[id][pAdmin])) return SendClientMessage(playerid,-1,"[ ERROR ] Use: /SetAdming [ID] [level-admin]");
- if(!IsPlayerConnected(id)) return SendClientMessage(playerid,-1,"[ ERROR ] O Jogador não está conectado");
- if(Player[id][pAdmin] > 3) return SendClientMessage(playerid,-1,"[ ERROR ] level-admin [0-3]");
- SendClientMessage(id,-1,"[ ADMIN ] você é um admin agora ! :D");
- return 1;
- }
- CMD:setskin(playerid ,params[])
- {
- if(Player[playerid][pAdmin] == 0) return SendClientMessage(playerid, -1, "[ ERROR ] Comando somente para admins!");
- new id,KinG1[38 + 4];
- if(sscanf(params, "ud", id, Player[id][pSkin])) return SendClientMessage(playerid,-1,"[ ERROR ] Use: /SetSkin [ID] [skin]");
- if(!IsPlayerConnected(id)) return SendClientMessage(playerid,-1,"[ ERROR ] O Jogador não está conectado");
- if(Player[id][pSkin] > 311) return SendClientMessage(playerid,-1,"[ ERROR ] skin validas [0-311]");
- format(KinG1, sizeof(KinG1), "[ SERVER ] sua skin mudou para %d", Player[id][pSkin]);
- SendClientMessage(id, -1, KinG1);
- return SetPlayerSkin(id,Player[id][pSkin]);
- }
- CMD:setscore(playerid ,params[])
- {
- if(Player[playerid][pAdmin] == 0) return SendClientMessage(playerid, -1, "[ ERROR ] Comando somente para admins");
- new id,KinG2[32 + 11];
- if(sscanf(params, "ud", id, Player[id][pScore])) return SendClientMessage(playerid,-1,"[ ERROR ] Use: /SetScore [ID] [score]");
- if(!IsPlayerConnected(id)) return SendClientMessage(playerid,-1,"[ ERROR ] O Jogador não está conectado");
- format(KinG2, sizeof(KinG2), "[ SERVER ] você recebeu %d Score", Player[id][pScore]);
- SendClientMessage(id, -1, KinG2);
- return SetPlayerScore(id,Player[id][pScore]);
- }
- CMD:setmoney(playerid, params[])
- {
- if(Player[playerid][pAdmin] == 0) return SendClientMessage(playerid, -1, "[ ERROR ] Comando somente para admins");
- new id,KinG1[28 + 11];
- if(sscanf(params, "ud", id, Player[id][pMoney])) return SendClientMessage(playerid,-1,"[ ERROR ] Use: /SetMoney [ID] [money]");
- if(!IsPlayerConnected(id)) return SendClientMessage(playerid,-1,"[ ERROR ] O Jogador não está conectado");
- format(KinG1, sizeof(KinG1), "[ SERVER ] você recebeu %d R$", Player[id][pMoney]);
- SendClientMessage(id, -1, KinG1);
- DarMoney(id,Player[id][pMoney]);
- return 1;
- }
- CMD:limparchat(playerid)
- {
- if(Player[playerid][pAdmin] == 0) return SendClientMessage(playerid, -1, "[ ERROR ] Comando somente para admins");
- for(new i = 0; i < 50; i++) SendClientMessageToAll(-1,"");
- return 1;
- }
- public OnPlayerCommandReceived(playerid, cmdtext[])
- {
- if(Player[playerid][pLogado] == false) return SendClientMessage(playerid, -1, "[ ERROR ] Você não está logado!"),false;
- return 1;
- }
- public OnPlayerCommandPerformed(playerid, cmdtext[], success)
- {
- if(!success) return SendClientMessage(playerid, -1, "[ ERROR ] Comando invalido");
- return 1;
- }
- CMD:ajuda(playerid)
- {
- new ajudaz[500];
- strcat(ajudaz,"Comando para jogadores\n");
- strcat(ajudaz,"/ajuda, /MudarSenha, /MudarNick\n\n");
- strcat(ajudaz,"Comando para Admins\n");
- strcat(ajudaz,"/SetSkin, /SetScore, /SetMoney, /LimparChat\n\n");
- return ShowPlayerDialog(playerid,7984, DIALOG_STYLE_MSGBOX, "comandos",ajudaz, "fechar", "");
- }
- //=====================================================================================||
- CriarConta(playerid)
- {
- format(Conta, sizeof(Conta), "Contas/%s.ini", Name(playerid));
- DOF2_SetInt(Conta, "Admin", 0);
- DOF2_SetInt(Conta, "Skin", 98);
- DOF2_SetInt(Conta, "Money", 500);
- DOF2_SetInt(Conta, "Score", 0);
- DOF2_SetFloat(Conta, "PosX", 2069.8767);
- DOF2_SetFloat(Conta, "PosY", -1766.6870);
- DOF2_SetFloat(Conta, "PosZ", 13.5621);
- DOF2_SetFloat(Conta, "PosA", 90.0);
- DOF2_SetInt(Conta, "Interior", 0);
- DOF2_SetInt(Conta, "VW", 0);
- DOF2_SaveFile();
- }
- CarregarConta(playerid)
- {
- format(Conta, sizeof(Conta), "Contas/%s.ini", Name(playerid));
- Player[playerid][pAdmin] = DOF2_GetInt(Conta, "Admin");
- Player[playerid][pSkin] = DOF2_GetInt(Conta, "Skin");
- Player[playerid][pMoney] = DOF2_GetInt(Conta, "Money");
- Player[playerid][pScore] = DOF2_GetInt(Conta, "Score");
- Player[playerid][pPosX] = DOF2_GetInt(Conta, "PosX");
- Player[playerid][pPosY] = DOF2_GetInt(Conta, "PosY");
- Player[playerid][pPosZ] = DOF2_GetInt(Conta, "PosZ");
- Player[playerid][pPosA] = DOF2_GetInt(Conta, "PosA");
- Player[playerid][pInterior] = DOF2_GetInt(Conta, "Interior");
- Player[playerid][pVW] = DOF2_GetInt(Conta, "VW");
- Player[playerid][pLogado]=true;
- SetPlayerScore(playerid, Player[playerid][pScore]);
- DarMoney(playerid, Player[playerid][pMoney]);
- SetPlayerInterior(playerid, Player[playerid][pInterior]);
- SetPlayerVirtualWorld(playerid, Player[playerid][pVW]);
- SetSpawnInfo(playerid, -1, Player[playerid][pSkin], Player[playerid][pPosX], Player[playerid][pPosY], Player[playerid][pPosZ], Player[playerid][pPosA],0,0,0,0,0,0);
- SpawnPlayer(playerid);
- }
- SalvarConta(playerid)
- {
- format(Conta, sizeof(Conta), "Contas/%s.ini", Name(playerid));
- GetPlayerPos(playerid, Player[playerid][pPosX], Player[playerid][pPosY], Player[playerid][pPosZ]);
- GetPlayerFacingAngle(playerid,Player[playerid][pPosA]);
- DOF2_SetInt(Conta, "Admin", Player[playerid][pAdmin]);
- DOF2_SetInt(Conta, "Skin", Player[playerid][pSkin]);
- DOF2_SetInt(Conta, "Money", Player[playerid][pMoney]);
- DOF2_SetInt(Conta, "Score", Player[playerid][pScore]);
- DOF2_SetFloat(Conta, "PosX", Player[playerid][pPosX]);
- DOF2_SetFloat(Conta, "PosY", Player[playerid][pPosY]);
- DOF2_SetFloat(Conta, "PosZ", Player[playerid][pPosZ]);
- DOF2_SetFloat(Conta, "PosA", Player[playerid][pPosA]);
- DOF2_SetInt(Conta, "Interior", GetPlayerInterior(playerid));
- DOF2_SetInt(Conta, "VW", GetPlayerVirtualWorld(playerid));
- DOF2_SaveFile();
- }
- Name(playerid)
- {
- new pNome[MAX_PLAYER_NAME];
- GetPlayerName(playerid, pNome, 24);
- return pNome;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement