Hi Com,
wir haben ein Problem mit dem Anyshop und dem Pet System, welche ich mir momentan nicht erklären kann.
Und zwar bekommen wir, wenn wir den Anyshop nutzen(Items kaufen) folgende Fehlermeldung.
ZitatSYSERR: Oct 7 20:36:40 :: RunState: LUA_ERROR: [string "AnyShop"]:55: attempt to call field `has_flag' (a nil value)
SYSERR: Oct 7 20:36:40 :: WriteRunningStateToSyserr: LUA_ERROR: quest AnyShop.start enter
Und nun einmal zum Pet System.
Wenn wir den Server starten und uns einloggen bekommen wir diese Meldung.
ZitatSYSERR: Oct 7 20:36:33 :: RunState: LUA_ERROR: [string "pet_system"]:1: attempt to call field `select' (a nil value)
SYSERR: Oct 7 20:36:33 :: WriteRunningStateToSyserr: LUA_ERROR: quest pet_system.start enter
Ich habe bereits seit gestern nach dem Fehler gesucht, aber ihn nicht gefunden.
Ich ging sogar davon aus, dass das Problem im Source liegen könnte und habe die questlua_item.cpp geprüft, jedoch sind beide Funktionen dort vorhanden:
int item_select(lua_State* L)
{
lua_pushboolean(L, 0);
if (!lua_isnumber(L, 1))
{
return 1;
}
DWORD id = (DWORD) lua_tonumber(L, 1);
LPITEM item = ITEM_MANAGER::instance().Find(id);
if (!item)
{
return 1;
}
CQuestManager::instance().SetCurrentItem(item);
lua_pushboolean(L, 1);
return 1;
}
int item_has_flag(lua_State* L)
{
CQuestManager& q = CQuestManager::instance();
LPITEM item = q.GetCurrentItem();
if (!lua_isnumber(L, 1))
{
sys_err("flag is not a number.");
lua_pushboolean(L, 0);
return 1;
}
if (!item)
{
lua_pushboolean(L, 0);
return 1;
}
long lCheckFlag = (long) lua_tonumber(L, 1);
lua_pushboolean(L, IS_SET(item->GetFlag(), lCheckFlag));
return 1;
}
{ "select", item_select },
{ "has_flag", item_has_flag },
Bitte gibt mir irgendwelche Hinweise, wo ich noch schauen kann, da ich ebenfalls geschaut habe, ob in der questlib.lua ein Fehler zu finden ist, aber da bezweifle ich es eher.
Lg