Tworzę sklep w którym będzie można dodawać itemy jako osobne pluginy (tak jak itemy zp czy klasy cod)
i mam problem z forwardem
Główny plugin
new ForwardBuy
public plugin_init()
{
ForwardBuy = CreateMultiForward("bio_item_buy",ET_CONTINUE,FP_CELL,FP_CELL)// tworze forward
}
public native_register_item(plugins,params)
{
if(params != 4)
return PLUGIN_CONTINUE
static team
team=get_param(4)
if(++ItemNum[team] > MaxItem)
return -1
get_string(1, ItemName[team][ItemNum[team]], 31);
get_string(2, ItemDescript[team][ItemNum[team]],15)
ItemCost[team][ItemNum[team]]=get_param(3)
ItemPlugin[team][ItemNum[team]]=plugins //zapisuje id pluginu itemu w glownym pluginie
error=3
return ItemPlugin[team][ItemNum[team]] // zwracam id pluginu itemu aby mozna bylo przypisac go do zminnej w pluginie itemu
}
public ShopHandler(id,menu,item)
{
static iRet
menu_destroy(menu)
if(item==MENU_EXIT)
return PLUGIN_CONTINUE
ColorChat(id,GREEN,"%s Wybrales item %s",prefix,ItemName[iTeam[id]][item+1])
ExecuteForward(ForwardBuy,iRet,id,ItemPlugin[iTeam[id]][item+1]) // wywoluje forward i zwaracm id gracza oraz id pluginu itemu
return PLUGIN_CONTINUE
}
Drugi plugin
/* Plugin generated by AMXX-Studio */
#include <amxmodx>
#include <amxmisc>
#define PLUGIN "Testowy Item"
#define VERSION "1.0"
#define AUTHOR "author"
native register_item(nazwa[],opis[],cena,druzyna)
forward bio_item_buy(id,item_id)
new gItemId
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
gItemId = register_item("Przykladowy item","opis itemu",30,1) //rejestruje item i przypisuje jego id do zmiennej
}
public bio_item_buy(id,item_id) // forward ktory ma sie wykonac
{
if(gItemId == item_id)
{
client_print(id,3,"wybrales ten item")
}
else
{
client_print(id,3,"nie wybrales ten item")
}
}
Problem jest taki ze forward wcale się nie wykonuje, generalnie dawno nie pisałem a z forwardami miałem do czynienia tylko raz zapewne jest to jakiś drobny błąd którego nie mogę wychwycić.
Z góry dzięki za pomoc


Dodatki SourceMod












