⭐🚀 TkyNET | Blacklist ve Profesyonel DDoS Korumalı TeamSpeak 3 Sunucuları 🚀⭐
Sponsor Görsel
🌐 www.furiazm.com ⏰ 7/24 aktif Yönetim 💬 Discord.gg/furiaclancs 💰Ücretsiz Adminlik/Vip alımı 🌟 Türkiye’nin yeni en gelişmiş Zombie Plague sunucusu
Sponsor Görsel 2
SponsorSponsor

En Çok Beğeni Alan Cevaplar

osmanbnm
2 Beğeni

Spr dosyasına gerek yok eklenti ile yapabilirsin. Ama spr uzantılı dosya olursa daha temiz görüntü alırsın. 

Örnek eklenti ; 

PHP Kod:
#include <amxmodx>
#include <reapi>
#include <zombieplague>

#define PLUGIN_NAME      "ZP Zombi Yetenek Ekran Efekti"
#define PLUGIN_VERSION   "1.0"
#define PLUGIN_AUTHOR    "osmanbnm"

#define FADE_DURATION     8
#define FADE_HOLD         4
#define FADE_IN_FLAG      0x0000
#define FX_COOLDOWN       0.5
#define RING_HEIGHT       250
#define RING_WIDTH        50
#define RING_LIFE         8
#define RING_FRAMERATE    10
#define RING_BRIGHTNESS   220
#define DLIGHT_RADIUS     20
#define DLIGHT_LIFE       8
#define DLIGHT_DECAY      50
#define MAX_BIND_KEYS     5

enum FxType {
    FX_INFECT 0,
    FX_ABILITY,
    FX_LEAP,
    FX_NEMESIS
}

static const 
g_iRGB[FxType][3] = {
    220,  20,  10 },
    240200,  15 },
    255130,  10 },
    180,   0,   0 }
}

static const 
g_iFadeAlpha[FxType] = { 14011595165 }

static const 
g_iKeyBits[MAX_BIND_KEYS] = {
    IN_DUCK,
    IN_USE,
    IN_RELOAD,
    IN_FORWARD,
    IN_RUN
}

static 
g_msgScreenFade
static g_iSprRing
static Float:g_flLastEffect[33]
static 
bool:g_bIsZombie[33]
static 
bool:g_bIsNemesis[33]
static 
bool:g_bIsAlive[33]
static 
bool:g_bIsConnected[33]
static 
g_iAbilityKey
static g_pCvarKey

public plugin_precache()
    g_iSprRing precache_model("sprites/shockwave.spr")

public 
plugin_init() {
    register_plugin(PLUGIN_NAMEPLUGIN_VERSIONPLUGIN_AUTHOR)
    g_msgScreenFade get_user_msgid("ScreenFade")

    g_pCvarKey register_cvar("zp_ability_fx_key""1")

    RegisterHookChain(RG_CBasePlayer_Spawn"OnPlayerSpawn_Post"true)
    RegisterHookChain(RG_CBasePlayer_Killed"OnPlayerKilled_Post"true)
    RegisterHookChain(RG_CSGameRules_RestartRound"OnRoundRestart_Post"true)
    RegisterHookChain(RG_PM_Move"OnPM_Move"false)

    SyncKeyConfig()
}

public 
plugin_cfg()
    SyncKeyConfig()

static 
SyncKeyConfig() {
    new iVal clamp(get_pcvar_num(g_pCvarKey), 0MAX_BIND_KEYS 1)
    g_iAbilityKey g_iKeyBits[iVal]
}

public 
client_putinserver(id) {
    g_bIsConnected[id] = true
    ResetPlayerData
(id)
}

public 
client_disconnected(id) {
    g_bIsConnected[id] = false
    ResetPlayerData
(id)
}

static 
ResetPlayerData(id) {
    g_bIsAlive[id] = false
    g_bIsZombie
[id] = false
    g_bIsNemesis
[id] = false
    g_flLastEffect
[id] = 0.0
}

public 
OnPlayerSpawn_Post(id) {
    if (!is_user_alive(id))
        return

    g_bIsAlive[id] = true
    g_bIsZombie
[id] = false
    g_bIsNemesis
[id] = false
}

public 
OnPlayerKilled_Post(id) {
    g_bIsAlive[id] = false
}

public 
OnPM_Move(id) {
    if (!g_bIsAlive[id] || !g_bIsZombie[id])
        return

    static iButtons
    iButtons 
get_entvar(idvar_button)

    static iOldButtons
    iOldButtons 
get_entvar(idvar_oldbuttons)

    if (!(iButtons g_iAbilityKey) || (iOldButtons g_iAbilityKey))
        return

    if (iButtons IN_JUMP) {
        if (!(get_entvar(idvar_flags) & FL_ONGROUND))
            return

        if (!CheckCooldown(id))
            return

        ApplyEffect(idg_bIsNemesis[id] ? FX_NEMESIS FX_LEAP)
        return
    }

    if (!CheckCooldown(id))
        return

    ApplyEffect(idg_bIsNemesis[id] ? FX_NEMESIS FX_ABILITY)
}

public 
OnRoundRestart_Post() {
    SyncKeyConfig()

    for (new 1<= MaxClientsi++) {
        g_bIsZombie[i] = false
        g_bIsNemesis
[i] = false
        g_flLastEffect
[i] = 0.0
    
}
}

public 
zp_user_infected_post(idinfectornemesis) {
    if (!g_bIsConnected[id])
        return

    g_bIsZombie[id] = true
    g_bIsNemesis
[id] = bool:nemesis
    g_bIsAlive
[id] = true

    ApplyEffect
(idnemesis FX_NEMESIS FX_INFECT)

    if (infector && infector <= MaxClients) {
        if (g_bIsConnected[infector] && g_bIsAlive[infector])
            ApplyEffect(infectorFX_ABILITY)
    }
}

public 
zp_user_humanized_post(id) {
    if (!g_bIsConnected[id])
        return

    g_bIsZombie[id] = false
    g_bIsNemesis
[id] = false
}

public 
zp_extra_item_selected(iditemid) {
    if (!g_bIsAlive[id] || !g_bIsZombie[id])
        return

    if (!CheckCooldown(id))
        return

    ApplyEffect(idFX_ABILITY)
}

static 
ApplyEffect(idFxType:type) {
    if (!g_bIsConnected[id])
        return

    g_flLastEffect[id] = get_gametime()

    SendScreenFade(idtype)
    SendBeamCylinder(idtype)
    SendDynamicLight(idtype)
}

static 
SendScreenFade(idFxType:type) {
    message_begin(MSG_ONE_UNRELIABLEg_msgScreenFade, {0,0,0}, id)
    write_short((<< 12) * FADE_DURATION)
    write_short((<< 12) * FADE_HOLD)
    write_short(FADE_IN_FLAG)
    write_byte(g_iRGB[type][0])
    write_byte(g_iRGB[type][1])
    write_byte(g_iRGB[type][2])
    write_byte(g_iFadeAlpha[type])
    message_end()
}

static 
SendBeamCylinder(idFxType:type) {
    static Float:vOrigin[3]
    get_entvar(idvar_originvOrigin)

    message_begin(MSG_ONE_UNRELIABLESVC_TEMPENTITY, {0,0,0}, id)
    write_byte(TE_BEAMCYLINDER)
    write_coord_f(vOrigin[0])
    write_coord_f(vOrigin[1])
    write_coord_f(vOrigin[2] - 36.0)
    write_coord_f(vOrigin[0])
    write_coord_f(vOrigin[1])
    write_coord_f(vOrigin[2] + float(RING_HEIGHT))
    write_short(g_iSprRing)
    write_byte(0)
    write_byte(RING_FRAMERATE)
    write_byte(RING_LIFE)
    write_byte(RING_WIDTH)
    write_byte(0)
    write_byte(g_iRGB[type][0])
    write_byte(g_iRGB[type][1])
    write_byte(g_iRGB[type][2])
    write_byte(RING_BRIGHTNESS)
    write_byte(0)
    message_end()
}

static 
SendDynamicLight(idFxType:type) {
    static Float:vOrigin[3]
    get_entvar(idvar_originvOrigin)

    message_begin(MSG_ONE_UNRELIABLESVC_TEMPENTITY, {0,0,0}, id)
    write_byte(TE_DLIGHT)
    write_coord_f(vOrigin[0])
    write_coord_f(vOrigin[1])
    write_coord_f(vOrigin[2])
    write_byte(DLIGHT_RADIUS)
    write_byte(g_iRGB[type][0])
    write_byte(g_iRGB[type][1])
    write_byte(g_iRGB[type][2])
    write_byte(DLIGHT_LIFE)
    write_byte(DLIGHT_DECAY)
    message_end()
}

static 
bool:CheckCooldown(id) {
    if (get_gametime() - g_flLastEffect[id] < FX_COOLDOWN)
        return false

    
return true

Fakat bu şekilde önermem. Class sınıfların ana eklentileri düzenlersen daha verimli olur.

Zp Sinifların Skill Kullanırken Ekranına Efekti Verme

Konu

#1
merhabalar
arkadaşlar zp modunda zombi sınıfları Skill özellikleri kullandıgında G tusu veya T bastıgında ekranında söyle bir kırmızı alevli efekti 
yapmak için .spr ihtiyaç var yoksa kodla mı yapılıyor 




wvdLJD
#2
.sprlara ihtiyacınız var ve hangi zombi sınıfında hangi özelliği kullanılınca çıkacağını konumunu ayarlamanız gerek
#3
(07-03-2026, 13:29)Merhabalarr Adlı Kullanıcıdan Alıntı: .sprlara ihtiyacınız var ve hangi zombi sınıfında hangi özelliği kullanılınca çıkacağını konumunu ayarlamanız gerek
peki bu tarz efektili .spr nereden nasıl bulabilirim
#4
Spr dosyasına gerek yok eklenti ile yapabilirsin. Ama spr uzantılı dosya olursa daha temiz görüntü alırsın. 

Örnek eklenti ; 

PHP Kod:
#include <amxmodx>
#include <reapi>
#include <zombieplague>

#define PLUGIN_NAME      "ZP Zombi Yetenek Ekran Efekti"
#define PLUGIN_VERSION   "1.0"
#define PLUGIN_AUTHOR    "osmanbnm"

#define FADE_DURATION     8
#define FADE_HOLD         4
#define FADE_IN_FLAG      0x0000
#define FX_COOLDOWN       0.5
#define RING_HEIGHT       250
#define RING_WIDTH        50
#define RING_LIFE         8
#define RING_FRAMERATE    10
#define RING_BRIGHTNESS   220
#define DLIGHT_RADIUS     20
#define DLIGHT_LIFE       8
#define DLIGHT_DECAY      50
#define MAX_BIND_KEYS     5

enum FxType {
    FX_INFECT 0,
    FX_ABILITY,
    FX_LEAP,
    FX_NEMESIS
}

static const 
g_iRGB[FxType][3] = {
    220,  20,  10 },
    240200,  15 },
    255130,  10 },
    180,   0,   0 }
}

static const 
g_iFadeAlpha[FxType] = { 14011595165 }

static const 
g_iKeyBits[MAX_BIND_KEYS] = {
    IN_DUCK,
    IN_USE,
    IN_RELOAD,
    IN_FORWARD,
    IN_RUN
}

static 
g_msgScreenFade
static g_iSprRing
static Float:g_flLastEffect[33]
static 
bool:g_bIsZombie[33]
static 
bool:g_bIsNemesis[33]
static 
bool:g_bIsAlive[33]
static 
bool:g_bIsConnected[33]
static 
g_iAbilityKey
static g_pCvarKey

public plugin_precache()
    g_iSprRing precache_model("sprites/shockwave.spr")

public 
plugin_init() {
    register_plugin(PLUGIN_NAMEPLUGIN_VERSIONPLUGIN_AUTHOR)
    g_msgScreenFade get_user_msgid("ScreenFade")

    g_pCvarKey register_cvar("zp_ability_fx_key""1")

    RegisterHookChain(RG_CBasePlayer_Spawn"OnPlayerSpawn_Post"true)
    RegisterHookChain(RG_CBasePlayer_Killed"OnPlayerKilled_Post"true)
    RegisterHookChain(RG_CSGameRules_RestartRound"OnRoundRestart_Post"true)
    RegisterHookChain(RG_PM_Move"OnPM_Move"false)

    SyncKeyConfig()
}

public 
plugin_cfg()
    SyncKeyConfig()

static 
SyncKeyConfig() {
    new iVal clamp(get_pcvar_num(g_pCvarKey), 0MAX_BIND_KEYS 1)
    g_iAbilityKey g_iKeyBits[iVal]
}

public 
client_putinserver(id) {
    g_bIsConnected[id] = true
    ResetPlayerData
(id)
}

public 
client_disconnected(id) {
    g_bIsConnected[id] = false
    ResetPlayerData
(id)
}

static 
ResetPlayerData(id) {
    g_bIsAlive[id] = false
    g_bIsZombie
[id] = false
    g_bIsNemesis
[id] = false
    g_flLastEffect
[id] = 0.0
}

public 
OnPlayerSpawn_Post(id) {
    if (!is_user_alive(id))
        return

    g_bIsAlive[id] = true
    g_bIsZombie
[id] = false
    g_bIsNemesis
[id] = false
}

public 
OnPlayerKilled_Post(id) {
    g_bIsAlive[id] = false
}

public 
OnPM_Move(id) {
    if (!g_bIsAlive[id] || !g_bIsZombie[id])
        return

    static iButtons
    iButtons 
get_entvar(idvar_button)

    static iOldButtons
    iOldButtons 
get_entvar(idvar_oldbuttons)

    if (!(iButtons g_iAbilityKey) || (iOldButtons g_iAbilityKey))
        return

    if (iButtons IN_JUMP) {
        if (!(get_entvar(idvar_flags) & FL_ONGROUND))
            return

        if (!CheckCooldown(id))
            return

        ApplyEffect(idg_bIsNemesis[id] ? FX_NEMESIS FX_LEAP)
        return
    }

    if (!CheckCooldown(id))
        return

    ApplyEffect(idg_bIsNemesis[id] ? FX_NEMESIS FX_ABILITY)
}

public 
OnRoundRestart_Post() {
    SyncKeyConfig()

    for (new 1<= MaxClientsi++) {
        g_bIsZombie[i] = false
        g_bIsNemesis
[i] = false
        g_flLastEffect
[i] = 0.0
    
}
}

public 
zp_user_infected_post(idinfectornemesis) {
    if (!g_bIsConnected[id])
        return

    g_bIsZombie[id] = true
    g_bIsNemesis
[id] = bool:nemesis
    g_bIsAlive
[id] = true

    ApplyEffect
(idnemesis FX_NEMESIS FX_INFECT)

    if (infector && infector <= MaxClients) {
        if (g_bIsConnected[infector] && g_bIsAlive[infector])
            ApplyEffect(infectorFX_ABILITY)
    }
}

public 
zp_user_humanized_post(id) {
    if (!g_bIsConnected[id])
        return

    g_bIsZombie[id] = false
    g_bIsNemesis
[id] = false
}

public 
zp_extra_item_selected(iditemid) {
    if (!g_bIsAlive[id] || !g_bIsZombie[id])
        return

    if (!CheckCooldown(id))
        return

    ApplyEffect(idFX_ABILITY)
}

static 
ApplyEffect(idFxType:type) {
    if (!g_bIsConnected[id])
        return

    g_flLastEffect[id] = get_gametime()

    SendScreenFade(idtype)
    SendBeamCylinder(idtype)
    SendDynamicLight(idtype)
}

static 
SendScreenFade(idFxType:type) {
    message_begin(MSG_ONE_UNRELIABLEg_msgScreenFade, {0,0,0}, id)
    write_short((<< 12) * FADE_DURATION)
    write_short((<< 12) * FADE_HOLD)
    write_short(FADE_IN_FLAG)
    write_byte(g_iRGB[type][0])
    write_byte(g_iRGB[type][1])
    write_byte(g_iRGB[type][2])
    write_byte(g_iFadeAlpha[type])
    message_end()
}

static 
SendBeamCylinder(idFxType:type) {
    static Float:vOrigin[3]
    get_entvar(idvar_originvOrigin)

    message_begin(MSG_ONE_UNRELIABLESVC_TEMPENTITY, {0,0,0}, id)
    write_byte(TE_BEAMCYLINDER)
    write_coord_f(vOrigin[0])
    write_coord_f(vOrigin[1])
    write_coord_f(vOrigin[2] - 36.0)
    write_coord_f(vOrigin[0])
    write_coord_f(vOrigin[1])
    write_coord_f(vOrigin[2] + float(RING_HEIGHT))
    write_short(g_iSprRing)
    write_byte(0)
    write_byte(RING_FRAMERATE)
    write_byte(RING_LIFE)
    write_byte(RING_WIDTH)
    write_byte(0)
    write_byte(g_iRGB[type][0])
    write_byte(g_iRGB[type][1])
    write_byte(g_iRGB[type][2])
    write_byte(RING_BRIGHTNESS)
    write_byte(0)
    message_end()
}

