Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public tk_Dispenser(iEnt)
- {
- if(pev_valid(iEnt))
- {
- static iOwner
- iOwner = pev(iEnt, pev_iuser2)
- if(!is_user_connected(iOwner))
- return PLUGIN_CONTINUE
- static id, fRadius, iDispHp, iLevel, iDispAp, Float:iTakeApHp
- iLevel = pev(iEnt, pev_iuser3)
- switch(iLevel)
- {
- case 1:
- {
- iDispHp = get_pcvar_num(g_Cvar[CVAR_HP_LVL1])
- iDispAp = get_pcvar_num(g_Cvar[CVAR_AP_LVL1])
- iTakeApHp = 1.0
- }
- case 2:
- {
- iDispHp = get_pcvar_num(g_Cvar[CVAR_HP_LVL2])
- iDispAp = get_pcvar_num(g_Cvar[CVAR_AP_LVL2])
- iTakeApHp = 1.5
- }
- case 3:
- {
- iDispHp = get_pcvar_num(g_Cvar[CVAR_HP_LVL3])
- iDispAp = get_pcvar_num(g_Cvar[CVAR_AP_LVL3])
- iTakeApHp = 2.0
- }
- case 4:
- {
- iDispHp = get_pcvar_num(g_Cvar[CVAR_HP_LVL4])
- iDispAp = get_pcvar_num(g_Cvar[CVAR_AP_LVL4])
- iTakeApHp = 2.5
- }
- }
- static Float:time
- time = get_gametime()
- for(id = 1; id <= MaxClients; id++)
- {
- static iTeam
- iTeam = get_user_team(id)
- if(is_user_alive(id) && cs_get_user_team(id) == cs_get_user_team(iOwner))
- {
- if(g_IsVip[id])
- fRadius = get_pcvar_num(g_Cvar[CVAR_DISTANCE_LIFE_VIP])
- else
- fRadius = get_pcvar_num(g_Cvar[CVAR_DISTANCE_LIFE])
- static Float:flOrigin[3]
- pev(id, pev_origin, flOrigin)
- if(get_distance_f(g_DispOrigin[iOwner], flOrigin) <= fRadius)
- {
- if(UTIL_IsVisible(id, iEnt, 1) && get_user_health(id) < iDispHp)
- {
- if(pev(id, pev_health) < iDispHp)
- {
- set_pev(id, pev_health, floatmin(pev(id, pev_health) + iTakeApHp, float(iDispHp)))
- if(get_pcvar_num(g_Cvar[CVAR_SHOW_LIFE_SPRITE]))
- {
- static iOrigin[3]
- get_user_origin(id, iOrigin)
- message_begin(MSG_PVS, SVC_TEMPENTITY, iOrigin)
- write_byte(TE_PROJECTILE)
- write_coord(iOrigin[0] + random_num(-10, 15))
- write_coord(iOrigin[1] + random_num(-10, 15))
- write_coord(iOrigin[2] + random_num(5, 30))
- write_coord(10)
- write_coord(15)
- write_coord(20)
- write_short(iTeam == 1 ? g_PrecSprHealLifeR : g_PrecSprHealLifeB)
- write_byte(1)
- write_byte(id)
- message_end()
- }
- }
- UTIL_BeamEnts(flOrigin, g_DispOrigin[iOwner], g_BeamColor[iOwner][0], g_BeamColor[iOwner][1], g_BeamColor[iOwner][2], g_PrecSprLife, 40, 5)
- }
- if(UTIL_IsVisible(id, iEnt, 1) && get_user_armor(id) < iDispAp)
- {
- if(pev(id, pev_armorvalue) < iDispAp)
- {
- set_pev(id, pev_armorvalue, floatmin(pev(id, pev_armorvalue) + iTakeApHp, float(iDispAp)))
- }
- UTIL_BeamEnts(flOrigin, g_DispOrigin[iOwner], g_BeamColor[iOwner][0], g_BeamColor[iOwner][1], g_BeamColor[iOwner][2], g_PrecSprLife, 40, 5)
- }
- }
- 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]))
- {
- if(time - float(get_pcvar_num(g_Cvar[CVAR_GIVE_MONEY_TIME])) > f_TimeGiveMoney[id])
- {
- 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])))
- f_TimeGiveMoney[id] = time
- }
- }
- 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]))
- {
- if(time - float(get_pcvar_num(g_Cvar[CVAR_GIVE_AMMO_TIME])) > f_TimeGiveAmmo[id])
- {
- static fammo, fbammo, xUserGetWpn
- xUserGetWpn = get_user_weapon(id)
- switch(xUserGetWpn)
- {
- case CSW_P228 : fammo = 13, fbammo = 52;
- case CSW_SCOUT : fammo = 10, fbammo = 90;
- case CSW_MAC10 : fammo = 30, fbammo = 100;
- case CSW_AUG : fammo = 30, fbammo = 90;
- case CSW_ELITE : fammo = 30, fbammo = 120;
- case CSW_FIVESEVEN : fammo = 20, fbammo = 100;
- case CSW_UMP45 : fammo = 25, fbammo = 100;
- case CSW_SG550 : fammo = 30, fbammo = 90;
- case CSW_GALI : fammo = 35, fbammo = 90;
- case CSW_FAMAS : fammo = 25, fbammo = 90;
- case CSW_USP : fammo = 12, fbammo = 100;
- case CSW_GLOCK18 : fammo = 20, fbammo = 120;
- case CSW_AWP : fammo = 10, fbammo = 30;
- case CSW_MP5NAVY : fammo = 30, fbammo = 120;
- case CSW_M249 : fammo = 100, fbammo = 200;
- case CSW_M3 : fammo = 8, fbammo = 32;
- case CSW_M4A1 : fammo = 30, fbammo = 90;
- case CSW_TMP : fammo = 30, fbammo = 120;
- case CSW_G3SG1 : fammo = 20, fbammo = 90;
- case CSW_SG552 : fammo = 30, fbammo = 90;
- case CSW_AK47 : fammo = 30, fbammo = 90;
- case CSW_P90 : fammo = 50, fbammo = 100;
- default: continue
- }
- if(pev_valid(id) == 2)
- {
- static xUserWpn, currentAmmo, currentBammo, newAmmo, newBAmmo
- xUserWpn = get_pdata_cbase(id, 373)
- currentAmmo = cs_get_weapon_ammo(xUserWpn)
- currentBammo = cs_get_user_bpammo(id, xUserGetWpn)
- newAmmo = currentAmmo + random_num(get_pcvar_num(g_Cvar[CVAR_GIVE_AMMO_MIN]), get_pcvar_num(g_Cvar[CVAR_GIVE_AMMO_MAX]))
- newBAmmo = currentBammo + random_num(get_pcvar_num(g_Cvar[CVAR_GIVE_AMMO_MIN]), get_pcvar_num(g_Cvar[CVAR_GIVE_AMMO_MAX]))
- if(currentAmmo == fammo && currentBammo == fbammo)
- continue
- if(newAmmo <= fammo)
- {
- cs_set_weapon_ammo(xUserWpn, newAmmo)
- emit_sound(id, CHAN_ITEM, xBulletsSounds[random_num(0, charsmax(xBulletsSounds))], 0.5, ATTN_NORM, 0, PITCH_NORM)
- }
- else
- {
- if(newBAmmo <= fbammo)
- cs_set_user_bpammo(id, xUserGetWpn, newBAmmo)
- else
- cs_set_user_bpammo(id, xUserGetWpn, fbammo)
- emit_sound(id, CHAN_ITEM, xBulletsSounds[random_num(0, charsmax(xBulletsSounds))], 0.5, ATTN_NORM, 0, PITCH_NORM)
- }
- }
- f_TimeGiveAmmo[id] = time
- }
- }
- }
- }
- static Float:entorigin[3]
- pev(iEnt, pev_origin, entorigin)
- static xHP
- xHP = pev(iEnt, pev_health)
- if(xHP <= 350.0)
- {
- message_begin(MSG_BROADCAST,SVC_TEMPENTITY)
- write_byte(TE_SMOKE)
- engfunc(EngFunc_WriteCoord, entorigin[0] + random_float(-8.0, 8.0))
- engfunc(EngFunc_WriteCoord, entorigin[1] + random_float(-8.0, 8.0))
- engfunc(EngFunc_WriteCoord, entorigin[2] + random_float(25.0, 50.0))
- write_short(g_PrecSprSmoke)
- write_byte(random_num(3,10))
- write_byte(30) //def: 30
- message_end()
- }
- if(get_user_team(iOwner) != pev(iEnt, pev_iuser4)) // remove o dispenser se eu mudar de time :)
- {
- BreakAllPlayerDispensers(iOwner) // remove todos dispensers da PESSOA
- return PLUGIN_CONTINUE
- }
- set_pev(iEnt, pev_nextthink, get_gametime() + 0.1)
- }
- return PLUGIN_CONTINUE
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement