İyi akşamlar benim bir zombie plague sunucum var sunucuma zombilerin giremicegı bi alan acan bomba pluıgını yukledım ama bu bomba cok guclu oldugu ıcın her el sadece 1 kere almaya ayarlanmasını istiyorum cok tesekkur ederım
Konu
(29-04-2022, 18:00)asnac0099 Adlı Kullanıcıdan Alıntı: İyi akşamlar benim bir zombie plague sunucum var sunucuma zombilerin giremicegı bi alan acan bomba pluıgını yukledım ama bu bomba cok guclu oldugu ıcın her el sadece 1 kere almaya ayarlanmasını istiyorum cok tesekkur ederımdenedim ama hayla istedigim kadar atabılıyorum 1 elde sadece 1 kez alınabılcek herkes ıcın gecerlı olcak teşekkür ederim
Kod:
#include <amxmodx>
#include <amxmisc>
#include <engine>
#include <cstrike>
#include <zombieplague>
#include <hamsandwich>
#include <fakemeta_util>
#include <fun>
#define PLUGIN "[ZP] Extra Item: Force Field Grenade"
#define VERSION "v1.6"
#define AUTHOR "lucas_7_94" // Thanks To Users in credits too!.
/*=============================[Plugin Customization]=============================*/
//#define CAMPO_TASK
#define CAMPO_ROUND
new const NADE_TYPE_CAMPO = 7000
new const model_grenade[] = "models/zombie_plague/v_auragren.mdl"
new g_bomb[33], g_limit[33], g_maxplayers
new g_itemID
new const model[] = "models/zombie_plague/aura8.mdl"
new const entclas[] = "campo_grenade_forze"
new cvar_flaregrenades
new g_trailSpr
const m_pPlayer = 41;
new cvar_push
new g_SayText
new const sprite_grenade_trail[] = "sprites/laserbeam.spr"
/*=============================[End Customization]=============================*/
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
RegisterHam(Ham_Think, "grenade", "fw_ThinkGrenade")
RegisterHam(Ham_Killed, "player", "fw_PlayerKilled")
cvar_flaregrenades = get_cvar_pointer("zp_flare_grenades")
register_forward(FM_SetModel, "fw_SetModel")
RegisterHam( Ham_Item_Deploy, "weapon_smokegrenade", "FwdHamSmokeDeploy", 1 );
register_touch(entclas, "player", "entity_touch")
register_event("HLTV", "event_round_start", "a", "1=0", "2=0")
g_SayText = get_user_msgid("SayText")
g_maxplayers = get_maxplayers()
// cvar to push!!.
register_cvar("zp_shield_creator", AUTHOR, FCVAR_SERVER)
#if defined CAMPO_ROUND
g_itemID = zp_register_extra_item( "Force Shield (One Round)", 30 , ZP_TEAM_HUMAN)
#else
g_itemID = zp_register_extra_item( "Force Shield (Short-acting)", 15 , ZP_TEAM_HUMAN)
#endif
cvar_push = register_cvar("zp_forze_push", "7.5")
}
public event_round_start()
{
#if defined CAMPO_ROUND
remove_entity_name(entclas)
#endif
arrayset( g_bomb, false, 33 );
for(new id=1; id<=g_maxplayers; id++)
{
g_limit[id] = 0
}
}
public plugin_precache()
{
g_trailSpr = engfunc(EngFunc_PrecacheModel, sprite_grenade_trail)
engfunc(EngFunc_PrecacheModel, model_grenade)
engfunc(EngFunc_PrecacheModel, model)
}
public client_connect(id)
{
g_limit[id] = 0
}
public client_disconnected(id)
{
g_bomb[id] = false
g_limit[id] = 0
}
public zp_extra_item_selected(player, itemid)
{
if(itemid == g_itemID)
{
if(g_limit[player] < 1)
{
if(g_bomb[player])
{
Color(player, "!g[Shield]!y You already have a force field")
}
else
{
g_bomb[player] = true
g_limit[player]++
give_item(player,"weapon_smokegrenade")
#if defined CAMPO_ROUND
Color(player, "!g[Shield]!y You Bought a force field!. This, lasts 1 round complete.")
#else
Color(player, "!g[Shield]!y You Bought a force field!. This, lasts very little!")
#endif
}
}
else
{
Color(player, "!g[Shield]!y Her el !g1 tane !yalinabilir.")
}
}
}
public fw_PlayerKilled(victim, attacker, shouldgib) g_bomb[victim] = false
public fw_ThinkGrenade(entity)
{
if(!pev_valid(entity))
return HAM_IGNORED
static Float:dmgtime
pev(entity, pev_dmgtime, dmgtime)
if (dmgtime > get_gametime())
return HAM_IGNORED
if(pev(entity, pev_flTimeStepSound) == NADE_TYPE_CAMPO)
crear_ent(entity)
return HAM_SUPERCEDE
}
public FwdHamSmokeDeploy(const iEntity) {
if(pev_valid(iEntity) != 2 )
return HAM_IGNORED
new id = get_pdata_cbase(iEntity, m_pPlayer, 4)
if(g_bomb[id] && !zp_get_user_zombie(id))
{
set_pev( id, pev_viewmodel2, model_grenade )
}
return HAM_IGNORED;
}
public fw_SetModel(entity, const model[])
{
static Float:dmgtime
pev(entity, pev_dmgtime, dmgtime)
if (dmgtime == 0.0)
return
if (equal(model[7], "w_sm", 4))
{
new owner = pev(entity, pev_owner)
if(!zp_get_user_zombie(owner) && g_bomb[owner])
{
set_pcvar_num(cvar_flaregrenades,0)
fm_set_rendering(entity, kRenderFxGlowShell, 000, 255, 255, kRenderNormal, 16)
message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
write_byte(TE_BEAMFOLLOW) // TE id
write_short(entity) // entity
write_short(g_trailSpr) // sprite
write_byte(10) // life
write_byte(10) // width
write_byte(000) // r
write_byte(255) // g
write_byte(255) // b
write_byte(500) // brightness
message_end()
set_pev(entity, pev_flTimeStepSound, NADE_TYPE_CAMPO)
set_task(6.0, "DeleteEntityGrenade" ,entity)
}
}
}
public DeleteEntityGrenade(entity) remove_entity(entity)
public crear_ent(id)
{
set_pcvar_num(cvar_flaregrenades,1)
// Create entitity
new iEntity = create_entity("info_target")
if(!is_valid_ent(iEntity))
return PLUGIN_HANDLED
new Float: Origin[3]
entity_get_vector(id, EV_VEC_origin, Origin)
Origin[2] -= 0.00
entity_set_string(iEntity, EV_SZ_classname, entclas)
entity_set_vector(iEntity,EV_VEC_origin, Origin)
entity_set_model(iEntity,model)
entity_set_int(iEntity, EV_INT_solid, SOLID_TRIGGER)
entity_set_size(iEntity, Float: {-100.0, -100.0, -100.0}, Float: {100.0, 100.0, 100.0})
entity_set_int(iEntity, EV_INT_renderfx, kRenderFxGlowShell)
entity_set_int(iEntity, EV_INT_rendermode, kRenderTransAlpha)
entity_set_float(iEntity, EV_FL_renderamt, 50.0)
if(is_valid_ent(iEntity))
{
new Float:vColor[3]
for(new i; i < 3; i++)
vColor[i] = random_float(0.0, 255.0)
entity_set_vector(iEntity, EV_VEC_rendercolor, vColor)
}
#if defined CAMPO_TASK
set_task(15.0, "DeleteEntity", iEntity)
#endif
static attacker
attacker = pev(id, pev_owner)
g_bomb[attacker] = false
return PLUGIN_CONTINUE;
}
public zp_user_infected_post(infected, infector)
{
if (g_bomb[infected])
{
g_bomb[infected] = false
}
}
public entity_touch(touched, toucher)
{
if(zp_get_user_zombie(toucher) || zp_get_user_nemesis(toucher))
{
new Float:pos_ptr[3], Float:pos_ptd[3], Float:push_power = get_pcvar_float(cvar_push)
pev(touched, pev_origin, pos_ptr)
pev(toucher, pev_origin, pos_ptd)
for(new i = 0; i < 2; i++)
{
pos_ptd[i] -= pos_ptr[i]
pos_ptd[i] *= push_power
}
set_pev(toucher, pev_velocity, pos_ptd)
set_pev(toucher, pev_impulse, pos_ptd)
}
}
public remove_ent()
{
remove_entity_name(entclas)
}
public DeleteEntity( entity )
if( is_valid_ent( entity ) )
remove_entity( entity );
stock Color(const id, const input[], any:...)
{
static msg[191]
vformat(msg, 190, input, 3)
replace_all(msg, 190, "!g", "^4")
replace_all(msg, 190, "!y", "^1")
replace_all(msg, 190, "!t", "^3")
message_begin(MSG_ONE_UNRELIABLE, g_SayText, _, id)
write_byte(id)
write_string(msg)
message_end()
}(29-04-2022, 18:34)asnac0099 Adlı Kullanıcıdan Alıntı:Tamamdır cok cok tesekkurler basarılı(29-04-2022, 18:00)asnac0099 Adlı Kullanıcıdan Alıntı: İyi akşamlar benim bir zombie plague sunucum var sunucuma zombilerin giremicegı bi alan acan bomba pluıgını yukledım ama bu bomba cok guclu oldugu ıcın her el sadece 1 kere almaya ayarlanmasını istiyorum cok tesekkur ederımdenedim ama hayla istedigim kadar atabılıyorum 1 elde sadece 1 kez alınabılcek herkes ıcın gecerlı olcak teşekkür ederim
İstek konusu, @Multipower adlı kullanıcı tarafından 2 saat içinde çözülmüştür.
İsteği çözdüğü için Multipower Adlı kullanıcıya 1 rep puanı ve 1 yardım etme puanı otomatik olarak verilmiştir.
Multipower Adlı kullanıcı sizin dışınızda toplam 14 kişiye yardım etmiştir.
Herhangi bir konuda hata olduğunu düşünüyorsanız destek sistemi üzerinden iletişim kurabilirsiniz.
İsteği çözdüğü için Multipower Adlı kullanıcıya 1 rep puanı ve 1 yardım etme puanı otomatik olarak verilmiştir.
Multipower Adlı kullanıcı sizin dışınızda toplam 14 kişiye yardım etmiştir.
Herhangi bir konuda hata olduğunu düşünüyorsanız destek sistemi üzerinden iletişim kurabilirsiniz.
)


