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

https://discord.gg/43gGDQe6tS

Moda uyarlanmış eklentiyi normale çevirme

Eklenti sorunlarınız ve özel eklenti istekleriniz

Moderatör: Moderatörler


Konu Sahibi
seating
Mesajlar: 108
Kayıt: Cmt Kas 18, 2017 5:35 pm

Moda uyarlanmış eklentiyi normale çevirme

Mesaj gönderen seating »

Merhaba Bir Eklenti Mevcut ZP Moduna Uyarlanmış Sanırım İçinde ZP EXTRA Falan Filan Diye Geçiyor MOD Olmadan Çalışmıyor Zaten Rica Etsem Mod Olarak Değil de Normal Olarak Kullabilir Hale Getirilebilir mi Acaba ?
amxx_grenade_molotov.sma
Bu mesaja eklenen dosyaları görüntülemek için gerekli izinlere sahip değilsiniz.

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

orucoglukayra
Mesajlar: 209
Kayıt: Pzr Haz 09, 2019 2:48 pm
İletişim:

MODA UYARLANMIŞ EKLENTİYİ NORMALE ÇEVİRME

Mesaj gönderen orucoglukayra »

Kod: Tümünü seç

#define ZP_SUPPORT // Поддержка Zombie Plague 4.3
ZP Modu kapatmak isterseniz bu satırın başına // koyabilirsiniz.

Link:
Linklerini gizle
Linki Kopyala

Konu Sahibi
seating
Mesajlar: 108
Kayıt: Cmt Kas 18, 2017 5:35 pm

MODA UYARLANMIŞ EKLENTİYİ NORMALE ÇEVİRME

Mesaj gönderen seating »

Teşekkürler Oldu :) bu plugini cvara bağlama şansımız var mı ? para kesmesini sağlamam lazım bir de sadece silah alınan yerde alınması lazım ayrıca sınırsız şekilde alımı sağlanıyor 1 e düşürmek lazım :/

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

orucoglukayra
Mesajlar: 209
Kayıt: Pzr Haz 09, 2019 2:48 pm
İletişim:

MODA UYARLANMIŞ EKLENTİYİ NORMALE ÇEVİRME

Mesaj gönderen orucoglukayra »

İsteklerini anlaşılır bir dilde, tek tek yazarsan yardımcı olmaya çalışırım.
Cvardan kastın nedir ?
Molotof aldığı zaman paranın mı eksilmesini istiyorsun ?
Molotof limiti olsun, oyuncular bir roundda bir kez mi alabilsin istiyorsun ?
Ve buyzone dışında satın almalarını engellemek mi istiyorsun ?

Link:
Linklerini gizle
Linki Kopyala

Konu Sahibi
seating
Mesajlar: 108
Kayıt: Cmt Kas 18, 2017 5:35 pm

MODA UYARLANMIŞ EKLENTİYİ NORMALE ÇEVİRME

Mesaj gönderen seating »

Cvar dan kastım şu şekilde ;

Molotof aldığı zaman paranın eksilmesini istiyorum.
Molotof limiti olsun her round 1 kez değil de oyuncu üzerinde molotof varken 2. yi alamasın istiyorum
Buyzone Dışında da alınmamasını istiyorum.

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

orucoglukayra
Mesajlar: 209
Kayıt: Pzr Haz 09, 2019 2:48 pm
İletişim:

MODA UYARLANMIŞ EKLENTİYİ NORMALE ÇEVİRME

Mesaj gönderen orucoglukayra »

Kod: Tümünü seç

bind_pcvar_num(create_cvar("molotof_ucret", "800"), cvars[0]);
:hl: Ücret ve limit ekledim.Buyzone hakkında bir bilgim yok.Araştıracağım.

Edit : Mesajı her elde bir olarak düzenlemişim fakat aynı mantığa çıkacak. "Her Elde Yanlizca 1 Molotof Alabilirsin" mesajını editleyerek zaten molotofun var gibi bişey yapabilirsin.

Kod: Tümünü seç

#include < amxmodx >
#include < fakemeta_util >
#include < hamsandwich >
#include < reapi >

#define ZP_SUPPORT // Поддержка Zombie Plague 4.3

#if defined ZP_SUPPORT
	#include < zombieplague >
#endif

#define linux_diff_weapon		4
#define linux_diff_player		5

// CBasePlayerItem
#define m_pPlayer				41

#define MAX_CLIENTS				32
#define NADE_TYPE				1337

#define FLAME_CLASSNAME			"ent_flame" // Класснейм огня
#define FLAME_DURATION			5.0 // Сколько будет идти горение
#define FLAME_TIMERESET			0.2 // Через сколько будет наносится урон

// Урон от огня
#if defined ZP_SUPPORT
	#define FLAME_DAMAGE		random_float(30.0, 50.0)
#else
	#define FLAME_DAMAGE		random_float(3.0, 5.0)
#endif

#define GRENADE_VIEW_MODEL		"models/x/v_molotov.mdl"
#define GRENADE_PLAYER_MODEL	"models/x/p_molotov.mdl"
#define GRENADE_WORLD_MODEL		"models/x/w_molotov.mdl"
#define GRENADE_MODEL_BODY		0

#define GRENADE_EXPLODE_SOUND	"x/molotov_exp.wav"

#define WEAPON_OLD				"weapon_smokegrenade"
#define WEAPON_NEW				"x/weapon_molotov"
#define WEAPON_HUD 				"sprites/x/640hudx1.spr"

new const iWeaponList[] = {  
	13, 1,  -1, -1, 3, 3, 9,  24 // weapon_smokegrenade
}


#if defined ZP_SUPPORT
	new g_iItemID;
#endif

new g_iThinkTimes[512];
new g_iszModelIndexSprite;
new g_iUserHasMolotov[MAX_CLIENTS + 1];
new cvars[2];

public plugin_init()
{
	register_plugin("[AMXX] Grenade: Molotov", "1.1", "xUnicorn (t3rkecorejz)");

	RegisterHam(Ham_Killed, "player", "CPlayer__Killed_Post", .Post = 1);
	RegisterHam(Ham_Touch, "grenade", "CGrenade__Touch_Pre", .Post = 0);
	RegisterHam(Ham_Think, "grenade", "CGrenade__Think_Pre", .Post = 0);
	RegisterHam(Ham_Think, "info_target", "CEntity__Think_Pre", .Post = 0);
	RegisterHam(Ham_Item_Deploy, WEAPON_OLD, "CGrenade__Item_Deploy_Post", .Post = 1);
	RegisterHam(Ham_Item_AddToPlayer, WEAPON_OLD, "CGrenade__Item_AddToPlayer_Post", .Post = 1);

	bind_pcvar_num(create_cvar("molotof_ucret", "800"), cvars[0]);

	register_forward(FM_SetModel, "FM_Hook_SetModel_Pre", ._post = 0);

	register_clcmd(WEAPON_NEW, "HookSelect");

	#if defined ZP_SUPPORT
		g_iItemID = zp_register_extra_item("Molotov", 10, ZP_TEAM_HUMAN);
	#else
		register_clcmd("say molotov", "Command_GiveMolotov");
	#endif
}

public plugin_precache()
{
	new szBuffer[64]; formatex(szBuffer, charsmax(szBuffer), "sprites/%s.txt", WEAPON_NEW);

	engfunc(EngFunc_PrecacheGeneric, szBuffer);
	engfunc(EngFunc_PrecacheGeneric, WEAPON_HUD);
	
	g_iszModelIndexSprite = engfunc(EngFunc_PrecacheModel, "sprites/x/flame.spr");

	engfunc(EngFunc_PrecacheModel, GRENADE_VIEW_MODEL);
	engfunc(EngFunc_PrecacheModel, GRENADE_PLAYER_MODEL);
	engfunc(EngFunc_PrecacheModel, GRENADE_WORLD_MODEL);

	engfunc(EngFunc_PrecacheSound, GRENADE_EXPLODE_SOUND);
}

public client_disconnected(iPlayer) g_iUserHasMolotov[iPlayer] = 0;

#if defined ZP_SUPPORT
	public zp_extra_item_selected(iPlayer, iItemID)
	{
		if(iItemID == g_iItemID)
			Command_GiveMolotov(iPlayer);
	}
#endif

public HookSelect(iPlayer) 
{
	engclient_cmd(iPlayer, WEAPON_OLD);
	return PLUGIN_HANDLED;
}

public Command_GiveMolotov(iPlayer)
{
	if(!is_user_alive(iPlayer))
		return PLUGIN_HANDLED;

	if(get_member(iPlayer, m_iAccount) < cvars[0])
	{
		client_print_color(iPlayer,iPlayer, "^1[^3MOLOTOF^1] Molotof Almak Icin Yeterli Paran Yok ^1!");
		return PLUGIN_HANDLED;
	}

	if(g_iUserHasMolotov[iPlayer] > 1)
	{
		client_print_color(iPlayer,iPlayer, "^1[^3MOLOTOF^1] Her Elde Yanlizca 1 Molotof Alabilirsin ^1!");
		return PLUGIN_HANDLED;
	}

	if(user_has_weapon(iPlayer, CSW_SMOKEGRENADE))
	{
		g_iUserHasMolotov[iPlayer]++;
		rg_add_account(iPlayer, get_member(iPlayer, m_iAccount) - cvars[0], AS_SET);
		ExecuteHamB(Ham_GiveAmmo, iPlayer, 1, "SmokeGrenade", 32);
		emit_sound(iPlayer, CHAN_ITEM, "items/9mmclip1.wav", VOL_NORM, ATTN_NORM, 0, PITCH_NORM);
	}

	if(CPlayer__MakeWeapon(iPlayer)) 
	{
		g_iUserHasMolotov[iPlayer]++;
		emit_sound(iPlayer, CHAN_ITEM, "items/gunpickup2.wav", VOL_NORM, ATTN_NORM, 0, PITCH_NORM);
	}
	#if defined ZP_SUPPORT
		else return ZP_PLUGIN_HANDLED;
	#else
		else return PLUGIN_HANDLED;
	#endif

	return PLUGIN_HANDLED;
}

public CPlayer__Killed_Post(iVictim) g_iUserHasMolotov[iVictim] = 0;
public CGrenade__Touch_Pre(iEntity)
{
	if(!pev_valid(iEntity))
		return HAM_IGNORED;

	if(pev(iEntity, pev_flTimeStepSound) == NADE_TYPE)
	{
		static Float: vecOrigin[3];
		pev(iEntity, pev_origin, vecOrigin);

		if(engfunc(EngFunc_PointContents, vecOrigin) == CONTENTS_WATER) {
			set_pev(iEntity, pev_flags, FL_KILLME);
			return HAM_IGNORED;
		}

		set_pev(iEntity, pev_dmgtime, get_gametime());
	}

	return HAM_IGNORED;
}

public CGrenade__Think_Pre(iEntity)
{
	if(!pev_valid(iEntity)) 
		return HAM_IGNORED;

	static Float: flDamageTime; pev(iEntity, pev_dmgtime, flDamageTime);
	
	if(flDamageTime > get_gametime())
		return HAM_IGNORED;

	if(pev(iEntity, pev_flTimeStepSound) == NADE_TYPE)
	{
		static Float: vecOrigin[3];
		pev(iEntity, pev_origin, vecOrigin);

		if(engfunc(EngFunc_PointContents, vecOrigin) == CONTENTS_WATER) {
			set_pev(iEntity, pev_flags, FL_KILLME);
			return HAM_IGNORED;
		}

		MolotovExplode(iEntity);
		return HAM_SUPERCEDE;
	}

	return HAM_IGNORED;
}

MolotovExplode(iEntity)
{
	if(iEntity < 0)
		return;
	
	static Float: vecOrigin[3];
	pev(iEntity, pev_origin, vecOrigin);

	emit_sound(iEntity, CHAN_WEAPON, GRENADE_EXPLODE_SOUND, VOL_NORM, ATTN_NORM, 0, PITCH_NORM);

	static iReference;

	new iOwner; iOwner = pev(iEntity, pev_owner);

	if(iReference || (iReference = engfunc(EngFunc_AllocString, "info_target")))
	{
		new iFlameEntity = engfunc(EngFunc_CreateNamedEntity, iReference);

		g_iThinkTimes[iFlameEntity] = 0;

		set_pev(iFlameEntity, pev_classname, FLAME_CLASSNAME);
		set_pev(iFlameEntity, pev_solid, SOLID_TRIGGER);
		set_pev(iFlameEntity, pev_movetype, MOVETYPE_TOSS);
		set_pev(iFlameEntity, pev_effects, EF_NODRAW);
		set_pev(iFlameEntity, pev_owner, iOwner);
		set_pev(iFlameEntity, pev_nextthink, get_gametime() + FLAME_TIMERESET);

		engfunc(EngFunc_SetModel, iFlameEntity, "models/w_ak47.mdl");
		engfunc(EngFunc_SetOrigin, iFlameEntity, vecOrigin);
	}

	message_begin(MSG_BROADCAST,SVC_TEMPENTITY);
	write_byte(TE_SPRITETRAIL);
	engfunc(EngFunc_WriteCoord, vecOrigin[0]);
	engfunc(EngFunc_WriteCoord, vecOrigin[1]);
	engfunc(EngFunc_WriteCoord, vecOrigin[2] + 100.0);
	engfunc(EngFunc_WriteCoord, vecOrigin[0]);
	engfunc(EngFunc_WriteCoord, vecOrigin[1]);
	engfunc(EngFunc_WriteCoord, vecOrigin[2] + 30.0);
	write_short(g_iszModelIndexSprite);
	write_byte(50);
	write_byte(random_num(17, 20));
	write_byte(random_num(4, 6));
	write_byte(15);
	write_byte(10);
	message_end();

	set_pev(iEntity, pev_flags, FL_KILLME);
}

