Advertisement
Guest User

InfoOrg( DOF2 - ZCMD -SSCANF2 - FOREACH )

a guest
May 30th, 2013
151
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 26.35 KB | None | 0 0
  1. /******************************************************************************/
  2.  
  3. #include <                      a_samp                      >
  4. #include <                       dof2                       >
  5. #include <                       zcmd                       >
  6. #include <                      sscanf2                     >
  7. #include <                      foreach                     >
  8.  
  9. /******************************************************************************/
  10.  
  11. #define COLOR_WHITE                                                 0xFFFFFFFF
  12. #define COLOR_GRAY                                                  0xCECECEFF
  13. #define COLOR_CYAN                                                  0x00FFFFFF
  14. #define COLOR_RED                                                   0xFF0000FF
  15.  
  16. /******************************************************************************/
  17.  
  18. #define COR_POLICIA                                                 0x6495EDFF
  19. #define COR_BOPE                                                    0x483D8BFF
  20. #define COR_GROVE                                                   0x00EE00FF
  21. #define COR_BALLAS                                                  0x7D26CDFF
  22.  
  23. /******************************************************************************/
  24.  
  25. #define MAX_ORGS                                                    ( 4+1 )     // Número máximo de orgs ( preserve o +1 ).
  26. #define MAX_MEMBROS                                                 ( 5+1 )     // Número máximo de membros ( preserve o +1 ).
  27. #undef MAX_PLAYERS
  28. #define MAX_PLAYERS                                                 ( 50 )      // Número máximo de players/slots do host
  29.  
  30. /******************************************************************************/
  31.  
  32. #define DIALOG_CONVIDAR                                             ( 3000 )    // Mude caso exista um dialog com o mesmo id.
  33.  
  34. /******************************************************************************/
  35.  
  36. enum
  37. {
  38.     ORG_CIVIL ,         // Org 0
  39.     ORG_POLICIAM ,      // Org 1
  40.     ORG_BOPE ,          // Org 2
  41.     ORG_GROVE ,         // Org 3
  42.     ORG_BALLAS          // Org 4
  43. }
  44.  
  45. enum pInfo
  46. {
  47.     pAdmin ,
  48.     pCargo ,
  49.     pMembro
  50. }
  51. new PlayerInfo[MAX_PLAYERS][pInfo];
  52.  
  53. enum oInfo
  54. {
  55.     Lider ,
  56.     SubLider
  57. }
  58. new Org[MAX_ORGS][oInfo][MAX_PLAYER_NAME],
  59.     Membros[MAX_ORGS][MAX_MEMBROS][MAX_PLAYER_NAME];
  60.  
  61. new OrgName[32],
  62.     _@STR[128];
  63.  
  64. new Members,
  65.     Subs,
  66.     Lideres;
  67.  
  68. /******************************************************************************/
  69.  
  70. public OnFilterScriptInit()
  71. {
  72.     for(new i = 1; i < MAX_ORGS; ++i)
  73.     {
  74.         //CriarOrgs(i); *Use apenas 1 vez para criar os arquivos das orgs ( lembre-se de criar a pasta infoorg antes ).
  75.         CarregarOrgs();
  76.     }
  77.     return 1;
  78. }
  79.  
  80. public OnFilterScriptExit()
  81. {
  82.     return 1;
  83. }
  84.  
  85. public OnPlayerConnect(playerid)
  86. {
  87.     new arquivo[32], name[24];
  88.     GetPlayerName(playerid, name, 24);
  89.     format(arquivo, 32, "Contas/%s.ini", name);
  90.     DOF2::CreateFile(arquivo);
  91.     PlayerInfo[playerid][pAdmin] = DOF2::GetInt(arquivo, "Admin");
  92.     PlayerInfo[playerid][pMembro] = DOF2::GetInt(arquivo, "Membro");
  93.     PlayerInfo[playerid][pCargo] = DOF2::GetInt(arquivo, "Cargo");
  94.     DOF2::SaveFile();
  95.     return 1;
  96. }
  97.  
  98. public OnPlayerDisconnect(playerid, reason)
  99. {
  100.     SalvarConta(playerid);
  101.     return 1;
  102. }
  103.  
  104. public OnPlayerSpawn(playerid)
  105. {
  106.     ChecarOrg(playerid);
  107.     return 1;
  108. }
  109.  
  110. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  111. {
  112.     if(dialogid == DIALOG_CONVIDAR)
  113.     {
  114.         if(response)
  115.         {
  116.             Convidar(playerid, GetPVarInt(playerid, "OrgConvite"));
  117.             DeletePVar(playerid, "OrgConvite");
  118.             return 1;
  119.         }
  120.     }
  121.     return 1;
  122. }
  123.  
  124. /******************************************************************************/
  125.  
  126. SalvarConta(playerid)
  127. {
  128.     new arquivo[32], name[24];
  129.     GetPlayerName(playerid, name, 24);
  130.     format(arquivo, 32, "Contas/%s.ini", name);
  131.     DOF2::CreateFile(arquivo);
  132.     DOF2::SetInt(arquivo, "Admin", PlayerInfo[playerid][pAdmin]);
  133.     DOF2::SetInt(arquivo, "Membro", PlayerInfo[playerid][pMembro]);
  134.     DOF2::SetInt(arquivo, "Cargo", PlayerInfo[playerid][pCargo]);
  135.     DOF2::SaveFile();
  136. }
  137.    
  138. /******************************************************************************/
  139.  
  140. /*stock CriarOrgs(orgid)
  141. {
  142.     new arquivo[20];
  143.     format(arquivo, sizeof arquivo, "InfoOrg/Org%i.ini", orgid);
  144.     DOF2::CreateFile(arquivo);
  145.     DOF2::SetString(arquivo, "Lider", "Ninguem");
  146.     DOF2::SetString(arquivo, "SubLider", "Ninguem");
  147.     DOF2::SetString(arquivo, "Membro1", "Ninguem");
  148.     DOF2::SetString(arquivo, "Membro2", "Ninguem");
  149.     DOF2::SetString(arquivo, "Membro3", "Ninguem");
  150.     DOF2::SetString(arquivo, "Membro4", "Ninguem");
  151.     DOF2::SetString(arquivo, "Membro5", "Ninguem");
  152.     DOF2::SaveFile();
  153. }*/
  154.  
  155. /******************************************************************************/
  156.  
  157. CarregarOrgs()
  158. {
  159.     new arquivo[20];
  160.     for(new i = 1; i < MAX_ORGS; ++i)
  161.     {
  162.         format(arquivo, sizeof arquivo, "InfoOrg/Org%i.ini", i);
  163.         strmid(Org[i][Lider], DOF2::GetString(arquivo,"Lider"), 0, strlen(DOF2::GetString(arquivo, "Lider")), 128);
  164.         strmid(Org[i][SubLider], DOF2::GetString(arquivo, "SubLider"), 0, strlen(DOF2::GetString(arquivo, "SubLider")), 128);
  165.         strmid(Membros[i][1], DOF2::GetString(arquivo, "Membro1"), 0, strlen(DOF2::GetString(arquivo, "Membro1")), 128);
  166.         strmid(Membros[i][2], DOF2::GetString(arquivo, "Membro2"), 0, strlen(DOF2::GetString(arquivo, "Membro2")), 128);
  167.         strmid(Membros[i][3], DOF2::GetString(arquivo, "Membro3"), 0, strlen(DOF2::GetString(arquivo, "Membro3")), 128);
  168.         strmid(Membros[i][4], DOF2::GetString(arquivo, "Membro4"), 0, strlen(DOF2::GetString(arquivo, "Membro4")), 128);
  169.         strmid(Membros[i][5], DOF2::GetString(arquivo, "Membro5"), 0, strlen(DOF2::GetString(arquivo, "Membro5")), 128);
  170.     }
  171.     return 1;
  172. }
  173.  
  174. /******************************************************************************/
  175.  
  176. ChecarOrg(playerid)
  177. {
  178.     new orgid = PlayerInfo[playerid][pMembro];
  179.     if(strcmp(Org[orgid][Lider],Nome(playerid), true) == 0) return 1;
  180.     if(strcmp(Org[orgid][SubLider],Nome(playerid), true) == 0) return 1;
  181.     if(strcmp(Membros[orgid][1], Nome(playerid), true) == 0) return 1;
  182.     if(strcmp(Membros[orgid][2], Nome(playerid), true) == 0) return 1;
  183.     if(strcmp(Membros[orgid][3], Nome(playerid), true) == 0) return 1;
  184.     if(strcmp(Membros[orgid][4], Nome(playerid), true) == 0) return 1;
  185.     if(strcmp(Membros[orgid][5], Nome(playerid), true) == 0) return 1;
  186.     PlayerInfo[playerid][pMembro] = 0;
  187.     PlayerInfo[playerid][pCargo] = 0;
  188.     SetPlayerSkin(playerid, 23);
  189.     SendClientMessage(playerid, COLOR_WHITE, "Você foi expulso da organização!");
  190.     SpawnPlayer(playerid);
  191.     return 1;
  192. }
  193.  
  194. /******************************************************************************/
  195.  
  196. Convidar(playerid, orgid)
  197. {
  198.     new arquivo[20], _string[15];
  199.     format(arquivo, sizeof arquivo, "InfoOrg/Org%i.ini", orgid);
  200.     for(new i = 1; i < MAX_MEMBROS; ++i)
  201.     {
  202.         if(strcmp(Membros[orgid][i], "Ninguem", true) == 0)
  203.         {
  204.             format(_string, sizeof _string, "Membro%i", i);
  205.             PlayerInfo[playerid][pMembro] = orgid;
  206.             PlayerInfo[playerid][pCargo] = 1;
  207.             GetOrgName(orgid, OrgName, sizeof OrgName);
  208.             strmid(Membros[orgid][i], Nome(playerid), 0, strlen(Nome(playerid)), 128);
  209.             DOF2::SetString(arquivo, _string, Nome(playerid));
  210.             DOF2::SaveFile();
  211.             format(_@STR, sizeof _@STR, "Bem vindo ao(s) {FFFFFF}%s{00FFFF} !", OrgName);
  212.             SendClientMessage(playerid, COLOR_CYAN, _@STR);
  213.             SpawnPlayer(playerid);
  214.             break;
  215.         }
  216.     }
  217.     return 1;
  218. }
  219.  
  220. /******************************************************************************/
  221.  
  222. Demitir(playerid)
  223. {
  224.     new arquivo[20], _string[15], orgid = PlayerInfo[playerid][pMembro];
  225.     format(arquivo, sizeof arquivo, "InfoOrg/Org%i.ini", orgid);
  226.     if(strcmp(Org[orgid][Lider], Nome(playerid), true) == 0)
  227.     {
  228.         PlayerInfo[playerid][pMembro] = 0;
  229.         PlayerInfo[playerid][pCargo] = 0;
  230.         SetPlayerSkin(playerid, 23);
  231.         strmid(Org[orgid][Lider], "Ninguem", 0 , strlen("Ninguem"), 128);
  232.         DOF2::SetString(arquivo, "Lider", "Ninguem");
  233.         SpawnPlayer(playerid);
  234.         DOF2::SaveFile();
  235.     }
  236.     if(strcmp(Org[orgid][SubLider], Nome(playerid), true) == 0)
  237.     {
  238.         PlayerInfo[playerid][pMembro] = 0;
  239.         PlayerInfo[playerid][pCargo] = 0;
  240.         SetPlayerSkin(playerid, 23);
  241.         strmid(Org[orgid][SubLider], "Ninguem", 0, strlen("Ninguem"), 128);
  242.         DOF2::SetString(arquivo, "SubLider", "Ninguem");
  243.         SpawnPlayer(playerid);
  244.         DOF2::SaveFile();
  245.     }
  246.     for(new i = 1; i < MAX_MEMBROS; ++i)
  247.     {
  248.         if(strcmp(Membros[orgid][i], Nome(playerid), true) == 0)
  249.         {
  250.             format(_string, sizeof _string, "Membro%i", i);
  251.             PlayerInfo[playerid][pMembro] = 0;
  252.             PlayerInfo[playerid][pCargo] = 0;
  253.             SetPlayerSkin(playerid, 23);
  254.             strmid(Membros[orgid][i], "Ninguem", 0, strlen("Ninguem"), 128);
  255.             DOF2::SetString(arquivo, _string, "Ninguem");
  256.             SpawnPlayer(playerid);
  257.             DOF2::SaveFile();
  258.         }
  259.     }
  260. }
  261.  
  262. /******************************************************************************/
  263.  
  264. Limpar(orgid, vaga)
  265. {
  266.     new arquivo[20], _string[15];
  267.     format(arquivo, sizeof arquivo, "InfoOrg/Org%i.ini", orgid);
  268.     format(_string, sizeof _string, "Membro%i", vaga);
  269.     if(IsPlayerOnline(Membros[orgid][vaga]))
  270.     {
  271.         new ID = GetPlayerID(Membros[orgid][vaga]);
  272.         Demitir(ID);
  273.     }
  274.     else
  275.     {
  276.         DOF2::SetString(arquivo, _string, "Ninguem");
  277.         DOF2::SaveFile();
  278.         strmid(Membros[orgid][vaga], "Ninguem", 0, strlen("Ninguem"), 128);
  279.     }
  280.     return 1;
  281. }
  282.  
  283. /******************************************************************************/
  284.  
  285. Promover(playerid, cargo)
  286. {
  287.     new orgid = PlayerInfo[playerid][pMembro];
  288.     new arquivo[32], _string[15];
  289.     new vaga = GetPlayerVaga(playerid);
  290.     format(_string, sizeof _string, "Membro%i", vaga);
  291.     format(arquivo, sizeof arquivo, "InfoOrg/Org%i.ini", orgid);
  292.     if(cargo == 4)
  293.     {
  294.         new subantigo[24];
  295.         if(strcmp(Org[orgid][SubLider], "Ninguem", false))
  296.         {
  297.             if(IsPlayerOnline(Org[orgid][SubLider]))
  298.             {
  299.                 new ID = GetPlayerID(Org[orgid][SubLider]);
  300.                 GetPlayerName(ID, subantigo, sizeof subantigo);
  301.                 strmid(Membros[orgid][vaga], subantigo, 0, strlen(subantigo),128);
  302.                 strmid(Org[orgid][SubLider], Nome(playerid), 0, strlen(Nome(playerid)), 128);
  303.  
  304.                 DOF2::SetString(arquivo, _string, subantigo);
  305.                 DOF2::SetString(arquivo, "SubLider", Nome(playerid));
  306.                 DOF2::SaveFile();
  307.                
  308.                 PlayerInfo[ID][pCargo] = 3;
  309.                 PlayerInfo[playerid][pCargo] = 4;
  310.                 SendClientMessage(ID, GetOrgColor(orgid), "Um novo sub líder foi escolhido, você foi rebaixado a cargo 3!");
  311.  
  312.                 SalvarConta(playerid);
  313.                 SalvarConta(ID);
  314.             }
  315.             else
  316.             {
  317.                 strmid(subantigo, Org[orgid][SubLider], 0, strlen(Org[orgid][SubLider]), 128);
  318.  
  319.                 DOF2::SetString(arquivo, _string, subantigo);
  320.                 DOF2::SetString(arquivo, "SubLider", Nome(playerid));
  321.                 DOF2::SaveFile();
  322.                
  323.                 format(arquivo, sizeof arquivo, "Contas/%s.ini", subantigo);
  324.                 DOF2::SetInt(arquivo, "Cargo", 3);
  325.                 DOF2::SaveFile();
  326.                
  327.                 strmid(Membros[orgid][GetPlayerVaga(playerid)], subantigo, 0, strlen(subantigo), 128);
  328.                 strmid(Org[orgid][SubLider], Nome(playerid), 0, strlen(Nome(playerid)), 128);
  329.                 PlayerInfo[playerid][pCargo] = 4;
  330.  
  331.                 SalvarConta(playerid);
  332.                 return 1;
  333.             }
  334.         }
  335.         else
  336.         {
  337.             strmid(Org[orgid][SubLider], Nome(playerid), 0, strlen(Nome(playerid)), 128);
  338.             strmid(Membros[orgid][vaga], "Ninguem", 0, strlen("Ninguem"), 128);
  339.  
  340.             DOF2::SetString(arquivo, "SubLider", Nome(playerid));
  341.             DOF2::SetString(arquivo, _string, "Ninguem");
  342.             DOF2::SaveFile();
  343.            
  344.             PlayerInfo[playerid][pCargo] = 4;
  345.             SalvarConta(playerid);
  346.             return 1;
  347.         }
  348.     }
  349.     PlayerInfo[playerid][pCargo] = cargo;
  350.     return 1;
  351. }
  352.  
  353. /******************************************************************************/
  354.  
  355. GetOrgName(orgid,name[],len)
  356. {
  357.     if(orgid == ORG_CIVIL) return format(name, len, "Nenhuma", 0);
  358.     if(orgid == ORG_POLICIAM) return format(name, len, "Polícia Militar", 0);
  359.     if(orgid == ORG_BOPE) return format(name, len, "B.O.P.E", 0);
  360.     if(orgid == ORG_GROVE) return format(name, len, "Grove Street", 0);
  361.     if(orgid == ORG_BALLAS) return format(name, len, "Ballas", 0);
  362.     return 1;
  363. }
  364.  
  365. /******************************************************************************/
  366.  
  367. GetOrgColor(orgid)
  368. {
  369.     if(orgid == ORG_CIVIL) return COLOR_WHITE;
  370.     if(orgid == ORG_POLICIAM) return COR_POLICIA;
  371.     if(orgid == ORG_BOPE) return COR_BOPE;
  372.     if(orgid == ORG_GROVE) return COR_GROVE;
  373.     if(orgid == ORG_BALLAS) return COR_BALLAS;
  374.     return 1;
  375. }
  376.  
  377. /******************************************************************************/
  378.  
  379. Nome(playerid)
  380. {
  381.     new name[MAX_PLAYER_NAME];
  382.     GetPlayerName(playerid,name,sizeof(name));
  383.     return name;
  384. }
  385.  
  386. /******************************************************************************/
  387.  
  388. IsPlayerOnline(nome[])
  389. {
  390.     foreach(Player,i)
  391.     {
  392.         if(strcmp(nome, Nome(i), true) == 0)
  393.         {
  394.             return 1;
  395.         }
  396.     }
  397.     return 0;
  398. }
  399.  
  400. /******************************************************************************/
  401.  
  402. GetPlayerID(nome[])
  403. {
  404.     foreach(Player,i)
  405.     {
  406.         if(strcmp(nome, Nome(i), true) == 0)
  407.         {
  408.             return i;
  409.         }
  410.     }
  411.     return INVALID_PLAYER_ID;
  412. }
  413.  
  414. /******************************************************************************/
  415.  
  416. IsOrgFull(orgid)
  417. {
  418.     if(strcmp(Membros[orgid][1], "Ninguem", false) &&
  419.     strcmp(Membros[orgid][2], "Ninguem", false) &&
  420.     strcmp(Membros[orgid][3], "Ninguem", false)&&
  421.     strcmp(Membros[orgid][4], "Ninguem", false)&&
  422.     strcmp(Membros[orgid][5], "Ninguem", false))
  423.     {
  424.         return 1;
  425.     }
  426.     return 0;
  427. }
  428.  
  429. /******************************************************************************/
  430.  
  431. GetPlayerVaga(playerid)
  432. {
  433.     new orgid = PlayerInfo[playerid][pMembro];
  434.     for(new i = 1; i < MAX_MEMBROS; i++)
  435.     {
  436.         if(strcmp(Membros[orgid][i], Nome(playerid), true) == 0)
  437.         {
  438.             return i;
  439.         }
  440.     }
  441.     return -255;
  442. }
  443.  
  444. /******************************************************************************/
  445.  
  446. CMD:darlider(playerid,params[])
  447. {
  448.     new id,orgid;
  449.     if(PlayerInfo[playerid][pAdmin] < 4)return SendClientMessage(playerid, COLOR_RED, "( ERRO ): Você não possui permissão para usar este comando !");
  450.     if(sscanf(params, "ui", id, orgid)) return SendClientMessage(playerid, COLOR_GRAY, "( USE ): /darlider [ ID/NOME ] [ ORG ID ]");
  451.     if(!IsPlayerConnected(id))return SendClientMessage(playerid, COLOR_RED, "( ERRO ): Id inválido ou offline !");
  452.     if(orgid < 1 || orgid > 4)return SendClientMessage(playerid, COLOR_RED, "( ERRO ): Orgs apenas de 1 a 4.");
  453.     if(PlayerInfo[id][pMembro] > 0)return SendClientMessage(playerid, COLOR_RED, "( ERRO ): Este jogador já faz parte de uma organização !");
  454.     if(strcmp(Org[orgid][Lider], "Ninguem", false))return SendClientMessage(playerid, COLOR_RED, "( ERRO ): Esta organização já possui lider.");
  455.     GetOrgName(orgid, OrgName, sizeof(OrgName));
  456.     format(_@STR, sizeof(_@STR), "( ADMIN ): Você promoveu ( {FFFFFF}%s{00FFFF} ) a líder da organização ( {FFFFFF}%s{00FFFF} ).", Nome(id), OrgName);
  457.     SendClientMessage(playerid, COLOR_CYAN, _@STR);
  458.     format(_@STR, sizeof(_@STR),"( ADMIN ): Você foi promovido a líder da organização ( {FFFFFF}%s{00FFFF} ) pelo admin ( {FFFFFF}%s{00FFFF} ).", OrgName, Nome(playerid));
  459.     SendClientMessage(id, COLOR_CYAN, _@STR);
  460.     strmid(Org[orgid][Lider], Nome(id), 0, strlen(Nome(id)), 128);
  461.     format(_@STR, sizeof(_@STR), "InfoOrg/Org%i.ini", orgid);
  462.     DOF2::SetString(_@STR, "Lider", Nome(id));
  463.     DOF2::SaveFile();
  464.     PlayerInfo[playerid][pMembro] = orgid;
  465.     PlayerInfo[playerid][pCargo] = 5;
  466.     SpawnPlayer(id);
  467.     return 1;
  468. }
  469.  
  470. CMD:limparlider(playerid,params[])
  471. {
  472.     new orgid;
  473.     if(PlayerInfo[playerid][pAdmin] < 4)return SendClientMessage(playerid, COLOR_RED, "( ERRO ): Você não possui permissão para usar este comando !");
  474.     if(sscanf(params, "i", orgid)) return SendClientMessage(playerid, COLOR_GRAY, "( USE ): /limparlider [ ORG ID ]");
  475.     if(orgid < 1 || orgid > 4)return SendClientMessage(playerid, COLOR_RED, "( ERRO ): Orgs apenas de 1 a 4.");
  476.     if(strcmp(Org[orgid][Lider], "Ninguem", true) == 0)return SendClientMessage(playerid, COLOR_RED, "( ERRO ): Esta organização não possui lider.");
  477.     GetOrgName(orgid, OrgName, sizeof(OrgName));
  478.     format(_@STR, sizeof(_@STR), "( ADMIN ): Você limpou a vaga de líder da organização ( {FFFFFF}%s{00FFFF} ) [ {FFFFFF}ID: %i{00FFFF} ]", OrgName, orgid);
  479.     SendClientMessage(playerid, COLOR_CYAN, _@STR);
  480.     if(IsPlayerOnline(Org[orgid][Lider]))
  481.     {
  482.         new ID = GetPlayerID(Org[orgid][Lider]);
  483.         Demitir(ID);
  484.     }
  485.     else
  486.     {
  487.         strmid(Org[orgid][Lider], "Ninguem", 0, strlen("Ninguem"), 128);
  488.         format(_@STR, sizeof(_@STR), "InfoOrg/Org%i.ini", orgid);
  489.         DOF2::SetString(_@STR, "Lider", "Ninguem");
  490.         DOF2::SaveFile();
  491.     }
  492.     return 1;
  493. }
  494.  
  495. /******************************************************************************/
  496.  
  497. CMD:convidar(playerid,params[])
  498. {
  499.     new id, orgid = PlayerInfo[playerid][pMembro];
  500.     if(PlayerInfo[playerid][pMembro] == 0)return SendClientMessage(playerid, COLOR_RED, "( ERRO ): Você não faz parte de uma organização !");
  501.     if(PlayerInfo[playerid][pCargo] < 4)return SendClientMessage(playerid, COLOR_RED, "( ERRO ): Somente lideres e sub-lideres podem fazer convites !");
  502.     if(sscanf(params, "u", id))return SendClientMessage(playerid, COLOR_GRAY, "( USE ): /convidar [ ID/NOME ]");
  503.     if(!IsPlayerConnected(id))return SendClientMessage(playerid, COLOR_RED, "( ERRO ): Id inválido ou offline !");
  504.     if(IsOrgFull(orgid))return SendClientMessage(playerid, COLOR_RED, "( ERRO ): Sua organização alcançou o limite de membros !");
  505.     if(PlayerInfo[id][pMembro] > 0)return SendClientMessage(playerid, COLOR_RED, "( ERRO ): Este jogador já faz parte de uma organização !");
  506.     if(GetPVarInt(id, "OrgConvite") > 0)return SendClientMessage(playerid, COLOR_RED, "( ERRO ): Este jogador possui um convite pendente, após a resposta do mesmo retorne a convidá-lo !");
  507.     GetOrgName(orgid, OrgName, sizeof(OrgName));
  508.     SetPVarInt(id, "OrgConvite", orgid);
  509.     format(_@STR, sizeof(_@STR), " {00FFFF}Convite de {FFFFFF}%s{00FFFF}, \n para fazer parte da organização: \n {FFFFFF}%s", Nome(playerid), OrgName);
  510.     ShowPlayerDialog(id, DIALOG_CONVIDAR, DIALOG_STYLE_MSGBOX, "Convite para Organização:", _@STR, "Aceitar", "Recusar");
  511.     SendClientMessage(playerid, GetOrgColor(orgid), "Convite enviado!");
  512.     return 1;
  513. }
  514.  
  515. CMD:demitir(playerid,params[])
  516. {
  517.     new id, motivo[64];
  518.     if(PlayerInfo[playerid][pMembro] == 0)return SendClientMessage(playerid, COLOR_RED, "( ERRO ): Você não faz parte de uma organização !");
  519.     if(PlayerInfo[playerid][pCargo] < 4)return SendClientMessage(playerid, COLOR_RED, "( ERRO ): Somente lideres e sub-lideres podem fazer demições !");
  520.     if(sscanf(params, "us[64]", id, motivo))return SendClientMessage(playerid, COLOR_GRAY, "( USE ): /demitir [ ID/NOME ] [ MOTIVO ]");
  521.     if(!IsPlayerConnected(id))return SendClientMessage(playerid, COLOR_RED, "( ERRO ): Id inválido ou offline !");
  522.     if(id == playerid)return SendClientMessage(playerid, COLOR_GRAY, "( USE ): '/pedircontas' caso queira se demitir !");
  523.     if(PlayerInfo[id][pMembro] != PlayerInfo[playerid][pMembro])return SendClientMessage(playerid, COLOR_RED, "( ERRO ): Este jogador pertence a outra organização !");
  524.     if(PlayerInfo[id][pCargo] == 5)return SendClientMessage(playerid, COLOR_RED, "( ERRO ): Somente administradores removem lideres !");
  525.     format(_@STR, sizeof(_@STR), "( ORG ): Você demitiu ( {FFFFFF}%s{00FFFF} ) da organização, ( {FFFFFF}Motivo: %s{00FFFF} ).", Nome(id), motivo);
  526.     SendClientMessage(playerid, COLOR_CYAN, _@STR);
  527.     format(_@STR, sizeof(_@STR), "( ORG ): Você foi demitido da organização por ( {FFFFFF}%s{00FFFF} ), ( {FFFFFF}Motivo: %s{00FFFF} ).", Nome(playerid), motivo);
  528.     SendClientMessage(id, COLOR_CYAN, _@STR);
  529.     Demitir(id);
  530.     return 1;
  531. }
  532.  
  533. CMD:limparvaga(playerid,params[])
  534. {
  535.     new vaga[10];
  536.     if(PlayerInfo[playerid][pMembro] == 0)return SendClientMessage(playerid, COLOR_RED, "( ERRO ): Você não faz parte de uma organização !");
  537.     if(PlayerInfo[playerid][pCargo] < 4)return SendClientMessage(playerid, COLOR_RED, "( ERRO ): Somente lideres e sub-lideres podem fazer demições !");
  538.     if(sscanf(params, "s[10]", vaga))return SendClientMessage(playerid, COLOR_GRAY, "( USE ): /limparvaga [ ID VAGA ]"), SendClientMessage(playerid, COLOR_GRAY, "( USE ): '/limparvaga sub' , para limpar o sublider !");
  539.  
  540.     new orgid = PlayerInfo[playerid][pMembro];
  541.     if(strcmp(vaga, "sub", true) == 0)
  542.     {
  543.         if(strcmp(Org[orgid][SubLider], "Ninguem", true) == 0)return SendClientMessage(playerid, COLOR_RED, "( ERRO ): Esta organização não possui sub-lider");
  544.         if(IsPlayerOnline(Org[orgid][SubLider]))
  545.         {
  546.             new ID = GetPlayerID(Org[orgid][SubLider]);
  547.             Demitir(ID);
  548.         }
  549.         else
  550.         {
  551.             strmid(Org[orgid][SubLider], "Ninguem", 0, strlen("Ninguem"), 128);
  552.             format(_@STR, sizeof(_@STR),"InfoOrg/Org%i.ini", orgid);
  553.             DOF2::SetString(_@STR, "SubLider", "Ninguem");
  554.         }
  555.         SendClientMessage(playerid, GetOrgColor(orgid), "( ORG ): Você limpou a vaga de sub-lider !");
  556.         return 1;
  557.     }
  558.     format(_@STR, sizeof(_@STR), "( ORG ): Você limpou a vaga %i !", strval(vaga));
  559.     SendClientMessage(playerid, GetOrgColor(orgid), _@STR);
  560.     Limpar(orgid, strval(vaga));
  561.     return 1;
  562. }
  563.  
  564. CMD:promover(playerid,params[])
  565. {
  566.     new id, cargo;
  567.     if(PlayerInfo[playerid][pMembro] == 0)return SendClientMessage(playerid, COLOR_RED, "( ERRO ): Você não faz parte de uma organização !");
  568.     if(PlayerInfo[playerid][pCargo] < 4)return SendClientMessage(playerid, COLOR_RED, "( ERRO ): Somente lideres e sub-lideres podem fazer demições !");
  569.     if(sscanf(params, "ui", id, cargo))return SendClientMessage(playerid, COLOR_GRAY, "( USE ): /promover [ ID/NOME ] [ CARGO ]");
  570.     if(!IsPlayerConnected(id))return SendClientMessage(playerid, COLOR_RED, "( ERRO ): Id inválido ou offline !");
  571.     if(PlayerInfo[id][pMembro] != PlayerInfo[playerid][pMembro])return SendClientMessage(playerid, COLOR_RED, "( ERRO ): Este jogador pertence a outra organização !");
  572.     if(cargo < 1 || cargo > 4)return SendClientMessage(playerid, COLOR_RED, "( ERRO ): Cargos apenas de 1 a 4.");
  573.  
  574.     format(_@STR, sizeof(_@STR), "( ORG ): Você promoveu ( {FFFFFF}%s{00FFFF} ) a cargo ( {FFFFFF}%i{00FFFF} ).", Nome(id),cargo);
  575.     SendClientMessage(playerid, COLOR_CYAN, _@STR);
  576.     format(_@STR, sizeof(_@STR), "( ORG ): Você foi promovido a cargo ( {FFFFFF}%i{00FFFF} ) pelo ( {FFFFFF}%s{00FFFF} ).",cargo, Nome(playerid));
  577.     SendClientMessage(id, COLOR_CYAN, _@STR);
  578.     Promover(id, cargo);
  579.     return 1;
  580. }
  581.  
  582. CMD:infoorg(playerid)
  583. {
  584.     new orgid = PlayerInfo[playerid][pMembro];
  585.     if(PlayerInfo[playerid][pMembro] == 0)return SendClientMessage(playerid, COLOR_RED, "( ERRO ): Você não faz parte de uma organização !");
  586.     SendClientMessage(playerid, COLOR_RED, "~~~~~~~~~~~~( {FFFFFF}Informações da Organização{FF0000} )~~~~~~~~~~~~");
  587.     SendClientMessage(playerid, -1, " ");
  588.     format(_@STR, sizeof(_@STR), "Lider: %s", Org[orgid][Lider]);
  589.     SendClientMessage(playerid, GetOrgColor(orgid), _@STR);
  590.     format(_@STR, sizeof(_@STR), "Sub Lider: %s", Org[orgid][SubLider]);
  591.     SendClientMessage(playerid, GetOrgColor(orgid), _@STR);
  592.     for(new i = 1; i < MAX_MEMBROS; i++)
  593.     {
  594.         format(_@STR, sizeof(_@STR), "Membro%i: %s", i, Membros[orgid][i]);
  595.         SendClientMessage(playerid, GetOrgColor(orgid), _@STR);
  596.     }
  597.     SendClientMessage(playerid, -1, " ");
  598.     SendClientMessage(playerid, COLOR_RED, "~~~~~~~~~~~~( {FFFFFF}Informações da Organização{FF0000} )~~~~~~~~~~~~");
  599.     return 1;
  600. }
  601.  
  602. CMD:membros(playerid)
  603. {
  604.     if(PlayerInfo[playerid][pMembro] == 0)return SendClientMessage(playerid, COLOR_RED, "( ERRO ): Você não faz parte de uma organização !");
  605.     SendClientMessage(playerid, COLOR_RED, "~~~~~~~~~~~~( {FFFFFF}Membros Online{FF0000} )~~~~~~~~~~~~");
  606.     SendClientMessage(playerid, -1, " ");
  607.     foreach(Player, i)
  608.     {
  609.         if(IsPlayerConnected(i))
  610.         {
  611.             if(PlayerInfo[i][pMembro] == PlayerInfo[playerid][pMembro])
  612.             {
  613.                 format(_@STR, sizeof(_@STR), "Nome: %s, Cargo: %d", Nome(i), PlayerInfo[i][pCargo]);
  614.                 SendClientMessage(playerid, GetOrgColor(PlayerInfo[i][pMembro]), _@STR);
  615.                 Members++;
  616.             }
  617.         }
  618.         if(Members == 0)return SendClientMessage(playerid, COLOR_WHITE, "Não tem membros online !");
  619.     }
  620.     SendClientMessage(playerid, -1, " ");
  621.     SendClientMessage(playerid, COLOR_RED, "~~~~~~~~~~~~( {FFFFFF}Membros Online{FF0000} )~~~~~~~~~~~~");
  622.     return 1;
  623. }
  624.  
  625. /******************************************************************************/
  626.  
  627. CMD:orgs(playerid)
  628. {
  629.     SendClientMessage(playerid, COLOR_RED, "~~~~~~~~~~~~( {FFFFFF}Organizações{FF0000} )~~~~~~~~~~~~");
  630.     SendClientMessage(playerid, -1, " ");
  631.     for(new i = 1; i < MAX_ORGS; i++)
  632.     {
  633.         GetOrgName(i, OrgName, sizeof(OrgName));
  634.         format(_@STR, sizeof(_@STR), "[ %i ]: %s - Líder: %s", i, OrgName, Org[i][Lider]);
  635.         SendClientMessage(playerid, GetOrgColor(i), _@STR);
  636.     }
  637.     SendClientMessage(playerid, -1, " ");
  638.     SendClientMessage(playerid, COLOR_RED, "~~~~~~~~~~~~( {FFFFFF}Organizações{FF0000} )~~~~~~~~~~~~");
  639.     return 1;
  640. }
  641.  
  642. CMD:lideres(playerid)
  643. {
  644.     SendClientMessage(playerid, COLOR_RED, "~~~~~~~~~~~~( {FFFFFF}Lideres Online{FF0000} )~~~~~~~~~~~~");
  645.     SendClientMessage(playerid, -1, " ");
  646.     foreach(Player, i)
  647.     {
  648.         if(IsPlayerConnected(i))
  649.         {
  650.             if(PlayerInfo[i][pCargo] == 5)
  651.             {
  652.                 GetOrgName(PlayerInfo[i][pMembro], OrgName, sizeof(OrgName));
  653.                 format(_@STR, sizeof(_@STR), "Nome: %s - Organização: %s", Nome(i), _@STR);
  654.                 SendClientMessage(playerid, GetOrgColor(PlayerInfo[i][pMembro]), _@STR);
  655.                 Lideres++;
  656.             }
  657.         }
  658.         if(Lideres == 0)return SendClientMessage(playerid, COLOR_WHITE, "Não tem lideres online !");
  659.     }
  660.     SendClientMessage(playerid, -1, " ");
  661.     SendClientMessage(playerid, COLOR_RED, "~~~~~~~~~~~~( {FFFFFF}Lideres Online{FF0000} )~~~~~~~~~~~~");
  662.     return 1;
  663. }
  664.  
  665. CMD:subs(playerid)
  666. {
  667.     SendClientMessage(playerid, COLOR_RED, "~~~~~~~~~~~~( {FFFFFF}Sub-Lideres Online{FF0000} )~~~~~~~~~~~~");
  668.     SendClientMessage(playerid, -1, " ");
  669.     foreach(Player, i)
  670.     {
  671.         if(IsPlayerConnected(i))
  672.         {
  673.             if(PlayerInfo[i][pCargo] == 4)
  674.             {
  675.                 GetOrgName(PlayerInfo[i][pMembro], OrgName, sizeof(OrgName));
  676.                 format(_@STR, sizeof(_@STR), "Nome: %s - Organização: %s", Nome(i), _@STR);
  677.                 SendClientMessage(playerid, GetOrgColor(PlayerInfo[i][pMembro]), _@STR);
  678.                 Subs++;
  679.             }
  680.         }
  681.         if(Subs == 0)return SendClientMessage(playerid, COLOR_WHITE, "Não tem sub-lideres online !");
  682.     }
  683.     SendClientMessage(playerid, -1, " ");
  684.     SendClientMessage(playerid, COLOR_RED, "~~~~~~~~~~~~( {FFFFFF}Sub-Lideres Online{FF0000} )~~~~~~~~~~~~");
  685.     return 1;
  686. }
  687.  
  688. /******************************************************************************/
  689.  
  690. CMD:admin(playerid)return PlayerInfo[playerid][pAdmin] = 4;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement