Исправить ошибку в плагине HSMode vote

Аватара пользователя

Автор Темы
Host-v
Администратор
Сообщения: 133
Зарегистрирован: 04 окт 2020, 14:08
Репутация: 6
Откуда: Красноярск
Благодарил (а): 4 раза
Поблагодарили: 10 раз
Статус: Не в сети

Исправить ошибку в плагине HSMode vote

Сообщение Host-v »

Код: Выделить всё

[AMXX] Displaying debug trace (plugin "hsv.amxx", version "2.0")
L 01/16/2025 - 15:00:43: [AMXX] Run time error 4: index out of bounds 
L 01/16/2025 - 15:00:43: [AMXX]    [0] hsv.sma::ColorChat (line 276)
L 01/16/2025 - 15:00:43: [AMXX]    [1] hsv.sma::EndVote (line 185)
Linux

Код: Выделить всё

AMX Mod X 1.9.0.5294

Код: Выделить всё

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

Код: Выделить всё

ReGameDLL version: 5.26.0.668-dev

Код: Выделить всё

Metamod-r v1.3.0.149, API (5:13)
Metamod-r build: 11:31:17 Apr 23 2024
Metamod-r from: https://github.com/theAsmodai/metamod-r/commit/603a257

Код: Выделить всё

description      stat pend  file                        vers             src  load  unload
 [ 1] SafeNameAndChat  RUN   -    SafeNameAndChat.so          v1.2 Beta 3      ini  ANY   ANY  
 [ 2] VoiceTranscoder  RUN   -    VoiceTranscoder.so          v2017RC5         ini  ANY   ANY  
 [ 3] Rechecker        RUN   -    rechecker_mm_i386.so        v2.7             ini  Chlvl ANY  
 [ 4] Reunion          RUN   -    reunion_mm_i386.so          v0.2.0.13        ini  Start Never
 [ 5] AMX Mod X        RUN   -    amxmodx_mm_i386.so          v1.9.0.5294      ini  Start ANY  
 [ 6] ReSemiclip       RUN   -    resemiclip_mm_i386.so       v2.4.3           ini  Chlvl ANY  
 [ 7] ReAuthCheck      RUN   -    reauthcheck_mm_i386.so      v0.1.6           ini  Start Never
 [ 8] WHBlocker        RUN   -    whblocker_mm_i386.so        v1.5.697         ini  Chlvl ANY  
 [ 9] ReSRDetector     RUN   -    resrdetector_mm_i386.so     v0.1.0           ini  Chlvl ANY  
 [10] HitBox Fix       RUN   -    hitbox_fix_mm_i386.so       v1.1.5           ini  Start ANY  
 [11] Fun              RUN   -    fun_amxx_i386.so            v1.9.0.5294      pl5  ANY   ANY  
 [12] CStrike          RUN   -    cstrike_amxx_i386.so        v1.9.0.5294      pl5  ANY   ANY  
 [13] CSX              RUN   -    csx_amxx_i386.so            v1.9.0.5294      pl5  ANY   ANY  
 [14] Engine           RUN   -    engine_amxx_i386.so         v1.9.0.5294      pl5  ANY   ANY  
 [15] FakeMeta         RUN   -    fakemeta_amxx_i386.so       v1.9.0.5294      pl5  ANY   ANY  
 [16] GeoIP            RUN   -    geoip_amxx_i386.so          v1.9.0.5294      pl5  ANY   ANY  
 [17] Ham Sandwich     RUN   -    hamsandwich_amxx_i386.so    v1.9.0.5294      pl5  ANY   ANY  
 [18] MySQL            RUN   -    mysql_amxx_i386.so          v1.9.0.5294      pl5  ANY   ANY  
 [19] SQLite           RUN   -    sqlite_amxx_i386.so         v1.9.0.5294      pl5  ANY   ANY  
 [20] VTC AMXX API     RUN   -    VtcApi_amxx_i386.so         v2017 RC2        pl5  ANY   ANY  
 [21] ReAPI            RUN   -    reapi_amxx_i386.so          v5.24.0.300-dev  pl5  ANY   Never
 [22] ReAimDetector    RUN   -    reaimdetector_amxx_i386.so  v0.2.2           pl5  ANY   Never
 [23] CURL AMXX        RUN   -    curl_amxx_i386.so           v1.1.1           pl5  ANY   ANY  
23 plugins, 23 running

Код: Выделить всё

name                    version     author            file             status   
 [  1] [190] AMXBans RBS       24.09.09BE  SKAJIbnEJIb & La  amxbans_rbs.amx  running  
 [  2] [190] Cvar On Map       20.06.06    SKAJIbnEJIb       cvar_on_map.amx  running  
 [  3] ReAimDetector API       0.2.2       ReHLDS Team       reaimdetector.a  running  
 [  4] [190] Ultimate Weapons  24.10.08BE  SKAJIbnEJIb       ultimate_weapon  running  
 [  5] Voteban CSR             0.8.5beta   Leo_[BH]          csr_voteban.amx  running  
 [  6] [190] MapChooser RBS    20.08.02    SKAJIbnEJIb & UF  mapchooser_rbs.  running  
 [  7] NextMap                 1.9.0.5294  AMXX Dev Team     nextmap.amxx     debug    
 [  8] TimeLeft                1.9.0.5294  AMXX Dev Team     timeleft.amxx    debug    
 [  9] HLDS Weapon FIX         1.1         [WPMG]PRoSToTeM@  hldsweaponfix.a  running  
 [ 10] [190] Ultimate Models   24.10.10BE  SKAJIbnEJIb       ultimate_models  running  
 [ 11] [190] Skill ELO         24.10.08BE  SKAJIbnEJIb       skill_elo.amxx   running  
 [ 12] Menus Front-End         20.06.06    SKAJIbnEJIb & AM  amxmodmenu_rbs.  running  
 [ 13] [190] AdminCmd RBS      22.11.15    SKAJIbnEJIb & AM  admincmd_rbs.am  running  
 [ 14] Commands Menu           1.9.0.5294  AMXX Dev Team     cmdmenu.amxx     running  
 [ 15] [190] MapsMenu RBS      20.06.06    SKAJIbnEJIb & AM  mapsmenu_rbs.am  running  
 [ 16] Admin Chat              1.9.0.5294  AMXX Dev Team     adminchat.amxx   running  
 [ 17] CS Misc. Stats          1.9.0.5294  AMXX Dev Team     miscstats.amxx   running  
 [ 18] MultiJump               1.1         twistedeuphoria   multijump.amxx   running  
 [ 19] AMXX Gag                1.3         xPaw & Exolent    gagmenu.amxx     running  
 [ 20] [190] RestMenu RBS      24.10.11BE  SKAJIbnEJIb & AM  restmenu_rbs.am  running  
 [ 21] [190] BonusMenu RBS     22.12.07BE  SKAJIbnEJIb       bonusmenu_rbs.a  running  
 [ 22] [190] Army Ranks Ultim  24.10.08BE  SKAJIbnEJIb       army_ranks_ulti  running  
 [ 23] [190] Chat RBS          24.10.11BE  SKAJIbnEJIb       chat_rbs.amxx    running  
 [ 24] [190] Chat Addons       20.06.06    SKAJIbnEJIb       chat_addons.amx  running  
 [ 25] [190] Stats Configurat  24.10.11BE  SKAJIbnEJIb & AM  statscfg_rbs.am  running  
 [ 26] [190] StatsX RBS        24.10.11BE  SKAJIbnEJIb & AM  statsx_rbs.amxx  running  
 [ 27] [190] CsStats MySQL     24.10.08BE  SKAJIbnEJIb       csstats_mysql.a  running  
 [ 28] [190] No Team Flash     20.06.06    SKAJIbnEJIb       NoTeamFlash.amx  running  
 [ 29] [190] Ultimate Flags    22.11.15    SKAJIbnEJIb       ultimate_flags.  running  
 [ 30] [190] Stimulation RBS   24.10.10BE  SKAJIbnEJIb       stimulation_rbs  running  
 [ 31] [190] Analizator        20.06.06    SKAJIbnEJIb       analizator.amxx  running
[gm-project.net] #Staff / Lt.RAT
2.0

Код: Выделить всё

#include <amxmodx>
#include <fun>
#include <fakemeta_util>
#include <hamsandwich>

#define PLUGIN "HSMode vote"
#define VERSION "2.0"
#define AUTHOR "[gm-project.net] #Staff / Lt.RAT"

new g_VoteMenu
new g_Votes[2]
new g_Voting

new g_VoteVote[33]
new gHeadShot

new CvarRatio

new HamHook: fwd_TraceAttack, CvarKnife
new g_iMsgTeamInfo, g_iMsgSayText

new g_msgScreenFade
new g_MaxPlayers

enum Color {
	NORMAL = 1,
	GREEN,
	RED,
	BLUE
};

new TeamName[][] = {
	"",
	"TERRORIST",
	"CT",
	"SPECTATOR"
};

public plugin_init() {
	register_plugin(PLUGIN, VERSION, AUTHOR)
	register_dictionary("hsv.txt")
	register_cvar("hsv_version",	VERSION, FCVAR_SERVER|FCVAR_SPONLY);

	CvarKnife	= register_cvar ( "hsv_knife", "0")
	CvarRatio	= register_cvar ( "hsv_cratio", "0.6" )
	g_MaxPlayers	= global_get(glb_maxClients)

	g_iMsgSayText    = get_user_msgid( "SayText" );
	g_iMsgTeamInfo   = get_user_msgid( "TeamInfo" );
	g_msgScreenFade	= get_user_msgid("ScreenFade")

	set_task(30.0,"StartVote")
}

public client_connect(id) {
	if(gHeadShot) {
		set_task(15.0,"DispInfo", id)
	}
}

public cmd_startvote(id) {
	g_VoteVote[id]=1

	new name [32]
	get_user_name(id, name, 31)

	new VoteYes, VoteNo
	for( new i = 1; i <= g_MaxPlayers; i++ )
	{
		if( is_user_connected(i) )
		{
			if (g_VoteVote) {
				VoteYes++
			} else {
				VoteNo++
			}
		}
	}
	ColorChat(0, RED, "[HsV]^1 %L", id, "HSV_PLVOTED", name)

	if (VoteYes > get_pcvar_float(CvarRatio)*(VoteYes+VoteNo)) {
		ColorChat(0, RED, "[HsV]^1 %L", id, "HSV_STNEWVOTE")
		set_task(5.0,"StartVote")
	}
}

public client_disconnect(id) {
	g_VoteVote[id]=0
}

public DispInfo(id) {
	ColorChat(0, RED, "[HsV] ^1 %L", id, "HSV_CONMSG")
}

public StartVote() {
	static s_MenuHeader[64]
	static s_MenuItem1[64]
	static s_MenuItem2[64]

	formatex(s_MenuHeader, charsmax(s_MenuHeader), "%L", LANG_PLAYER, "HSV_MHEADER")
	formatex(s_MenuItem1, charsmax(s_MenuItem1), "%L", LANG_PLAYER, "HSV_MCLASSIC")
	formatex(s_MenuItem2, charsmax(s_MenuItem2), "%L", LANG_PLAYER, "HSV_MHSONLY")

	for( new plr = 1; plr <= g_MaxPlayers; plr++ ) {
		if (is_user_alive(plr) && is_user_connected(plr)) {
			set_pev(plr, pev_flags, pev(plr, pev_flags) | FL_FROZEN)
		}
	}

	set_task ( 0.1, "ScreenFade", 0)

	g_VoteMenu = menu_create("s_MenuHeader", "menu_handler")

	menu_additem(g_VoteMenu, s_MenuItem1, "0", 0)
	menu_additem(g_VoteMenu, s_MenuItem2, "1", 0)
	
	new s_Players[32], i_Num, i_Player
	get_players(s_Players, i_Num)

	for (new i; i < i_Num; i++)
	{
		i_Player = s_Players

		menu_display(i_Player, g_VoteMenu, 0)

		g_Voting++
	}

	set_task(5.2, "EndVote")

	g_Votes[0] = g_Votes[1] = 0
	return PLUGIN_HANDLED
}
 
public menu_handler(id, menu, item) {
	if (item == MENU_EXIT)
		return PLUGIN_HANDLED

	new s_Data[6], s_Name[64], i_Access, i_Callback
	new name[32]
	get_user_name(id, name, 31)
	menu_item_getinfo(menu, item, i_Access, s_Data, charsmax(s_Data), s_Name, charsmax(s_Name), i_Callback)

	new i_Vote = str_to_num(s_Data)

	ColorChat(0, RED, "[HsV]^1 %L", id, "HSV_VOTED", name, (item ? "HS mode" : "Classic game"))
	g_Votes[i_Vote]++

	return PLUGIN_HANDLED
}
 
