做了一个魔兽3的地图脚本文件简单分析图:
-----------------------
源文件
- //===========================================================================
- //
- // 只是另外一张魔兽争霸III的地图
- //
- // Warcraft III map script
- // Generated by the Warcraft III World Editor
- // Date: Thu Jan 01 17:54:36 2009
- // Map Author: 未知的
- //
- //===========================================================================
- //***************************************************************************
- //*
- //* Global Variables
- //*
- //***************************************************************************
- globals
- // Generated
- trigger gg_trg________________u = null
- trigger gg_trg_myTrigger = null
- endglobals
- function InitGlobals takes nothing returns nothing
- endfunction
- //***************************************************************************
- //*
- //* Triggers
- //*
- //***************************************************************************
- //===========================================================================
- // Trigger: 对战初始化
- //
- // 默认的对所有玩家的对战游戏初始化
- //===========================================================================
- function Trig________________u_Actions takes nothing returns nothing
- call MeleeStartingVisibility( )
- call MeleeStartingHeroLimit( )
- call MeleeGrantHeroItems( )
- call MeleeStartingResources( )
- call MeleeClearExcessUnits( )
- call MeleeStartingUnits( )
- call MeleeStartingAI( )
- call MeleeInitVictoryDefeat( )
- endfunction
- //===========================================================================
- function InitTrig________________u takes nothing returns nothing
- set gg_trg________________u = CreateTrigger( )
- call TriggerAddAction( gg_trg________________u, function Trig________________u_Actions )
- endfunction
- //===========================================================================
- // Trigger: myTrigger
- //===========================================================================
- function Trig_myTrigger_Conditions takes nothing returns boolean
- if ( not ( true == true ) ) then
- return false
- endif
- return true
- endfunction
- function Trig_myTrigger_Actions takes nothing returns nothing
- call DoNothing( )
- // hi, this is my test
- endfunction
- //===========================================================================
- function InitTrig_myTrigger takes nothing returns nothing
- set gg_trg_myTrigger = CreateTrigger( )
- call TriggerRegisterPlayerEventLeave( gg_trg_myTrigger, Player(0) )
- call TriggerAddCondition( gg_trg_myTrigger, Condition( function Trig_myTrigger_Conditions ) )
- call TriggerAddAction( gg_trg_myTrigger, function Trig_myTrigger_Actions )
- endfunction
- //===========================================================================
- function InitCustomTriggers takes nothing returns nothing
- call InitTrig________________u( )
- call InitTrig_myTrigger( )
- endfunction
- //===========================================================================
- function RunInitializationTriggers takes nothing returns nothing
- call ConditionalTriggerExecute( gg_trg________________u )
- 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: 势力 1
- 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 InitBlizzard( )
- call InitGlobals( )
- call InitCustomTriggers( )
- call RunInitializationTriggers( )
- endfunction
- //***************************************************************************
- //*
- //* Map Configuration
- //*
- //***************************************************************************
- function config takes nothing returns nothing
- call SetMapName( "只是另外一张魔兽争霸III的地图" )
- call SetMapDescription( "没有描述" )
- call SetPlayers( 1 )
- call SetTeams( 1 )
- call SetGamePlacement( MAP_PLACEMENT_USE_MAP_SETTINGS )
- call DefineStartLocation( 0, 1600.0, -64.0 )
- // Player setup
- call InitCustomPlayerSlots( )
- call SetPlayerSlotAvailable( Player(0), MAP_CONTROL_USER )
- call InitGenericPlayerSlots( )
- endfunction