Okay...it's me. AGAIN. With ANOTHER interesting bug, this time with ICARUS.
Basically, in this map, I have some asteroids in space that I want to rotate with a script, so that the speeds are able to be changed without having to recompile the map.
All I want to know is: is the following script correct?
I ask this because it DIDN'T WORK!! For those who are curious, the reason I have the 2-second overlap between the rotation and the wait blocks is because of lag. That way, the asteroids keep moving, even if you have up to a 2000 ping.
Now, here's the problem. The asteroids would rotate around just fine, but the first and last blocks in the loop would get swapped. So as you can guess, they'd turn around and wait TWICE the usual amount. And another thing - like I said, the asteroids operate in two halves. Well, I put both halves in that script (it's not shown in the screenshot), but only one half moved. (???????)
Here is one of TWO final scripts that I found actually WORKS to make them rotate! (one script for each asteroid half)
My question? What on EARTH is wrong?! Is it just me, or is Raven full of brand-new coders who don't even know how to program a loop to execute in the right order?? And if I coded this wrong, how SHOULD I program it to look a little nicer?
Well, have you tried merging the two brushes then converting into the entity? That might fix it.
No, the asteroids had to be split up to avoid another error that happened. I think it was MAX_ORIGIN_EDGES or something like that, which happened during the compile. The asteroids are permanently split up now. Just so you're aware, I'm not talking about a little bitty asteroid field - this thing is relatively huge. Believe me, I wouldn't just randomly choose to make the asteroid field into 2 entities just because I like them that way. :) Then again...I guess nobody here really knows if I have a grain of intelligence yet - I don't post here very much.
But what I'm after is just any possible answer to the poorly coded script, and I'm wondering - is that likely to be the IBIze compiler, or is it the ICARUS engine within JA itself?? One or both of them is majorly malfunctioning, I'm sure. I just want to be absolutely sure it's not my scripts that are at fault.
Use 60, 120, 180 instead of 90, 270 e.t.c. But the layout:
Affect > Loop -1 > move/wait
works fine for me. So unless it's just that rotate command you got going there...
Hmm... I have no idea why it wouldn't work. I have used an equivalent solution, also with 90 degrees portions, and I noticed no problems.
Did all your asteroids have a unique script_targetname? You didn't give the same name to multiple entities and then run one script to affect them all together?
Everything else is in place, as you guys have been suggesting. Actually, I don't like the move tool for rotations. It adds an extra step of finding the origin, which for me is annoying. All that I'm worried about is why on Earth the loop mixes up some of the blocks. Maybe is IS the presence of a rotate block...but why would a rotate block affect the loop block outside of it? None of this makes any sense.