Advertisement
didimk

Sistema de vip by:didimk

Jan 21st, 2017
510
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 15.13 KB | None | 0 0
  1. //===================Includes================//
  2. #include <a_samp>
  3. #include <zcmd>
  4. #include <dof2>
  5. #include <sscanf2>
  6. //================Definições===================//
  7. #define SCM SendClientMessage
  8. #define ConvertDays(%0) (gettime() + (86400 * (%0)))
  9. #define SendFormattedMessageToAll(%0,%1,%2) do{new _string[148]; format(_string,sizeof(_string),%1,%2); SendClientMessageToAll(%0,_string);} while(False)
  10. #define SendFormattedMessage(%0,%1,%2,%3) do{new _string[148]; format(_string,sizeof(_string),%2,%3); SCM(%0,%1,_string);} while(False)
  11. //=================Tunar VEICULO===============//
  12. #define DIALOG_VEHVIP 1
  13. //================Cores============================//
  14. #define COR_ERRO 0xFF0000AA
  15. #define COR_USOCORRETO 0x3552F2FF
  16. #define COR_CMD 0xFF0000AA
  17. #define COR_PRINCIPAL 0x33AAFFFF
  18. #define COR_ROXO 0xC798FAAA
  19. #define COR_BRANCO 0xE3E3E3FF
  20. //==============Fim das cores/inicio das variaveis================================//
  21. enum pDados
  22. {
  23. Vip,
  24. EquiparVIP,
  25. Admin,
  26. Logou,
  27. Morreu,
  28. Matou
  29. }
  30. new Player[MAX_PLAYERS][pDados];
  31. new False=false;
  32. new VeiculoVeh[MAX_PLAYERS];
  33. new bool:Logado[MAX_PLAYERS char];
  34. new bool:variavel[MAX_PLAYERS];
  35. new bool:variavel2[MAX_PLAYERS];
  36. new HighestID;
  37. //================fim das variaveis/inico dos forwards=============================//
  38. forward MensagemVip(const string[]);
  39. forward SendMensagens();
  40. //===============Fim dos forwards/inico de algumas mensagens=======================//
  41. new Mensagens[1][1700] =
  42. {
  43. "{FF0000}[!]: {61615E}Este servido usa um filsterscripter feito por didimk157."
  44. };
  45. //==============================Fim das mensagens========================================//
  46. #if defined FILTERSCRIPT
  47.  
  48. public OnFilterScriptInit()
  49. {
  50. SetTimer("SendMensagens",5000,1);
  51. print("\n--------------------------------------");
  52. print(" Sistema de vip em dof2 by:didimk157");
  53. print("--------------------------------------\n");
  54. return 1;
  55. }
  56.  
  57. public OnFilterScriptExit()
  58. {
  59. return 1;
  60. }
  61.  
  62. #else
  63.  
  64. main()
  65. {
  66. print("\n----------------------------------");
  67. print(" Vip system by:didimk");
  68. print("----------------------------------\n");
  69. }
  70.  
  71. #endif
  72.  
  73. public OnPlayerConnect(playerid)
  74. {
  75. SCM(playerid, COR_CMD, "» Este Servido usa um filterscripter de didimk157");
  76. SCM(playerid, COR_CMD, "» Está com Duvidas Sobre o Servidor? '/Ajuda'");
  77. return 1;
  78. }
  79.  
  80. public OnPlayerDeath(playerid, killerid, reason)
  81. {
  82. variavel[playerid] = false;
  83. variavel2[playerid] = false;
  84. return 1;
  85. }
  86.  
  87. public OnPlayerCommandPerformed(playerid, cmdtext[], success)
  88. {
  89. if(!success)
  90. {
  91. SCM(playerid, COR_CMD, "[FALHOU!]: Este comando Que Você Digito não existe use '/comandos' para ver os comandos do servidor!.");
  92. }
  93. return 1;
  94. }
  95. CMD:setvip(playerid, params[])
  96. {
  97. new id, days;
  98. if(!IsPlayerAdmin(playerid))return SCM(playerid, COR_ERRO, "[ERRO]: Você não está logado na RCON");
  99. if(sscanf(params, "ud", id, days))return SCM(playerid, COR_USOCORRETO, "Uso correto: /setvip [id] [dias]");
  100. if(days < 0) return SCM(playerid, COR_ERRO, "[ERRO]: Digite um numero de dias validos!");
  101. if(!(IsPlayerConnected(id))) return SCM(playerid, COR_ERRO, "[ERRO]: Este jogador não está Logado.");
  102. Player[id][Vip] = ConvertDays(days);
  103. new string[85];
  104. format(string, sizeof(string), "[INFO]: Você deu %d dias de Vip para %s.", days, Nome(id));
  105. SCM(playerid, COR_PRINCIPAL, string);
  106. format(string, sizeof(string), "[INFO]: Você recebeu %d dias de Vip do administrador %s.", days, Nome(playerid));
  107. SCM(id, COR_PRINCIPAL, string);
  108. SendFormattedMessageToAll(COR_PRINCIPAL, "{F4A460}-Log-Admin-: O Administrador %s setou %s de vip. | Dias: %d", Nome(playerid), Nome(id), days);
  109. format(string, sizeof(string), "-Log-Admin-: O Administrador %s setou %s de Vip. | Dias: %d", Nome(playerid),Nome(id),days);
  110. DarVip(string);
  111. format(string, sizeof(string), PegarVip(id), Nome(id));
  112. DOF2_CreateFile(PegarVip(id));
  113. DOF2_SetInt(PegarVip(id), "Dias", Player[id][Vip]);
  114. DOF2_SaveFile();
  115. return true;
  116. }
  117. CMD:tirarvip(playerid, params[])
  118. {
  119. new String[85] , ID;
  120. if(!IsPlayerAdmin(playerid))return SCM(playerid, COR_ERRO, "[ERRO]: Você não está logado na RCON");
  121. if(sscanf(params, "u", ID)) return SendClientMessage(playerid, COR_ERRO, "Use /TirarVip [ID]");
  122. if(!IsPlayerConnected(playerid)) return SendClientMessage(playerid, COR_ERRO, "[ERRO] ID invalido");
  123. if(Player[playerid][Vip] == 0) return SendClientMessage(playerid, COR_ERRO, "Este player não é um mebro VIP.");
  124. format(String, sizeof(String), "O Admin %s tirou o vip de %s",Nome(playerid), Nome(playerid));
  125. SendClientMessageToAll(COR_CMD, String);
  126. Player[playerid][Vip] = 0;
  127. return 1;
  128. }
  129. CMD:equipar(playerid)
  130. {
  131. if(Player[playerid][Vip] >= 1) return SCM(playerid,COR_ERRO,"[ERRO]: Você não tem permissão para usar este comando");
  132. {
  133. if(Player[playerid][EquiparVIP] == 1)
  134. {
  135. SCM(playerid,COR_ERRO,"[ERRO]: Ainda não deu o tempo para equipar novamente!");
  136. return 1;
  137. }
  138. ResetPlayerWeapons(playerid);
  139. SCM(playerid,COR_PRINCIPAL,"[INFO]: Você se equipou com sucesso");
  140. GivePlayerWeapon(playerid,31,9999999);
  141. GivePlayerWeapon(playerid,29,9999999);
  142. GivePlayerWeapon(playerid,25,9999999);
  143. GivePlayerWeapon(playerid,34,9999999);
  144. GivePlayerWeapon(playerid,16,4);
  145. GivePlayerWeapon(playerid,4,1);
  146. GivePlayerWeapon(playerid,24,9999999);
  147. Player[playerid][EquiparVIP] = 1;
  148. SetTimerEx("Equipar",5*60*1000,false,"d",playerid);
  149. }
  150. return 1;
  151. }
  152. CMD:jetpack(playerid)
  153. {
  154. if(Player[playerid][Admin] >= 1 || Player[playerid][Vip] >= 1)
  155. {
  156. SetPlayerSpecialAction(playerid, 2);
  157. new string[44];
  158. format(string, sizeof(string), " %s criou um jetpack.", Nome(playerid));
  159. MensagemLocal(playerid, COR_ROXO, string, 50);
  160. }
  161. else
  162. {
  163. SCM(playerid,COR_ERRO, "[ERRO]: Você não tem permissão para usar este comando.");
  164. }
  165. return 1;
  166. }
  167. CMD:blindar(playerid)
  168. {
  169. if(Player[playerid][Vip] >= 1)
  170. {
  171. if(GetPlayerMoney(playerid) >= 900)
  172. {
  173. SetVehicleHealth(GetPlayerVehicleID(playerid), 99999999);
  174. GivePlayerMoney(playerid, -900);
  175. SCM(playerid, COR_PRINCIPAL, "[INFO]: Você fez seu veiculo de um blindado!");
  176. }
  177. else SCM(playerid, COR_ERRO, "[ERRO]: Você não tem dinheiro suficiente para usar este comando!");
  178. }
  179. else SCM(playerid, COR_ERRO, "[ERRO]: Você não é um membro vip para usar este este comando!");
  180. return 1;
  181. }
  182. CMD:tunar(playerid)
  183. {
  184. if(Player[playerid][Vip] >=1)
  185. {
  186. new vehicle;
  187. vehicle = GetPlayerVehicleID(playerid);
  188. ChangeVehiclePaintjob(vehicle,1);
  189. AddVehicleComponent(vehicle,1035);
  190. AddVehicleComponent(vehicle,1078);
  191. AddVehicleComponent(vehicle,1010);
  192. AddVehicleComponent(vehicle,1087);
  193. AddVehicleComponent(vehicle,1046);
  194. AddVehicleComponent(vehicle,1171);
  195. AddVehicleComponent(vehicle,1149);
  196. AddVehicleComponent(vehicle,1147);
  197. AddVehicleComponent(vehicle,1036);
  198. AddVehicleComponent(vehicle,1040);
  199. SCM(playerid, COR_PRINCIPAL,"[ERRO]: Veiculo auto tunado com sucesso agora vá tirar uma marra.");
  200. }
  201. else SCM(playerid, COR_ERRO,"[ERRO]: Você não é um membro vip para usar este comando.");
  202. return 1;
  203. }
  204. CMD:veh(playerid, params[])
  205. {
  206. if(VeiculoVeh[playerid] >= 1)
  207. {
  208. if(Player[playerid][Vip] >= 1)
  209. {
  210. if(VeiculoVeh[playerid]>=1) return SCM(playerid,COR_ERRO,"[ERRO]: Você já tem veiculo criado digite /dcm para deletar seu veiculo.");
  211. new string[40];
  212. ShowPlayerDialog(playerid, DIALOG_VEHVIP, DIALOG_STYLE_LIST, "Veiculos", "Sultan\nInfernus\nOnibus\nBmx\nMountain Bike\nFaggio\nSanchez\nQuad\nNRG-500\nIate\nBugre\nBanshee\nSquallo\nJester\nBuffalo", "Selecionar", "Cancelar");
  213. format(string, sizeof(string), " %s digitou /veh.", Nome(playerid));
  214. MensagemLocal(playerid, COR_ROXO, string, 60);
  215. }
  216. else SCM(playerid,COR_ERRO,"[ERRO]: Você não tem permissão para usar este comando.");
  217. }
  218. else SCM(playerid, COR_ERRO,"[ERRO]: Você já tem um veículo criado, digite '/dcm' para pode criar outro veículo.");
  219. return 1;
  220. }
  221. CMD:comandosvip(playerid)
  222. {
  223. if(Player[playerid][Vip] >= 1)
  224. {
  225. new dialogrande[460];
  226. format(dialogrande, sizeof(dialogrande),"%s%s",dialogrande,"{33AAFF}• Comandos VIP\n\n");
  227. format(dialogrande, sizeof(dialogrande),"%s%s",dialogrande,"{ffffff}/v - {33AAFF}Chat VIP;\n");
  228. format(dialogrande, sizeof(dialogrande),"%s%s",dialogrande,"{ffffff}/tunar - {33AAFF}Tunar seu veículo [Rodas/Blinda/Pinta/Suspenção/Nitro];\n");
  229. format(dialogrande, sizeof(dialogrande),"%s%s",dialogrande,"{ffffff}/jetpack - {33AAFF}Criar um Jetpack;\n");
  230. format(dialogrande, sizeof(dialogrande),"%s%s",dialogrande,"{ffffff}/veh - {33AAFF}Criar um veículo;\n");
  231. format(dialogrande, sizeof(dialogrande),"%s%s",dialogrande,"{ffffff}/dcm - {33AAFF}Deletar um veículo;\n");
  232. format(dialogrande, sizeof(dialogrande),"%s%s",dialogrande,"{ffffff}/asay - {33AAFF}Enviar uma mensagem para todo servidor.\n");
  233. format(dialogrande, sizeof(dialogrande),"%s%s",dialogrande,"{ffffff}/equipar - {33AAFF}Com granadas e todas as armas do servidor.\n");
  234. format(dialogrande, sizeof(dialogrande),"%s%s",dialogrande,"{ffffff}/vidav - {33AAFF}Para encher sua vida vip.\n");
  235. format(dialogrande, sizeof(dialogrande),"%s%s",dialogrande,"{ffffff}/coletev - {33AAFF}Para encher seu colete vip.\n");
  236. ShowPlayerDialog(playerid, 6627, DIALOG_STYLE_MSGBOX, "{FF0000}>> {FFFFFF} Comandos Vip {FF0000}<<", dialogrande, "Sair", #);
  237. }
  238. else SCM(playerid,COR_ERRO,"[ERRO]: Você não tem permissão para usar este comando.");
  239. return 1;
  240. }
  241. CMD:vips(playerid)
  242. {
  243. SCM(playerid, 0xADFF2FFF, "Todos os Vips online");
  244. new count=0;
  245. for(new i=0; i<MAX_PLAYERS; i++)
  246. {
  247. if(IsPlayerConnected(i))
  248. {
  249. if(Logado{playerid} == true)
  250. {
  251. if(Player[i][Vip] >= 1)
  252. {
  253. SendFormattedMessage(playerid, COR_BRANCO, "Vip: %s [Tempo restante %d dias]", Nome(i), ConvertToDays(Player[playerid][Vip]));
  254. count++;
  255. }
  256. }
  257. }
  258. }
  259. if(count == 0) return SCM(playerid, COR_BRANCO, "Não tem nem um player vip online no momento.");
  260. return 1;
  261. }
  262. CMD:vidav(playerid)
  263. {
  264. if(Player[playerid][Vip] >= 1)
  265. if(variavel2[playerid] == true) return SendClientMessage(playerid, 0xFF0000FF, "Você só pode usar este comando após a Morte.");
  266. if(GetPlayerVirtualWorld(playerid) == GetPlayerVirtualWorld(playerid))
  267. {
  268. SetPlayerHealth(playerid, 100);
  269. SendFormattedMessage(playerid, COR_ROXO, "%s Encheu sua Vida Vip!!", Nome(playerid));
  270. variavel2[playerid] = true;
  271. }
  272. return 1;
  273. }
  274. CMD:coletev(playerid)
  275. {
  276. if(Player[playerid][Vip] >= 1)
  277. if(variavel[playerid] == true) return SendClientMessage(playerid, 0xFF0000FF, "Você só pode usar este comando após a Morte.");
  278. if(GetPlayerVirtualWorld(playerid) == GetPlayerVirtualWorld(playerid))
  279. {
  280. SetPlayerArmour(playerid, 100);
  281. SendFormattedMessage(playerid, COR_ROXO, "%s Encheu seu Colete Vip!!", Nome(playerid));
  282. variavel[playerid] = true;
  283. }
  284. return 1;
  285. }
  286. CMD:v(playerid,params[])
  287. {
  288. if(Player[playerid][Vip] >= 1)
  289. {
  290. new string[140];
  291. if(sscanf(params, "s", params)) return SCM(playerid, COR_USOCORRETO, "Uso correto: /v [texto]");
  292. format(string, sizeof(string),"{00FFFF}[CHAT VIP]: %s: %s ", Nome(playerid), params);
  293. MensagemVip(string);
  294. }
  295. else SCM(playerid,COR_ERRO,"[ERRO]: Você não é um membro vip para acessar este comando.");
  296. return 1;
  297. }
  298. //============Stocks=======================//
  299. stock PegarVip(playerid)
  300. {
  301. static Arquivo[33]; format(Arquivo, sizeof(Arquivo), "Vips/%s.ini", Nome(playerid)); return Arquivo;
  302. }
  303. stock Nome(playerid)
  304. {
  305. static Name[MAX_PLAYER_NAME]; GetPlayerName(playerid, Name, sizeof(Name)); return Name;
  306. }
  307. stock PegarConta(playerid)
  308. {
  309. static Arquivo[2000]; format(Arquivo, sizeof(Arquivo), "Players/%s.ini", Nome(playerid)); return Arquivo;
  310. }
  311. stock DarVip(DeuAdmin[])
  312. {
  313. new string[256];
  314. format(string, sizeof(string), "%s \r\n", DeuAdmin);
  315. new File:hFile;
  316. hFile = fopen("logs/-LOG- Setvip.txt", io_append);
  317. fwrite(hFile, string);
  318. fclose(hFile);
  319. }
  320. stock MensagemLocal(playerid, cor, text[], distancia)
  321. {
  322. for(new i=0; i <= MAX_PLAYERS; i++)
  323. if(GetandoDistancia(playerid, i) <= distancia)
  324. {
  325. if(GetPlayerVirtualWorld(playerid) == GetPlayerVirtualWorld(i))
  326. {
  327. new string[128];
  328. format(string, 128, text);
  329. SCM(i,cor,string);
  330. }
  331. }
  332. return 1;
  333. }
  334. stock GetandoDistancia(playerid,playerid2)
  335. {
  336. new Float:x1,Float:y1,Float:z1,Float:x2,Float:y2,Float:z2;
  337. new Float:tmpdis;
  338. GetPlayerPos(playerid,x1,y1,z1);
  339. GetPlayerPos(playerid2,x2,y2,z2);
  340. tmpdis = floatsqroot(floatpower(floatabs(floatsub(x2,x1)),2)+floatpower(floatabs(floatsub(y2,y1)),2)+floatpower(floatabs(floatsub(z2,z1)),2));
  341. return floatround(tmpdis);
  342. }
  343. stock ConvertToDays(n)
  344. {
  345. #pragma tabsize 0
  346. new t[5], String[75];
  347. t[4] = n-gettime();
  348. t[0] = t[4] / 3600;
  349. t[1] = ((t[4] / 60) - (t[0] * 60));
  350. t[2] = (t[4] - ((t[0] * 3600) + (t[1] * 60)));
  351. t[3] = (t[0]/24);
  352.  
  353. if(t[3] > 0)
  354. t[0] = t[0] % 24,
  355. format(String, sizeof(String), "%ddias, %02dh %02dm e %02ds", t[3], t[0], t[1], t[2]);
  356. else if(t[0] > 0)
  357. format(String, sizeof(String), "%02dh %02dm e %02ds", t[0], t[1], t[2]);
  358. else
  359. format(String, sizeof(String), "%02dm e %02ds", t[1], t[2]);
  360. return String;
  361. }
  362. /*stock SalvarDados(playerid)
  363. {
  364. DOF2_SetInt(PegarConta(playerid), "Level", GetPlayerScore(playerid));
  365. DOF2_SetInt(PegarConta(playerid), "Dinheiro", GetPlayerMoney(playerid));
  366. DOF2_SetInt(PegarConta(playerid), "SkinAtual", GetPlayerSkin(playerid));
  367. DOF2_SetInt(PegarConta(playerid), "AdminLevel", Player[playerid][Admin]);
  368. DOF2_SetInt(PegarConta(playerid), "Vip", Player[playerid][Vip]);
  369. DOF2_SetInt(PegarConta(playerid), "Logou", Player[playerid][Logou]);
  370. DOF2_SetInt(PegarConta(playerid), "Matou", Player[playerid][Matou]);
  371. DOF2_SetInt(PegarConta(playerid), "Morreu", Player[playerid][Morreu]);
  372. DOF2_SaveFile();
  373. }
  374. stock CarregarDados(playerid)
  375. {
  376. if(DOF2_FileExists(PegarConta(playerid)))
  377. {
  378. SetPlayerScore(playerid, DOF2_GetInt(PegarConta(playerid), "Level"));
  379. GivePlayerMoney(playerid, DOF2_GetInt(PegarConta(playerid), "Dinheiro"));
  380. SetPlayerSkin(playerid, DOF2_GetInt(PegarConta(playerid), "SkinAtual"));
  381. Player[playerid][Admin] = DOF2_GetInt(PegarConta(playerid), "AdminLevel");
  382. Player[playerid][Vip] = DOF2_GetInt(PegarConta(playerid), "Vip");
  383. Player[playerid][Logou] = DOF2_GetInt(PegarConta(playerid), "Logou");
  384. Player[playerid][Matou] = DOF2_GetInt(PegarConta(playerid), "Matou");
  385. Player[playerid][Morreu] = DOF2_GetInt(PegarConta(playerid), "Morreu");
  386. }
  387. }*/
  388. //========================Fim das stocks/inicio das public==========================//
  389. public MensagemVip(const string[])
  390. {
  391. for(new i = 0; i <= HighestID; i++)
  392. {
  393. if(IsPlayerConnected(i) == 1)
  394. {
  395. if(Player[i][Vip] >= 1)
  396. {
  397. SCM(i, 0xFFBD9DFF, string);
  398. }
  399. }
  400. }
  401. return 1;
  402. }
  403. public SendMensagens()
  404. {
  405. new string[128];
  406. new random1 = random(sizeof(Mensagens));
  407. format(string, sizeof(string), "%s", Mensagens[random1]);
  408. SendClientMessageToAll(-1,string);
  409. return 1;
  410. }
  411. //=========================Fim das public/fim do FS===============================//
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement