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ı ?
"Give yourself time. Ideas'll come. Life'll shake you, roll you, maybe embrace you. The music'll find you." STEAM
#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 - Satın alımlar ve satış konuları desteği için ulaşabilirsiniz : Eklentilerim
#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.
EKLENTİ YAZMIYORUM, YAZMAYIN ARTIK.
#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.
"Give yourself time. Ideas'll come. Life'll shake you, roll you, maybe embrace you. The music'll find you." STEAM
Son Düzenleme: 27-01-2020, 16:41, Düzenleyen: deciduous.
#5
@By.KinG entity yerini görmedim sorry
DISCORD: PawNod#6281 - Satın alımlar ve satış konuları desteği için ulaşabilirsiniz : Eklentilerim
#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.
EKLENTİ YAZMIYORUM, YAZMAYIN ARTIK.
#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ı.
"Give yourself time. Ideas'll come. Life'll shake you, roll you, maybe embrace you. The music'll find you." STEAM
#8
Txt olmadan sabit olmasını sağlamazsın bence, @ITenGriTR sen ne diyorsun?
EKLENTİ YAZMIYORUM, YAZMAYIN ARTIK.
#9
Konunuz "Çözülmüş İsteklere" taşınmıştır.
EKLENTİ YAZMIYORUM, YAZMAYIN ARTIK.

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

Yorum yapmak için üye olmanız gerekiyor

ya da

Benzer Konular

1
Yorum
4.788
Okunma
11-07-2022, 20:05
19
Yorum
23.848
Okunma
20-07-2020, 21:43
Task
Kayıt Ol
Discord Adresimize Katılın