HomeUser Control Panel (unavailable in archive)ForumsTutorialsArt GalleryResourcesMaps

"Disconnected" Problem

02-17-2007, 05:11 AM#1
Ba1100n_Drag0n
Okay, getting down to the main point, every time I make an AoS-based map, everybody disconnects after the first 7 seconds or so. Why? I'm not sure. Basically, everyone loads fine, and then starts fine, until 7 seconds, where everyone disconnects except me. LAN does not work, either.

I think the problem is the fact that I use an Attack-Move trigger (ex. issue attack-move to location). I've tried many ways to bend away around it: I've tried using Unit Groups, not using Unit Groups (and using Last Created Unit instead), using Patrol instead of Attack-Move, and many others...

Do you have to do these triggers in JASS and remove some things? If so, what to remove?

If I need to post the triggers/map, then I will if it's necessary.
Also, sorry if this was answered somewhere before.
And one more thing, I'm not good with JASS. If you say the answer through JASS... you might just want to simplify it for me.
02-17-2007, 05:26 AM#2
Pyrogasm
Are you sure it's these triggers? Did you test it by disabling these triggers?

There are a lot of things that can cause Desyncs. You say that you know some JASS. Are you using GetLocalPlayer() at any point? There are many things that can go wrong when using GLP.

Post some of your code and maybe we can troubleshoot.
02-17-2007, 05:33 AM#3
Ba1100n_Drag0n
Here are all of my triggers... there aren't too many triggers for a map (v.0.2., and more importantly, just a test map to FIND this disconnection bug).

Collapse JASS:
function Trig_Melee_Initialization_Func005A takes nothing returns nothing
    call SetPlayerStateBJ( GetEnumPlayer(), PLAYER_STATE_RESOURCE_GOLD, 1000 )
    call SetPlayerStateBJ( GetEnumPlayer(), PLAYER_STATE_RESOURCE_LUMBER, 1 )
endfunction

function Trig_Melee_Initialization_Actions takes nothing returns nothing
    call MeleeStartingVisibility(  )
    call SetPlayerFlagBJ( PLAYER_STATE_GIVES_BOUNTY, true, Player(0) )
    call SetPlayerFlagBJ( PLAYER_STATE_GIVES_BOUNTY, true, Player(6) )
    call ForForce( GetPlayersAll(), function Trig_Melee_Initialization_Func005A )
endfunction

//===========================================================================
function InitTrig_Melee_Initialization takes nothing returns nothing
    set gg_trg_Melee_Initialization = CreateTrigger(  )
    call TriggerAddAction( gg_trg_Melee_Initialization, function Trig_Melee_Initialization_Actions )
endfunction


That was trigger 1...

Collapse JASS:
function Trig_Second_Initilization_Actions takes nothing returns nothing
    call PlaySoundBJ( gg_snd_205_Bloody_Excrement )
endfunction

//===========================================================================
function InitTrig_Second_Initilization takes nothing returns nothing
    set gg_trg_Second_Initilization = CreateTrigger(  )
    call TriggerRegisterTimerEventSingle( gg_trg_Second_Initilization, 1.00 )
    call TriggerAddAction( gg_trg_Second_Initilization, function Trig_Second_Initilization_Actions )
endfunction


Trigger 3 coming up...

Collapse JASS:
function Trig_Wave_Start_Actions takes nothing returns nothing
    call EnableTrigger( gg_trg_Wave_Send )
endfunction

//===========================================================================
function InitTrig_Wave_Start takes nothing returns nothing
    set gg_trg_Wave_Start = CreateTrigger(  )
    call TriggerRegisterTimerEventSingle( gg_trg_Wave_Start, 60.00 )
    call TriggerAddAction( gg_trg_Wave_Start, function Trig_Wave_Start_Actions )
endfunction


Meh.

Collapse JASS:
function Trig_Wave_Send_Func002C takes nothing returns boolean
    if ( not ( IsUnitAliveBJ(gg_unit_h000_0001) == true ) ) then
        return false
    endif
    return true
endfunction

function Trig_Wave_Send_Func003C takes nothing returns boolean
    if ( not ( IsUnitAliveBJ(gg_unit_h001_0004) == true ) ) then
        return false
    endif
    return true
endfunction

function Trig_Wave_Send_Func005C takes nothing returns boolean
    if ( not ( IsUnitAliveBJ(gg_unit_h000_0002) == true ) ) then
        return false
    endif
    return true
endfunction

function Trig_Wave_Send_Func006C takes nothing returns boolean
    if ( not ( IsUnitAliveBJ(gg_unit_h001_0003) == true ) ) then
        return false
    endif
    return true
endfunction

function Trig_Wave_Send_Func008C takes nothing returns boolean
    if ( not ( IsUnitAliveBJ(gg_unit_h000_0000) == true ) ) then
        return false
    endif
    return true
endfunction

function Trig_Wave_Send_Func009C takes nothing returns boolean
    if ( not ( IsUnitAliveBJ(gg_unit_h001_0005) == true ) ) then
        return false
    endif
    return true
endfunction

function Trig_Wave_Send_Actions takes nothing returns nothing
    // Top Wave
    if ( Trig_Wave_Send_Func002C() ) then
        call CreateNUnitsAtLoc( 1, 'n000', Player(0), GetUnitLoc(gg_unit_h000_0001), bj_UNIT_FACING )
        call IssuePointOrderLocBJ( GetLastCreatedUnit(), "attack", GetRectCenter(gg_rct_Top_Center) )
        call CreateNUnitsAtLoc( 1, 'n000', Player(0), GetUnitLoc(gg_unit_h000_0001), bj_UNIT_FACING )
        call IssuePointOrderLocBJ( GetLastCreatedUnit(), "attack", GetRectCenter(gg_rct_Top_Center) )
        call CreateNUnitsAtLoc( 1, 'n001', Player(0), GetUnitLoc(gg_unit_h000_0001), bj_UNIT_FACING )
        call IssuePointOrderLocBJ( GetLastCreatedUnit(), "attack", GetRectCenter(gg_rct_Top_Center) )
        call CreateNUnitsAtLoc( 1, 'n001', Player(0), GetUnitLoc(gg_unit_h000_0001), bj_UNIT_FACING )
        call IssuePointOrderLocBJ( GetLastCreatedUnit(), "attack", GetRectCenter(gg_rct_Top_Center) )
    else
        call DoNothing(  )
    endif
    if ( Trig_Wave_Send_Func003C() ) then
        call CreateNUnitsAtLoc( 1, 'n000', Player(6), GetUnitLoc(gg_unit_h001_0004), bj_UNIT_FACING )
        call IssuePointOrderLocBJ( GetLastCreatedUnit(), "attack", GetRectCenter(gg_rct_Top_Center) )
        call CreateNUnitsAtLoc( 1, 'n000', Player(6), GetUnitLoc(gg_unit_h001_0004), bj_UNIT_FACING )
        call IssuePointOrderLocBJ( GetLastCreatedUnit(), "attack", GetRectCenter(gg_rct_Top_Center) )
        call CreateNUnitsAtLoc( 1, 'n001', Player(6), GetUnitLoc(gg_unit_h001_0004), bj_UNIT_FACING )
        call IssuePointOrderLocBJ( GetLastCreatedUnit(), "attack", GetRectCenter(gg_rct_Top_Center) )
        call CreateNUnitsAtLoc( 1, 'n001', Player(6), GetUnitLoc(gg_unit_h001_0004), bj_UNIT_FACING )
        call IssuePointOrderLocBJ( GetLastCreatedUnit(), "attack", GetRectCenter(gg_rct_Top_Center) )
    else
        call DoNothing(  )
    endif
    // Middle Wave
    if ( Trig_Wave_Send_Func005C() ) then
        call CreateNUnitsAtLoc( 1, 'n000', Player(0), GetUnitLoc(gg_unit_h000_0002), bj_UNIT_FACING )
        call IssuePointOrderLocBJ( GetLastCreatedUnit(), "attack", GetUnitLoc(gg_unit_h002_0048) )
        call CreateNUnitsAtLoc( 1, 'n000', Player(0), GetUnitLoc(gg_unit_h000_0002), bj_UNIT_FACING )
        call IssuePointOrderLocBJ( GetLastCreatedUnit(), "attack", GetUnitLoc(gg_unit_h002_0048) )
        call CreateNUnitsAtLoc( 1, 'n001', Player(0), GetUnitLoc(gg_unit_h000_0002), bj_UNIT_FACING )
        call IssuePointOrderLocBJ( GetLastCreatedUnit(), "attack", GetUnitLoc(gg_unit_h002_0048) )
        call CreateNUnitsAtLoc( 1, 'n001', Player(0), GetUnitLoc(gg_unit_h000_0002), bj_UNIT_FACING )
        call IssuePointOrderLocBJ( GetLastCreatedUnit(), "attack", GetUnitLoc(gg_unit_h002_0048) )
    else
        call DoNothing(  )
    endif
    if ( Trig_Wave_Send_Func006C() ) then
        call CreateNUnitsAtLoc( 1, 'n000', Player(6), GetUnitLoc(gg_unit_h001_0003), bj_UNIT_FACING )
        call IssuePointOrderLocBJ( GetLastCreatedUnit(), "attack", GetUnitLoc(gg_unit_h002_0049) )
        call CreateNUnitsAtLoc( 1, 'n000', Player(6), GetUnitLoc(gg_unit_h001_0003), bj_UNIT_FACING )
        call IssuePointOrderLocBJ( GetLastCreatedUnit(), "attack", GetUnitLoc(gg_unit_h002_0049) )
        call CreateNUnitsAtLoc( 1, 'n001', Player(6), GetUnitLoc(gg_unit_h001_0003), bj_UNIT_FACING )
        call IssuePointOrderLocBJ( GetLastCreatedUnit(), "attack", GetUnitLoc(gg_unit_h002_0049) )
        call CreateNUnitsAtLoc( 1, 'n001', Player(6), GetUnitLoc(gg_unit_h001_0003), bj_UNIT_FACING )
        call IssuePointOrderLocBJ( GetLastCreatedUnit(), "attack", GetUnitLoc(gg_unit_h002_0049) )
    else
        call DoNothing(  )
    endif
    // Bottom Wave
    if ( Trig_Wave_Send_Func008C() ) then
        call CreateNUnitsAtLoc( 1, 'n000', Player(0), GetUnitLoc(gg_unit_h000_0000), bj_UNIT_FACING )
        call IssuePointOrderLocBJ( GetLastCreatedUnit(), "attack", GetRectCenter(gg_rct_Bottom_Center) )
        call CreateNUnitsAtLoc( 1, 'n000', Player(0), GetUnitLoc(gg_unit_h000_0000), bj_UNIT_FACING )
        call IssuePointOrderLocBJ( GetLastCreatedUnit(), "attack", GetRectCenter(gg_rct_Bottom_Center) )
        call CreateNUnitsAtLoc( 1, 'n001', Player(0), GetUnitLoc(gg_unit_h000_0000), bj_UNIT_FACING )
        call IssuePointOrderLocBJ( GetLastCreatedUnit(), "attack", GetRectCenter(gg_rct_Bottom_Center) )
        call CreateNUnitsAtLoc( 1, 'n001', Player(0), GetUnitLoc(gg_unit_h000_0000), bj_UNIT_FACING )
        call IssuePointOrderLocBJ( GetLastCreatedUnit(), "attack", GetRectCenter(gg_rct_Bottom_Center) )
    else
        call DoNothing(  )
    endif
    if ( Trig_Wave_Send_Func009C() ) then
        call CreateNUnitsAtLoc( 1, 'n000', Player(6), GetUnitLoc(gg_unit_h001_0005), bj_UNIT_FACING )
        call IssuePointOrderLocBJ( GetLastCreatedUnit(), "attack", GetRectCenter(gg_rct_Bottom_Center) )
        call CreateNUnitsAtLoc( 1, 'n000', Player(6), GetUnitLoc(gg_unit_h001_0005), bj_UNIT_FACING )
        call IssuePointOrderLocBJ( GetLastCreatedUnit(), "attack", GetRectCenter(gg_rct_Bottom_Center) )
        call CreateNUnitsAtLoc( 1, 'n001', Player(6), GetUnitLoc(gg_unit_h001_0005), bj_UNIT_FACING )
        call IssuePointOrderLocBJ( GetLastCreatedUnit(), "attack", GetRectCenter(gg_rct_Bottom_Center) )
        call CreateNUnitsAtLoc( 1, 'n001', Player(6), GetUnitLoc(gg_unit_h001_0005), bj_UNIT_FACING )
        call IssuePointOrderLocBJ( GetLastCreatedUnit(), "attack", GetRectCenter(gg_rct_Bottom_Center) )
    else
        call DoNothing(  )
    endif
endfunction

//===========================================================================
function InitTrig_Wave_Send takes nothing returns nothing
    set gg_trg_Wave_Send = CreateTrigger(  )
    call DisableTrigger( gg_trg_Wave_Send )
    call TriggerRegisterTimerEventPeriodic( gg_trg_Wave_Send, 25.00 )
    call TriggerAddAction( gg_trg_Wave_Send, function Trig_Wave_Send_Actions )
endfunction


Ok.

Collapse JASS:
function Trig_TopBottom_Resend_Func001C takes nothing returns boolean
    if ( ( GetOwningPlayer(GetEnteringUnit()) == Player(0) ) ) then
        return true
    endif
    if ( ( GetOwningPlayer(GetEnteringUnit()) == Player(6) ) ) then
        return true
    endif
    return false
endfunction

function Trig_TopBottom_Resend_Conditions takes nothing returns boolean
    if ( not Trig_TopBottom_Resend_Func001C() ) then
        return false
    endif
    return true
endfunction

function Trig_TopBottom_Resend_Func002C takes nothing returns boolean
    if ( not ( GetOwningPlayer(GetEnteringUnit()) == Player(0) ) ) then
        return false
    endif
    return true
endfunction

function Trig_TopBottom_Resend_Func003C takes nothing returns boolean
    if ( not ( GetOwningPlayer(GetEnteringUnit()) == Player(6) ) ) then
        return false
    endif
    return true
endfunction

function Trig_TopBottom_Resend_Actions takes nothing returns nothing
    if ( Trig_TopBottom_Resend_Func002C() ) then
        call IssuePointOrderLocBJ( GetEnteringUnit(), "attack", GetUnitLoc(gg_unit_h002_0048) )
    else
        call DoNothing(  )
    endif
    if ( Trig_TopBottom_Resend_Func003C() ) then
        call IssuePointOrderLocBJ( GetEnteringUnit(), "attack", GetUnitLoc(gg_unit_h002_0049) )
    else
        call DoNothing(  )
    endif
endfunction

//===========================================================================
function InitTrig_TopBottom_Resend takes nothing returns nothing
    set gg_trg_TopBottom_Resend = CreateTrigger(  )
    call TriggerRegisterEnterRectSimple( gg_trg_TopBottom_Resend, gg_rct_Top_Center )
    call TriggerRegisterEnterRectSimple( gg_trg_TopBottom_Resend, gg_rct_Bottom_Center )
    call TriggerAddCondition( gg_trg_TopBottom_Resend, Condition( function Trig_TopBottom_Resend_Conditions ) )
    call TriggerAddAction( gg_trg_TopBottom_Resend, function Trig_TopBottom_Resend_Actions )
endfunction


I thought it was better to post all the triggers in one, to get it over with.

Collapse JASS:
function Trig_VictoryDefeat_Trigger_Func004C takes nothing returns boolean
    if ( not ( IsUnitType(gg_unit_h002_0049, UNIT_TYPE_DEAD) == true ) ) then
        return false
    endif
    return true
endfunction

function Trig_VictoryDefeat_Trigger_Func005C takes nothing returns boolean
    if ( not ( IsUnitType(gg_unit_h002_0048, UNIT_TYPE_DEAD) == true ) ) then
        return false
    endif
    return true
endfunction

function Trig_VictoryDefeat_Trigger_Actions takes nothing returns nothing
    call DisableTrigger( GetTriggeringTrigger() )
    call PauseAllUnitsBJ( false )
    call PauseAllUnitsBJ( true )
    if ( Trig_VictoryDefeat_Trigger_Func004C() ) then
        call StopSoundBJ( gg_snd_205_Bloody_Excrement, true )
        call TriggerSleepAction( 2 )
        call PlaySoundBJ( gg_snd_GameFinished )
        call DisplayTextToForce( GetPlayersAll(), "TRIGSTR_146" )
    else
        call DoNothing(  )
    endif
    if ( Trig_VictoryDefeat_Trigger_Func005C() ) then
        call StopSoundBJ( gg_snd_205_Bloody_Excrement, true )
        call TriggerSleepAction( 2 )
        call PlaySoundBJ( gg_snd_GameFinished )
        call DisplayTextToForce( GetPlayersAll(), "TRIGSTR_145" )
    else
        call DoNothing(  )
    endif
endfunction

//===========================================================================
function InitTrig_VictoryDefeat_Trigger takes nothing returns nothing
    set gg_trg_VictoryDefeat_Trigger = CreateTrigger(  )
    call TriggerRegisterUnitEvent( gg_trg_VictoryDefeat_Trigger, gg_unit_h002_0049, EVENT_UNIT_DEATH )
    call TriggerRegisterUnitEvent( gg_trg_VictoryDefeat_Trigger, gg_unit_h002_0048, EVENT_UNIT_DEATH )
    call TriggerAddAction( gg_trg_VictoryDefeat_Trigger, function Trig_VictoryDefeat_Trigger_Actions )
endfunction


Collapse JASS:
function Trig_Hero_Hired_Func001A takes nothing returns nothing
    call SetPlayerTechMaxAllowedSwap( GetUnitTypeId(GetSoldUnit()), 0, GetEnumPlayer() )
endfunction

function Trig_Hero_Hired_Func002Func004C takes nothing returns boolean
    if ( ( GetOwningPlayer(GetSoldUnit()) == Player(1) ) ) then
        return true
    endif
    if ( ( GetOwningPlayer(GetSoldUnit()) == Player(2) ) ) then
        return true
    endif
    if ( ( GetOwningPlayer(GetSoldUnit()) == Player(3) ) ) then
        return true
    endif
    if ( ( GetOwningPlayer(GetSoldUnit()) == Player(4) ) ) then
        return true
    endif
    if ( ( GetOwningPlayer(GetSoldUnit()) == Player(5) ) ) then
        return true
    endif
    return false
endfunction

function Trig_Hero_Hired_Func002C takes nothing returns boolean
    if ( not Trig_Hero_Hired_Func002Func004C() ) then
        return false
    endif
    return true
endfunction

function Trig_Hero_Hired_Func003Func004C takes nothing returns boolean
    if ( ( GetOwningPlayer(GetSoldUnit()) == Player(7) ) ) then
        return true
    endif
    if ( ( GetOwningPlayer(GetSoldUnit()) == Player(8) ) ) then
        return true
    endif
    if ( ( GetOwningPlayer(GetSoldUnit()) == Player(9) ) ) then
        return true
    endif
    if ( ( GetOwningPlayer(GetSoldUnit()) == Player(10) ) ) then
        return true
    endif
    if ( ( GetOwningPlayer(GetSoldUnit()) == Player(11) ) ) then
        return true
    endif
    return false
endfunction

function Trig_Hero_Hired_Func003C takes nothing returns boolean
    if ( not Trig_Hero_Hired_Func003Func004C() ) then
        return false
    endif
    return true
endfunction

function Trig_Hero_Hired_Actions takes nothing returns nothing
    call ForForce( GetPlayersAll(), function Trig_Hero_Hired_Func001A )
    if ( Trig_Hero_Hired_Func002C() ) then
        call SetUnitPositionLoc( GetSoldUnit(), GetUnitLoc(gg_unit_h002_0049) )
        call SmartCameraPanBJ( GetOwningPlayer(GetSoldUnit()), GetUnitLoc(gg_unit_h002_0049), 0.5 )
    else
        call DoNothing(  )
    endif
    if ( Trig_Hero_Hired_Func003C() ) then
        call SetUnitPositionLoc( GetSoldUnit(), GetUnitLoc(gg_unit_h002_0048) )
        call SmartCameraPanBJ( GetOwningPlayer(GetSoldUnit()), GetUnitLoc(gg_unit_h002_0048), 0.5 )
    else
        call DoNothing(  )
    endif
endfunction

//===========================================================================
function InitTrig_Hero_Hired takes nothing returns nothing
    set gg_trg_Hero_Hired = CreateTrigger(  )
    call TriggerRegisterAnyUnitEventBJ( gg_trg_Hero_Hired, EVENT_PLAYER_UNIT_SELL )
    call TriggerAddAction( gg_trg_Hero_Hired, function Trig_Hero_Hired_Actions )
endfunction


Collapse JASS:
function Trig_Battery_Omega_Trigger_Conditions takes nothing returns boolean
    if ( not ( GetSpellAbilityId() == 'A00A' ) ) then
        return false
    endif
    return true
endfunction

function Trig_Battery_Omega_Trigger_Actions takes nothing returns nothing
    call AddSpecialEffectLocBJ( OffsetLocation(GetUnitLoc(GetSpellAbilityUnit()), 0.00, 200.00), "Abilities\\Spells\\Other\\Monsoon\\MonsoonBoltTarget.mdl" )
    call TriggerSleepAction( 0.10 )
    call AddSpecialEffectLocBJ( OffsetLocation(GetUnitLoc(GetSpellAbilityUnit()), 100.00, 100.00), "Abilities\\Spells\\Other\\Monsoon\\MonsoonBoltTarget.mdl" )
    call TriggerSleepAction( 0.10 )
    call AddSpecialEffectLocBJ( OffsetLocation(GetUnitLoc(GetSpellAbilityUnit()), 200.00, 0.00), "Abilities\\Spells\\Other\\Monsoon\\MonsoonBoltTarget.mdl" )
    call TriggerSleepAction( 0.10 )
    call AddSpecialEffectLocBJ( OffsetLocation(GetUnitLoc(GetSpellAbilityUnit()), 100.00, -100.00), "Abilities\\Spells\\Other\\Monsoon\\MonsoonBoltTarget.mdl" )
    call TriggerSleepAction( 0.10 )
    call AddSpecialEffectLocBJ( OffsetLocation(GetUnitLoc(GetSpellAbilityUnit()), 0.00, -200.00), "Abilities\\Spells\\Other\\Monsoon\\MonsoonBoltTarget.mdl" )
    call TriggerSleepAction( 0.10 )
    call AddSpecialEffectLocBJ( OffsetLocation(GetUnitLoc(GetSpellAbilityUnit()), -100.00, -100.00), "Abilities\\Spells\\Other\\Monsoon\\MonsoonBoltTarget.mdl" )
    call TriggerSleepAction( 0.10 )
    call AddSpecialEffectLocBJ( OffsetLocation(GetUnitLoc(GetSpellAbilityUnit()), -200.00, 0.00), "Abilities\\Spells\\Other\\Monsoon\\MonsoonBoltTarget.mdl" )
    call TriggerSleepAction( 0.10 )
    call AddSpecialEffectLocBJ( OffsetLocation(GetUnitLoc(GetSpellAbilityUnit()), -100.00, 100.00), "Abilities\\Spells\\Other\\Monsoon\\MonsoonBoltTarget.mdl" )
    // Divider
    call AddSpecialEffectLocBJ( OffsetLocation(GetUnitLoc(GetSpellAbilityUnit()), 0.00, 200.00), "Abilities\\Spells\\Other\\Monsoon\\MonsoonBoltTarget.mdl" )
    call TriggerSleepAction( 0.10 )
    call AddSpecialEffectLocBJ( OffsetLocation(GetUnitLoc(GetSpellAbilityUnit()), 100.00, 100.00), "Abilities\\Spells\\Other\\Monsoon\\MonsoonBoltTarget.mdl" )
    call TriggerSleepAction( 0.10 )
    call AddSpecialEffectLocBJ( OffsetLocation(GetUnitLoc(GetSpellAbilityUnit()), 200.00, 0.00), "Abilities\\Spells\\Other\\Monsoon\\MonsoonBoltTarget.mdl" )
    call TriggerSleepAction( 0.10 )
    call AddSpecialEffectLocBJ( OffsetLocation(GetUnitLoc(GetSpellAbilityUnit()), 100.00, -100.00), "Abilities\\Spells\\Other\\Monsoon\\MonsoonBoltTarget.mdl" )
    call TriggerSleepAction( 0.10 )
    call AddSpecialEffectLocBJ( OffsetLocation(GetUnitLoc(GetSpellAbilityUnit()), 0.00, -200.00), "Abilities\\Spells\\Other\\Monsoon\\MonsoonBoltTarget.mdl" )
    call TriggerSleepAction( 0.10 )
    call AddSpecialEffectLocBJ( OffsetLocation(GetUnitLoc(GetSpellAbilityUnit()), -100.00, -100.00), "Abilities\\Spells\\Other\\Monsoon\\MonsoonBoltTarget.mdl" )
    call TriggerSleepAction( 0.10 )
    call AddSpecialEffectLocBJ( OffsetLocation(GetUnitLoc(GetSpellAbilityUnit()), -200.00, 0.00), "Abilities\\Spells\\Other\\Monsoon\\MonsoonBoltTarget.mdl" )
    call TriggerSleepAction( 0.10 )
    call AddSpecialEffectLocBJ( OffsetLocation(GetUnitLoc(GetSpellAbilityUnit()), -100.00, 100.00), "Abilities\\Spells\\Other\\Monsoon\\MonsoonBoltTarget.mdl" )
    // Divider
    call AddSpecialEffectLocBJ( OffsetLocation(GetUnitLoc(GetSpellAbilityUnit()), 0.00, 200.00), "Abilities\\Spells\\Other\\Monsoon\\MonsoonBoltTarget.mdl" )
    call TriggerSleepAction( 0.10 )
    call AddSpecialEffectLocBJ( OffsetLocation(GetUnitLoc(GetSpellAbilityUnit()), 100.00, 100.00), "Abilities\\Spells\\Other\\Monsoon\\MonsoonBoltTarget.mdl" )
    call TriggerSleepAction( 0.10 )
    call AddSpecialEffectLocBJ( OffsetLocation(GetUnitLoc(GetSpellAbilityUnit()), 200.00, 0.00), "Abilities\\Spells\\Other\\Monsoon\\MonsoonBoltTarget.mdl" )
    call TriggerSleepAction( 0.10 )
    call AddSpecialEffectLocBJ( OffsetLocation(GetUnitLoc(GetSpellAbilityUnit()), 100.00, -100.00), "Abilities\\Spells\\Other\\Monsoon\\MonsoonBoltTarget.mdl" )
    call TriggerSleepAction( 0.10 )
    call AddSpecialEffectLocBJ( OffsetLocation(GetUnitLoc(GetSpellAbilityUnit()), 0.00, -200.00), "Abilities\\Spells\\Other\\Monsoon\\MonsoonBoltTarget.mdl" )
    call TriggerSleepAction( 0.10 )
    call AddSpecialEffectLocBJ( OffsetLocation(GetUnitLoc(GetSpellAbilityUnit()), -100.00, -100.00), "Abilities\\Spells\\Other\\Monsoon\\MonsoonBoltTarget.mdl" )
    call TriggerSleepAction( 0.10 )
    call AddSpecialEffectLocBJ( OffsetLocation(GetUnitLoc(GetSpellAbilityUnit()), -200.00, 0.00), "Abilities\\Spells\\Other\\Monsoon\\MonsoonBoltTarget.mdl" )
    call TriggerSleepAction( 0.10 )
    call AddSpecialEffectLocBJ( OffsetLocation(GetUnitLoc(GetSpellAbilityUnit()), -100.00, 100.00), "Abilities\\Spells\\Other\\Monsoon\\MonsoonBoltTarget.mdl" )
    // Divider
endfunction

//===========================================================================
function InitTrig_Battery_Omega_Trigger takes nothing returns nothing
    set gg_trg_Battery_Omega_Trigger = CreateTrigger(  )
    call TriggerRegisterAnyUnitEventBJ( gg_trg_Battery_Omega_Trigger, EVENT_PLAYER_UNIT_SPELL_CAST )
    call TriggerAddCondition( gg_trg_Battery_Omega_Trigger, Condition( function Trig_Battery_Omega_Trigger_Conditions ) )
    call TriggerAddAction( gg_trg_Battery_Omega_Trigger, function Trig_Battery_Omega_Trigger_Actions )
endfunction

02-17-2007, 11:42 AM#4
Fireeye
alright, i'll check it. Give me some time.
The first 3 trigger look ok
4 and so on have almost always the same problem.
1. You can change the conditions from
Collapse JASS:
function ...
if <Condition> then
return true
endif
return false
endfunction
to
Collapse JASS:
function ...
return <Condition>
endfunction
Also remove all those else->Do nothing() and did you ever hear of leak?
You're leaking locations.
And now to the last trigger, you use a wait command and want to refer to the target unit of an ability, that won't work also you leak a location here too, but i don't find anything what could cause a desync atm, i've to take a close look i'll tell you if i find something.
02-17-2007, 12:00 PM#5
blu_da_noob
What are the stats of your spawned units. Do they have unusually high life/damage dice numbers?
02-17-2007, 01:24 PM#6
Jacek
I bet he converted his GUI triggers to JASS so he doesn't get "OMG GUI NOOB" comments
02-17-2007, 01:39 PM#7
WNxCryptic
Make sure you don't have any "Visibility" triggers...especially / disable enable black mask/fog of war.

They cause desyncs nearly every time.
02-17-2007, 05:36 PM#8
Fireeye
Quote:
Originally posted by WNxCryptic
Make sure you don't have any "Visibility" triggers...especially / disable enable black mask/fog of war.

They cause desyncs nearly every time.

I use them in many maps too and they never caused a desync till now.
Maybe it's just my comp.
02-17-2007, 05:45 PM#9
Ba1100n_Drag0n
Thank you guys.
And yes, I did transfer them to Custom Text. But I don't care if that makes me a noob or not. Hah.

I've heard of leaks but never were quite sure what they were.
I completely removed the last trigger, too.

Mind telling me how I'm leaking locations? (I'm a complete noob at this stuff. I admit.)

The only reason why I transfered them to Custom Text was because I thought it would be simpler to see the leaks... things... desyncs...

And no, the units do not have high hit points/high damage. The fighters deal 29-30, 800 HP, and the rangers deal 6-11, 250 HP.
02-17-2007, 06:08 PM#10
Fireeye
look under tutorial for a complete explanation, but in this case using
Collapse JASS:
local loction l
at the beginning (or use a global variable) and set them to the location of the needed unit and after the usage use
Collapse JASS:
call RemoveLocation(l)
set l = null
If you use a global don't forget the udg_ as prefix and you don't have to nullify a global e.g.
Collapse JASS:
call RemoveLocation(udg_temp_point)
It should look like
Collapse JASS:
function LocationLeak takes nothing returns nothing
local location l
set l = GetUnitLoc(gg_unit_h000_0001)
call CreateNUnitsAtLoc(1,'hpea',Player(0),l,bj_UNIT_FACING)
call RemoveLocation(l)
set l = null
endfunction
02-17-2007, 06:12 PM#11
iNfraNe
Quote:
Originally Posted by WNxCryptic
Make sure you don't have any "Visibility" triggers...especially / disable enable black mask/fog of war.

They cause desyncs nearly every time.
erm... no?
02-18-2007, 07:34 AM#12
WNxCryptic
erm...yes?

Unless the faerie gods just happen to bless past works of mine with desyncs until I disabled / removed the "Visibility - Disable Black Mask" and "Visibility - Disable Fog of War" events trigger. Its a relatively safe bet to say they cause isolated desyncs.