Data Realms Fan Forums
http://45.55.195.193/

[Help] Teleportation Delivery
http://45.55.195.193/viewtopic.php?f=1&t=36293
Page 1 of 1

Author:  Insano-Man [ Mon Dec 10, 2012 10:40 pm ]
Post subject:  [Help] Teleportation Delivery

I've got the concept, sprite, and methodology down, but here's my main problem.

To describe my situation, I am effectively making an invisible, massless drop crate that falls down, gibs into a wormhole emitter via Lua code, and by the simple act of gibbing, releases its contents, appearing to be a warp-in from off-map. I'm not going to pretend it's the most elegant thing ever or even terribly inventive from a beginner's perspective, but that's aside from the point.

I want the delivery method to have a purchase icon, so the false drop crate is a sprite with two frames; one of a frame halfway through the wormhole animation, the other entirely blank for when it actually exists in the game.
Initially, it worked just as I wanted it to. The icon showed up fine and the fake drop crate would be invisible until gibbed. Now, however, and I've absolutely no idea as to what I could have done wrong, the drop crate is using the first frame of its sprite at all times. I've tried forcing it to stick to the blank frame in the Update() function, but that just results in it appearing for a single frame until turning invisible.

As stated, I haven't the foggiest clue as to what I did wrong here or if it was just sheer luck or blindness on my part that I didn't see the first frame displaying earlier. I have a hunch that it's trying to open itself, which is causing the animation, but how I would prevent that or why it started now and not earlier are both questions I once again lack the answers to.

Here is the code I have so far. I'll say it again; it ain't pretty, but it works. Sort of.
INI Code:


Lua Code:


Additional things I would appreciate assistance on are how to:
1. Make the aforementioned fake teleportation refund its purchase price on activation. √ Figured this one out on my own. I used a fake secondary crate that spawns with the wormhole and zips back up into orbit through a combination of Lua positioning and INI-defined initial velocity.
2. Ensure the teleportation effect always happens at a set distance above the ground and doesn't move away from the delivery marker. √ Thanks go to Azukki, post #2.
3. Render the fake drop crate invisible to AI-controlled actors. As it stands, there's a brief period where the AI spots it, but realizes it can't affect it in any way or form, then returns to its previous business. √ Possibly fixed itself. Will report in if otherwise.
4. Likewise, make the fake drop crate unselectable. I have it invisible to the HUD, but it can still be selected as a controllable entity while it's waiting to deploy itself.

Author:  Azukki [ Tue Dec 11, 2012 5:41 am ]
Post subject:  Re: [Help] Teleportation Delivery

It might be best overall to just use Lua to instantaneously take it from the top of the sky, to the desired height, and gib it, instead of letting it fall. Being instantaneous would completely negate most of your problems.

I think the following would be basically all you'd need to make the teleporter, well, teleport, close to the ground. This obviously doesn't conserve all those sounds and special effects and whatever you've got in the Lua, but it looks like you could just copy and paste that stuff in.

function Create(self)
self.Pos.Y = self.Pos.Y + (self.Altitude - 32)
self:GibThis()
end


But, in the future, or if you still want your teleporter to be an invisible drop crate instead of a teleporter for whatever reason, search the forums for SpriteAnimMode, that's suspect number one for when animation isn't working how you'd like. Also, having the Frame = 1 thing in the update function will keep it at frame 1, whereas having it in the create function will just start it at frame 1. Making things uncontrollable, iunno, maybe you could switch its team to the wildlife team? That might switch the teams of the contents, though, iunno. Or just make it go to the next/previous actor when someone selects it, with Lua.

Author:  Insano-Man [ Tue Dec 11, 2012 9:47 pm ]
Post subject:  Re: [Help] Teleportation Delivery

That worked perfectly, thank you.

I've noticed that, now that the wormhole placeholder isn't falling from space, the AI doesn't pay any mind to it.
However, the one problem is that it still shows up for a split second at the top of the map in its first frame. I would have this all done instantaneously to bypass it, but the issue is that I have some effects that I want to play before the portal effect appears. Namely, a radio chatter sound effect that indicates where the delivered cargo will spawn a couple seconds before it actually appears. Additionally, the way the sprite's animation plays, the payload needs to warp in a fraction of a second after it starts playing, otherwise it visibly pops out of nothing rather than popping out of the wormhole.

I tried fiddling with the team to make the placeholder unselectable, but that just ended up causing a generic "Cortex Command is not responding" crash when its cargo spawned. I used "self.Team = -1" in the Create() block - that's not wrong, is it?

Author:  DudeAbides [ Sat Jan 12, 2013 9:21 pm ]
Post subject:  Re: [Help] Teleportation Delivery

self.Scale = 0

can be used to make something invisible for the frame that it is called in.

Page 1 of 1 All times are UTC [ DST ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/