Advertisement
PedroEduardo

[GameMode] Base DOF2 v1.5 [UPDATE]

Apr 23rd, 2017
1,552
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 13.78 KB | None | 0 0
  1. //===========================================//
  2. //** System: GameMode Base DOF2 v1.5         ( http://forum.sa-mp.com/showthread.php?p=3824052 )
  3. //** Credits: Pedro Eduardo
  4. //===========================================//
  5.  
  6. //======================================[ INCLUDE ]====================================||
  7. #include    a_samp
  8. #include    DOF2
  9. #include    zcmd
  10. #include    sscanf2
  11. //======================================[ DEFINE  ]====================================||
  12. #undef      MAX_PLAYERS
  13. #define     MAX_PLAYERS     50
  14.  
  15. #define     DarMoney(%0,%1) ResetPlayerMoney(%0) && GivePlayerMoney(%0,%1)
  16. //======================================[ DIALOG  ]====================================||
  17. #define     DIALOG_REGISTER         0
  18. #define     DIALOG_LOGIN            1
  19. //======================================[ Start ]======================================||
  20. main(){}
  21.  
  22. enum pInfo
  23. {
  24.     pAdmin,
  25.     pSkin,
  26.     pScore,
  27.     pMoney,
  28.     Float:pPosX,
  29.     Float:pPosY,
  30.     Float:pPosZ,
  31.     Float:pPosA,
  32.     pInterior,
  33.     pVW,
  34.     bool:pLogado
  35. }
  36.  
  37. new
  38.     Player[MAX_PLAYERS][pInfo],reset[pInfo],
  39.     Conta[256]
  40. ;
  41.  
  42. //=====================================[ CALLBACKS ]====================================||
  43. public OnGameModeInit()
  44. {
  45.     print("\n ====================================================================");
  46.     print(" |                                                                  |");
  47.     print(" |              GameMode Base DOF2 Version 1.5 Started...           |");
  48.     print(" |                                                                  |");
  49.     print(" |                      * By Pedro Eduardo. *                       |");
  50.     print(" |                                                                  |");
  51.     print(" ====================================================================\n");
  52.     SetGameModeText("by Pedro Eduardo");
  53.     UsePlayerPedAnims();
  54.     ShowPlayerMarkers(PLAYER_MARKERS_MODE_STREAMED);
  55.     ShowNameTags(1);
  56.     SetNameTagDrawDistance(100.0);
  57.     return  1;
  58. }
  59.  
  60. public OnGameModeExit()
  61. {
  62.     DOF2_Exit();
  63.     return 1;
  64. }
  65.  
  66. public OnPlayerRequestClass(playerid, classid)
  67. {
  68.     IsPlayerLogged(playerid);
  69.     return false;
  70. }
  71.  
  72. public OnPlayerRequestSpawn(playerid) return IsPlayerLogged(playerid);
  73.  
  74. IsPlayerLogged(playerid)
  75. {
  76.     if(Player[playerid][pLogado] == true)
  77.     {
  78.         SetSpawnInfo(playerid,-1,Player[playerid][pSkin],Player[playerid][pPosX],Player[playerid][pPosY],Player[playerid][pPosZ],Player[playerid][pPosA],0,0,0,0,0,0);
  79.         SpawnPlayer(playerid);
  80.         SetPlayerInterior(playerid, 0);
  81.         SetCameraBehindPlayer(playerid);
  82.     }
  83.     return 1;
  84. }
  85.  
  86. public OnPlayerDeath(playerid, killerid, reason)
  87. {
  88.     //hospital
  89.     Player[playerid][pPosX]=2034.1435;
  90.     Player[playerid][pPosY]=-1402.1190;
  91.     Player[playerid][pPosZ]=16.6299;
  92.     Player[playerid][pPosA]=90.0;
  93.     return 1;
  94. }
  95.  
  96. public OnPlayerText(playerid, text[ ])
  97. {
  98.     if(Player[playerid][pLogado] == false) return SendClientMessage(playerid,-1,"[ ERROR ] Você não está logado!"),false;
  99.     if(strlen(text) > 100) return SendClientMessage(playerid,-1,"[ ERROR ] Não escreva um texto muito grande!"),false;
  100.     return 1;
  101. }
  102.  
  103. public OnPlayerConnect(playerid)
  104. {
  105.     Player[playerid][pLogado]=false;
  106.     //=================================[ LOGIN/REGISTRO ]===============================||
  107.     format(Conta, sizeof(Conta), "Contas/%s.ini", Name(playerid));
  108.     if(!DOF2_FileExists(Conta))
  109.     {
  110.         ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT, "Register", "Escreva uma senha, para se registrar!", "Registrar", "Sair");
  111.     }
  112.     else
  113.     {
  114.         ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "LOGIN", "Bem vindo ! \nEscreva uma senha abaixo para entrar em sua conta.", "Entrar", "Sair");
  115.     }
  116.     //==================================================================================||
  117.     return 1;
  118. }
  119.  
  120. public OnPlayerDisconnect(playerid, reason)
  121. {
  122.     SalvarConta(playerid);
  123.  
  124.     //reset in variable's
  125.     Player[playerid] = reset;
  126.     return 1;
  127. }
  128.  
  129. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  130. {
  131.     //=================================[ DIALOG_REGISTER ]==============================||
  132.     if(dialogid == DIALOG_REGISTER)
  133.     {
  134.         if(!response) return Kick(playerid);
  135.         if(strlen(inputtext) < 4) return ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT, "Register", "Escreva uma senha, para se registrar!", "registrar", "sair");
  136.         if(response)
  137.         {
  138.             if(strlen(inputtext))
  139.             {
  140.                 format(Conta, sizeof(Conta), "Contas/%s.ini", Name(playerid));
  141.                 DOF2_CreateFile(Conta);
  142.                 DOF2_SetString(Conta, "Password", inputtext);
  143.                 DOF2_SaveFile();
  144.  
  145.                 CriarConta(playerid);
  146.                 CarregarConta(playerid);
  147.             }
  148.             else ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT, "Register", "Escreva uma senha, para se registrar!", "registrar", "Sair");
  149.         }
  150.         return 1;
  151.     }
  152.     //=================================[ DIALOGO   LOGIN ]==============================||
  153.     if(dialogid == DIALOG_LOGIN)
  154.     {
  155.         if(!response) return Kick(playerid);
  156.         if(response)
  157.         {
  158.             if(!strlen(inputtext))
  159.             {
  160.                 return ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT, "LOGIN", "Bem vindo ! \nEscreva uma senha abaixo para entrar em sua conta.","entrar", "sair");
  161.             }
  162.             format(Conta, sizeof(Conta), "Contas/%s.ini", Name(playerid));
  163.             if(strcmp(inputtext, DOF2_GetString(Conta, "Password"), true))
  164.             {
  165.                 ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT, "LOGIN", "Bem vindo ! \nEscreva uma senha abaixo para entrar em sua conta.","entrar", "sair");
  166.                 SendClientMessage(playerid, -1, "[ SERVER ] a senha está errada!");
  167.             }
  168.             else //se acertar a senha
  169.             {
  170.                 CarregarConta(playerid);
  171.             }
  172.         }
  173.         return 1;
  174.     }
  175.     return 1;
  176. }
  177.  
  178. public OnPlayerSpawn(playerid)
  179. {
  180.     SetPlayerSkin(playerid, Player[playerid][pSkin]);
  181.     DarMoney(playerid,Player[playerid][pMoney]);
  182.     TogglePlayerControllable(playerid,true);
  183.  
  184.     SendClientMessage(playerid, -1,"[ SERVER ] Use: /Ajuda para mostrar todos os comandos do servidor");
  185.     return 1;
  186. }
  187.  
  188. //=============================[Comandos]==============================================||
  189.  
  190. CMD:mudarsenha(playerid,params[])
  191. {
  192.     new KinG1[48 + 42];
  193.     if(isnull(params)) return SendClientMessage(playerid, -1, "[ ERROR ] Use: /MudarSenha [nova senha]");
  194.  
  195.     format(Conta, sizeof(Conta), "Contas/%s.ini", Name(playerid));
  196.     DOF2_SetString(Conta, "Password", params);
  197.     DOF2_SaveFile();
  198.  
  199.     format(KinG1, sizeof(KinG1), "[ SERVER ] Sua nova senha é {12FF05}'%s'",params);
  200.     SendClientMessage(playerid, -1, KinG1);
  201.     return 1;
  202. }
  203.  
  204. CMD:mudarnick(playerid,params[])
  205. {
  206.     new KinG1[46+24+24], KinG2[40];
  207.     if(isnull(params)) return SendClientMessage(playerid, -1, "[ ERROR ] Use: /MudarNick [novo nick]");
  208.  
  209.     format(Conta, sizeof(Conta), "Contas/%s.ini", Name(playerid));
  210.     if(!DOF2_FileExists(Conta))
  211.     {
  212.         format(KinG1, sizeof(KinG1), "[ SERVER ] O Jogador '%s' mudou o nome para '%s'", Name(playerid),params);
  213.         SendClientMessageToAll(-1, KinG1);
  214.         format(KinG2, sizeof(KinG2), "Contas/%s.ini", params);
  215.         DOF2_RenameFile(Conta, KinG2);
  216.         SetPlayerName(playerid, params);
  217.     }
  218.     else SendClientMessage(playerid, -1, "[ ERROR ] Desculpe.. mais este nome já está sendo utilizado");
  219.     return 1;
  220. }
  221.  
  222. CMD:setadming(playerid, params[])
  223. {
  224.     new id;
  225.     if(sscanf(params, "ud", id, Player[id][pAdmin])) return SendClientMessage(playerid,-1,"[ ERROR ] Use: /SetAdming [ID] [level-admin]");
  226.     if(!IsPlayerConnected(id)) return SendClientMessage(playerid,-1,"[ ERROR ] O Jogador não está conectado");
  227.     if(Player[id][pAdmin] > 3) return SendClientMessage(playerid,-1,"[ ERROR ] level-admin [0-3]");
  228.  
  229.     SendClientMessage(id,-1,"[ ADMIN ] você é um admin agora ! :D");
  230.     return 1;
  231. }
  232.  
  233. CMD:setskin(playerid ,params[])
  234. {
  235.     if(Player[playerid][pAdmin] == 0) return SendClientMessage(playerid, -1, "[ ERROR ] Comando somente para admins!");
  236.  
  237.     new id,KinG1[38 + 4];
  238.     if(sscanf(params, "ud", id, Player[id][pSkin])) return SendClientMessage(playerid,-1,"[ ERROR ] Use: /SetSkin [ID] [skin]");
  239.     if(!IsPlayerConnected(id)) return SendClientMessage(playerid,-1,"[ ERROR ] O Jogador não está conectado");
  240.     if(Player[id][pSkin] > 311) return SendClientMessage(playerid,-1,"[ ERROR ] skin validas [0-311]");
  241.  
  242.     format(KinG1, sizeof(KinG1), "[ SERVER ] sua skin mudou para %d", Player[id][pSkin]);
  243.     SendClientMessage(id, -1, KinG1);
  244.  
  245.     return SetPlayerSkin(id,Player[id][pSkin]);
  246. }
  247.  
  248. CMD:setscore(playerid ,params[])
  249. {
  250.     if(Player[playerid][pAdmin] == 0) return SendClientMessage(playerid, -1, "[ ERROR ] Comando somente para admins");
  251.  
  252.     new id,KinG2[32 + 11];
  253.     if(sscanf(params, "ud", id, Player[id][pScore])) return SendClientMessage(playerid,-1,"[ ERROR ] Use: /SetScore [ID] [score]");
  254.     if(!IsPlayerConnected(id)) return SendClientMessage(playerid,-1,"[ ERROR ] O Jogador não está conectado");
  255.  
  256.     format(KinG2, sizeof(KinG2), "[ SERVER ] você recebeu %d Score", Player[id][pScore]);
  257.     SendClientMessage(id, -1, KinG2);
  258.  
  259.     return SetPlayerScore(id,Player[id][pScore]);
  260. }
  261.  
  262. CMD:setmoney(playerid, params[])
  263. {
  264.     if(Player[playerid][pAdmin] == 0) return SendClientMessage(playerid, -1, "[ ERROR ] Comando somente para admins");
  265.  
  266.     new id,KinG1[28 + 11];
  267.     if(sscanf(params, "ud", id, Player[id][pMoney])) return SendClientMessage(playerid,-1,"[ ERROR ] Use: /SetMoney [ID] [money]");
  268.     if(!IsPlayerConnected(id)) return SendClientMessage(playerid,-1,"[ ERROR ] O Jogador não está conectado");
  269.  
  270.     format(KinG1, sizeof(KinG1), "[ SERVER ] você recebeu %d R$", Player[id][pMoney]);
  271.     SendClientMessage(id, -1, KinG1);
  272.  
  273.     DarMoney(id,Player[id][pMoney]);
  274.     return 1;
  275. }
  276.  
  277. CMD:limparchat(playerid)
  278. {
  279.     if(Player[playerid][pAdmin] == 0) return SendClientMessage(playerid, -1, "[ ERROR ] Comando somente para admins");
  280.     for(new i = 0; i < 50; i++) SendClientMessageToAll(-1,"");
  281.     return 1;
  282. }
  283.  
  284. public OnPlayerCommandReceived(playerid, cmdtext[])
  285. {
  286.     if(Player[playerid][pLogado] == false) return SendClientMessage(playerid, -1, "[ ERROR ] Você não está logado!"),false;
  287.     return 1;
  288. }
  289.  
  290. public OnPlayerCommandPerformed(playerid, cmdtext[], success)
  291. {
  292.     if(!success) return SendClientMessage(playerid, -1, "[ ERROR ] Comando invalido");
  293.     return 1;
  294. }
  295.  
  296. CMD:ajuda(playerid)
  297. {
  298.     new ajudaz[500];
  299.     strcat(ajudaz,"Comando para jogadores\n");
  300.     strcat(ajudaz,"/ajuda, /MudarSenha, /MudarNick\n\n");
  301.     strcat(ajudaz,"Comando para Admins\n");
  302.     strcat(ajudaz,"/SetSkin, /SetScore, /SetMoney, /LimparChat\n\n");
  303.     return ShowPlayerDialog(playerid,7984, DIALOG_STYLE_MSGBOX, "comandos",ajudaz, "fechar", "");
  304. }
  305.  
  306. //=====================================================================================||
  307.  
  308. CriarConta(playerid)
  309. {
  310.     format(Conta, sizeof(Conta), "Contas/%s.ini", Name(playerid));
  311.  
  312.     DOF2_SetInt(Conta, "Admin", 0);
  313.     DOF2_SetInt(Conta, "Skin", 98);
  314.     DOF2_SetInt(Conta, "Money", 500);
  315.     DOF2_SetInt(Conta, "Score", 0);
  316.     DOF2_SetFloat(Conta, "PosX", 2069.8767);
  317.     DOF2_SetFloat(Conta, "PosY", -1766.6870);
  318.     DOF2_SetFloat(Conta, "PosZ", 13.5621);
  319.     DOF2_SetFloat(Conta, "PosA", 90.0);
  320.     DOF2_SetInt(Conta, "Interior", 0);
  321.     DOF2_SetInt(Conta, "VW", 0);
  322.  
  323.     DOF2_SaveFile();
  324. }
  325.  
  326. CarregarConta(playerid)
  327. {
  328.     format(Conta, sizeof(Conta), "Contas/%s.ini", Name(playerid));
  329.  
  330.     Player[playerid][pAdmin] = DOF2_GetInt(Conta, "Admin");
  331.     Player[playerid][pSkin] = DOF2_GetInt(Conta, "Skin");
  332.     Player[playerid][pMoney] = DOF2_GetInt(Conta, "Money");
  333.     Player[playerid][pScore] = DOF2_GetInt(Conta, "Score");
  334.     Player[playerid][pPosX] = DOF2_GetInt(Conta, "PosX");
  335.     Player[playerid][pPosY] = DOF2_GetInt(Conta, "PosY");
  336.     Player[playerid][pPosZ] = DOF2_GetInt(Conta, "PosZ");
  337.     Player[playerid][pPosA] = DOF2_GetInt(Conta, "PosA");
  338.     Player[playerid][pInterior] = DOF2_GetInt(Conta, "Interior");
  339.     Player[playerid][pVW] = DOF2_GetInt(Conta, "VW");
  340.     Player[playerid][pLogado]=true;
  341.  
  342.     SetPlayerScore(playerid, Player[playerid][pScore]);
  343.     DarMoney(playerid, Player[playerid][pMoney]);
  344.     SetPlayerInterior(playerid, Player[playerid][pInterior]);
  345.     SetPlayerVirtualWorld(playerid, Player[playerid][pVW]);
  346.     SetSpawnInfo(playerid, -1, Player[playerid][pSkin], Player[playerid][pPosX], Player[playerid][pPosY], Player[playerid][pPosZ], Player[playerid][pPosA],0,0,0,0,0,0);
  347.     SpawnPlayer(playerid);
  348. }
  349.  
  350. SalvarConta(playerid)
  351. {
  352.     format(Conta, sizeof(Conta), "Contas/%s.ini", Name(playerid));
  353.     GetPlayerPos(playerid, Player[playerid][pPosX], Player[playerid][pPosY], Player[playerid][pPosZ]);
  354.     GetPlayerFacingAngle(playerid,Player[playerid][pPosA]);
  355.  
  356.     DOF2_SetInt(Conta, "Admin", Player[playerid][pAdmin]);
  357.     DOF2_SetInt(Conta, "Skin", Player[playerid][pSkin]);
  358.     DOF2_SetInt(Conta, "Money", Player[playerid][pMoney]);
  359.     DOF2_SetInt(Conta, "Score", Player[playerid][pScore]);
  360.  
  361.     DOF2_SetFloat(Conta, "PosX", Player[playerid][pPosX]);
  362.     DOF2_SetFloat(Conta, "PosY", Player[playerid][pPosY]);
  363.     DOF2_SetFloat(Conta, "PosZ", Player[playerid][pPosZ]);
  364.     DOF2_SetFloat(Conta, "PosA", Player[playerid][pPosA]);
  365.     DOF2_SetInt(Conta, "Interior", GetPlayerInterior(playerid));
  366.     DOF2_SetInt(Conta, "VW", GetPlayerVirtualWorld(playerid));
  367.  
  368.     DOF2_SaveFile();
  369. }
  370.  
  371. Name(playerid)
  372. {
  373.     new pNome[MAX_PLAYER_NAME];
  374.     GetPlayerName(playerid, pNome, 24);
  375.     return pNome;
  376. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement