The Custom weapon (RPG-7) does not appear in slot 4 as expected

Статус
В этой теме нельзя размещать новые ответы.
Сообщения
5
Реакции
1
Ошибка
The Custom weapon (RPG-7) does not appear in slot 4 as expected
ОС
Linux
Amx Mod X
AMX Mod X 1.9.0.5263 (http://www.amxmodx.org)
Authors:
        David "BAILOPAN" Anderson, Pavol "PM OnoTo" Marko
        Felix "SniperBeamer" Geyer, Jonny "Got His Gun" Bergstrom
        Lukasz "SidLuke" Wlasinski, Christian "Basic-Master" Hammacher
        Borja "faluco" Ferrer, Scott "DS" Ehlert
Compiled: Oct 27 2019 16:23:31
Built from: https://github.com/alliedmodders/amxmodx/commit/15a14a0
Build ID: 5263:15a14a0
Core mode: JIT+ASM32
C++
Билд
Protocol version 48
Exe version 1.1.2.7/Stdio (cstrike)
ReHLDS version: 3.13.0.788-dev
Build date: 07:36:33 Jul 12 2023 (3378)
Build from: https://github.com/dreamstalker/rehlds/commit/f955b07
C++
ReGamedll
ReGameDLL version: 5.22.0.593-dev
Build date: 03:10:30 Jul 11 2023
Build from: https://github.com/s1lentq/ReGameDLL_CS/commit/e1d1c11
C++
Версия Metamod
Metamod-r v1.3.0.131, API (5:13)
Metamod-r build: 18:51:02 Jul 11 2022
Metamod-r from: https://github.com/theAsmodai/metamod-r/commit/adc9414
C++
Список метамодулей
Currently loaded plugins:
      description   stat pend  file                      vers         src  load  unload
 [ 1] Reunion       RUN   -    reunion_mm_i386.so        v0.1.75      ini  Start Never
 [ 2] AMX Mod X     RUN   -    amxmodx_mm_i386.so        v1.9.0.5263  ini  Start ANY  
 [ 3] Ham Sandwich  RUN   -    hamsandwich_amxx_i386.so  v1.9.0.5263  pl2  ANY   ANY  
 [ 4] CSX           RUN   -    csx_amxx_i386.so          v1.9.0.5263  pl2  ANY   ANY  
 [ 5] Fun           RUN   -    fun_amxx_i386.so          v1.9.0.5263  pl2  ANY   ANY  
 [ 6] FakeMeta      RUN   -    fakemeta_amxx_i386.so     v1.9.0.5263  pl2  ANY   ANY  
 [ 7] CStrike       RUN   -    cstrike_amxx_i386.so      v1.9.0.5263  pl2  ANY   ANY  
 [ 8] Engine        RUN   -    engine_amxx_i386.so       v1.9.0.5263  pl2  ANY   ANY
C++
Список плагинов
Currently loaded plugins:
       name                    version     author            file             status   
 [  1] Admin Base              1.9.0.5263  AMXX Dev Team     admin.amxx       running  
 [  2] Admin Commands          1.9.0.5263  AMXX Dev Team     admincmd.amxx    running  
 [  3] Admin Help              1.9.0.5263  AMXX Dev Team     adminhelp.amxx   running  
 [  4] Slots Reservation       1.9.0.5263  AMXX Dev Team     adminslots.amxx  running  
 [  5] Multi-Lingual System    1.9.0.5263  AMXX Dev Team     multilingual.am  running  
 [  6] Menus Front-End         1.9.0.5263  AMXX Dev Team     menufront.amxx   running  
 [  7] Commands Menu           1.9.0.5263  AMXX Dev Team     cmdmenu.amxx     running  
 [  8] Players Menu            1.9.0.5263  AMXX Dev Team     plmenu.amxx      running  
 [  9] Maps Menu               1.9.0.5263  AMXX Dev Team     mapsmenu.amxx    running  
 [ 10] Plugin Menu             1.9.0.5263  AMXX Dev Team     pluginmenu.amxx  running  
 [ 11] Admin Chat              1.9.0.5263  AMXX Dev Team     adminchat.amxx   running  
 [ 12] Anti Flood              1.9.0.5263  AMXX Dev Team     antiflood.amxx   running  
 [ 13] Scrolling Message       1.9.0.5263  AMXX Dev Team     scrollmsg.amxx   running  
 [ 14] Info. Messages          1.9.0.5263  AMXX Dev Team     imessage.amxx    running  
 [ 15] Admin Votes             1.9.0.5263  AMXX Dev Team     adminvote.amxx   running  
 [ 16] NextMap                 1.9.0.5263  AMXX Dev Team     nextmap.amxx     running  
 [ 17] Nextmap Chooser         1.9.0.5263  AMXX Dev Team     mapchooser.amxx  running  
 [ 18] TimeLeft                1.9.0.5263  AMXX Dev Team     timeleft.amxx    running  
 [ 19] Pause Plugins           1.9.0.5263  AMXX Dev Team     pausecfg.amxx    running  
 [ 20] Stats Configuration     1.9.0.5263  AMXX Dev Team     statscfg.amxx    running  
 [ 21] StatsX                  1.9.0.5263  AMXX Dev Team     statsx.amxx      running  
 [ 22] ACR-C Wood              1.0         GenDa             arcw.amxx        running  
 [ 23] Franchi SPAS-12 MAG     1.1         Sneaky.amxx, dia  shotgun.amxx     running  
 [ 24] Kar98k No-Scope         1.3         Salih Ceran       kar98k.amxx      debug    
 [ 25] Camera View Menu        0.0.3       ConnorMcLeod & N  Camera.amxx      running  
 [ 26] Weapon: RPG-7           0.7         PlaneShfit1231 /  rpg7.amxx        running
C++
Автор плагина
PlaneShfit1231 / Batcon
Версия плагина
0.7
Исходный код
#include <amxmodx>
#include <cstrike>
#include <engine>
#include <fakemeta>
#include <fun>
#include <hamsandwich>
#include <fakemeta_util>
#include <xs>

#define CustomItem(%0) (entity_get_int(%0, EV_INT_impulse) == WEAPON_SPECIAL_KEY)
#define get_bit(%1,%2) ((%1 & (1 << (%2 & 31))) ? true : false)
#define set_bit(%1,%2) %1 |= (1 << (%2 & 31))
#define reset_bit(%1,%2) %1 &= ~(1 << (%2 & 31))
#define IsConnected(%0) (1<=%0<=g_MaxPlayers && get_bit(g_connect, %0))

#define m_rgpPlayerItems_CWeaponBox 34
#define m_pPlayer 41
#define m_pNext 42
#define m_flNextPrimaryAttack 46
#define m_iShell 57
#define m_flNextAttack 83
#define m_flEjectBrass 111
#define m_rpgPlayerItems 367
#define m_rpgPlayerItems0 368
#define m_pActiveItem 373
#define m_fInReload 54
#define m_szAnimExtention 492

#define WEAPON_SPECIAL_KEY 1
#define WEAPON_BASE_ENT "weapon_ak47"
#define WEAPON_SPRITE_NAME "weapon_rpg7"
#define WEAPON_BASE_CSW CSW_AK47
#define WEAPON_EVENT "events/ak47.sc"
#define WEAPON_ANIM_TEXT "rpg7"
#define WEAPON_ROCKET_CLASS "rpg7_rocket"

#define WEAPON_SHOOT_DELAY 1.0
#define WEAPON_RECOIL 9.5
#define WEAPON_CLIP 1
#define WEAPON_AMMO 90
#define WEAPON_RELOAD_TIME 2.1
#define WEAPON_DRAW_DELAY 1.1
#define PRI_AMMO_ID 2
#define SLOT_ID 3
#define NUM_IN_SLOT 1
#define ITEM_FLAGS 0

#define EXPLODE_DAMAGE 800.0 
#define EXPLODE_RADIUS 200.0

#define WEAPON_MODEL_VIEW "models/rpg7/v_rpg7.mdl"
#define WEAPON_MODEL_PLAYER "models/rpg7/p_rpg7.mdl"
#define WEAPON_MODEL_WORLD "models/rpg7/w_rpg7.mdl"
#define WEAPON_MODEL_ROCKET "models/rpg7/s_rpg7.mdl"
#define WEAPON_SOUND_SHOOT "weapons/rpg7_shoot.wav"
#define WEAPON_SPRITE_MUZZLEFLASH "sprites/smokepuff.spr"

#define ROCKET_EXPLOSION "sprites/fexplo.spr"
#define ROCKET_EXPLOSION_SMALL "sprites/eexplo.spr"
#define ROCKET_PUFF "sprites/effects/rainsplash.spr"


new const WEAPON_SOUNDS[][] = {
	"weapons/rpg7_reload.wav",
	"weapons/rpg7_draw.wav"
}
new const WEAPON_SPITES[][] = {
	"sprites/zombie_plague/640hud7.spr",
	"sprites/zombie_plague/640hud118.spr"
}

new g_connect, g_MaxPlayers, sExplo, sExploSmall, g_event, sMuzzleFlash, g_fw_index, g_smoke_id, g_mode[33];

public plugin_init() {
	register_plugin("Weapon: RPG-7", "0.7", "PlaneShfit1231 / Batcon");
	
	RegisterHam(Ham_Spawn, "player", "@Ham_CBasePlayer_Spawn_Post", 1);
	RegisterHam(Ham_Item_ItemSlot, WEAPON_BASE_ENT, "@Ham_CBasePlayer_ItemSlot");
    
	RegisterHam(Ham_Item_Deploy, WEAPON_BASE_ENT, "fw_Item_Deploy_Post", 1);
	RegisterHam(Ham_Item_Holster, WEAPON_BASE_ENT, "fw_Item_Holster_Post", 1);
	RegisterHam(Ham_Weapon_Reload, WEAPON_BASE_ENT, "fw_Weapon_Reload_Post", 1);
	RegisterHam(Ham_Weapon_PrimaryAttack, WEAPON_BASE_ENT, "fw_Weapon_PrimaryAttack");
	RegisterHam(Ham_Item_AddToPlayer, WEAPON_BASE_ENT, "fw_Item_AddToPlayer_Post", 1);
	RegisterHam(Ham_Item_PostFrame, WEAPON_BASE_ENT, "fw_Item_PostFrame");
	RegisterHam(Ham_TraceAttack, "func_breakable", "fw_TraceAttack");
	RegisterHam(Ham_TraceAttack, "hostage_entity", "fw_TraceAttack");
	RegisterHam(Ham_TraceAttack, "player", "fw_TraceAttack");
	RegisterHam(Ham_TraceAttack, "func_breakable", "fw_TraceAttack_Post", 1);
	RegisterHam(Ham_TraceAttack, "func_wall", "fw_TraceAttack_Post", 1);
	RegisterHam(Ham_TraceAttack, "func_door", "fw_TraceAttack_Post", 1);
	RegisterHam(Ham_TraceAttack, "func_plat", "fw_TraceAttack_Post", 1);
	RegisterHam(Ham_TraceAttack, "func_rotating", "fw_TraceAttack_Post", 1);
	RegisterHam(Ham_TraceAttack, "worldspawn", "fw_TraceAttack_Post", 1);
	RegisterHam(Ham_Spawn, "weaponbox", "fw_Spawn_Weaponbox_Post", 1);
	unregister_forward(FM_PrecacheEvent, g_fw_index, 1);
	register_forward(FM_UpdateClientData, "fw_UpdateClientData_Post", 1);
	register_forward(FM_SetModel, "fw_SetModel");
	register_forward(FM_PlaybackEvent, "fw_PlaybackEvent");
	register_touch(WEAPON_ROCKET_CLASS, "*", "fw_RocketTouch");
	register_think(WEAPON_ROCKET_CLASS, "fw_RocketThink" )
	g_MaxPlayers = get_maxplayers();
	state WeaponBox_Disabled;
	register_clcmd(WEAPON_SPRITE_NAME, "hook_weapon");
}
public plugin_precache() {
	static buffer[64], i;
	engfunc(EngFunc_PrecacheModel, WEAPON_MODEL_VIEW);
	engfunc(EngFunc_PrecacheModel, WEAPON_MODEL_PLAYER);
	engfunc(EngFunc_PrecacheModel, WEAPON_MODEL_WORLD);
	engfunc(EngFunc_PrecacheModel, WEAPON_MODEL_ROCKET);
	engfunc(EngFunc_PrecacheSound, WEAPON_SOUND_SHOOT);
	for(i = 0; i < sizeof WEAPON_SOUNDS;i++) engfunc(EngFunc_PrecacheSound, WEAPON_SOUNDS[i]);
	for(i = 0; i < sizeof WEAPON_SPITES;i++) engfunc(EngFunc_PrecacheGeneric, WEAPON_SPITES[i]);
	format(buffer, charsmax(buffer), "sprites/%s.txt", WEAPON_SPRITE_NAME);
	engfunc(EngFunc_PrecacheGeneric, buffer);
	sExplo = engfunc(EngFunc_PrecacheModel, ROCKET_EXPLOSION);
	sExploSmall = engfunc(EngFunc_PrecacheModel, ROCKET_EXPLOSION_SMALL);
	sMuzzleFlash = engfunc(EngFunc_PrecacheModel, WEAPON_SPRITE_MUZZLEFLASH);
	g_smoke_id = engfunc(EngFunc_PrecacheModel, ROCKET_PUFF)
	g_fw_index = register_forward(FM_PrecacheEvent, "fw_PrecacheEvent_Post", 1);
}
public client_putinserver(id) {
	set_bit(g_connect, id);
	g_mode[id] = 0;
}
public client_disconnected(id) {
	reset_bit(g_connect, id);
	g_mode[id] = 0;
}
public hook_weapon(id) {
	engclient_cmd(id, WEAPON_BASE_ENT);
}

@Ham_CBasePlayer_Spawn_Post(id)
{
	if(!is_user_alive(id))
		return;
	
	give_rpg7(id) 
}

@Ham_CBasePlayer_ItemSlot( const item )
{
	SetHamReturnInteger(SLOT_ID + 1);
	return HAM_SUPERCEDE;
}


public give_rpg7(id) {
	//UTIL_DropWeapon(id, 1);
	if(!give_weapon(id)) return;
	emit_sound(id, CHAN_ITEM, "items/gunpickup2.wav", VOL_NORM, ATTN_NORM, 0, PITCH_NORM);
	g_mode[id] = 0;
	/*static amount; amount = GetAmmoDifference(id, WEAPON_BASE_CSW, WEAPON_AMMO)
	if(amount) {
		AmmoPickup_Icon(id, 4, WEAPON_CLIP, amount);
		cs_set_user_bpammo(id, WEAPON_BASE_CSW, WEAPON_AMMO);
	}*/
}
public give_weapon(id) {
	new ent = create_entity(WEAPON_BASE_ENT);
	if(!is_valid_ent(ent)) return false;
	entity_set_int(ent, EV_INT_spawnflags, SF_NORESPAWN);
	entity_set_int(ent, EV_INT_impulse, WEAPON_SPECIAL_KEY);
	ExecuteHam(Ham_Spawn, ent);
	cs_set_weapon_ammo(ent, WEAPON_CLIP);
	if(!ExecuteHamB(Ham_AddPlayerItem, id, ent)) {
		entity_set_int(ent, EV_INT_flags, FL_KILLME);
		return true;
	}
	ExecuteHamB(Ham_Item_AttachToPlayer, ent, id);
	return true;
}
public fw_Item_PostFrame(ent) {
	if(!CustomItem(ent)) return HAM_IGNORED;
	static id; id = get_pdata_cbase(ent, m_pPlayer, 4);
	if(get_pdata_int(ent, m_fInReload, 4)) {
		static clip; clip = cs_get_weapon_ammo(ent);
		static ammo; ammo = cs_get_user_bpammo(id, WEAPON_BASE_CSW);
		static j; j = min(WEAPON_CLIP - clip, ammo); 
		cs_set_weapon_ammo(ent, clip+j);
		cs_set_user_bpammo(id, WEAPON_BASE_CSW, ammo-j);
		set_pdata_int(ent, m_fInReload, 0, 4);
	} 
	if(!g_mode[id] && get_pdata_float(id, m_flNextAttack, 5) <= 0.0 && get_user_button(id) & IN_ATTACK2) {
     		UTIL_PlayWeaponAnimation(id, cs_get_weapon_ammo(ent) == 1 ? 9 : 11);
		set_pdata_float(id, m_flNextAttack, 0.5, 5);
		set_pdata_int(id, 363, 65);
     		g_mode[id] = 1; 
	}
	else if(g_mode[id] && get_pdata_float(id, m_flNextAttack, 5) <= 0.0 && get_user_button(id) & IN_ATTACK2) {
		UTIL_PlayWeaponAnimation(id, cs_get_weapon_ammo(ent) == 1 ? 10 : 12);
		set_pdata_float(id, m_flNextAttack, 0.5, 5);
     		g_mode[id] = 0; 
	}
	if(g_mode[id] && pev(id, pev_weaponanim) == 0) UTIL_PlayWeaponAnimation(id, cs_get_weapon_ammo(ent) == 1 ? 1:3 );
	if(!g_mode[id]) set_pdata_int(id, 363, 90);
	return HAM_IGNORED;
}
public fw_Item_Deploy_Post(ent) {
	if(!CustomItem(ent)) return HAM_IGNORED;
	static id; id = get_pdata_cbase(ent, m_pPlayer, 4);
	entity_set_string(id, EV_SZ_viewmodel, WEAPON_MODEL_VIEW);
	entity_set_string(id, EV_SZ_weaponmodel, WEAPON_MODEL_PLAYER);
	if(cs_get_weapon_ammo(ent) == 1) UTIL_PlayWeaponAnimation(id, 7);
	else UTIL_PlayWeaponAnimation(id, 8);
	g_mode[id] = 0;
	set_pdata_string(id, m_szAnimExtention * 4, WEAPON_ANIM_TEXT, -1 , 20)
	set_pdata_float(id, m_flNextAttack, WEAPON_DRAW_DELAY, 5);
	message_begin(MSG_ONE, get_user_msgid("HideWeapon"), {0,0,0}, id);
	write_byte(1<<6);
	message_end();
	return HAM_IGNORED;
}
public fw_Item_Holster_Post(ent) {
	if(!CustomItem(ent)) return HAM_IGNORED;
	static id; id = get_pdata_cbase(ent, m_pPlayer, 4);
	message_begin(MSG_ONE, get_user_msgid("HideWeapon"), {0,0,0}, id);
	write_byte(0);
	message_end();
	return HAM_IGNORED;
}
public fw_Weapon_Reload_Post(ent) {
	if(!CustomItem(ent)) return HAM_IGNORED;
	static clip; clip = cs_get_weapon_ammo(ent);
	static id; id = get_pdata_cbase(ent, m_pPlayer, 4);
	if(cs_get_user_bpammo(id, WEAPON_BASE_CSW) <= 0 || clip >= WEAPON_CLIP) return HAM_SUPERCEDE;
	UTIL_PlayWeaponAnimation(id, 6);
	g_mode[id] = 0;
	set_pdata_float(get_pdata_cbase(ent, m_pPlayer, 4), m_flNextAttack, WEAPON_RELOAD_TIME, 5);
	return HAM_IGNORED;
}
public fw_Weapon_PrimaryAttack(ent) {
	if(!CustomItem(ent) || !cs_get_weapon_ammo(ent)) return HAM_IGNORED;
	ExecuteHam(Ham_Weapon_PrimaryAttack, ent);
	static id; id = get_pdata_cbase(ent, m_pPlayer, 4);
	emit_sound(id, CHAN_WEAPON, WEAPON_SOUND_SHOOT, VOL_NORM, ATTN_NORM, 0, PITCH_NORM);
	UTIL_PlayWeaponAnimation(id, g_mode[id] ? 5 : 4);
	set_pdata_float(ent, m_flNextPrimaryAttack, WEAPON_SHOOT_DELAY, 4);
	static Float:Punchangle[3]; entity_get_vector(id, EV_VEC_punchangle, Punchangle);
	xs_vec_mul_scalar(Punchangle, WEAPON_RECOIL, Punchangle);
	entity_set_vector(id, EV_VEC_punchangle, Punchangle);
	UTIL_MakeMuzzle(id)
	fw_Weapon_MakeRocket(id)
	g_mode[id] = 0;
	return HAM_SUPERCEDE;
}
public fw_Weapon_MakeRocket(id) {
	static Float:StartOrigin[3], Float:TargetOrigin[3], Float:angles[3], Float:angles_fix[3];
	if(!g_mode[id]) get_position(id, 30.0, 8.0, -8.0, StartOrigin);
	else get_position(id, 30.0, 1.0, -15.0, StartOrigin);
	pev(id,pev_v_angle,angles);
	static Ent; Ent = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "info_target"));
	if(!pev_valid(Ent)) return;
	angles_fix[0] = 360.0 - angles[0];
	angles_fix[1] = angles[1];
	angles_fix[2] = angles[2];
	set_pev(Ent, pev_movetype, MOVETYPE_TOSS);
	set_pev(Ent, pev_owner, id);
	entity_set_string(Ent, EV_SZ_classname, WEAPON_ROCKET_CLASS);
	engfunc(EngFunc_SetModel, Ent, WEAPON_MODEL_ROCKET);
	set_pev(Ent, pev_mins,{ -0.1, -0.1, -0.1 });
	set_pev(Ent, pev_maxs,{ 0.1, 0.1, 0.1 });
	set_pev(Ent, pev_origin, StartOrigin);
	set_pev(Ent, pev_angles, angles_fix);
	set_pev(Ent, pev_gravity, g_mode[id] ? 0.01 : -0.4);
	set_pev(Ent, pev_solid, SOLID_BBOX);
	set_pev(Ent, pev_frame, 0.0);
	set_pev(Ent, pev_nextthink, get_gametime() + 0.2)
	static Float:Velocity[3];
	fm_get_aim_origin(id, TargetOrigin);
	get_speed_vector(StartOrigin, TargetOrigin, 1500.0, Velocity);
	set_pev(Ent, pev_velocity, Velocity);
}
public fw_RocketThink(ent) {
	if(!pev_valid(ent)) return;
	new Float:Origin[3];
	pev(ent, pev_origin, Origin)
	message_begin(MSG_BROADCAST, SVC_TEMPENTITY);
	write_byte(TE_EXPLOSION);
	engfunc(EngFunc_WriteCoord, Origin[0]);
	engfunc(EngFunc_WriteCoord, Origin[1]);
	engfunc(EngFunc_WriteCoord, Origin[2]-10);
	write_short(g_smoke_id);
	write_byte(2);
	write_byte(40);
	write_byte(TE_EXPLFLAG_NOPARTICLES | TE_EXPLFLAG_NOSOUND | TE_EXPLFLAG_NODLIGHTS);
	message_end();
	set_pev(ent, pev_nextthink, get_gametime() + 0.07)
}
public fw_RocketTouch(Ent, Id) {
	if(!pev_valid(Ent)) return;
	static classnameptd[32]; pev(Id, pev_classname, classnameptd, 31);
	if (equali(classnameptd, "func_breakable")) ExecuteHamB(Ham_TakeDamage, Id, 0, 0, 300.0, DMG_GENERIC);
	new Float:originZ[3], Float:originX[3];
	pev(Ent, pev_origin, originX);
	entity_get_vector(Ent, EV_VEC_origin, originZ);
	engfunc(EngFunc_MessageBegin, MSG_PAS, SVC_TEMPENTITY, originX, 0);
	write_byte(TE_WORLDDECAL);
	engfunc(EngFunc_WriteCoord, originZ[0]);
	engfunc(EngFunc_WriteCoord, originZ[1]);
	engfunc(EngFunc_WriteCoord, originZ[2]);
	write_byte(engfunc(EngFunc_DecalIndex,"{scorch3"));
	message_end();
	message_begin(MSG_BROADCAST, SVC_TEMPENTITY);
	write_byte(TE_EXPLOSION);
	engfunc(EngFunc_WriteCoord, originZ[0]);
	engfunc(EngFunc_WriteCoord, originZ[1]);
	engfunc(EngFunc_WriteCoord, originZ[2] + 50);
	write_short(sExplo);
	write_byte(25);
	write_byte(30);
	write_byte(0);
	message_end();
	message_begin(MSG_BROADCAST, SVC_TEMPENTITY);
	write_byte(TE_EXPLOSION);
	engfunc(EngFunc_WriteCoord, originX[0]);
	engfunc(EngFunc_WriteCoord, originX[1] + 50);
	engfunc(EngFunc_WriteCoord, originX[2] + 80);
	write_short(sExploSmall);
	write_byte(25);
	write_byte(30);
	write_byte(TE_EXPLFLAG_NOPARTICLES | TE_EXPLFLAG_NOSOUND);
	message_end();
	fw_DamageRocket(Ent);
	remove_entity(Ent);
}
public fw_DamageRocket(Ent) {
	static Owner; Owner = pev(Ent, pev_owner);
	static Attacker;
	if(!is_user_alive(Owner)) {
		Attacker = 0;
		return;
	} 
	else {
		Attacker = Owner;
	}
	for(new i = 0; i < g_MaxPlayers; i++) {
		if(!is_user_alive(i)) continue;
		if(entity_range(i, Ent) > EXPLODE_RADIUS) continue;
		ExecuteHamB(Ham_TakeDamage, i, 0, Attacker, EXPLODE_DAMAGE, DMG_BULLET);
	}
}