public EndVote() {
	if ( fwd_TraceAttack == HamHook:0  ) {
		register_clcmd ( "say /hsv", "cmd_startvote", 0, "- start vote for HSMode" )
		register_clcmd ( "say_team /hsv", "cmd_startvote", 0, "- start vote for HSMode" )
	}

	if (g_Votes[0] > g_Votes[1]) {
		gHeadShot = false
		ColorChat(0, RED, "[HsV]^1 %L", LANG_PLAYER, "HSV_PLAYCL")

		if ( fwd_TraceAttack != HamHook:0 )
		{ 
			DisableHamForward(fwd_TraceAttack)
		}

		server_cmd("sv_restart 1")
		server_exec ()
	}
	else if (g_Votes[1] > g_Votes[0]) {
		gHeadShot = true
		ColorChat(0, RED, "[HsV]^1 %L", LANG_PLAYER, "HSV_PLAYHS")

		if ( fwd_TraceAttack == HamHook:0 ) {	
			fwd_TraceAttack = RegisterHam(Ham_TraceAttack, "player", "Forward_TraceAttack")
		}
		else {	
			EnableHamForward(fwd_TraceAttack)
		}

		server_cmd("sv_restart 1")
		server_exec ()
	}
	else if (g_Votes[1] >= g_Votes[0]) {
		ColorChat(0, RED, "[HsV]^1 %L", LANG_PLAYER, "HSV_PLAYNT")
	}

	menu_destroy(g_VoteMenu)

	for( new plr = 1; plr <= g_MaxPlayers; plr++ ) {
		if (is_user_alive(plr) && is_user_connected(plr)) {
			set_pev(plr, pev_flags, pev(plr, pev_flags) & ~FL_FROZEN)
		}
	}

	set_task(0.1, "DelScreenFade", 0)

	g_Voting = 0
	return PLUGIN_CONTINUE
}

public Forward_TraceAttack(id, attacker, Float:dmg, Float:dir[3], tr, dmgbit) {
	if(id != attacker && get_tr2(tr, TR_iHitgroup) != HIT_HEAD) {
		if(1 <= attacker <= g_MaxPlayers) {
			if(!get_pcvar_num(CvarKnife) && get_user_weapon(attacker) == CSW_KNIFE) {
				return HAM_IGNORED
			}
			return HAM_SUPERCEDE
		}
	}
	
	return HAM_IGNORED;
}

public ScreenFade() {
	message_begin(MSG_ALL, g_msgScreenFade, _, 0)
	write_short(1<<0)
	write_short(1<<0)
	write_short(1<<2)
	write_byte(0)
	write_byte(0)
	write_byte(0)
	write_byte(255)
	message_end()
}

public DelScreenFade() {
	message_begin(MSG_ALL, g_msgScreenFade, _, 0)
	write_short(1<<0)
	write_short(1<<0)
	write_short(1<<0)
	write_byte(0)
	write_byte(0)
	write_byte(0)
	write_byte(0)
	message_end()
}

// COLORCHAT, hello xPaw ^^,

ColorChat( id, Color:type, const szMessage[], {Float,Sql,Result,_}:... ) {
	if( !get_playersnum() ) return;
	
	new message[256];
	
	switch( type ) {
		case NORMAL: message[0] = 0x01;
		case GREEN: message[0] = 0x04;
		default: message[0] = 0x03;
	}
	
	vformat(message[1], 251, szMessage, 4);
	
	message[192] = '^0';
	
	replace_all( message, 191, "\YEL", "^1" );
	replace_all( message, 191, "\GRN", "^4" );
	replace_all( message, 191, "\TEM", "^3" );
	
	new iTeam, ColorChange, index, MSG_Type;
	
	if( id ) {
		MSG_Type = MSG_ONE_UNRELIABLE;
		index = id;
	} else {
		index = CC_FindPlayer();
		MSG_Type = MSG_BROADCAST;
	}
	
	iTeam = get_user_team( index );
	ColorChange = CC_ColorSelection(index, MSG_Type, type);

	CC_ShowColorMessage(index, MSG_Type, message);
	
	if( ColorChange )
		CC_Team_Info(index, MSG_Type, TeamName[iTeam]);
}

CC_ShowColorMessage( id, type, message[] ) {
	message_begin( type, g_iMsgSayText, _, id );
	write_byte( id );	
	write_string( message );
	message_end();	
}

CC_Team_Info( id, type, team[] ) {
	message_begin( type, g_iMsgTeamInfo, _, id );
	write_byte( id );
	write_string( team );
	message_end( );
	
	return 1;
}

CC_ColorSelection( index, type, Color:Type ) {
	switch( Type ) {
		case RED: return CC_Team_Info(index, type, TeamName[1]);
		case BLUE: return CC_Team_Info(index, type, TeamName[2]);
	}
	
	return 0;
}

CC_FindPlayer() {
	for( new i = 1; i <= g_MaxPlayers; i++ )
		if( is_user_connected(i) )
			return i;
	
	return -1;
}
Подскажите как убрать эту ошибку.


Хостинг игровых серверов host-v.ru
Аватара пользователя

BlackSignature
Скриптер
Сообщения: 6
Зарегистрирован: 29 ноя 2021, 21:14
Репутация: 5
Откуда: Москва
Благодарил (а): 2 раза
Поблагодарили: 3 раза
Статус: Не в сети

Исправить ошибку в плагине HSMode vote

Сообщение BlackSignature »

Host-v писал(а): Подскажите как убрать эту ошибку.
Код в блоке Исходный код после копирования не компилируется, по ходу сжирается [ i ] (без пробелов)
Сожрало на 72 строке и 122 строке.

По поводу ошибки - лучше вообще заменить функцию ColorChat() на использование натива client_print_color()
Прилагаю исходник в таком варианте

test.sma
(5.01 КБ) 13 скачиваний


в data/lang/hsv.txt

там в оообщениях если используются метки "\YEL", "\GRN", "\TEM"
заменить их нужно на ^1, ^4, ^3
Аватара пользователя

Автор Темы
Host-v
Администратор
Сообщения: 133
Зарегистрирован: 04 окт 2020, 14:08
Репутация: 6
Откуда: Красноярск
Благодарил (а): 4 раза
Поблагодарили: 10 раз
Статус: Не в сети

Исправить ошибку в плагине HSMode vote

Сообщение Host-v »

BlackSignature, Можно надпись [HsV] в чате сделать красным? Сейчас она стала обычным цветов.

Было
Скриншот 19-01-2025 193617.jpg

Стало
Скриншот 19-01-2025 193742.jpg

И ещё немного странный вопрос))) :P Как Exit поменять на Выход?
Скриншот 19-01-2025 193717.jpg
Хостинг игровых серверов host-v.ru
Аватара пользователя

BlackSignature
Скриптер
Сообщения: 6
Зарегистрирован: 29 ноя 2021, 21:14
Репутация: 5
Откуда: Москва
Благодарил (а): 2 раза
Поблагодарили: 3 раза
Статус: Не в сети

Исправить ошибку в плагине HSMode vote

Сообщение BlackSignature »

Host-v писал(а): BlackSignature, Можно надпись [HsV] в чате сделать красным?
массовой заменой текста поменять [HsV]^1 на ^3[HsV]^1
Host-v писал(а): Как Exit поменять на Выход?
после

Код: Выделить всё

menu_additem(g_VoteMenu, s_MenuItem2, "1", 0)
добавить

Код: Выделить всё

menu_setprop(g_VoteMenu, MPROP_EXITNAME, "Выход")
текст хардкодом т.к. ML тут смысла нет делать - надо менять весь код форматирования меню, автор там наделал бредятины.
Аватара пользователя

Автор Темы
Host-v
Администратор
Сообщения: 133
Зарегистрирован: 04 окт 2020, 14:08
Репутация: 6
Откуда: Красноярск
Благодарил (а): 4 раза
Поблагодарили: 10 раз
Статус: Не в сети

Исправить ошибку в плагине HSMode vote

Сообщение Host-v »

BlackSignature писал(а):
Host-v писал(а): BlackSignature, Можно надпись [HsV] в чате сделать красным?
массовой заменой текста поменять [HsV]^1 на ^3[HsV]^1
Host-v писал(а): Как Exit поменять на Выход?
после

Код: Выделить всё

menu_additem(g_VoteMenu, s_MenuItem2, "1", 0)
добавить

Код: Выделить всё

menu_setprop(g_VoteMenu, MPROP_EXITNAME, "Выход")
текст хардкодом т.к. ML тут смысла нет делать - надо менять весь код форматирования меню, автор там наделал бредятины.
Спасибо, работает.

PS:
При массовой замене кода с [HsV]^1 на ^3[HsV]^1

В строке 72
client_print_color(0, print_team_red, "[HsV] ^1 %L", id, "HSV_CONMSG")
Не произошла замена из за пробела, заменил вручную. Может кому-то пригодится данная инфрмация))
Хостинг игровых серверов host-v.ru
Адрес email:
Ответить Пред. темаСлед. тема