Joker_Tricker

Ulric VIP System

Sep 14th, 2011
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 15.25 KB | None | 0 0
  1. /*==========================Ulric V.I.P System by Xaviour212====================
  2. Credits to:
  3. - Xaviour212 / Dimas Rizward H, make this script
  4. - Peinneon, tester
  5. - Sheen, helping me
  6. - DracoBlue, for Dini and DCMD
  7. - Y_Less, for sscanf
  8. ==============================================================================*/
  9. #include <a_samp>
  10. #include <dini>
  11. #include <sscanf>
  12.  
  13. #define dcmd(%1,%2,%3) if ((strcmp((%3)[1], #%1, true, (%2)) == 0) && ((((%3)[(%2) + 1] == 0) && (dcmd_%1(playerid, "")))||(((%3)[(%2) + 1] == 32) && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1
  14.  
  15. #define green 0x1a6EB43FF
  16. #define red 0xFF0000AA
  17. #define blue 0x33CCFFAA
  18.  
  19. #define vBlue 0x0259EAAA
  20. #define vRed 0xFF0000AA
  21. #define vGreen 0x16EB43FF
  22. #define vPurple 0xB360FDFF
  23. #define vPink 0xCCFF00FF
  24. #define vYellow 0xFFFF00FF
  25. #define vGrey 0xC0C0C0FF
  26. #define vOrange 0xFFA500FF
  27. #define vBrown 0x800000FF
  28.  
  29. #define colordialog 8131
  30.  
  31. new Name[MAX_PLAYERS];
  32. new String[MAX_PLAYERS];
  33. new file[256];
  34.  
  35. enum PlayerData
  36. {
  37. vCar,
  38. hTime,
  39. aTime
  40. };
  41.  
  42. new PlayerInfo[MAX_PLAYERS][PlayerData];
  43.  
  44. public OnFilterScriptInit()
  45. {
  46. print("\n--------------------------------------");
  47. print(" Ulric V.I.P System by Xaviour212");
  48. print("--------------------------------------\n");
  49. return 1;
  50. }
  51.  
  52. public OnPlayerConnect(playerid)
  53. {
  54. PlayerInfo[playerid][vCar] = -1;
  55. PlayerInfo[playerid][hTime] = 1;
  56. PlayerInfo[playerid][aTime] = 1;
  57. return 1;
  58. }
  59.  
  60. public OnPlayerDisconnect(playerid, reason)
  61. {
  62. if(PlayerInfo[playerid][vCar] != -1) CarDeleter(PlayerInfo[playerid][vCar]);
  63. return 1;
  64. }
  65.  
  66. public OnPlayerCommandText(playerid, cmdtext[])
  67. {
  68. dcmd(setvip,6,cmdtext);
  69. dcmd(ejvip,5,cmdtext);
  70.  
  71. dcmd(vheal,5,cmdtext);
  72. dcmd(vbike,5,cmdtext);
  73. dcmd(vehfix,6,cmdtext);
  74. dcmd(vehcolor,8,cmdtext);
  75.  
  76. dcmd(myskins,7,cmdtext);
  77. dcmd(myweather,9,cmdtext);
  78. dcmd(mytime,6,cmdtext);
  79. dcmd(vcar,4,cmdtext);
  80. dcmd(vjetpack,8,cmdtext);
  81. dcmd(varmor,6,cmdtext);
  82.  
  83. dcmd(vheli,5,cmdtext);
  84. dcmd(vnos,4,cmdtext);
  85. dcmd(mycolor,7,cmdtext);
  86. dcmd(vplane,6,cmdtext);
  87.  
  88. return 0;
  89. }
  90.  
  91. //===================RCON COMMAND==============
  92. dcmd_setvip(playerid, params[])
  93. {
  94. new id,vip;
  95. if(!IsPlayerAdmin(playerid))return SendClientMessage(playerid,red,"[ERROR]You are not an admin.");
  96. if(sscanf(params,"ui", id,vip))return SendClientMessage(playerid, red, "[ERROR]Usage: /setvip [id] [VipID]");//Use Vip id 1 for Premium, 2 for Silver and 3 for Gold
  97. if(vip > 3)return SendClientMessage(playerid,red,"There are only 3 kinds of vip");
  98. if(vip == 1)
  99. {
  100. GetPlayerName(playerid, Name, sizeof(Name));
  101. format(String, sizeof(String), "%s has set you become a Premium member.",Name);
  102. SendClientMessage(id,green, String);
  103. if(!dini_Exists(PFile(playerid)))
  104. {
  105. dini_Create(PFile(playerid));
  106. dini_IntSet(PFile(playerid),"VipMember",1);
  107. }
  108. else if(dini_Exists(PFile(playerid)))
  109. {
  110. dini_IntSet(PFile(playerid),"VipMember",1);
  111. }
  112. GivePlayerMoney(playerid, 500000);
  113. }
  114. if(vip == 2)
  115. {
  116. GetPlayerName(playerid, Name, sizeof(Name));
  117. format(String, sizeof(String), "%s has set you become a Silver member.",Name);
  118. SendClientMessage(id,green, String);
  119. if(!dini_Exists(PFile(playerid)))
  120. {
  121. dini_Create(PFile(playerid));
  122. dini_IntSet(PFile(playerid),"VipMember",2);
  123. }
  124. else if(dini_Exists(PFile(playerid)))
  125. {
  126. dini_IntSet(PFile(playerid),"VipMember",2);
  127. }
  128. GivePlayerMoney(playerid, 1000000);
  129. }
  130. if(vip == 3)
  131. {
  132. GetPlayerName(playerid, Name, sizeof(Name));
  133. format(String, sizeof(String), "%s has set you become a Gold member.",Name);
  134. SendClientMessage(id,green, String);
  135. if(!dini_Exists(PFile(playerid)))
  136. {
  137. dini_Create(PFile(playerid));
  138. dini_IntSet(PFile(playerid),"VipMember",3);
  139. }
  140. else if(dini_Exists(PFile(playerid)))
  141. {
  142. dini_IntSet(PFile(playerid),"VipMember",3);
  143. }
  144. GivePlayerMoney(playerid, 2000000);
  145. }
  146. return 1;
  147. }
  148.  
  149. dcmd_ejvip(playerid,params[])
  150. {
  151. new id;
  152. if(!IsPlayerAdmin(playerid))return SendClientMessage(playerid,red,"[ERROR]Only Rcon admin can use this command");
  153. if(sscanf(params,"u", id))return SendClientMessage(playerid, red, "[ERROR]Usage: /ejvip [id]");
  154. if(dini_Int(PFile(playerid),"VipMember")==0)return SendClientMessage(playerid, red, "[ERROR]This Player not a VIP member");
  155. dini_IntSet(PFile(playerid),"VipMember",0);
  156. SendClientMessage(playerid, blue, "Your VIP period has ended. Immediately do another donation to become a VIP member");
  157. return 1;
  158. }
  159. //==================Premium Command============
  160. dcmd_vheal(playerid, params[])
  161. {
  162. #pragma unused params
  163. if(dini_Int(PFile(playerid),"VipMember")<1)return SendClientMessage(playerid, red, "[ERROR]You must became Premium member to use this command");
  164. if(PlayerInfo[playerid][hTime] != 0) return SendClientMessage(playerid, red, "[ERROR]You must wait 3 minutes to use this command again");
  165. SetPlayerHealth(playerid, 100.0);
  166. SendClientMessage(playerid,green,"You health has been set to full. You must wait 3 minutes to use this command again");
  167. SetTimer("HealTimer",180000, false);
  168. return 1;
  169. }
  170.  
  171. dcmd_vbike(playerid, params[])
  172. {
  173. #pragma unused params
  174. if(dini_Int(PFile(playerid),"VipMember")<1)return SendClientMessage(playerid, red, "[ERROR]You must became Premium member to use this command");
  175. CarSpawner(playerid, 522);
  176. SendClientMessage(playerid, green, "Your bike has been spawn!");
  177. return 1;
  178. }
  179.  
  180. dcmd_vehfix(playerid, params[])
  181. {
  182. #pragma unused params
  183. if(dini_Int(PFile(playerid),"VipMember")<1)return SendClientMessage(playerid, red, "[ERROR]You must became Premium member to use this command");
  184. if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, red, "[ERROR]You are not in a vehicle!");
  185. RepairVehicle(GetPlayerVehicleID(playerid));
  186. SendClientMessage(playerid, green, "Your vehicle has been successfully repaired!");
  187. return 1;
  188. }
  189.  
  190. dcmd_vehcolor(playerid, params[])
  191. {
  192. new colour1, colour2;
  193. new tmp[256],player1 = strval(tmp);
  194. if(dini_Int(PFile(playerid),"VipMember")<1)return SendClientMessage(playerid, red, "[ERROR]You must became Premium member to use this command");
  195. if(sscanf(params,"dd", colour1, colour2))return SendClientMessage(playerid, red, "[ERROR]Usage: /vehcolor [Colour1] [Colour2]");
  196. ChangeVehicleColor(GetPlayerVehicleID(player1), colour1, colour2);
  197. SendClientMessage(playerid, green, "Your vehicle colour has been changed!");
  198. return 1;
  199. }
  200. //==================Silver Command================
  201. dcmd_myskins(playerid, params[])
  202. {
  203. if(dini_Int(PFile(playerid),"VipMember")<2)return SendClientMessage(playerid, red, "[ERROR]You must became Silver member to use this command");
  204. new skin;
  205. if(sscanf(params,"i",skin)) return SendClientMessage(playerid,red,"[ERROR]USAGE: /myskins [SkinID]");
  206. if(!IsValidSkin(skin)) return SendClientMessage(playerid,red,"[ERROR]Invalid skinID");
  207. SetPlayerSkin(playerid,skin);
  208. return 1;
  209. }
  210.  
  211. dcmd_myweather(playerid, params[])
  212. {
  213. if(dini_Int(PFile(playerid),"VipMember")<2)return SendClientMessage(playerid, red, "[ERROR]You must became Silver member to use this command");
  214. new weather, string[128];
  215. if(sscanf(params,"i",weather)) return SendClientMessage(playerid,red,"[ERROR]USAGE: /myweather [WeatherID]");
  216. SetPlayerWeather(playerid,weather);
  217. format(string, sizeof(string), "You has been set your weather.");
  218. SendClientMessage(playerid,green,string);
  219. return 1;
  220. }
  221.  
  222. dcmd_mytime(playerid, params[])
  223. {
  224. if(dini_Int(PFile(playerid),"VipMember")<2)return SendClientMessage(playerid, red, "[ERROR]You must became Silver member to use this command");
  225. new hour, minute;
  226. if(sscanf(params,"ii",hour,minute)) return SendClientMessage(playerid,red,"[ERROR]USAGE: /mytime [Hour] [Minute]");
  227. SetPlayerTime(playerid, hour, minute);
  228. SendClientMessage(playerid, green,"You has been set your time");
  229. return 1;
  230. }
  231.  
  232. dcmd_vcar(playerid, params[])
  233. {
  234. #pragma unused params
  235. if(dini_Int(PFile(playerid),"VipMember")<2)return SendClientMessage(playerid, red, "[ERROR]You must became Silver member to use this command");
  236. CarSpawner(playerid, 411);
  237. SendClientMessage(playerid, green, "Your car has been spawn!");
  238. return 1;
  239. }
  240.  
  241. dcmd_vjetpack(playerid, params[])
  242. {
  243. #pragma unused params
  244. if(dini_Int(PFile(playerid),"VipMember")<2)return SendClientMessage(playerid, red, "[ERROR]You must became Silver member to use this command");
  245. SendClientMessage(playerid,green,"Jetpack Spawned.");
  246. SetPlayerSpecialAction(playerid, 2);
  247. return 1;
  248. }
  249.  
  250. dcmd_varmor(playerid, params[])
  251. {
  252. #pragma unused params
  253. if(dini_Int(PFile(playerid),"VipMember")<2)return SendClientMessage(playerid, red, "[ERROR]You must became Silver member to use this command");
  254. if(PlayerInfo[playerid][aTime] != 0) return SendClientMessage(playerid, red, "[ERROR]You must wait 4 minutes to use this command again");
  255. SetPlayerArmour(playerid, 50.0);
  256. SendClientMessage(playerid,green,"You armour has been set to 50. You must wait 4 minutes to use this command again");
  257. SetTimer("ArmourTime",240000, false);
  258. return 1;
  259. }
  260. //======================Gold Command===========
  261. dcmd_vheli(playerid, params[])
  262. {
  263. #pragma unused params
  264. if(dini_Int(PFile(playerid),"VipMember")<3)return SendClientMessage(playerid, red, "[ERROR]You must became Gold member to use this command");
  265. CarSpawner(playerid, 487);
  266. SendClientMessage(playerid, green, "Your heli has been spawn!");
  267. return 1;
  268. }
  269.  
  270. dcmd_vnos(playerid, params[])
  271. {
  272. #pragma unused params
  273. if(dini_Int(PFile(playerid),"VipMember")<3)return SendClientMessage(playerid, red, "[ERROR]You must became Gold member to use this command");
  274. if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, red, "[ERROR]You must in vehicle to use this command");
  275. switch(GetVehicleModel( GetPlayerVehicleID(playerid) ))
  276. {
  277. case 448,461,462,463,468,471,509,510,521,522,523,581,586,449:
  278. return SendClientMessage(playerid,red,"[ERROR] You can not tune this vehicle!");
  279. }
  280. AddVehicleComponent(GetPlayerVehicleID(playerid), 1010);
  281. SendClientMessage(playerid, green, "Nos has been added");
  282. return 1;
  283. }
  284.  
  285. dcmd_mycolor(playerid, params[])
  286. {
  287. #pragma unused params
  288. if(dini_Int(PFile(playerid),"VipMember")<3)return SendClientMessage(playerid, red, "[ERROR]You must became Gold member to use this command");
  289. ShowPlayerDialog(playerid, colordialog, DIALOG_STYLE_LIST, "NickName Color", "Blue\nRed\nGreen\nPurple\nPink\nYellow\nGrey\nOrange\nBrown", "Select", "Cancel");
  290. return 1;
  291. }
  292.  
  293. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  294. {
  295. //-------------------Neon System
  296. if(dialogid == colordialog)
  297. {
  298. if(response)
  299. {
  300. if(listitem == 0)
  301. {
  302. //blue
  303. SetPlayerColor(playerid, vBlue);
  304. SendClientMessage(playerid, 0xFFFFFFFF, "^^Your nickname now colored {0x0259EAAA}blue^^");
  305. }
  306. if(listitem == 1)
  307. {
  308. //red
  309. SetPlayerColor(playerid, vRed);
  310. SendClientMessage(playerid, 0xFFFFFFFF, "^^Your nickname now colored {vRed}red^^");
  311. }
  312. if(listitem == 2)
  313. {
  314. //green
  315. SetPlayerColor(playerid, vGreen);
  316. SendClientMessage(playerid, 0xFFFFFFFF, "^^Your nickname now colored {vGreeb}green^^");
  317. }
  318. if(listitem == 3)
  319. {
  320. //purple
  321. SetPlayerColor(playerid, vPurple);
  322. SendClientMessage(playerid, 0xFFFFFFFF, "^^Your nickname now colored {vPuerple}purple^^");
  323. }
  324. if(listitem == 4)
  325. {
  326. //pink
  327. SetPlayerColor(playerid, vPink);
  328. SendClientMessage(playerid, 0xFFFFFFFF, "^^Your nickname now colored {vPink}pink^^");
  329. }
  330. if(listitem == 5)
  331. {
  332. //yellow
  333. SetPlayerColor(playerid, vYellow);
  334. SendClientMessage(playerid, 0xFFFFFFFF, "^^Your nickname now colored {vYellow}yellow^^");
  335. }
  336. if(listitem == 6)
  337. {
  338. //grey
  339. SetPlayerColor(playerid, vGrey);
  340. SendClientMessage(playerid, 0xFFFFFFFF, "^^Your nickname now colored {vGrey}grey^^");
  341. }
  342. if(listitem == 7)
  343. {
  344. //orange
  345. SetPlayerColor(playerid, vOrange);
  346. SendClientMessage(playerid, 0xFFFFFFFF, "^^Your nickname now colored {vOrange}orange^^");
  347. }
  348. if(listitem == 8)
  349. {
  350. //brown
  351. SetPlayerColor(playerid, vBrown);
  352. SendClientMessage(playerid, 0xFFFFFFFF, "^^Your nickname now colored {vBrown}brown^^");
  353. }
  354. }
  355. }
  356. }
  357.  
  358. dcmd_vplane(playerid, params[])
  359. {
  360. #pragma unused params
  361. if(dini_Int(PFile(playerid),"VipMember")<3)return SendClientMessage(playerid, red, "[ERROR]You must became Premium member to use this command");
  362. CarSpawner(playerid, 519);
  363. SendClientMessage(playerid, green, "Your plane has been spawn!");
  364. return 1;
  365. }
  366.  
  367. forward CarSpawner(playerid,model);
  368. public CarSpawner(playerid,model)
  369. {
  370. if(IsPlayerInAnyVehicle(playerid)) SendClientMessage(playerid, red, "You already have a car!");
  371. else
  372. {
  373. new Float:x, Float:y, Float:z, Float:angle;
  374. GetPlayerPos(playerid, x, y, z);
  375. GetPlayerFacingAngle(playerid, angle);
  376. if(PlayerInfo[playerid][vCar] != -1) CarDeleter(PlayerInfo[playerid][vCar]);
  377. new vehicleid=CreateVehicle(model, x, y, z, angle, -1, -1, -1);
  378. PutPlayerInVehicle(playerid, vehicleid, 0);
  379. SetVehicleVirtualWorld(vehicleid, GetPlayerVirtualWorld(playerid));
  380. LinkVehicleToInterior(vehicleid, GetPlayerInterior(playerid));
  381. ChangeVehicleColor(vehicleid,0,7);
  382. PlayerInfo[playerid][vCar] = vehicleid;
  383. }
  384. return 1;
  385. }
  386.  
  387. forward CarDeleter(vehicleid);
  388. public CarDeleter(vehicleid)
  389. {
  390. for(new i=0;i<MAX_PLAYERS;i++) {
  391. new Float:X,Float:Y,Float:Z;
  392. if(IsPlayerInVehicle(i, vehicleid)) {
  393. RemovePlayerFromVehicle(i);
  394. GetPlayerPos(i,X,Y,Z);
  395. SetPlayerPos(i,X,Y+3,Z);
  396. }
  397. SetVehicleParamsForPlayer(vehicleid,i,0,1);
  398. }
  399. SetTimerEx("VehRes",1500,0,"i",vehicleid);
  400. }
  401.  
  402. forward HealTimer(playerid);
  403. public HealTimer(playerid)
  404. {
  405. SendClientMessage(playerid,blue,"You can use command /vheal again");
  406. PlayerInfo[playerid][hTime] = 1;
  407. }
  408.  
  409. forward ArmourTimer(playerid);
  410. public ArmourTimer(playerid)
  411. {
  412. SendClientMessage(playerid,blue,"You can use command /varmor again");
  413. PlayerInfo[playerid][aTime] = 1;
  414. }
  415.  
  416. forward VehRes(vehicleid);
  417. public VehRes(vehicleid)
  418. {
  419. DestroyVehicle(vehicleid);
  420. }
  421.  
  422. stock Gn(playerid)
  423. {
  424. new pname[24];
  425. GetPlayerName(playerid,pname,MAX_PLAYER_NAME);
  426. return pname;
  427. }
  428.  
  429. stock PFile(playerid)
  430. {
  431. format(file,64,"VipUsers/%s.ini",Gn(playerid));
  432. return file;
  433. }
  434.  
  435. stock IsValidSkin(SkinID)
  436. {
  437. if((SkinID >= 0 && SkinID <= 2)||(SkinID == 7)||(SkinID >= 9 && SkinID <= 41)||(SkinID >= 43 && SkinID <= 64)||(SkinID >= 66 && SkinID <= 73)||(SkinID >= 75 && SkinID <= 85)||(SkinID >= 87 && SkinID <= 118)||(SkinID >= 120 && SkinID <= 148)||(SkinID >= 150 && SkinID <= 207)||(SkinID >= 209 && SkinID <= 264)||(SkinID >= 274 && SkinID <= 288)||(SkinID >= 290 && SkinID <= 299)) return true;
  438. else return false;
  439. }
  440.  
  441. stock strtok(const string[], &index)
  442. {
  443. new length = strlen(string);
  444. while ((index < length) && (string[index] <= ' '))
  445. {
  446. index++;
  447. }
  448.  
  449. new offset = index;
  450. new result[20];
  451. while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))
  452. {
  453. result[index - offset] = string[index];
  454. index++;
  455. }
  456. result[index - offset] = EOS;
  457. return result;
  458. }
Advertisement
Add Comment
Please, Sign In to add comment