Skip to content

Temporary Spawn Point Fix

MathsorcererMathsorcerer Member Posts: 3,037
I know a lot of people have been upset over the lack of monsters in the spawn points but I think I have an idea that will suffice until some sort of official patch or fix is created by the developers. I have spawner.cre, based off the cat.cre file, which runs a script, spawner.bcs, that will sit at a spawn point and when it sees a party member will summon the creatures at the spawn point then destroy itself. As I noted elsewhere, I was half-asleep (why do all the good ideas happen when you are mostly asleep? probably because you aren't thinking about them) when I realized I could also set the script to scale the summoned creatures based on the game's difficulty level and the party's average level. Here is the text of spawner.bcs as it exists right now:

IF
See([PC])
LevelPartyLT(3)
DifficultyLT(HARD)
THEN
RESPONSE #100
CreateCreature("gibber2",[-1.-1],0) // Diseased Gibberling
CreateCreature("gibber2",[-1.-1],0) // Diseased Gibberling
DestroySelf()
END

IF
See([PC])
LevelPartyLT(3)
DifficultyGT(NORMAL)
THEN
RESPONSE #100
CreateCreature("gibber",[-1.-1],0) // Gibberling
CreateCreature("gibber",[-1.-1],0) // Gibberling
DestroySelf()
END

IF
See([PC])
LevelPartyGT(3)
DifficultyLT(HARD)
THEN
RESPONSE #100
CreateCreature("gibber2",[-1.-1],0) // Diseased Gibberling
CreateCreature("gibber2",[-1.-1],0) // Diseased Gibberling
CreateCreature("gibber2",[-1.-1],0) // Diseased Gibberling
CreateCreature("gibber2",[-1.-1],0) // Diseased Gibberling
DestroySelf()
END

IF
See([PC])
LevelPartyGT(3)
DifficultyGT(NORMAL)
THEN
RESPONSE #100
CreateCreature("gibber",[-1.-1],0) // Gibberling
CreateCreature("gibber",[-1.-1],0) // Gibberling
CreateCreature("gibber",[-1.-1],0) // Gibberling
CreateCreature("gibber",[-1.-1],0) // Gibberling
DestroySelf()
END

A 1st-level character playing on any setting less than "hard" will get 2 diseased gibberlings, 1st-level on any setting higher than "normal" gets 2 healthy gibberlings, and so on. As you can see, it is very simple right now but it works and can be scaled as needed. My prelimnary testing went as follows:
1st level fighter on easy -- got 2 diseased gibberlings
Leveled to 5th -- got 4 diseased gibberlings
Set the difficulty to hard -- got 4 healthy gibberlings
Dual-classed to mage (his int is only 10 but I don't have dual-class restrictions based on stats due to edits) -- 4 healthy gibberlings--your inactive level because of dual-class still counts so "LevelPartyGT(3)" returns "true" in this case.
Teleported to another area where spawner was already waiting -- was greeted by 4 healthy gibberlings.

Anyway...like I said--it's a start until an official fix is created. In the meantime, I need to .bif the .cre and .bcs file so it can be sent to anyone who wants them or, since there are only two files, just drop them in Override. Of course, you need to edit .are files and put spawner as an actor wherever a spawn point should be.

Any ideas on how to refine this process are, of course, welcome.

Comments

  • ArchaicArchaic Member Posts: 924
    Awesome! Thanks for sharing. I'm sure a lot of people will be interested. Can't wait for the download files.
  • RequiemRequiem Member Posts: 187
    That's a really good idea and well executed, could work very well indeed even if there is an official patch for it
  • AbelAbel Member Posts: 785
    Why don't you make a character script that would multiply last creature seen? You could use it as an object to create the appropriate creature. It would also save the hassle of adding the script to every area.

    I like the idea of difficulty scaling.
  • CamDawgCamDawg Member, Developer Posts: 3,438
    Yeah, this is what I ended up coding for Tutu spawn points. You'd save yourself a lot of time simply lifting that solution wholesale.
  • MathsorcererMathsorcerer Member Posts: 3,037
    @CamDawg -- I never downloaded or played using Tutu. I had many people recommend it but never got around to getting it. At least I am on the right track, then. If people want to lift the already-implemented solution from there then they should; in the meantime, I am going to move forward with improving and expanding this for myself even if I wind up not making it available for anyone else.

    The problem I am going to encounter now, of course, is that people are going to assume I actually did lift the idea directly from Tutu. *shrug* I can't prove that I didn't and I don't expect anyone to simply take my word for it so my only recourse is to walk away from it publicly and pursue it only privately.

    On the other hand...other people's opinions of me are irrelevant so maybe I will continue to work on it, after all. Either way, I still came up with a solution on my own and I find enjoyment in that. We'll just see how it goes, yes?
  • AbelAbel Member Posts: 785
    There's no shame in using others' code. It's precisely the point to use it and expand it if possible.
  • CamDawgCamDawg Member, Developer Posts: 3,438
    Nah, I didn't mean it like that. I just meant you could save a lot of time by doing just that--the Tutu solution has been field-tested, also solves the problem of re-spawns, and spawning the initial set of invisibles to run the spawns.
  • KerozevokKerozevok Member Posts: 695
    This was solved by the latest update, otherwise spawngrp.2da is a good alternative (for a powerful spawning).
  • MathsorcererMathsorcerer Member Posts: 3,037
    After testing several parties with different classes, different numbers of NPCs, different levels, and different difficulty settings, I am seeing *no* difference in the spawn points whatsoever. The latest patch, its other corrections notwithstanding, did *not* address the spawn point issue. One 1st-level PC on easy and 4 6th-level characters on insane both get jumped by the same two gibberlings in area 2800; a "low-level" area to be certain but there should be some variation and/or scalability, at least to my thinking, to make the game more flexible.

    This is fine with me--it simply verifies that I should move forward with my own fix rather than waiting for someone else to do it.
Sign In or Register to comment.