public CEntity__Think_Pre(iEntity)
{
	if(!pev_valid(iEntity))
		return HAM_IGNORED;

	static iVictim = -1;

	new szClassName[32], vecOrigin[3], iOwner;
	pev(iEntity, pev_classname, szClassName, charsmax(szClassName));

	if(equal(szClassName, FLAME_CLASSNAME))
	{
		pev(iEntity, pev_origin, vecOrigin);
		iOwner = pev(iEntity, pev_owner);

		if(g_iThinkTimes[iEntity] == floatround(FLAME_DURATION / FLAME_TIMERESET))
		{
			set_pev(iEntity, pev_flags, FL_KILLME);

			return HAM_IGNORED;
		}

		while((iVictim = engfunc(EngFunc_FindEntityInSphere, iVictim, vecOrigin, 100.0)))
		{
			if(iOwner == iVictim || !is_user_alive(iVictim))
				continue;

			#if defined ZP_SUPPORT
				if(zp_get_user_zombie(iOwner) || !zp_get_user_zombie(iVictim))
					continue;
			#endif

			ExecuteHamB(Ham_TakeDamage, iVictim, iEntity, iOwner, FLAME_DAMAGE, DMG_BURN | DMG_NEVERGIB);
		}

		g_iThinkTimes[iEntity] += 1;
		set_pev(iEntity, pev_nextthink, get_gametime() + FLAME_TIMERESET);
	}

	return HAM_IGNORED;
}

public CGrenade__Item_Deploy_Post(iEntity)
{
	static iPlayer; iPlayer = get_pdata_cbase(iEntity, m_pPlayer, linux_diff_weapon);

	#if defined ZP_SUPPORT
		if(zp_get_user_zombie(iPlayer))
			return;
	#endif

	if(!g_iUserHasMolotov[iPlayer]) 
		return;

	set_pev(iPlayer, pev_viewmodel2, GRENADE_VIEW_MODEL);
	set_pev(iPlayer, pev_weaponmodel2, GRENADE_PLAYER_MODEL);
}

public CGrenade__Item_AddToPlayer_Post(iItem, iPlayer) p_set_user_weaponlist(iPlayer, g_iUserHasMolotov[iPlayer]);
public FM_Hook_SetModel_Pre(iEntity, const szModel[])
{
	if(!pev_valid(iEntity)) 
		return FMRES_IGNORED;

	static Float: flDamageTime; pev(iEntity, pev_dmgtime, flDamageTime);
	
	if(flDamageTime == 0.0)
		return FMRES_IGNORED;

	static iOwner; iOwner = pev(iEntity, pev_owner);

	if(equal(szModel, "models/w_smokegrenade.mdl"))
	{
		if(g_iUserHasMolotov[iOwner])
		{
			engfunc(EngFunc_SetModel, iEntity, GRENADE_WORLD_MODEL);
			
			set_pev(iEntity, pev_body, GRENADE_MODEL_BODY);
			set_pev(iEntity, pev_flTimeStepSound, NADE_TYPE);

			g_iUserHasMolotov[iOwner] -= 1;

			return FMRES_SUPERCEDE;
		}
	}

	return FMRES_IGNORED;
}

public CPlayer__MakeWeapon(iPlayer)
{
	static iEntity, g_AllocString_E;

	if(g_AllocString_E || (g_AllocString_E = engfunc(EngFunc_AllocString, WEAPON_OLD)))
		iEntity = engfunc(EngFunc_CreateNamedEntity, g_AllocString_E);

	if(iEntity <= 0) 
		return 0;

	g_iUserHasMolotov[iPlayer]++;
	set_pev(iEntity, pev_spawnflags, SF_NORESPAWN);
	ExecuteHam(Ham_Spawn, iEntity);

	if(!ExecuteHamB(Ham_AddPlayerItem, iPlayer, iEntity)) 
	{
		set_pev(iEntity, pev_flags, FL_KILLME);
		return 0;
	}

	ExecuteHamB(Ham_Item_AttachToPlayer, iEntity, iPlayer);
	return iEntity;
}

stock p_set_user_weaponlist(iPlayer, iList) {
	message_begin(MSG_ONE, get_user_msgid("WeaponList"), _, iPlayer);
	write_string(iList ? WEAPON_NEW : WEAPON_OLD);
	write_byte(iWeaponList[0]);
	write_byte(iWeaponList[1]);
	write_byte(iWeaponList[2]);
	write_byte(iWeaponList[3]);
	write_byte(iWeaponList[4]);
	write_byte(iWeaponList[5]);
	write_byte(iWeaponList[6]);
	write_byte(iWeaponList[7]);
	message_end();
}

Link:
Linklerini gizle
Linki Kopyala

Konu Sahibi
seating
Mesajlar: 108
Kayıt: Cmt Kas 18, 2017 5:35 pm

MODA UYARLANMIŞ EKLENTİYİ NORMALE ÇEVİRME

Mesaj gönderen seating »

Kod: Tümünü seç

/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <fun>

#define PLUGIN "New Plug-In"
#define VERSION "1.0"
#define AUTHOR "author"

new gHpBombPara

public plugin_init() {
    register_plugin(PLUGIN, VERSION, AUTHOR)
    
    register_clcmd("say /hpbomb","givehpbomb")
    register_clcmd("say !hpbomb","givehpbomb")
    register_clcmd("say .hpbomb","givehpbomb")
    
    
    gHpBombPara = register_cvar("amx_hpbomb","5000")
    
}

public givehpbomb(id) {
    new HpBombPara = get_pcvar_num(gHpBombPara)
    if(cs_get_user_money(id) < HpBombPara) {
        client_print(id,print_center,"Yeterli Paran Yok! %d$ Gerekli",HpBombPara)
        return PLUGIN_HANDLED
    }
    if(!is_user_alive(id)) {
        return PLUGIN_HANDLED
    }
    if(user_has_weapon(id,9)) {
        client_print(id,print_center,"Hp Bombasina Zaten Sahipsin! Daha Fazlasini Alamazsin.")
        return PLUGIN_HANDLED
    }
    if(cs_get_user_buyzone(id) != 1) {
        client_print(id,print_center,"Burada Bomba Alamazsin! (Satin Alma Bolgesine Git.)")
        return PLUGIN_HANDLED
    }
    if(cs_get_user_hasprim(id) != 0) {
        client_print(id,print_center,"Zaten Bomban Var, Fazladan Alamazsin!")
        return PLUGIN_HANDLED
    }
    if(cs_get_user_vip(id) != 0) {
        client_print(id,print_center,"VIP'ler Bu Komutu Kullanamaz!")
        return PLUGIN_HANDLED
    }
    client_print(id,print_center,"Hp Bombasi Satin Aldiniz!")
    cs_set_user_money(id,cs_get_user_money(id) - HpBombPara)
    give_item(id,"weapon_smokegrenade")
    return PLUGIN_HANDLED
}

stock has_user_secondary( index ) { 
    
    new weapons[32],inum; 
    get_user_weapons(index,weapons,inum) 
    for( new i; i<inum ; i++ ) { 
        switch(weapons[i]) { 
            case CSW_SMOKEGRENADE: { 
                return 1; 
            } 
        } 
    } 
    return 0; 
    
} 
Bizde şöyle bir eklenti mevcut smoke bombasının yerine geçen bir bomba plugini kullanıyoruz say dan komutla almaya bağladık belki yardımcı olur molotov plugini komutu uygulamadıkça başka bir bombanın yerine geçmediği için içine eklememiz lazım ama çok fazla bilgim yok benimde :/

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

orucoglukayra
Mesajlar: 209
Kayıt: Pzr Haz 09, 2019 2:48 pm
İletişim:

MODA UYARLANMIŞ EKLENTİYİ NORMALE ÇEVİRME

Mesaj gönderen orucoglukayra »

Buyur.

Kod: Tümünü seç

#include < amxmodx >
#include < fakemeta_util >
#include < hamsandwich >
#include < reapi >
#include < cstrike >

#define ZP_SUPPORT // Поддержка Zombie Plague 4.3

#if defined ZP_SUPPORT
	#include < zombieplague >
#endif

#define linux_diff_weapon		4
#define linux_diff_player		5

// CBasePlayerItem
#define m_pPlayer				41

#define MAX_CLIENTS				32
#define NADE_TYPE				1337

#define FLAME_CLASSNAME			"ent_flame" // Класснейм огня
#define FLAME_DURATION			5.0 // Сколько будет идти горение
#define FLAME_TIMERESET			0.2 // Через сколько будет наносится урон

// Урон от огня
#if defined ZP_SUPPORT
	#define FLAME_DAMAGE		random_float(30.0, 50.0)
#else
	#define FLAME_DAMAGE		random_float(3.0, 5.0)
#endif

#define GRENADE_VIEW_MODEL		"models/x/v_molotov.mdl"
#define GRENADE_PLAYER_MODEL	"models/x/p_molotov.mdl"
#define GRENADE_WORLD_MODEL		"models/x/w_molotov.mdl"
#define GRENADE_MODEL_BODY		0

#define GRENADE_EXPLODE_SOUND	"x/molotov_exp.wav"

#define WEAPON_OLD				"weapon_smokegrenade"
#define WEAPON_NEW				"x/weapon_molotov"
#define WEAPON_HUD 				"sprites/x/640hudx1.spr"

new const iWeaponList[] = {  
	13, 1,  -1, -1, 3, 3, 9,  24 // weapon_smokegrenade
}


#if defined ZP_SUPPORT
	new g_iItemID;
#endif

new g_iThinkTimes[512];
new g_iszModelIndexSprite;
new g_iUserHasMolotov[MAX_CLIENTS + 1];
new cvars[2];

public plugin_init()
{
	register_plugin("[AMXX] Grenade: Molotov", "1.1", "xUnicorn (t3rkecorejz)");

	RegisterHam(Ham_Killed, "player", "CPlayer__Killed_Post", .Post = 1);
	RegisterHam(Ham_Touch, "grenade", "CGrenade__Touch_Pre", .Post = 0);
	RegisterHam(Ham_Think, "grenade", "CGrenade__Think_Pre", .Post = 0);
	RegisterHam(Ham_Think, "info_target", "CEntity__Think_Pre", .Post = 0);
	RegisterHam(Ham_Item_Deploy, WEAPON_OLD, "CGrenade__Item_Deploy_Post", .Post = 1);
	RegisterHam(Ham_Item_AddToPlayer, WEAPON_OLD, "CGrenade__Item_AddToPlayer_Post", .Post = 1);

	bind_pcvar_num(create_cvar("molotof_ucret", "800"), cvars[0]);

	register_forward(FM_SetModel, "FM_Hook_SetModel_Pre", ._post = 0);

	register_clcmd(WEAPON_NEW, "HookSelect");

	#if defined ZP_SUPPORT
		g_iItemID = zp_register_extra_item("Molotov", 10, ZP_TEAM_HUMAN);
	#else
		register_clcmd("say molotov", "Command_GiveMolotov");
	#endif
}

public plugin_precache()
{
	new szBuffer[64]; formatex(szBuffer, charsmax(szBuffer), "sprites/%s.txt", WEAPON_NEW);

	engfunc(EngFunc_PrecacheGeneric, szBuffer);
	engfunc(EngFunc_PrecacheGeneric, WEAPON_HUD);
	
	g_iszModelIndexSprite = engfunc(EngFunc_PrecacheModel, "sprites/x/flame.spr");

	engfunc(EngFunc_PrecacheModel, GRENADE_VIEW_MODEL);
	engfunc(EngFunc_PrecacheModel, GRENADE_PLAYER_MODEL);
	engfunc(EngFunc_PrecacheModel, GRENADE_WORLD_MODEL);

	engfunc(EngFunc_PrecacheSound, GRENADE_EXPLODE_SOUND);
}

public client_disconnected(iPlayer) g_iUserHasMolotov[iPlayer] = 0;

#if defined ZP_SUPPORT
	public zp_extra_item_selected(iPlayer, iItemID)
	{
		if(iItemID == g_iItemID)
			Command_GiveMolotov(iPlayer);
	}
#endif

public HookSelect(iPlayer) 
{
	engclient_cmd(iPlayer, WEAPON_OLD);
	return PLUGIN_HANDLED;
}

public Command_GiveMolotov(iPlayer)
{
    if(!is_user_alive(iPlayer))
        return PLUGIN_HANDLED;

    if(get_member(iPlayer, m_iAccount) < cvars[0])
    {
        client_print_color(iPlayer,iPlayer, "^1[^3MOLOTOF^1] Molotof Almak Icin Yeterli Paran Yok ^1!");
        return PLUGIN_HANDLED;
    }

    if(cs_get_user_buyzone(iPlayer) != 1) 
    {
        client_print_color(iPlayer,iPlayer, "^1[^3MOLOTOF^1] Sadece satin alma yerinde molotof alabilirsin ^1!");
        return PLUGIN_HANDLED;
    }

    if(user_has_weapon(iPlayer, CSW_SMOKEGRENADE))
    {
        client_print_color(iPlayer,iPlayer, "^1[^3MOLOTOF^1] Molotof'a zaten sahipsin ^1!");
        return PLUGIN_HANDLED;
    }

    if(CPlayer__MakeWeapon(iPlayer)) 
    {
        g_iUserHasMolotov[iPlayer]++;
        rg_add_account(iPlayer, get_member(iPlayer, m_iAccount) - cvars[0], AS_SET);
        emit_sound(iPlayer, CHAN_ITEM, "items/gunpickup2.wav", VOL_NORM, ATTN_NORM, 0, PITCH_NORM);
    }

    #if defined ZP_SUPPORT
        else return ZP_PLUGIN_HANDLED;
    #else
        else return PLUGIN_HANDLED;
    #endif

    return PLUGIN_HANDLED;
}

public CPlayer__Killed_Post(iVictim) g_iUserHasMolotov[iVictim] = 0;
public CGrenade__Touch_Pre(iEntity)
{
	if(!pev_valid(iEntity))
		return HAM_IGNORED;

	if(pev(iEntity, pev_flTimeStepSound) == NADE_TYPE)
	{
		static Float: vecOrigin[3];
		pev(iEntity, pev_origin, vecOrigin);

		if(engfunc(EngFunc_PointContents, vecOrigin) == CONTENTS_WATER) {
			set_pev(iEntity, pev_flags, FL_KILLME);
			return HAM_IGNORED;
		}

		set_pev(iEntity, pev_dmgtime, get_gametime());
	}

	return HAM_IGNORED;
}

public CGrenade__Think_Pre(iEntity)
{
	if(!pev_valid(iEntity)) 
		return HAM_IGNORED;

	static Float: flDamageTime; pev(iEntity, pev_dmgtime, flDamageTime);
	
	if(flDamageTime > get_gametime())
		return HAM_IGNORED;

	if(pev(iEntity, pev_flTimeStepSound) == NADE_TYPE)
	{
		static Float: vecOrigin[3];
		pev(iEntity, pev_origin, vecOrigin);

		if(engfunc(EngFunc_PointContents, vecOrigin) == CONTENTS_WATER) {
			set_pev(iEntity, pev_flags, FL_KILLME);
			return HAM_IGNORED;
		}

		MolotovExplode(iEntity);
		return HAM_SUPERCEDE;
	}

	return HAM_IGNORED;
}

MolotovExplode(iEntity)
{
	if(iEntity < 0)
		return;
	
	static Float: vecOrigin[3];
	pev(iEntity, pev_origin, vecOrigin);

	emit_sound(iEntity, CHAN_WEAPON, GRENADE_EXPLODE_SOUND, VOL_NORM, ATTN_NORM, 0, PITCH_NORM);

	static iReference;

	new iOwner; iOwner = pev(iEntity, pev_owner);

	if(iReference || (iReference = engfunc(EngFunc_AllocString, "info_target")))
	{
		new iFlameEntity = engfunc(EngFunc_CreateNamedEntity, iReference);

		g_iThinkTimes[iFlameEntity] = 0;

		set_pev(iFlameEntity, pev_classname, FLAME_CLASSNAME);
		set_pev(iFlameEntity, pev_solid, SOLID_TRIGGER);
		set_pev(iFlameEntity, pev_movetype, MOVETYPE_TOSS);
		set_pev(iFlameEntity, pev_effects, EF_NODRAW);
		set_pev(iFlameEntity, pev_owner, iOwner);
		set_pev(iFlameEntity, pev_nextthink, get_gametime() + FLAME_TIMERESET);

		engfunc(EngFunc_SetModel, iFlameEntity, "models/w_ak47.mdl");
		engfunc(EngFunc_SetOrigin, iFlameEntity, vecOrigin);
	}

	message_begin(MSG_BROADCAST,SVC_TEMPENTITY);
	write_byte(TE_SPRITETRAIL);
	engfunc(EngFunc_WriteCoord, vecOrigin[0]);
	engfunc(EngFunc_WriteCoord, vecOrigin[1]);
	engfunc(EngFunc_WriteCoord, vecOrigin[2] + 100.0);
	engfunc(EngFunc_WriteCoord, vecOrigin[0]);
	engfunc(EngFunc_WriteCoord, vecOrigin[1]);
	engfunc(EngFunc_WriteCoord, vecOrigin[2] + 30.0);
	write_short(g_iszModelIndexSprite);
	write_byte(50);
	write_byte(random_num(17, 20));
	write_byte(random_num(4, 6));
	write_byte(15);
	write_byte(10);
	message_end();

	set_pev(iEntity, pev_flags, FL_KILLME);
}

