Hi, i create 2 functions for questlua_guild but no function.
My c++ level is -1
First function: guild.get_gold() - For get the gold of guild, no return nothing.
int guild_get_gold(lua_State* L)
{
luaL_checknumber(L, 1);
CGuild * pkGuild = CGuildManager::instance().FindGuild((DWORD) lua_tonumber(L, 1));
if (pkGuild)
lua_pushnumber(L, pkGuild->GetGuildMoney());
else
lua_pushnumber(L, 0);
return 1;
}
Second function: guild.change_money() For change the money of guild, crash server
int guild_change_money(lua_State * L)
{
int gold = (int)lua_tonumber(L, -1);
//LPCHARACTER ch = q.GetCurrentCharacterPtr();
CGuild * pkGuild = CGuildManager::instance().FindGuild((DWORD) lua_tonumber(L, 1));
if (gold + pkGuild->GetGuildMoney() < 0)
sys_err("QUEST wrong ChangeGold %d (now %d)", gold, pkGuild->GetGuildMoney());
else{
DBManager::instance().Query("UPDATE guild%s SET gold=%d WHERE name = '%s'", get_table_postfix(), gold, pkGuild->GetName());
}
return 0;
}
Game compile perfect.
Thanks