[QUOTE]//===========================================================================
//
// Mark of The Abyss
//
// Warcraft III map script
// Generated by the Warcraft III World Editor
// Date: Sun Jul 26 08:53:38 2009
// Map Author: Azerock / Azeroc
//
//===========================================================================
//***************************************************************************
//*
//* Global Variables
//*
//***************************************************************************
globals
// User-defined
unit udg_Caster = null
group udg_EnemyGroup = null
location udg_tempLoc = null
unit udg_Dummy = null
integer udg_Level = 0
integer udg_DummyAbility = 0
effect udg_SFX = null
unit udg_Target = null
real udg_Damage = 0
real udg_AoE = 0
// Generated
trigger gg_trg_Mark_of_The_Abyss = null
trigger gg_trg_Notice_Msgs = null
trigger gg_trg_Fog_On = null
trigger gg_trg_No_Fog = null
trigger gg_trg_Respawn = null
trigger gg_trg_Map = null
unit gg_unit_Hblm_0000 = null
endglobals
function InitGlobals takes nothing returns nothing
set udg_EnemyGroup = CreateGroup()
set udg_Level = 0
set udg_Damage = 0
set udg_AoE = 0
endfunction
//***************************************************************************
//*
//* Unit Creation
//*
//***************************************************************************
//===========================================================================
function CreateUnitsForPlayer0 takes nothing returns nothing
local player p = Player(0)
local unit u
local integer unitID
local trigger t
local real life
set gg_unit_Hblm_0000 = CreateUnit( p, 'Hblm', -248.1, -399.4, 34.267 )
call SetUnitState( gg_unit_Hblm_0000, UNIT_STATE_MANA, 0 )
set u = CreateUnit( p, 'hfoo', -23.1, -337.8, 22.612 )
set u = CreateUnit( p, 'hfoo', -212.9, -148.0, 76.913 )
set u = CreateUnit( p, 'hfoo', -487.8, -223.8, 139.030 )
set u = CreateUnit( p, 'hfoo', -474.8, -520.7, 194.009 )
set u = CreateUnit( p, 'hfoo', -256.7, -648.8, 268.681 )
set u = CreateUnit( p, 'hfoo', -79.4, -588.2, 314.441 )
endfunction
//===========================================================================
function CreateNeutralHostile takes nothing returns nothing
local player p = Player(PLAYER_NEUTRAL_AGGRESSIVE)
local unit u
local integer unitID
local trigger t
local real life
set u = CreateUnit( p, 'hfoo', -1682.2, 2415.4, 283.994 )
set u = CreateUnit( p, 'hfoo', -1429.0, 1503.6, 194.025 )
set u = CreateUnit( p, 'hfoo', -2024.4, 1753.4, 336.554 )
set u = CreateUnit( p, 'hfoo', -1598.8, 1938.6, 167.536 )
set u = CreateUnit( p, 'hfoo', -2202.7, 982.4, 238.839 )
set u = CreateUnit( p, 'hfoo', -2535.4, 2071.3, 213.372 )
set u = CreateUnit( p, 'hfoo', -1259.1, 2663.2, 280.512 )
set u = CreateUnit( p, 'hfoo', -339.5, 2273.6, 114.316 )
set u = CreateUnit( p, 'hfoo', -277.0, 2118.0, 44.485 )
set u = CreateUnit( p, 'hfoo', -117.3, 2273.3, 72.193 )
set u = CreateUnit( p, 'hfoo', 120.1, 2543.6, 239.147 )
set u = CreateUnit( p, 'hfoo', 436.4, 1462.5, 76.841 )
set u = CreateUnit( p, 'hfoo', 1251.4, 2006.3, 72.842 )
set u = CreateUnit( p, 'hfoo', 829.6, 2602.5, 275.062 )
set u = CreateUnit( p, 'hfoo', 1648.8, 1551.1, 109.966 )
set u = CreateUnit( p, 'hfoo', 1498.0, 769.9, 175.578 )
set u = CreateUnit( p, 'hfoo', 1992.3, 1529.5, 126.500 )
set u = CreateUnit( p, 'hfoo', 1994.1, 1800.5, 0.857 )
set u = CreateUnit( p, 'hfoo', 2427.6, 2469.6, 9.229 )
set u = CreateUnit( p, 'hfoo', 934.3, 1626.2, 136.586 )
set u = CreateUnit( p, 'hfoo', 2205.4, 2017.5, 320.701 )
set u = CreateUnit( p, 'hfoo', 2223.8, 2175.1, 32.169 )
set u = CreateUnit( p, 'hfoo', 2571.9, 1321.0, 59.482 )
set u = CreateUnit( p, 'hfoo', 2461.6, 299.2, 24.808 )
set u = CreateUnit( p, 'hfoo', 2127.9, -449.4, 315.889 )
set u = CreateUnit( p, 'hfoo', 2171.9, -171.8, 262.625 )
set u = CreateUnit( p, 'hfoo', 2150.0, 307.0, 110.812 )
set u = CreateUnit( p, 'hfoo', 2243.3, -340.7, 156.703 )
set u = CreateUnit( p, 'hfoo', 2339.5, -1183.5, 153.484 )
set u = CreateUnit( p, 'hfoo', 1855.8, -1422.8, 116.382 )
set u = CreateUnit( p, 'hfoo', 1442.1, -1820.1, 114.668 )
set u = CreateUnit( p, 'hfoo', 1370.6, -934.1, 247.936 )
set u = CreateUnit( p, 'hfoo', 2161.6, -2211.3, 143.068 )
set u = CreateUnit( p, 'hfoo', 2007.9, -2620.5, 144.639 )
set u = CreateUnit( p, 'hfoo', 2566.6, -2922.6, 293.641 )
set u = CreateUnit( p, 'hfoo', 1604.3, -1732.9, 93.628 )
set u = CreateUnit( p, 'hfoo', 716.5, -2835.1, 40.739 )
set u = CreateUnit( p, 'hfoo', 733.6, -2896.2, 51.758 )
set u = CreateUnit( p, 'hfoo', 318.4, -3116.3, 146.903 )
set u = CreateUnit( p, 'hfoo', 271.9, -2830.7, 187.597 )
set u = CreateUnit( p, 'hfoo', -826.4, -2341.6, 43.419 )
set u = CreateUnit( p, 'hfoo', -525.8, -2251.4, 255.033 )
set u = CreateUnit( p, 'hfoo', -1718.4, -2884.4, 345.168 )
set u = CreateUnit( p, 'hfoo', -1290.1, -2896.9, 244.058 )
set u = CreateUnit( p, 'hfoo', -2940.4, -2644.9, 164.745 )
set u = CreateUnit( p, 'hfoo', -2207.1, -2372.2, 111.570 )
set u = CreateUnit( p, 'hfoo', -1963.6, -2095.6, 97.485 )
set u = CreateUnit( p, 'hfoo', -2854.5, -374.7, 216.536 )
set u = CreateUnit( p, 'hfoo', -2836.7, -1071.8, 291.630 )
set u = CreateUnit( p, 'hfoo', -2580.1, -856.7, 356.067 )
set u = CreateUnit( p, 'hfoo', -2678.7, 324.3, 89.355 )
set u = CreateUnit( p, 'hfoo', -2102.9, -384.5, 223.007 )
set u = CreateUnit( p, 'hfoo', -2012.5, -36.5, 210.417 )
set u = CreateUnit( p, 'hfoo', -2121.6, 701.0, 197.057 )
set u = CreateUnit( p, 'hfoo', -2614.1, 566.6, 319.075 )
set u = CreateUnit( p, 'hfoo', -2978.9, 1020.2, 14.667 )
endfunction
//===========================================================================
function CreatePlayerBuildings takes nothing returns nothing
endfunction
//===========================================================================
function CreatePlayerUnits takes nothing returns nothing
call CreateUnitsForPlayer0( )
endfunction
//===========================================================================
function CreateAllUnits takes nothing returns nothing
call CreatePlayerBuildings( )
call CreateNeutralHostile( )
call CreatePlayerUnits( )
endfunction
//***************************************************************************
//*
//* Triggers
//*
//***************************************************************************
//===========================================================================
// Trigger: Mark of The Abyss
//===========================================================================
function Trig_Mark_of_The_Abyss_Conditions takes nothing returns boolean
if ( not ( GetSpellAbilityId() == 'A000' ) ) then
return false
endif
return true
endfunction
function Trig_Mark_of_The_Abyss_Func009002003001 takes nothing returns boolean
return ( IsPlayerEnemy(GetOwningPlayer(GetFilterUnit()), GetOwningPlayer(udg_Caster)) == true )
endfunction
function Trig_Mark_of_The_Abyss_Func009002003002 takes nothing returns boolean
return ( IsUnitType(GetFilterUnit(), Error) == false )
endfunction
function Trig_Mark_of_The_Abyss_Func009002003 takes nothing returns boolean
return GetBooleanAnd( Trig_Mark_of_The_Abyss_Func009002003001(), Trig_Mark_of_The_Abyss_Func009002003002() )
endfunction
function Trig_Mark_of_The_Abyss_Func018Func012C takes nothing returns boolean
if ( not ( udg_Level == 5 ) ) then
return false
endif
return true
endfunction
function Trig_Mark_of_The_Abyss_Func018A takes nothing returns nothing
set udg_Target = GetEnumUnit()
call CreateNUnitsAtLoc( 1, 'h000', GetOwningPlayer(udg_Caster), udg_tempLoc, bj_UNIT_FACING )
set udg_Dummy = GetLastCreatedUnit()
call UnitApplyTimedLifeBJ( 1.50, 'BTLF', udg_Dummy )
call UnitAddAbilityBJ( udg_DummyAbility, udg_Dummy )
call SetUnitAbilityLevelSwapped( udg_DummyAbility, udg_Dummy, udg_Level )
call IssueTargetOrderBJ( udg_Dummy, "faeriefire", udg_Target )
call AddSpecialEffectTargetUnitBJ( "origin", udg_Target, "Abilities\\Spells\\Undead\\DarkRitual\\DarkRitualTarget.mdl" )
set udg_SFX = GetLastCreatedEffectBJ()
call DestroyEffect(udg_SFX)
// Since damage change is only on level 5, I made this.
if ( Trig_Mark_of_The_Abyss_Func018Func012C() ) then
call UnitDamageTargetBJ( udg_Caster, udg_Target, ( udg_Damage + 125.00 ), ATTACK_TYPE_NORMAL, DAMAGE_TYPE_NORMAL )
else
call UnitDamageTargetBJ( udg_Caster, udg_Target, udg_Damage, ATTACK_TYPE_NORMAL, DAMAGE_TYPE_NORMAL )
endif
endfunction
function Trig_Mark_of_The_Abyss_Actions takes nothing returns nothing
set udg_Caster = GetTriggerUnit()
// Changable Damage and AoE for your desire
set udg_Damage = 125.00
set udg_AoE = 450.00
// |-|
set udg_tempLoc = GetSpellTargetLoc()
set udg_Level = GetUnitAbilityLevelSwapped('A000', udg_Caster)
set udg_DummyAbility = 'A001'
set udg_EnemyGroup = GetUnitsInRangeOfLocMatching(udg_AoE, udg_tempLoc, Condition(function Trig_Mark_of_The_Abyss_Func009002003))
// -------------------
call AddSpecialEffectLocBJ( udg_tempLoc, "Shockwave_Darkness.mdx" )
set udg_SFX = GetLastCreatedEffectBJ()
call DestroyEffect(udg_SFX)
call AddSpecialEffectLocBJ( udg_tempLoc, "Objects\\Spawnmodels\\Undead\\UndeadDissipate\\UndeadDissipate.mdl" )
set udg_SFX = GetLastCreatedEffectBJ()
call DestroyEffect(udg_SFX)
// -------------------
call ForGroupBJ( udg_EnemyGroup, function Trig_Mark_of_The_Abyss_Func018A )
// Removing Leaks....
call DestroyGroup(udg_EnemyGroup)
call RemoveLocation(udg_tempLoc)
endfunction
//===========================================================================
function InitTrig_Mark_of_The_Abyss takes nothing returns nothing
set gg_trg_Mark_of_The_Abyss = CreateTrigger( )
call TriggerRegisterAnyUnitEventBJ( gg_trg_Mark_of_The_Abyss, EVENT_PLAYER_UNIT_SPELL_EFFECT )
call TriggerAddCondition( gg_trg_Mark_of_The_Abyss, Condition( function Trig_Mark_of_The_Abyss_Conditions ) )
call TriggerAddAction( gg_trg_Mark_of_The_Abyss, function Trig_Mark_of_The_Abyss_Actions )
endfunction
//===========================================================================
// Trigger: Notice Msgs
//===========================================================================
function Trig_Notice_Msgs_Actions takes nothing returns nothing
call DisplayTextToForce( GetPlayersAll(), "TRIGSTR_046" )
endfunction
//===========================================================================
function InitTrig_Notice_Msgs takes nothing returns nothing
set gg_trg_Notice_Msgs = CreateTrigger( )
call TriggerRegisterTimerEventSingle( gg_trg_Notice_Msgs, 0.01 )
call TriggerAddAction( gg_trg_Notice_Msgs, function Trig_Notice_Msgs_Actions )
endfunction
//===========================================================================
// Trigger: Fog On
//===========================================================================
function Trig_Fog_On_Actions takes nothing returns nothing
call DestroyFogModifier( GetLastCreatedFogModifier() )
endfunction
//===========================================================================
function InitTrig_Fog_On takes nothing returns nothing
set gg_trg_Fog_On = CreateTrigger( )
call TriggerRegisterPlayerChatEvent( gg_trg_Fog_On, Player(0), "-fogon", true )
call TriggerAddAction( gg_trg_Fog_On, function Trig_Fog_On_Actions )
endfunction
//===========================================================================
// Trigger: No Fog
//===========================================================================
function Trig_No_Fog_Actions takes nothing returns nothing
call DestroyFogModifier( GetLastCreatedFogModifier() )
call CreateFogModifierRectBJ( true, Player(0), FOG_OF_WAR_VISIBLE, GetPlayableMapRect() )
endfunction
//===========================================================================
function InitTrig_No_Fog takes nothing returns nothing
set gg_trg_No_Fog = CreateTrigger( )
call TriggerRegisterPlayerChatEvent( gg_trg_No_Fog, Player(0), "-nofog", true )
call TriggerAddAction( gg_trg_No_Fog, function Trig_No_Fog_Actions )
endfunction
//===========================================================================
// Trigger: Respawn
//===========================================================================
//TESH.scrollpos=0
//TESH.alwaysfold=0
function Trig_Respawn_Actions takes nothing returns nothing
local unit t = GetTriggerUnit()
local unit d = GetDyingUnit()
local real w = 15.00
call TriggerSleepAction( w )
call ReplaceUnitBJ( t, GetUnitTypeId(d), bj_UNIT_STATE_METHOD_MAXIMUM )
endfunction
//===========================================================================
function InitTrig_Respawn takes nothing returns nothing
set gg_trg_Respawn = CreateTrigger( )
call TriggerRegisterAnyUnitEventBJ( gg_trg_Respawn, EVENT_PLAYER_UNIT_DEATH )
call TriggerAddAction( gg_trg_Respawn, function Trig_Respawn_Actions )
endfunction
//===========================================================================
// Trigger: Map
//===========================================================================
function Trig_Map_Actions takes nothing returns nothing
call AddHeroXPSwapped( 100000000, gg_unit_Hblm_0000, true )
endfunction
//===========================================================================
function InitTrig_Map takes nothing returns nothing
set gg_trg_Map = CreateTrigger( )
call TriggerAddAction( gg_trg_Map, function Trig_Map_Actions )
endfunction
//===========================================================================
function InitCustomTriggers takes nothing returns nothing
call InitTrig_Mark_of_The_Abyss( )
call InitTrig_Notice_Msgs( )
call InitTrig_Fog_On( )
call InitTrig_No_Fog( )
call InitTrig_Respawn( )
call InitTrig_Map( )
endfunction
//===========================================================================
function RunInitializationTriggers takes nothing returns nothing
call ConditionalTriggerExecute( gg_trg_Map )
endfunction
//***************************************************************************
//*
//* Players
//*
//***************************************************************************
function InitCustomPlayerSlots takes nothing returns nothing
// Player 0
call SetPlayerStartLocation( Player(0), 0 )
call SetPlayerColor( Player(0), ConvertPlayerColor(0) )
call SetPlayerRacePreference( Player(0), RACE_PREF_HUMAN )
call SetPlayerRaceSelectable( Player(0), true )
call SetPlayerController( Player(0), MAP_CONTROL_USER )
endfunction
function InitCustomTeams takes nothing returns nothing
// Force: TRIGSTR_002
call SetPlayerTeam( Player(0), 0 )
endfunction
//***************************************************************************
//*
//* Main Initialization
//*
//***************************************************************************
//===========================================================================
function main takes nothing returns nothing
call SetCameraBounds( -3328.0 + GetCameraMargin(CAMERA_MARGIN_LEFT), -3584.0 + GetCameraMargin(CAMERA_MARGIN_BOTTOM), 3328.0 - GetCameraMargin(CAMERA_MARGIN_RIGHT), 3072.0 - GetCameraMargin(CAMERA_MARGIN_TOP), -3328.0 + GetCameraMargin(CAMERA_MARGIN_LEFT), 3072.0 - GetCameraMargin(CAMERA_MARGIN_TOP), 3328.0 - GetCameraMargin(CAMERA_MARGIN_RIGHT), -3584.0 + GetCameraMargin(CAMERA_MARGIN_BOTTOM) )
call SetDayNightModels( "Environment\\DNC\\DNCLordaeron\\DNCLordaeronTerrain\\DNCLordaeronTerrain.mdl", "Environment\\DNC\\DNCLordaeron\\DNCLordaeronUnit\\DNCLordaeronUnit.mdl" )
call NewSoundEnvironment( "Default" )
call SetAmbientDaySound( "LordaeronSummerDay" )
call SetAmbientNightSound( "LordaeronSummerNight" )
call SetMapMusic( "Music", true, 0 )
call CreateAllUnits( )
call InitBlizzard( )
call InitGlobals( )
call InitCustomTriggers( )
call RunInitializationTriggers( )
endfunction
//***************************************************************************
//*
//* Map Configuration
//*
//***************************************************************************
function config takes nothing returns nothing
call SetMapName( "TRIGSTR_043" )
call SetMapDescription( "" )
call SetPlayers( 1 )
call SetTeams( 1 )
call SetGamePlacement( MAP_PLACEMENT_USE_MAP_SETTINGS )
call DefineStartLocation( 0, -256.0, -384.0 )
// Player setup
call InitCustomPlayerSlots( )
call SetPlayerSlotAvailable( Player(0), MAP_CONTROL_USER )
call InitGenericPlayerSlots( )
endfunction[/QUOTE]