Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #library "GIGINSKY"
- #include "zcommon.acs"
- #define SPAAACE_PARTICLE 0
- #define SPAAACE_TILTSPEED 1
- #define SPAAACE_STRAIGHTSPEED 2
- #define SPAAACE_PARTCOUNT 3
- #define SPAAACE_ALL 4
- int spaaace_parameterz[2][SPAAACE_ALL] = {
- {"SpaceNukeParticle3", 14.0, 18.0, 64},
- {"SpaceNukeParticle3", 32.0, 18.0, 8}
- };
- script "SpaceNukeWave" (int angle1, int angle2, int disctype) {
- int x = GetActorX(0);
- int y = GetActorY(0);
- int z = GetActorZ(0);
- int an = GetActorAngle(0);
- int mistid = ActivatorTID();
- if (mistid == 0) {
- mistid = UniqueTID();
- SetActivatorTID(mistid);
- }
- int particlename = spaaace_parameterz[disctype][SPAAACE_PARTICLE];
- int tiltspeed = spaaace_parameterz[disctype][SPAAACE_TILTSPEED];
- int straightspeed = spaaace_parameterz[disctype][SPAAACE_STRAIGHTSPEED];
- int partcount = spaaace_parameterz[disctype][SPAAACE_PARTCOUNT];
- int x1, y1, z1, x2, y2, z2;
- z2 = FixedMul(cos(angle2), tiltspeed); z1 = 0.0;
- int troll = FixedMul(sin(angle2), tiltspeed);
- x1 = FixedMul(cos(angle1), straightspeed);
- y1 = FixedMul(sin(angle1), straightspeed);
- y2 = FixedMul(cos(angle1), -troll);
- x2 = FixedMul(sin(angle1), troll);
- int tid = UniqueTID();
- int velx, vely, velz;
- int shift = 1.0 / partcount;
- for (int i = 0.0; i < 1.0; i += shift) {
- velx = FixedMul(x1, cos(i)) + FixedMul(x2, sin(i));
- vely = FixedMul(y1, cos(i)) + FixedMul(y2, sin(i));
- velz = FixedMul(z1, cos(i)) + FixedMul(z2, sin(i));
- Spawn(particlename, x, y, z, tid, an);
- SetActivator(tid);
- Thing_ChangeTID(tid, 0);
- SetActorVelocity(0, velx, vely, velz, 0, 0);
- SetPointer(AAPTR_TARGET, mistid, AAPTR_TARGET);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement