Правила форума Гаранты форума
Размещение рекламы AMX-X компилятор

Здравствуйте, гость Вход | Регистрация

Наши новости:

14-дек
24-апр
10-апр
11-апр

PLUGIN "Unlimited ChooseTeam (include Spectator!)"

, баг исправить
Статус пользователя ssx
сообщение 28.1.2015, 12:59
Сообщение #1


Стаж: 12 лет

Сообщений: 2237
Благодарностей: 1343
Полезность: 836

Неожиданно для себя открыл баг в плагине Unlimited ChooseTeam (include Spectator!)

сам плагин
Код:

#include <amxmodx>
#include <fakemeta>
#include <cstrike>

#define PLUGIN "Unlimited ChooseTeam (include Spectator!)"
#define AUTHOR "ConnorMcLeod & pic0 & PomanoB"
#define VERSION "1.0"

#define m_bHasChangeTeamThisRound 125
#define XO_PLAYER 5

new g_msgScoreAttrib
new bool:is_TeamMenu

public plugin_init()
{
register_plugin( PLUGIN, VERSION, AUTHOR )

register_clcmd("chooseteam", "cmdChooseTeam")

register_clcmd("menuselect", "cmdMenuSelect")
register_clcmd("jointeam 6", "cmdJoinSpec")
register_message(get_user_msgid("ShowMenu"), "msgShowMenu")

g_msgScoreAttrib = get_user_msgid("ScoreAttrib")
}


public cmdChooseTeam(id)
{
if (is_user_alive(id))
{
message_begin(MSG_ONE, g_msgScoreAttrib, _, id) // Thx to pic0
write_byte(id)
write_byte((1<<0)) // *DEAD*
message_end()
}
if (is_user_connected(id))
set_pdata_int(id, m_bHasChangeTeamThisRound, get_pdata_int(id, m_bHasChangeTeamThisRound, XO_PLAYER) & ~(1<<8), XO_PLAYER) // Thx to ConnorMcLeod
}

public msgShowMenu(msg, dest, id)
{
static menuName[32]
static const needName[] = "#IG_Team_Select"
static const replaceName[] = "#IG_Team_Select_Spect"

get_msg_arg_string(4, menuName, charsmax(menuName))

if (!strcmp(menuName, needName))
{
set_msg_arg_string(4, replaceName)
set_msg_arg_int(1, ARG_SHORT, 563) // menu keys in binary format: 1, 2, 5, 6 and 0
is_TeamMenu = true
}
}

public cmdMenuSelect(id)
{
if(is_TeamMenu)
{
is_TeamMenu = false
new argv[32]
read_argv(1, argv, charsmax(argv))
if (is_user_alive(id) && argv[0] == '6')
user_kill(id, 1)
}
}

public cmdJoinSpec(id)
{
if (is_user_alive(id))
user_kill(id, 1)
}


Суть бага заключается в том что игрок присоединившийся не выбирая ничего вызывает любую менюшку (например меню сервера) и сервер падает.
Кондебаг показал проблему:
Код
L 01/28/2015 - 12:55:19: FATAL ERROR (shutting down): WRITE_SHORT called with no active message


Кто знает как можно пофиксить ?

Отредактировал: ssx, - 28.1.2015, 12:59


[Half-Life DM FFA] 78.152.169.100:27016
[CS 1.6 GunGame] 78.152.169.100:27018
[CS 1.6 DM AIM] 78.152.169.100:27017
[CS 1.6 DM FFA] 78.152.169.100:27015
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
voed
сообщение 28.1.2015, 13:33
Сообщение #2
Стаж: 11 лет

Сообщений: 2593
Благодарностей: 1760
Полезность: 405

Интересно.
Попробуй
Код:
if(!strcmp(menuName, needName))

заменить на
Код:
if(equal(menuName, needName))


или вот так
Код:


public msgShowMenu(msg, dest, id)
{
if(!get_msg_arg_int(1))
return PLUGIN_CONTINUE

...


Отредактировал: voed, - 28.1.2015, 13:34
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя ssx
сообщение 28.1.2015, 13:44
Сообщение #3


Стаж: 12 лет

Сообщений: 2237
Благодарностей: 1343
Полезность: 836

попробовал оба варианта отдельно - не помогло.


П.С.
Если закоментировать строчку
Код:
	register_message(get_user_msgid("ShowMenu"), "msgShowMenu")

то серв не падает.
Значит точно в функции msgShowMenu проблема.

Отредактировал: ssx, - 28.1.2015, 13:48


[Half-Life DM FFA] 78.152.169.100:27016
[CS 1.6 GunGame] 78.152.169.100:27018
[CS 1.6 DM AIM] 78.152.169.100:27017
[CS 1.6 DM FFA] 78.152.169.100:27015
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
voed
сообщение 28.1.2015, 13:47
Сообщение #4
Стаж: 11 лет

Сообщений: 2593
Благодарностей: 1760
Полезность: 405

Странно, у меня все ок с плагином ( 6132/1.8.3 )
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя ssx
сообщение 28.1.2015, 13:56
Сообщение #5


Стаж: 12 лет

Сообщений: 2237
Благодарностей: 1343
Полезность: 836

Странно, если оставить только:
Код
; Admin Base - Always one has to be activated
admin.amxx; admin base (required for any admin-related)
admincmd.amxx; basic admin console commands
;adminhelp.amxx; help command for admin console commands
adminslots.amxx; slot reservation
;multilingual.amxx; Multi-Lingual management
;AutoLang.amxx
amx_transfer.amxx

; Menus
menufront.amxx; front-end for admin menus
cmdmenu.amxx; command menu (speech, settings)
plmenu.amxx; players menu (kick, ban, client cmds.)
;telemenu.amxx; teleport menu (Fun Module required!)
mapsmenu.amxx; maps menu (vote, changelevel)
pluginmenu.amxx; Menus for commands/cvars organized by plugin

unlimitedchooseteam.amxx debug


То сервер не падает при открытии amxmodmenu. Но открывает баганутое меню.

Без unlimitedchooseteam.amxx естественно все ОК.

П.С. билд 6153бета AMX Mod X 1.8.3-dev+f097e01

Отредактировал: ssx, - 28.1.2015, 13:58
Прикрепленные файлы:
Прикрепленное изображение


[Half-Life DM FFA] 78.152.169.100:27016
[CS 1.6 GunGame] 78.152.169.100:27018
[CS 1.6 DM AIM] 78.152.169.100:27017
[CS 1.6 DM FFA] 78.152.169.100:27015
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
voed
сообщение 28.1.2015, 14:11
Сообщение #6
Стаж: 11 лет

Сообщений: 2593
Благодарностей: 1760
Полезность: 405

Обнови AMXX, у тебя старый билд какой-то
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя ssx
сообщение 28.1.2015, 14:23
Сообщение #7


Стаж: 12 лет

Сообщений: 2237
Благодарностей: 1343
Полезность: 836

Обновил
1.8.3-dev-git4537-base.zip затем 1.8.3-dev-git4537-cstrike.zip

Перекомпильнул admin.amxx и unlimitedchooseteam.amxx
Сервер не упал и amxmodmenu отлично заработала.

Но включив остальные плагины - снова краш от любой менюшки в том числе и amxmodmenu

Пошел методом тыка определять который плагин конфликтует с unlimitedchooseteam.amxx

Отредактировал: ssx, - 28.1.2015, 14:24


[Half-Life DM FFA] 78.152.169.100:27016
[CS 1.6 GunGame] 78.152.169.100:27018
[CS 1.6 DM AIM] 78.152.169.100:27017
[CS 1.6 DM FFA] 78.152.169.100:27015
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
voed
сообщение 28.1.2015, 14:24
Сообщение #8
Стаж: 11 лет

Сообщений: 2593
Благодарностей: 1760
Полезность: 405

Смотри по исходникам, в каком еще плагине ловится сообщение ShowMenu
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя ssx
сообщение 28.1.2015, 15:19
Сообщение #9


Стаж: 12 лет

Сообщений: 2237
Благодарностей: 1343
Полезность: 836

Цитата(voed @ 28.1.2015, 14:24) *
Смотри по исходникам, в каком еще плагине ловится сообщение ShowMenu

Аааа, моё сообщение удалил Хулиган за то что я выложил паблик плагин с этого же форума.

проблема в плагине sexbomb от порталыча.

Скорее всего из-за.
Код:
public fw_WriteShort( value )
{
if( value == old )
{
write_short(nnew)
return FMRES_SUPERCEDE
}
return FMRES_IGNORED
}


Вырубил плаг и на старой АМХХ все норм заработало в том числе и amxmodmenu норм все .

Отредактировал: ssx, - 28.1.2015, 15:25


[Half-Life DM FFA] 78.152.169.100:27016
[CS 1.6 GunGame] 78.152.169.100:27018
[CS 1.6 DM AIM] 78.152.169.100:27017
[CS 1.6 DM FFA] 78.152.169.100:27015
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Kasper55
сообщение 5.2.2015, 3:37
Сообщение #10
Стаж: 16 лет

Сообщений: 1145
Благодарности: выкл.

вот используй , сколько угодно можешь переходить .

Код:
#include <amxmodx>
#include <fakemeta>

#define PLUGIN "Unlimited ChooseTeam"
#define AUTHOR "ConnorMcLeod"
#define VERSION "0.0.1"

public plugin_init()
{
register_plugin( PLUGIN, VERSION, AUTHOR )
register_clcmd("chooseteam", "ClientCommand_ChooseTeam")
}

public ClientCommand_ChooseTeam( id )
{
set_pdata_int(id, 125, get_pdata_int(id, 125, 5) & ~(1<<8), 5)
}


Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
  Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: