Как се регистрира команда админ да дава итем на играч?

Ако имате затруднения при изработката/преработката на даден плъгин - пишете тук, ще се опитаме да ви помогнем!
Аватар
deadlylord
Извън линия
Потребител
Потребител
Мнения: 572
Регистриран на: 04 Апр 2017, 16:35
Местоположение: Бургас, България
Получена благодарност: 2 пъти
Обратна връзка:

Как се регистрира команда админ да дава итем на играч?

Мнение от deadlylord » 20 Мар 2018, 08:41

Като цяло тези златни оръжия са доста зле, когато използваш кода, за да си направиш друго златно оръжие играча го държи все едно е АК47, виждаш фалшив модел на АК47, ако рунда свърши и държиш златното оръжието, лазерите не следват патроните ... като цяло махането на предметите при spawn го има в главния код. Добавих го към този предмет.

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

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

#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 20
	#define BULLET_LIFE 2
	#define BULLET_WIDTH 10
	#define BULLET_NOISE 7
	#define BULLET_COLOR_RED 0
	#define BULLET_COLOR_GREEN 112
	#define BULLET_COLOR_BLUE 255
	#define BULLET_BRIGHTNESS 255
	#define BULLET_SPEED 300
	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")
	register_concmd("amx_goldenak", "AdminCommand_Goldenak", ADMIN_BAN, "<name|#userid>")
	RegisterHam(Ham_Spawn, "player", "fwHamPlayerSpawnPost", 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 AdminCommand_Goldenak(id, iLevel, iCid)
{
	if(!cmd_access(id, iLevel, iCid, 2))
		return PLUGIN_HANDLED
		
	new szPlayer[32]
	read_argv(1, szPlayer, charsmax(szPlayer))
	
	new iPlayer = cmd_target(id, szPlayer, CMDTARGET_OBEY_IMMUNITY|CMDTARGET_ALLOW_SELF|CMDTARGET_ONLY_ALIVE)
	
	if(!iPlayer)
		return PLUGIN_HANDLED
		
	new szName[2][32]
	get_user_name(id, szName[0], charsmax(szName[]))
	get_user_name(iPlayer, szName[1], charsmax(szName[]))
	
	g_blGoldenAK[iPlayer] = true
	give_item(iPlayer, GOLDENAK_WEAPON_STR)
	cs_set_user_bpammo(iPlayer, GOLDENAK_WEAPON_CSW, GOLDENAK_AMMO)
	goldenModel(iPlayer)
	CC_SendMessage(0, "&x05Administrator &x04%s &x05dade Goldenak na &x04%s", szName[0], szName[1])
	return PLUGIN_HANDLED
}


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)
			
}	
public fwHamPlayerSpawnPost(id)
{
g_blGoldenAK[id] = false
set_default_model(id)
}
#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)
	}
}

public 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

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

Обратно към “Помощ в скриптирането”

Кой е на линия

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