Advertisement
PedroEduardo

[GameMode] Base DOF2 v1.0

Mar 6th, 2017
411
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 13.04 KB | None | 0 0
  1. //===========================================//
  2. //** System: GameMode Base DOF2 v1.0         ( http://forum.sa-mp.com/showthread.php?p=3824052 )
  3. //** Credits: Pedro Eduardo
  4. //===========================================//
  5.  
  6. //======================================[ INCLUDES ]====================================||
  7. #include    a_samp
  8. #include    DOF2
  9. #include    zcmd
  10. //======================================[ DEFINES ]====================================||
  11. #undef      MAX_PLAYERS
  12. #define     MAX_PLAYERS     50
  13.  
  14. #define     DarMoney(%0,%1) ResetPlayerMoney(%0) && GivePlayerMoney(%0,%1)
  15. //======================================[ DIALOGOS ]====================================||
  16. #define     DIALOG_REGISTRO         0
  17. #define     DIALOG_LOGIN            1
  18.  
  19. #define     DIALOG_NICK             2
  20. #define     DIALOG_SENHA            3
  21. #define     DIALOG_SKIN             4
  22. #define     DIALOG_SCORE            5
  23. #define     DIALOG_DINHEIRO         6
  24. //======================================[ INICIO ]======================================||
  25. main(){}
  26.  
  27. enum pInfo
  28. {
  29.     pAdmin,
  30.     pSkin,
  31.     pScore,
  32.     pDinheiro,
  33.     Float:pPosX,
  34.     Float:pPosY,
  35.     Float:pPosZ,
  36.     Float:pPosA,
  37.     pInterior,
  38.     pVW,
  39.     bool:pLogado
  40. }
  41.  
  42. new Dados[MAX_PLAYERS][pInfo],reset[pInfo];
  43. new Conta[256];
  44.  
  45. //=====================================[ CALLBACKS ]====================================||
  46. public OnGameModeInit()
  47. {
  48.     SetGameModeText("by Pedro Eduardo");
  49.     UsePlayerPedAnims();
  50.     ShowPlayerMarkers(PLAYER_MARKERS_MODE_STREAMED);
  51.     ShowNameTags(1);
  52.     SetNameTagDrawDistance(100.0);
  53.     return  1;
  54. }
  55.  
  56. public OnGameModeExit()
  57. {
  58.     DOF2_Exit();
  59.     return 1;
  60. }
  61.  
  62. ResetEnum(playerid)
  63. {
  64.     Dados[playerid] = reset;
  65. }
  66.  
  67. public OnPlayerRequestClass(playerid, classid)
  68. {
  69.     IsPlayerLogged(playerid);
  70.     return false;
  71. }
  72.  
  73. public OnPlayerRequestSpawn(playerid) return IsPlayerLogged(playerid);
  74.  
  75. IsPlayerLogged(playerid)
  76. {
  77.     if(Dados[playerid][pLogado] == true)
  78.     {
  79.         SetSpawnInfo(playerid,-1,Dados[playerid][pSkin],Dados[playerid][pPosX],Dados[playerid][pPosY],Dados[playerid][pPosZ],Dados[playerid][pPosA],0,0,0,0,0,0);
  80.         SpawnPlayer(playerid);
  81.         SetPlayerInterior(playerid, 0);
  82.         SetCameraBehindPlayer(playerid);
  83.     }
  84.     return 1;
  85. }
  86.  
  87. public OnPlayerDeath(playerid, killerid, reason)
  88. {
  89.     Dados[playerid][pPosX]=2034.1435;
  90.     Dados[playerid][pPosY]=-1402.1190;
  91.     Dados[playerid][pPosZ]=16.6299;
  92.     Dados[playerid][pPosA]=90.0;
  93.     return 1;
  94. }
  95.  
  96. public OnPlayerText(playerid, text[ ])
  97. {
  98.     if(Dados[playerid][pLogado] == false)
  99.     {
  100.         SendClientMessage(playerid,-1,"Você não está logado.");
  101.         return 0;
  102.     }
  103.     if(strlen(text) > 90)
  104.     {
  105.         SendClientMessage(playerid,-1,"Não digite um texto muito grande!");
  106.         return 0;
  107.     }
  108.     return 1;
  109. }
  110.  
  111. public OnPlayerConnect(playerid)
  112. {
  113.     Dados[playerid][pLogado]=false;
  114.     //=================================[ LOGIN/REGISTRO ]===============================||
  115.     format(Conta, sizeof(Conta), "Contas/%s.ini", Nome(playerid));
  116.     if(!DOF2_FileExists(Conta))
  117.     {
  118.         ShowPlayerDialog(playerid, DIALOG_REGISTRO, DIALOG_STYLE_INPUT, "REGISTRO", "Registrar!", "Registrar", "Sair");
  119.     }
  120.     else
  121.     {
  122.         ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "LOGIN", "Logar", "Conectar", "Sair");
  123.     }
  124.     //==================================================================================||
  125.     return 1;
  126. }
  127.  
  128. public OnPlayerDisconnect(playerid, reason)
  129. {
  130.     //=================================[ SALVANDO CONTAS ]==============================||
  131.     format(Conta, sizeof(Conta), "Contas/%s.ini", Nome(playerid));
  132.     DOF2_SetInt(Conta, "Admin", Dados[playerid][pAdmin]);
  133.     DOF2_SetInt(Conta, "Skin", Dados[playerid][pSkin]);
  134.     DOF2_SetInt(Conta, "Dinheiro", GetPlayerMoney(playerid));
  135.     DOF2_SetInt(Conta, "Score", GetPlayerScore(playerid));
  136.    
  137.     new Float:X, Float:Y, Float:Z, Float:A;
  138.     GetPlayerPos(playerid, Float:X, Float:Y, Float:Z);
  139.     GetPlayerFacingAngle(playerid,Float:A);
  140.     DOF2_SetFloat(Conta, "PosX", X);
  141.     DOF2_SetFloat(Conta, "PosY", Y);
  142.     DOF2_SetFloat(Conta, "PosZ", Z);
  143.     DOF2_SetFloat(Conta, "PosA", A);
  144.     DOF2_SetInt(Conta, "Interior", GetPlayerInterior(playerid));
  145.     DOF2_SetInt(Conta, "VW", GetPlayerVirtualWorld(playerid));
  146.    
  147.     DOF2_SaveFile();
  148.     //==================================================================================||
  149.     ResetEnum(playerid);
  150.     return 1;
  151. }
  152.  
  153. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  154. {
  155.     //=================================[ DIALOG_REGISTRO ]==============================||
  156.     if(dialogid == DIALOG_REGISTRO)
  157.     {
  158.         if(!response) return Kick(playerid);
  159.         if(strlen(inputtext) < 4) return ShowPlayerDialog(playerid, DIALOG_REGISTRO, DIALOG_STYLE_INPUT, "Registro", "Digite Sua Senha Para Se Registrar!", "Registrar", "Sair");
  160.         if(response)
  161.         {
  162.             if(strlen(inputtext))
  163.             {      
  164.                 format(Conta, sizeof(Conta), "Contas/%s.ini", Nome(playerid));
  165.                 DOF2_CreateFile(Conta);
  166.                 DOF2_SetString(Conta, "Senha", inputtext);
  167.                 DOF2_SaveFile();
  168.            
  169.                 CriarConta(playerid);
  170.                 CarregarConta(playerid);
  171.             }
  172.             else return ShowPlayerDialog(playerid, DIALOG_REGISTRO, DIALOG_STYLE_INPUT, "Registro", "Digite Sua Senha Para Se Registrar!", "Registrar", "Sair");
  173.         }
  174.         return 1;
  175.     }
  176.     //=================================[ DIALOGO   LOGIN ]==============================||
  177.     if(dialogid == DIALOG_LOGIN)
  178.     {
  179.         if(!response) return Kick(playerid);
  180.         if(response)
  181.         {
  182.             if(!strlen(inputtext))
  183.             {
  184.                 return ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT, "LOGIN", "Entrar no servidor","Entrar", "Sair");
  185.             }
  186.             format(Conta, sizeof(Conta), "Contas/%s.ini", Nome(playerid));
  187.             if(strcmp(inputtext, DOF2_GetString(Conta, "Senha"), true))
  188.             {
  189.                 ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT, "LOGIN", "Entrar no servidor","Entrar", "Sair");
  190.                 return SendClientMessage(playerid, -1, "Senha incorreta!");
  191.             }
  192.             else //se conseguir logar
  193.             {
  194.                 return CarregarConta(playerid);
  195.             }
  196.         }
  197.         return 1;
  198.     }
  199.     //=================================[ DIALOGO    NICK ]==============================||
  200.     if(dialogid == DIALOG_NICK)
  201.     {
  202.         if(!response) return 0;
  203.         if(response)
  204.         {
  205.             if(!strlen(inputtext))
  206.             {
  207.                 return ShowPlayerDialog(playerid, DIALOG_NICK, DIALOG_STYLE_INPUT, "Mudar Nick", "para mudar de nick, digite-a abaixo.", "Mudar", "Voltar");
  208.             }
  209.             else
  210.             {
  211.                 new mensagem[100], novo[40];
  212.                 format(Conta, sizeof(Conta), "Contas/%s.ini", Nome(playerid));
  213.                 format(mensagem, 100, "O Jogado %s, mudou seu nick para %s", Nome(playerid),inputtext);
  214.                 SendClientMessageToAll( -1, mensagem);
  215.                 format(novo, 40, "Contas/%s.ini", inputtext);
  216.                 DOF2_RenameFile(Conta, novo);
  217.                 return SetPlayerName(playerid, inputtext);
  218.             }
  219.         }
  220.         return 1;
  221.     }
  222.     //=================================[ DIALOGO   SENHA ]==============================||
  223.     if(dialogid == DIALOG_SENHA)
  224.     {
  225.         if(!response) return 0;
  226.         if(response)
  227.         {
  228.             if(!strlen(inputtext))
  229.             {
  230.                 return ShowPlayerDialog(playerid, DIALOG_SENHA, DIALOG_STYLE_INPUT, "Mudar Senha", "para mudar de senha, digite-a abaixo.", "Mudar", "Voltar");
  231.             }
  232.             else
  233.             {
  234.                 new String01[100];
  235.                 format(Conta, sizeof(Conta), "Contas/%s.ini", Nome(playerid));
  236.                 DOF2_SetString(Conta, "Senha", inputtext);
  237.                 DOF2_SaveFile();
  238.                 format(String01, sizeof(String01), "{12FF05}Sua nova senha é {25E01B}'%s' tire um print para n esquecer apertando [f8]", inputtext);
  239.                 return SendClientMessage(playerid, -1, String01);
  240.             }
  241.         }
  242.         return 1;
  243.     }
  244.     //=================================[ DIALOGO    SKIN ]==============================||
  245.     if(dialogid == DIALOG_SKIN)
  246.     {
  247.         if(!response) return 0;
  248.         if(response)
  249.         {
  250.             if(!strlen(inputtext))
  251.             {
  252.                 return ShowPlayerDialog(playerid, DIALOG_SKIN, DIALOG_STYLE_INPUT, "Mudar Skin", "para mudar de skin, digite-a abaixo.", "Mudar", "Voltar");
  253.             }
  254.             else
  255.             {
  256.                 new String01[35];
  257.                 format(String01, sizeof(String01), "Você colocou a Skin Número %d", strval(inputtext));
  258.                 SendClientMessage(playerid, -1, String01);
  259.                
  260.                 format(Conta, sizeof(Conta), "Contas/%s.ini", Nome(playerid));     
  261.                 Dados[playerid][pSkin] = strval(inputtext);
  262.                 DOF2_SetInt(Conta, "Skin", Dados[playerid][pSkin]);
  263.                 DOF2_SaveFile();
  264.                 return SetPlayerSkin(playerid,strval(inputtext));
  265.             }
  266.         }
  267.         return 1;
  268.     }
  269.     //=================================[ DIALOGO    SCORE ]==============================||
  270.     if(dialogid == DIALOG_SCORE)
  271.     {
  272.         if(!response) return 0;
  273.         if(response)
  274.         {
  275.             if(!strlen(inputtext))
  276.             {
  277.                 return ShowPlayerDialog(playerid, DIALOG_SCORE, DIALOG_STYLE_INPUT, "Mudar Score", "para mudar de score, digite-a abaixo.", "Mudar", "Voltar");
  278.             }
  279.             else
  280.             {
  281.                 format(Conta, sizeof(Conta), "Contas/%s.ini", Nome(playerid));
  282.                 new String01[35];
  283.                 format(String01, sizeof(String01), "Você colocou %d de Score", strval(inputtext));
  284.                 SendClientMessage(playerid, -1, String01);
  285.                 DOF2_SetString(Conta, "Score", inputtext);
  286.                 DOF2_SaveFile();
  287.                 return SetPlayerScore(playerid,strval(inputtext));
  288.             }
  289.         }
  290.         return 1;
  291.     }
  292.     //=================================[ DIALOGO    DINHEIRO ]==============================||
  293.     if(dialogid == DIALOG_DINHEIRO)
  294.     {
  295.         if(!response) return 0;
  296.         if(response)
  297.         {
  298.             if(!strlen(inputtext))
  299.             {
  300.                 return ShowPlayerDialog(playerid, DIALOG_DINHEIRO, DIALOG_STYLE_INPUT, "Mudar Dinheiro", "para mudar de dinheiro, digite-a abaixo.", "Mudar", "Voltar");
  301.             }
  302.             else
  303.             {
  304.                 format(Conta, sizeof(Conta), "Contas/%s.ini", Nome(playerid));
  305.                 new String01[35];
  306.                 format(String01, sizeof(String01), "Você colocou %d R$ na sua conta", strval(inputtext));
  307.                 SendClientMessage(playerid, -1, String01);
  308.                 Dados[playerid][pDinheiro]=strval(inputtext);
  309.                 DOF2_SetString(Conta, "Dinheiro", inputtext);
  310.                 DOF2_SaveFile();
  311.                 return DarMoney(playerid,strval(inputtext));
  312.             }
  313.         }
  314.         return 1;
  315.     }
  316.     return 1;
  317. }
  318.  
  319. public OnPlayerSpawn(playerid)
  320. {
  321.     SetPlayerSkin(playerid, Dados[playerid][pSkin]);
  322.     DarMoney(playerid,Dados[playerid][pDinheiro]);
  323.     TogglePlayerControllable(playerid,true);
  324.     return 1;
  325. }
  326.  
  327. //=====================================================================================||
  328.  
  329. CriarConta(playerid)
  330. {
  331.     format(Conta, sizeof(Conta), "Contas/%s.ini", Nome(playerid));
  332.    
  333.     DOF2_SetInt(Conta, "Admin", 0);
  334.     DOF2_SetInt(Conta, "Skin", 98);
  335.     DOF2_SetInt(Conta, "Dinheiro", 500);
  336.     DOF2_SetInt(Conta, "Score", 0);
  337.     DOF2_SetFloat(Conta, "PosX", 2069.8767);
  338.     DOF2_SetFloat(Conta, "PosY", -1766.6870);
  339.     DOF2_SetFloat(Conta, "PosZ", 13.5621);
  340.     DOF2_SetFloat(Conta, "PosA", 90.0);
  341.     DOF2_SetInt(Conta, "Interior", 0);
  342.     DOF2_SetInt(Conta, "VW", 0);
  343.    
  344.     DOF2_SaveFile();
  345. }
  346.  
  347. CarregarConta(playerid)
  348. {
  349.     format(Conta, sizeof(Conta), "Contas/%s.ini", Nome(playerid));
  350.    
  351.     Dados[playerid][pAdmin] = DOF2_GetInt(Conta, "Admin");
  352.     Dados[playerid][pSkin] = DOF2_GetInt(Conta, "Skin");
  353.     Dados[playerid][pDinheiro] = DOF2_GetInt(Conta, "Dinheiro");
  354.     Dados[playerid][pScore] = DOF2_GetInt(Conta, "Score");
  355.     Dados[playerid][pPosX] = DOF2_GetInt(Conta, "PosX");
  356.     Dados[playerid][pPosY] = DOF2_GetInt(Conta, "PosY");
  357.     Dados[playerid][pPosZ] = DOF2_GetInt(Conta, "PosZ");
  358.     Dados[playerid][pPosA] = DOF2_GetInt(Conta, "PosA");
  359.     Dados[playerid][pInterior] = DOF2_GetInt(Conta, "Interior");
  360.     Dados[playerid][pVW] = DOF2_GetInt(Conta, "VW");
  361.     Dados[playerid][pLogado]=true;
  362.    
  363.     SetPlayerScore(playerid, Dados[playerid][pScore]);
  364.     DarMoney(playerid, Dados[playerid][pDinheiro]);
  365.     SetPlayerInterior(playerid, Dados[playerid][pInterior]);
  366.     SetSpawnInfo(playerid, -1, Dados[playerid][pSkin], Dados[playerid][pPosX], Dados[playerid][pPosY], Dados[playerid][pPosZ], Dados[playerid][pPosA],0,0,0,0,0,0);
  367.     SpawnPlayer(playerid);
  368.     SetPlayerVirtualWorld(playerid, Dados[playerid][pVW]);
  369.     return 1;
  370. }
  371.  
  372. Nome(playerid)
  373. {
  374.     new pNome[MAX_PLAYER_NAME];
  375.     GetPlayerName(playerid, pNome, 24);
  376.     return pNome;
  377. }
  378.  
  379. //=============================[Comandos]==============================================||
  380.  
  381. CMD:mudarsenha(playerid)
  382. {
  383.     return ShowPlayerDialog(playerid, DIALOG_SENHA, DIALOG_STYLE_INPUT, "Mudar Senha", "para mudar de senha, digite-a abaixo.", "Mudar", "Voltar");
  384. }
  385.  
  386. CMD:mudarnick(playerid)
  387. {
  388.     return ShowPlayerDialog(playerid, DIALOG_NICK, DIALOG_STYLE_INPUT, "Mudar Nick", "para mudar de nick, digite-a abaixo.", "Mudar", "Voltar");
  389. }
  390.  
  391. CMD:skin(playerid)
  392. {
  393.     return ShowPlayerDialog(playerid, DIALOG_SKIN, DIALOG_STYLE_INPUT, "Mudar Skin", "para mudar de skin, digite-a abaixo.", "Mudar", "Voltar");
  394. }
  395.  
  396. CMD:score(playerid)
  397. {
  398.     return ShowPlayerDialog(playerid, DIALOG_SCORE, DIALOG_STYLE_INPUT, "Mudar Score", "para mudar de Score, digite-a abaixo.", "Mudar", "Voltar");
  399. }
  400.  
  401. CMD:dinheiro(playerid)
  402. {
  403.     return ShowPlayerDialog(playerid, DIALOG_DINHEIRO, DIALOG_STYLE_INPUT, "Mudar dinheiro", "para dar dinheiro pra vc, digite-a abaixo.", "Mudar", "Voltar");
  404. }
  405.  
  406. CMD:viraradmin(playerid)
  407. {
  408.     Dados[playerid][pAdmin] = 1;
  409.     DOF2_SetInt(Conta, "Admin", Dados[playerid][pAdmin]);
  410.     DOF2_SaveFile();
  411.     return 1;
  412. }
  413.  
  414. CMD:limparchat(playerid)
  415. {
  416.     if(Dados[playerid][pAdmin] == 0) return SendClientMessage(playerid, -1, "Você não é admin!");
  417.     for(new i = 0; i < 50; i++)
  418.     {
  419.         SendClientMessage(playerid, -1,"");
  420.     }
  421.     return 1;
  422. }
  423.  
  424. CMD:kill(playerid) return SetPlayerHealth(playerid,0.0);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement