Advertisement
Xaviour212

Ulric V.I.P System

Apr 22nd, 2011
4,167
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 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 0x16EB43FF
  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
Advertisement