Atış saniyesi ayarlama
Gönderilme zamanı: Cum May 06, 2022 8:53 pm
IN_ATTACK (mouse 1) tuşuna bastığımda her 15 saniyede bir atış yapmasını istiyorum. İhtiyaç olursa kodun tamamını atabilirim
Kod: Tümünü seç
public client_PreThink(id)
{
if (pev(id, pev_button) & IN_ATTACK && g_bHasSpawned[id] && !g_bIsSvgMenuOpened[id] && g_iSavageEntity[id])
AtisHasar(g_iSavageEntity[id])
}
AtisHasar(iEntity)
{
static Float:origin[3], Float:originVictim[3]
pev(iEntity, pev_origin, origin)
new ownerid = pev(iEntity, pev_owner)
if (!pev_valid(g_iSavageEntity[ownerid]))
return;
new Text[34]
new Float:distance_diff, victim = -1
while ((victim = engfunc(EngFunc_FindEntityInSphere, victim, origin, get_pcvar_float(g_pCvarSavageRadius))) != 0)
{
if (!is_user_connected(victim))
continue
if (!is_user_alive(victim) || !zp_get_user_zombie(victim))
continue
pev(victim, pev_origin, originVictim)
distance_diff = get_distance_f(origin, originVictim)
if (get_user_health(victim) > 0)
{
new current_damage = get_pcvar_num(g_pCvarSavageDamage) - floatround(distance_diff)
format(Text, charsmax(Text) - 1, "%s", current_damage)
ExecuteHam(Ham_TakeDamage, victim, iEntity, ownerid, (get_pcvar_float(g_pCvarSavageDamage) - distance_diff), DMG_GRENADE)
Set_Knockback(victim, origin, (get_pcvar_float(g_pCvarSavageKnockback) - distance_diff))
bd_show_text(ownerid, ownerid, Text, 12)
}
else
ExecuteHam(Ham_Killed, victim, ownerid)
}
Patlama(ownerid, true)
}
Patlama(id, bool:effect = false)
{
if (effect)
{
if (!pev_valid(g_iSavageEntity[id]))
return
new Float:vOrigin[3]
pev(g_iSavageEntity[id], pev_origin, vOrigin)
message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
write_byte(3)
write_coord(floatround(vOrigin[0]))
write_coord(floatround(vOrigin[1]))
write_coord(floatround(vOrigin[2] + 10))
write_short(boom)
write_byte(40)
write_byte(15)
write_byte(0)
message_end()
}
}