SHARE
TWEET

Criador de ORG's VIP - HomeHots

a guest Jul 28th, 2014 467 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. //
  2. //         # INCLUDES
  3. //
  4. #include   <  A_SAMP  >   // Team SA-MP
  5. #include   <   DOF2   >   // Double
  6. #include   <   ZCMD   >   // ZeeX
  7. #include   <   iBITS  >   // Willian_Luigi
  8.  
  9. //
  10. //         # DEFINES
  11. //
  12. #define maxOrgs (5) //  Máximo de Organizações
  13.  
  14. //
  15. //         # MACROS
  16. //
  17. #define Function::%0(%1) forward %0(%1); public %0(%1)
  18. //
  19. //         # ENUMERADORES
  20. //
  21. enum iNFO {
  22.     pOrg
  23. }
  24.  
  25. //
  26. //         # VARÍAVEIS
  27. //
  28. new bit1:orgVIP<MAX_PLAYERS>;
  29. bit_array playerInfo <MAX_PLAYERS, iNFO @bit16>;
  30. new Text3D:textOrg[maxOrgs];
  31. new pickOrg[maxOrgs];
  32.  
  33. //
  34. //         # STOCKS
  35. //
  36. stock getOrgName(Orgid) {
  37.     new OrgName[25];
  38.     switch(Orgid) {
  39.         case 1: OrgName = "Polícia Militar";
  40.         case 2: OrgName = "Comando Vermelho";
  41.         case 3: OrgName = "Los Vagos";
  42.         case 4: OrgName = "Los Aztecas";
  43.     }
  44.     return OrgName;
  45. }
  46.  
  47. stock equiparOrg(playerid) {
  48.     ResetPlayerWeapons(playerid);
  49.     SetPlayerArmour(playerid, 100.0);
  50.     SetPlayerHealth(playerid, 100.0);
  51.     GivePlayerWeapon(playerid, 1, 1);
  52.     GivePlayerWeapon(playerid, 16, 10);
  53.     GivePlayerWeapon(playerid, 24, 2001);
  54.     GivePlayerWeapon(playerid, 25, 2001);
  55.     GivePlayerWeapon(playerid, 29, 2001);
  56.     GivePlayerWeapon(playerid, 31, 2001);
  57.     GivePlayerWeapon(playerid, 34, 2001);
  58.     SendClientMessage(playerid, -1, "{CCCCCC}[ {55B8D9}ORG VIP {CCCCCC}]:{E9EBE8} Você pegou seus equipamentos!");
  59.     return true;
  60. }
  61.  
  62. //
  63. //         # CALLBACKS
  64. //
  65. Function::loadOrgsVip() {
  66.  
  67.     new File[64], String[60];
  68.     for(new idOrg = 0; idOrg < maxOrgs; idOrg++) {
  69.         format(File, 64, "OrgsVIP/%i.ini", idOrg);
  70.         if(fexist(File)) {
  71.             setBit1(orgVIP, idOrg, DOF2::GetInt(File, "Ativada"));
  72.             format(String, 60, "Org VIP: %s\nAperte Enter para equipar", DOF2::GetString(File, "Org"));
  73.             textOrg[idOrg] = Create3DTextLabel(String, -1, DOF2::GetFloat(File, "Posicao X"), DOF2::GetFloat(File, "Posicao Y"), DOF2::GetFloat(File, "Posicao Z"), 20.0, 0, 0);
  74.             pickOrg[idOrg] = CreatePickup(1318, 23, DOF2::GetFloat(File, "Posicao X"), DOF2::GetFloat(File, "Posicao Y"), DOF2::GetFloat(File, "Posicao Z"));
  75.         }
  76.     }
  77.     return true;
  78. }
  79.  
  80. //
  81. //         # CALLBACKS NATIVAS
  82. //
  83. public OnFilterScriptInit() {
  84.     loadOrgsVip();
  85.     return true;
  86. }
  87.  
  88. public OnFilterScriptExit () {
  89.     DOF2::Exit();
  90.     return true;
  91. }
  92.  
  93. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys) {
  94.     if ((newkeys == KEY_SECONDARY_ATTACK)) {
  95.         new File[64];
  96.         format(File, 64, "OrgsVIP/%i.ini", playerInfo[playerid][pOrg]);
  97.         if(IsPlayerInRangeOfPoint(playerid, 2.0, DOF2::GetFloat(File, "Posicao X"), DOF2::GetFloat(File, "Posicao Y"), DOF2::GetFloat(File, "Posicao Z"))) {
  98.             if(getBit1(orgVIP, playerInfo[playerid][pOrg]) == 0)
  99.                 return SendClientMessage(playerid, -1, "{CCCCCC}[ {55B8D9}ERRO {CCCCCC}]:{E9EBE8} A Org VIP não está ativada!");
  100.             cmd_equiparorgvip(playerid);
  101.         }
  102.     }
  103.     return true;
  104. }
  105.  
  106. //
  107. //         # COMANDOS
  108. //
  109.  
  110. COMMAND:comandos(playerid)
  111.     return SendClientMessage(playerid, -1, "{E9EBE8} /pegarorg, /ativarorgvip, /desativarorgvip, /criarorgvip, /deletarorgvip, /equiparorgvip");
  112.  
  113. COMMAND:pegarorg(playerid, params[]) {
  114.     if(isnull(params))
  115.         return SendClientMessage(playerid, -1, "{CCCCCC}[ {55B8D9}USE {CCCCCC}]:{E9EBE8} /pegarorg [Orgid]");
  116.     playerInfo[playerid][pOrg] = strval(params);
  117.     return true;
  118. }
  119.  
  120. COMMAND:ativarorgvip(playerid, params[]) {
  121.     new File[64], String[80];
  122.     if(isnull(params))
  123.         return SendClientMessage(playerid, -1, "{CCCCCC}[ {55B8D9}USE {CCCCCC}]:{E9EBE8} /ativarorgvip [Orgid]");
  124.     format(File, 64, "OrgsVIP/%i.ini", strval(params));
  125.     if(fexist(File)) {
  126.         if(getBit1(orgVIP, strval(params)) == 1)
  127.             return SendClientMessage(playerid, -1, "{CCCCCC}[ {55B8D9}ERRO {CCCCCC}]:{E9EBE8} Esta organização já está ativada");
  128.         setBit1(orgVIP, strval(params), 1);
  129.         DOF2::SetInt(File, "Ativada", 1);
  130.         format(String, 60, "Org VIP: %s\nAperte Enter para equipar", DOF2::GetString(File, "Org"));
  131.         textOrg[strval(params)] = Create3DTextLabel(String, -1, DOF2::GetFloat(File, "Posicao X"), DOF2::GetFloat(File, "Posicao Y"), DOF2::GetFloat(File, "Posicao Z"), 20.0, 0, 0);
  132.         pickOrg[strval(params)] = CreatePickup(1318, 23, DOF2::GetFloat(File, "Posicao X"), DOF2::GetFloat(File, "Posicao Y"), DOF2::GetFloat(File, "Posicao Z"));
  133.         format(String, 50, "A Organização %s agora é VIP", getOrgName(strval(params)));
  134.         SendClientMessage(playerid, -1, String);
  135.     } else {
  136.         format(String, 80, "{CCCCCC}[ {55B8D9}ERRO {CCCCCC}]:{E9EBE8} A Organização %i não é VIP", strval(params));
  137.         SendClientMessage(playerid, -1, String);
  138.     }
  139.     return true;
  140. }
  141.  
  142. COMMAND:desativarorgvip(playerid, params[]) {
  143.     new File[64], String[50];
  144.     if(isnull(params))
  145.         return SendClientMessage(playerid, -1, "{CCCCCC}[ {55B8D9}USE {CCCCCC}]:{E9EBE8} /desativarorgvip [Orgid]");
  146.     format(File, 64, "OrgsVIP/%i.ini", strval(params));
  147.     if(fexist(File)) {
  148.         if(getBit1(orgVIP, strval(params)) == 0)
  149.             return SendClientMessage(playerid, -1, "{CCCCCC}[ {55B8D9}ERRO {CCCCCC}]:{E9EBE8} Esta organização já está desativada");
  150.         setBit1(orgVIP, strval(params), 0);
  151.         DOF2::SetInt(File, "Ativada", 0);
  152.         Delete3DTextLabel(textOrg[strval(params)]);
  153.         DestroyPickup(pickOrg[strval(params)]);
  154.         format(String, 50, "A Organização %s não é mais VIP", getOrgName(strval(params)));
  155.         SendClientMessage(playerid, -1, String);
  156.     } else {
  157.         format(String, 50, "{CCCCCC}[ {55B8D9}ERRO {CCCCCC}]:{E9EBE8} A Organização %i não é VIP", getOrgName(strval(params)));
  158.         SendClientMessage(playerid, -1, String);
  159.     }
  160.     return true;
  161. }
  162.  
  163. COMMAND:criarorgvip(playerid, params[]) {
  164.     if(isnull(params))
  165.         return SendClientMessage(playerid, -1, "{CCCCCC}[ {55B8D9}USE {CCCCCC}]:{E9EBE8} /criarorgvip [Orgid]");
  166.     new idOrg = strval(params), Float:Position[3], File[64], String[60];
  167.     GetPlayerPos(playerid, Position[0], Position[1], Position[2]);
  168.     format(File, 64, "OrgsVIP/%i.ini", idOrg);
  169.     if(fexist(File)) {
  170.         SendClientMessage(playerid, -1, "{CCCCCC}[ {55B8D9}ERRO {CCCCCC}]:{E9EBE8} Já existe uma ORG VIP nessa Organização!");
  171.     } else {
  172.         DOF2::CreateFile(File);
  173.         DOF2::SetString(File, "Org", getOrgName(idOrg));
  174.         DOF2::SetFloat(File, "Posicao X", Position[0]);
  175.         DOF2::SetFloat(File, "Posicao Y", Position[1]);
  176.         DOF2::SetFloat(File, "Posicao Z", Position[2]);
  177.         DOF2::SetInt(File, "Ativada", 1);
  178.         DOF2::SaveFile();
  179.         format(String, 60, "Org VIP: %s\nAperte Enter para equipar", getOrgName(idOrg));
  180.         textOrg[idOrg] = Create3DTextLabel(String, -1, Position[0], Position[1], Position[2], 20.0, 0, 0);
  181.         pickOrg[idOrg] = CreatePickup(1318, 23, Position[0], Position[1], Position[2]);
  182.     }
  183.     return true;
  184. }
  185.  
  186. COMMAND:deletarorgvip(playerid, params[]) {
  187.     if(isnull(params))
  188.         return SendClientMessage(playerid, -1, "{CCCCCC}[ {55B8D9}USE {CCCCCC}]:{E9EBE8} /deletarorgvip [Orgid]");
  189.     new idOrg = strval(params), Float:Position[3], File[64], String[60];
  190.     GetPlayerPos(playerid, Position[0], Position[1], Position[2]);
  191.     format(File, 64, "OrgsVIP/%i.ini", idOrg);
  192.     if(fexist(File)) {
  193.         DOF2::RemoveFile(File);
  194.         Delete3DTextLabel(textOrg[idOrg]);
  195.         DestroyPickup(pickOrg[idOrg]);
  196.         format(String, 60, "A ORG VIP da Organização %s foi deletada", getOrgName(idOrg));
  197.         SendClientMessage(playerid, -1, String);
  198.     } else {
  199.         SendClientMessage(playerid, -1, "{CCCCCC}[ {55B8D9}ERRO {CCCCCC}]:{E9EBE8} Não tem uma ORG VIP criada nessa organização!");
  200.     }
  201.     return true;
  202. }
  203.  
  204. COMMAND:equiparorgvip(playerid) {
  205.     new File[64];
  206.     format(File, 64, "OrgsVIP/%i.ini", playerInfo[playerid][pOrg]);
  207.     if(fexist(File)) {
  208.         if(IsPlayerInRangeOfPoint(playerid, 2.0, DOF2::GetFloat(File, "Posicao X"), DOF2::GetFloat(File, "Posicao Y"), DOF2::GetFloat(File, "Posicao Z")) ) {
  209.             if(getBit1(orgVIP, playerInfo[playerid][pOrg]) == 0)
  210.                 return SendClientMessage(playerid, -1, "{CCCCCC}[ {55B8D9}ERRO {CCCCCC}]:{E9EBE8} A Org VIP não está ativada!");
  211.             switch(playerInfo[playerid][pOrg]) {
  212.                 case 1: equiparOrg(playerid);
  213.                 case 2: equiparOrg(playerid);
  214.                 case 3: equiparOrg(playerid);
  215.                 case 4: equiparOrg(playerid);
  216.             }
  217.         }
  218.     }
  219.     return true;
  220. }
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