Witam. Mam problem z zablokowaniem wykonania forwardu w sklepie biohazardu.
Chodzi o to, że np. kupując działko zabiera pieniądze nawet wtedy gdy stawiamy działko w miejscu gdzie nie da się go postawić. Kasy nie powinno zabierać, a zabiera niestety. Moje zasadnicze pytanie brzmi jak zatrzymać forward w konkretnym miejscu np. za pomocą return PLUGIN_HANDLED?
Próbowałem to zrobić tak:
g_selected_forward = CreateMultiForward("bio_item_selected", ET_STOP, FP_CELL, FP_CELL)
Zmieniłem tylko ET_IGRONE na ET_STOP licząc że forward się zatrzyma przy return PLUGIN_HANDLED. Funkcja wygląda tak:
public bio_item_selected(id, item) { if(item != g_sentry) return PLUGIN_HANDLED if(sentry_build(id)) //zwraca false w przypadku nieudanej proby postawienia return PLUGIN_CONTINUE else return PLUGIN_HANDLED; return PLUGIN_CONTINUE }
Ale po takiej akcji forward nie wykonuje się wcale.
Mam jeszcze pytanie jak przy nieudanej próbie wywołania forwardu zatrzymać plugin w miejscu jego wywołania?
public menu1_handle_human(id, menu, item) { if(item == MENU_EXIT || is_user_zombie(id)) { menu_destroy(menu) return PLUGIN_HANDLED } static data[6], szName[64], access, callback static temp_integer1 menu_item_getinfo(menu, item, access, data, charsmax(data), szName, charsmax(szName), callback) temp_integer1 = str_to_num(data) static cost, wp_name[64], wp_desc[64] cost = ArrayGetCell(Item_Cost, temp_integer1) ArrayGetString(Item_Name, temp_integer1, wp_name, sizeof(wp_name)) ArrayGetString(Item_Desc, temp_integer1, wp_desc, sizeof(wp_desc)) static g_dummy ExecuteForward(g_selected_forward, g_dummy, id, temp_integer1) //Jezeli forward sie nie wykonal to jak zatrzymac te funkcje (sama sie zatrzymuje?) if(cs_get_user_money(id) >= cost) { client_printc(id, "!g[Bio Shop]!n Kupiles !t%s!n za !t%i$!n !!!", wp_name, cost) client_printc(id, "!g[Bio Shop]!n !t%s!n !!!", wp_desc) cs_set_user_money(id, cs_get_user_money(id) - cost) } else { client_printc(id, "!g[Bio Shop]!n Nie masz wystarczajacej ilosci kasy aby kupic : !t%s!n. Koszt:!t%i$!n !!!", wp_name, cost) } return PLUGIN_CONTINUE }
Gdyby komuś było potrzebne wysyłam obydwa pluginy w załącznikach.