• Listen to a special audio message from Bill Roper to the Hive Workshop community (Bill is a former Vice President of Blizzard Entertainment, Producer, Designer, Musician, Voice Actor) 🔗Click here to hear his message!
  • Read Evilhog's interview with Gregory Alper, the original composer of the music for WarCraft: Orcs & Humans 🔗Click here to read the full interview.
  • Create a faction for Warcraft 3 and enter Hive's 19th Techtree Contest: Co-Op Commanders! Click here to enter!
  • Create a void inspired texture for Warcraft 3 and enter Hive's 34th Texturing Contest: Void! Click here to enter!
  • The Hive's 21st Texturing Contest: Upgrade is now concluded, time to vote for your favourite set of icons! Click here to vote!

[JASS] Script runs and lags on start

Status
Not open for further replies.
Level 12
Joined
Dec 2, 2016
Messages
733
I've got a few scripts that lag the game for some reason when they first run. I think this was caused by Blizzard patches.

This script which runs when a unit builds a "Time Tower" for the first time in game, it lags the game for like half a second. I've tested with older versions of the game that never had any of these issues and they also have similar lag spikes upon certain scripts running. Is there any way to fix this?
This script for example is one that lags the game upon running for the first time:


JASS:
library timeTower requires libMisc, libSetup, unitClassification, bloodTower {

public boolean unitHas_timeTower[12];
public integer timeTower_time[12];
public unit timeTowers[12];

function OnTimy60() {

  integer i;
  timer t=GetExpiredTimer();
  //DisplayTextToForce(GetPlayersAll(), "Current test");
  for (0 <= i < 13) {
if (unitHas_timeTower[i-1] == true) {
   timeTower_time[i-1] = timeTower_time[i-1] + 1;
   // + add damage
       SetUnitAbilityLevelSwapped('A04R', (timeTowers[i-1]),timeTower_time[i-1]+1);
    //DisplayTextToForce(GetPlayersAll(), "Current time: " + I2S(timeTower_time[i-1]));
   }
  }


}





function onStarty() {
timer t=CreateTimer();
TimerStart(t, 15, true, function OnTimy60);
//TimerStart(CreateTimer(), 15, true, function OnTimy60);
        t=null;
}




function onCreation() {
unit u = GetTriggerUnit();

if (GetUnitTypeId(u) == 't00T') {
timeTowers[GetConvertedPlayerId(GetOwningPlayer(u))-1] = u;
timeTower_time[GetConvertedPlayerId(GetOwningPlayer(u))-1] = 0;
unitHas_timeTower[GetConvertedPlayerId(GetOwningPlayer(u))-1] = true;
UnitAddAbilityBJ( 'A04R', (timeTowers[GetConvertedPlayerId(GetOwningPlayer(u))-1]));
//DisplayTextToForce(GetPlayersAll(),"Has tower?: " + B2S(unitHas_timeTower[GetConvertedPlayerId(GetOwningPlayer(u))-1]));
 //DisplayTextToForce(GetPlayersAll(), "Tower: " + GetUnitName(timeTowers[GetConvertedPlayerId(GetOwningPlayer(u))-1]));
}
}

function onDeath() {
unit d = GetDyingUnit();
if (GetUnitTypeId(d) == 't00T') {
timeTower_time[GetConvertedPlayerId(GetOwningPlayer(d))-1] = 0;
unitHas_timeTower[GetConvertedPlayerId(GetOwningPlayer(d))-1] = false;
//DisplayTextToForce(GetPlayersAll(),"Has tower?: " + B2S(unitHas_timeTower[GetConvertedPlayerId(GetOwningPlayer(d))-1]));
// DisplayTextToForce(GetPlayersAll(), "Tower: " + GetUnitName(timeTowers[GetConvertedPlayerId(GetOwningPlayer(d))-1]));
}
}


private function onInit() {
  trigger trg = CreateTrigger();
  trigger creation = CreateTrigger();
  trigger death = CreateTrigger();
  TriggerRegisterAnyUnitEventBJ( creation, EVENT_PLAYER_UNIT_UPGRADE_FINISH );
  TriggerRegisterAnyUnitEventBJ( death, EVENT_PLAYER_UNIT_DEATH );
  TimerStart(CreateTimer(), 60, true, function OnTimy60);
  TriggerAddAction(creation, function onCreation);
  TriggerAddAction(death, function onDeath);
}

}
 
Status
Not open for further replies.
Top