diff --git a/deathrun_mode_skillmaster.sma b/deathrun_mode_skillmaster.sma index 811cb71..dab9e68 100644 --- a/deathrun_mode_skillmaster.sma +++ b/deathrun_mode_skillmaster.sma @@ -122,7 +122,7 @@ public dr_chosen_new_terrorist(id) } public Ham_PlayerPreThink_Pre(id) { - if(id != g_iTerrorist || !is_user_alive(id)) return HAM_IGNORED; + if(g_iCurMode != g_iModeSkillMaster || id != g_iTerrorist || !is_user_alive(id)) return HAM_IGNORED; new buttons = pev(id, pev_button); new oldbuttons = pev(id, pev_oldbuttons); diff --git a/deathrun_shop.sma b/deathrun_shop.sma index 3168562..106dd7a 100644 --- a/deathrun_shop.sma +++ b/deathrun_shop.sma @@ -81,7 +81,7 @@ public native_add_item(plugin, params) if(function[0]) { // public CanBuyItem(id); - eItemInfo[ItemCanBuy] = CreateMultiForward(function, ET_CONTINUE, FP_CELL); + eItemInfo[ItemCanBuy] = get_func_id(function, plugin); } ArrayPushArray(g_aShopItems, eItemInfo); @@ -144,7 +144,7 @@ Show_ShopMenu(id, page) if(~eItemInfo[ItemTeam] & team) continue; szNum[0] = i; - hCallback = (GetCanBuyAnswer(id, eItemInfo[ItemCanBuy]) == ITEM_ENABLED) ? -1 : g_hCallbackDisabled; + hCallback = (GetCanBuyAnswer(id, eItemInfo[ItemPlugin], eItemInfo[ItemCanBuy]) == ITEM_ENABLED) ? -1 : g_hCallbackDisabled; formatex(szText, charsmax(szText), "%s %s \R\y$%d", eItemInfo[ItemName], g_szItemAddition, eItemInfo[ItemCost]); menu_additem(menu, szText, szNum, eItemInfo[ItemAccess], hCallback); @@ -176,7 +176,7 @@ public ShopMenu_Handler(id, menu, item) new team = (1 << _:cs_get_user_team(id)); - if((~eItemInfo[ItemTeam] & team) || GetCanBuyAnswer(id, eItemInfo[ItemCanBuy]) != ITEM_ENABLED) + if((~eItemInfo[ItemTeam] & team) || GetCanBuyAnswer(id, eItemInfo[ItemPlugin], eItemInfo[ItemCanBuy]) != ITEM_ENABLED) { client_print_color(id, print_team_default, "%s^1 %L", PREFIX, id, "DRS_CANT_BUY"); return PLUGIN_HANDLED; @@ -201,10 +201,12 @@ public ShopMenu_Handler(id, menu, item) Show_ShopMenu(id, item / 7); return PLUGIN_HANDLED; } -GetCanBuyAnswer(id, callback) +GetCanBuyAnswer(id, plugin, callback) { if(!callback) return ITEM_ENABLED; - new return_value; ExecuteForward(callback, return_value, id); + callfunc_begin_i(callback, plugin); + callfunc_push_int(id); + new return_value = callfunc_end(); return return_value; } public ShopDisableItem()