fix more quest stuff

This commit is contained in:
SilicaAndPina 2021-02-09 19:03:20 +13:00
parent 68eaee2d1c
commit d776d2adc3
5 changed files with 8268 additions and 8033 deletions

View file

@ -279,7 +279,15 @@ namespace HISP.Game
else
{
if(quest.FailNpcChat != null)
res.NpcChat = quest.FailNpcChat;
{
if(npcActivation)
{
if (quest.FailNpcChat != "")
{
res.NpcChat = quest.FailNpcChat;
}
}
}
}
}
return res;
@ -322,23 +330,48 @@ namespace HISP.Game
}
public static bool UseTool(User user, string tool, int x, int y)
{
foreach(QuestEntry quest in QuestList)
if (tool == Quest.Shovel)
{
if (quest.AltActivation.Type == tool && quest.AltActivation.ActivateX == x && quest.AltActivation.ActivateY == y)
// check Treasures
if (Treasure.IsTileTreasure(x, y))
{
ActivateQuest(user, quest);
Treasure.GetTreasureAt(x, y).CollectTreasure(user);
return true;
}
}
if(tool == Quest.Shovel)
QuestResult result = null;
foreach (QuestEntry quest in QuestList)
{
// Also check Treasures
if (Treasure.IsTileTreasure(x, y))
Treasure.GetTreasureAt(x, y).CollectTreasure(user);
if (quest.AltActivation.Type == tool && quest.AltActivation.ActivateX == x && quest.AltActivation.ActivateY == y)
{
result = ActivateQuest(user, quest, true, result);
if(result.QuestCompleted)
{
if(result.NpcChat != null)
{
byte[] ChatPacket = PacketBuilder.CreateChat(result.NpcChat, PacketBuilder.CHAT_BOTTOM_RIGHT);
user.LoggedinClient.SendPacket(ChatPacket);
}
return true;
}
}
}
if(result != null)
{
if (result.NpcChat != null)
{
byte[] ChatPacket = PacketBuilder.CreateChat(result.NpcChat, PacketBuilder.CHAT_BOTTOM_RIGHT);
user.LoggedinClient.SendPacket(ChatPacket);
}
return true;
}
return false;
}
}