LUA Function Added HasPendingQuest(Spawn: Player, Int32: QuestID)
This commit is contained in:
parent
2a89989e0c
commit
fd147a0fd0
@ -3747,6 +3747,25 @@ int EQ2Emu_lua_HasQuest(lua_State* state) {
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int EQ2Emu_lua_HasPendingQuest(lua_State* state) {
|
||||||
|
if (!lua_interface)
|
||||||
|
return 0;
|
||||||
|
Spawn* player = lua_interface->GetSpawn(state);
|
||||||
|
int32 quest_id = lua_interface->GetInt32Value(state, 2);
|
||||||
|
lua_interface->ResetFunctionStack(state);
|
||||||
|
if(!player || !player->IsPlayer()) {
|
||||||
|
lua_interface->LogError("%s: LUA HasPendingQuest command error: player is not valid", lua_interface->GetScriptName(state));
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(!player->GetClient()) {
|
||||||
|
lua_interface->LogError("%s: LUA HasPendingQuest command error: client is not valid", lua_interface->GetScriptName(state));
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
lua_interface->SetBooleanValue(state, (((Player*)player)->GetClient()->HasPendingQuest(quest_id)));
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
int EQ2Emu_lua_QuestReturnNPC(lua_State* state) {
|
int EQ2Emu_lua_QuestReturnNPC(lua_State* state) {
|
||||||
if (!lua_interface)
|
if (!lua_interface)
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -302,6 +302,7 @@ int EQ2Emu_lua_UpdateQuestZone(lua_State* state);
|
|||||||
int EQ2Emu_lua_SetCompletedDescription(lua_State* state);
|
int EQ2Emu_lua_SetCompletedDescription(lua_State* state);
|
||||||
int EQ2Emu_lua_ProvidesQuest(lua_State* state);
|
int EQ2Emu_lua_ProvidesQuest(lua_State* state);
|
||||||
int EQ2Emu_lua_HasQuest(lua_State* state);
|
int EQ2Emu_lua_HasQuest(lua_State* state);
|
||||||
|
int EQ2Emu_lua_HasPendingQuest(lua_State* state);
|
||||||
int EQ2Emu_lua_HasCompletedQuest(lua_State* state);
|
int EQ2Emu_lua_HasCompletedQuest(lua_State* state);
|
||||||
int EQ2Emu_lua_QuestIsComplete(lua_State* state);
|
int EQ2Emu_lua_QuestIsComplete(lua_State* state);
|
||||||
int EQ2Emu_lua_QuestReturnNPC(lua_State* state);
|
int EQ2Emu_lua_QuestReturnNPC(lua_State* state);
|
||||||
|
@ -1262,6 +1262,7 @@ void LuaInterface::RegisterFunctions(lua_State* state) {
|
|||||||
lua_register(state, "OfferQuest", EQ2Emu_lua_OfferQuest);
|
lua_register(state, "OfferQuest", EQ2Emu_lua_OfferQuest);
|
||||||
lua_register(state, "ProvidesQuest", EQ2Emu_lua_ProvidesQuest);
|
lua_register(state, "ProvidesQuest", EQ2Emu_lua_ProvidesQuest);
|
||||||
lua_register(state, "HasQuest", EQ2Emu_lua_HasQuest);
|
lua_register(state, "HasQuest", EQ2Emu_lua_HasQuest);
|
||||||
|
lua_register(state, "HasPendingQuest", EQ2Emu_lua_HasPendingQuest);
|
||||||
lua_register(state, "HasCompletedQuest", EQ2Emu_lua_HasCompletedQuest);
|
lua_register(state, "HasCompletedQuest", EQ2Emu_lua_HasCompletedQuest);
|
||||||
lua_register(state, "QuestIsComplete", EQ2Emu_lua_QuestIsComplete);
|
lua_register(state, "QuestIsComplete", EQ2Emu_lua_QuestIsComplete);
|
||||||
lua_register(state, "QuestReturnNPC", EQ2Emu_lua_QuestReturnNPC);
|
lua_register(state, "QuestReturnNPC", EQ2Emu_lua_QuestReturnNPC);
|
||||||
|
@ -6990,6 +6990,17 @@ void Client::AcceptQuest(int32 quest_id) {
|
|||||||
MPendingQuestAccept.unlock_shared();
|
MPendingQuestAccept.unlock_shared();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool Client::HasPendingQuest(int32 quest_id) {
|
||||||
|
std::shared_lock lock(MPendingQuestAccept);
|
||||||
|
if (player->pending_quests.count(quest_id) > 0) {
|
||||||
|
Quest* quest = player->pending_quests[quest_id];
|
||||||
|
if (quest) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
void Client::RemovePendingQuest(int32 quest_id) {
|
void Client::RemovePendingQuest(int32 quest_id) {
|
||||||
bool send_updates = false;
|
bool send_updates = false;
|
||||||
MPendingQuestAccept.lock_shared();
|
MPendingQuestAccept.lock_shared();
|
||||||
|
@ -375,6 +375,7 @@ public:
|
|||||||
void CheckPlayerQuestsLocationUpdate();
|
void CheckPlayerQuestsLocationUpdate();
|
||||||
void AddPendingQuest(Quest* quest, bool forced = false);
|
void AddPendingQuest(Quest* quest, bool forced = false);
|
||||||
void AcceptQuest(int32 quest_id);
|
void AcceptQuest(int32 quest_id);
|
||||||
|
bool HasPendingQuest(int32 quest_id);
|
||||||
void RemovePendingQuest(int32 quest_id);
|
void RemovePendingQuest(int32 quest_id);
|
||||||
void SetPlayerQuest(Quest* quest, map<int32, int32>* progress);
|
void SetPlayerQuest(Quest* quest, map<int32, int32>* progress);
|
||||||
void AddPlayerQuest(Quest* quest, bool call_accepted = true, bool send_packets = true);
|
void AddPlayerQuest(Quest* quest, bool call_accepted = true, bool send_packets = true);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user