Advertisement
Guest User

Untitled

a guest
Oct 6th, 2019
138
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 6.90 KB | None | 0 0
  1. public tk_Dispenser(iEnt)
  2. {
  3.     if(pev_valid(iEnt))
  4.     {
  5.         static iOwner
  6.         iOwner = pev(iEnt, pev_iuser2)
  7.  
  8.         if(!is_user_connected(iOwner))
  9.             return PLUGIN_CONTINUE
  10.  
  11.         static id, fRadius, iDispHp, iLevel, iDispAp, Float:iTakeApHp
  12.         iLevel = pev(iEnt, pev_iuser3)
  13.  
  14.         switch(iLevel)
  15.         {
  16.             case 1:
  17.             {
  18.                 iDispHp = get_pcvar_num(g_Cvar[CVAR_HP_LVL1])
  19.                 iDispAp = get_pcvar_num(g_Cvar[CVAR_AP_LVL1])
  20.                 iTakeApHp = 1.0
  21.             }
  22.  
  23.             case 2:
  24.             {
  25.                 iDispHp = get_pcvar_num(g_Cvar[CVAR_HP_LVL2])
  26.                 iDispAp = get_pcvar_num(g_Cvar[CVAR_AP_LVL2])
  27.                 iTakeApHp = 1.5
  28.             }
  29.  
  30.             case 3:
  31.             {
  32.                 iDispHp = get_pcvar_num(g_Cvar[CVAR_HP_LVL3])
  33.                 iDispAp = get_pcvar_num(g_Cvar[CVAR_AP_LVL3])
  34.                 iTakeApHp = 2.0
  35.             }
  36.  
  37.             case 4:
  38.             {
  39.                 iDispHp = get_pcvar_num(g_Cvar[CVAR_HP_LVL4])
  40.                 iDispAp = get_pcvar_num(g_Cvar[CVAR_AP_LVL4])
  41.                 iTakeApHp = 2.5
  42.             }
  43.         }
  44.        
  45.         static Float:time
  46.         time = get_gametime()
  47.  
  48.         for(id = 1; id <= MaxClients; id++)
  49.         {
  50.             static iTeam
  51.             iTeam = get_user_team(id)
  52.  
  53.             if(is_user_alive(id) && cs_get_user_team(id) == cs_get_user_team(iOwner))
  54.             {
  55.                 if(g_IsVip[id])
  56.                     fRadius = get_pcvar_num(g_Cvar[CVAR_DISTANCE_LIFE_VIP])
  57.                 else
  58.                     fRadius = get_pcvar_num(g_Cvar[CVAR_DISTANCE_LIFE])
  59.  
  60.                 static Float:flOrigin[3]
  61.                 pev(id, pev_origin, flOrigin)
  62.  
  63.                 if(get_distance_f(g_DispOrigin[iOwner], flOrigin) <= fRadius)
  64.                 {
  65.                     if(UTIL_IsVisible(id, iEnt, 1) && get_user_health(id) < iDispHp)
  66.                     {
  67.                         if(pev(id, pev_health) < iDispHp)
  68.                         {
  69.                             set_pev(id, pev_health, floatmin(pev(id, pev_health) + iTakeApHp, float(iDispHp)))
  70.                            
  71.                             if(get_pcvar_num(g_Cvar[CVAR_SHOW_LIFE_SPRITE]))
  72.                             {
  73.                                 static iOrigin[3]
  74.                                 get_user_origin(id, iOrigin)
  75.  
  76.                                 message_begin(MSG_PVS, SVC_TEMPENTITY, iOrigin)
  77.                                 write_byte(TE_PROJECTILE)
  78.                                 write_coord(iOrigin[0] + random_num(-10, 15))
  79.                                 write_coord(iOrigin[1] + random_num(-10, 15))
  80.                                 write_coord(iOrigin[2] + random_num(5, 30))
  81.                                 write_coord(10)
  82.                                 write_coord(15)
  83.                                 write_coord(20)
  84.                                 write_short(iTeam == 1 ? g_PrecSprHealLifeR : g_PrecSprHealLifeB)
  85.                                 write_byte(1)
  86.                                 write_byte(id)
  87.                                 message_end()
  88.                             }
  89.                         }
  90.  
  91.                         UTIL_BeamEnts(flOrigin, g_DispOrigin[iOwner], g_BeamColor[iOwner][0], g_BeamColor[iOwner][1], g_BeamColor[iOwner][2], g_PrecSprLife, 40, 5)
  92.                     }
  93.  
  94.                     if(UTIL_IsVisible(id, iEnt, 1) && get_user_armor(id) < iDispAp)
  95.                     {                                                            
  96.                         if(pev(id, pev_armorvalue) < iDispAp)
  97.                         {
  98.                             set_pev(id, pev_armorvalue, floatmin(pev(id, pev_armorvalue) + iTakeApHp, float(iDispAp)))
  99.                         }
  100.  
  101.                         UTIL_BeamEnts(flOrigin, g_DispOrigin[iOwner], g_BeamColor[iOwner][0], g_BeamColor[iOwner][1], g_BeamColor[iOwner][2], g_PrecSprLife, 40, 5)
  102.                     }
  103.                 }
  104.  
  105.                 if(UTIL_IsVisible(id, iEnt, 1) && get_distance_f(g_DispOrigin[iOwner], flOrigin) <= float(get_pcvar_num(g_Cvar[CVAR_GIVE_MONEY_DISTANCE])) && iLevel == 4 && get_pcvar_num(g_Cvar[CVAR_GIVE_MONEY_TIME]))
  106.                 {
  107.                     if(time - float(get_pcvar_num(g_Cvar[CVAR_GIVE_MONEY_TIME])) > f_TimeGiveMoney[id])
  108.                     {
  109.                         cs_set_user_money(id, cs_get_user_money(id) + random_num(get_pcvar_num(g_Cvar[CVAR_GIVE_MONEY_MIN]), get_pcvar_num(g_Cvar[CVAR_GIVE_MONEY_MAX])))
  110.  
  111.                         f_TimeGiveMoney[id] = time
  112.                     }
  113.                 }
  114.  
  115.                 if(UTIL_IsVisible(id, iEnt, 1) && get_distance_f(g_DispOrigin[iOwner], flOrigin) <= float(get_pcvar_num(g_Cvar[CVAR_GIVE_AMMO_DISTANCE])) && iLevel == 4 && get_pcvar_num(g_Cvar[CVAR_GIVE_AMMO_TIME]))
  116.                 {
  117.                     if(time - float(get_pcvar_num(g_Cvar[CVAR_GIVE_AMMO_TIME])) > f_TimeGiveAmmo[id])
  118.                     {
  119.                         static fammo, fbammo, xUserGetWpn
  120.                         xUserGetWpn = get_user_weapon(id)
  121.  
  122.                         switch(xUserGetWpn)
  123.                         {
  124.                             case CSW_P228 : fammo = 13, fbammo = 52;
  125.                             case CSW_SCOUT : fammo = 10, fbammo = 90;
  126.                             case CSW_MAC10 : fammo = 30, fbammo = 100;
  127.                             case CSW_AUG : fammo = 30, fbammo = 90;
  128.                             case CSW_ELITE : fammo = 30, fbammo = 120;
  129.                             case CSW_FIVESEVEN : fammo = 20, fbammo = 100;
  130.                             case CSW_UMP45 : fammo = 25, fbammo = 100;
  131.                             case CSW_SG550 : fammo = 30, fbammo = 90;
  132.                             case CSW_GALI : fammo = 35, fbammo = 90;
  133.                             case CSW_FAMAS : fammo = 25, fbammo = 90;
  134.                             case CSW_USP : fammo = 12, fbammo = 100;
  135.                             case CSW_GLOCK18 : fammo = 20, fbammo = 120;
  136.                             case CSW_AWP : fammo = 10, fbammo = 30;
  137.                             case CSW_MP5NAVY : fammo = 30, fbammo = 120;
  138.                             case CSW_M249 : fammo = 100, fbammo = 200;
  139.                             case CSW_M3 : fammo = 8, fbammo = 32;
  140.                             case CSW_M4A1 : fammo = 30, fbammo = 90;
  141.                             case CSW_TMP : fammo = 30, fbammo = 120;
  142.                             case CSW_G3SG1 : fammo = 20, fbammo = 90;
  143.                             case CSW_SG552 : fammo = 30, fbammo = 90;
  144.                             case CSW_AK47 : fammo = 30, fbammo = 90;
  145.                             case CSW_P90 : fammo = 50, fbammo = 100;
  146.                             default: continue
  147.                         }
  148.  
  149.                         if(pev_valid(id) == 2)
  150.                         {
  151.                             static xUserWpn, currentAmmo, currentBammo, newAmmo, newBAmmo
  152.  
  153.                             xUserWpn = get_pdata_cbase(id, 373)
  154.                             currentAmmo = cs_get_weapon_ammo(xUserWpn)
  155.                             currentBammo = cs_get_user_bpammo(id, xUserGetWpn)
  156.                             newAmmo = currentAmmo + random_num(get_pcvar_num(g_Cvar[CVAR_GIVE_AMMO_MIN]), get_pcvar_num(g_Cvar[CVAR_GIVE_AMMO_MAX]))
  157.                             newBAmmo = currentBammo + random_num(get_pcvar_num(g_Cvar[CVAR_GIVE_AMMO_MIN]), get_pcvar_num(g_Cvar[CVAR_GIVE_AMMO_MAX]))
  158.                            
  159.                             if(currentAmmo == fammo && currentBammo == fbammo)
  160.                                 continue
  161.  
  162.                             if(newAmmo <= fammo)
  163.                             {
  164.                                 cs_set_weapon_ammo(xUserWpn, newAmmo)
  165.                                 emit_sound(id, CHAN_ITEM, xBulletsSounds[random_num(0, charsmax(xBulletsSounds))], 0.5, ATTN_NORM, 0, PITCH_NORM)
  166.                             }
  167.                             else
  168.                             {
  169.                                 if(newBAmmo <= fbammo)
  170.                                     cs_set_user_bpammo(id, xUserGetWpn, newBAmmo)
  171.                                 else
  172.                                     cs_set_user_bpammo(id, xUserGetWpn, fbammo)
  173.  
  174.                                 emit_sound(id, CHAN_ITEM, xBulletsSounds[random_num(0, charsmax(xBulletsSounds))], 0.5, ATTN_NORM, 0, PITCH_NORM)
  175.                             }
  176.                         }
  177.  
  178.                         f_TimeGiveAmmo[id] = time
  179.                     }
  180.                 }
  181.             }
  182.         }
  183.  
  184.         static Float:entorigin[3]
  185.         pev(iEnt, pev_origin, entorigin)
  186.  
  187.         static xHP
  188.         xHP = pev(iEnt, pev_health)
  189.  
  190.         if(xHP <= 350.0)
  191.         {
  192.             message_begin(MSG_BROADCAST,SVC_TEMPENTITY)
  193.             write_byte(TE_SMOKE)
  194.             engfunc(EngFunc_WriteCoord, entorigin[0] + random_float(-8.0, 8.0))
  195.             engfunc(EngFunc_WriteCoord, entorigin[1] + random_float(-8.0, 8.0))
  196.             engfunc(EngFunc_WriteCoord, entorigin[2] + random_float(25.0, 50.0))
  197.             write_short(g_PrecSprSmoke)
  198.             write_byte(random_num(3,10))
  199.             write_byte(30) //def: 30
  200.             message_end()
  201.         }
  202.  
  203.         if(get_user_team(iOwner) != pev(iEnt, pev_iuser4)) // remove o dispenser se eu mudar de time :)
  204.         {
  205.             BreakAllPlayerDispensers(iOwner) // remove todos dispensers da PESSOA
  206.  
  207.             return PLUGIN_CONTINUE
  208.         }
  209.  
  210.         set_pev(iEnt, pev_nextthink, get_gametime() + 0.1)
  211.     }
  212.    
  213.     return PLUGIN_CONTINUE
  214. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement