PDA

View Full Version : A few new commands:



ShadowTiger
12-03-2006, 09:19 PM
A few new commands to add to the roster of these juicy delicious mouthwatering turkey gibblets.

err ... ZScript entities. # items are user-input aspects under your control.


BecomeEnemy(#);
It will cause the Freeform Combo that the script is attached to to become the enemy that's in that particular enemy slot, regardless of whether it's still alive or not.

KillEnemy(#);
Will cause the Enemy in that slot to die instantly.

ChangeEnemy(#,#);
Will cause the enemy # on the left to become the enemy # on the right, assuming it's still alive.

FFCDie();
Will simply cause the Freeform Combo that the script is attached to to disappear entirely as if it never existed. The script would vanish with it. Obviously, use this script carefully. :p

AlterItemAppearance(#,#,#,#,#);
Will change the appearance of a sprite or weapon / misc effect (The first #.) to the tile number (Second #.) and animation style and ... ... well, the usual assortment of sprite animation styles, inclusive of Link Tile Mods. You fill in the rest of the details.

RemoveScreenProjectiles();
One of those pipe dreams a quest author could have; it's remove all projectiles from the screen. Primarily those from enemies.

Perhaps a few commands to alter the rate of fire of the Shooter enemies as well? :shrug: (Or any enemy, assuming they can fire a projectile.)

Saffith
12-04-2006, 12:13 AM
Some of these you can already do, at least to some extent.


BecomeEnemy(#);
It will cause the Freeform Combo that the script is attached to to become the enemy that's in that particular enemy slot, regardless of whether it's still alive or not.
You can simulate that by putting a trigger enemy in that slot, creating a pointer to it in the script, and simply killing it when the FFC enemy would die. Not sure if that's quite the same effect you have in mind.


KillEnemy(#);
Will cause the Enemy in that slot to die instantly.
Piece of cake.

npc enemy = Screen->LoadNPC(n);
enemy->HP = 0;


ChangeEnemy(#,#);
Will cause the enemy # on the left to become the enemy # on the right, assuming it's still alive.
You can partly do this similarly to the above: by loading a reference to the enemy and changing its properties. It's a bit more work though, and I'm pretty sure there are some aspects of the behavior that can't be changed.
I hadn't thought about it before, but I believe you could use that method to customize enemies. You could make your own ridiculously overpowered Octoroks. Didn't you need a modified blue Darknut for NeoFirst?


FFCDie();
Will simply cause the Freeform Combo that the script is attached to to disappear entirely as if it never existed. The script would vanish with it. Obviously, use this script carefully. :p
Not a problem.

this->Data=0;
Quit();


AlterItemAppearance(#,#,#,#,#);
Will change the appearance of a sprite or weapon / misc effect (The first #.) to the tile number (Second #.) and animation style and ... ... well, the usual assortment of sprite animation styles, inclusive of Link Tile Mods. You fill in the rest of the details.Hm... This might already be possible. You can edit the properties of items on the screen, but I'm not sure about the ones Link's holding.


RemoveScreenProjectiles();
One of those pipe dreams a quest author could have; it's remove all projectiles from the screen. Primarily those from enemies.I thought there was a way to affect projectiles, but I'm not seeing it. I think I must've been mistaken.


Perhaps a few commands to alter the rate of fire of the Shooter enemies as well? :shrug: (Or any enemy, assuming they can fire a projectile.)
... Yeah, I got nothin'.

DarkDragon
12-04-2006, 08:02 AM
Perhaps a few commands to alter the rate of fire of the Shooter enemies as well? :shrug: (Or any enemy, assuming they can fire a projectile.)
Aren't the shooters combos, and not enemies? If that's the case it's not possible to modify their rates yet.

For regular enemies, the best you can do is change npc->Rate, which I believe changes both the movement rate and firing rate.

ShadowTiger
12-04-2006, 09:57 AM
Ah, Rate! :o So yes, they are enemies. You set their starting position via the enemy flags just like any other enemy, so yes, they're enemies. Thank you. ^^.


Hm... This might already be possible. You can edit the properties of items on the screen, but I'm not sure about the ones Link's holding.Well, if you spawn, say, the hammer onscreen, and you want to replace Link's hammer with a piece of fake ore or something, perhaps one could, in theory, change the appearance of that hammer to the piece of ore, and it might replace it in his inventory. :shrug: -MIGHT-. Of course, then you also have his weapons/misc sprites to deal with, and it's not like you can place those on the ground to pick up.



Didn't you need a modified blue Darknut for NeoFirst?... ... Le'GASP! This is the key! *Shakes hand vigorously* Wow, thank you so much! This is exactly what we needed. I completely forgot about this.

Oh, but isn't there a "knockback" feature as well that you can edit? Wouldn't be much of a stone darknut if a common sword blade could push a stone statue back eight or so paces. :p

Saffith
12-04-2006, 03:00 PM
Oh, but isn't there a "knockback" feature as well that you can edit? Wouldn't be much of a stone darknut if a common sword blade could push a stone statue back eight or so paces. :pHm... Yeah, you can't do that, exactly...
What you could do instead is track its position and direction to make sure it always move the way it's supposed to, but that could be a bit tricky.