амхх 1.9 бъгна един от плъгините.

Въпроси и проблеми свързани с AMXModX.
Аватар
smurfavr
Извън линия
Потребител
Потребител
Мнения: 426
Регистриран на: 06 Окт 2016, 17:55
Се отблагодари: 25 пъти
Получена благодарност: 16 пъти
Обратна връзка:

амхх 1.9 бъгна един от плъгините.

Мнение от smurfavr » 06 Сеп 2018, 17:55

Реших да тествам амхх 1.9 на сървъра,но един от плъгините му се бъгнаха надписите. На какво се дължи проблема?
Изображение

Аватар
pro_lamer4e
Извън линия
Потребител
Потребител
Мнения: 16
Регистриран на: 19 Фев 2018, 10:14
Обратна връзка:

амхх 1.9 бъгна един от плъгините.

Мнение от pro_lamer4e » 06 Сеп 2018, 17:56

Дай сма файла

Аватар
smurfavr
Извън линия
Потребител
Потребител
Мнения: 426
Регистриран на: 06 Окт 2016, 17:55
Се отблагодари: 25 пъти
Получена благодарност: 16 пъти
Обратна връзка:

амхх 1.9 бъгна един от плъгините.

Мнение от smurfavr » 06 Сеп 2018, 18:55

Загубил съм го.Това е оригиналния плъгин,но с добавени повече опции за гласуване.

Добавено преди 44 минути 47 секунди:
Намерих оригиналния файл на плъгина,но не виждам къде са редовете за минутите в плъгина?

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

#include <amxmodx>
#include <amxmisc>

#define PLUGIN	"TimeLimit vote"
#define AUTHOR	"many"
#define VERSION	"0.4"

#define MAX_RESULTS 5

//thnx pr4er for help

new Float:g_timelimit
new menu

new g_voteCount[MAX_RESULTS + 1]
new g_tls[MAX_RESULTS]
new tls[MAX_RESULTS]

new g_CountSys

public plugin_init() 
{
	register_plugin(PLUGIN, VERSION, AUTHOR)
	
	g_CountSys	= register_cvar("amx_countsys",	"1")
	
	new name[12], string[12]
	new multiplic = 20 // +++++
	
	for(new i=0;i<MAX_RESULTS;i++)
	{
		format(name, sizeof name -1, "amx_tl_%d", i+1)
		
		format(string, sizeof string -1, "%d", multiplic)
		
		tls[i] = register_cvar(name, string)
		
		multiplic += 10
	}
}

public plugin_cfg()
{
	menu = menu_create("\wChoose timelimit for this map?", "menu_handler")
	
	for(new i=0;i<MAX_RESULTS;i++)
		g_tls[i] = get_pcvar_num(tls[i])
	
	set_task(180.0, "start_vote")
	
	build_menu()
}

build_menu()
{	
	new option[64], temp[12]
	for(new i=0;i<MAX_RESULTS;i++)
	{
		format(option, sizeof option -1, "\w%d minutes", g_tls[i])
		format(temp, sizeof temp -1, "%d", i+1)
		
		menu_additem(menu, option, temp, 0)
	}
	
	menu_setprop(menu, MPROP_EXIT, MEXIT_ALL)
}

public start_vote(id)
{	
	new players[32], inum, i
	get_players(players, inum, "ch")
	
	for(i=0;i<inum;i++)
		menu_display(players[i], menu, 0)
	
	set_task(15.0, "finish_vote")
	
	for(i=1;i<(MAX_RESULTS+1);i++)
		g_voteCount[i] = 0
	
	return PLUGIN_CONTINUE
}

public menu_handler(id, menu, item)
{
	if( !is_user_connected( id ) )
		return PLUGIN_HANDLED 

	if(item == MENU_EXIT)
	{
		menu_cancel(id)
		
		return PLUGIN_HANDLED
	}
	
	new data[6], name[32]
	new access, callback
	
	menu_item_getinfo(menu, item, access, data, 5, "", 0, callback)
	
	new key = str_to_num(data)
	get_user_name(id, name, 31)
	
	client_print(0, print_chat, "[KZ] %s voted for %d minutes", name, g_tls[key -1])
	
	g_voteCount[key]++
	
	menu_cancel(id)
	
	return PLUGIN_HANDLED
}

public finish_vote()
{	
	new players[32], inum
	get_players(players, inum, "ch")
	
	for(new i=0;i<inum;i++)
		client_cmd(players[i], "slot10")
	
	CountVotes()
}

public CountVotes()
{
	g_timelimit = get_cvar_float("mp_timelimit")
	new votesNum = 0
	
	if(!get_pcvar_num(g_CountSys))
	{	
		new best = 0
		
		for(new i=1;i<(MAX_RESULTS+1);i++)
		{
			if(g_voteCount[i] > g_voteCount[best])
				best = i
		}
		
		for(new i=1;i<(MAX_RESULTS+1);i++)
			votesNum += g_voteCount[i]
		
		new iRatio = votesNum ? floatround(get_cvar_float("amx_vote_ratio") * float(votesNum), floatround_ceil) : 1
		new iResult = g_voteCount[best]
		
		if(iResult >= iRatio)
		{
			new new_time = g_tls[best -1]
			
			client_print(0, print_chat, "[KZ] Voting successful. Option %d minutes won.", new_time)
			
			set_cvar_num("mp_timelimit", new_time)
		}
		else
		{
			client_print(0, print_chat, "[KZ] Voting failed.")
		}
	}
	if(get_pcvar_num(g_CountSys) == 1)
	{
		new summ_time = 0
		new _time
		
		for(new i=1;i<(MAX_RESULTS+1);i++)
		{
			votesNum += g_voteCount[i]
			summ_time += g_voteCount[i] * g_tls[i-1]
		}
		
		if(votesNum)
		{
			_time = floatround(float(summ_time) / float(votesNum), floatround_ceil)
			if (_time - (_time = _time / 10 * 10) >= 5) 
				_time += 10
			
			client_print(0, print_chat, "[KZ] Voting successful. Time limit is set to average - %d minutes", _time)
			
			set_cvar_num("mp_timelimit", _time)
			
		}
		else
		{
			client_print(0, print_chat, "[KZ] Voting failed.")
		}
		
	}
}

public plugin_end() 
{
	set_cvar_float("mp_timelimit", g_timelimit)
}

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

амхх 1.9 бъгна един от плъгините.

Мнение от OciXCrom » 06 Сеп 2018, 20:20

Там са, функцията menu_additem. Този бъг не е нещо ново. И при мен се е случвало на по-стари версии, обаче само при ползване онлайн компилатор. Опитай да прекомпилираш плъгина локално.

Аватар
smurfavr
Извън линия
Потребител
Потребител
Мнения: 426
Регистриран на: 06 Окт 2016, 17:55
Се отблагодари: 25 пъти
Получена благодарност: 16 пъти
Обратна връзка:

амхх 1.9 бъгна един от плъгините.

Мнение от smurfavr » 06 Сеп 2018, 21:55

Добре де как да добавя опция за 10 минути? Искам мен'то да е както на снимката. Как да направя вота да започва след 1 минута от като е започнал мапа?

псп
Компилирах плъгина локано но бъга с менюто не се оправи.

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

амхх 1.9 бъгна един от плъгините.

Мнение от OciXCrom » 07 Сеп 2018, 00:48

Тези символи на снимката са цветни кодове. Half-Life дали изобщо поддържа цветни менюта или само бяли?

//Edit: мда, май наистина е бъг. Имаше промяна в списъка с игри, които поддържат цветни менюта и вероятно са добавили Half-Life по погрешка. Докладвах проблема тук и би трябвало бързо да го оправят.

Засега би трябвало така да не ги показва символите:

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

#include <amxmodx>
#include <amxmisc>

#define PLUGIN  "TimeLimit vote"
#define AUTHOR  "many"
#define VERSION "0.4"

#define MAX_RESULTS 5

//thnx pr4er for help

new Float:g_timelimit
new menu

new g_voteCount[MAX_RESULTS + 1]
new g_tls[MAX_RESULTS]
new tls[MAX_RESULTS]

new g_CountSys

public plugin_init() 
{
    register_plugin(PLUGIN, VERSION, AUTHOR)
    
    g_CountSys  = register_cvar("amx_countsys", "1")
    
    new name[12], string[12]
    new multiplic = 20 // +++++
    
    for(new i=0;i<MAX_RESULTS;i++)
    {
        format(name, sizeof name -1, "amx_tl_%d", i+1)
        
        format(string, sizeof string -1, "%d", multiplic)
        
        tls[i] = register_cvar(name, string)
        
        multiplic += 10
    }
}

public plugin_cfg()
{
    menu = menu_create("Choose timelimit for this map?", "menu_handler")
    menu_setprop(menu, MPROP_NUMBER_COLOR, "")
    
    for(new i=0;i<MAX_RESULTS;i++)
        g_tls[i] = get_pcvar_num(tls[i])
    
    set_task(180.0, "start_vote")
    
    build_menu()
}

build_menu()
{   
    new option[64], temp[12]
    for(new i=0;i<MAX_RESULTS;i++)
    {
        format(option, sizeof option -1, "%d minutes", g_tls[i])
        format(temp, sizeof temp -1, "%d", i+1)
        
        menu_additem(menu, option, temp, 0)
    }
    
    menu_setprop(menu, MPROP_EXIT, MEXIT_ALL)
}

public start_vote(id)
{   
    new players[32], inum, i
    get_players(players, inum, "ch")
    
    for(i=0;i<inum;i++)
        menu_display(players[i], menu, 0)
    
    set_task(15.0, "finish_vote")
    
    for(i=1;i<(MAX_RESULTS+1);i++)
        g_voteCount[i] = 0
    
    return PLUGIN_CONTINUE
}

public menu_handler(id, menu, item)
{
    if( !is_user_connected( id ) )
        return PLUGIN_HANDLED 

    if(item == MENU_EXIT)
    {
        menu_cancel(id)
        
        return PLUGIN_HANDLED
    }
    
    new data[6], name[32]
    new access, callback
    
    menu_item_getinfo(menu, item, access, data, 5, "", 0, callback)
    
    new key = str_to_num(data)
    get_user_name(id, name, 31)
    
    client_print(0, print_chat, "[KZ] %s voted for %d minutes", name, g_tls[key -1])
    
    g_voteCount[key]++
    
    menu_cancel(id)
    
    return PLUGIN_HANDLED
}

public finish_vote()
{   
    new players[32], inum
    get_players(players, inum, "ch")
    
    for(new i=0;i<inum;i++)
        client_cmd(players[i], "slot10")
    
    CountVotes()
}

public CountVotes()
{
    g_timelimit = get_cvar_float("mp_timelimit")
    new votesNum = 0
    
    if(!get_pcvar_num(g_CountSys))
    {   
        new best = 0
        
        for(new i=1;i<(MAX_RESULTS+1);i++)
        {
            if(g_voteCount[i] > g_voteCount[best])
                best = i
        }
        
        for(new i=1;i<(MAX_RESULTS+1);i++)
            votesNum += g_voteCount[i]
        
        new iRatio = votesNum ? floatround(get_cvar_float("amx_vote_ratio") * float(votesNum), floatround_ceil) : 1
        new iResult = g_voteCount[best]
        
        if(iResult >= iRatio)
        {
            new new_time = g_tls[best -1]
            
            client_print(0, print_chat, "[KZ] Voting successful. Option %d minutes won.", new_time)
            
            set_cvar_num("mp_timelimit", new_time)
        }
        else
        {
            client_print(0, print_chat, "[KZ] Voting failed.")
        }
    }
    if(get_pcvar_num(g_CountSys) == 1)
    {
        new summ_time = 0
        new _time
        
        for(new i=1;i<(MAX_RESULTS+1);i++)
        {
            votesNum += g_voteCount[i]
            summ_time += g_voteCount[i] * g_tls[i-1]
        }
        
        if(votesNum)
        {
            _time = floatround(float(summ_time) / float(votesNum), floatround_ceil)
            if (_time - (_time = _time / 10 * 10) >= 5) 
                _time += 10
            
            client_print(0, print_chat, "[KZ] Voting successful. Time limit is set to average - %d minutes", _time)
            
            set_cvar_num("mp_timelimit", _time)
            
        }
        else
        {
            client_print(0, print_chat, "[KZ] Voting failed.")
        }
        
    }
}

