OciXCrom's Custom Shop + API

Одобрените от нас плъгини. Моля, докладвайте ако забележите бъг с някой от плъгините в този раздел.
Аватар
iv69
Извън линия
Потребител
Потребител
Мнения: 744
Регистриран на: 17 Мар 2018, 15:34
Се отблагодари: 214 пъти
Получена благодарност: 39 пъти

OciXCrom's Custom Shop + API

Мнение от iv69 » 16 Апр 2019, 22:26

OciXCrom написа: 16 Апр 2019, 20:30

Код за потвърждение: Избери целия код

#include <amxmodx>
#include <fakemeta>
#include <fun>
#include <hamsandwich>
#include <cstrike>
#include <amxmisc>
#include <customshop>

#define is_valid_player(%1) (1 <= %1 <= 32)
#define PLUGIN "Golden Deagle"
#define VERSION "1.0"
#define AUTHOR "alicx"


new DEAGLE_V_MODEL[64] = "models/v_golden_deagle.mdl"
new DEAGLE_P_MODEL[64] = "models/p_golden_deagle.mdl"

/* Pcvars */
new cvar_dmgmultiplier, cvar_goldbullets,  cvar_custommodel, cvar_cost, cvar_bullets, cvar_keepdeagle, cvar_zoom_type;

new bool:g_HasDeagle[33]

new g_hasZoom[ 33 ]
new g_ZoomDist[ 33 ] = 0
new bullets[ 33 ]
new g_iDeagleItem

// Sprite
new m_spriteTexture

const Wep_deagle = ((1<<CSW_DEAGLE))


public plugin_init() {
	register_plugin(PLUGIN, VERSION, AUTHOR)

	// The Cvars //
	cvar_dmgmultiplier = register_cvar("goldendeagle_dmg_multiplier", "5")
	cvar_custommodel = register_cvar("goldendeagle_custom_model", "1")
	cvar_goldbullets = register_cvar("goldendeagle_gold_bullets", "1")
	cvar_cost = register_cvar("goldendeagle_cost", "4000")
	cvar_bullets = register_cvar("goldendeagle_bullets", "200")
	cvar_keepdeagle = register_cvar("goldendeagle_keep", "1")
	cvar_zoom_type = register_cvar("goldendeagle_zoom_type", "4")


	// Register The Buy Cmd
	register_concmd("amx_goldendeagle", "CmdGiveDeagle", ADMIN_BAN, "<name>")

	//Death Msg
	register_event("DeathMsg", "Death", "a")

	// Weapon Pick Up
	register_event("WeapPickup","checkModel","b","1=19")

	// Current Weapon Event
	register_event("CurWeapon", "make_tracer", "be", "1=1", "3>0")

	// Ham TakeDamage
	RegisterHam(Ham_TakeDamage, "player", "fw_TakeDamage")
	register_forward( FM_CmdStart, "fw_CmdStart")
	register_forward(FM_CmdStart, "fwCmdStart")
	RegisterHam(Ham_Spawn, "player", "fwHamPlayerSpawnPost", 1)
}

public plugin_precache()
{
	precache_model(DEAGLE_V_MODEL)
	precache_model(DEAGLE_P_MODEL)
	m_spriteTexture = precache_model("sprites/dot.spr")
	precache_sound("weapons/zoom.wav")
	g_iDeagleItem = cshop_register_item("golden_deagle", "Golden Deagle", get_pcvar_num(cvar_cost))
}

public cshop_item_removed(id, iItem)
{
	if(iItem == g_iDeagleItem)
	{
		g_HasDeagle[id] = false
	}
}

public client_connect(id)
{
	g_HasDeagle[id] = false
}

public client_disconnect(id)
{
	g_HasDeagle[id] = false
}

public Death()
{
	g_HasDeagle[read_data(2)] = false
}

public fwHamPlayerSpawnPost(id)
{
    if( !is_user_alive( id ) )
        return;

    if( get_pcvar_num( cvar_keepdeagle ) )
    {
        if( user_has_weapon( id, CSW_DEAGLE ) )
        {
            g_HasDeagle[id] = true
        }
        else {
            g_HasDeagle[id] = false;
        }
    }
    else {
        g_HasDeagle[id] = false;
    }
}

public checkModel(id)
{
	if ( !g_HasDeagle[id] )
		return PLUGIN_HANDLED

	new szWeapID = read_data(2)

	if ( szWeapID == CSW_DEAGLE && g_HasDeagle[id] == true && get_pcvar_num(cvar_custommodel) )
	{
		set_pev(id, pev_viewmodel2, DEAGLE_V_MODEL)
		set_pev(id, pev_weaponmodel2, DEAGLE_P_MODEL)
	}
	return PLUGIN_HANDLED
}


public fw_TakeDamage(victim, inflictor, attacker, Float:damage)
{
	if ( is_valid_player( attacker ) && get_user_weapon(attacker) == CSW_DEAGLE && g_HasDeagle[attacker] )
	{
		SetHamParamFloat(4, damage * get_pcvar_float( cvar_dmgmultiplier ) )
	}
}

public fw_CmdStart( id, uc_handle, seed )
{
    if( !is_user_alive( id ) )
        return PLUGIN_HANDLED

    if( ( get_uc( uc_handle, UC_Buttons ) & IN_ATTACK2 ) && !( pev( id, pev_oldbuttons ) & IN_ATTACK2 ) )
    {
        new szClip, szAmmo
        new szWeapID = get_user_weapon( id, szClip, szAmmo )

        if( szWeapID == CSW_DEAGLE && g_HasDeagle[id] && !g_hasZoom[ id ] )
        {
            golden_deagle_zoom( id, get_pcvar_num( cvar_zoom_type ) )
        }
        else if ( szWeapID == CSW_DEAGLE && g_HasDeagle[id] && g_hasZoom[id])
        {
            g_hasZoom[ id ] = false
            cs_set_user_zoom( id, CS_RESET_ZOOM, 1 )
        }
    }
    return PLUGIN_HANDLED
}

public make_tracer(id)
{
	if (get_pcvar_num(cvar_goldbullets))
	{
		new clip,ammo
		new wpnid = get_user_weapon(id,clip,ammo)
		new pteam[16]

		get_user_team(id, pteam, 15)

		if ((bullets[id] > clip) && (wpnid == CSW_DEAGLE) && g_HasDeagle[id])
		{
			new vec1[3], vec2[3]
			get_user_origin(id, vec1, 1) // origin; your camera point.
			get_user_origin(id, vec2, 4) // termina; where your bullet goes (4 is cs-only)


			//BEAMENTPOINTS
			message_begin( MSG_BROADCAST,SVC_TEMPENTITY)
			write_byte (0)     //TE_BEAMENTPOINTS 0
			write_coord(vec1[0])
			write_coord(vec1[1])
			write_coord(vec1[2])
			write_coord(vec2[0])
			write_coord(vec2[1])
			write_coord(vec2[2])
			write_short( m_spriteTexture )
			write_byte(1) // framestart
			write_byte(5) // framerate
			write_byte(2) // life
			write_byte(10) // width
			write_byte(0) // noise
			write_byte( 255 )     // r, g, b
			write_byte( 215 )       // r, g, b
			write_byte( 0 )       // r, g, b
			write_byte(200) // brightness
			write_byte(150) // speed
			message_end()
		}

		bullets[id] = clip
	}

}

public cshop_item_selected(id, iItem)
{
	if( iItem != g_iDeagleItem )
	{
		return BUY_ITEM
	}

	if ( !is_user_alive(id) )
	{
		client_print(id,print_chat, "[AMXX] To buy golden Deagle You need to be alive!")
		return DONT_BUY
	}

	if (get_pcvar_num(cvar_bullets))
	{
		give_item(id, "weapon_deagle")
		give_item(id, "ammo_50ae")
		cs_set_user_bpammo(id, CSW_DEAGLE, get_pcvar_num(cvar_bullets))
		g_HasDeagle[id] = true
	}

	return BUY_ITEM
}

public CmdGiveDeagle(id,level,cid)
{
	if (!cmd_access(id,level,cid,2))
		return PLUGIN_HANDLED;
	new arg[32];
	read_argv(1,arg,31);

	new player = cmd_target(id,arg,7);
	if (!player)
		return PLUGIN_HANDLED;

	new name[32];
	get_user_name(player,name,31);

	give_item(player, "weapon_deagle")
	g_HasDeagle[player] = true

	return PLUGIN_HANDLED
}

stock drop_prim(id)
{
	new weapons[32], num
	get_user_weapons(id, weapons, num)
	for (new i = 0; i < num; i++) {
		if (Wep_deagle & (1<<weapons[i]))
		{
			static wname[32]
			get_weaponname(weapons[i], wname, sizeof wname - 1)
			engclient_cmd(id, "drop", wname)
		}
	}
}

stock golden_deagle_zoom( id, type )
{
    g_hasZoom[ id ] = true;
    switch( type )
    {
        case 0: cs_set_user_zoom( id, CS_RESET_ZOOM, 1 )
        case 1: cs_set_user_zoom( id, CS_SET_AUGSG552_ZOOM, 1 )
        case 2:
        {
            cs_set_user_zoom( id, CS_SET_FIRST_ZOOM, 1 )
            emit_sound( id, CHAN_ITEM, "weapons/zoom.wav", 0.20, 2.40, 0, 100 )
        }
        case 3:
        {
            cs_set_user_zoom( id, CS_SET_SECOND_ZOOM, 1 )
            emit_sound( id, CHAN_ITEM, "weapons/zoom.wav", 0.20, 2.40, 0, 100 )
        }
        case 4:
        {
            g_ZoomDist[ id ]++
            g_hasZoom[ id ] = false;
            switch( g_ZoomDist[ id ] )
            {
                case 1: cs_set_user_zoom( id, CS_SET_AUGSG552_ZOOM, 1 )
                case 2:
                {
                    cs_set_user_zoom( id, CS_SET_FIRST_ZOOM, 1 )
                    emit_sound( id, CHAN_ITEM, "weapons/zoom.wav", 0.20, 2.40, 0, 100 )
                }
                case 3:
                {
                    cs_set_user_zoom( id, CS_SET_SECOND_ZOOM, 1 )
                    emit_sound( id, CHAN_ITEM, "weapons/zoom.wav", 0.20, 2.40, 0, 100 )
                }
                case 4:
                {
                    g_ZoomDist[ id ] = 0;
                    cs_set_user_zoom( id, CS_RESET_ZOOM, 1 )
                }
            }
        }
    }
}
Благодаря !

Искам само да попитам , Кроме - дали дава точки на играчите и за убийство на ботове или това зависи на 100% от самите настройки в csdm.cfg - от това за даване на пари при убийство на бот... просто пари ми даваше добре и за кил на играч и бот , но по-ми хареса "точковата система" - но с нея не ми дава при всяко убийство на бот - точки някак си(нещо дава нещо не два :) ... ? Дава нещо там и аз не знам какво :) Имаш ли настройка и за ботове - да ги зачита или игнорира по желание и аз не съм я видял, или .... пък ако може когато имаш време ,би ли добавил ?
Пак благодаря за golden deagle-то :) .

Добавено преди 1 час 2 минути 32 секунди:
iv69 написа: 16 Апр 2019, 21:24
OciXCrom написа: 16 Апр 2019, 20:30

Код за потвърждение: Избери целия код

#include <amxmodx>
#include <fakemeta>
#include <fun>
#include <hamsandwich>
#include <cstrike>
#include <amxmisc>
#include <customshop>

#define is_valid_player(%1) (1 <= %1 <= 32)
#define PLUGIN "Golden Deagle"
#define VERSION "1.0"
#define AUTHOR "alicx"


new DEAGLE_V_MODEL[64] = "models/v_golden_deagle.mdl"
new DEAGLE_P_MODEL[64] = "models/p_golden_deagle.mdl"

/* Pcvars */
new cvar_dmgmultiplier, cvar_goldbullets,  cvar_custommodel, cvar_cost, cvar_bullets, cvar_keepdeagle, cvar_zoom_type;

new bool:g_HasDeagle[33]

new g_hasZoom[ 33 ]
new g_ZoomDist[ 33 ] = 0
new bullets[ 33 ]
new g_iDeagleItem

// Sprite
new m_spriteTexture

const Wep_deagle = ((1<<CSW_DEAGLE))


public plugin_init() {
	register_plugin(PLUGIN, VERSION, AUTHOR)

	// The Cvars //
	cvar_dmgmultiplier = register_cvar("goldendeagle_dmg_multiplier", "5")
	cvar_custommodel = register_cvar("goldendeagle_custom_model", "1")
	cvar_goldbullets = register_cvar("goldendeagle_gold_bullets", "1")
	cvar_cost = register_cvar("goldendeagle_cost", "4000")
	cvar_bullets = register_cvar("goldendeagle_bullets", "200")
	cvar_keepdeagle = register_cvar("goldendeagle_keep", "1")
	cvar_zoom_type = register_cvar("goldendeagle_zoom_type", "4")


	// Register The Buy Cmd
	register_concmd("amx_goldendeagle", "CmdGiveDeagle", ADMIN_BAN, "<name>")

	//Death Msg
	register_event("DeathMsg", "Death", "a")

	// Weapon Pick Up
	register_event("WeapPickup","checkModel","b","1=19")

	// Current Weapon Event
	register_event("CurWeapon", "make_tracer", "be", "1=1", "3>0")

	// Ham TakeDamage
	RegisterHam(Ham_TakeDamage, "player", "fw_TakeDamage")
	register_forward( FM_CmdStart, "fw_CmdStart")
	register_forward(FM_CmdStart, "fwCmdStart")
	RegisterHam(Ham_Spawn, "player", "fwHamPlayerSpawnPost", 1)
}

public plugin_precache()
{
	precache_model(DEAGLE_V_MODEL)
	precache_model(DEAGLE_P_MODEL)
	m_spriteTexture = precache_model("sprites/dot.spr")
	precache_sound("weapons/zoom.wav")
	g_iDeagleItem = cshop_register_item("golden_deagle", "Golden Deagle", get_pcvar_num(cvar_cost))
}

public cshop_item_removed(id, iItem)
{
	if(iItem == g_iDeagleItem)
	{
		g_HasDeagle[id] = false
	}
}

public client_connect(id)
{
	g_HasDeagle[id] = false
}

public client_disconnect(id)
{
	g_HasDeagle[id] = false
}

public Death()
{
	g_HasDeagle[read_data(2)] = false
}

public fwHamPlayerSpawnPost(id)
{
    if( !is_user_alive( id ) )
        return;

    if( get_pcvar_num( cvar_keepdeagle ) )
    {
        if( user_has_weapon( id, CSW_DEAGLE ) )
        {
            g_HasDeagle[id] = true
        }
        else {
            g_HasDeagle[id] = false;
        }
    }
    else {
        g_HasDeagle[id] = false;
    }
}

public checkModel(id)
{
	if ( !g_HasDeagle[id] )
		return PLUGIN_HANDLED

	new szWeapID = read_data(2)

	if ( szWeapID == CSW_DEAGLE && g_HasDeagle[id] == true && get_pcvar_num(cvar_custommodel) )
	{
		set_pev(id, pev_viewmodel2, DEAGLE_V_MODEL)
		set_pev(id, pev_weaponmodel2, DEAGLE_P_MODEL)
	}
	return PLUGIN_HANDLED
}


public fw_TakeDamage(victim, inflictor, attacker, Float:damage)
{
	if ( is_valid_player( attacker ) && get_user_weapon(attacker) == CSW_DEAGLE && g_HasDeagle[attacker] )
	{
		SetHamParamFloat(4, damage * get_pcvar_float( cvar_dmgmultiplier ) )
	}
}

public fw_CmdStart( id, uc_handle, seed )
{
    if( !is_user_alive( id ) )
        return PLUGIN_HANDLED

    if( ( get_uc( uc_handle, UC_Buttons ) & IN_ATTACK2 ) && !( pev( id, pev_oldbuttons ) & IN_ATTACK2 ) )
    {
        new szClip, szAmmo
        new szWeapID = get_user_weapon( id, szClip, szAmmo )

        if( szWeapID == CSW_DEAGLE && g_HasDeagle[id] && !g_hasZoom[ id ] )
        {
            golden_deagle_zoom( id, get_pcvar_num( cvar_zoom_type ) )
        }
        else if ( szWeapID == CSW_DEAGLE && g_HasDeagle[id] && g_hasZoom[id])
        {
            g_hasZoom[ id ] = false
            cs_set_user_zoom( id, CS_RESET_ZOOM, 1 )
        }
    }
    return PLUGIN_HANDLED
}

public make_tracer(id)
{
	if (get_pcvar_num(cvar_goldbullets))
	{
		new clip,ammo
		new wpnid = get_user_weapon(id,clip,ammo)
		new pteam[16]

		get_user_team(id, pteam, 15)

		if ((bullets[id] > clip) && (wpnid == CSW_DEAGLE) && g_HasDeagle[id])
		{
			new vec1[3], vec2[3]
			get_user_origin(id, vec1, 1) // origin; your camera point.
			get_user_origin(id, vec2, 4) // termina; where your bullet goes (4 is cs-only)


			//BEAMENTPOINTS
			message_begin( MSG_BROADCAST,SVC_TEMPENTITY)
			write_byte (0)     //TE_BEAMENTPOINTS 0
			write_coord(vec1[0])
			write_coord(vec1[1])
			write_coord(vec1[2])
			write_coord(vec2[0])
			write_coord(vec2[1])
			write_coord(vec2[2])
			write_short( m_spriteTexture )
			write_byte(1) // framestart
			write_byte(5) // framerate
			write_byte(2) // life
			write_byte(10) // width
			write_byte(0) // noise
			write_byte( 255 )     // r, g, b
			write_byte( 215 )       // r, g, b
			write_byte( 0 )       // r, g, b
			write_byte(200) // brightness
			write_byte(150) // speed
			message_end()
		}

		bullets[id] = clip
	}

}

public cshop_item_selected(id, iItem)
{
	if( iItem != g_iDeagleItem )
	{
		return BUY_ITEM
	}

	if ( !is_user_alive(id) )
	{
		client_print(id,print_chat, "[AMXX] To buy golden Deagle You need to be alive!")
		return DONT_BUY
	}

	if (get_pcvar_num(cvar_bullets))
	{
		give_item(id, "weapon_deagle")
		give_item(id, "ammo_50ae")
		cs_set_user_bpammo(id, CSW_DEAGLE, get_pcvar_num(cvar_bullets))
		g_HasDeagle[id] = true
	}

	return BUY_ITEM
}

public CmdGiveDeagle(id,level,cid)
{
	if (!cmd_access(id,level,cid,2))
		return PLUGIN_HANDLED;
	new arg[32];
	read_argv(1,arg,31);

	new player = cmd_target(id,arg,7);
	if (!player)
		return PLUGIN_HANDLED;

	new name[32];
	get_user_name(player,name,31);

	give_item(player, "weapon_deagle")
	g_HasDeagle[player] = true

	return PLUGIN_HANDLED
}

stock drop_prim(id)
{
	new weapons[32], num
	get_user_weapons(id, weapons, num)
	for (new i = 0; i < num; i++) {
		if (Wep_deagle & (1<<weapons[i]))
		{
			static wname[32]
			get_weaponname(weapons[i], wname, sizeof wname - 1)
			engclient_cmd(id, "drop", wname)
		}
	}
}

