Hello, let's start!
1- char_item.cpp
Find for double ";;"
It's ok for compiler but not good for other things that may happen.
2- On bool CHARACTER::EquipItem(LPITEM item, int iCandidateCell)
Find:
if (iWearCell < 0)
return false;
Add below:
//FIX BLOCK MARRIAGE ITEMS WHILE RIDING
if (iWearCell == WEAR_BODY && IsRiding() && (item->GetVnum() >= 11901 && item->GetVnum() <= 11914)) //Marriage Armors
{
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("?????????????????????????????"));
return false;
}
if (iWearCell == WEAR_WEAPON && IsRiding() && (item->GetVnum() == 50201)) //Marriage Weapon
{
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("?????????????????????????????"));
return false;
}
3- SMALL PREVENTS ON questlua_global.cpp
int _clear_server_timer(lua_State* L)
{
CQuestManager & q = CQuestManager::instance();
const char * name = lua_tostring(L, 1);
DWORD arg = (DWORD) lua_tonumber(L, 2);
if (name && arg)
q.ClearServerTimer(name, arg);
else
sys_err("LUA PREVENT: Wrong argument on ClearServerTimer!");
return 0;
}
int _char_log(lua_State * L)
{
CQuestManager& q = CQuestManager::instance();
LPCHARACTER ch = q.GetCurrentCharacterPtr();
DWORD what = 0;
const char* how = "";
const char* hint = "";
if (lua_isnumber(L, 1)) what = (DWORD)lua_tonumber(L, 1);
if (lua_isstring(L, 2)) how = lua_tostring(L, 2);
if (lua_tostring(L, 3)) hint = lua_tostring(L, 3);
if (ch)
LogManager::instance().CharLog(ch, what, how, hint);
else
sys_err("LUA PREVENT: !ch on _char_log!");
return 0;
}
4- FIX ISSUE ON WAR:
battle.cpp
Find: battle_is_attackable
Must be like this:
if (victim->IsDead() || victim->IsObserverMode())
return false;
if (ch->IsStun() || ch->IsDead() || ch->IsObserverMode())
return false;
Hope it'll be useful.