public fw_Item_AddToPlayer_Post(ent, id) {
	switch(entity_get_int(ent, EV_INT_impulse)) {
		case 0: UTIL_Weaponlist(id, WEAPON_BASE_ENT, PRI_AMMO_ID, 90, 0, 1, WEAPON_BASE_CSW, 0);
		case WEAPON_SPECIAL_KEY: UTIL_Weaponlist(id, WEAPON_SPRITE_NAME, PRI_AMMO_ID, WEAPON_AMMO, SLOT_ID, NUM_IN_SLOT, WEAPON_BASE_CSW, ITEM_FLAGS);
	}
}

public fw_TraceAttack(entity, attacker, Float:damage) {
         if(!IsConnected(attacker) || !CustomItem(get_pdata_cbase(attacker, m_pActiveItem, 5))) return HAM_IGNORED;
         return HAM_SUPERCEDE;
}
public fw_TraceAttack_Post(entity, attacker, Float:damage, Float:fDir[3], ptr, damagetype) {
         if(!CustomItem(get_pdata_cbase(attacker, m_pActiveItem, 5))) return HAM_IGNORED;
         return HAM_SUPERCEDE;
}
public fw_Spawn_Weaponbox_Post(ent) {
	if(is_valid_ent(ent))
		state (is_valid_ent(entity_get_edict(ent, EV_ENT_owner))) WeaponBox_Enabled;
}
public fw_UpdateClientData_Post(id, SendWeapons, CD_Handle) {
        if(!is_user_alive(id) || !CustomItem(get_pdata_cbase(id, m_pActiveItem, 5))) return FMRES_IGNORED;
        set_cd(CD_Handle, CD_flNextAttack, 999999.0);
        return FMRES_HANDLED;
}
public fw_SetModel(entity) <WeaponBox_Enabled> {
	state WeaponBox_Disabled;
	if(!is_valid_ent(entity)) return FMRES_IGNORED;
	static i;
	for(i = 0; i < 6; i++) {
		static item; item = get_pdata_cbase(entity, m_rgpPlayerItems_CWeaponBox + i, 4);
		if(is_valid_ent(item) && CustomItem(item)) {
			entity_set_model(entity, WEAPON_MODEL_WORLD);
			return FMRES_SUPERCEDE;
		}
	}
	return FMRES_IGNORED;
}
public fw_SetModel() <WeaponBox_Disabled> {
	return FMRES_IGNORED;
}
public fw_PrecacheEvent_Post(type, name[]) {
	if(equal(WEAPON_EVENT, name)) {
		g_event = get_orig_retval();
		return FMRES_HANDLED;
	}
	return FMRES_IGNORED;
}
public fw_PlaybackEvent(flags, invoker, eventid, Float:delay, Float:origin[3], Float:iangles[3], Float:fparam1, Float:fparam2, iParam1, iParam2, bParam1, bParam2) {
	if(eventid != g_event || !IsConnected(invoker) || !CustomItem(get_pdata_cbase(invoker, m_pActiveItem, 5))) return FMRES_IGNORED;
	return FMRES_SUPERCEDE;
}
public UTIL_MakeMuzzle(id) {
	static Float:Origin[3];
	if(!g_mode[id]) get_position(id, 30.0, 8.0, -15.0, Origin);
	else get_position(id, 30.0, 1.0, -15.0, Origin);
	engfunc(EngFunc_MessageBegin, MSG_ONE_UNRELIABLE, SVC_TEMPENTITY, Origin, id);
	write_byte(TE_EXPLOSION);
	engfunc(EngFunc_WriteCoord, Origin[0]);
	engfunc(EngFunc_WriteCoord, Origin[1]);
	engfunc(EngFunc_WriteCoord, Origin[2]);
	write_short(sMuzzleFlash)
	write_byte(9);
	write_byte(20);
	write_byte(TE_EXPLFLAG_NOPARTICLES | TE_EXPLFLAG_NOSOUND | TE_EXPLFLAG_NODLIGHTS);
	message_end();
}
stock GetEntityTouchDirect(ent, Float:target[3], speed) {
	static Float:vec[3];
	aim_at_origin(ent,target,vec);
	engfunc(EngFunc_MakeVectors, vec);
	global_get(glb_v_forward, vec);
	vec[0] *= speed;
	vec[1] *= speed;
	vec[2] *= speed * 0.1;
	set_pev(ent, pev_velocity, vec);
	new Float:angle[3];
	aim_at_origin(ent, target, angle);
	angle[0] = 0.0;
	entity_set_vector(ent, EV_VEC_angles, angle);
}
stock get_position(id,Float:forw, Float:right, Float:up, Float:vStart[]) {
	static Float:vOrigin[3], Float:vAngle[3], Float:vForward[3], Float:vRight[3], Float:vUp[3];
	pev(id, pev_origin, vOrigin);
	pev(id, pev_view_ofs, vUp);
	xs_vec_add(vOrigin, vUp, vOrigin);
	pev(id, pev_v_angle, vAngle);
	angle_vector(vAngle, ANGLEVECTOR_FORWARD, vForward);
	angle_vector(vAngle, ANGLEVECTOR_RIGHT, vRight);
	angle_vector(vAngle, ANGLEVECTOR_UP, vUp);
	vStart[0] = vOrigin[0] + vForward[0] * forw + vRight[0] * right + vUp[0] * up;
	vStart[1] = vOrigin[1] + vForward[1] * forw + vRight[1] * right + vUp[1] * up;
	vStart[2] = vOrigin[2] + vForward[2] * forw + vRight[2] * right + vUp[2] * up;
}
stock get_speed_vector(const Float:origin1[3],const Float:origin2[3],Float:speed, Float:new_velocity[3]) {
	new_velocity[0] = origin2[0] - origin1[0];
	new_velocity[1] = origin2[1] - origin1[1];
	new_velocity[2] = origin2[2] - origin1[2];
	static Float:num; num = floatsqroot(speed * speed / (new_velocity[0] * new_velocity[0] + new_velocity[1] * new_velocity[1] + new_velocity[2] * new_velocity[2]));
	new_velocity[0] *= num;
	new_velocity[1] *= num;
	new_velocity[2] *= num;
	return 1;
}
stock UTIL_PlayWeaponAnimation(id, Sequence) {
	entity_set_int(id, EV_INT_weaponanim, Sequence);
	message_begin(MSG_ONE_UNRELIABLE, SVC_WEAPONANIM, _, id);
	write_byte(Sequence);
	write_byte(0);
	message_end();
}
stock UTIL_DropWeapon(id, slot) {
        if(!(1 <= slot <= 2)) return 0;
        static iCount; iCount = 0;
        static iEntity; iEntity = get_pdata_cbase(id, (m_rpgPlayerItems + slot), 5);
        if(iEntity > 0) {
               static iNext;
               static szWeaponName[32];
               do{
                       iNext = get_pdata_cbase(iEntity, m_pNext, 4);
                       if(get_weaponname(cs_get_weapon_id(iEntity), szWeaponName, charsmax(szWeaponName))) {  
                               engclient_cmd(id, "drop", szWeaponName);
                               iCount++;
		       }
               } while(( iEntity = iNext) > 0);
	}
        return iCount;
}
stock UTIL_Weaponlist(id, weaponlist[], const int, int2, int3, int4, int5, int6) {
	static msg_WeaponList; if(!msg_WeaponList) msg_WeaponList = get_user_msgid("WeaponList");
	message_begin(MSG_ONE, msg_WeaponList, _, id);
	write_string(weaponlist);
	write_byte(int);
	write_byte(int2);
	write_byte(-1);
	write_byte(-1);
	write_byte(int3);
	write_byte(int4);
	write_byte(int5);
	write_byte(int6);
	message_end();
}
stock UTIL_AmmoPickup(id, AmmoID, Amount) {
	static msg_AmmoPickup; if(!msg_AmmoPickup) msg_AmmoPickup = get_user_msgid("AmmoPickup");
	message_begin(MSG_ONE_UNRELIABLE, msg_AmmoPickup, _, id);
	write_byte(AmmoID);
	write_byte(Amount);
	message_end();
}
stock AmmoPickup_Icon(id, AmmoID, Clip, Amount) {
	static i, count; count = floatround(Amount*1.0/Clip, floatround_floor);
	static AmountAmmo; AmountAmmo = 0;
	for(i=0;i<count;i++) {
		UTIL_AmmoPickup(id, AmmoID, Clip);
		AmountAmmo+=Clip;
	}
	static RestAmmo; RestAmmo = Amount-AmountAmmo;
	if(RestAmmo) UTIL_AmmoPickup(id, AmmoID, RestAmmo);
}
stock GetAmmoDifference(id, csw, amount) {
	static ammo; ammo = cs_get_user_bpammo(id, csw);
	if(ammo >= amount) return 0;
	return amount-ammo;
}
C++
I've configured the slot redirection to put the RPG-7 in slot 4.
However, the RPG-7 does not appear in slot 4 as expected. Instead, it shows up in slots 1, 2, 3, and 5 without any issues.