stock golden_deagle_zoom( id, type )
{
    g_hasZoom[ id ] = true;
    switch( type )
    {
        case 0: cs_set_user_zoom( id, CS_RESET_ZOOM, 1 )
        case 1: cs_set_user_zoom( id, CS_SET_AUGSG552_ZOOM, 1 )
        case 2:
        {
            cs_set_user_zoom( id, CS_SET_FIRST_ZOOM, 1 )
            emit_sound( id, CHAN_ITEM, "weapons/zoom.wav", 0.20, 2.40, 0, 100 )
        }
        case 3:
        {
            cs_set_user_zoom( id, CS_SET_SECOND_ZOOM, 1 )
            emit_sound( id, CHAN_ITEM, "weapons/zoom.wav", 0.20, 2.40, 0, 100 )
        }
        case 4:
        {
            g_ZoomDist[ id ]++
            g_hasZoom[ id ] = false;
            switch( g_ZoomDist[ id ] )
            {
                case 1: cs_set_user_zoom( id, CS_SET_AUGSG552_ZOOM, 1 )
                case 2:
                {
                    cs_set_user_zoom( id, CS_SET_FIRST_ZOOM, 1 )
                    emit_sound( id, CHAN_ITEM, "weapons/zoom.wav", 0.20, 2.40, 0, 100 )
                }
                case 3:
                {
                    cs_set_user_zoom( id, CS_SET_SECOND_ZOOM, 1 )
                    emit_sound( id, CHAN_ITEM, "weapons/zoom.wav", 0.20, 2.40, 0, 100 )
                }
                case 4:
                {
                    g_ZoomDist[ id ] = 0;
                    cs_set_user_zoom( id, CS_RESET_ZOOM, 1 )
                }
            }
        }
    }
}
Благодаря !

Искам само да попитам , Кроме - дали дава точки на играчите и за убийство на ботове или това зависи на 100% от самите настройки в csdm.cfg - от това за даване на пари при убийство на бот... просто пари ми даваше добре и за кил на играч и бот , но по-ми хареса "точковата система" - но с нея не ми дава при всяко убийство на бот - точки някак си(нещо дава нещо не два :) ... ? Дава нещо там и аз не знам какво :) Имаш ли настройка и за ботове - да ги зачита или игнорира по желание и аз не съм я видял, или .... пък ако може когато имаш време ,би ли добавил ?
Пак благодаря за golden deagle-то :) .

Кром-е , плъгина с golden deagle не върви ? Компилира се добре, описах го в plugins-cshop.ini , когато го търся е shop-менюто не ми се появява... Иначе го има в amxx list , като активен... Не се е добавил изобщо в CustomShopItems.ini. Правил си по подобие на ак47 и съблъгин за m4a1 -там си ми го има и върви... Но за golden deagle , нещо май липсва ...

Аватар
OciXCrom
Извън линия
Администратор
Администратор
Мнения: 7206
Регистриран на: 06 Окт 2016, 19:20
Местоположение: /resetscore
Се отблагодари: 117 пъти
Получена благодарност: 1295 пъти
Обратна връзка:

OciXCrom's Custom Shop + API

Мнение от OciXCrom » 16 Апр 2019, 22:45

Увери се, че е добавен под custom_shop.amxx.
Не съм слагал забрана за получаване точки при убийство на бот.

Аватар
iv69
Извън линия
Потребител
Потребител
Мнения: 744
Регистриран на: 17 Мар 2018, 15:34
Се отблагодари: 214 пъти
Получена благодарност: 39 пъти

OciXCrom's Custom Shop + API

Мнение от iv69 » 16 Апр 2019, 23:44

OciXCrom написа: 16 Апр 2019, 22:45 Увери се, че е добавен под custom_shop.amxx.
Не съм слагал забрана за получаване точки при убийство на бот.
Аз го описах в plugins-cshop.ini като останалите твои съб-плъгини? Трябва ли да е в plygins.ini за да е под custom_shop.amxx ?
Последно промяна от stambeto2006 на 17 Апр 2019, 10:38, променено общо 1 път.
Причина: Казва се plugins.ini, а не plygins.ini !

Аватар
OciXCrom
Извън линия
Администратор
Администратор
Мнения: 7206
Регистриран на: 06 Окт 2016, 19:20
Местоположение: /resetscore
Се отблагодари: 117 пъти
Получена благодарност: 1295 пъти
Обратна връзка:

OciXCrom's Custom Shop + API

Мнение от OciXCrom » 17 Апр 2019, 19:46

Зависи къде си сложил другия. Сървърът първо чете plugins.ini, а след това plugins-cshop.ini и останалите. Важното е съб-плъгинът да се прочете СЛЕД главния плъгин.

Аватар
iv69
Извън линия
Потребител
Потребител
Мнения: 744
Регистриран на: 17 Мар 2018, 15:34
Се отблагодари: 214 пъти
Получена благодарност: 39 пъти

OciXCrom's Custom Shop + API

Мнение от iv69 » 12 Май 2019, 21:24

Искам да попитам, може ли да се съкрати малко изгледа на /shop-менюто, т.е. като някой ползва командата /shop - да вижда само "предметите" и тяхната цена, и да бъде премахната третата графа за "Limit:"/колко от колко възможни/. Функцията да си остава и да се настройва през CustomShopItems.ini, но да не просъства в менюто ? Дали това може да се направи с промяна в CustomShopItems.ini или CustomShop.ini или трябва да се променя sma-файла ?

Аватар
OciXCrom
Извън линия
Администратор
Администратор
Мнения: 7206
Регистриран на: 06 Окт 2016, 19:20
Местоположение: /resetscore
Се отблагодари: 117 пъти
Получена благодарност: 1295 пъти
Обратна връзка:

OciXCrom's Custom Shop + API

Мнение от OciXCrom » 12 Май 2019, 22:09

iv69 написа: 12 Май 2019, 21:24 Искам да попитам, може ли да се съкрати малко изгледа на /shop-менюто, т.е. като някой ползва командата /shop - да вижда само "предметите" и тяхната цена, и да бъде премахната третата графа за "Limit:"/колко от колко възможни/. Функцията да си остава и да се настройва през CustomShopItems.ini, но да не просъства в менюто ? Дали това може да се направи с промяна в CustomShopItems.ini или CustomShop.ini или трябва да се променя sma-файла ?
Защо точно искаш да направиш това? Все пак това е полезна информация за хората и не прави нищо лошо. Може да се промени като редактираш .sma файла, понеже не съм добавил подобна настройка. Като цяло не виждам какво получаваш от въпросната промяна.

Аватар
iv69
Извън линия
Потребител
Потребител
Мнения: 744
Регистриран на: 17 Мар 2018, 15:34
Се отблагодари: 214 пъти
Получена благодарност: 39 пъти

OciXCrom's Custom Shop + API

Мнение от iv69 » 13 Май 2019, 10:33

OciXCrom написа: 12 Май 2019, 22:09
iv69 написа: 12 Май 2019, 21:24 Искам да попитам, може ли да се съкрати малко изгледа на /shop-менюто, т.е. като някой ползва командата /shop - да вижда само "предметите" и тяхната цена, и да бъде премахната третата графа за "Limit:"/колко от колко възможни/. Функцията да си остава и да се настройва през CustomShopItems.ini, но да не просъства в менюто ? Дали това може да се направи с промяна в CustomShopItems.ini или CustomShop.ini или трябва да се променя sma-файла ?
Защо точно искаш да направиш това? Все пак това е полезна информация за хората и не прави нищо лошо. Може да се промени като редактираш .sma файла, понеже не съм добавил подобна настройка. Като цяло не виждам какво получаваш от въпросната промяна.
Благодаря за отговора. Ще се опитам да дам аргументирам отговор: малцина от играчите са ония които разбират за какво е тази "графа"(ако искаш ми вярвай ако искаш -не), а пък се питам колко ли от разбиращите за какво е тази графа, ги интересува тя? Ще си купуват докато могат,свърши ли, няма да купуват! Просто е. Сървъра е CSDM,всеки влиза и веднага започва да стреля :gamer1: , и от 10 или 20 един дори знае за шоп-а, а пък измежду тези 10или 5% са малцината - не повече от 5% - които четат или се интересуват.........,т.е. 5% от 5%... 1/400 :) , би ли бил така добър когато имаш малко време , да ми дадеш редактирани редовете за тази промяна от sma-кода. Благодаря !

Иначе- с една дума на въпроса какво получавам: "прегледност"- зареждаш си шоп-менюто и отпръв поглед всичко ти е ясно и няма нужда погледа да шари , да чете да мисли човек, че на много тази дейност им е мисия невъзможна....

p.s. Сега ми хрумна, (сега като започнах да се правя на разбирач), че може би много повече хора биха ползвали шоп-менюто, ако имаше излизащ системно през 60сек например, някакъв понагласен цветен надпис за самия шоп-магазин>? Това , както и идеите за добавяне на опцията за duration, на всички предмети според мен биха направили още по-популярен плъгина(с възможност който иска да ползва опциите или да ги спира...) ???

Аватар
OciXCrom
Извън линия
Администратор
Администратор
Мнения: 7206
Регистриран на: 06 Окт 2016, 19:20
Местоположение: /resetscore
Се отблагодари: 117 пъти
Получена благодарност: 1295 пъти
Обратна връзка:

OciXCrom's Custom Shop + API

Мнение от OciXCrom » 14 Май 2019, 00:23

Надали някой няма да разбере какво означава 0/3, а на разбиращите надали ще им пречи - напротив, ще им даде информация още колко пъти могат да купуват въпросния предмет и по този начин да планират играта си. Ако я няма тази графа, по-скоро ще им пречи, примерно някой е събирал пари за да купи предмета и когато цъкне бутона, чак тогава ще разбере, че е достигнал лимита. Ама както и да е, все пак ти си решаваш.

За съобщение можеш да ползваш всякакъв друг плъгин за съобщения в чата - не мисля, че има нужда подобна опция да се слага в този.

Duration може да добавиш на всички предмети за които има смисъл да се добавя, по-точно на 12 от 17 предмети може да се добави. Примерно за кръвта не виждам смисъл да може да се добавя времетраене, понеже може да убие играча.

Аватар
Fatall
Извън линия
Потребител
Потребител
Мнения: 295
Регистриран на: 30 Авг 2018, 09:35
Местоположение: София
Се отблагодари: 26 пъти
Получена благодарност: 17 пъти
Обратна връзка:

OciXCrom's Custom Shop + API

Мнение от Fatall » 17 Сеп 2019, 17:22

Дали може на тия два плъгина да им се сложи Glow

Код за потвърждение: Избери целия код

#define GLOW_R 255
#define GLOW_G 215
#define GLOW_B 0
set_user_rendering(id, kRenderFxGlowShell, GLOW_AK_R, GLOW_AK_G, GLOW_AK_B, kRenderNormal, 10)
И как мога да направя вместо да се пише /shop да се отваря с буквата "N" ( Дали ще стане така "CSHOP_COMMANDS = nightvision")

Код за потвърждение: Избери целия код

#include <amxmodx>
#include <cstrike>
#include <customshop>
#include <fakemeta>
#include <fun>
#include <hamsandwich>

#define PLUGIN_VERSION "4.x"

additem ITEM_GOLDENAK
#define GOLDENAK_ID "goldenak"
#define GOLDENAK_NAME "Golden AK47"
#define GOLDENAK_PRICE 16000
#define GOLDENAK_LIMIT 1
#define GOLDENAK_SOUND "weapons/gauss2.wav"
#define GOLDENAK_VMODEL "models/custom_shop/v_goldenak.mdl"
#define GOLDENAK_PMODEL "models/custom_shop/p_goldenak.mdl"
#define GOLDENAK_WEAPON_STR "weapon_ak47"
#define GOLDENAK_WEAPON_CSW CSW_AK47
#define GOLDENAK_DAMAGE 5
#define GOLDENAK_AMMO 500
new bool:g_blGoldenAK[33]

// Comment this line to disable the bullets.
#define USE_BULLETS

#if defined USE_BULLETS
	// You can add a shoot sound in this line, after you remove the comment.
	//#define BULLET_SOUND "weapons/ak47-1.wav"
	
	#define BULLET_MODEL "sprites/dot.spr"
	#define BULLET_STARTFRAME 1
	#define BULLET_FRAMERATE 5
	#define BULLET_LIFE 2
	#define BULLET_WIDTH 10
	#define BULLET_NOISE 0
	#define BULLET_COLOR_RED 255
	#define BULLET_COLOR_GREEN 215
	#define BULLET_COLOR_BLUE 0
	#define BULLET_BRIGHTNESS 200
	#define BULLET_SPEED 150
	new g_iGoldenBullet
#endif

#define DEFAULT_VMODEL "models/v_ak47.mdl"
#define DEFAULT_PMODEL "models/p_ak47.mdl"

public plugin_init()
{
	register_plugin("Custom Shop: Golden AK47", PLUGIN_VERSION, "OciXCrom")
	RegisterHam(Ham_TakeDamage, "player", "eventTakeDamage")
	register_event("CurWeapon", "goldenModel", "be", "1=1")
	
	#if defined USE_BULLETS
		RegisterHam(Ham_Weapon_PrimaryAttack, GOLDENAK_WEAPON_STR, "eventPrimaryAttack", 1)
	#endif
}

public plugin_precache()
{
	ITEM_GOLDENAK = cshopRegisterItem(GOLDENAK_ID, GOLDENAK_NAME, GOLDENAK_PRICE, GOLDENAK_LIMIT)
	precache_model(GOLDENAK_VMODEL)
	precache_model(GOLDENAK_PMODEL)
	
	#if defined USE_BULLETS
		g_iGoldenBullet = precache_model(BULLET_MODEL)
	#endif
	
	#if defined BULLET_SOUND
		precache_sound(BULLET_SOUND)
	#endif
}

public cshopItemBought(id, iItem)
	if(iItem == ITEM_GOLDENAK) 			{ g_blGoldenAK[id] = true; give_item(id, GOLDENAK_WEAPON_STR); cs_set_user_bpammo(id, GOLDENAK_WEAPON_CSW, GOLDENAK_AMMO); goldenModel(id); }
	
public cshopItemRemoved(id, iItem)
	if(iItem == ITEM_GOLDENAK) 			{ g_blGoldenAK[id] = false; set_default_model(id); }
	
public eventTakeDamage(iVictim, iInflictor, iAttacker, Float:flDamage, iDamageBits)
	if(is_user_alive(iAttacker) && iAttacker != iVictim)
		if(g_blGoldenAK[iAttacker] && get_user_weapon(iAttacker) == GOLDENAK_WEAPON_CSW && iAttacker == iInflictor)
			SetHamParamFloat(4, flDamage * GOLDENAK_DAMAGE)
			
#if defined USE_BULLETS			
	public eventPrimaryAttack(iWeapon)
	{
		new id = pev(iWeapon, pev_owner)
		
		if(!g_blGoldenAK[id])
			return
			
		new iClip, iAmmo
		new iWeapon = get_user_weapon(id, iClip, iAmmo)
		
		if(!iClip || iWeapon != GOLDENAK_WEAPON_CSW)
			return
		
		#if defined BULLET_SOUND
			player_emitsound(id, BULLET_SOUND)
		#endif
		
		new iVec1[3], iVec2[3]
		get_user_origin(id, iVec1, 1)
		get_user_origin(id, iVec2, 3)
		message_begin(MSG_BROADCAST,SVC_TEMPENTITY)
		write_byte(TE_BEAMPOINTS)
		write_coord(iVec1[0])
		write_coord(iVec1[1])
		write_coord(iVec1[2])
		write_coord(iVec2[0])
		write_coord(iVec2[1])
		write_coord(iVec2[2])
		write_short(g_iGoldenBullet)
		write_byte(BULLET_STARTFRAME)
		write_byte(BULLET_FRAMERATE)
		write_byte(BULLET_LIFE)
		write_byte(BULLET_WIDTH)
		write_byte(BULLET_NOISE)
		write_byte(BULLET_COLOR_RED)
		write_byte(BULLET_COLOR_GREEN)
		write_byte(BULLET_COLOR_BLUE)
		write_byte(BULLET_BRIGHTNESS)
		write_byte(BULLET_SPEED)
		message_end()
	}
#endif

public goldenModel(id)
{
	if(get_user_weapon(id) == GOLDENAK_WEAPON_CSW && g_blGoldenAK[id])
	{
		set_pev(id, pev_viewmodel2, GOLDENAK_VMODEL)
		set_pev(id, pev_weaponmodel2, GOLDENAK_PMODEL)
	}
}

set_default_model(id)
{
	if(get_user_weapon(id) == GOLDENAK_WEAPON_CSW)
	{
		set_pev(id, pev_viewmodel2, DEFAULT_VMODEL)
		set_pev(id, pev_weaponmodel2, DEFAULT_PMODEL)
	}
}

#if defined BULLET_SOUND
	player_emitsound(id, szSound[])
		emit_sound(id, CHAN_WEAPON, szSound, 1.0, ATTN_NORM, 0, PITCH_HIGH)
#endif

Код за потвърждение: Избери целия код

#include <amxmodx>
#include <cstrike>
#include <customshop>
#include <fakemeta>
#include <fun>
#include <hamsandwich>

#if !defined m_pPlayer
	#define m_pPlayer 41
#endif


#define PLUGIN_VERSION "1.0.3"
#define V_MODEL "models/custom_shop/v_golden_awp.mdl"
#define P_MODEL "models/custom_shop/p_golden_awp.mdl"

additem ITEM_GOLDEN_AWP
new g_bHasItem[33], g_szDamage[16], g_iBPAmmo

public plugin_init()
{
	register_plugin("CSHOP: Golden AWP", PLUGIN_VERSION, "OciXCrom")
	register_cvar("CRXSHOPGoldenAWP", PLUGIN_VERSION, FCVAR_SERVER|FCVAR_SPONLY|FCVAR_UNLOGGED)
	RegisterHam(Ham_Item_Deploy, "weapon_awp", "OnSelectAWP", 1)
	RegisterHam(Ham_TakeDamage, "player", "PreTakeDamage", 0)
	cshop_get_string(ITEM_GOLDEN_AWP, "Damage", g_szDamage, charsmax(g_szDamage))
	g_iBPAmmo = cshop_get_int(ITEM_GOLDEN_AWP, "Backpack Ammo")
}

public plugin_precache()
{
	ITEM_GOLDEN_AWP = cshop_register_item("goldenawp", "Golden AWP", 9500)
	cshop_set_string(ITEM_GOLDEN_AWP, "Damage", "+100%")
	cshop_set_int(ITEM_GOLDEN_AWP, "Backpack Ammo", 30)

	#if defined V_MODEL
	precache_model(V_MODEL)
	#endif

	#if defined P_MODEL
	precache_model(P_MODEL)
	#endif
}

public cshop_item_selected(id, iItem)
{
	if(iItem == ITEM_GOLDEN_AWP)
	{
		g_bHasItem[id] = true

		if(get_user_weapon(id) == CSW_AWP)
			RefreshAWPModel(id)
		else if(!user_has_weapon(id, CSW_AWP))
			give_item(id, "weapon_awp")

		cs_set_user_bpammo(id, CSW_AWP, g_iBPAmmo)
	}
}

public cshop_item_removed(id, iItem)
{
	if(iItem == ITEM_GOLDEN_AWP)
		g_bHasItem[id] = false
}

public client_putinserver(id)
	g_bHasItem[id] = false

public OnSelectAWP(iEnt)
{
	new id = get_pdata_cbase(iEnt, m_pPlayer, 4)
	
	if(g_bHasItem[id] && is_user_connected(id))
		RefreshAWPModel(id)
}

public PreTakeDamage(iVictim, iInflictor, iAttacker, Float:fDamage, iDamageBits)
{
	if(is_user_alive(iAttacker) && iAttacker != iVictim && g_bHasItem[iAttacker])
		SetHamParamFloat(4, math_add_f(fDamage, g_szDamage))
}

RefreshAWPModel(const id)
{
	#if defined V_MODEL
	set_pev(id, pev_viewmodel2, V_MODEL)
	#endif

	#if defined P_MODEL
	set_pev(id, pev_weaponmodel2, P_MODEL)
	#endif
}

Float:math_add_f(Float:fNum, const szMath[])
{
	static szNewMath[16], Float:fMath, bool:bPercent, cOperator
   
	copy(szNewMath, charsmax(szNewMath), szMath)
	bPercent = szNewMath[strlen(szNewMath) - 1] == '%'
	cOperator = szNewMath[0]
   
	if(!isdigit(szNewMath[0]))
		szNewMath[0] = ' '
   
	if(bPercent)
		replace(szNewMath, charsmax(szNewMath), "%", "")
	   
	trim(szNewMath)
	fMath = str_to_float(szNewMath)
   
	if(bPercent)
		fMath *= fNum / 100
	   
	switch(cOperator)
	{
		case '+': fNum += fMath
		case '-': fNum -= fMath
		case '/': fNum /= fMath
		case '*': fNum *= fMath
		default: fNum = fMath
	}
   
	return fNum
}

Код за потвърждение: Избери целия код

<?php
   $error_msg = "Database error in [page].php / ";
   $error_msg .= mysqli_error ( $link )." / ";
   $error_msg .= $query;
   UpdateLog ( $error_msg , DB_ERROR_LOG_FILE );
?>

Аватар
mi0
Извън линия
AMXX Скриптър
AMXX Скриптър
Мнения: 534
Регистриран на: 09 Дек 2016, 22:02
Се отблагодари: 97 пъти
Получена благодарност: 120 пъти
Обратна връзка:

OciXCrom's Custom Shop + API

Мнение от mi0 » 17 Сеп 2019, 20:32

За командата тествай и ще разбереш, Glow-а е лесно да си го добавиш, щом дори си дал редовете. Ето ти ги готови(тествай).

Код за потвърждение: Избери целия код

#include <amxmodx>
#include <cstrike>
#include <customshop>
#include <fakemeta>
#include <fun>
#include <hamsandwich>

#define PLUGIN_VERSION "4.x"

additem ITEM_GOLDENAK
#define GOLDENAK_ID "goldenak"
#define GOLDENAK_NAME "Golden AK47"
#define GOLDENAK_PRICE 16000
#define GOLDENAK_LIMIT 1
#define GOLDENAK_SOUND "weapons/gauss2.wav"
#define GOLDENAK_VMODEL "models/custom_shop/v_goldenak.mdl"
#define GOLDENAK_PMODEL "models/custom_shop/p_goldenak.mdl"
#define GOLDENAK_WEAPON_STR "weapon_ak47"
#define GOLDENAK_WEAPON_CSW CSW_AK47
#define GOLDENAK_DAMAGE 5
#define GOLDENAK_AMMO 500
new bool:g_blGoldenAK[33]

// Comment this line to disable the bullets.
#define USE_BULLETS
// Comment this line to disable the glow.
#define USE_GLOW

#if defined USE_BULLETS
	// You can add a shoot sound in this line, after you remove the comment.
	//#define BULLET_SOUND "weapons/ak47-1.wav"
	
	#define BULLET_MODEL "sprites/dot.spr"
	#define BULLET_STARTFRAME 1
	#define BULLET_FRAMERATE 5
	#define BULLET_LIFE 2
	#define BULLET_WIDTH 10
	#define BULLET_NOISE 0
	#define BULLET_COLOR_RED 255
	#define BULLET_COLOR_GREEN 215
	#define BULLET_COLOR_BLUE 0
	#define BULLET_BRIGHTNESS 200
	#define BULLET_SPEED 150
	new g_iGoldenBullet
#endif

#if defined USE_GLOW
	#define GLOW_R 255
	#define GLOW_G 215
	#define GLOW_B 0
#endif

#define DEFAULT_VMODEL "models/v_ak47.mdl"
#define DEFAULT_PMODEL "models/p_ak47.mdl"

public plugin_init()
{
	register_plugin("Custom Shop: Golden AK47", PLUGIN_VERSION, "OciXCrom")
	RegisterHam(Ham_TakeDamage, "player", "eventTakeDamage")
	register_event("CurWeapon", "goldenModel", "be", "1=1")
	
	#if defined USE_BULLETS
		RegisterHam(Ham_Weapon_PrimaryAttack, GOLDENAK_WEAPON_STR, "eventPrimaryAttack", 1)
	#endif
}

public plugin_precache()
{
	ITEM_GOLDENAK = cshopRegisterItem(GOLDENAK_ID, GOLDENAK_NAME, GOLDENAK_PRICE, GOLDENAK_LIMIT)
	precache_model(GOLDENAK_VMODEL)
	precache_model(GOLDENAK_PMODEL)
	
	#if defined USE_BULLETS
		g_iGoldenBullet = precache_model(BULLET_MODEL)
	#endif
	
	#if defined BULLET_SOUND
		precache_sound(BULLET_SOUND)
	#endif
}

public cshopItemBought(id, iItem)
{
	if(iItem == ITEM_GOLDENAK)
	{
		g_blGoldenAK[id] = true
		give_item(id, GOLDENAK_WEAPON_STR)
		cs_set_user_bpammo(id, GOLDENAK_WEAPON_CSW, GOLDENAK_AMMO)
		goldenModel(id)
		#if defined USE_GLOW
			set_user_rendering(id, kRenderFxGlowShell, GLOW_R, GLOW_G, GLOW_B, kRenderNormal, 10)
		#endif
	}
}
	
public cshopItemRemoved(id, iItem)
	if(iItem == ITEM_GOLDENAK)
	{
		g_blGoldenAK[id] = false
		set_default_model(id)
		#if defined USE_GLOW
			set_user_rendering(id,kRenderFxGlowShell,0,0,0,kRenderNormal,25)
		#endif
	}
	
public eventTakeDamage(iVictim, iInflictor, iAttacker, Float:flDamage, iDamageBits)
	if(is_user_alive(iAttacker) && iAttacker != iVictim)
	{
		if(g_blGoldenAK[iAttacker] && get_user_weapon(iAttacker) == GOLDENAK_WEAPON_CSW && iAttacker == iInflictor)
		{
			SetHamParamFloat(4, flDamage * GOLDENAK_DAMAGE)
		}
	}
			
#if defined USE_BULLETS			
	public eventPrimaryAttack(iWeapon)
	{
		new id = pev(iWeapon, pev_owner)
		
		if(!g_blGoldenAK[id])
			return
			
		new iClip, iAmmo
		new iWeapon = get_user_weapon(id, iClip, iAmmo)
		
		if(!iClip || iWeapon != GOLDENAK_WEAPON_CSW)
			return
		
		#if defined BULLET_SOUND
			player_emitsound(id, BULLET_SOUND)
		#endif
		
		new iVec1[3], iVec2[3]
		get_user_origin(id, iVec1, 1)
		get_user_origin(id, iVec2, 3)
		message_begin(MSG_BROADCAST,SVC_TEMPENTITY)
		write_byte(TE_BEAMPOINTS)
		write_coord(iVec1[0])
		write_coord(iVec1[1])
		write_coord(iVec1[2])
		write_coord(iVec2[0])
		write_coord(iVec2[1])
		write_coord(iVec2[2])
		write_short(g_iGoldenBullet)
		write_byte(BULLET_STARTFRAME)
		write_byte(BULLET_FRAMERATE)
		write_byte(BULLET_LIFE)
		write_byte(BULLET_WIDTH)
		write_byte(BULLET_NOISE)
		write_byte(BULLET_COLOR_RED)
		write_byte(BULLET_COLOR_GREEN)
		write_byte(BULLET_COLOR_BLUE)
		write_byte(BULLET_BRIGHTNESS)
		write_byte(BULLET_SPEED)
		message_end()
	}
#endif

public goldenModel(id)
{
	if(get_user_weapon(id) == GOLDENAK_WEAPON_CSW && g_blGoldenAK[id])
	{
		set_pev(id, pev_viewmodel2, GOLDENAK_VMODEL)
		set_pev(id, pev_weaponmodel2, GOLDENAK_PMODEL)
	}
}

set_default_model(id)
{
	if(get_user_weapon(id) == GOLDENAK_WEAPON_CSW)
	{
		set_pev(id, pev_viewmodel2, DEFAULT_VMODEL)
		set_pev(id, pev_weaponmodel2, DEFAULT_PMODEL)
	}
}

#if defined BULLET_SOUND
	player_emitsound(id, szSound[])
	{
		emit_sound(id, CHAN_WEAPON, szSound, 1.0, ATTN_NORM, 0, PITCH_HIGH)
	}
#endif

Код за потвърждение: Избери целия код

#include <amxmodx>
#include <cstrike>
#include <customshop>
#include <fakemeta>
#include <fun>
#include <hamsandwich>

#define PLUGIN_VERSION "1.0.4"
#define V_MODEL "models/custom_shop/v_golden_awp.mdl"
#define P_MODEL "models/custom_shop/p_golden_awp.mdl"
// Comment this line to disable the glow.
#define USE_GLOW

#if defined USE_GLOW
	#define GLOW_R 255
	#define GLOW_G 215
	#define GLOW_B 0
#endif

#if !defined m_pPlayer
	#define m_pPlayer 41
#endif

additem ITEM_GOLDEN_AWP
new g_bHasItem[33], g_szDamage[16], g_iBPAmmo

public plugin_init()
{
	register_plugin("CSHOP: Golden AWP", PLUGIN_VERSION, "OciXCrom")
	register_cvar("CRXSHOPGoldenAWP", PLUGIN_VERSION, FCVAR_SERVER|FCVAR_SPONLY|FCVAR_UNLOGGED)
	RegisterHam(Ham_Item_Deploy, "weapon_awp", "OnSelectAWP", 1)
	RegisterHam(Ham_TakeDamage, "player", "PreTakeDamage", 0)
	cshop_get_string(ITEM_GOLDEN_AWP, "Damage", g_szDamage, charsmax(g_szDamage))
	g_iBPAmmo = cshop_get_int(ITEM_GOLDEN_AWP, "Backpack Ammo")
}

public plugin_precache()
{
	ITEM_GOLDEN_AWP = cshop_register_item("goldenawp", "Golden AWP", 9500)
	cshop_set_string(ITEM_GOLDEN_AWP, "Damage", "+100%")
	cshop_set_int(ITEM_GOLDEN_AWP, "Backpack Ammo", 30)

	#if defined V_MODEL
		precache_model(V_MODEL)
	#endif

	#if defined P_MODEL
		precache_model(P_MODEL)
	#endif
}

public cshop_item_selected(id, iItem)
{
	if(iItem == ITEM_GOLDEN_AWP)
	{
		g_bHasItem[id] = true

		if(get_user_weapon(id) == CSW_AWP)
		{
			RefreshAWPModel(id)
		}
		else if(!user_has_weapon(id, CSW_AWP))
		{
			give_item(id, "weapon_awp")
		}
		cs_set_user_bpammo(id, CSW_AWP, g_iBPAmmo)

		#if defined USE_GLOW
			set_user_rendering(id, kRenderFxGlowShell, GLOW_R, GLOW_G, GLOW_B, kRenderNormal, 10)
		#endif
	}
}

public cshop_item_removed(id, iItem)
{
	if(iItem == ITEM_GOLDEN_AWP)
	{
		g_bHasItem[id] = false
		#if defined USE_GLOW
			set_user_rendering(id,kRenderFxGlowShell,0,0,0,kRenderNormal,25)
		#endif
	}
}

public client_putinserver(id)
{
	g_bHasItem[id] = false
}

public OnSelectAWP(iEnt)
{
	new id = get_pdata_cbase(iEnt, m_pPlayer, 4)
	
	if(g_bHasItem[id] && is_user_connected(id))
	{
		RefreshAWPModel(id)
	}
}

public PreTakeDamage(iVictim, iInflictor, iAttacker, Float:fDamage, iDamageBits)
{
	if(is_user_alive(iAttacker) && iAttacker != iVictim && g_bHasItem[iAttacker])
	{
		SetHamParamFloat(4, math_add_f(fDamage, g_szDamage))
	}
}

RefreshAWPModel(const id)
{
	#if defined V_MODEL
		set_pev(id, pev_viewmodel2, V_MODEL)
	#endif

	#if defined P_MODEL
		set_pev(id, pev_weaponmodel2, P_MODEL)
	#endif
}

Float:math_add_f(Float:fNum, const szMath[])
{
	static szNewMath[16], Float:fMath, bool:bPercent, cOperator
   
	copy(szNewMath, charsmax(szNewMath), szMath)
	bPercent = szNewMath[strlen(szNewMath) - 1] == '%'
	cOperator = szNewMath[0]
   
	if(!isdigit(szNewMath[0]))
	{
		szNewMath[0] = ' '
	}
   
	if(bPercent)
	{
		replace(szNewMath, charsmax(szNewMath), "%", "")
	}
	   
	trim(szNewMath)
	fMath = str_to_float(szNewMath)
   
	if(bPercent)
	{
		fMath *= fNum / 100
	}
	   
	switch(cOperator)
	{
		case '+': fNum += fMath
		case '-': fNum -= fMath
		case '/': fNum /= fMath
		case '*': fNum *= fMath
		default: fNum = fMath
	}
   
	return fNum
}
aka kurdokoleno
Catch Mod - 87.121.112.232:27021

Публикувай отговор
  • Подобни теми
    Отговори
    Преглеждания
     Последно мнение

Обратно към “Одобрени плъгини”

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 16 госта