static 
SendDynamicLight(idFxType:type) {
    static Float:vOrigin[3]
    get_entvar(idvar_originvOrigin)

    message_begin(MSG_ONE_UNRELIABLESVC_TEMPENTITY, {0,0,0}, id)
    write_byte(TE_DLIGHT)
    write_coord_f(vOrigin[0])
    write_coord_f(vOrigin[1])
    write_coord_f(vOrigin[2])
    write_byte(DLIGHT_RADIUS)
    write_byte(g_iRGB[type][0])
    write_byte(g_iRGB[type][1])
    write_byte(g_iRGB[type][2])
    write_byte(DLIGHT_LIFE)
    write_byte(DLIGHT_DECAY)
    message_end()
}

static 
bool:CheckCooldown(id) {
    if (get_gametime() - g_flLastEffect[id] < FX_COOLDOWN)
        return false

    
return true

Fakat bu şekilde önermem. Class sınıfların ana eklentileri düzenlersen daha verimli olur.
✦ Discord: Osmanbnm ✦
#5
"Spr dosyasına gerek yok eklenti ile yapabilirsin." demişsiniz fakat buradada spr kullanılmış?
Kod:
sprites/shockwave.spr
#6
(07-03-2026, 23:43)Merhabalarr Adlı Kullanıcıdan Alıntı: "Spr dosyasına gerek yok eklenti ile yapabilirsin."  demişsiniz fakat buradada spr kullanılmış?
Kod:
sprites/shockwave.spr

O yükleme gerektirmeyen bir .spr uzantılı dosya ve .spr ile özelleştirilme yapılırsa diye kullanılmış kod.
✦ Discord: Osmanbnm ✦
#7
ScreenFade sadece düz renk veriyor, o alev dokusunu yakalamak paylaştığın sistemle zor. shockwave.spr zaten yerdeki halka efekti için kalıyor. Bir .spr dosyasını ekrana vignette gibi sabitlemek için elinde şu tarz bir kod var mı? Senin attığında zaten oyunun kendi dosyası olduğu için indirme yaptırmıyor; evet ama elinde bir .spr olmadan, oyunun kendi dosyasıyla efekt vererek bunları yapamazsın. Resimde çıkan .spr'ın yabancı forumlarda paylaşılmış hali var.
Kod:
message_begin(MSG_ONE, get_user_msgid("StatusIcon"), {0,0,0}, id);
write_byte(1);
write_string("sprite_adi");
write_byte(255); write_byte(0); write_byte(0);
message_end();

#8
(08-03-2026, 14:05)Merhabalarr Adlı Kullanıcıdan Alıntı: ScreenFade sadece düz renk veriyor, o alev dokusunu yakalamak paylaştığın sistemle zor. shockwave.spr zaten yerdeki halka efekti için kalıyor. Bir .spr dosyasını ekrana vignette gibi sabitlemek için elinde şu tarz bir kod var mı? Senin attığında zaten oyunun kendi dosyası olduğu için indirme yaptırmıyor; evet ama elinde bir .spr olmadan, oyunun kendi dosyasıyla efekt vererek bunları yapamazsın. Resimde çıkan .spr'ın yabancı forumlarda paylaşılmış hali var.
Kod:
message_begin(MSG_ONE, get_user_msgid("StatusIcon"), {0,0,0}, id);
write_byte(1);
write_string("sprite_adi");
write_byte(255); write_byte(0); write_byte(0);
message_end();


3d formatını 2d formati ile nasıl yakalamayı düşünüyorsun ? 😄
 
Ayrıca o kod örnek olarak paylaşıldı ve class sinifları görmeden tahmini eklentiler yapabilirsin. O görseller sabit olmayan görseller yetenek süresi göre gel/git mevcut. 
Ayrıca dosya yükleme kısmından gerekli .spr ve .sma dosyalarını yükleyerek konunun çözülmesi katkıda bulunabilirsin.
✦ Discord: Osmanbnm ✦
#9
StatusIcon kodu aslında 2D'dir çünkü o resim sadece senin ekranına camın üzerine yapıştırılmış gibi Kalır Yönlendirilmiş Sprite kullanmam 3d oluyorsa tamamdır siz arkadaşa bu konuda yardımcı olabilirsiniz ama bu şekilde konuyu çözemezsin insanlar bilgilensin diye yazıyorum bunuda iyi forumlar.
Son Düzenleme: 08-03-2026, 14:44, Düzenleyen: Merhabalarr.
#10
Konunuz "Çözülmüş İsteklere" taşınmıştır.
Steam:Tıkla • Discord: lynchk

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

Yorum yapmak için üye olmanız gerekiyor

ya da