- 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:
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);
}
}