⭐🚀 TkyNET | Blacklist ve Profesyonel DDoS Korumalı TeamSpeak 3 Sunucuları 🚀⭐
Sponsor Görsel
SponsorSponsor

Anlık Sersemleme/Yavaşlatma

Anlık Sersemleme/Yavaşlatma
Python Desperado silahının ikinci özelliği olan vurduğun oyuncuyu sersemletme kodunu yapmaya çalışıyor fakat pek başarılı olamadım. Sol tık özelliğini yaptım fakat sağ tık özelliğini yapamadım acaba nasıl bir şey yapabilirim. Sağ özelliği şu:Zombiye vurduğunuz zaman anlık bir yavaşlama gerçekleşicek yani olduğu yerde kalıcak zombiye vurmayı kesince olay kesilicek.

Şöyle bir şey denedim:
PHP Kod:
public fw_TraceAttack_Post(victim, attacker, Float:damage, Float:direction[3], tracehandle, damage_type)
{
    
// Non-player damage or self damage
    
if (victim == attacker || !is_user_alive(attacker) || !zth_get_user_zombie(victim))
        return;
        
    static 
iItem; iItem = get_pdata_cbase(attacker, m_pActiveItem, linux_diff_player);
    if(
iItem <= 0 || !CustomItem(iItem)) return;
    
    
// Not bullet damage
    
if (!(damage_type & DMG_BULLET))
        return;
        
    if (
damage <= 0.0 || GetHamReturnStatus() == HAM_SUPERCEDE || get_tr2(tracehandle, TR_pHit) != victim)
        return;

    
g_speed[victim] = pev(victim, pev_maxspeed)
    static 
Float:Origin[3]
    
pev(attacker, pev_origin, Origin)
    
    if(
g_Button[attacker] == IN_ATTACK)
    {    
        
hook_ent2(victim, Origin, damage, 5.5, 2)
    }
    else if(
g_Button[attacker] == IN_ATTACK2)
    {
        
set_pev(victim, pev_maxspeed, 0.1)
    }
    
set_pev(victim, pev_maxspeed, float(g_speed[victim]))
} 
IN_ATTACK Kısmında zombiye vurunca zombi geri gidiyor o tamam fakat altındaki tamam değil. Öyle saçma bir kod denedim fakat olmadı set_task vericektim fakat adam 5 saniye vurunca sıkıntı olur diye daha stabil bir kod var mı diye size soruyorum
Steam
Son Düzenleme: 13-03-2020, 23:36, Düzenleyen: deciduous
RE: Anlık Sersemleme/Yavaşlatma
büyük ihtimalle olmama sebebi hızı değiştirip çok kısa sürede eski haline getiriyorsun bununda etkisi olmamalı neredeyse
RE: Anlık Sersemleme/Yavaşlatma
Bunu saten farkettim başka türlü bir yolu yok malesef.Set task ile yapayım dedim oda olmadı.

Player PreThink ile hallettim sanırım.

Kod:
RegisterHam(Ham_Player_PreThink, "player", "Ham_PlayerPreThink")
Kod:
public fw_TraceAttack_Post(victim, attacker, Float:damage, Float:direction[3], tracehandle, damage_type)
{
    // Non-player damage or self damage
    if (victim == attacker || !is_user_alive(attacker) || !zth_get_user_zombie(victim))
        return;
        
    static iItem; iItem = get_pdata_cbase(attacker, m_pActiveItem, linux_diff_player);
    if(iItem <= 0 || !CustomItem(iItem)) return;
    
    // Not bullet damage
    if (!(damage_type & DMG_BULLET))
        return;
        
    if (damage <= 0.0 || GetHamReturnStatus() == HAM_SUPERCEDE || get_tr2(tracehandle, TR_pHit) != victim)
        return;

    static Float: flGameTime; flGameTime = get_gametime();
        
    g_speed[victim] = pev(victim, pev_maxspeed)
    static Float:Origin[3]
    pev(attacker, pev_origin, Origin)
    
    if(g_Button[attacker] == IN_ATTACK)
    {    
        hook_ent2(victim, Origin, damage, 5.5, 2)
    }
    else if(g_Button[attacker] == IN_ATTACK2)
    {
        set_pev(victim, pev_maxspeed, 0.2)
        g_waitspeed[victim] = flGameTime + 0.5
    }
}

Kod:
public Ham_PlayerPreThink(id)
{
    static Float: flGameTime; flGameTime = get_gametime();
    
    if(zth_get_user_zombie(id) && g_waitspeed[id] <= flGameTime)
    {
        set_pev(id, pev_maxspeed, float(zth_get_zombie_maxspeed(id)))
    }
}

Konu Taşınabilir.
Steam
Son Düzenleme: 14-03-2020, 09:16, Düzenleyen: deciduous
Anlık Sersemleme/Yavaşlatma
Konunuz "Çözülmüş İsteklere" taşınmıştır.
Linksta

Bir hesap oluşturun veya yorum yapmak için giriş yapın

Yorum yapmak için üye olmanız gerekiyor

ya da
Konuyu Okuyanlar: 1 Ziyaretçi