Chaosforge Forum

  • March 19, 2024, 02:31
  • Welcome, Guest
Please login or register.



Login with username, password and session length
Pages: [1]

Author Topic: Tourist mod: walk through Hell like a Boss! + Infinity module  (Read 11166 times)

Equality

  • Second Lieutenant
  • *
  • Offline Offline
  • Posts: 174
  • Lost Soul
    • View Profile

Tourist:
Well, from one side that is a sample how to create items. I create:

- pistol, auto-rechargable, alt-fire, alt-reload
- knife, alt-fire
- super-medpack.
- armor and boots.

From other side it is a sample how reuse any of special levels that exist in game. All names are present in code.

And for non-modders that is a good training area, where you can visit ANY special level at any difficulty. Faster gain experience, and find a lot of uniques. Of course you have at start "cheaters" equipment - but why not unequip that? Well. Anyway it is a debug-mode episode.

Pistol alt-reload teleports you to stairs, if you want. May be in future I write "massacre" for knife alt-fire ...

last changes:
- make a proper color for armor. No, it is not intended black - I want a cybernetic armor with white glow. Now it looks properly.
- added Map Scanner - thank to shark20061
- added missed Deimos Lab. Now ALL special levels here.
- added big ammo and ammopacks. Can be bugged, not tested.
- knife converted to blade, with Dragonslayer sprite and Whirlwind alt-fire.
- added proper level names (i.e. Phobos-Deimos-Hell)

finally,
- added MASSACRE for blade alt-attack. Kill all living (and non-living) beings on level. Except you.

Infinity
A long-long way. Until level number not reached max_integer or something like that. So, if you want, you can descend to level 2 000 000 000. Or at least to 32000.
Make that past discussion about Infinity Dungeon at ADoM...
« Last Edit: April 13, 2013, 09:11 by Equality »
Logged
Once advanced DoomRL player
Find mysterious sword Dragonslayer
Say "Best thing ever found!" and start jumping around...
But he can't get the sword from the ground

Shinji_Ikari_9th

  • Elder
  • Major
  • *
  • *
  • Offline Offline
  • Posts: 375
  • Lock and load!
    • View Profile

just finished playing tourist and found myself with more then i knew what to do with.  well done.

edit- just played the newest version of tourest, and i must say that i loved the map scanner.
« Last Edit: April 16, 2013, 01:22 by Shinji_Ikari_9th »
Logged
Over and Out!

yaflhdztioxo

  • Programmer
  • Local Inquisitor
  • Captain
  • *
  • *
  • Offline Offline
  • Posts: 298
  • Lost Sole
    • View Profile

Heh, well it was bound to happen eventually, and I suspect this mod is a GREAT resource for other modders who want to learn now to work with the engine.

I wonder if we should put this on the portal?
Logged

Evilpotatoe

  • Backer
  • Major
  • *
  • *
  • Offline Offline
  • Posts: 316
  • Lost Soul corpse
    • View Profile

Just tried it. Great, indeed.

The super medkit is a good idea. Would you mind adding super nuke, non-homing phase device, portable invulnerability globe, zerk pack, envirosuit, light amp, & tracking map ? :)

Btw, I found myself short of ammo several times, why does this stupid blaster need reload ? it feels so weak :(
Logged
Badges - [26/26/26/22/9/2] - 42/43

shark20061

  • Programmer
  • Elder Chaos Guard
  • Captain
  • *
  • *
  • Offline Offline
  • Posts: 266
    • View Profile

Pistol alt-reload teleports you to stairs, if you want. May be in future I write "massacre" for knife alt-fire ...

Code: [Select]
OnAltFire = function (self, firer)
  if not firer.flags[BF_INV] then
    firer.flags[BF_INV] = true
    level:nuke()
    firer.flags[BF_INV] = false
  else
    level:nuke()
  end
  return true
end,


Just tried it. Great, indeed.

The super medkit is a good idea. Would you mind adding super nuke, non-homing phase device, portable invulnerability globe, zerk pack, envirosuit, light amp, & tracking map ? :)

Btw, I found myself short of ammo several times, why does this stupid blaster need reload ? it feels so weak :(

Since we have a testing thing going on, I'll supply my favorite debug items:

PDA - Full map visibility
Code: [Select]
register_item "automap" {
name = "PDA",
weight = 0,
sprite = items.map.sprite,
type = ITEMTYPE_PACK,
desc = "A handheld device that contains a built in scanner system.  Just activate it to reveal the level.",
OnUseCheck = function (self, user)
level.light[LFEXPLORED] = true
level.flags[LF_ITEMSVISIBLE] = true
level.flags[LF_BEINGSVISIBLE] = true
return false
end,
OnUse = function (self, user)
--Nothing!
end,
}

player.inv:add("automap")

The all powerful Mining Laser:
Code: [Select]
register_item "mininglaser" {
name = "Mining Laser",
weight = 0,
sprite = items.plasma.sprite,
type = ITEMTYPE_RANGED,
desc = "Fires a highly focused laser that burns through anything in its path.",
damage = "7d6",
damagetype = DAMAGE_PLASMA,
psprite = items.plasma.psprite,
group = "weapon-plasma",
ammo_id = "cell",
fire = 9,
acc = 12,
ammomax = 50,
altfire = ALT_SCRIPT,
altfirename = "Rapid Mode",
altreload = RELOAD_NONE,
missile = {
sprite = SPRITE_FIREBALL,
color = GREEN,
delay = 20,
miss_base = 0,
miss_dist = 0,
flags = {MF_RAY, MF_HARD},
sound_id = "plasma",
},
flags = {IF_NOAMMO, IF_FARHIT, IF_UNSEENHIT, IF_DESTRUCTIVE},
OnFire = function (self, firer)
self.shots = 0
return true
end,
OnAltFire = function (self, firer)
self.shots = 4
return true
end,
OnFired = function (self, firer)
self.shots = 0
end,
}

player.inv:add("mininglaser")

Portable Invulnerability (Toggle):
Code: [Select]
register_item "inv_toggle" {
name = "Super Shield",
weight = 0,
sprite = items.smed.sprite,
type = ITEMTYPE_PACK,
desc = "Enables and Disables a super shield, making you invulnerable or removing invulnerability.",
OnUseCheck = function (self, user)
if (player.flags[BF_INV] == false) then
ui.msg("The shield is now ON!")
player.flags[BF_INV] = true
else
ui.msg("The shield is now OFF!")
player.flags[BF_INV] = false
end
return false
end,
OnUse = function (self, user)
-- HA! Nothing here, all happens in use check to make it not use any time!
end
}

player.inv:add(inv_toggle)

Super Nuke:
Code: [Select]
register_item "supernuke" {
name = "Nuke Detonator",
weight = 0,
sprite = items.nuke.sprite,
type = ITEMTYPE_PACK,
desc = "When you just feel the need to blow up every last monster on the level...",
OnUseCheck = function (self, user)
ui.msg("You push the nuke button!")
player.nuketime = 100
return false
end,
OnUse = function (self, user)
--Nothing again!
end
}

player.inv:add("supernuke")

The rest will be exercises for the readers!  (The basic framework for the rest is either in the module or in this post.)
Logged
Hell Knight Warrant Officer (0.9.9.4)  [26!/8/3/1/0]

Mancubus 2nd Lieutenant (0.9.9.6)  [22/12/3/0/0]
M:16 S:43 (126) A:17

Equality

  • Second Lieutenant
  • *
  • Offline Offline
  • Posts: 174
  • Lost Soul
    • View Profile

well.

1. Why this cheaters armor not 100% resist all and has durability?

Because for debug purpoces I want to see when I hurt. Well, if you want, change code and customize it.

2. Why this cheaters pistol not 100d100 and no-ammo?

Because I need some not so powerful for getting corpses sometimes. For checking situation with arch-viles. And if you need more ammo, you can B-mod it in game. Depleting ammo is a signal for player that situation becomes hot. Great when work with custom design and test it.

No-no, no super-nuke. I'm a greedy munchkin, I want to get anything valuable. And "Massacre" not equivalent "Nuke and survive" ;) Actually I suppose look for every being on level and set hp to 0. All die, drop equipment, much more safer.
Logged
Once advanced DoomRL player
Find mysterious sword Dragonslayer
Say "Best thing ever found!" and start jumping around...
But he can't get the sword from the ground

White Rider

  • Elder
  • Captain
  • *
  • *
  • Offline Offline
  • Posts: 252
  • Doesn't play much
    • View Profile
    • My Steam Profile

I've always wanted some kind of mode where I can destroy everything I see without having to work my way up to it.
Thank you for this stress-reliever mode.
Logged
0.9.9.6: 10d 15h Arch-Vile Major; 6/6/2012 - 3/15/2013
0.9.9.7: 12d 9h Cyberdemon Br. General; 3/19/2013 - ?
V: 31 (5P 17S 9F) M: 32 I: 66 A: 40 | 26 24 19 8 1 0

Equality

  • Second Lieutenant
  • *
  • Offline Offline
  • Posts: 174
  • Lost Soul
    • View Profile

Finally, added massacre for blade alt-fire.
Code: [Select]
  altfirename = "MASSACRE!",
 OnAltFire = function(self, Being)
   ui.msg("Smell of blood surrounds you...")
   for it in level:beings() do
     it:kill(false)
   end
   return true
 end
Logged
Once advanced DoomRL player
Find mysterious sword Dragonslayer
Say "Best thing ever found!" and start jumping around...
But he can't get the sword from the ground

GinDiamond

  • First Sergeant
  • *
  • Offline Offline
  • Posts: 129
  • Warrant Officer-Mancubus, trying to get all Bronze
    • View Profile
    • GinDiamond Stuff

BWHAHAHAHAHAAAA! I'M DOIN IT LIKE A BOSS!!
Logged
Do not muddle in the affairs of Dragons, for thou art crunchy and taste good with ketchup.

aknight2015

  • Private
  • *
  • Offline Offline
  • Posts: 1
  • Lost Soul
    • View Profile

I just found this mod and I'm loving all but one aspect. It corrupts it's own save game. I save on the stairs and when I try to continue the game tells me that the save is corrupted and deletes it. Anyway to fix this, or a workaround?
Logged

tehtmi

  • Programmer
  • Local Inquisitor
  • Lieutenant Colonel
  • *
  • *
  • Offline Offline
  • Posts: 458
    • View Profile
Re: Tourist mod: walk through Hell like a Boss! + Infinity module
« Reply #10 on: March 15, 2022, 18:26 »

When I tested it, the problem I saw is that the next time you go down stairs after loading the game it will crash. Not sure this is the same as what you're seeing (but it could be related).

I've attached a version with my fix for this, and it didn't seem to crash in the quick tests I run. If you run into more issues, it would help if you could attach a save.

(Basically, the bug is due to the way the mod was tracking which floor you were on; this wasn't saved, so after loading, it would be out of sync with the game's internal count.)
Logged
Pages: [1]