Konu

#1
Crosshair olduğu yere sabit bir spr istiyorum. Bu entity şeklinde olucak. Bunun yönünü vs. ayarlıyabıleceğim şekilde yapabilme şansımız var mı ?
#2
Ekrana sabit spr yi crosshair eklentisinden bakarak yapabilirdiniz bildiğim kadarıyla kodlama bilginiz vardı. Yönünü angel ile ayarlayabilirsiniz.
Discord: PawNod#6281 - Instagram - Eklenti yazmayı bıraktım sadece marketteki eklentilerin satışı için ulaşabilirsiniz.
#3
Entity olacak ise bunu herkesin görebileceği şeklinde yapabilirsiniz, yani bir model oluşturmaya çalışacaksınız.
Bunu için spr değil model kullanmalısınız.
@PawNod' Öyle yaparsa yön veremez.
#4
Kod:
#include <amxmodx>
#include <fakemeta>
#include <xs>
#include <zombieplague>

#if AMXX_VERSION_NUM < 183
#define client_disconnected        client_disconnect
#endif

#define DISTANCE             27 // do not modify

//#define TASK_CREATE            30103103
#define TASK_REMOVE_SPRITE         301031

#define isTeam(%1)            (1 <= get_user_team(%1) <= 2)

new g_iPlayerEnt[33], g_iStopFrame[33], g_roundend

new const g_win[] =         "sprites/winh.spr"
new const g_lost[] =         "sprites/winz.spr"

public plugin_init()
{
    register_plugin("PUBNite: Win Sprite", "1.0", "Devil259/EFFx")
    
    register_event("HLTV", "event_round_start", "a", "1=0", "2=0")
    register_forward(FM_AddToFullPack , "fwAddToFullPack", 1)
    register_event("CurWeapon", "Event_CurWeapon", "be", "1=1")
    g_roundend = 0
}

public plugin_precache()
{
    precache_model(g_win)
    precache_model(g_lost)
}

public zp_round_ended(winteam)
{
    for(new i = 0; i < get_maxplayers(); i++)
    {
        if(is_user_alive(i) && is_user_connected(i))
        {
            //set_task(0.6, "createSprite", i + TASK_CREATE)
            if(winteam == WIN_HUMANS)
                displaySprite(i, g_win)
            else
                displaySprite(i, g_lost)
                
            //set_player_light(i, "a")
            //set_pev(i, pev_maxspeed, 0.1)
            set_pev(i, pev_viewmodel2, "")
        }
        g_roundend = 1
    }
}

public Event_CurWeapon(iPlayer)
{
    if(!is_user_alive(iPlayer))
        return
    
    if(g_roundend)
    {
        set_pev(iPlayer, pev_viewmodel2, "")
        //set_pev(iPlayer, pev_maxspeed, 0.1)
    }
}

public fwAddToFullPack(es, e, iEnt, iHost, host_flags, player, p_set)
{
    if(!is_user_connected(iHost))
        return FMRES_IGNORED
    
    if(iEnt == g_iPlayerEnt[iHost])
    {
        if(!is_user_alive(iHost))
            return FMRES_IGNORED
        
        static Float:flOrigin[3] , Float:flVec[3], Float:flViewOffset[3]
        pev(iHost, pev_origin, flOrigin )
        pev(iHost, pev_view_ofs, flViewOffset)
        xs_vec_add(flOrigin, flViewOffset, flOrigin)

        flOrigin[2] += 3.0
        
        velocity_by_aim(iHost , DISTANCE, flVec)
        
        xs_vec_add(flOrigin, flVec, flOrigin)
        engfunc(EngFunc_SetOrigin, iEnt, flOrigin)
        set_es(es, ES_Origin, flOrigin)
        
        set_es(es, ES_RenderMode, kRenderNormal)
        set_es(es, ES_RenderAmt, 9999)
        
        if(!g_iStopFrame[iHost])
            return FMRES_IGNORED
        
        if(pev(iEnt, pev_frame) == g_iStopFrame[iHost])
        {
            set_pev(iEnt, pev_framerate, 0.0)
            g_iStopFrame[iHost] = 0
        }
    }

    return FMRES_IGNORED
}

public client_putinserver(id)
{
    if(pev_valid(g_iPlayerEnt[id]))
        RemoveEntity(id)
}

public client_disconnected(id)
{
    if(pev_valid(g_iPlayerEnt[id]))
        RemoveEntity(id)
}

public event_round_start()
{
    for(new i = 0; i < get_maxplayers(); i++)
    {
        if(pev_valid(g_iPlayerEnt[i]))
            RemoveEntity(i)
    }
    g_roundend = 0
}

displaySprite(id , const SpriteName[], Float:SpriteSize = 0.05, StopFrame = 0, Float:FrameRate = 0.0)
{
    if(!is_user_connected(id) || g_iPlayerEnt[id])
        return
    
    g_iPlayerEnt[id] = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "env_sprite"))
    
    if(!pev_valid(g_iPlayerEnt[id]))
        return
    
    set_pev(g_iPlayerEnt[id], pev_takedamage, 0.0)
    set_pev(g_iPlayerEnt[id], pev_solid, SOLID_NOT)
    set_pev(g_iPlayerEnt[id], pev_movetype, MOVETYPE_FOLLOW)
    
    engfunc(EngFunc_SetModel, g_iPlayerEnt[id], SpriteName)
    
    set_pev(g_iPlayerEnt[id], pev_rendermode, kRenderTransAlpha)
    set_pev(g_iPlayerEnt[id], pev_renderamt, 9999 )

    set_pev(g_iPlayerEnt[id], pev_scale, SpriteSize)

    g_iStopFrame[id] = StopFrame

    if(g_iStopFrame[id] && FrameRate > 0.0)
    {
        set_pev(g_iPlayerEnt[id], pev_animtime, get_gametime())
        set_pev(g_iPlayerEnt[id], pev_framerate, FrameRate)

        set_pev(g_iPlayerEnt[id], pev_spawnflags, SF_SPRITE_STARTON)
        dllfunc(DLLFunc_Spawn, g_iPlayerEnt[id])
    }
    set_task(6.0, "removeSprite", id + TASK_REMOVE_SPRITE)
}

public removeSprite(id)
{
    id -= TASK_REMOVE_SPRITE
    
    if(!is_user_connected(id) || !pev_valid(g_iPlayerEnt[id]))
        return
    
    RemoveEntity(id)
}

RemoveEntity(id)
{
    engfunc(EngFunc_RemoveEntity, g_iPlayerEnt[id])
    
    g_iPlayerEnt[id] = 0
    g_iStopFrame[id] = 0
}

Şöyle bir eklenti ile yapmıştım fakat sunucuda entity oyuncunun önünden biraz geçikmeli geliyor. Oyuncu yürüdü zaman eğilip kalkınca vs. bu gibi işlemlerde entity geri kalıyor.

Yanlış yazmışım yapmadım aldım.
Son Düzenleme: 27-01-2020, 19:41, Düzenleyen: XaRex.
#5
@By.KinG entity yerini görmedim sorry
Discord: PawNod#6281 - Instagram - Eklenti yazmayı bıraktım sadece marketteki eklentilerin satışı için ulaşabilirsiniz.
#6
Yanlış hatırlamıyorsam o eklentide txt kullanmamak istemediği için öyle bir şey yapmışlardı.
Txt ile yaparsan olabilir, crosshair eklentisi gibi düşün.
#7
txt üzerine olunca biraz sıkıntılı oluyor. Bazı oyuncularda açmıyor. Genelde crackli oyuncularda. Ben entity üstüne yapmaya denedim bazı eklentiler buldum fakat pek faydası olmadı.
#8
Txt olmadan sabit olmasını sağlamazsın bence, @ITenGriTR sen ne diyorsun?
#9
Konunuz "Çözülmüş İsteklere" taşınmıştır.

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

Yorum yapmak için üye olmanız gerekiyor

ya da

Benzer Konular

19
Yorum
12.868
Okunma
21-07-2020, 00:43
Task
Kayıt Ol