Advertisement
Guest User

InfoOrg( DOF2 - ZCMD -SSCANF2 - FOREACH )

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