Porting ToME2 to the T4 engine

If you have a module that you'd like comments on or would like to know how to create your very own module, post here

Moderator: Moderator

What do you want to see in the next release?

Hey, why haven't you implemented my favorite race/subrace/class yet? (specify below)
1
17%
Hey, why haven't you implemented my favorite skill/talent/spell/ability yet? (specify below)
2
33%
Hey, why haven't you implemented my favorite scroll/potion/wand/staff/rod/other object yet? (specify below)
0
No votes
Hey, why haven't you implemented my favorite store/quest/event yet? (specify below)
0
No votes
Hey, that's not what that dungeon's supposed to look like! (specify below)
0
No votes
Hey, why haven't you implemented my favorite game mechanic/UI feature yet? (specify below)
2
33%
Hey, that's a bug! Go fix that bug! (specify below)
1
17%
Hey, you didn't list what I want to see! (specify below)
0
No votes
 
Total votes: 6

Message
Author
Steven Aus
Archmage
Posts: 366
Joined: Sat Dec 13, 2014 3:38 pm

Re: Porting ToME2 to the T4 engine

#316 Post by Steven Aus »

I deleted the whole t2 module directly and redownloaded 2298 just to be sure, and I still got the Manathrust error. This is a Yeek Sorceror:

https://www.dropbox.com/s/ycm03t6hnlrsl ... k.zip?dl=0

I was able to kill a unit using a Human Ranger using melee. However, previously I shot about 6 arrows or more at him and they all missed:

https://www.dropbox.com/s/qay3emdysynut ... r.zip?dl=0

Btw: why is the Maia a blank slate, the same as the human? I thought the Maia were a lot more powerful than humans?

Why does a Petty Dwarf Haftedmaster miss certain units so much, when a Human and Thunderlord of the same class hit most of the time?

https://www.dropbox.com/s/3otmeyc536m8f ... r.zip?dl=0

Zizzo
Sher'Tul Godslayer
Posts: 2517
Joined: Thu Jan 23, 2003 8:13 pm
Location: A shallow water area south of Bree
Contact:

Re: Porting ToME2 to the T4 engine

#317 Post by Zizzo »

[We Apologize for the Delay;™ on a train ATM]
Steven Aus wrote:I deleted the whole t2 module directly and redownloaded 2298 just to be sure, and I still got the Manathrust error. This is a Yeek Sorceror:
Yyyeah, turns out I hadn't actually checked in that fix yet… :oops: We Apologize for the Confusion.™
Steven Aus wrote:I was able to kill a unit using a Human Ranger using melee. However, previously I shot about 6 arrows or more at him and they all missed:
[reads log] *blink* …Okay, that is an unusually low attack power. Do you still have that savefile?
Steven Aus wrote:Btw: why is the Maia a blank slate, the same as the human? I thought the Maia were a lot more powerful than humans?
They get stat bonuses every six levels. On the flip side, they get innate aggravation (just implemented) and slow exp drain starting at level 20 (not yet implemented).
"Blessed are the yeeks, for they shall inherit Arda..."

Zizzo
Sher'Tul Godslayer
Posts: 2517
Joined: Thu Jan 23, 2003 8:13 pm
Location: A shallow water area south of Bree
Contact:

Re: Porting ToME2 to the T4 engine

#318 Post by Zizzo »

And as long as I'm in the neighborhood, a couple questions on the subject of archery:
  • It's been too long since I played an Archer in T2, so I don't remember this mechanic exactly: If you fire while your quiver is empty, the game prompts you to choose a stack of ammo from your inventory (I do remember that much). What I don't remember is whether the game also auto-wields the ammo you selected into the quiver. [For that matter, whether it does or not, should I implement that in the module?]
  • I haven't yet implemented the "=g" inscription to auto-pickup an object, which is a significant QoL feature for archers with fired ammo scattered all over the floor. My current idea for a stopgap is to put a temporary auto_pickup flag on any ammo that you fire, and clear it when you pick it back up. Suitable?
"Blessed are the yeeks, for they shall inherit Arda..."

Steven Aus
Archmage
Posts: 366
Joined: Sat Dec 13, 2014 3:38 pm

Re: Porting ToME2 to the T4 engine

#319 Post by Steven Aus »

I haven't ever hit an enemy with an arrow yet, on any of my characters, until this latest SVN. Here is a save for a Human Ranger that misses (note that this one is named "player" - not sure if you can rename save directories):

https://www.dropbox.com/s/ts5gk1eojuzu4 ... r.zip?dl=0

Games made before the latest SVN did not hit with arrows at all (like the Human Ranger save above). But when I created a new game with the latest SVN, I am hitting what I see to be a normal amount.

What are the special abilities of LostSouls and Vampires? They don't have any stat boosts or reductions and no extra experience penalty.

Btw: arrows are picked up automatically when walking over them but only when they are the type that is currently in the quiver (ever since you first implemented Shoot Arrow). When they are not the type in the quiver, they do NOT get picked up automatically.

Zizzo
Sher'Tul Godslayer
Posts: 2517
Joined: Thu Jan 23, 2003 8:13 pm
Location: A shallow water area south of Bree
Contact:

Re: Porting ToME2 to the T4 engine

#320 Post by Zizzo »

Steven Aus wrote:I haven't ever hit an enemy with an arrow yet, on any of my characters, until this latest SVN. Here is a save for a Human Ranger that misses (note that this one is named "player" - not sure if you can rename save directories):
`Sokay, I just need to poke around in the data files… hmm, these values don't look too far out of line. How far were you from the monsters you were shooting at? Archery to-hit chance decreases with distance. In the meantime, I've put in a few more debugging logs to better track values of interest.
Steven Aus wrote:What are the special abilities of LostSouls and Vampires? They don't have any stat boosts or reductions and no extra experience penalty.
Vampires aren't implemented yet, because in the original T2 code they're implemented in terms of corruptions, which I haven't touched yet — specifically, three vampiric corruptions that confer:
  • A drain-blood talent that lets you feed off adjacent monsters, in exchange for no longer being able to eat food.
  • +3 STR, +2 INT, +1 CON, -3 WIS, -2 DEX, -4 CHA.
  • Resist cold, poison, darkness and nether and hold life, in exchange for vulnerability to light.
The idea, apparently, is that if you managed to collect all three corruptions separately, you'd be switched to the Vampire subrace.

Lost Souls are "dead" characters that have to fight their way out of the Halls of Mandos to return to "life" and proceed with the rest of the game. Specifically, they start at level 98 of Mandos, and have to fight their way up to and out through level 1. Think of it as power-diving Dreadfell at level one, cranked up to eleven. :twisted: To compensate a bit, all levels of Mandos are fully lit, and the player starts with big stacks of Scrolls of Identify and Satisfy Hunger and temporary wraith form (ability to pass through walls) while in Mandos. Needless to say, none of this is implemented yet either. :oops: :wink:
Steven Aus wrote:Btw: arrows are picked up automatically when walking over them but only when they are the type that is currently in the quiver (ever since you first implemented Shoot Arrow). When they are not the type in the quiver, they do NOT get picked up automatically.
Yes, that's the current implementation, which is less than ideal for exactly the reason you describe, hence my proposed changes.
"Blessed are the yeeks, for they shall inherit Arda..."

Steven Aus
Archmage
Posts: 366
Joined: Sat Dec 13, 2014 3:38 pm

Re: Porting ToME2 to the T4 engine

#321 Post by Steven Aus »

Zizzo wrote:And as long as I'm in the neighborhood, a couple questions on the subject of archery:
  • It's been too long since I played an Archer in T2, so I don't remember this mechanic exactly: If you fire while your quiver is empty, the game prompts you to choose a stack of ammo from your inventory (I do remember that much). What I don't remember is whether the game also auto-wields the ammo you selected into the quiver. [For that matter, whether it does or not, should I implement that in the module?
Yes, I think so. It makes sense, and it is not a big departure from possible original implementation.
Zizzo wrote:
  • I haven't yet implemented the "=g" inscription to auto-pickup an object, which is a significant QoL feature for archers with fired ammo scattered all over the floor. My current idea for a stopgap is to put a temporary auto_pickup flag on any ammo that you fire, and clear it when you pick it back up. Suitable?
[/list]
Yes.

Btw: what is the advantage of being a Lost Soul character? Increased challenge? And how do you beat monsters that are 98 level when you are 1st level? Just avoid them? Or are there no or few monsters?

Atarlost
Sher'Tul Godslayer
Posts: 1973
Joined: Sat Apr 26, 2003 7:38 pm
Location: GMT-8:00

Re: Porting ToME2 to the T4 engine

#322 Post by Atarlost »

Steven Aus wrote:
Zizzo wrote:And as long as I'm in the neighborhood, a couple questions on the subject of archery:
  • It's been too long since I played an Archer in T2, so I don't remember this mechanic exactly: If you fire while your quiver is empty, the game prompts you to choose a stack of ammo from your inventory (I do remember that much). What I don't remember is whether the game also auto-wields the ammo you selected into the quiver. [For that matter, whether it does or not, should I implement that in the module?
Yes, I think so. It makes sense, and it is not a big departure from possible original implementation.
Zizzo wrote:
  • I haven't yet implemented the "=g" inscription to auto-pickup an object, which is a significant QoL feature for archers with fired ammo scattered all over the floor. My current idea for a stopgap is to put a temporary auto_pickup flag on any ammo that you fire, and clear it when you pick it back up. Suitable?
[/list]
Yes.

Btw: what is the advantage of being a Lost Soul character? Increased challenge? And how do you beat monsters that are 98 level when you are 1st level? Just avoid them? Or are there no or few monsters?
It's not level scaled and there are a handful of monster types that you can kill at level 1 with some classes for absurd XP. IIRC, you can hit level 15 or so off of a dragonfly.

Death Mold powers also made getting out trivial. If you were willing to put up with their horrible movement you could pretty consistently at least grab all the important dungeon spell books before surfacing.

Exploring the wilderness for them was a common power leveling tactic for normal characters as well. If you were less of a munchkin or couldn't find a mountain tile with a walkable border nagas were another option for some classes and would give several levels if killed at level 1.
Digitochracy
n. 1. technocracy. 2. government by the numbers. 3. rule by people with the longest fingers.

Steven Aus
Archmage
Posts: 366
Joined: Sat Dec 13, 2014 3:38 pm

Re: Porting ToME2 to the T4 engine

#323 Post by Steven Aus »

This is an error caused (I think) by using a nether spell against an immune target.

error = "Lua Error: /engine/interface/GameTargeting.lua:119: /data/damage_types.lua:1228: attempt to index global 'who' (a nil value)\
At [C]:-1 \
At [C]:-1 error\
At /engine/interface/GameTargeting.lua:119 fct\
At /engine/interface/GameTargeting.lua:125 targetMode\
At /engine/interface/GameTargeting.lua:254 targetMouse\
At /mod/class/Game.lua:1189 fct\
At /engine/Mouse.lua:58 "

Also, the wights quest in Bree is giving an error when you try to start it:

error = "Lua Error: /engine/interface/ActorQuest.lua:42: cannot open /data/quests/bree-wights.lua: Bad file descriptor\
At [C]:-1 \
At [C]:-1 error\
At /engine/interface/ActorQuest.lua:42 grantQuest\
At /data/chats/bree-mayor.lua:123 action\
At /engine/dialogs/Chat.lua:96 use\
At /engine/dialogs/Chat.lua:49 fct\
At /engine/ui/VariableList.lua:124 onUse\
At /engine/ui/VariableList.lua:99 fct\
At /engine/Mouse.lua:58 receiveMouse\
At /engine/Mouse.lua:98 delegate\
At /engine/ui/Dialog.lua:657 mouseEvent\
At /engine/ui/Dialog.lua:399 fct\
At /engine/Mouse.lua:58 "

Trying to put something in the Mathom-house in Bree:

error = "Lua Error: /engine/ui/Dialog.lua:174: attempt to perform arithmetic on local 'w' (a function value)\
At [C]:-1 __add\
At /engine/ui/Dialog.lua:174 yesnoLongPopup\
At /mod/class/MathomHouse.lua:93 doSell\
At /mod/class/MathomHouse.lua:66 action\
At /mod/dialogs/ShowStore.lua:83 use\
At /engine/dialogs/ShowStore.lua:49 fct\
At /engine/ui/ListColumns.lua:463 onUse\
At /engine/ui/ListColumns.lua:135 fct\
At /engine/Mouse.lua:58 receiveMouse\
At /engine/Mouse.lua:98 delegate\
At /engine/ui/Dialog.lua:657 mouseEvent\
At /engine/ui/Dialog.lua:399 fct\
At /engine/Mouse.lua:58 "

Zizzo
Sher'Tul Godslayer
Posts: 2517
Joined: Thu Jan 23, 2003 8:13 pm
Location: A shallow water area south of Bree
Contact:

Re: Porting ToME2 to the T4 engine

#324 Post by Zizzo »

Steven Aus wrote:This is an error caused (I think) by using a nether spell against an immune target.
[sound F/X: source diving] Stupid copy/paste error. Should be fixed now.
Steven Aus wrote:Also, the wights quest in Bree is giving an error when you try to start it:
Right, that quest isn't implemented yet. Give me a tick on that…
Steven Aus wrote:Trying to put something in the Mathom-house in Bree:
[sound F/X: source diving] …Well, that was just stupid. Should also be fixed now.
"Blessed are the yeeks, for they shall inherit Arda..."

Steven Aus
Archmage
Posts: 366
Joined: Sat Dec 13, 2014 3:38 pm

Re: Porting ToME2 to the T4 engine

#325 Post by Steven Aus »

Not sure if you've finished implementing the wights quest - I completed the bandits quest in my game and wasn't able to start the wights quest, now when I load my game I get this. You put an "," before the if on line 40992.

error = "Lua Error: /engine/Entity.lua:1147: /data/general/npcs/all.lua:40992: unexpected symbol near 'if'\
At [C]:-1 \
At [C]:-1 error\
At /engine/Entity.lua:1147 loadList\
At /engine/Entity.lua:1186 load\
At /data/zones/town-bree/npcs.lua:21 f\
At /engine/Entity.lua:1193 loadList\
At /engine/Zone.lua:166 loadBaseLists\
At /mod/class/Zone.lua:48 loadBaseLists\
At /engine/Zone.lua:732 loaded\
At /engine/Savefile.lua:552 delay\
At /engine/Module.lua:1050 instanciate\
At /engine/utils.lua:2221 showMainMenu\
At /engine/init.lua:165 \
At [C]:-1 dofile\
At /loader/init.lua:217 "

Have you finished creating the bree_wights quest? What it did in my game (which I hadn't reloaded up until now) was replace the entrance to the barrow downs with a quest entrance, and then when I entered there was nothing, not even look worked. Luckily I hadn't saved recently and I terminated the game process so I still had my game before I triggered the quest.

If the quest is level 30, maybe there should be an additional warning before you accept it? I'm level 15 Yeek Sorceror, but you don't need to be so high level to have completed the Bandits quest and ask for a new one. I'm guessing that you haven't fully implemented the quest yet. But I don't think the player character should be able to casually replace the Barrowdowns entrance with the level 30 quest entrance, especially for melee classes. Is it just meant to trigger on level 30 of the Barrowdowns (if there is such thing)?

I am now on L5 of the Barrowdowns, but the princess quest didn't create correctly, so there may not be an exit to the next level (since the princess quest blocks all other down exits). Is it possible for you to edit the savegame so there is an exit, if the princess setup got to the point of blocking exit creation?

error = "Lua Error: /engine/Chat.lua:100: attempt to index field 'npc' (a nil value)\
At [C]:-1 __index\
At /engine/Chat.lua:100 invoke\
At /data/quests/princess.lua:137 \
At [string \"return function(l, self, data) local ok=false...\"]:1 triggerHook\
At /mod/class/Game.lua:480 changeLevel\
At /mod/class/Game.lua:974 \
At /engine/KeyBind.lua:242 "

Also, an error when I tried to use a skill (spell I think):

error = "Lua Error: /engine/interface/ActorTalents.lua:279: /engine/interface/ActorTalents.lua:256: /engine/interface/ActorTalents.lua:150: /engine/interface/ActorTemporaryEffects.lua:113: attempt to index local 'ed' (a nil value)\
stack traceback:\
\9/engine/interface/ActorTemporaryEffects.lua:113: in function 'setEffect'\
\9/data/talents/spell/divination.lua:118: in function </data/talents/spell/divination.lua:112>\
\9[C]: in function 'xpcall'\
\9/engine/interface/ActorTalents.lua:147: in function </engine/interface/ActorTalents.lua:140>\
At [C]:-1 \
At [C]:-1 error\
At /engine/interface/ActorTalents.lua:279 useTalent\
At /mod/class/Player.lua:640 useTalent\
At /engine/interface/PlayerHotkeys.lua:170 \
At /engine/interface/PlayerHotkeys.lua:162 activateHotkey\
At /mod/class/HotkeysIconsDisplay.lua:178 onMouse\
At /mod/class/Game.lua:1208 fct\
At /engine/Mouse.lua:58 "

Zizzo
Sher'Tul Godslayer
Posts: 2517
Joined: Thu Jan 23, 2003 8:13 pm
Location: A shallow water area south of Bree
Contact:

Re: Porting ToME2 to the T4 engine

#326 Post by Zizzo »

Steven Aus wrote:Not sure if you've finished implementing the wights quest - I completed the bandits quest in my game and wasn't able to start the wights quest, now when I load my game I get this. You put an "," before the if on line 40992.
[sound F/X: forehead repeatedly striking desk] You'd think I'd learn by now: never, ever check anything in without at least syntax testing it. Should be fixed now. :oops:
Steven Aus wrote:Have you finished creating the bree_wights quest?
In theory, though it isn't tested yet.
Steven Aus wrote:What it did in my game (which I hadn't reloaded up until now) was replace the entrance to the barrow downs with a quest entrance, and then when I entered there was nothing, not even look worked.
:shock: Replaced?! That definitely shouldn't happen. The Wights quest entrance is near the Downs entrance, but not on top of it:
downs-wights.png
downs-wights.png (12.18 KiB) Viewed 7570 times
Steven Aus wrote:I am now on L5 of the Barrowdowns, but the princess quest didn't create correctly, so there may not be an exit to the next level (since the princess quest blocks all other down exits).
[sound F/X: source diving] Hmm, the error suggests that the Princess herself wasn't present, or possibly the game is mistaken about where she is — which is odd, because to have gotten that far, the level generator had to have at least thought it had placed the quest room. Does the quest show up in your quest log?
Steven Aus wrote:Is it possible for you to edit the savegame so there is an exit, if the princess setup got to the point of blocking exit creation?
I have no idea; I've never done it before. Normally I'd say just leave the level and come back to it, but I suspect you're using your persistent-levels addon, so that trick might not work. As a stopgap, I've tweaked the princess quest chats so that they should work even if the game can't find the princess.
Steven Aus wrote:Also, an error when I tried to use a skill (spell I think):
[sound F/X: source diving] Yes, the Sense Hidden spell; I'd spelled the temporary see-invisible effect name wrong. Should be fixed. :oops:
"Blessed are the yeeks, for they shall inherit Arda..."

Steven Aus
Archmage
Posts: 366
Joined: Sat Dec 13, 2014 3:38 pm

Re: Porting ToME2 to the T4 engine

#327 Post by Steven Aus »

Please stop hitting yourself, it was an easy mistake to make. And it was easy to fix too. :)

Regarding the wights quest, I'll check it again. I guess I could have gone to the wrong entrance.

No, the quest does not show up. I killed the guardian of the princess room but there was no princess. If I have to restart the game, so be it.

Zizzo
Sher'Tul Godslayer
Posts: 2517
Joined: Thu Jan 23, 2003 8:13 pm
Location: A shallow water area south of Bree
Contact:

Re: Porting ToME2 to the T4 engine

#328 Post by Zizzo »

Steven Aus wrote:No, the quest does not show up. I killed the guardian of the princess room but there was no princess.
Guardian? Singular? So it was the one-monster version of the princess quest room… And no, if the quest wasn't listed, then none of the necessary callbacks would have been present to make stuff work. How could it have ended up without a princess, though?
Steven Aus wrote:A If I have to restart the game, so be it.
Well, I never did get around to tying the debug console to cheat mode, so in extremis, you could go to the debug console via <Alt-L> and enter the command "game:changeLevel(6)" to keep going down.
"Blessed are the yeeks, for they shall inherit Arda..."

Steven Aus
Archmage
Posts: 366
Joined: Sat Dec 13, 2014 3:38 pm

Re: Porting ToME2 to the T4 engine

#329 Post by Steven Aus »

What I'll do is, since I have 98 chosen for number of quests, is save the game before I go down a level, so if the princess quest is chosen and doesn't create correctly, I can get you information, and then load the save from before I went down a level until you've managed to fix the bug.

Maybe the room was created too near to the starting point of Level 5 Barrow-downs? I could have probably viewed the princess from the starting point if the wall had not been there.

So I used the lua console (which is Ctrl-L rather than Alt-L by the way) to get to the sixth level of Barrow-downs, and I found some Crypt Creeps. Would they normally do 39 damage or more? One of them tried to attack me and produced an error for trying to use their attack talent. Even if they would normally do 39 or more, I might continue to see lower levels of the Barrowdowns dungeon (unless another one hits me after you fix the following error, of course ;-)).

error = "Lua Error: /engine/interface/ActorTalents.lua:279: /engine/interface/ActorTalents.lua:256: /engine/interface/ActorTalents.lua:150: /mod/spell-util.lua:2019: attempt to index global 'caster' (a nil value)\
stack traceback:\
\9/mod/spell-util.lua:2019: in function </mod/spell-util.lua:2014>\
\9[C]: in function 'xpcall'\
\9/engine/interface/ActorTalents.lua:147: in function </engine/interface/ActorTalents.lua:140>\
At [C]:-1 \
At [C]:-1 error\
At /engine/interface/ActorTalents.lua:279 useTalent\
At /mod/class/NPC.lua:486 useTalent\
At /engine/ai//talented.lua:53 runAI\
At /engine/ai//talented.lua:63 runAI\
At /mod/class/ai//tome2.lua:55 doAI\
At /mod/class/NPC.lua:88 act\
At /engine/GameEnergyBased.lua:129 tickLevel\
At /mod/class/GameEnergyBasedEvilHack.lua:32 tick\
At /engine/GameTurnBased.lua:51 tick\
At /mod/class/Game.lua:547 "

Zizzo
Sher'Tul Godslayer
Posts: 2517
Joined: Thu Jan 23, 2003 8:13 pm
Location: A shallow water area south of Bree
Contact:

Re: Porting ToME2 to the T4 engine

#330 Post by Zizzo »

Steven Aus wrote:What I'll do is, since I have 98 chosen for number of quests, is save the game before I go down a level, so if the princess quest is chosen and doesn't create correctly, I can get you information, and then load the save from before I went down a level until you've managed to fix the bug.
Well, I think now it should at least give you the quest even if the princess isn't present. Although that would be useful information… [sound F/X: SVN commit] Okay, if the princess isn't created in the quest room, the fake princess used in the chat dialog will now be described as "(proxy)" for debugging purposes.
Steven Aus wrote:Maybe the room was created too near to the starting point of Level 5 Barrow-downs? I could have probably viewed the princess from the starting point if the wall had not been there.
Possibly, though I can't think of why that would affect it…
Steven Aus wrote:So I used the lua console (which is Ctrl-L rather than Alt-L by the way)
Ah, right, I rebound that to Alt-L because Ctrl-L in the roguelike keyset means "dig east". We Apologize for the Confusion.™
Steven Aus wrote:to get to the sixth level of Barrow-downs, and I found some Crypt Creeps. Would they normally do 39 damage or more?
Depends how many of them were in line of sight; they have a 3d8 cause light wounds spell and a summon undead spell. At those low levels, you'll probably want to lure them around a corner and fight them one or a few at a time. [Oh, and I also just noticed that I hadn't yet implemented the NPC cause-wounds spells' chance of cursing equipment; that's now implemented. :twisted: ]
Steven Aus wrote: One of them tried to attack me and produced an error for trying to use their attack talent.
[sound F/X: source diving] Ah, yes, Yet Another Stupid Copy/Paste Error™ in the summon spell. That should be fixed now.
"Blessed are the yeeks, for they shall inherit Arda..."

Post Reply