Jump to content

Random teleporting


Miloch

Recommended Posts

I would like to script an effect that makes the caster jump several feet regardless of where he or she is, like the Dimension Door spell. It looks like actions like ForceSpellPoint, JumpToPoint and MoveToPoint require absolute rather than relative coordinates. Is there a way to use relative coordinates somehow? The nymph script in BG2 has Forcespell(Nearestenemyof(Myself),WIZARD_DIMENSION_DOOR). How does this even work (or does it) with no coordinates (not to mention the spell target is Self)?

 

Edit: Eh... maybe ForceSpell(Myself,DRYAD_TELEPORT) will work? Amazing how often this is used by non-dryads...

Link to comment

DRYAD_TELEPORT is a DestroySelf() spell. It runs the dimension door animation and then destroys the actor. Not what you want!

 

Negative coordinates sometimes act as offsets, so you can try that. I thought there was a MoveToOffset() or similar action, but that won't have you teleport. Scripting Dimension Door works like scripting AoE spells (the engine uses the coordinates of the object targeted).

 

There's an effect for teleport field that has the target teleport randomly, and there's a phase effect that automatically teleports the target to a random enemy (when an enemy is onscreen).

 

Otherwise, you're going to have to get clever to try to get something close (well, close enough) to what you want.

Link to comment

You may want to try tracking down Galc's "SpellPoint without no stinking point" (at least, it's called something like that) tutorial.

As I remember, the idea is to summon some invisible creatures, have them run away, then teleport to one of them.

Link to comment

I'd just use the teleport field opcode in a custom spell if I wanted random - it already observes wallgroups and whatnot correctly.

 

After distinctly unimpressive results with using seven invisible creatures to replicate Seven Eyes from IWD, I prefer keeping them to a minimum (and immediately destroyed) :)

Link to comment

Ablative damage prevention - BG2 doesn't like doing that, so it required dumb hacks to make effects like "Stop the first fire attack, then go away OR stick around until I expend you doing this other effect" work.

 

It ended up being pretty yucky :love: Soul Eater and Beltyn's Burning Blood worked fine once I robbed devSin's set creature's Area script trick :)

Link to comment
You may want to try tracking down Galc's "SpellPoint without no stinking point" (at least, it's called something like that) tutorial.

As I remember, the idea is to summon some invisible creatures, have them run away, then teleport to one of them.

 

From what I remember, it involved several creatures that were created at certain offsets. But instead of running away, it is better to wingbuffet them, since it is quicker. After they are "wingbuffetted", they Shout() if they see no enemies, and character can react to those shouts using Heard(), ForceSpell(LastHeardBy(Myself),WIZARD_DIMENSION_DOOR), and ActionOverride(LastHeardBy(Myself),DestroySelf())

 

Ablative damage prevention - BG2 doesn't like doing that, so it required dumb hacks to make effects like "Stop the first fire attack, then go away OR stick around until I expend you doing this other effect" work.

 

There are ways to make Seven Eyes work without resorting to scripting or anything equally dirty. SecTypes and SpellSchools have much more potential in them than what Bioware intended.

 

-Galactygon

Link to comment

I did find your tutorial here. It looks useful, for BG1 at least. If it's as simple as using opcode #222 Teleport Field in a custom spell for BG2-derivatives, I'll try that first. Though I'm also going to want a BG1 version, if it's not too cumbersome (BG1 doesn't have opcode #222).

Link to comment

At the cost of making your work incompatible with everyone else who's using the same trick, none of whom bother to document which primary/secondary types they're using, yeah, you can do that too.

 

It's a good trick, don't get me wrong :)

Link to comment
At the cost of making your work incompatible with everyone else who's using the same trick, none of whom bother to document which primary/secondary types they're using, yeah, you can do that too.

 

APPENDs could solve that quite easily.

 

-Galactygon

Link to comment

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...