mirror of
https://github.com/EQEmu/Server.git
synced 2025-12-11 16:51:29 +00:00
Various bug fixes
This commit is contained in:
parent
11ed698642
commit
04dc593df9
@ -1,5 +1,11 @@
|
||||
EQEMu Changelog (Started on Sept 24, 2003 15:50)
|
||||
-------------------------------------------------------
|
||||
== 08/31/2014 ==
|
||||
KLS: Fixed a bug in fishing in S3D zones
|
||||
KLS: Fixed a bug in turnins with new any abstraction
|
||||
KLS: Fixed a few quest related inconsistencies.
|
||||
KLS: Added Lua EntityList::ChannelMessage(from, type, msg, language)
|
||||
|
||||
== 08/30/2014 ==
|
||||
demonstar55: (noudess) Merchants should be more descriptive of why they don't sell to you
|
||||
|
||||
|
||||
@ -522,7 +522,7 @@ void Database::ExpireMail() {
|
||||
query = StringFormat("DELETE FROM `mail` WHERE `status`=4 AND `timestamp` < %i",
|
||||
time(nullptr) - RuleI(Mail, ExpireTrash));
|
||||
results = QueryDatabase(query);
|
||||
if(!results.Success())
|
||||
if(results.Success())
|
||||
_log(UCS__ERROR, "Error expiring trash messages, %s %s", query.c_str(), results.ErrorMessage().c_str());
|
||||
else
|
||||
_log(UCS__INIT, "Expired %i trash messages.", results.RowsAffected());
|
||||
@ -534,7 +534,7 @@ void Database::ExpireMail() {
|
||||
query = StringFormat("DELETE FROM `mail` WHERE `status` = 3 AND `timestamp` < %i",
|
||||
time(nullptr) - RuleI(Mail, ExpireRead));
|
||||
results = QueryDatabase(query);
|
||||
if(!results.Success())
|
||||
if(results.Success())
|
||||
_log(UCS__INIT, "Expired %i read messages.", results.RowsAffected());
|
||||
else
|
||||
_log(UCS__ERROR, "Error expiring read messages, %s %s", query.c_str(), results.ErrorMessage().c_str());
|
||||
@ -545,7 +545,7 @@ void Database::ExpireMail() {
|
||||
query = StringFormat("DELETE FROM `mail` WHERE `status`=1 AND `timestamp` < %i",
|
||||
time(nullptr) - RuleI(Mail, ExpireUnread));
|
||||
results = QueryDatabase(query);
|
||||
if(!results.Success())
|
||||
if(results.Success())
|
||||
_log(UCS__INIT, "Expired %i unread messages.", results.RowsAffected());
|
||||
else
|
||||
_log(UCS__ERROR, "Error expiring unread messages, %s %s", query.c_str(), results.ErrorMessage().c_str());
|
||||
|
||||
@ -6225,7 +6225,7 @@ void Client::Handle_OP_ClickDoor(const EQApplicationPacket *app)
|
||||
if(!currentdoor)
|
||||
{
|
||||
Message(0,"Unable to find door, please notify a GM (DoorID: %i).",cd->doorid);
|
||||
return;
|
||||
return;
|
||||
}
|
||||
|
||||
char buf[20];
|
||||
|
||||
@ -1130,8 +1130,10 @@ void PerlembParser::ExportEventVariables(std::string &package_name, QuestEventID
|
||||
|
||||
case EVENT_TRADE: {
|
||||
if(extra_pointers) {
|
||||
for(size_t i = 0; i < extra_pointers->size(); ++i) {
|
||||
size_t sz = extra_pointers->size();
|
||||
for(size_t i = 0; i < sz; ++i) {
|
||||
ItemInst *inst = EQEmu::any_cast<ItemInst*>(extra_pointers->at(i));
|
||||
|
||||
std::string var_name = "item";
|
||||
var_name += std::to_string(static_cast<long long>(i + 1));
|
||||
|
||||
|
||||
@ -3242,7 +3242,8 @@ void EntityList::ProcessMove(Client *c, float x, float y, float z)
|
||||
for (auto iter = events.begin(); iter != events.end(); ++iter) {
|
||||
quest_proximity_event& evt = (*iter);
|
||||
if (evt.npc) {
|
||||
parse->EventNPC(evt.event_id, evt.npc, evt.client, "", 0);
|
||||
std::vector<EQEmu::Any> args;
|
||||
parse->EventNPC(evt.event_id, evt.npc, evt.client, "", 0, &args);
|
||||
} else {
|
||||
std::vector<EQEmu::Any> args;
|
||||
args.push_back(&evt.area_id);
|
||||
|
||||
@ -235,7 +235,7 @@ bool Client::CanFish() {
|
||||
dest.y = RodY;
|
||||
dest.z = z_pos+10;
|
||||
|
||||
RodZ = zone->zonemap->FindBestZ(dest, nullptr) - 1;
|
||||
RodZ = zone->zonemap->FindBestZ(dest, nullptr) + 4;
|
||||
bool in_lava = zone->watermap->InLava(RodX, RodY, RodZ);
|
||||
bool in_water = zone->watermap->InWater(RodX, RodY, RodZ) || zone->watermap->InVWater(RodX, RodY, RodZ);
|
||||
//Message(0, "Rod is at %4.3f, %4.3f, %4.3f, InWater says %d, InLava says %d", RodX, RodY, RodZ, in_water, in_lava);
|
||||
@ -355,11 +355,11 @@ void Client::GoFish()
|
||||
safe_delete(inst);
|
||||
inst = m_inv.GetItem(MainCursor);
|
||||
}
|
||||
}
|
||||
|
||||
std::vector<EQEmu::Any> args;
|
||||
args.push_back(inst);
|
||||
parse->EventPlayer(EVENT_FISH_SUCCESS, this, "", inst != nullptr ? inst->GetItem()->ID : 0, &args);
|
||||
std::vector<EQEmu::Any> args;
|
||||
args.push_back(inst);
|
||||
parse->EventPlayer(EVENT_FISH_SUCCESS, this, "", inst->GetID(), &args);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -469,11 +469,11 @@ void Client::ForageItem(bool guarantee) {
|
||||
safe_delete(inst);
|
||||
inst = m_inv.GetItem(MainCursor);
|
||||
}
|
||||
}
|
||||
|
||||
std::vector<EQEmu::Any> args;
|
||||
args.push_back(inst);
|
||||
parse->EventPlayer(EVENT_FORAGE_SUCCESS, this, "", inst ? inst->GetItem()->ID : 0, &args);
|
||||
std::vector<EQEmu::Any> args;
|
||||
args.push_back(inst);
|
||||
parse->EventPlayer(EVENT_FORAGE_SUCCESS, this, "", inst->GetID(), &args);
|
||||
}
|
||||
|
||||
int ChanceSecondForage = aabonuses.ForageAdditionalItems + itembonuses.ForageAdditionalItems + spellbonuses.ForageAdditionalItems;
|
||||
if(!guarantee && MakeRandomInt(0,99) < ChanceSecondForage) {
|
||||
|
||||
@ -416,6 +416,11 @@ void Lua_EntityList::SignalAllClients(int signal) {
|
||||
self->SignalAllClients(signal);
|
||||
}
|
||||
|
||||
void Lua_EntityList::ChannelMessage(Lua_Mob from, int channel_num, int language, const char *message) {
|
||||
Lua_Safe_Call_Void();
|
||||
self->ChannelMessage(from, channel_num, language, message);
|
||||
}
|
||||
|
||||
luabind::scope lua_register_entity_list() {
|
||||
return luabind::class_<Lua_EntityList>("EntityList")
|
||||
.def(luabind::constructor<>())
|
||||
@ -479,7 +484,8 @@ luabind::scope lua_register_entity_list() {
|
||||
.def("GetObjectList", (Lua_Object_List(Lua_EntityList::*)(void))&Lua_EntityList::GetObjectList)
|
||||
.def("GetDoorsList", (Lua_Doors_List(Lua_EntityList::*)(void))&Lua_EntityList::GetDoorsList)
|
||||
.def("GetSpawnList", (Lua_Spawn_List(Lua_EntityList::*)(void))&Lua_EntityList::GetSpawnList)
|
||||
.def("SignalAllClients", (void(Lua_EntityList::*)(int))&Lua_EntityList::SignalAllClients);
|
||||
.def("SignalAllClients", (void(Lua_EntityList::*)(int))&Lua_EntityList::SignalAllClients)
|
||||
.def("ChannelMessage", (void(Lua_EntityList::*)(Lua_Mob,int,int,const char*))&Lua_EntityList::ChannelMessage);
|
||||
}
|
||||
|
||||
luabind::scope lua_register_mob_list() {
|
||||
|
||||
@ -106,6 +106,7 @@ public:
|
||||
Lua_Doors_List GetDoorsList();
|
||||
Lua_Spawn_List GetSpawnList();
|
||||
void SignalAllClients(int signal);
|
||||
void ChannelMessage(Lua_Mob from, int channel_num, int language, const char *message);
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
@ -1451,11 +1451,7 @@ luabind::scope lua_register_slot() {
|
||||
luabind::value("General6", static_cast<int>(MainGeneral6)),
|
||||
luabind::value("General7", static_cast<int>(MainGeneral7)),
|
||||
luabind::value("General8", static_cast<int>(MainGeneral8)),
|
||||
//luabind::value("General9", static_cast<int>(MainGeneral9)),
|
||||
//luabind::value("General10", static_cast<int>(MainGeneral10)),
|
||||
luabind::value("Cursor", static_cast<int>(MainCursor)),
|
||||
//luabind::value("EquipmentBegin", static_cast<int>(EmuConstants::EQUIPMENT_BEGIN)),
|
||||
//luabind::value("EquipmentEnd", static_cast<int>(EmuConstants::EQUIPMENT_END)),
|
||||
luabind::value("PersonalBegin", static_cast<int>(EmuConstants::GENERAL_BEGIN)), // deprecated
|
||||
luabind::value("GeneralBegin", static_cast<int>(EmuConstants::GENERAL_BEGIN)),
|
||||
luabind::value("PersonalEnd", static_cast<int>(EmuConstants::GENERAL_END)), // deprecated
|
||||
@ -1483,7 +1479,6 @@ luabind::scope lua_register_material() {
|
||||
luabind::value("Secondary", static_cast<int>(MaterialSecondary)),
|
||||
luabind::value("Max", static_cast<int>(_MaterialCount)), // deprecated
|
||||
luabind::value("Count", static_cast<int>(_MaterialCount)),
|
||||
//luabind::value("TintCount", static_cast<int>(_MaterialCount - 2)),
|
||||
luabind::value("Invalid", static_cast<int>(_MaterialInvalid))
|
||||
];
|
||||
}
|
||||
@ -1498,8 +1493,7 @@ luabind::scope lua_register_client_version() {
|
||||
luabind::value("SoF", static_cast<int>(EQClientSoF)),
|
||||
luabind::value("SoD", static_cast<int>(EQClientSoD)),
|
||||
luabind::value("Underfoot", static_cast<int>(EQClientUnderfoot)),
|
||||
luabind::value("RoF", static_cast<int>(EQClientRoF))//,
|
||||
//luabind::value("RoF2", static_cast<int>(EQClientRoF2))
|
||||
luabind::value("RoF", static_cast<int>(EQClientRoF))
|
||||
];
|
||||
}
|
||||
|
||||
|
||||
@ -54,9 +54,12 @@ void handle_npc_event_trade(QuestInterface *parse, lua_State* L, NPC* npc, Mob *
|
||||
ident << npc->GetNPCTypeID();
|
||||
|
||||
if(extra_pointers) {
|
||||
for(size_t i = 0; i < extra_pointers->size(); ++i) {
|
||||
size_t sz = extra_pointers->size();
|
||||
for(size_t i = 0; i < sz; ++i) {
|
||||
std::string prefix = "item" + std::to_string(static_cast<long long>(i + 1));
|
||||
Lua_ItemInst l_inst = EQEmu::any_cast<ItemInst*>(extra_pointers->at(i));
|
||||
ItemInst *inst = EQEmu::any_cast<ItemInst*>(extra_pointers->at(i));
|
||||
|
||||
Lua_ItemInst l_inst = inst;
|
||||
luabind::adl::object l_inst_o = luabind::adl::object(L, l_inst);
|
||||
l_inst_o.push(L);
|
||||
|
||||
|
||||
@ -871,7 +871,7 @@ void Client::FinishTrade(Mob* tradingWith, bool finalizer, void* event_entry, st
|
||||
items[i - EmuConstants::TRADE_BEGIN] = inst->GetItem()->ID;
|
||||
item_list.push_back(inst);
|
||||
} else {
|
||||
item_list.push_back(nullptr);
|
||||
item_list.push_back((ItemInst*)nullptr);
|
||||
continue;
|
||||
}
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user