ToME: the Tales of Maj'Eyal

Everything about ToME
It is currently Thu Sep 19, 2019 5:36 pm

All times are UTC




Post new topic Reply to topic  [ 6 posts ] 
Author Message
PostPosted: Fri Jul 27, 2018 10:08 pm 
Offline

Joined: Fri Jul 27, 2018 9:38 pm
Posts: 3
Well, I'm not sure this is a bug rather than me being stupid somewhat - it's been a while since I've played this far in the regular campaign - but:

https://te4.org/characters/161289/tome/ ... d197c2b2ce

This character has defeated Golbug, has received the scroll from Last Hope, but is missing the Orb of Many Ways, meaning progress is at a dead end. The orb isn't in Reknor (not visible and not found by auto-exploring). As far as I know, this shouldn't be possible, but as stated above, I might just be missing something in a stupid way, in which case, apologies in advance.

If any additional information or files would be helpful, let me know - I did not include the log snippets because I continued play for a bit before going back to the portal and then hopped around trying to figure out if the orb was somewhere else / involved more quests, so I figure the log's long since lost any relevant information


Top
 Profile  
 
PostPosted: Sun Jul 29, 2018 5:59 am 
Offline
Cornac

Joined: Sat May 12, 2018 5:43 am
Posts: 32
viewtopic.php?f=42&t=40151


Top
 Profile  
 
PostPosted: Sun Jul 29, 2018 4:40 pm 
Offline

Joined: Fri Jul 27, 2018 9:38 pm
Posts: 3
scsijon wrote:
http://forums.te4.org/viewtopic.php?f=42&t=40151

Thanks for the tip. I didn't think to look this up because I figured a progress-stiffling bug of this nature would be fixed already if it was known. Into the recycle bin goes the character, unfortunately.


Top
 Profile  
 
PostPosted: Sun Jul 29, 2018 9:08 pm 
Offline
Higher

Joined: Wed Jun 06, 2018 10:53 am
Posts: 55
@Grim13
Could you answer whether you entered unremarkable cave (or explored Eastern World Map) before completing Slazish Fen, please?

@scsijon
Very useful information. Thanks for sharing.

Speculations. As far as I can see both Krogar and Golbug can drop the orb. Maybe Golbug doesn't drop the orb because it was assigned to Krogar earlier.
If I understand it correctly it can be fixed by removing it first and then reassigning to a different boss. I couldn't figure out how to do that though.
I tried to apply the mechanism used by Rod of Recall to Orb of Many Ways. From a quick test it seems to work. Here are changes if anyone wants to test.
Commented out ..\data\zones\reknor\npcs.lua (L54) and ..\data\zones\unremarkable-cave\npcs.lua (L124).
Code:
   resolvers.drops{chance=100, nb=1, {type="jewelry", subtype="orb", defined="ORB_MANY_WAYS"} },

In ..\mod\class\Game.lua
Code:
   -- Create the entity to store various game state things
   self.state = GameState.new{}
   local birth_done = function()
      --Added for orb of many ways (1 line)
      self.state:allowOrbOfManyWays(true)
      if self.state.birth.__allow_rod_recall then self.state:allowRodRecall(true) self.state.birth.__allow_rod_recall = nil end
      if self.state.birth.__allow_transmo_chest and profile.mod.allow_build.birth_transmo_chest then
         self.state.birth.__allow_transmo_chest = nil
         local chest = self.zone:makeEntityByName(self.level, "object", "TRANSMO_CHEST")
         if chest then
            self.zone:addEntity(self.level, chest, "object")
            self.player:addObject(self.player:getInven("INVEN"), chest)
         end
      end

In ..\mod\class\GameState.lua
Code:
--- Allow dropping the orb of many ways (4 lines)
function _M:allowOrbOfManyWays(v)
   if v == nil then return self.allow_drop_oomw end
   self.allow_drop_oomw = v
end

In ..\mod\class\NPC.lua
Code:
function _M:die(src, death_note)
   if self.dead then self:disappear(src) self:deleteFromMap(game.level.map) if game.level:hasEntity(self) then game.level:removeEntity(self, true) end return true end

   if src and Faction:get(self.faction) and Faction:get(self.faction).hostile_on_attack then
      Faction:setFactionReaction(self.faction, src.faction, Faction:factionReaction(self.faction, src.faction) - self.rank, true)
   end

   -- Get angry if attacked by a friend
   if src and src ~= self and src.resolveSource and src.faction then
      local rsrc = src:resolveSource()
      local rid = rsrc.unique or rsrc.name

      -- Call for help if we become hostile
      for i = 1, #self.fov.actors_dist do
         local act = self.fov.actors_dist[i]
         if act and act ~= self and act:reactionToward(rsrc) >= 0 and self:reactionToward(act) > 0 and not act.dead and act.checkAngered then
            act:checkAngered(src, false, -101)
         end
      end
   end

   --Added for orb of many ways (11 lines)
   if (self.define_as == "GOLBUG" or self.define_as == "CORRUPTOR") and game.state:allowOrbOfManyWays() then
      local oomw = game.zone:makeEntityByName(game.level, "object", "ORB_MANY_WAYS")
      if oomw then
         if not game.player:canMove(self.x, self.y, true) then
            game.zone:addEntity(game.level, oomw, "object")
            game:getPlayer(true):addObject(game:getPlayer(true):getInven("INVEN"), oomw)
         else
            game.zone:addEntity(game.level, oomw, "object", self.x, self.y)
         end
      end
   end
   if self.rank >= 4 and game.state:allowRodRecall() and not self:attr("no_rod_recall") then
      local rod = game.zone:makeEntityByName(game.level, "object", "ROD_OF_RECALL")
      if rod then
         -- If the player can move to the space the NPC died on, drop in the normal way
         -- Else make absolutely sure they get the Rod of Recall by moving it to their inventory directly
         if not game.player:canMove(self.x, self.y, true) then
            game.zone:addEntity(game.level, rod, "object")
            game:getPlayer(true):addObject(game:getPlayer(true):getInven("INVEN"), rod)
            rod:identify(true)
         else
            game.zone:addEntity(game.level, rod, "object", self.x, self.y)
         end

         game.state:allowRodRecall(false)
         if self.define_as == "THE_MASTER" then world:gainAchievement("FIRST_BOSS_MASTER", src)
         elseif self.define_as == "GRAND_CORRUPTOR" then world:gainAchievement("FIRST_BOSS_GRAND_CORRUPTOR", src)
         elseif self.define_as == "PROTECTOR_MYSSIL" then world:gainAchievement("FIRST_BOSS_MYSSIL", src)
         elseif self.define_as == "URKIS" then world:gainAchievement("FIRST_BOSS_URKIS", src)
         end
      end
   end
   -- Ok the player managed to kill a boss dont bother him with tutorial anymore
   if self.rank >= 3.5 and not profile.mod.allow_build.tutorial_done then game:setAllowedBuild("tutorial_done") end

   return mod.class.Actor.die(self, src, death_note)
end

There should be no problems with Tannen because he drops a different orb. I'm not sure what happens if you quickly recall from Unremarkable Cave (after arriving there from the west) before Krogar dies and return to kill him after creating the portal in Last Hope.


Top
 Profile  
 
PostPosted: Sun Jul 29, 2018 9:34 pm 
Offline

Joined: Fri Jul 27, 2018 9:38 pm
Posts: 3
BugReporter wrote:
@Grim13
Could you answer whether you entered unremarkable cave (or explored Eastern World Map) before completing Slazish Fen, please?

I did. I always pop into the cave when starting in the East just in case there's something good on the ground near the stairs. I guess that turns out to be a bad idea, but good catch.


Top
 Profile  
 
PostPosted: Tue Jul 31, 2018 9:18 pm 
Offline
Higher

Joined: Wed Jun 06, 2018 10:53 am
Posts: 55
Not a bad idea per se, but in this particular situation it's better to avoid the cave. However, it is only true if my hypothesis is correct.

What information do we have so far?
From the old topic:
1. Race/Class: Thalore Sun Paladin
2. Entered unremarkable cave before completing Slazish Fen [yes/no]: unknown
3. Log: Refused unique by name Orb of Many Ways mod.class.Object/Orb of Many Ways
This topic:
1. Race/Class: Cornac Sun Paladin
2. Entered unremarkable cave before completing Slazish Fen [yes/no]: yes
3. Log: unknown

Does anyone who played East start and not visited the Unremarkable Cave have this issue?

Edit. Found another topic with an explanation viewtopic.php?f=42&t=42978 . I should have searched in the first place, doh!


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 6 posts ] 

All times are UTC


Who is online

Users browsing this forum: No registered users and 3 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group