ACS_S_SCRIPT void WaypointSpawn (void) { if (!ACS_ActivatorTID()) ACS_Thing_ChangeTID(0, ACS_UniqueTID(-32768, 0)); int tid = ACS_ActivatorTID(); ACS_SetActivatorToTarget(0); int plrNum = ACS_PlayerNumber(); if (plrNum != -1) { player[plrNum].wayTid = tid; ACS_SetActorAngle(tid, player[plrNum].angle); ACS_SetActorPitch(tid, player[plrNum].pitch); ACS_SetActorProperty(player[plrNum].camTid, APROP_MasterTID, tid); ACS_GiveActorInventory(player[plrNum].camTid, s"ChaseCamWarp", 1); ACS_Delay(1); ACS_Thing_Remove(tid); } return; }
void DUH_ArtifactReady(int frames) { static int tics[MAX_PLAYERS]; while(frames--) { int tic = ++tics[ACS_PlayerNumber()]; int inv; int tid = ACS_ActivatorTID(); if(!tid) ACS_Thing_ChangeTID(0, tid = DU_MakeTID()); inv = ACS_CheckInventory(s"ArtiEgg"); if(inv > 256) inv = 256; if(inv && !(tic % ((35 * 256) / inv))) ACS_Spawn(s"DUH_ChickenFriend", ACS_GetActorX(0), ACS_GetActorY(0), ACS_GetActorZ(0) + 56, 0, ACS_GetActorAngle(0)*256); inv = ACS_CheckInventory(s"ArtiFly"); if(inv > 0x7FFF - 8) inv = 0x7FFF - 8; ACS_SetActorPropertyFixed(0, APROP_JumpZ, inv + 8.0k); inv = ACS_CheckInventory(s"ArtiHealth"); if(inv > 35 * 4) inv = 35 * 4; if(inv && !(tic % ((35 * 4) / inv))) ACS_GiveInventory(s"Health", 1); inv = ACS_CheckInventory(s"ArtiInvisibility"); if(inv > 35 * 8) inv = 35 * 8; if(inv && !(tic % ((35 * 8) / inv))) ACS_GiveInventory(s"DUH_ArmorBonus", 1); inv = ACS_CheckInventory(s"ArtiInvulnerability"); if(inv > 35 * 1) inv = 35 * 1; if(inv && !(tic % ((35 * 1) / inv))) ACS_GiveInventory(s"DUH_ArmorBonus", 1); inv = ACS_CheckInventory(s"ArtiSuperHealth") + 4; if(inv > 0x7FFFFFFF / 25) inv = 0x7FFFFFFF / 25; ACS_SetActorProperty(0, APROP_SpawnHealth, inv * 25); inv = ACS_CheckInventory(s"ArtiTeleport"); if(inv > 16) inv = 16; ACS_SetActorPropertyFixed(0, APROP_Speed, (inv / 10.0) + 1.0); inv = ACS_CheckInventory(s"ArtiTimeBomb"); if(inv > 35 * 16) inv = 35 * 16; if(inv && !(tic % ((35 * 16) / inv))) ACS_SpawnProjectile(tid, s"DUH_TimeBombAura", 0, 0, 0, 0, 0); inv = ACS_CheckInventory(s"DUH_BagOfHolding") + 4; if(inv > 16) inv = 16; DUH_ArtifactTomeReady(DUH_ElvenWandAmmo, inv * 50); DUH_ArtifactTomeReady(DUH_CrossbowAmmo, inv * 25); DUH_ArtifactTomeReady(DUH_DragonClawAmmo, inv * 100); DUH_ArtifactTomeReady(DUH_HellstaffAmmo, inv * 100); DUH_ArtifactTomeReady(DUH_PhoenixRodAmmo, inv * 10); DUH_ArtifactTomeReady(DUH_FiremaceAmmo, inv * 75); inv = ACS_CheckInventory(s"ArtiTorch"); if(inv > 64) inv = 64; if(inv && !(tic % ((35 * 64) / inv))) ACS_GiveInventory(s"ArtiTorch", 1); DUH_AmmoReady(tic, DUH_ElvenWandAmmo, 350); DUH_AmmoReady(tic, DUH_CrossbowAmmo, 1750); DUH_AmmoReady(tic, DUH_DragonClawAmmo, 700); DUH_AmmoReady(tic, DUH_HellstaffAmmo, 1050); DUH_AmmoReady(tic, DUH_PhoenixRodAmmo, 3500); DUH_AmmoReady(tic, DUH_FiremaceAmmo, 7000); if(frames) ACS_Delay(1); } }