public plugin_end() 
{
    set_cvar_float("mp_timelimit", g_timelimit)
}

Аватар
smurfavr
Извън линия
Потребител
Потребител
Мнения: 426
Регистриран на: 06 Окт 2016, 17:55
Се отблагодари: 25 пъти
Получена благодарност: 16 пъти
Обратна връзка:

амхх 1.9 бъгна един от плъгините.

Мнение от smurfavr » 07 Сеп 2018, 11:43

Бъга все още се появява в менюто. (Не си премахнал всички символи)
Изображение

Направо го махам тоя амхх 1.9 Докато се изчистят всички бъгове ще минат месеци да не кажа година.

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

амхх 1.9 бъгна един от плъгините.

Мнение от OciXCrom » 07 Сеп 2018, 15:35

Автоматично се слагат останалите, няма какво да се направи за момента. Виж отговорите в линка където съм докладвал проблема. Платформата на сървъра ти е доста стара и затова имаш такъв проблем. В новите платформи е добавена поддръжка за цветни менюта, съответно трябва да си обновиш build-а на сървъра за да може да се показват цветовете. Демек реално няма бъг от АМХХ, няма смисъл да махаш 1.9. Обнови си сървъра до последния build (6153 ако не се лъжа), тъй като има доста ъпдейти за самата игра, както и security fixes.

ПС: колкото повече хора ползват 1.9, толкова по-бързо ще се изчистят бъговете. Няма как да се намерят всички бъгове ако никой не иска да ъпдейтне до 1.9. Реално бъгове за момента няма, тъй че можеш спокойно да ползваш новата версия.

Аватар
smurfavr
Извън линия
Потребител
Потребител
Мнения: 426
Регистриран на: 06 Окт 2016, 17:55
Се отблагодари: 25 пъти
Получена благодарност: 16 пъти
Обратна връзка:

амхх 1.9 бъгна един от плъгините.

Мнение от smurfavr » 08 Сеп 2018, 00:17

Пуснах сървъра на 6153 и амхх 1.8.3 и има бъг във всички менюта.Не знам какво са ти казали,че са оправили,но бъговете в менюто са на лице.


Exe version 1.1.2.2 (valve)
Exe build: 13:13:29 Aug 29 2013 (6153)

[ 3] AMX Mod X RUN - amxmodx_mm.dll v1.8.3-d ini Start ANY
[ 9] GeoIP RUN - geoip_amxx.dll v1.8.3-d pl3 ANY ANY
[10] FakeMeta RUN - fakemeta_amxx.dl v1.8.3-d pl3 ANY ANY
[11] Ham Sandwich RUN - hamsandwich_amxx v1.8.3-d pl3 ANY ANY
[12] Engine RUN - engine_amxx.dll v1.8.3-d pl3 ANY ANY
[13] Fun RUN - fun_amxx.dll v1.8.3-d pl3 ANY ANY

Аватар
Ant1Lamer
Извън линия
Потребител
Потребител
Мнения: 217
Регистриран на: 08 Окт 2016, 00:03
Се отблагодари: 18 пъти
Получена благодарност: 3 пъти

амхх 1.9 бъгна един от плъгините.

Мнение от Ant1Lamer » 08 Сеп 2018, 01:24

аз и пуснах на тестов сървър 1.9 мод всичко тръгна без проблеми прекомпилирах всичко ест
НАУЧИ ПРАВИЛАТА, ЗА ДА ЗНАЕШ КАК ПОРЯДЪЧНО ДА ГИ НАРУШАВАШ!!!

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

Обратно към “Поддръжка / Помощ”

Кой е на линия

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