И так чтобы профиксить баг с бесконечным ФД в jbextreme.sma нужно найти функцию
[pawn]
- public freeday_end(task)
Содержимое этой функции заменить на это.
[pawn]
- public freeday_end(task)
- {
- static Float:roundmax
- if(g_PlayerFreeday!=0 || g_Freeday!=0 || g_JailDay == 1)
- {
- emit_sound(0, CHAN_AUTO, "jbextreme/brass_bell_C.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)
- player_hudmessage(0, 8, 3.0, {0, 255, 0}, "%L", LANG_SERVER, "JBE_STATUS_ENDFREEDAY")
- for(new i = 1; i <= g_MaxClients; i++)
- {
- if(is_user_connected(i))
- {
- if((cs_get_user_team(i) == CS_TEAM_T) && is_user_alive(i))
- {
- if(entity_get_int(i,EV_INT_skin)==3)
- {
- entity_set_int(i, EV_INT_skin, random_num(0, 2))
- }
- }
- if((cs_get_user_team(i) == CS_TEAM_CT) && is_user_alive(i))
- {
- if((entity_get_int(i,EV_INT_skin)!=CTSkin) && CTSkin)
- {
- entity_set_int(i, EV_INT_skin, CTSkin)
- }
- }
- }
- }
- g_SimonAllowed = 1
- g_PlayerFreeday = 0
- g_Freeday=0
- //g_Simon=0
- remove_task(TASK_ROUND)
- if(roundmax > 0.0)
- {
- player_hudmessage(0, 8, 3.0, {0, 255, 0}, "%L", LANG_SERVER, "JBE_STATUS_ENDTIMER", floatround(roundmax - 60.0))
- set_task(roundmax - 60.0, "check_end", TASK_ROUND)
- }
- }
- g_FDAllowed = 0
- }
Объявить где нибудь глобальные переменные
[pawn]
- new CTSkin = 0
- new g_FDAllowed = 1
Заменить содержимое [pawn]
- public cmd_freeday(id)
[pawn]
- public cmd_freeday(id)
- {
- static menu, menuname[32], option[64]
- if(g_FDAllowed==1)
- {
- if( ((!is_freeday() && ((is_user_alive(id) && cs_get_user_team(id) == CS_TEAM_CT))))
- {
- formatex(menuname, charsmax(menuname), "%L", LANG_SERVER, "JBE_MENU_FREEDAY")
- menu = menu_create(menuname, "freeday_choice")
- formatex(option, charsmax(option), "%L", LANG_SERVER, "JBE_MENU_FREEDAY_PLAYER")
- menu_additem(menu, option, "1", 0)
- formatex(option, charsmax(option), "%L", LANG_SERVER, "JBE_MENU_FREEDAY_ALL")
- menu_additem(menu, option, "2", 0)
- menu_display(id, menu)
- }
- }
- return PLUGIN_HANDLED
- }
Добавить в начало функции [pawn]
- round_start()
[pawn]
- g_FDAllowed=1
Найти в функции [pawn]
- player_spawn(id)
[pawn]
- case(CS_TEAM_CT):
- {
- g_PlayerSimon[id]++
- set_user_info(id, "model", "jbemodel")
- entity_set_int(id, EV_INT_body, 3)
- cs_set_user_armor(id, 100, CS_ARMOR_VESTHELM)
- }
Заменить на:
[pawn]
- case(CS_TEAM_CT):
- {
- g_PlayerSimon[id]++
- set_user_info(id, "model", "jbemodel")
- entity_set_int(id, EV_INT_body, 3)
- cs_set_user_armor(id, 100, CS_ARMOR_VESTHELM)
- if(!CTSkin)
- CTSkin=entity_get_int(id,EV_INT_skin)
- }