Advertisement
Guest User

Sistema de Famílias

a guest
Jan 12th, 2017
476
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 5.89 KB | None | 0 0
  1. /*
  2.     Sistema de Família - RPG by hannzika
  3. */
  4.  
  5. #include a_samp
  6. #include ZCMD
  7. #include DOF2
  8.  
  9.  
  10. #define corChat            (0x3EBECFFF)
  11. #define corCinza           (0xA0A0A0FF)
  12.  
  13.  
  14. forward checkNick(str1, str2[]);
  15.  
  16. enum pInfo {
  17.     pAdmin,
  18.     pPermissaoChat
  19. };
  20.  
  21. new PlayerInfo[MAX_PLAYERS][pInfo];
  22.  
  23.  
  24. public checkNick(str1, str2[]) {
  25.     for (new x; x < strlen(str2); x++) {
  26.         if (str1 == str2[x])
  27.             return x;
  28.     }
  29.     return -1;
  30. }
  31.  
  32. stock getNome(playerid) {
  33.     new NAME[21];
  34.     GetPlayerName(playerid, NAME, MAX_PLAYER_NAME);
  35.     return NAME;
  36. }
  37.  
  38. public OnFilterScriptInit() {
  39.     print("\n--------------------------------------");
  40.     print(" Sistema de Família - RPG by hannzika");
  41.     print("--------------------------------------\n");
  42.     return true;
  43. }
  44.  
  45. public OnFilterScriptExit() {
  46.     DOF2::Exit();
  47.     return true;
  48. }
  49.  
  50. COMMAND:getadmin(playerid)
  51.     return PlayerInfo[playerid][pAdmin] = 1;
  52.  
  53.  
  54. COMMAND:criarfamilia(playerid, params[]) {
  55.     if(PlayerInfo[playerid][pAdmin] < 1)
  56.         return SendClientMessage(playerid, corCinza, "[ ERRO ]: Você não tem autorização para usar este comando!");
  57.  
  58.     if(isnull(params))
  59.         return SendClientMessage(playerid, corCinza, "[ USE ]: /criarfamilia [Nome]");
  60.  
  61.     new str[64];
  62.     format(str, 64, "Familias/%s.ini", params);
  63.     if(DOF2::FileExists(str))
  64.         return SendClientMessage(playerid, corCinza, "[ ERRO ]: Já existe uma família com este nome!");
  65.  
  66.     new msg[40];
  67.     format(msg, 40, "Você criou a família %s", params);
  68.     SendClientMessage(playerid, corChat, msg);
  69.     DOF2::CreateFile(str);
  70.     DOF2::SaveFile();
  71.     return true;
  72. }
  73.  
  74.  
  75. COMMAND:fpermissao(playerid, params[]) {
  76.     if(isnull(params))
  77.         return SendClientMessage(playerid, corCinza, "[ USE ]: /fpermissao [ID]");
  78.  
  79.     if(PlayerInfo[playerid][pPermissaoChat] == 0 || PlayerInfo[playerid][pAdmin] < 1)
  80.         return SendClientMessage(playerid, corCinza, "[ ERRO ]: Você não tem permissão para usar este comando!");
  81.  
  82.     if(PlayerInfo[strval(params)][pPermissaoChat] != 0)
  83.         return SendClientMessage(playerid, corCinza, "[ ERRO ]: Este id já possuí permissão!");
  84.  
  85.     new file[64], family[21], index = checkNick('_', getNome(playerid));
  86.     strmid(family, getNome(playerid), index + 1, MAX_PLAYER_NAME);
  87.  
  88.     format(file, 64, "Familias/%s.ini", family);
  89.     if(!DOF2::FileExists(file))
  90.         return SendClientMessage(playerid, corCinza, "[ ERRO ]: Você não tem família ou ela não existe no servidor!");
  91.  
  92.     new _family[18];
  93.     new _index = checkNick('_', getNome(strval(params)));
  94.     strmid(_family, getNome(strval(params)), _index + 1, MAX_PLAYER_NAME);
  95.  
  96.     if (strcmp(_family, family))
  97.         return SendClientMessage(playerid, corCinza, "[ ERRO ]: Este player não tem o sobrenome igual a você!");
  98.  
  99.  
  100.     new msg[128];
  101.     format(msg, 100, "Você autorizou %s a usar o nick da família %s", getNome(strval(params)), family);
  102.     SendClientMessage(playerid, corChat, msg);
  103.  
  104.     format(msg, 100, "%s autorizou você a usar o nick da família %s", getNome(playerid), family);
  105.     SendClientMessage(playerid, corChat, msg);
  106.     PlayerInfo[strval(params)][pPermissaoChat] = 1;
  107.     return true;
  108. }
  109.  
  110.  
  111. COMMAND:fon(playerid) {
  112.     new str[128], file[64], family[21], index = checkNick('_', getNome(playerid));
  113.     strmid(family, getNome(playerid), index + 1, MAX_PLAYER_NAME);
  114.  
  115.     format(file, 64, "Familias/%s.ini", family);
  116.     if(!DOF2::FileExists(file))
  117.         return SendClientMessage(playerid, corCinza, "[ ERRO ]: Você não tem família ou ela não existe no servidor!");
  118.  
  119.     format(str, 128, "Membros Online da %s", family);
  120.     SendClientMessage(playerid, corCinza, str);
  121.     for(new x = 0; x < GetPlayerPoolSize(); x++) {
  122.         format(str, 128, "%s (%i)", getNome(x), x);
  123.         new _family[18];
  124.         new _index = checkNick('_', getNome(x));
  125.         strmid(_family, getNome(x), _index + 1, MAX_PLAYER_NAME);
  126.         if (!strcmp(_family, family)) {
  127.             SendClientMessage(playerid, corChat, str);
  128.         }
  129.     }
  130.     return true;
  131. }
  132.  
  133.  
  134. COMMAND:ajudafamilia(playerid) {
  135.     new file[64], family[21], index = checkNick('_', getNome(playerid));
  136.     strmid(family, getNome(playerid), index + 1, MAX_PLAYER_NAME);
  137.  
  138.     format(file, 64, "Familias/%s.ini", family);
  139.     if(!DOF2::FileExists(file))
  140.         return SendClientMessage(playerid, corCinza, "[ ERRO ]: Você não possuí família ativa no servidor!");
  141.  
  142.     SendClientMessage(playerid, corCinza, "{F43636}/f - {FFFFFF}Use para utilizar o chat privado da família.");
  143.     SendClientMessage(playerid, corCinza, "{F43636}/fon - {FFFFFF}Use este comando para ver os players da família online.");
  144.     SendClientMessage(playerid, corCinza, "{F43636}/fpermissao - {FFFFFF}Use este comando para permitir um player utilizar o sistema da família.");
  145.     return true;
  146. }
  147.  
  148.  
  149. COMMAND:f(playerid, params[]) {
  150.     if(PlayerInfo[playerid][pPermissaoChat] == 0)
  151.         return SendClientMessage(playerid, corCinza, "[ ERRO ]: Você não tem permissão para usar este chat!");
  152.  
  153.     if(isnull(params))
  154.         return SendClientMessage(playerid, corCinza, "[ USE ]: /f [Texto]");
  155.  
  156.     new str[128], file[64], family[21], index = checkNick('_', getNome(playerid));
  157.     strmid(family, getNome(playerid), index + 1, MAX_PLAYER_NAME);
  158.  
  159.     format(file, 64, "Familias/%s.ini", family);
  160.     if(!DOF2::FileExists(file))
  161.         return SendClientMessage(playerid, corCinza, "[ ERRO ]: Esta família não existe!");
  162.  
  163.     format(str, 128, "( Chat %s ) %s: %s", family, getNome(playerid), params);
  164.     for(new i = 0; i < GetPlayerPoolSize(); i++) {
  165.         new _family[18];
  166.         new _index = checkNick('_', getNome(i));
  167.         strmid(_family, getNome(i), _index + 1, MAX_PLAYER_NAME);
  168.         if (!strcmp(_family, family)) {
  169.             SendClientMessage(i, corChat, str);
  170.         }
  171.     }
  172.     return true;
  173. }
  174.  
  175.  
  176. COMMAND:mudarnick(playerid, params[]) {
  177.     if(isnull(params))
  178.         return SendClientMessage(playerid, corCinza, "[ USE ]: /mudarnick [Nome]");
  179.  
  180.     new str[60];
  181.     format(str, 60, "Você mudou seu nick para %s", params);
  182.     SendClientMessage(playerid, corChat, str);
  183.     SetPlayerName(playerid, params);
  184.     return true;
  185. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement