Advertisement
Guest User

Criador de ORG's VIP - HomeHots

a guest
Jul 28th, 2014
1,402
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.58 KB | None | 0 0
  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. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement