Advertisement
RockFire_

Vip system v0.2

Aug 12th, 2011
364
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 7.06 KB | None | 0 0
  1. #include <a_samp>
  2. #include <ZCMD>
  3. #include <YSI/y_ini>
  4.  
  5. native sscanf(const data[], const format[], {Float,_}:...);
  6.  
  7. #define MaxPlayers  (15)
  8.  
  9. #define ParseFile(%0,%1,%2) \
  10.     forward %0(playerid,%1,%2); \
  11.         public %0(playerid,%1,%2)
  12.  
  13. new
  14.     VipPoints[MaxPlayers],
  15.         Text:Textdraw[MaxPlayers]
  16. ;
  17.  
  18. public OnFilterScriptInit()
  19. {
  20.     print("\n--------------------------------------");
  21.     print(" VIP System by RockFire loaded");
  22.     print("--------------------------------------\n");
  23.    
  24.     for(new i, j = GetMaxPlayers(); i < j; ++i)
  25.     {
  26.         Textdraw[i] = TextDrawCreate(500.000000, 9.000000, "~g~Pontos: ~w~999999999");
  27.         TextDrawBackgroundColor(Textdraw[i], 255);
  28.         TextDrawFont(Textdraw[i], 3);
  29.         TextDrawLetterSize(Textdraw[i], 0.310000, 1.100000);
  30.         TextDrawColor(Textdraw[i], -1);
  31.         TextDrawSetOutline(Textdraw[i], 1);
  32.         TextDrawSetProportional(Textdraw[i], 1);
  33.     }
  34.    
  35.     return 1;
  36. }
  37.  
  38. public OnFilterScriptExit()
  39. {
  40.     return 1;
  41. }
  42.  
  43. public OnPlayerSpawn(playerid)
  44. {
  45.     TextDrawShowForPlayer(playerid,Textdraw[playerid]);
  46.     UpdateTextDraw(playerid);
  47.     return 1;
  48. }
  49.  
  50. public OnPlayerDeath(playerid,killerid,reason)
  51. {
  52.     TextDrawHideForPlayer(playerid,Textdraw[playerid]);
  53.     return 1;
  54. }
  55.  
  56. CMD:fsetvip(playerid,params[])
  57. {
  58.     if(!IsPlayerAdmin(playerid)) return 0;
  59.  
  60.     new v[2];
  61.    
  62.     if(sscanf(params,"ii",v[0],v[1]))
  63.         return SendClientMessage(playerid,-1,"{94ED40}USE: /fsetvip [id] [pontos]");
  64.  
  65.     new sStr[128];
  66.    
  67.     format(sStr,128,"{94ED40}Você recebeu {FF5500}%i {94ED40}pontos de algum administrador, use '/vipmenu'",v[1]);
  68.     SendClientMessage(v[0],-1,sStr);
  69.     GetPlayerName(playerid,sStr,23);
  70.     format(sStr,128,"{94ED40}Você setou os pontos vips de {FF5500}%s {94ED40}para {FF5500}%i",sStr,v[1]);
  71.     ShowPlayerDialog(playerid,309,DIALOG_STYLE_MSGBOX,"VIP:",sStr,"Fechar","");
  72.    
  73.     VipPoints[ v[0] ] = v[1];
  74.     UpdateTextDraw(v[0]);
  75.     return 1;
  76. }
  77.  
  78. CMD:vipmenu(playerid,params[])
  79. {
  80.     if(VipPoints[playerid] <= 0) return SendClientMessage(playerid,-1,"{FF0000}Você não é vip");
  81.     ShowPlayerDialog(playerid,350,DIALOG_STYLE_LIST,"VIP:","Comprar veículo\nComprar nitro\nComprar armas\nDar pontos","OK","Cancelar");
  82.     return 1;
  83. }
  84.  
  85. CMD:vip(playerid,params[])
  86. {
  87.     new sStr[50];
  88.     format(sStr,50,"{FF5500}Você tem %i pontos",VipPoints[playerid]);
  89.     SendClientMessage(playerid,-1,sStr);
  90.     return 1;
  91. }
  92.  
  93. public OnPlayerConnect(playerid)
  94. {
  95.     new sStr[23];
  96.     GetPlayerName(playerid,sStr,23);
  97.     INI_ParseFile("vip_list.txt",sStr,.bExtra = true, .extra = playerid);
  98.     return 1;
  99. }
  100.  
  101. public OnPlayerDisconnect(playerid,reason)
  102. {
  103.     new
  104.         sStr[23],
  105.         INI:File = INI_Open("vip_list.txt")
  106.     ;
  107.    
  108.     GetPlayerName(playerid,sStr,23);
  109.    
  110.     INI_RemoveEntry(File,sStr);
  111.     INI_WriteInt(File,sStr,VipPoints[playerid]);
  112.     INI_Close(File);
  113.    
  114.     VipPoints[playerid] = 0;
  115.    
  116.     return 1;
  117. }
  118.  
  119. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  120. {
  121.     switch(dialogid)
  122.     {
  123.         case 350:
  124.         {
  125.             switch(listitem)
  126.             {
  127.                 case 0:
  128.                 {
  129.                     if(response)
  130.                     {
  131.                         ShowPlayerDialog(playerid,351,DIALOG_STYLE_INPUT,"VIP:","Digite o modelo do carro abaixo","OK","Calcelar");
  132.                         return 1;
  133.                     }
  134.                 }
  135.                 case 1:
  136.                 {
  137.                     if(response)
  138.                     {
  139.                         if(VipPoints[playerid] <= 0)
  140.                             return 1;
  141.  
  142.                         if(!IsPlayerInAnyVehicle(playerid))
  143.                             return SendClientMessage(playerid,-1,"{94ED40}Você precisa estar em um veículo");
  144.  
  145.                         AddVehicleComponent(GetPlayerVehicleID(playerid),1010);
  146.                         SendClientMessage(playerid,-1,"{FF5500}Você comprou nitro para seu carro, custo de {94ED40}500 {FF5500}pontos vip");
  147.                         VipPoints[playerid] -= 500;
  148.                         UpdateTextDraw(playerid);
  149.                         return 1;
  150.                     }
  151.                 }
  152.                 case 2:
  153.                 {
  154.                     if(response)
  155.                     {
  156.                         ShowPlayerDialog(playerid,352,DIALOG_STYLE_INPUT,"VIP:","Insira o id de uma arma","OK","Cancelar");
  157.                         return 1;
  158.                     }
  159.                 }
  160.                 case 3:
  161.                 {
  162.                     if(response)
  163.                     {
  164.                         SetPVarInt(playerid,"Player_",strval(inputtext));
  165.                         ShowPlayerDialog(playerid,353,DIALOG_STYLE_INPUT,"VIP:","Digite a quantia","OK","Cancelar");
  166.                     }
  167.                 }
  168.             }
  169.         }
  170.         case 351:
  171.         {
  172.             if(!inputtext[0] || strval(inputtext) < 400 || strval(inputtext) > 609)
  173.                 return SendClientMessage(playerid,-1,"{FF5500}Digite um id válido");
  174.                
  175.             if(IsPlayerInAnyVehicle(playerid))
  176.                 return SendClientMessage(playerid,-1,"{FF5500}Você está em um veículo");
  177.  
  178.             new price;
  179.  
  180.             switch(strval(inputtext))
  181.             {
  182.                 case 592,577,519:
  183.                     price = 40000;
  184.                 case 511,512,476,460,513:
  185.                     price = 6000;
  186.                 case 553:
  187.                     price = 12000;
  188.                 case 520:
  189.                     price = 70000;
  190.                 case 402,415:
  191.                     price = 12000;
  192.                 case 432:
  193.                     price = 70000;
  194.                 case 451,541:
  195.                     price = 25000;
  196.                 case 411,506:
  197.                     price = 30000;
  198.                 case 548,417,487,488,489,563,469:
  199.                     price = 24000;
  200.                 case 447:
  201.                     price = 40000;
  202.                 case 425:
  203.                     price = 70000;
  204.                 default:
  205.                     price = 5000;
  206.             }
  207.  
  208.             if(VipPoints[playerid] < price)
  209.                 return SendClientMessage(playerid,-1,"Você não tem pontos suficientes");
  210.  
  211.             new
  212.                 sStr[128],
  213.                 Float:x[4]
  214.             ;
  215.            
  216.             GetPlayerPos(playerid,x[0],x[1],x[2]);
  217.             GetPlayerFacingAngle(playerid,x[3]);
  218.             PutPlayerInVehicle(playerid,CreateVehicle(strval(inputtext),x[0],x[1],x[2],x[3]+2,random(999),random(999),-1),0);
  219.             format(sStr,128,"{94ED40}Você comprou um veículo, custo de {FF5500}%i {94ED40}pontos vip",price);
  220.             SendClientMessage(playerid,-1,sStr);
  221.             VipPoints[playerid] -= price;
  222.             UpdateTextDraw(playerid);
  223.             return 1;
  224.         }
  225.         case 352:
  226.         {
  227.             if(response)
  228.             {
  229.                 if(VipPoints[playerid] < 15000)
  230.                     return SendClientMessage(playerid,-1,"{00FFFF}Você não tem pontos suficientes");
  231.  
  232.                 GivePlayerWeapon(playerid,strval(inputtext),0x000F423F);
  233.                
  234.                 VipPoints[playerid] -= 15000;
  235.                 UpdateTextDraw(playerid);
  236.             }
  237.             return 1;
  238.         }
  239.         case 353:
  240.         {
  241.             if(response)
  242.             {
  243.                 if(VipPoints[playerid] < strval(inputtext))
  244.                     return SendClientMessage(playerid,-1,"{00FFFF}Você não tem pontos suficientes");
  245.  
  246.                 VipPoints[ GetPVarInt(playerid,"Player_") ] += strval(inputtext);
  247.                 VipPoints[playerid] -= strval(inputtext);
  248.  
  249.                 new sStr[128];
  250.  
  251.                 GetPlayerName(playerid,sStr,23);
  252.                 format(sStr,128,"Você deu %i pontos para %s",strval(inputtext),sStr);
  253.                 SendClientMessage(playerid,-1,sStr);
  254.  
  255.                 GetPlayerName(GetPVarInt(playerid,"Player_"),sStr,23);
  256.                 format(sStr,128,"Você recebeu %i pontos de %s",strval(inputtext),sStr);
  257.                 SendClientMessage(playerid,-1,sStr);
  258.                
  259.                 UpdateTextDraw(playerid);
  260.                 UpdateTextDraw(GetPVarInt(playerid,"Player_"));
  261.             }
  262.             return 1;
  263.         }
  264.     }
  265.     return 1;
  266. }
  267.  
  268. ParseFile(Vip,name[],value[])
  269. {
  270.     #pragma unused name, value
  271.     new sStr[23];
  272.     GetPlayerName(playerid,sStr,23);
  273.     INI_Int(sStr,"Points",VipPoints[playerid]);
  274.     return 1;
  275. }
  276.  
  277. UpdateTextDraw(playerid)
  278. {
  279.     new sStr[50];
  280.     format(sStr,50,"~g~Pontos: ~w~%09d",VipPoints[playerid]);
  281.     TextDrawSetString(Textdraw[playerid],sStr);
  282.     return 1;
  283. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement