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

https://discord.gg/43gGDQe6tS

Spawn Koruma

Eklenti sorunlarınız ve özel eklenti istekleriniz

Moderatör: Moderatörler


Konu Sahibi
` White*
Mesajlar: 500
Kayıt: Çrş Tem 24, 2019 9:04 pm
Server Ip/DNS: Cs1453.CSDuragi.COM

Spawn Koruma

Mesaj gönderen ` White* »

Oyuncu doğduğunda 5 saniye hasar alamayacak ancak 3 saniye sonra hasar verebilecek.

Bu tarz bir eklenti arıyorum yardımcı olur musunuz?

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

heaveNN
Mesajlar: 314
Kayıt: Prş Ağu 22, 2019 11:11 pm
Clan İsmi: RedDawn

Spawn Koruma

Mesaj gönderen heaveNN »

Denemedim.

Kod: Tümünü seç

#include <amxmodx>
#include <reapi>

new bool:Koruma[MAX_PLAYERS+1],bool:SaldiriBlock[MAX_PLAYERS+1],Float:korumasuresi,Float:saldiriengelsuresi;

public plugin_init() {
    register_plugin("Spawn Korumasi","1.0","heaveNN");

    RegisterHookChain(RG_CBasePlayer_TakeDamage,"TakeDamagePre",.post=false);
    RegisterHookChain(RG_CBasePlayer_Spawn,"PlayerSpawn",.post=true);

    bind_pcvar_float(create_cvar("spawnkoruma_suresi","5",_,_,true,0.0),korumasuresi);
    bind_pcvar_float(create_cvar("saldiriengel_suresi","3",_,_,true,0.0),saldiriengelsuresi);
}

public client_disconnected(id) {
    if(task_exists(id)) remove_task(id);
}

public TakeDamagePre(const victim,iInflictor,attacker,Float:flDamage,bitsDamageType) {
    if(!victim || !is_user_connected(attacker) || victim == attacker) return HC_CONTINUE;
    if(Koruma[victim] || SaldiriBlock[attacker]) return HC_SUPERCEDE;
    return HC_CONTINUE;
}

public PlayerSpawn(const id) {
    if(!is_user_alive(id)) return;
    if(korumasuresi) {
        Koruma[id] = true;
        set_task(korumasuresi,"korumakaldir",id);
    }
    if(korumasuresi) {
        SaldiriBlock[id] = true;
        set_task(saldiriengelsuresi,"saldiriengelkaldir",id);
    }
}

public korumakaldir(id) {
    if(Koruma[id]) Koruma[id] = false;
}

public saldiriengelkaldir(id) {
    if(SaldiriBlock[id]) SaldiriBlock[id] = false;
}

Kod: Tümünü seç

amx_cvar spawnkoruma_suresi 5 ; 0 olursa spawn koruması olmaz
amx_cvar saldiriengel_suresi 3 ; 0 olursa saldiri engeli olmaz

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

bestcore
Mesajlar: 1625
Kayıt: Cmt Eyl 30, 2017 12:44 pm
Konum: Samsun

Spawn Koruma

Mesaj gönderen bestcore »

İstersen bunu da kullanabilirsin, denemedim.

Kod: Tümünü seç

#pragma semicolon 1

#include <amxmodx>
#include <reapi>

enum (+= 1337)
{
	TASK_GOD,
	TASK_ATTACKBLOCK
}

enum _:boolEnum
{
	blGod,
	blAttackBlock
};
new g_bools[boolEnum][MAX_PLAYERS+1];

public plugin_init()
{
	register_plugin("Round Start God and Attack Block", "0.1", "` BesTCore;");

	RegisterHookChain(RG_CBasePlayer_Spawn, "RG_CBasePlayer_Spawn_Post", .post = true);
	RegisterHookChain(RG_CSGameRules_FPlayerCanTakeDamage, "RG_CSGameRules_FPlayerCanTakeDamage_Pre", .post = false);
}
public RG_CSGameRules_FPlayerCanTakeDamage_Pre(const id, const attacker)
{
	if(g_bools[attacker][blAttackBlock])
	{
		SetHookChainReturn(ATYPE_INTEGER, false);
		return HC_SUPERCEDE;
	}
	return HC_CONTINUE;
}
public RG_CBasePlayer_Spawn_Post(const id)
{
	if(get_member(id, m_bJustConnected))
	{
		return;
	}

	g_bools[blGod][id] = true;
	set_entvar(id, var_takedamage, DAMAGE_NO);

	g_bools[blAttackBlock][id] = true;

	remove_task();

	set_task(5.0, "GodOff", id + TASK_GOD);
	set_task(3.0, "AttackBlockOff", id + TASK_ATTACKBLOCK);
}
public GodOff(Taskid)
{
	new id = Taskid - TASK_GOD;

	set_entvar(id, var_takedamage, DAMAGE_AIM);
}
public AttackBlockOff(Taskid)
{
	new id = Taskid - TASK_ATTACKBLOCK;

	g_bools[blAttackBlock][id] = false;
}
public client_disconnected(id)
{
	g_bools[blGod][id] = false;
	g_bools[blAttackBlock][id] = false;

	remove_task();
}

Link:
Linklerini gizle
Linki Kopyala

Konu Sahibi
` White*
Mesajlar: 500
Kayıt: Çrş Tem 24, 2019 9:04 pm
Server Ip/DNS: Cs1453.CSDuragi.COM

Spawn Koruma

Mesaj gönderen ` White* »

Teşekkür ederim her 2nize de.

Link:
Linklerini gizle
Linki Kopyala
Cevapla