[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