- Ошибка
-
Проигрывается звук стандартного ножа вместо кастомного на всех ножах при смене оружия
- ОС
- Windows
- Amx Mod X
-
AMX Mod X 1.10.0.5445 (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: Sep 17 2021 11:22:20
Built from: https://github.com/alliedmodders/amxmodx/commit/8413946a
Build ID: 5445:8413946a
Core mode: JIT+ASM32
- Билд
-
Protocol version 48
Exe version 1.1.2.7/Stdio (cstrike)
ReHLDS version: 3.13.0.786-dev
Build date: 10:37:13 Feb 28 2023 (3244)
Build from: https://github.com/dreamstalker/rehlds/commit/8f8573f
- ReGamedll
-
ReGameDLL version: 5.22.0.595-dev
Build date: 19:19:05 Apr 03 2023
Build from: https://github.com/s1lentq/ReGameDLL_CS/commit/70979bb
- Версия Metamod
-
Metamod-r v1.3.0.131, API (5:13)
Metamod-r build: 18:51:28 Jul 11 2022
Metamod-r from: https://github.com/theAsmodai/metamod-r/commit/adc9414
- Список метамодулей
-
[ 1] SafeNameAndChat RUN - safenameandchat.dll v1.2 Beta 3 ini ANY ANY
[ 2] AMX Mod X RUN - amxmodx_mm.dll v1.10.0.5445 ini Start ANY
[ 3] Reunion RUN - reunion_mm.dll v0.1.92d ini Start Never
[ 4] Rechecker RUN - rechecker_mm.dll v2.7 ini Chlvl ANY
[ 5] ReAuthCheck RUN - reauthcheck_mm.dll v0.1.6 ini Start Never
[ 6] Revoice RUN - revoice_mm.dll v0.1.0.36 ini Start Never
[ 7] WHBlocker RUN - whblocker_mm.dll v1.5.697 ini Chlvl ANY
[ 8] ReSemiclip RUN - resemiclip_mm.dll v2.3.9 ini Chlvl ANY
[ 9] HitBox Fix RUN - hitbox_fix_mm.dll v1.1.2 ini Start ANY
[10] ReAPI RUN - reapi_amxx.dll v5.23.0.263-dev pl2 ANY Never
[11] ReAimDetector RUN - reaimdetector_amxx.dll v0.2.2 pl2 ANY Never
[12] hackdetector RUN - hackdetector_amxx.dll v0.15.328.lite pl2 ANY ANY
[13] CStrike RUN - cstrike_amxx.dll v1.10.0.5445 pl2 ANY ANY
[14] FakeMeta RUN - fakemeta_amxx.dll v1.10.0.5445 pl2 ANY ANY
[15] Fun RUN - fun_amxx.dll v1.10.0.5445 pl2 ANY ANY
[16] Engine RUN - engine_amxx.dll v1.10.0.5445 pl2 ANY ANY
[17] Ham Sandwich RUN - hamsandwich_amxx.dll v1.10.0.5445 pl2 ANY ANY
- Список плагинов
-
[ 1] 0 Admin Base 1.10.0.544 AMXX Dev Team admin.amxx running
[ 2] 1 Admin Commands 1.10.0.544 AMXX Dev Team admincmd.am running
[ 3] 2 Slots Reservation 1.10.0.544 AMXX Dev Team adminslots. running
[ 4] 3 Commands Menu 1.10.0.544 AMXX Dev Team cmdmenu.amx running
[ 5] 4 Players Menu 1.10.0.544 AMXX Dev Team plmenu.amxx running
[ 6] 5 Maps Menu 1.10.0.544 AMXX Dev Team mapsmenu.am running
[ 7] 6 Admin Chat 1.10.0.544 AMXX Dev Team adminchat.a running
[ 8] 7 Admin Votes 1.10.0.544 AMXX Dev Team adminvote.a running
[ 9] 8 Pause Plugins 1.10.0.544 AMXX Dev Team pausecfg.am running
[ 10] 9 Stats Configuration 1.10.0.544 AMXX Dev Team statscfg.am running
[ 11] 10 Restrict Weapons 1.10.0.544 AMXX Dev Team restmenu.am running
[ 12] 11 ReAPI Test 1.0 s1lent reapi_test. running
[ 13] 12 ReAimDetector API 0.2.2 ReHLDS Team reaimdetect running
[ 14] 13 HackDetector 0.15.lite Lev @ AGHL.RU De hackdetecto running
[ 15] 14 [Customizable] AmxModM 0.0.5 Albertio amxmodmenu. running
[ 16] 15 GameName Changer 1.0.0 Nordic Warrior gamenamecha running
[ 17] 16 Reset Score 1.0 Silenttt resetscore. running
[ 18] 17 FocusOnVotemap 1.2.1 Boec[SpecOPs] focus_on_vo running
[ 19] 18 Team Select 1.6.0 F@nt0M teamselect. running
[ 20] 19 Chat Manager 1.1.2-16 Mistrick chatmanager running
[ 21] 20 Chat Manager: Addon 0.0.4-70 Mistrick chatmanager running
[ 22] 21 Potti 1.40 p3tsin potti.amxx running
[ 23] 22 Меню потти Only Locky pottimenu.a running
[ 24] 23 mute 1.0 Aziz mute.amxx running
[ 25] 24 Parachute 1.0 maeStro parachute.a running
[ 26] 25 Menu 1.0 WaT_1 menu.amxx running
[ 27] 26 Say me and Say hp 1.4 neygomon killerhp.am running
[ 28] 27 Simple Damager 2.1.0 fl0wer simple_dama running
[ 29] 28 Advanced Kill Assists 1.3c Xelson next21_kill running
[ 30] 29 Knives Menu 0.1 Subb98 knives_menu running
[ 31] 30 AMXX VIP Gold 1.0 Flymic24 amxx_vip_go running
[ 32] 31 Weapon Model + Sound R 1.2 GHW_Chronic new_weapons running
[ 33] 32 Map Manager: Core 3.1.5 Mistrick map_manager running
[ 34] 33 Map Manager: Scheduler 0.1.10 Mistrick map_manager running
[ 35] 34 Map Manager: Rtv 0.1.1 Mistrick map_manager running
[ 36] 35 Map Manager: Effects 0.1.1 Mistrick map_manager running
[ 37] 36 Map Manager: Informer 0.0.5 Mistrick map_manager running
[ 38] 37 Map Manager: Sounds 0.0.2 Mistrick map_manager running
38 plugins, 38 running
- Автор плагина
- knives_menu - Subb98, new_weapons - GHW_Chronic
- Версия плагина
- knives_menu - 0.1, new_weapons - 1.2
- Исходный код
-
// knives_menu:
#include <amxmodx>
#include <engine>
#include <fakemeta>
#include <hamsandwich>
#pragma semicolon 1
#define RES_PATH_STRLEN 64
#define MAX_PLAYERS 32
#define CFG_PATH_STRLEN 96
#define MAX_ITEMS_NUM 9
#define MENU_KEYS MENU_KEY_1|MENU_KEY_2|MENU_KEY_3|MENU_KEY_4|MENU_KEY_5|MENU_KEY_6|MENU_KEY_7|MENU_KEY_0
//#define USE_WORLD_MODEL // раскомментируйте эту строку, если планируете использовать w_ модели
#define DEPLOY_SEQUENCE_NUM 3
#define VIP_ACCESS_ADM ADMIN_RESERVATION
#define VIP_ACCESS_VIP ADMIN_LEVEL_H
#define SCOREATTRIB_VIP (1<<2)
#define m_pPlayer 41
#define EXTRAOFFSET_WEAPONS 4
new const MENU_ID[] = "_knives_menu";
enum _:MENU_DATA_SIZE {
md_name[32],
md_access,
md_mdl_p[RES_PATH_STRLEN],
md_mdl_v[RES_PATH_STRLEN],
#if defined USE_WORLD_MODEL
md_mdl_w[RES_PATH_STRLEN],
#endif
md_snd_deploy[RES_PATH_STRLEN],
md_snd_hit[RES_PATH_STRLEN],
md_snd_hitwall[RES_PATH_STRLEN],
md_snd_slash[RES_PATH_STRLEN],
md_snd_stab[RES_PATH_STRLEN]
}
new g_aMenuData[MAX_ITEMS_NUM][MENU_DATA_SIZE], g_iItemsNum, g_iMaxPlayers, g_iKnife[MAX_PLAYERS + 1];
public plugin_precache() {
new szFile[CFG_PATH_STRLEN], pFile;
get_localinfo("amxx_configsdir", szFile, charsmax(szFile));
add(szFile, charsmax(szFile), "/knives_menu.ini");
if((pFile = fopen(szFile, "rt"))) {
ReadFile(pFile, szFile);
} else {
new szError[CFG_PATH_STRLEN + 32];
formatex(szError, charsmax(szError), "File ^"%s^" not found", szFile);
set_fail_state(szError);
}
}
public plugin_init() {
register_plugin("Knives Menu", "0.1", "Subb98");
register_dictionary("knives_menu.txt");
register_clcmd("knives_menu", "CmdKnife");
register_clcmd("say /knife", "CmdKnife");
register_clcmd("say_team /knife", "CmdKnife");
register_menucmd(register_menuid(MENU_ID), MENU_KEYS, "HandleMenu");
register_message(get_user_msgid("ScoreAttrib"), "MessageScoreAttrib");
register_forward(FM_EmitSound, "FMEmitSoundPre");
#if defined USE_WORLD_MODEL
register_forward(FM_SetModel, "FMSetModelPre");
#endif
RegisterHam(Ham_Item_Deploy, "weapon_knife", "HamItemDeployPost", 1);
g_iMaxPlayers = get_maxplayers() + 1;
}
public client_putinserver(id) {
g_iKnife[id] = INVALID_HANDLE;
}
public CmdKnife(const id) {
new szMenu[512], iLen = formatex(szMenu, charsmax(szMenu), "\y%L^n^n", id, "KM_MENU_TITLE"), iKeys = MENU_KEY_0;
for(new i, iFlags = get_user_flags(id), j; i < g_iItemsNum; i++) {
if(check_flags(iFlags, g_aMenuData[i][md_access])) {
iKeys |= (1<<j);
iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\r[\y%d\r] \w%L^n", ++j, id, g_aMenuData[i][md_name]);
} else {
iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\d[%d] %L^n", ++j, id, g_aMenuData[i][md_name]);
}
}
formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\r[\y0\r] \y%L", id, "KM_MENU_EXIT");
return show_menu(id, iKeys, szMenu, -1, MENU_ID);
}
public HandleMenu(const id, const iKey) {
switch(iKey) {
case 9: {
return;
}
default: {
if(get_user_weapon(id) == CSW_KNIFE) {
if(g_aMenuData[iKey][md_mdl_p][0]) {
entity_set_string(id, EV_SZ_weaponmodel, g_aMenuData[iKey][md_mdl_p]);
}
if(g_aMenuData[iKey][md_mdl_v][0]) {
entity_set_string(id, EV_SZ_viewmodel, g_aMenuData[iKey][md_mdl_v]);
}
entity_set_int(id, EV_INT_weaponanim, DEPLOY_SEQUENCE_NUM);
message_begin(MSG_ONE_UNRELIABLE, SVC_WEAPONANIM, _, id);
write_byte(DEPLOY_SEQUENCE_NUM);
write_byte(entity_get_int(id, EV_INT_body));
message_end();
emit_sound(id, CHAN_WEAPON, g_aMenuData[iKey][md_snd_deploy], VOL_NORM, ATTN_NORM, 0, PITCH_NORM);
}
g_iKnife[id] = iKey;
}
}
}
public MessageScoreAttrib(const msgid, const dest, const receiver) {
new id = get_msg_arg_int(1), iFlags = get_user_flags(id);
if((iFlags & VIP_ACCESS_ADM || iFlags & VIP_ACCESS_VIP ) && is_user_alive(id)) {
set_msg_arg_int(2, ARG_BYTE, SCOREATTRIB_VIP);
}
}
public FMEmitSoundPre(const id, const iChannel, const szSample[]) {
if(0 < id < g_iMaxPlayers && g_iKnife[id] == INVALID_HANDLE) {
return FMRES_IGNORED;
}
if(szSample[0] == 'w' && szSample[8] == 'k' && szSample[13] == '_') {
switch(szSample[17]) {
case 'l': {
emit_sound(id, CHAN_WEAPON, g_aMenuData[g_iKnife[id]][md_snd_deploy], VOL_NORM, ATTN_NORM, 0, PITCH_NORM);
return FMRES_SUPERCEDE;
}
case 'w': {
emit_sound(id, CHAN_WEAPON, g_aMenuData[g_iKnife[id]][md_snd_hitwall], VOL_NORM, ATTN_NORM, 0, PITCH_NORM);
return FMRES_SUPERCEDE;
}
case 's': {
emit_sound(id, CHAN_WEAPON, g_aMenuData[g_iKnife[id]][md_snd_slash], VOL_NORM, ATTN_NORM, 0, PITCH_NORM);
return FMRES_SUPERCEDE;
}
case 'b': {
emit_sound(id, CHAN_WEAPON, g_aMenuData[g_iKnife[id]][md_snd_stab], VOL_NORM, ATTN_NORM, 0, PITCH_NORM);
return FMRES_SUPERCEDE;
}
default: {
emit_sound(id, CHAN_WEAPON, g_aMenuData[g_iKnife[id]][md_snd_hit], VOL_NORM, ATTN_NORM, 0, PITCH_NORM);
return FMRES_SUPERCEDE;
}
}
}
return FMRES_IGNORED;
}
#if defined USE_WORLD_MODEL
public FMSetModelPre(const pEnt, const szModel[]) {
if(!is_valid_ent(pEnt) || !equal(szModel, "models/w_knife.mdl")) {
return FMRES_IGNORED;
}
new id = get_pdata_cbase(pEnt, m_pPlayer, EXTRAOFFSET_WEAPONS);
if(id > 0 && g_iKnife[id] != INVALID_HANDLE && g_aMenuData[g_iKnife[id]][md_mdl_w][0]) {
entity_set_model(id, g_aMenuData[g_iKnife[id]][md_mdl_w]);
}
return FMRES_IGNORED;
}
#endif
public HamItemDeployPost(const pEnt) {
new id = get_pdata_cbase(pEnt, m_pPlayer, EXTRAOFFSET_WEAPONS);
if(g_iKnife[id] != INVALID_HANDLE) {
if(g_aMenuData[g_iKnife[id]][md_mdl_p][0]) {
entity_set_string(id, EV_SZ_weaponmodel, g_aMenuData[g_iKnife[id]][md_mdl_p]);
}
if(g_aMenuData[g_iKnife[id]][md_mdl_v][0]) {
entity_set_string(id, EV_SZ_viewmodel, g_aMenuData[g_iKnife[id]][md_mdl_v]);
}
}
}
ReadFile(const pFile, const szFile[]) {
new szBuffer[128], i, szArg1[32];
while(!feof(pFile) && g_iItemsNum < MAX_ITEMS_NUM) {
fgets(pFile, szBuffer, charsmax(szBuffer));
trim(szBuffer);
if(szBuffer[0] && szBuffer[0] != ';' && szBuffer[0] != '#') {
if(szBuffer[0] == '[' && szBuffer[1] == 'k' && szBuffer[6] == '_' && szBuffer[strlen(szBuffer) - 1] == ']') {
i = ++g_iItemsNum - 1;
continue;
}
}
parse(szBuffer, szArg1, charsmax(szArg1), szBuffer, charsmax(szBuffer));
if(szBuffer[0]) {
switch(szArg1[0]) {
case 'n': copy(g_aMenuData[i][md_name], charsmax(g_aMenuData[][md_name]), szBuffer);
case 'a': g_aMenuData[i][md_access] = read_flags(szBuffer);
case 'm': {
switch(szArg1[4]) {
case 'p': copy(g_aMenuData[i][md_mdl_p], charsmax(g_aMenuData[][md_mdl_p]), szBuffer);
case 'v': copy(g_aMenuData[i][md_mdl_v], charsmax(g_aMenuData[][md_mdl_v]), szBuffer);
#if defined USE_WORLD_MODEL
case 'w': copy(g_aMenuData[i][md_mdl_w], charsmax(g_aMenuData[][md_mdl_w]), szBuffer);
#else
default: continue;
#endif
}
precache_model(szBuffer);
}
case 's': {
switch(szArg1[7]) {
case 'l': copy(g_aMenuData[i][md_snd_deploy], charsmax(g_aMenuData[][md_snd_deploy]), szBuffer);
case 'w': copy(g_aMenuData[i][md_snd_hitwall], charsmax(g_aMenuData[][md_snd_hitwall]), szBuffer);
case 's': copy(g_aMenuData[i][md_snd_slash], charsmax(g_aMenuData[][md_snd_slash]), szBuffer);
case 'b': copy(g_aMenuData[i][md_snd_stab], charsmax(g_aMenuData[][md_snd_stab]), szBuffer);
default: copy(g_aMenuData[i][md_snd_hit], charsmax(g_aMenuData[][md_snd_hit]), szBuffer);
}
precache_sound(szBuffer);
}
}
}
}
fclose(pFile);
if(!g_iItemsNum) {
new szError[CFG_PATH_STRLEN + 32];
formatex(szError, charsmax(szError), "File ^"%s^" empty or incorrect", szFile);
set_fail_state(szError);
}
}
bool:check_flags(flags, const needed_flags) {
return ((flags &= needed_flags) == needed_flags) ? true : false;
}
// new_weapons:
#include <amxmodx>
#include <amxmisc>
#include <fakemeta>
#define MAX_SOUNDS 50
#define MAX_p_MODELS 50
#define MAX_v_MODELS 50
#define MAX_w_MODELS 50
#define MAP_CONFIGS 1
new new_sounds[MAX_SOUNDS][48]
new old_sounds[MAX_SOUNDS][48]
new sounds_team[MAX_SOUNDS]
new soundsnum
new new_p_models[MAX_p_MODELS][48]
new old_p_models[MAX_p_MODELS][48]
new p_models_team[MAX_p_MODELS]
new p_modelsnum
new new_v_models[MAX_v_MODELS][48]
new old_v_models[MAX_v_MODELS][48]
new v_models_team[MAX_p_MODELS]
new v_modelsnum
new new_w_models[MAX_w_MODELS][48]
new old_w_models[MAX_w_MODELS][48]
new w_models_team[MAX_p_MODELS]
new w_modelsnum
new maxplayers
public plugin_init()
{
register_plugin("Weapon Model + Sound Replacement","1.2","GHW_Chronic")
register_forward(FM_EmitSound,"Sound_Hook")
register_forward(FM_SetModel,"W_Model_Hook",1)
register_logevent("newround",2,"1=Round_Start")
register_event("CurWeapon","Changeweapon_Hook","be","1=1")
maxplayers = get_maxplayers()
}
public plugin_precache()
{
new configfile[200]
new configsdir[200]
new map[32]
get_configsdir(configsdir,199)
get_mapname(map,31)
format(configfile,199,"%s/new_weapons_%s.ini",configsdir,map)
if(file_exists(configfile))
{
load_models(configfile)
}
else
{
format(configfile,199,"%s/new_weapons.ini",configsdir)
load_models(configfile)
}
}
public load_models(configfile[])
{
if(file_exists(configfile))
{
new read[96], left[48], right[48], right2[32], trash, team
for(new i=0;i<file_size(configfile,1);i++)
{
read_file(configfile,i,read,95,trash)
if(containi(read,";")!=0 && containi(read," ")!=-1)
{
strbreak(read,left,47,right,47)
team=0
if(containi(right," ")!=-1)
{
strbreak(right,right,47,right2,31)
replace_all(right2,31,"^"","")
if(
equali(right2,"T") ||
equali(right2,"Terrorist") ||
equali(right2,"Terrorists") ||
equali(right2,"Blue") ||
equali(right2,"B") ||
equali(right2,"Allies") ||
equali(right2,"1")
) team=1
else if(
equali(right2,"CT") ||
equali(right2,"Counter") ||
equali(right2,"Counter-Terrorist") ||
equali(right2,"Counter-Terrorists") ||
equali(right2,"CounterTerrorists") ||
equali(right2,"CounterTerrorist") ||
equali(right2,"Red") ||
equali(right2,"R") ||
equali(right2,"Axis") ||
equali(right2,"2")
) team=2
else if(
equali(right2,"Yellow") ||
equali(right2,"Y") ||
equali(right2,"3")
) team=3
else if(
equali(right2,"Green") ||
equali(right2,"G") ||
equali(right2,"4")
) team=4
}
replace_all(right,47,"^"","")
if(file_exists(right))
{
if(containi(right,".mdl")==strlen(right)-4)
{
if(!precache_model(right))
{
log_amx("Error attempting to precache model: ^"%s^" (Line %d of new_weapons.ini)",right,i+1)
}
else if(containi(left,"models/p_")==0)
{
format(new_p_models[p_modelsnum],47,right)
format(old_p_models[p_modelsnum],47,left)
p_models_team[p_modelsnum]=team
p_modelsnum++
}
else if(containi(left,"models/v_")==0)
{
format(new_v_models[v_modelsnum],47,right)
format(old_v_models[v_modelsnum],47,left)
v_models_team[v_modelsnum]=team
v_modelsnum++
}
else if(containi(left,"models/w_")==0)
{
format(new_w_models[w_modelsnum],47,right)
format(old_w_models[w_modelsnum],47,left)
w_models_team[w_modelsnum]=team
w_modelsnum++
}
else
{
log_amx("Model type(p_ / v_ / w_) unknown for model: ^"%s^" (Line %d of new_weapons.ini)",right,i+1)
}
}
else if(containi(right,".wav")==strlen(right)-4 || containi(right,".mp3")==strlen(right)-4)
{
replace(right,47,"sound/","")
replace(left,47,"sound/","")
if(!precache_sound(right))
{
log_amx("Error attempting to precache sound: ^"%s^" (Line %d of new_weapons.ini)",right,i+1)
}
else
{
format(new_sounds[soundsnum],47,right)
format(old_sounds[soundsnum],47,left)
sounds_team[soundsnum]=team
soundsnum++
}
}
else
{
log_amx("Invalid File: ^"%s^" (Line %d of new_weapons.ini)",right,i+1)
}
}
else
{
log_amx("File Inexistent: ^"%s^" (Line %d of new_weapons.ini)",right,i+1)
}
if(!file_exists(left))
{
log_amx("Warning: File Inexistent: ^"%s^" (Line %d of new_weapons.ini). ONLY A WARNING. PLUGIN WILL STILL WORK!!!!",left,i+1)
}
}
}
}
}
public Changeweapon_Hook(id)
{
if(!is_user_alive(id))
{
return PLUGIN_CONTINUE
}
static model[32], i, team
team = get_user_team(id)
pev(id,pev_viewmodel2,model,31)
for(i=0;i<v_modelsnum;i++)
{
if(equali(model,old_v_models[i]))
{
if(v_models_team[i]==team || !v_models_team[i])
{
set_pev(id,pev_viewmodel2,new_v_models[i])
break;
}
}
}
pev(id,pev_weaponmodel2,model,31)
for(i=0;i<p_modelsnum;i++)
{
if(equali(model,old_p_models[i]))
{
if(p_models_team[i]==team || !p_models_team[i])
{
set_pev(id,pev_weaponmodel2,new_p_models[i])
break;
}
}
}
return PLUGIN_CONTINUE
}
public Sound_Hook(id,channel,sample[])
{
if(!is_user_alive(id))
{
return FMRES_IGNORED
}
if(channel!=CHAN_WEAPON && channel!=CHAN_ITEM)
{
return FMRES_IGNORED
}
static i, team
team = get_user_team(id)
for(i=0;i<soundsnum;i++)
{
if(equali(sample,old_sounds[i]))
{
if(sounds_team[i]==team || !sounds_team[i])
{
engfunc(EngFunc_EmitSound,id,CHAN_WEAPON,new_sounds[i],1.0,ATTN_NORM,0,PITCH_NORM)
return FMRES_SUPERCEDE
}
}
}
return FMRES_IGNORED
}
public W_Model_Hook(ent,model[])
{
if(!pev_valid(ent))
{
return FMRES_IGNORED
}
static i
for(i=0;i<w_modelsnum;i++)
{
if(equali(model,old_w_models[i]))
{
engfunc(EngFunc_SetModel,ent,new_w_models[i])
return FMRES_SUPERCEDE
}
}
return FMRES_IGNORED
}
public newround()
{
static ent, classname[8], model[32]
ent = engfunc(EngFunc_FindEntityInSphere,maxplayers,Float:{0.0,0.0,0.0},4800.0)
while(ent)
{
pev(ent,pev_classname,classname,7)
if(containi(classname,"armoury")!=-1)
{
pev(ent,pev_model,model,31)
W_Model_Hook(ent,model)
}
ent = engfunc(EngFunc_FindEntityInSphere,ent,Float:{0.0,0.0,0.0},4800.0)
}
}
Не могу понять, почему проигрывается звук стандартного ножа вместо кастомного на всех ножах при смене оружия. На видео всё показано, как это работает в игре. Если вы не заметили, когда возрождаешься слышен звук доставания ножа.
- демонстрация ошибки
knives_menu.ini - конфиг knives_menu.amxx (меню ножей)
new_weapons.ini - конфиг new_weapons.amxx (замена стандартных моделей и звуков для всех)
- демонстрация ошибки
knives_menu.ini - конфиг knives_menu.amxx (меню ножей)
new_weapons.ini - конфиг new_weapons.amxx (замена стандартных моделей и звуков для всех)
Download all Attachments
-
2.6 KB Просмотры: 69
-
136 байт Просмотры: 59