Bug with Dreadfell Staff

Where bugs go to lie down and rest

Moderator: Moderator

Post Reply
Message
Author
jyg
Posts: 1
Joined: Mon Jul 04, 2011 5:29 pm

Bug with Dreadfell Staff

#1 Post by jyg »

Got the staff from Dreadfell but since my golem was carrying it the game just stops when talking to the Elder.
Only way to continue is by killing the process, reload autosave and then give the staff to my main character before talking to the Elder again.
Either look into followers inventory or add a prompt that one needs to show the staff to the Elder.

Hachem_Muche
Uruivellas
Posts: 744
Joined: Thu Nov 18, 2010 6:42 pm

Re: Bug with Dreadfell Staff

#2 Post by Hachem_Muche »

This bug is caused when then the actor initiating the chat with the elder does not have the staff in inventory. I have added a new function _M:findInAllPartyInventoriesBy(prop, value) to check the inventories of all party members and updated the quest code to use it. Since this quest is needed to continue to the east, I have added a new chat option to allow the quest to continue if the player does not have the staff for any reason.

Patch:

Code: Select all

Index: game/modules/tome/class/Party.lua
===================================================================
--- game/modules/tome/class/Party.lua	(revision 6354)
+++ game/modules/tome/class/Party.lua	(working copy)
@@ -418,3 +418,11 @@
 	end
 	game:registerDialog(d)
 end
+
+function _M:findInAllPartyInventoriesBy(prop, value)
+	local o, item, inven_id
+	for i, mem in ipairs(game.party.m_list) do
+		o, item, inven_id = mem:findInAllInventoriesBy(prop, value)
+		if o then return mem, o, item, inven_id  end
+	end
+end
\ No newline at end of file
Index: game/modules/tome/data/chats/last-hope-elder.lua
===================================================================
--- game/modules/tome/data/chats/last-hope-elder.lua	(revision 6354)
+++ game/modules/tome/data/chats/last-hope-elder.lua	(working copy)
@@ -30,10 +30,12 @@
 	text = [[#LIGHT_GREEN#*He remains silent for a while*#WHITE# Indeed you were right to come here.
 The staff you describe reminds me of an artifact of great power from ancient times. May I see it?]],
 	answers = {
-		{"Here it is. #LIGHT_GREEN#*Tell him the encounter with the orcs*#LAST# You should keep it. I can feel its power and it would be safer if it were guarded by the armies of the kingdom.",
-		 jump="given_staff", cond=function(npc, player) return player:findInAllInventoriesBy("define_as", "STAFF_ABSORPTION") and player:isQuestStatus("staff-absorption", engine.Quest.COMPLETED, "survived-ukruk") end},
+		{"Here it is. #LIGHT_GREEN#*Tell him about the encounter with the orcs*#LAST# You should keep it. I can feel its power and it would be safer if it were guarded by the armies of the kingdom.",
+		 jump="given_staff", cond=function(npc, player) return game.party:findInAllPartyInventoriesBy("define_as", "STAFF_ABSORPTION") and player:isQuestStatus("staff-absorption", engine.Quest.COMPLETED, "survived-ukruk") or false end},
 		{"I am afraid I lost it. #LIGHT_GREEN#*Tell him about the encounter with the orcs*",
 		 jump="lost_staff", cond=function(npc, player) return player:isQuestStatus("staff-absorption", engine.Quest.COMPLETED, "ambush-finish") end},
+		 {"I had it briefly but have lost it somehow.  It could have been some orcs I encountered ...",
+		 jump="lost_staff", cond=function(npc, player) return player:hasQuest("staff-absorption") and not game.party:findInAllPartyInventoriesBy("define_as", "STAFF_ABSORPTION") end},
 	}
 }
 
@@ -43,10 +45,10 @@
 Anyway, thank you again, @playername@, for your help.]],
 	answers = {
 		{"Thank you, my lord.", action=function(npc, player)
-			local o, item, inven_id = player:findInAllInventoriesBy("define_as", "STAFF_ABSORPTION")
-			player:removeObject(inven_id, item, true)
+			local mem, o, item, inven_id = game.party:findInAllPartyInventoriesBy("define_as", "STAFF_ABSORPTION")
+			mem:removeObject(inven_id, item, true)
 			o:removed()
-
+			
 			player:setQuestStatus("staff-absorption", engine.Quest.DONE)
 			world:gainAchievement("A_DANGEROUS_SECRET", player)
 		end, jump="orc_hunt"},
Author of the Infinite 500 and PlenumTooltip addons, and the joys of Scaling in ToME.

darkgod
Master of Eyal
Posts: 10751
Joined: Wed Jul 24, 2002 9:26 pm
Location: Angolwen
Contact:

Re: Bug with Dreadfell Staff

#3 Post by darkgod »

thanks !
[tome] joylove: You can't just release an expansion like one would release a Kraken XD
--
[tome] phantomfrettchen: your ability not to tease anyone is simply stunning ;)

Post Reply