Discord sunucumuz açılmıştır, hepinizi bekleriz

https://discord.gg/43gGDQe6tS

Atış saniyesi ayarlama

Eklenti sorunlarınız ve özel eklenti istekleriniz

Moderatör: Moderatörler


Konu Sahibi
theqramboq
Mesajlar: 8
Kayıt: Cum Eki 14, 2016 11:30 am

Atış saniyesi ayarlama

Mesaj gönderen theqramboq »

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()
    }
}

Link:
Linklerini gizle
Linki Kopyala
Kullanıcı avatarı

Emrullah AKTAŞ
Mesajlar: 277
Kayıt: Sal Oca 11, 2022 11:22 pm
Konum: İstanbul
İletişim:

Atış saniyesi ayarlama

Mesaj gönderen Emrullah AKTAŞ »

Kod: Tümünü seç

new Float: Last_Fire[33];

public client_PreThink(id)
{

    if (pev(id, pev_button) & IN_ATTACK && g_bHasSpawned[id] && !g_bIsSvgMenuOpened[id] && g_iSavageEntity[id])
	{
		if(get_gametime() - Last_Fire[id] < 15.0)
		{
			return;
		}
		
		AtisHasar(g_iSavageEntity[id]);
		Last_Fire[id] = get_gametime();
	}
}

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()
    }
}
Entity oluşturma aşamasında aşağıdaki kodu da okutmalısın;

Kod: Tümünü seç

Last_Fire[id] = 0.0

Link:
Linklerini gizle
Linki Kopyala

Konu Sahibi
theqramboq
Mesajlar: 8
Kayıt: Cum Eki 14, 2016 11:30 am

Atış saniyesi ayarlama

Mesaj gönderen theqramboq »

Teşekkürler

Link:
Linklerini gizle
Linki Kopyala
Cevapla