public CEntity__Think_Pre(iEntity)
{
	if(!pev_valid(iEntity))
		return HAM_IGNORED;

	static iVictim = -1;

	new szClassName[32], vecOrigin[3], iOwner;
	pev(iEntity, pev_classname, szClassName, charsmax(szClassName));

	if(equal(szClassName, FLAME_CLASSNAME))
	{
		pev(iEntity, pev_origin, vecOrigin);
		iOwner = pev(iEntity, pev_owner);

		if(g_iThinkTimes[iEntity] == floatround(FLAME_DURATION / FLAME_TIMERESET))
		{
			set_pev(iEntity, pev_flags, FL_KILLME);

			return HAM_IGNORED;
		}

		while((iVictim = engfunc(EngFunc_FindEntityInSphere, iVictim, vecOrigin, 100.0)))
		{
			if(iOwner == iVictim || !is_user_alive(iVictim))
				continue;

			#if defined ZP_SUPPORT
				if(zp_get_user_zombie(iOwner) || !zp_get_user_zombie(iVictim))
					continue;
			#endif

			ExecuteHamB(Ham_TakeDamage, iVictim, iEntity, iOwner, FLAME_DAMAGE, DMG_BURN | DMG_NEVERGIB);
		}

		g_iThinkTimes[iEntity] += 1;
		set_pev(iEntity, pev_nextthink, get_gametime() + FLAME_TIMERESET);
	}

	return HAM_IGNORED;
}

public CGrenade__Item_Deploy_Post(iEntity)
{
	static iPlayer; iPlayer = get_pdata_cbase(iEntity, m_pPlayer, linux_diff_weapon);

	#if defined ZP_SUPPORT
		if(zp_get_user_zombie(iPlayer))
			return;
	#endif

	if(!g_iUserHasMolotov[iPlayer]) 
		return;

	set_pev(iPlayer, pev_viewmodel2, GRENADE_VIEW_MODEL);
	set_pev(iPlayer, pev_weaponmodel2, GRENADE_PLAYER_MODEL);
}

public CGrenade__Item_AddToPlayer_Post(iItem, iPlayer) p_set_user_weaponlist(iPlayer, g_iUserHasMolotov[iPlayer]);
public FM_Hook_SetModel_Pre(iEntity, const szModel[])
{
	if(!pev_valid(iEntity)) 
		return FMRES_IGNORED;

	static Float: flDamageTime; pev(iEntity, pev_dmgtime, flDamageTime);
	
	if(flDamageTime == 0.0)
		return FMRES_IGNORED;

	static iOwner; iOwner = pev(iEntity, pev_owner);

	if(equal(szModel, "models/w_smokegrenade.mdl"))
	{
		if(g_iUserHasMolotov[iOwner])
		{
			engfunc(EngFunc_SetModel, iEntity, GRENADE_WORLD_MODEL);
			
			set_pev(iEntity, pev_body, GRENADE_MODEL_BODY);
			set_pev(iEntity, pev_flTimeStepSound, NADE_TYPE);

			g_iUserHasMolotov[iOwner] -= 1;

			return FMRES_SUPERCEDE;
		}
	}

	return FMRES_IGNORED;
}

public CPlayer__MakeWeapon(iPlayer)
{
	static iEntity, g_AllocString_E;

	if(g_AllocString_E || (g_AllocString_E = engfunc(EngFunc_AllocString, WEAPON_OLD)))
		iEntity = engfunc(EngFunc_CreateNamedEntity, g_AllocString_E);

	if(iEntity <= 0) 
		return 0;

	g_iUserHasMolotov[iPlayer]++;
	set_pev(iEntity, pev_spawnflags, SF_NORESPAWN);
	ExecuteHam(Ham_Spawn, iEntity);

	if(!ExecuteHamB(Ham_AddPlayerItem, iPlayer, iEntity)) 
	{
		set_pev(iEntity, pev_flags, FL_KILLME);
		return 0;
	}

	ExecuteHamB(Ham_Item_AttachToPlayer, iEntity, iPlayer);
	return iEntity;
}

stock p_set_user_weaponlist(iPlayer, iList) {
	message_begin(MSG_ONE, get_user_msgid("WeaponList"), _, iPlayer);
	write_string(iList ? WEAPON_NEW : WEAPON_OLD);
	write_byte(iWeaponList[0]);
	write_byte(iWeaponList[1]);
	write_byte(iWeaponList[2]);
	write_byte(iWeaponList[3]);
	write_byte(iWeaponList[4]);
	write_byte(iWeaponList[5]);
	write_byte(iWeaponList[6]);
	write_byte(iWeaponList[7]);
	message_end();
}

Link:
Linklerini gizle
Linki Kopyala

Konu Sahibi
seating
Mesajlar: 108
Kayıt: Cmt Kas 18, 2017 5:35 pm

Moda uyarlanmış eklentiyi normale çevirme

Mesaj gönderen seating »

Teşekkür Ederim Hatasız :)

Link:
Linklerini gizle
Linki Kopyala
Cevapla