or just fix it:
int affect_add_collect(lua_State * L)
{
if(!lua_isnumber(L, 1) || !lua_isnumber(L, 2) || !lua_isnumber(L, 3))
{
sys_err("add_collect wrong argument: int applyOn, int value, int duration");
return 0;
}
CQuestManager & q = CQuestManager::instance();
int applyOn = lua_tonumber(L, 1);
LPCHARACTER ch = q.GetCurrentCharacterPtr();
if(applyOn >= MAX_APPLY_NUM || applyOn < 1)
{
sys_err("apply is out of range : %d", applyOn);
return 0;
}
int value = lua_tonumber(L, 2);
int duration = lua_tonumber(L, 3);
auto affect = ch->FindAffect(AFFECT_COLLECT, aApplyInfo[applyOn].bPointType);
if(affect != nullptr)
{
value += affect->lApplyValue;
ch->RemoveAffect(affect);
}
ch->AddAffect(AFFECT_COLLECT, aApplyInfo[applyOn].bPointType, value, 0, duration, 0, false);
return 0;
}