I've double-checked my configuration files and scripts, but I can't figure out what's causing this problem. I would greatly appreciate it if someone could help me troubleshoot this issue and provide guidance on how to make the RPG-7 appear in slot 4 as intended.
 
В этой теме было размещено решение! Перейти к решению.

Вложения

Сообщения
5
Реакции
1
I tried using #define SLOT_ID 3 in my configuration, but the issue still persists. I've configured the RPG-7 to be in slot 4 but it doesn't appear.


But it appears in slots 1, 2, 3, and 5 without any issues, As you see I've configured the RPG-7 to be in slot 3 (mele slot) and it appears:
5 Сен 2023
I believe there might be something preventing the RPG-7 from appearing in slot 4, and I'm looking for additional guidance to identify and resolve this issue. Any help or insights would be greatly appreciated.
 
Сообщения
295
Реакции
143
Помог
15 раз(а)
Если у тебя в 4м слоте больше ничего кастомного нету попробуй вместо
#define NUM_IN_SLOT 1
поставить 4 тоесть сразу за гранатами, если есть еще что то кастомное - то в следующую свободную позицию ...
 
Сообщения
5
Реакции
1
Если у тебя в 4м слоте больше ничего кастомного нету попробуй вместо
#define NUM_IN_SLOT 1
поставить 4 тоесть сразу за гранатами, если есть еще что то кастомное - то в следующую свободную позицию ...
Solved, Thank you
 
Статус
В этой теме нельзя размещать новые ответы.

Пользователи, просматривающие эту тему

Сейчас на форуме нет ни одного пользователя.
Сверху Снизу