SHARE
TWEET

gm

yousaki22 Feb 14th, 2020 78 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  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. #include    Streamer
  12. //======================================[ DEFINE  ]====================================||
  13. #undef      MAX_PLAYERS
  14. #define     MAX_PLAYERS     50
  15.  
  16. #define     DarMoney(%0,%1) ResetPlayerMoney(%0) && GivePlayerMoney(%0,%1)
  17. //======================================[ DIALOG  ]====================================||
  18. #define     DIALOG_REGISTER         0
  19. #define     DIALOG_LOGIN            1
  20. //======================================[ Start ]======================================||
  21. main(){}
  22.  
  23. enum pInfo
  24. {
  25.     pAdmin,
  26.     pSkin,
  27.     pScore,
  28.     pMoney,
  29.     Float:pPosX,
  30.     Float:pPosY,
  31.     Float:pPosZ,
  32.     Float:pPosA,
  33.     pInterior,
  34.     pVW,
  35.     bool:pLogado
  36. }
  37.  
  38. new
  39.     Player[MAX_PLAYERS][pInfo],reset[pInfo],
  40.     Conta[256]
  41. ;
  42.  
  43. //=====================================[ CALLBACKS ]====================================||
  44. public OnGameModeInit()
  45. {
  46.     print("\n ====================================================================");
  47.     print(" |                                                                  |");
  48.     print(" |              GameMode Base DOF2 Version 1.5 Started...           |");
  49.     print(" |                                                                  |");
  50.     print(" |                      * By Pedro Eduardo. *                       |");
  51.     print(" |                                                                  |");
  52.     print(" ====================================================================\n");
  53.     SetGameModeText("by Pedro Eduardo");
  54.     UsePlayerPedAnims();
  55.     ShowPlayerMarkers(PLAYER_MARKERS_MODE_STREAMED);
  56.     ShowNameTags(1);
  57.     SetNameTagDrawDistance(100.0);
  58.     return  1;
  59. }
  60.  
  61. public OnGameModeExit()
  62. {
  63.     DOF2_Exit();
  64.     return 1;
  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(Player[playerid][pLogado] == true)
  78.     {
  79.         SetSpawnInfo(playerid,-1,Player[playerid][pSkin],Player[playerid][pPosX],Player[playerid][pPosY],Player[playerid][pPosZ],Player[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) //ao player morrer
  88. {
  89.     //hospital
  90.     Player[playerid][pPosX]=2034.1435;
  91.     Player[playerid][pPosY]=-1402.1190;
  92.     Player[playerid][pPosZ]=16.6299;
  93.     Player[playerid][pPosA]=90.0;
  94.     return 1;
  95. }
  96.  
  97. public OnPlayerText(playerid, text[ ])    //player digitar um texto
  98. {
  99.     if(Player[playerid][pLogado] == false) return SendClientMessage(playerid, 0x800040AA,"[>] Voce nao se conectou na cidade!"),false;
  100.     if(strlen(text) > 100) return SendClientMessage(playerid, 0x800040AA,"[>] Nao escreva um texto muito longo!"),false;
  101.     return 1;
  102. }
  103.  
  104. public OnPlayerConnect(playerid) //ao player logar
  105. {
  106.     Player[playerid][pLogado]=false;
  107.     //=================================[ LOGIN/REGISTRO ]===============================||
  108.     format(Conta, sizeof(Conta), "Contas/%s.ini", Name(playerid));
  109.     if(!DOF2_FileExists(Conta))
  110.     {
  111.         ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT, "Sign-up", "Digite uma senha, para fazer seu registro na cidade!", "Registrar", "Sair");
  112.     }
  113.     else
  114.     {
  115.         ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Sign-in", "Bem vindo ao LonqKase RP! \nEscreva uma senha abaixo para efetuar o login em sua conta.", "Entrar", "Sair");
  116.     }
  117.     //==================================================================================||
  118.     return 1;
  119. }
  120.  
  121. public OnPlayerDisconnect(playerid, reason)  //ao player deslogar
  122. {
  123.     SalvarConta(playerid);
  124.  
  125.     //reset in variable's
  126.     Player[playerid] = reset;
  127.     return 1;
  128. }
  129.  
  130. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])   //o que fazer quando clicar na opcao da dialog>
  131. {
  132.     //=================================[ DIALOG_REGISTER ]==============================||
  133.     if(dialogid == DIALOG_REGISTER)
  134.     {
  135.         if(!response) return Kick(playerid);
  136.         if(strlen(inputtext) < 4) return ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT, "Sign-up", "Digite uma senha, para fazer seu registro na cidade!", "registrar", "sair");
  137.         if(response)
  138.         {
  139.             if(strlen(inputtext))
  140.             {
  141.                 format(Conta, sizeof(Conta), "Contas/%s.ini", Name(playerid));
  142.                 DOF2_CreateFile(Conta);
  143.                 DOF2_SetString(Conta, "Password", inputtext);
  144.                 DOF2_SaveFile();
  145.  
  146.                 CriarConta(playerid);
  147.                 CarregarConta(playerid);
  148.             }
  149.             else ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT, "Sign-up", "Digite uma senha, para fazer seu registro na cidade!", "registrar", "Sair");
  150.         }
  151.         return 1;
  152.     }
  153.     //=================================[ DIALOGO   LOGIN ]==============================||
  154.     if(dialogid == DIALOG_LOGIN)
  155.     {
  156.         if(!response) return Kick(playerid);
  157.         if(response)
  158.         {
  159.             if(!strlen(inputtext))
  160.             {
  161.                 return ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT, "Sign-in", "Bem vindo ao LonqKase RP! \nEscreva uma senha abaixo para efetuar o login em sua conta.","entrar", "sair");
  162.             }
  163.             format(Conta, sizeof(Conta), "Contas/%s.ini", Name(playerid));
  164.             if(strcmp(inputtext, DOF2_GetString(Conta, "Password"), true))
  165.             {
  166.                 ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT, "Sign-in", "Bem vindo ao LonqKase RP! \nEscreva uma senha abaixo para efetuar o login em sua conta.","entrar", "sair");
  167.                 SendClientMessage(playerid, 0x800040AA, "[>] A senha esta incorreta, tente novamente!");
  168.             }
  169.             else //se acertar a senha
  170.             {
  171.                 CarregarConta(playerid);
  172.             }
  173.         }
  174.         return 1;
  175.     }
  176.     return 1;
  177. }
  178.  
  179. public OnPlayerSpawn(playerid)
  180. {
  181.     SetPlayerSkin(playerid, Player[playerid][pSkin]);
  182.     DarMoney(playerid,Player[playerid][pMoney]);
  183.     TogglePlayerControllable(playerid,true);
  184.  
  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, 0xC0C0C0AA, "[>] 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), "[>] Sua nova senha e {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, 0xC0C0C0AA, "[>] 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), "[>] 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, 0xC0C0C0AA, "[>] 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, 0xC0C0C0AA,"[>] Use: /setadming [ID] [level-admin]");
  226.     if(!IsPlayerConnected(id)) return SendClientMessage(playerid, 0x800040AA,"[>] O Jogador nao esta conectado");
  227.     if(Player[id][pAdmin] > 3) return SendClientMessage(playerid, 0xC0C0C0AA,"[>] level-admin [0-3]");
  228.  
  229.     SendClientMessage(id, 0x008000AA,"[>] Agora voce e um administrador! :D");
  230.     return 1;
  231. }
  232.  
  233. CMD:setskin(playerid ,params[])
  234. {
  235.     if(Player[playerid][pAdmin] == 0) return SendClientMessage(playerid, 0x800040AA, "[>] Voce nao pode utilizar este comando!");
  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, 0xC0C0C0AA,"[>] O Jogador nao esta conectado");
  240.     if(Player[id][pSkin] > 311) return SendClientMessage(playerid, 0x800040AA,"[>] Skin validas [0-311]");
  241.  
  242.     format(KinG1, sizeof(KinG1), "[>] 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, 0x800040AA, "[>] Voce nao pode utilizar este comando!");
  251.  
  252.     new id,KinG2[32 + 11];
  253.     if(sscanf(params, "ud", id, Player[id][pScore])) return SendClientMessage(playerid, 0xC0C0C0AA,"[>] Use: /setscore [ID] [score]");
  254.     if(!IsPlayerConnected(id)) return SendClientMessage(playerid, 0xC0C0C0AA,"[>] O Jogador nao esta conectado");
  255.  
  256.     format(KinG2, sizeof(KinG2), "[>] 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, 0x800040AA, "[>] Voce nao pode utilizar este comando!");
  265.  
  266.     new id,KinG1[28 + 11];
  267.     if(sscanf(params, "ud", id, Player[id][pMoney])) return SendClientMessage(playerid, 0xC0C0C0AA,"[>] Use: /setmoney [ID] [money]");
  268.     if(!IsPlayerConnected(id)) return SendClientMessage(playerid, 0xC0C0C0AA,"[>] O Jogador nao esta 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, 0x800040AA, "[>] Voce nao pode utilizar este comando!");
  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, 0x800040AA, "[>] Voce nao esta logado!"),false;
  287.     return 1;
  288. }
  289.  
  290. public OnPlayerCommandPerformed(playerid, cmdtext[], success)
  291. {
  292.     if(!success) return SendClientMessage(playerid, 0x800040AA, "[>] Voce digitou um comando nao existente, tente /ajuda para ve os comandos.");
  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, /relatorio\n\n");
  301.     strcat(ajudaz,"Comando para Roleplay\n");
  302.     strcat(ajudaz,"/me (acao), /do (descrever, /b (ooc), /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. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
Top