globals
//globals from YDWEBase:
constant boolean LIBRARY_YDWEBase=true
//全局缓存
//integer abcdefghij = 15
string bj_AllString=".................................!.#$%&'()*+,-./0123456789:;<=>.@ABCDEFGHIJKLMNOPQRSTUVWXYZ[.]^_`abcdefghijklmnopqrstuvwxyz{|}~................................................................................................................................"
//全局系统变量
unit bj_lastAbilityCastingUnit=null
unit bj_lastAbilityTargetUnit=null
unit bj_lastPoolAbstractedUnit=null
unitpool bj_lastCreatedUnitPool=null
item bj_lastMovedItemInItemSlot=null
item bj_lastCombinedItem=null
item bj_lastPoolAbstractedItem=null
itempool bj_lastCreatedItemPool=null
attacktype bj_lastSetAttackType= ATTACK_TYPE_NORMAL
damagetype bj_lastSetDamageType= DAMAGE_TYPE_NORMAL
weapontype bj_lastSetWeaponType= WEAPON_TYPE_WHOKNOWS
real yd_MapMaxX=0
real yd_MapMinX=0
real yd_MapMaxY=0
real yd_MapMinY=0
//跳跃系统优先级
integer MoveMoreLevel_JumpTimer=3
//TimerSystem
timer TimerSystem_TimerZero=null
// timer TimerSystem_Timer=null //最小时间计时器 可以自动开启和关闭
real TimerSystem_Timeout=0.01
integer TimerSystem_Steps=0
integer TimerSystem_StepsMax=0
timer TimerSystem_BigTimer=null
real TimerSystem_BigTimeout=1
integer TimerSystem_BigSteps=0
integer TimerSystem_RunIndex=0
//系统数组
force FilterFuncSyStem_force
filterfunc array FilterFuncSyStem_filterfunc
integer FilterFuncSyStem_Index=0
//endglobals from YDWEBase
//globals from Around:
constant boolean LIBRARY_Around=true
constant timer Around__AROUND_TIM= CreateTimer()
constant real Around__AROUND_INTER= 0.01
//endglobals from Around
//globals from YDWEJumpTimer:
constant boolean LIBRARY_YDWEJumpTimer=true
//endglobals from YDWEJumpTimer
//globals from YDWEMath:
constant boolean LIBRARY_YDWEMath=true
location yd_locHelper= Location(0.0, 0.0)
//endglobals from YDWEMath
//globals from YDWESetGuard:
constant boolean LIBRARY_YDWESetGuard=true
//endglobals from YDWESetGuard
//globals from YDWETimerSystem:
constant boolean LIBRARY_YDWETimerSystem=true
force yd_RunBoolexpr
integer yd_ctimer_current_index
integer yd_ctimer_list_index
integer yd_ctimer_list_proc_index
boolean array yd_ctimer_list_index_boolean
boolexpr array yd_ctimer_list_proc
boolexpr yd_ctimer_RemoveUnit_proc
boolexpr yd_ctimer_DestroyTimer_proc
boolexpr yd_ctimer_RemoveItem_proc
boolexpr yd_ctimer_DestroyEffect_proc
boolexpr yd_ctimer_DestroyLightning_proc
boolexpr yd_ctimer_RunTrigger_proc
timer TimerSystem_Timer
// force FilterFuncSyStem_force
//endglobals from YDWETimerSystem
//globals from YDWETriggerEvent:
constant boolean LIBRARY_YDWETriggerEvent=true
//endglobals from YDWETriggerEvent
//globals from YDWETimerPattern:
constant boolean LIBRARY_YDWETimerPattern=true
constant real YDWETimerPattern__TIMER_PATTERN_RADIUS= 120.0
//private location loc = Location(0.0, 0.0)
boolexpr YDWETimerPattern__bexpr= null
rect YDWETimerPattern__area= null
//endglobals from YDWETimerPattern
// User-defined
boolean array udg_Occupy
boolean array udg_PlayerLeft
integer array udg_BetPlayerClicked
sound array udg_StompSound
integer udg_i= 0
string array udg_PlayerColor
unit array udg_Init_Hero_Unit
rect array udg_Region
location array udg_Region_Centers
location udg_Temp_Point= null
group udg_Shield_Group= null
group udg_Shield_Group_Count= null
location udg_Temp_Point2= null
effect udg_CycloneEffect= null
location udg_Explode_Corpes_Position= null
location udg_Fanofknives_Piont= null
location udg_Chute_Random_Point= null
group udg_Chute_Target_Group= null
location udg_Chute_Target_Point= null
unit udg_Whirlwind_Unit= null
unit udg_Orb_Die= null
unit udg_Orb_Effect= null
effect udg_StompTargetEffect= null
unit udg_StompTarget= null
unit array udg_StompDooms
location udg_MoreArrowTPoint= null
location udg_Target_Point= null
integer udg_Mode= 0
trigger udg_Temp_Trigger= null
unit array udg_Divine_Unit1
force udg_LightPlayerGroup= null
force udg_DarkPlayerGroup= null
integer udg_OnLinePlayerLight= 0
integer udg_OnLinePlayerDark= 0
integer udg_Experience_Dark= 0
integer udg_Experience_Light= 0
boolean udg_Multitude_PK_Mode= false
boolean udg_Multitude_PK_Request= false
unit udg_DestinyUnit= null
boolean udg_SPK_ModeOn= false
player udg_SPK_YaoqingPlayer= null
unit udg_SPK_YaoqingUnit= null
player udg_SPK_JieshouPlayer= null
unit udg_SPK_JieshouUnit= null
player udg_SPK_WinnerPlayer= null
unit udg_SPK_WinUnit= null
effect udg_GO= null
effect udg_NoOrYes= null
timer udg_SPK_DialogTimeOut= null
dialog udg_SPK_Dialog= null
timerdialog udg_TimerWindowSPK_Dialog= null
player udg_NullPlayer= null
button udg_SPK_Accept= null
button udg_SPK_Reject= null
timer udg_TimerSPK= null
timerdialog udg_TimerWindowSPK= null
boolean udg_HeroInPKArea= false
integer udg_LightBuildLevel= 0
integer udg_LevelDifference= 0
unit udg_SPK_LostUnit= null
player array udg_BetPlayer
unit array udg_Divine_Unit2
timer udg_BetSPKTimeOut= null
timerdialog udg_TimerWindowBet= null
integer udg_ClickedDone= 0
unit udg_MPK_YaoqingUnit= null
integer array udg_MPK_Clicked
integer udg_MPK_DialogAmount= 0
integer udg_MPK_DialogAmount_Light= 0
integer udg_MPK_DialogAmount_Dark= 0
timer udg_MPK_TimeOut= null
timerdialog udg_TimerWindowMPK= null
integer udg_MPK_ClickedDone= 0
integer udg_MPK_Clicked_Accept_Light= 0
integer udg_MPK_Clicked_Accept_Dark= 0
integer udg_MPK_Clicked_Reject_Dark= 0
integer udg_MPK_Clicked_Reject_Light= 0
timer udg_MPK_ReadyTime= null
timerdialog udg_TimerWindowMPK_Ready= null
real udg_MPK_Value_Light= 0
group udg_MPK_Group_Light= null
group udg_MPK_Group_Dark= null
integer udg_MPK_Light_Bounty= 0
integer udg_MPK_Dark_Bounty= 0
boolean udg_DestinyState= false
integer udg_RandomDestiny= 0
boolean udg_PlayerOneTrue= false
player udg_PlayerOne= null
boolean array udg_PlayerModeSet
timer udg_Player_Mode_Set= null
timerdialog udg_TimerWindowPlayerModeSet= null
dialog udg_ChooseHeroMode= null
button udg_FreeHeroSelect= null
button udg_RandomAllHero= null
group udg_Attack_Group_Light= null
integer udg_DarkBuildLevel= 0
integer udg_ForceLevel= 0
integer udg_Game_Time_Seconds= 0
integer udg_Game_Time_Minutes= 0
integer udg_Game_Time_Hours= 0
integer udg_Game_Time_TenSeconds= 0
integer udg_Game_Time_TenMinutes= 0
string udg_Game_Time_String
integer udg_RandomHeroID= 0
integer udg_MoneyToEach= 0
integer udg_MoneyToSplit= 0
location udg_Shield_Point= null
unit array udg_VoodooUnit
group udg_Roulette_Targets_Group= null
unit array udg_Roulette_Target
location array udg_Roulette_Point
terraindeformation udg_Roulette_Deformation= null
location udg_Roulette_Caster_Point= null
group udg_Roulette_Caster_Group= null
unit array udg_Roulette_Caster
location udg_Quake_Point= null
boolean udg_LightFireMode= false
effect array udg_Ligtht_Fire_Effect
location array udg_EffectPoint
integer udg_Wind_Current_Shadows= 0
real udg_Wind_Jump_Distance= 0
boolean udg_Wind_Jump_Mode= false
unit array udg_Wind_Jump_Shadow
unit udg_Wind_Jump_Target= null
location udg_Wind_Jump_Target_Point= null
unit udg_Wind_Jump_Unit= null
location udg_Wind_Jump_Unit_Point= null
integer udg_MAX_LOOP= 0
integer udg_MAX_SHADOWS= 0
integer udg_Index= 0
integer udg_x= 0
real udg_Angle= 0
unit udg_Temp_Unit= null
integer udg_TimeSecond= 0
location array udg_Skill_bm
location array udg_Skill_lich
location array udg_Skill_LE
integer udg_Skill_PLn= 0
real udg_JunpIndex= 0
unit udg_JumpCaster= null
real udg_JumpAngle= 0
real udg_JumpdDist= 0
location array udg_Skill_PL
dialog udg_ChooseMatchMode= null
button udg_ChooseMatchModeFun= null
button udg_ChooseMatchModeNoFun= null
force udg_Play_OB= null
integer udg_TimeMinute= 0
unit udg_Image_Unit= null
location udg_MoreArrowEffectPoint= null
integer udg_MoreArrowEffectNum= 0
unit udg_MoreArrowEffectUnit= null
location udg_ThunderclapPoint= null
integer udg_ThunderclapNum= 0
real udg_ThunderclapAngle= 0
location udg_ThunderclapHeroPoint= null
timer array udg_ReviveTimer
timerdialog array udg_TimerWindow
force udg_Groups_Message= null
dialog array udg_MPK_Player
button array udg_MPK_Accept
button array udg_MPK_Reject
dialog array udg_BetPK
button array udg_PKWin_Yaoqing
button array udg_PKWin_Jieshou
button array udg_Dogfall
button array udg_Disclaim
group udg_DeathKill_Group= null
integer udg_CFS_N= 0
integer udg_CFS_M= 0
location udg_CFS_P= null
gamecache udg_GC_HeroRevive= null
group udg_Defend_Group= null
integer udg_Defend_N= 0
group udg_MoreDRAN_Group= null
boolean udg_MarchMode= false
integer udg_BetDialogAmount= 0
boolean array udg_Notify
location udg_Moonlight_Point= null
unit udg_Moonlight_Unit= null
rect udg_Chunte_Zoon= null
group udg_Chute_Group= null
rect udg_Quake_Zoon= null
location udg_Bumo_Hero_Point= null
location udg_Bump_Point= null
location udg_Laser_Point= null
location udg_Laser_Hero_Point= null
location array udg_N545_Point
group udg_Roar_Group= null
location udg_Roar_Point= null
dialog udg_ChoosePickMode= null
button udg_PickOwner= null
button udg_PickAll= null
string array udg_Hexa
boolean udg_CampChangeYorN= false
location udg_StopmTargetPoint= null
integer udg_AI_Random_Way= 0
group udg_AI_Hero_Light= null
group udg_AI_Hero_Dark= null
group udg_Attack_Group_Dark= null
gamecache udg_GC= null
unit udg_AI_hero= null
integer udg_AI_i= 0
integer udg_AI_type= 0
integer array udg_AI_Ability
string array udg_AI_learn_sequence
boolean array udg_NotIngame
location udg_Pal_Roar_Point= null
boolean udg_DeathMode= false
dialog udg_ChooseDeathMode= null
button udg_ChooseDeathModeT= null
button udg_ChooseDeathModeF= null
unit udg_Check_Hero= null
timer udg_Roar_Timer= null
location udg_Volcano_Point= null
boolean udg_RandomHero= false
real udg_MPK_Value_Dark= 0
integer array udg_HeroOwner
integer array udg_HeroType
unit array udg_SwapHero
integer array udg_Swap_I
unit array udg_Swap_Hero
player array udg_Swap_Player
leaderboard udg_Rank= null
timer udg_MagicShield_Timer= null
timer udg_WaterChain_Timer= null
timer udg_Whirlwind_Timer= null
force udg_TopGroup= null
force udg_BotGroup= null
real udg_DarkPortalDamage= 0
location udg_DarkPortalPoint= null
group udg_DarkPortalGroup= null
multiboard udg_MultiPanel= null
integer array udg_DestroyTowerNum
integer array udg_BuyCCRNum
integer array udg_BuyMerNum
integer array udg_HeroNum
integer array udg_HeroKillNum
integer array udg_HeroDeathNum
string array udg_HeroLogo
integer array udg_HeroResurNum
integer array udg_UseJFNum
integer array udg_UseTTNum
integer array udg_UseCSNum
integer array udg_UseCMNum
integer array udg_Morse
item array udg_MorseItem
integer udg_Returnmode= 0
force udg_ReturnPlayers= null
force udg_DisablehelpPlayers= null
location udg_MoreArrowUPoint= null
group udg_Roulette_Pick_Group= null
timer udg_CycloneTimer= null
integer array udg_UseJHNum
integer array udg_BuyCCCNum
timer udg_DuskTimer= null
integer udg_DuskNum= 0
real udg_Roulette_Angel= 0
rect udg_RoarRect= null
unit udg_DarkPortalUnit= null
integer udg_StompNum= 0
timer array udg_TimerOfRush
integer udg_MagicShieldNum= 0
integer udg_WhirlwindNum= 0
location udg_TriggerPointA= null
location udg_TriggerPointB= null
group udg_TriggerGroupA= null
string array udg_PlayerNames
location array udg_TempPoint
location array udg_LightningRoarPoint
integer udg_LightningRoarNum= 0
boolean udg_AllCampPick= false
group udg_kof97_cd_group= null
timer udg_timerd_cd= null
unit array udg_unit
location udg_point= null
effect udg_TX= null
integer udg_zhengshu= 0
group udg_zu= null
unit udg_chufa= null
unit udg_mubiao= null
location array udg_dian
unit array udg_danwei
integer array udg_zhengchu
real array udg_shishu
boolean array udg_buer
effect udg_texiao= null
timer udg_JSQ= null
group udg_direnzu2= null
group udg_shanghaizu= null
group udg_wuxingzu= null
group udg_wuxingjiaxuezu= null
group udg_wuxingzhuandongzu= null
group udg_wuxingxiaoguozu= null
group udg_wuxingshanghaizu= null
integer udg_MH_Level= 0
real udg_MH_Angle= 0
unit array udg_MH_Unit
integer udg_MH_Links= 0
unit array udg_MH_Link
group udg_Temp_Group= null
string array udg_noodle
boolean udg_boolean= false
location array udg_p
unit array udg_u
real udg_Xo= 0
real udg_Yo= 0
real udg_Zo= 0
timer udg_t= null
real udg_radius= 0
real array udg_dis
group array udg_g
integer array udg_n
integer array udg_angle
real array udg_X
real array udg_Y
real array udg_Z
lightning array udg_SD1
real array udg_h
integer array udg_num
location array udg_PointPlayer
unit udg_Hero_Hong= null
unit udg_Unit_Hong= null
location array udg_P_Hong
integer array udg_Int_Hong
destructable udg_Tree_Hong= null
unit udg_CJUnit_Hong= null
timer array udg_ReviveTimer1
timerdialog array udg_TimerWindow1
boolean udg_Multitude_PK_RequestAA= false
boolean udg_Multitude_PK_ModeAAA= false
boolean udg_HeroInPKAreaAAA= false
timer array udg_ReviveTimer2
timerdialog array udg_TimerWindow2
timer udg_MPK_ReadyTime1= null
timerdialog udg_TimerWindowMPK_Ready1= null
timer udg_MPK_ReadyTime2= null
timerdialog udg_TimerWindowMPK_Ready2= null
unit array udg_X_Hero
location array udg_X_Point
real array udg_X_Real
timer udg_X_Timer= null
unit udg_jurendedw= null
unit array udg_aa
real array udg_b
real udg_basicdamage= 0
real array udg_damage
location udg_loc= null
location udg_locoff= null
integer udg_loop= 0
unit udg_triunit= null
location udg_Ravage= null
timer udg_MPK_ReadyTime3= null
timerdialog udg_TimerWindowMPK_Ready3= null
timer udg_MPK_ReadyTime4= null
timerdialog udg_TimerWindowMPK_Ready4= null
unit udg_zyzs_unit= null
group udg_zy= null
integer udg_langshijian= 0
unit array udg_lq
real udg_lqelt= 0
unit array udg_DW
location udg_D1= null
location udg_D2= null
location udg_D3= null
group udg_zytt= null
group udg_lqelt_zu= null
group udg_zy_xiongmao= null
integer udg_zs= 0
unit udg_z_niu= null
location udg_z_mubiao= null
force udg_wanjiazu= null
real array udg_bingfengqiu_15sjss
integer array udg_bingfengqiu_blcishu
boolean array udg_bingfengqiu_boz
trigger udg_bingfengqiu_chufa= null
location array udg_bingfengqiu_jnd
integer udg_bingfengqiu_jsq= 0
real array udg_bingfengqiu_juli
unit udg_bingfengqiu_jusfdw= null
location array udg_bingfengqiu_mld
location array udg_bingfengqiu_sfd
boolean array udg_bingfengqiu_sjboz
real array udg_bingfengqiu_sjjuss
real array udg_bingfengqiu_sjss
real array udg_bingfengqiu_sjsunhuan
real array udg_bingfengqiu_sudu
real array udg_bingfengqiu_sulv
real array udg_bingfengqiu_x
real array udg_bingfengqiu_y
location array udg_bingfengqiu_yyd
integer array udg_bingfengqiu_zhblgeshu
real array udg_bingfengqiu_zuizhongcd
texttag array udg_PIAO
group array udg_qiuqiu_dwz
location udg_qiuqiu_jnd= null
integer array udg_wanjia_mfbj_jilv
group udg_zy_jufeng= null
leaderboard array udg_Panel
item udg_chenmo= null
real udg_chenmocishu= 0
unit array udg_A_______u
unit array udg_AQ
unit array udg_AQ2
integer array udg_DQ
integer array udg_DQ2
integer array udg_DQ3
real array udg_EQ
location array udg_IQ
group array udg_OQ
timer array udg_RQ
location array udg_dianw
real udg_shishuw= 0
integer udg_zhenshuw= 0
real array udg_PDSP_Add_High
real array udg_PDSP_Angle
group udg_PDSP_Group= null
real array udg_PDSP_High
boolean udg_PDSP_On= false
location array udg_PDSP_Point
location array udg_PDSP_Point_Part_Time
location array udg_PDSP_Test_Point
timer udg_PDSP_Timer= null
unit array udg_PDSP_Unit
integer array udg_Unit_Int
location udg_adian= null
real array udg_Mudun_Shujie_Chicun
location array udg_Mudun_Shujie_Point
group array udg_Mudun_Shujie_Shu
location array udg_Renshu_5W
group array udg_Renshu_5W_Z
location udg_dian104= null
integer udg_jiduishuzi= 0
unit array udg_jituidanwei
group udg_jituidanweizu= null
real array udg_jituidiaodu3
real array udg_jituijiaodu1
real udg_jituijiaodu2= 0
location udg_jituipoint= null
effect udg_jituixiaoguo= null
location array udg_movepoint
integer udg_shu= 0
location array udg_targetpointa
unit array udg_unittt
effect udg_xiaoguo= null
group udg_Shuidun_Shuizhenbi= null
location array udg_Temp_PointB
unit array udg_Tunit
location array udg_Tpoint
real array udg_Tdamage
group array udg_Tteam
integer array udg_TNumberZ
location udg_dianlong= null
location udg_dianS= null
location udg_dianshui= null
location udg_dianshuibo= null
group array udg_SL
location udg_locoffQQ= null
unit array udg_KKX_Hero
real array udg_KKX_N
location array udg_KKX_Point
button udg_ChooseDeathModeG= null
location array udg_afuhuodian
boolean udg_HerogerenPK= false
timer array udg_ReviveTimer3
timerdialog array udg_TimerWindow3
timer udg_MPK_ReadyTime5= null
timerdialog udg_TimerWindowMPK_Ready5= null
real array udg_Asiwangcishu
real udg_Amenkan= 0
force udg_Alianmengzu= null
real udg_Awanjiashu= 0
location array udg_D5
real udg_zongtiwanjiashu= 0
force udg_suoyouwanjia= null
multiboard udg_MultiPanel2= null
force udg_panghangzu= null
real udg_niudun= 0
integer udg_niudunzheng= 0
group udg_zy_jufeng2= null
timer udg_t2= null
group udg_fmh= null
group udg_najia30= null
boolean udg_najia31= false
timer udg_ttt= null
group udg_wuyao15= null
integer udg_najiashu= 0
location udg_najia30dian= null
boolean udg_Multitude_PK_RequestBB= false
boolean udg_HeroInPKAreaBB= false
boolean udg_Multitude_PK_ModeBB= false
real udg_feifeiguangming= 0
real udg_feifeiheian= 0
location array udg_feifeidian
timer array udg_ReviveTimer4
timerdialog array udg_TimerWindow4
real array udg_feifeishengming
timer udg_MPK_ReadyTime6= null
timerdialog udg_TimerWindowMPK_Ready6= null
location array udg_jiansheng
group array udg_jianshengzu
boolean udg_jianshengsiwang= false
boolean udg_JIANSHENG15= false
location array udg_D6
location udg_dian2= null
location udg_dian105= null
location udg_dian106= null
location udg_dian107= null
integer udg_shanghaizhi= 0
unit udg_AI_hero12= null
group udg_Lqs30= null
location udg_D21= null
group udg_longzu= null
location array udg_dong
unit udg_danweilong= null
location udg_dianyanlong= null
location array udg_dianlongquan
unit udg_mubiao1= null
group udg_mengquanzu= null
unit udg_danweihupao= null
unit udg_danweimeng= null
timer udg_mengquanjishi= null
player udg_mengquanwanjia= null
unit array udg_linghun
player array udg_linghunwanjia
boolean udg_zhuangzai= false
force udg_fanheizu= null
player array udg_fanheiwanjia
real udg_Afanhei= 0
button udg_ChooseDeathModeSI= null
integer udg_Rfanhei= 0
boolean array udg_goufeiqubie
unit udg_asun= null
location array udg_ashangdi
boolean udg_ashangdizhi= false
integer udg_ashang= 0
group udg_lqs31= null
group udg_lqs32= null
real udg_jiaodushenyuan= 0
group udg_JASS15= null
// Generated
rect gg_rct_Auditoria1= null
rect gg_rct_Auditoria2= null
rect gg_rct_Circle01= null
rect gg_rct_Circle02= null
rect gg_rct_Circle03= null
rect gg_rct_Circle04= null
rect gg_rct_Circle05= null
rect gg_rct_Circle06= null
rect gg_rct_Circle07= null
rect gg_rct_Circle08= null
rect gg_rct_Circle09= null
rect gg_rct_Circle10= null
rect gg_rct_Circle11= null
rect gg_rct_Circle12= null
rect gg_rct_Circle21= null
rect gg_rct_Circle22= null
rect gg_rct_Circle23= null
rect gg_rct_Circle24= null
rect gg_rct_Circle25= null
rect gg_rct_Circle26= null
rect gg_rct_Circle27= null
rect gg_rct_Circle28= null
rect gg_rct_Circle29= null
rect gg_rct_Circle30= null
rect gg_rct_Circle31= null
rect gg_rct_Circle32= null
rect gg_rct_Dark_Bottom= null
rect gg_rct_Dark_Middle= null
rect gg_rct_Dark_Random= null
rect gg_rct_Dark_Start= null
rect gg_rct_Dark_Top= null
rect gg_rct_Dark_Hero_Box= null
rect gg_rct_DarkHome= null
rect gg_rct_Destiny= null
rect gg_rct_DestinyIn= null
rect gg_rct_DestinyOutArea= null
rect gg_rct_Hero_Cave= null
rect gg_rct_Hero_Enter= null
rect gg_rct_Hero_In= null
rect gg_rct_Hero_Leave= null
rect gg_rct_Hero_Out= null
rect gg_rct_Light_Bottom= null
rect gg_rct_Light_Middle= null
rect gg_rct_Light_Random= null
rect gg_rct_Light_Start= null
rect gg_rct_Light_Top= null
rect gg_rct_Light_Hero_Box= null
rect gg_rct_LightHome= null
rect gg_rct_MonsterEnter= null
rect gg_rct_MonsterIn= null
rect gg_rct_MonsterLeave= null
rect gg_rct_MonsterOut= null
rect gg_rct_PKPlace= null
rect gg_rct_PKRequesterStart= null
rect gg_rct_PKResopnsorStart= null
rect gg_rct_PunishZone= null
rect gg_rct_ShowTime= null
rect gg_rct_SkeletonEnter= null
rect gg_rct_SkeletonIn= null
rect gg_rct_SkeletonLeave= null
rect gg_rct_SkeletonOut= null
rect gg_rct_StoneEnter= null
rect gg_rct_StoneIn= null
rect gg_rct_StoneLeave= null
rect gg_rct_StoneOut= null
rect gg_rct_Wolf_Cave= null
rect gg_rct_WolfEnter= null
rect gg_rct_WolfIn= null
rect gg_rct_WolfLeave= null
rect gg_rct_WolfOut= null
rect gg_rct_TreePlantA= null
rect gg_rct_TreePlantB= null
rect gg_rct_HideModeA= null
rect gg_rct_HideModeB= null
rect gg_rct_Circle33= null
rect gg_rct_Circle13= null
rect gg_rct_tiaozhanPK= null
rect gg_rct_wudiquyuA= null
rect gg_rct_wudiquyuB= null
rect gg_rct_tiaozhanzhongxin= null
rect gg_rct_wudiquyuAA= null
rect gg_rct_wudiquyuBB= null
rect gg_rct_Circle14= null
rect gg_rct_zhaohuanA= null
rect gg_rct_zhaohuanB= null
rect gg_rct_Circle34= null
rect gg_rct_______MH= null
rect gg_rct_____________u= null
rect gg_rct_wumingdong= null
rect gg_rct_Circle35= null
rect gg_rct_Circle15= null
rect gg_rct_shenmidongxue= null
rect gg_rct_shenmidongxue1= null
rect gg_rct_shenmidonxue2= null
rect gg_rct_Circle16= null
rect gg_rct_Circle36= null
rect gg_rct_wumingdongwudi= null
rect gg_rct_Circle17= null
rect gg_rct_Circle37= null
rect gg_rct___________________u= null
rect gg_rct___________________2= null
rect gg_rct___________________3= null
rect gg_rct_zhongxian1= null
rect gg_rct_zhongxian2= null
rect gg_rct_zhongxian3= null
rect gg_rct_guangmingfeifei= null
rect gg_rct_heianfeifei= null
rect gg_rct_feifeidazhan= null
rect gg_rct_gui1= null
rect gg_rct_gui2= null
rect gg_rct_Circle38= null
rect gg_rct_Circle18= null
rect gg_rct_15dong= null
rect gg_rct_20dong= null
rect gg_rct_30dong= null
rect gg_rct_Circle19= null
rect gg_rct_Circle39= null
sound gg_snd_Credits= null
sound gg_snd_PH1= null
sound gg_snd_SoulGem= null
sound gg_snd_WarlockAppears= null
sound gg_snd_PigDeath= null
sound gg_snd_SealDeath= null
sound gg_snd_SheepDeath= null
sound gg_snd_BuildingDeathLargeHuman= null
sound gg_snd_HeroicVictory= null
trigger gg_trg_test= null
trigger gg_trg_MultitudePKRequestgoufei= null
trigger gg_trg_MultitudePKDialogBB= null
trigger gg_trg_MPKDialogAction01BB= null
trigger gg_trg_MPKDialogAction02BB= null
trigger gg_trg_MPKDialogAction03BB= null
trigger gg_trg_MPKDialogAction04BB= null
trigger gg_trg_MPKDialogAction05BB= null
trigger gg_trg_MPKDialogAction07BB= null
trigger gg_trg_MPKDialogAction08BB= null
trigger gg_trg_MPKDialogAction09BB= null
trigger gg_trg_MPKDialogAction10BB= null
trigger gg_trg_MPKDialogAction11BB= null
trigger gg_trg_MPKDialogTimeOutBB= null
trigger gg_trg_MPKDialogStatisticBB= null
trigger gg_trg_MPKStatisticTimeOutBB= null
trigger gg_trg_MPKHeroEntersPKAreaBB= null
trigger gg_trg_qiangzhizantingyingxiong= null
trigger gg_trg_MPKTurnOffTriggerBB= null
trigger gg_trg_MPKTurnOnTriggerBB= null
trigger gg_trg_quyugoufei= null
trigger gg_trg_quyugoufei2= null
trigger gg_trg_MPKLIGHTVictoryBB= null
trigger gg_trg_MPKdarkVictoryBB= null
trigger gg_trg_MPKLightHeroDieBB= null
trigger gg_trg_MPKDarkHeroDieBB= null
trigger gg_trg_feifei1= null
trigger gg_trg_feifei2= null
trigger gg_trg_feifei3= null
trigger gg_trg_feifei4= null
trigger gg_trg_feifei5= null
trigger gg_trg_feifei7= null
trigger gg_trg_feifei8= null
trigger gg_trg_feifei9= null
trigger gg_trg_feifei10= null
trigger gg_trg_feifei11= null
trigger gg_trg_feifeiceshi= null
trigger gg_trg_JTtisheng= null
trigger gg_trg_JTxiajiang= null
trigger gg_trg_HeroSelect01= null
trigger gg_trg_HeroSelect02= null
trigger gg_trg_HeroSelect03= null
trigger gg_trg_HeroSelect04= null
trigger gg_trg_HeroSelect05= null
trigger gg_trg_HeroSelect06= null
trigger gg_trg_HeroSelect07= null
trigger gg_trg_HeroSelect08= null
trigger gg_trg_HeroSelect09= null
trigger gg_trg_HeroSelect10= null
trigger gg_trg_HeroSelect11= null
trigger gg_trg_HeroSelect12= null
trigger gg_trg_HeroSelect13= null
trigger gg_trg_HeroSelect14= null
trigger gg_trg_HeroSelect15= null
trigger gg_trg_HeroSelect16= null
trigger gg_trg_HeroSelect17= null
trigger gg_trg_HeroSelect18= null
trigger gg_trg_HeroSelect19= null
trigger gg_trg_HeroSelect21= null
trigger gg_trg_HeroSelect22= null
trigger gg_trg_HeroSelect23= null
trigger gg_trg_HeroSelect24= null
trigger gg_trg_HeroSelect25= null
trigger gg_trg_HeroSelect26= null
trigger gg_trg_HeroSelect27= null
trigger gg_trg_HeroSelect28= null
trigger gg_trg_HeroSelect29= null
trigger gg_trg_HeroSelect30= null
trigger gg_trg_HeroSelect31= null
trigger gg_trg_HeroSelect32= null
trigger gg_trg_HeroSelect33= null
trigger gg_trg_HeroSelect34= null
trigger gg_trg_HeroSelect35= null
trigger gg_trg_HeroSelect36= null
trigger gg_trg_HeroSelect37= null
trigger gg_trg_HeroSelect38= null
trigger gg_trg_HeroSelect39= null
trigger gg_trg_HeroSelect41= null
trigger gg_trg_HeroSelect42= null
trigger gg_trg_HeroSelect43= null
trigger gg_trg_HeroSelect44= null
trigger gg_trg_HeroRevive= null
trigger gg_trg_HeroReviveTavern= null
trigger gg_trg_HeroRevive_90= null
trigger gg_trg_HeroReviveTimer01= null
trigger gg_trg_HeroReviveTimer02= null
trigger gg_trg_HeroReviveTimer03= null
trigger gg_trg_HeroReviveTimer04= null
trigger gg_trg_HeroReviveTimer05= null
trigger gg_trg_HeroReviveTimer06= null
trigger gg_trg_HeroReviveTimer07= null
trigger gg_trg_HeroReviveTimer08= null
trigger gg_trg_HeroReviveTimer09= null
trigger gg_trg_HeroReviveTimer10= null
trigger gg_trg_HeroReviveTimer11= null
trigger gg_trg_HeroReviveTimer12= null
trigger gg_trg_HeroReviveTimer13= null
trigger gg_trg_HeroReviveTimer14= null
trigger gg_trg_HeroReviveTimer15= null
trigger gg_trg_HeroReviveTimer16= null
trigger gg_trg_HeroReviveTimer17= null
trigger gg_trg_HeroReviveTimer18= null
trigger gg_trg_HeroReviveTimer19= null
trigger gg_trg_HeroReviveTimer21= null
trigger gg_trg_HeroReviveTimer22= null
trigger gg_trg_HeroReviveTimer23= null
trigger gg_trg_HeroReviveTimer24= null
trigger gg_trg_HeroReviveTimer25= null
trigger gg_trg_HeroReviveTimer26= null
trigger gg_trg_HeroReviveTimer27= null
trigger gg_trg_HeroReviveTimer28= null
trigger gg_trg_HeroReviveTimer29= null
trigger gg_trg_HeroReviveTimer30= null
trigger gg_trg_HeroReviveTimer31= null
trigger gg_trg_HeroReviveTimer32= null
trigger gg_trg_HeroReviveTimer33= null
trigger gg_trg_HeroReviveTimer34= null
trigger gg_trg_HeroReviveTimer35= null
trigger gg_trg_HeroReviveTimer36= null
trigger gg_trg_HeroReviveTimer37= null
trigger gg_trg_HeroReviveTimer38= null
trigger gg_trg_HeroReviveTimer39= null
trigger gg_trg_HeroReviveTimer41= null
trigger gg_trg_HeroReviveTimer42= null
trigger gg_trg_SinglePKRequest= null
trigger gg_trg_SPKDialogAction= null
trigger gg_trg_SPKDialogTimeOut= null
trigger gg_trg_SPKHeroEnterPKArea= null
trigger gg_trg_SPKTimerExpired= null
trigger gg_trg_SPKVictory= null
trigger gg_trg_SPKHeroEscaper= null
trigger gg_trg_SinglePKBet= null
trigger gg_trg_SPKBetTimeOut= null
trigger gg_trg_SPKBetAction01= null
trigger gg_trg_SPKBetAction02= null
trigger gg_trg_SPKBetAction03= null
trigger gg_trg_SPKBetAction04= null
trigger gg_trg_SPKBetAction05= null
trigger gg_trg_SPKBetAction07= null
trigger gg_trg_SPKBetAction08= null
trigger gg_trg_SPKBetAction09= null
trigger gg_trg_SPKBetAction10= null
trigger gg_trg_SPKBetAction11= null
trigger gg_trg_SPKBetIndemnity= null
trigger gg_trg_MultitudePKRequest= null
trigger gg_trg_MultitudePKDialog= null
trigger gg_trg_MPKDialogAction01= null
trigger gg_trg_MPKDialogAction02= null
trigger gg_trg_MPKDialogAction03= null
trigger gg_trg_MPKDialogAction04= null
trigger gg_trg_MPKDialogAction05= null
trigger gg_trg_MPKDialogAction07= null
trigger gg_trg_MPKDialogAction08= null
trigger gg_trg_MPKDialogAction09= null
trigger gg_trg_MPKDialogAction10= null
trigger gg_trg_MPKDialogAction11= null
trigger gg_trg_MPKDialogTimeOut= null
trigger gg_trg_MPKDialogStatistic= null
trigger gg_trg_MPKStatisticTimeOut= null
trigger gg_trg_MPKHeroEntersPKArea= null
trigger gg_trg_qiangzhiquwudi= null
trigger gg_trg_tuanzhanshengyushijian= null
trigger gg_trg_MPKHeroEntersPlus= null
trigger gg_trg_MPKHeroEscaper= null
trigger gg_trg_xiongmao= null
trigger gg_trg_MPKHeroEscaperdanwei= null
trigger gg_trg_MPKReviveHero= null
trigger gg_trg_MPKTurnOffTrigger= null
trigger gg_trg_MPKTurnOnTrigger= null
trigger gg_trg_MPKLightHeroDie= null
trigger gg_trg_MPKDarkHeroDie= null
trigger gg_trg_MPKLightVictory= null
trigger gg_trg_MPKDarkVictory= null
trigger gg_trg_HeroRevive_jingjichang= null
trigger gg_trg_HeroReviveTimer01_jingji= null
trigger gg_trg_HeroReviveTimer02_jingji= null
trigger gg_trg_HeroReviveTimer03_jingji= null
trigger gg_trg_HeroReviveTimer04_jingji= null
trigger gg_trg_HeroReviveTimer05_jingji= null
trigger gg_trg_HeroReviveTimer06_jingji= null
trigger gg_trg_HeroReviveTimer07_jingji= null
trigger gg_trg_HeroReviveTimer08_jingji= null
trigger gg_trg_HeroReviveTimer09_jingji= null
trigger gg_trg_HeroReviveTimer10_jingji= null
trigger gg_trg_HeroReviveTimer11_jingji= null
trigger gg_trg_HeroReviveTimer12_jingji= null
trigger gg_trg_HeroReviveTimer13_jingji= null
trigger gg_trg_HeroReviveTimer14_jingji= null
trigger gg_trg_HeroReviveTimer15_jingji= null
trigger gg_trg_HeroReviveTimer16_jingji= null
trigger gg_trg_HeroReviveTimer17_jingji= null
trigger gg_trg_HeroReviveTimer18_jingji= null
trigger gg_trg_HeroReviveTimer19_jingji= null
trigger gg_trg_HeroReviveTimer21_jingji= null
trigger gg_trg_HeroReviveTimer22_jingji= null
trigger gg_trg_HeroReviveTimer23_jingji= null
trigger gg_trg_HeroReviveTimer24_jingji= null
trigger gg_trg_HeroReviveTimer25_jingji= null
trigger gg_trg_HeroReviveTimer26_jingji= null
trigger gg_trg_HeroReviveTimer27_jingji= null
trigger gg_trg_HeroReviveTimer28_jingji= null
trigger gg_trg_HeroReviveTimer29_jingji= null
trigger gg_trg_HeroReviveTimer30_jingji= null
trigger gg_trg_HeroReviveTimer31_jingji= null
trigger gg_trg_HeroReviveTimer32_jingji= null
trigger gg_trg_HeroReviveTimer33_jingji= null
trigger gg_trg_HeroReviveTimer34_jingji= null
trigger gg_trg_HeroReviveTimer35_jingji= null
trigger gg_trg_HeroReviveTimer36_jingji= null
trigger gg_trg_HeroReviveTimer37_jingji= null
trigger gg_trg_HeroReviveTimer38_jingji= null
trigger gg_trg_HeroReviveTimer39_jingji= null
trigger gg_trg_LightAttack= null
trigger gg_trg_DarkAttack= null
trigger gg_trg_AttackLightCastle= null
trigger gg_trg_AttackDarkCastle= null
trigger gg_trg_Wavefor53Sec= null
trigger gg_trg_Wavefor63Sec= null
trigger gg_trg_Wavefor73Sec= null
trigger gg_trg_Wavefor83Sec= null
trigger gg_trg_Wavefor123Sec= null
trigger gg_trg_Wavefor133Sec= null
trigger gg_trg_Wavefor143Sec= null
trigger gg_trg_Wavefor153Sec= null
trigger gg_trg_Wavefor200Sec= null
trigger gg_trg_Wavefor280Sec= null
trigger gg_trg_Wavefor340Sec= null
trigger gg_trg_Wavefor550Sec= null
trigger gg_trg_Wavefor380Sec= null
trigger gg_trg_Wavefor570Sec= null
trigger gg_trg_Wavefor480Sec= null
trigger gg_trg_Wavefor680Sec= null
trigger gg_trg_Wavefor780Sec= null
trigger gg_trg_Wavefor880Sec= null
trigger gg_trg_Wavefor1150Sec= null
trigger gg_trg_Upgradefor900Sec= null
trigger gg_trg_TreeRefresh= null
trigger gg_trg_TimeLeft= null
trigger gg_trg_AION= null
trigger gg_trg_AIOFF= null
trigger gg_trg_AIAttack= null
trigger gg_trg_AIRevive= null
trigger gg_trg_AIPowerUp= null
trigger gg_trg_AISet= null
trigger gg_trg_AIHeroLevelUp= null
trigger gg_trg_AIPlayLeft= null
trigger gg_trg_ToBeOB= null
trigger gg_trg_Test= null
trigger gg_trg_Lens= null
trigger gg_trg_Learn= null
trigger gg_trg_ReturnHero= null
trigger gg_trg_Disablehelp= null
trigger gg_trg_ClearText= null
trigger gg_trg_SwapHero= null
trigger gg_trg_lianmengjuanzhou= null
trigger gg_trg_lianmengjiesan= null
trigger gg_trg_ToAntherRegion= null
trigger gg_trg_Rank= null
trigger gg_trg_RankAction= null
trigger gg_trg_MultiPanel= null
trigger gg_trg_xinpaihangbang= null
trigger gg_trg_ClearFoeverSlien= null
trigger gg_trg_jianshengxiao= null
trigger gg_trg_ChangeOwner= null
trigger gg_trg_BuySinglePK= null
trigger gg_trg_BuyPowerUp= null
trigger gg_trg_BuyAILevelUp= null
trigger gg_trg_BuyHeroNew= null
trigger gg_trg_BuySentryWard= null
trigger gg_trg_BuyCCRCCC= null
trigger gg_trg_BuyMer= null
trigger gg_trg_BuyTPLVLup= null
trigger gg_trg_BuyRevive= null
trigger gg_trg_UseItemsNum= null
trigger gg_trg_Discarded= null
trigger gg_trg_Herolvlup= null
trigger gg_trg_HeroLearnSkill= null
trigger gg_trg_BuildingDestroyed= null
trigger gg_trg_KillHeroBounty= null
trigger gg_trg_FF15= null
trigger gg_trg_FF20= null
trigger gg_trg_FF30= null
trigger gg_trg_FF40= null
trigger gg_trg_LightVictory= null
trigger gg_trg_LightVictory2= null
trigger gg_trg_DarkVictory= null
trigger gg_trg_DarkVictory2= null
trigger gg_trg_NoShareUnits= null
trigger gg_trg_NoShareItems= null
trigger gg_trg_MoneySplit= null
trigger gg_trg_Notification= null
trigger gg_trg_SellHero= null
trigger gg_trg_Check= null
trigger gg_trg_Destiny= null
trigger gg_trg_DestinyAction= null
trigger gg_trg_EntersPKArea= null
trigger gg_trg_EntersPKAreaAAA= null
trigger gg_trg_EntersZone= null
trigger gg_trg_feifeiquyu= null
trigger gg_trg_RandomHeroSelectMode= null
trigger gg_trg_GetRandomNumberLight= null
trigger gg_trg_GetRandomNumberDark= null
trigger gg_trg_SkeletonCaveIn= null
trigger gg_trg_SkeletonCaveOut= null
trigger gg_trg_shenmidongxue= null
trigger gg_trg_shenmidonxue2= null
trigger gg_trg_StoneCaveIn= null
trigger gg_trg_StoneCaveOut= null
trigger gg_trg_MonsterCaveIn= null
trigger gg_trg_MonsterCaveOut= null
trigger gg_trg_WolfCaveIn= null
trigger gg_trg_WolfCaveOut= null
trigger gg_trg_HeroCaveIn= null
trigger gg_trg_HeroCaveOut= null
trigger gg_trg_maidiwenjiangli= null
trigger gg_trg_wumingdongjiangli= null
trigger gg_trg_kuloudongjiangli= null
trigger gg_trg_shitoudongjiangli= null
trigger gg_trg_30dongjiangli= null
trigger gg_trg_40dongjiangli= null
trigger gg_trg_wumingdonghuifu= null
trigger gg_trg_15dong= null
trigger gg_trg_20dong= null
trigger gg_trg_30dong= null
trigger gg_trg_40dong= null
trigger gg_trg_maidiwen1= null
trigger gg_trg_Share= null
trigger gg_trg_youhun1= null
trigger gg_trg_diyuemo= null
trigger gg_trg_diyuchuansong= null
trigger gg_trg_yanlonglieyan= null
trigger gg_trg_qianliyixian= null
trigger gg_trg_mengquanhupao= null
trigger gg_trg_mengquanjishi= null
trigger gg_trg_mengquansiwang= null
trigger gg_trg_dangtouyijian= null
trigger gg_trg_linghunguisu= null
trigger gg_trg_beizhuangzai= null
trigger gg_trg_goumaiwupin= null
trigger gg_trg_Shuidun_Shuizhenbi= null
trigger gg_trg_chaoshuisiyi= null
trigger gg_trg_SDXX= null
trigger gg_trg_Renshu_5W= null
trigger gg_trg_quntijitui= null
trigger gg_trg_shijian= null
trigger gg_trg_Shadowstikeb_5= null
trigger gg_trg_duochongxue_mingjie= null
trigger gg_trg_Shadowstikeb_3= null
trigger gg_trg_Shadowstikeb_4= null
trigger gg_trg_A1= null
trigger gg_trg_Mudun_Shujie_1= null
trigger gg_trg_Mudun_Shujie_2= null
trigger gg_trg_CHONGFENGtk= null
trigger gg_trg_____________u= null
trigger gg_trg____________________u= null
trigger gg_trg________________u= null
trigger gg_trg_CoustomTrigger= null
trigger gg_trg_NewTrigger_001= null
trigger gg_trg_CoustomTrigger_______u= null
trigger gg_trg__________u= null
trigger gg_trg_CHONGFENG= null
trigger gg_trg_chongfengjieshu= null
trigger gg_trg_chongfengjieshu_______u= null
trigger gg_trg_tiaoyueyiji= null
trigger gg_trg_tiaoyuejieshu= null
trigger gg_trg_tiaoyuejieshu_______u= null
trigger gg_trg_shilianji= null
trigger gg_trg_chongcifengsha= null
trigger gg_trg_zyzs3= null
trigger gg_trg_zyzs2= null
trigger gg_trg_zyzs= null
trigger gg_trg_Shadowstikeb_2_______u= null
trigger gg_trg_MoreArrowEffectguangxiasan= null
trigger gg_trg_YXHW01= null
trigger gg_trg_lqelt= null
trigger gg_trg_lq2lt= null
trigger gg_trg_longjuanjufeng= null
trigger gg_trg_longjuanjufeng2= null
trigger gg_trg_longjuanjufeng2_______u= null
trigger gg_trg_Shadowstikeb_2= null
trigger gg_trg________________________2= null
trigger gg_trg________________________2_______u= null
trigger gg_trg________________________2______________u= null
trigger gg_trg_Sanitys_Eclipse= null
trigger gg_trg_Ravage= null
trigger gg_trg_Hong_R1= null
trigger gg_trg_Hong_R2= null
trigger gg_trg_Hong_R3= null
trigger gg_trg_Stand_X= null
trigger gg_trg_Go_X= null
trigger gg_trg_siwangqishi_______u= null
trigger gg_trg_hdsd= null
trigger gg_trg_LimitAttack= null
trigger gg_trg_SHENSHENGZhIGUANG= null
trigger gg_trg_LightningRoar= null
trigger gg_trg_LightningRoarbeifen= null
trigger gg_trg_Divineshield= null
trigger gg_trg_MagicShieldA= null
trigger gg_trg_MagicShieldB= null
trigger gg_trg_Thunderbolt= null
trigger gg_trg_Thunderclap= null
trigger gg_trg_ExplodeBody= null
trigger gg_trg_Avatar= null
trigger gg_trg_shanqiuzhiwang= null
trigger gg_trg_FlameStrike= null
trigger gg_trg_CycloneCasting= null
trigger gg_trg_CycloneEnd= null
trigger gg_trg_Entang= null
trigger gg_trg_jiuchanxugen= null
trigger gg_trg_Lightning= null
trigger gg_trg_MoonLight= null
trigger gg_trg_MoonLight____u= null
trigger gg_trg_Moonlight2= null
trigger gg_trg_Shadowstikeb_1= null
trigger gg_trg_Demon= null
trigger gg_trg_Vortex= null
trigger gg_trg_Immolation= null
trigger gg_trg_Shadowstikeb= null
trigger gg_trg_Shadowstrike= null
trigger gg_trg_FanofKnives= null
trigger gg_trg_ExplodeCorpse= null
trigger gg_trg_A= null
trigger gg_trg_B= null
trigger gg_trg_B_______u= null
trigger gg_trg_ManyArrow= null
trigger gg_trg_shengqishi= null
trigger gg_trg_ChuteSpell= null
trigger gg_trg_WaterChain= null
trigger gg_trg_Elements= null
trigger gg_trg_chazhuangshandian= null
trigger gg_trg_najia30= null
trigger gg_trg_najia30yun= null
trigger gg_trg_najia30jieshu= null
trigger gg_trg_najia30TZ= null
trigger gg_trg_najia30shui1= null
trigger gg_trg_NAJIA30jiaxue= null
trigger gg_trg_NAJIA30wuli= null
trigger gg_trg_NAJIA30shandian= null
trigger gg_trg_najiafeng= null
trigger gg_trg_najiafeng2= null
trigger gg_trg_chazhuangshandian2= null
trigger gg_trg_Laser= null
trigger gg_trg_N545= null
trigger gg_trg_liejieshexian1= null
trigger gg_trg_liejieshexian2= null
trigger gg_trg_liejieshexian3= null
trigger gg_trg_fangzibaozha= null
trigger gg_trg_Image= null
trigger gg_trg_Second_Image= null
trigger gg_trg_Whirlwind= null
trigger gg_trg_WhirlwindBuff= null
trigger gg_trg_jiansheng30= null
trigger gg_trg_jianshenggua= null
trigger gg_trg_JIANSHENGXUEXI= null
trigger gg_trg_jiansheng302= null
trigger gg_trg_Earthquakejiansheng= null
trigger gg_trg_Shadowstikeb_6= null
trigger gg_trg_Earthquake= null
trigger gg_trg_bingmoquanJASS= null
trigger gg_trg_UrusBump= null
trigger gg_trg_zhanzhengjianta= null
trigger gg_trg_BumpDistance= null
trigger gg_trg__________A= null
trigger gg_trg__________B= null
trigger gg_trg_niudun= null
trigger gg_trg_niudunbeidong= null
trigger gg_trg_niudunbeidong_______u= null
trigger gg_trg_niudun1= null
trigger gg_trg_niudun2= null
trigger gg_trg_niudun3= null
trigger gg_trg_niudun4= null
trigger gg_trg_niudungongji= null
trigger gg_trg_niudungongji2= null
trigger gg_trg__________A_______u= null
trigger gg_trg__________B_______u= null
trigger gg_trg_Hex= null
trigger gg_trg_yaoshu2= null
trigger gg_trg_zhiliao= null
trigger gg_trg_VoodooCast= null
trigger gg_trg_VoodooEnd= null
trigger gg_trg_siwangqishi= null
trigger gg_trg_DarkAgesCast= null
trigger gg_trg_siqijineng= null
trigger gg_trg_Frostnova= null
trigger gg_trg_ElementFlutter= null
trigger gg_trg_ElementFlutterEnd= null
trigger gg_trg_OrbCasting= null
trigger gg_trg_OrbEffect= null
trigger gg_trg_Distancejudgment= null
trigger gg_trg_Orbfinish= null
trigger gg_trg_wuyao15= null
trigger gg_trg_wuyao15jieshu= null
trigger gg_trg_BeetlesAttack= null
trigger gg_trg_xq= null
trigger gg_trg_StompEffect= null
trigger gg_trg_StompSound= null
trigger gg_trg_Ensnare= null
trigger gg_trg_BlackArrow= null
trigger gg_trg_BlackArrowshen= null
trigger gg_trg_BlackArrowaigewen= null
trigger gg_trg_MoreDoom= null
trigger gg_trg_MoreDRAB= null
trigger gg_trg_MoreArrowEffect= null
trigger gg_trg_LightningArrowAction= null
trigger gg_trg_MoreDRABand15End= null
trigger gg_trg_Windbreaker= null
trigger gg_trg_yihunfeijian= null
trigger gg_trg_yihunzhuanhuan= null
trigger gg_trg_yihunzhuanhuan2= null
trigger gg_trg_dijingdilei= null
trigger gg_trg_yihuajiemu= null
trigger gg_trg_yongbingxitong= null
trigger gg_trg_yongbingfuhuo= null
trigger gg_trg_longxiedai= null
trigger gg_trg_longxiedai2= null
trigger gg_trg_longxiedai3= null
trigger gg_trg_leishenfuti= null
trigger gg_trg_WUYUN= null
trigger gg_trg_WUYUN_xin= null
trigger gg_trg_wuyunxinxin= null
trigger gg_trg_WUYUN2= null
trigger gg_trg_binghuoshuangjian= null
trigger gg_trg_binghuoshuangjian2= null
trigger gg_trg_Shadowstikeb_7= null
trigger gg_trg_longqishi30= null
trigger gg_trg_longqishi30NINGJING= null
trigger gg_trg_LONGQISHISHANCHU= null
trigger gg_trg_LONGQISHIFANTAN= null
trigger gg_trg_ManaBurn= null
trigger gg_trg_heianzhishen= null
trigger gg_trg_HotPain= null
trigger gg_trg_DarkPortalEffact= null
trigger gg_trg_DarkPortalDamage= null
trigger gg_trg_shangdiqifu= null
trigger gg_trg_shangdiqifu1= null
trigger gg_trg_shangdiqifu2= null
trigger gg_trg_DuskAcction= null
trigger gg_trg_DarkLight= null
trigger gg_trg_DuskTimer= null
trigger gg_trg_Divine_Cast= null
trigger gg_trg_Divine_Action= null
trigger gg_trg_Divine_End= null
trigger gg_trg_SoulBurn= null
trigger gg_trg_LHRS= null
trigger gg_trg_RouletteCast= null
trigger gg_trg_RouletteTargetPlus= null
trigger gg_trg_RouletteTargetMove= null
trigger gg_trg_RouletteTargetHigh= null
trigger gg_trg_RouletteTargetDead= null
trigger gg_trg_RouletteEnd= null
trigger gg_trg_yanmie= null
trigger gg_trg_VolcanoCast= null
trigger gg_trg_VolcanoEnd= null
trigger gg_trg_LightFireAction= null
trigger gg_trg_QuakeEffect= null
trigger gg_trg_LightEffect= null
trigger gg_trg_FireEffect= null
trigger gg_trg_LastExplosions= null
trigger gg_trg_LightFireEnd= null
trigger gg_trg_Windwalk01= null
trigger gg_trg_Windwalk02= null
trigger gg_trg_Windwalk03= null
trigger gg_trg_Windwalk04= null
trigger gg_trg_JumpCast= null
trigger gg_trg_JumpEffect= null
trigger gg_trg_JumpOrderAttack= null
trigger gg_trg_JumpStartAttack= null
trigger gg_trg_JumpFinish= null
trigger gg_trg_JumpCancel= null
trigger gg_trg_DeathKill1= null
trigger gg_trg_DeathKill2= null
trigger gg_trg_DeathKill3= null
trigger gg_trg_FlameStrike_______u= null
trigger gg_trg_Roar= null
trigger gg_trg_xiong= null
trigger gg_trg_RoarMove= null
trigger gg_trg_Beast= null
trigger gg_trg_FalseDeath= null
trigger gg_trg_How= null
trigger gg_trg_qunshouchongji= null
trigger gg_trg_SkillEnd= null
trigger gg_trg_SkillStart= null
trigger gg_trg_Lightning_Storm= null
trigger gg_trg_jinglingpaoxiao= null
trigger gg_trg_shandianfengbao= null
trigger gg_trg_hailongjuanfeng= null
trigger gg_trg_qidaoyishi= null
trigger gg_trg_bingfengzhiqiu= null
trigger gg_trg_zhirehuanghun= null
trigger gg_trg_TranquilityInvulnerability= null
trigger gg_trg_bianshen_emo= null
trigger gg_trg_StarfallInvulnerability= null
trigger gg_trg_najia30wudi= null
trigger gg_trg_dafa30= null
trigger gg_trg_lqs30= null
trigger gg_trg_dangtouyijianwudi= null
trigger gg_trg_YIXING2= null
trigger gg_trg_DarkAttackInvulnerability= null
trigger gg_trg_xiaoY30= null
trigger gg_trg_JASS15= null
trigger gg_trg_JASS1501= null
trigger gg_trg_xiaoY301= null
trigger gg_trg_MapInitialization= null
trigger gg_trg_StartGame= null
trigger gg_trg_NextPlayer= null
trigger gg_trg_Choose= null
trigger gg_trg_ChooseMatchMode= null
trigger gg_trg_ChooseMatchMode_______u= null
trigger gg_trg_xianzhichemmo= null
trigger gg_trg_ChooseHeroMode= null
trigger gg_trg_ChoosePickMode= null
trigger gg_trg_ChooseDeathMode= null
trigger gg_trg_CampKeep= null
trigger gg_trg_ExpRateLight= null
trigger gg_trg_ExpRateDark= null
trigger gg_trg_DMHeroRevive= null
trigger gg_trg_DMLightVictory= null
trigger gg_trg_DMDarkVictory= null
trigger gg_trg_yingxiong100= null
trigger gg_trg_yingxiong50= null
trigger gg_trg_quanbulianmeng= null
trigger gg_trg_DeathMode= null
trigger gg_trg_siwangmoshi= null
trigger gg_trg_siwangfanhei= null
trigger gg_trg_zhengchangmoshi= null
trigger gg_trg_yingxiongmoshi= null
trigger gg_trg_GameBeging_______u= null
trigger gg_trg_swchaxun= null
trigger gg_trg_jichutiaojian= null
trigger gg_trg_jiarulianmeng= null
trigger gg_trg_guangmingjiemeng= null
trigger gg_trg_heiantongmeng= null
trigger gg_trg_lianmengdaqishanchushijian= null
trigger gg_trg_wudiyingxiong= null
trigger gg_trg_wudiyingxiong_______u= null
trigger gg_trg_daojishishanchudaqi= null
trigger gg_trg_Morse= null
trigger gg_trg_HideModeA= null
trigger gg_trg_HideModeB= null
trigger gg_trg_GameBeging= null
trigger gg_trg_Game45SecLater= null
trigger gg_trg_HeroSelect01_______u= null
trigger gg_trg_HeroSelect02_______u= null
trigger gg_trg_HeroSelect03_______u= null
trigger gg_trg_HeroSelect04_______u= null
trigger gg_trg_HeroSelect05_______u= null
trigger gg_trg_HeroSelect06_______u= null
trigger gg_trg_HeroSelect07_______u= null
trigger gg_trg_HeroSelect08_______u= null
trigger gg_trg_HeroSelect09_______u= null
trigger gg_trg_HeroSelect10_______u= null
trigger gg_trg_HeroSelect11_______u= null
trigger gg_trg_HeroSelect12_______u= null
trigger gg_trg_HeroSelect13_______u= null
trigger gg_trg_HeroSelect14_______u= null
trigger gg_trg_HeroSelect15_______u= null
trigger gg_trg_HeroSelect16_______u= null
trigger gg_trg_HeroSelect17_______u= null
trigger gg_trg_HeroSelect18_______u= null
trigger gg_trg_HeroSelect19_______u= null
trigger gg_trg_HeroSelect21_______u= null
trigger gg_trg_HeroSelect22_______u= null
trigger gg_trg_HeroSelect23_______u= null
trigger gg_trg_HeroSelect24_______u= null
trigger gg_trg_HeroSelect25_______u= null
trigger gg_trg_HeroSelect26_______u= null
trigger gg_trg_HeroSelect27_______u= null
trigger gg_trg_HeroSelect28_______u= null
trigger gg_trg_HeroSelect29_______u= null
trigger gg_trg_HeroSelect30_______u= null
trigger gg_trg_HeroSelect31_______u= null
trigger gg_trg_HeroSelect32_______u= null
trigger gg_trg_HeroSelect33_______u= null
trigger gg_trg_HeroSelect34_______u= null
trigger gg_trg_HeroSelect35_______u= null
trigger gg_trg_HeroSelect36_______u= null
trigger gg_trg_HeroSelect37_______u= null
trigger gg_trg_HeroSelect38_______u= null
trigger gg_trg_HeroSelect39_______u= null
trigger gg_trg_KillHeroBounty_______u= null
trigger gg_trg_HeroRevive_______u= null
trigger gg_trg_Herogeren01= null
trigger gg_trg_Herogeren02= null
trigger gg_trg_Herogeren03= null
trigger gg_trg_Herogeren04= null
trigger gg_trg_Herogeren05= null
trigger gg_trg_Herogeren06= null
trigger gg_trg_Herogeren07= null
trigger gg_trg_Herogeren08= null
trigger gg_trg_Herogeren09= null
trigger gg_trg_Herogeren10= null
trigger gg_trg_Herogeren11= null
trigger gg_trg_Herogeren12= null
trigger gg_trg_Herogeren13= null
trigger gg_trg_Herogeren14= null
trigger gg_trg_Herogeren15= null
trigger gg_trg_Herogeren16= null
trigger gg_trg_Herogeren17= null
trigger gg_trg_Herogeren18= null
trigger gg_trg_Herogeren19= null
trigger gg_trg_Herogeren21= null
trigger gg_trg_Herogeren22= null
trigger gg_trg_Herogeren23= null
trigger gg_trg_Herogeren24= null
trigger gg_trg_Herogeren25= null
trigger gg_trg_Herogeren26= null
trigger gg_trg_Herogeren27= null
trigger gg_trg_Herogeren28= null
trigger gg_trg_Herogeren29= null
trigger gg_trg_Herogeren30= null
trigger gg_trg_Herogeren31= null
trigger gg_trg_Herogeren32= null
trigger gg_trg_Herogeren33= null
trigger gg_trg_Herogeren34= null
trigger gg_trg_Herogeren35= null
trigger gg_trg_Herogeren36= null
trigger gg_trg_Herogeren37= null
trigger gg_trg_Herogeren38= null
trigger gg_trg_Herogeren39= null
trigger gg_trg_xc= null
trigger gg_trg_xc_2= null
trigger gg_trg_CD= null
trigger gg_trg_NOCD= null
trigger gg_trg_NOlan= null
trigger gg_trg_xc_______u= null
trigger gg_trg_xc_2_______u= null
trigger gg_trg_tuanzhanA= null
trigger gg_trg_tuanzhanB= null
trigger gg_trg_tuanzhanAA= null
trigger gg_trg_tuanzhanBB= null
trigger gg_trg_xuechifangwudi1= null
trigger gg_trg_xuechifangwudi2= null
trigger gg_trg_guangmangquanzhang= null
trigger gg_trg_guangmangquanzhang2= null
trigger gg_trg_shanchude= null
trigger gg_trg_MultitudePKRequestAAA= null
trigger gg_trg_MultitudePKDialogAAA= null
trigger gg_trg_MPKDialogAction01_______u= null
trigger gg_trg_MPKDialogAction02_______u= null
trigger gg_trg_MPKDialogAction03_______u= null
trigger gg_trg_MPKDialogAction04_______u= null
trigger gg_trg_MPKDialogAction05_______u= null
trigger gg_trg_MPKDialogAction07_______u= null
trigger gg_trg_MPKDialogAction08_______u= null
trigger gg_trg_MPKDialogAction09_______u= null
trigger gg_trg_MPKDialogAction10_______u= null
trigger gg_trg_MPKDialogAction11_______u= null
trigger gg_trg_MPKDialogStatisticAAA= null
trigger gg_trg_MPKDialogTimeOutAAA= null
trigger gg_trg_MPKStatisticTimeOutAAA= null
trigger gg_trg_MPKHeroEntersPKAreaAAA= null
trigger gg_trg_qiangzhiquwudi2= null
trigger gg_trg_MPKHeroEscaperAAA= null
trigger gg_trg_xiongmao_______u= null
trigger gg_trg_MPKHeroEscaperAAAdanwei= null
trigger gg_trg_MPKReviveHeroAAA= null
trigger gg_trg_MPKTurnOffTriggerAAA= null
trigger gg_trg_MPKHeroEntersPlusAAA= null
trigger gg_trg_MPKLightVictoryAAA= null
trigger gg_trg_shijianjishiqi= null
trigger gg_trg_daojishishanchu= null
trigger gg_trg_MPKTurnOnTriggerAAA= null
trigger gg_trg_HeroReviveAAA= null
trigger gg_trg_HeroReviveTimer01_______u= null
trigger gg_trg_HeroReviveTimer02_______u= null
trigger gg_trg_HeroReviveTimer03_______u= null
trigger gg_trg_HeroReviveTimer04_______u= null
trigger gg_trg_HeroReviveTimer05_______u= null
trigger gg_trg_HeroReviveTimer06_______u= null
trigger gg_trg_HeroReviveTimer07_______u= null
trigger gg_trg_HeroReviveTimer08_______u= null
trigger gg_trg_HeroReviveTimer09_______u= null
trigger gg_trg_HeroReviveTimer10_______u= null
trigger gg_trg_HeroReviveTimer11_______u= null
trigger gg_trg_HeroReviveTimer12_______u= null
trigger gg_trg_HeroReviveTimer13_______u= null
trigger gg_trg_HeroReviveTimer14_______u= null
trigger gg_trg_HeroReviveTimer15_______u= null
trigger gg_trg_HeroReviveTimer16_______u= null
trigger gg_trg_HeroReviveTimer17_______u= null
trigger gg_trg_HeroReviveTimer18_______u= null
trigger gg_trg_HeroReviveTimer19_______u= null
trigger gg_trg_HeroReviveTimer21_______u= null
trigger gg_trg_HeroReviveTimer22_______u= null
trigger gg_trg_HeroReviveTimer23_______u= null
trigger gg_trg_HeroReviveTimer24_______u= null
trigger gg_trg_HeroReviveTimer25_______u= null
trigger gg_trg_HeroReviveTimer26_______u= null
trigger gg_trg_HeroReviveTimer27_______u= null
trigger gg_trg_HeroReviveTimer28_______u= null
trigger gg_trg_HeroReviveTimer29_______u= null
trigger gg_trg_HeroReviveTimer30_______u= null
trigger gg_trg_HeroReviveTimer31_______u= null
trigger gg_trg_HeroReviveTimer32_______u= null
trigger gg_trg_HeroReviveTimer33_______u= null
trigger gg_trg_HeroReviveTimer34_______u= null
trigger gg_trg_HeroReviveTimer35_______u= null
trigger gg_trg_HeroReviveTimer36_______u= null
trigger gg_trg_HeroReviveTimer37_______u= null
trigger gg_trg_HeroReviveTimer38_______u= null
trigger gg_trg_HeroReviveTimer39_______u= null
trigger gg_trg_DMHSd= null
trigger gg_trg_DMHCam= null
trigger gg_trg_Set_panel= null
trigger gg_trg_Set_panel_______u= null
trigger gg_trg_Change_Value= null
trigger gg_trg_paihangxianshi= null
trigger gg_trg_paihangxianshi_______u= null
trigger gg_trg_zidongFMH= null
trigger gg_trg_jishiqi1= null
trigger gg_trg_paichu= null
trigger gg_trg_chaxungengxin= null
unit gg_unit_etoe_0000= null
unit gg_unit_unp2_0001= null
unit gg_unit_nmre_0023= null
unit gg_unit_npig_0225= null
unit gg_unit_nbfl_0006= null
unit gg_unit_ngad_0333= null
unit gg_unit_ngme_0021= null
unit gg_unit_Nplh_0257= null
unit gg_unit_nmre_0022= null
unit gg_unit_ngme_0024= null
unit gg_unit_nshe_0204= null
unit gg_unit_N00J_0331= null
unit gg_unit_ngad_0031= null
unit gg_unit_ngme_0030= null
unit gg_unit_nmrc_0113= null
unit gg_unit_nbal_0216= null
unit gg_unit_hatw_0011= null
unit gg_unit_hatw_0019= null
unit gg_unit_ncop_0102= null
unit gg_unit_n00B_0080= null
unit gg_unit_n00E_0079= null
unit gg_unit_Nbst_0310= null
unit gg_unit_Ntin_0309= null
unit gg_unit_Hmkg_0059= null
unit gg_unit_ntav_0248= null
unit gg_unit_n003_0301= null
unit gg_unit_Udea_0071= null
unit gg_unit_ngad_0020= null
unit gg_unit_nskf_0025= null
unit gg_unit_n003_0305= null
unit gg_unit_hpea_0214= null
unit gg_unit_n003_0303= null
unit gg_unit_n003_0302= null
unit gg_unit_n003_0304= null
unit gg_unit_nmre_0112= null
unit gg_unit_n003_0306= null
unit gg_unit_Nngs_0256= null
unit gg_unit_nmre_0033= null
unit gg_unit_Ulic_0072= null
unit gg_unit_hhou_0291= null
unit gg_unit_n003_0300= null
unit gg_unit_ndfl_0007= null
unit gg_unit_Hpal_0032= null
unit gg_unit_hhou_0290= null
unit gg_unit_hhou_0289= null
unit gg_unit_ncop_0085= null
unit gg_unit_ncop_0086= null
unit gg_unit_ncop_0087= null
unit gg_unit_ncop_0088= null
unit gg_unit_ncop_0089= null
unit gg_unit_ncop_0090= null
unit gg_unit_nchw_0245= null
unit gg_unit_nchw_0244= null
unit gg_unit_ninf_0091= null
unit gg_unit_ninf_0092= null
unit gg_unit_ncop_0095= null
unit gg_unit_ncop_0096= null
unit gg_unit_ncop_0097= null
unit gg_unit_ncop_0098= null
unit gg_unit_ncop_0099= null
unit gg_unit_ncop_0100= null
unit gg_unit_ncop_0101= null
unit gg_unit_ncp3_0047= null
unit gg_unit_ncp3_0103= null
unit gg_unit_n001_0255= null
unit gg_unit_ngme_0111= null
unit gg_unit_hatw_0034= null
unit gg_unit_hatw_0035= null
unit gg_unit_nbsm_0223= null
unit gg_unit_nbsm_0222= null
unit gg_unit_ncop_0209= null
unit gg_unit_ncop_0208= null
unit gg_unit_nmed_0207= null
unit gg_unit_npig_0226= null
unit gg_unit_npig_0224= null
unit gg_unit_npig_0227= null
unit gg_unit_Hamg_0058= null
unit gg_unit_ngad_0110= null
unit gg_unit_ngst_0230= null
unit gg_unit_nshe_0200= null
unit gg_unit_nshe_0201= null
unit gg_unit_nshe_0202= null
unit gg_unit_nshe_0203= null
unit gg_unit_npig_0205= null
unit gg_unit_ngst_0220= null
unit gg_unit_ngst_0221= null
unit gg_unit_ngst_0228= null
unit gg_unit_ngst_0229= null
unit gg_unit_negt_0206= null
unit gg_unit_nwwd_0234= null
unit gg_unit_nwwd_0235= null
unit gg_unit_nwwd_0236= null
unit gg_unit_nwwd_0237= null
unit gg_unit_nwwd_0238= null
unit gg_unit_nwwd_0239= null
unit gg_unit_nwwd_0240= null
unit gg_unit_ngnw_0241= null
unit gg_unit_nskg_0287= null
unit gg_unit_nskg_0282= null
unit gg_unit_nskg_0283= null
unit gg_unit_nskg_0284= null
unit gg_unit_nskg_0285= null
unit gg_unit_nskg_0286= null
unit gg_unit_nggr_0332= null
unit gg_unit_nggr_0273= null
unit gg_unit_nlrv_0250= null
unit gg_unit_nlrv_0251= null
unit gg_unit_nlrv_0252= null
unit gg_unit_nlrv_0253= null
unit gg_unit_Ofar_0069= null
unit gg_unit_ntav_0249= null
unit gg_unit_n003_0299= null
unit gg_unit_hhou_0288= null
unit gg_unit_hhou_0258= null
unit gg_unit_Hvwd_0065= null
unit gg_unit_n003_0298= null
unit gg_unit_n003_0297= null
unit gg_unit_Emoo_0062= null
unit gg_unit_nskf_0219= null
unit gg_unit_nskf_0264= null
unit gg_unit_nskf_0265= null
unit gg_unit_nskf_0266= null
unit gg_unit_nskf_0267= null
unit gg_unit_nskf_0268= null
unit gg_unit_nskf_0311= null
unit gg_unit_Ekee_0061= null
unit gg_unit_h008_0292= null
unit gg_unit_h008_0296= null
unit gg_unit_nssp_0254= null
unit gg_unit_h008_0293= null
unit gg_unit_Ewar_0064= null
unit gg_unit_Edem_0063= null
unit gg_unit_Obla_0067= null
unit gg_unit_Otch_0068= null
unit gg_unit_Hpal_0057= null
unit gg_unit_h008_0294= null
unit gg_unit_h008_0295= null
unit gg_unit_Nalc_0066= null
unit gg_unit_Nfir_0076= null
unit gg_unit_Usyl_0075= null
unit gg_unit_N002_0077= null
unit gg_unit_Hblm_0060= null
unit gg_unit_N00H_0078= null
unit gg_unit_Oshd_0070= null
unit gg_unit_Udre_0074= null
unit gg_unit_Ucrl_0073= null
unit gg_unit_nchg_0093= null
unit gg_unit_nchg_0094= null
unit gg_unit_nchg_0215= null
unit gg_unit_nchr_0217= null
unit gg_unit_nchr_0242= null
unit gg_unit_nchr_0243= null
unit gg_unit_nfel_0246= null
unit gg_unit_nfel_0247= null
unit gg_unit_ndqp_0259= null
unit gg_unit_ndqp_0260= null
unit gg_unit_ndqp_0261= null
unit gg_unit_Nbrn_0262= null
unit gg_unit_h00A_0269= null
unit gg_unit_hsor_0272= null
unit gg_unit_hmpr_0271= null
unit gg_unit_Nbrn_0274= null
unit gg_unit_E015_0275= null
unit gg_unit_ncop_0363= null
unit gg_unit_ngad_0387= null
unit gg_unit_ncop_0335= null
unit gg_unit_u004_0277= null
unit gg_unit_H002_0386= null
unit gg_unit_ngad_0383= null
unit gg_unit_Npbm_0280= null
unit gg_unit_Hjai_0425= null
unit gg_unit_Hlgr_0426= null
unit gg_unit_ncop_0429= null
unit gg_unit_ncop_0430= null
unit gg_unit_ncop_0431= null
unit gg_unit_nskg_0462= null
unit gg_unit_nwwd_0470= null
unit gg_unit_negm_0434= null
unit gg_unit_nwwd_0471= null
unit gg_unit_negm_0436= null
unit gg_unit_negm_0437= null
unit gg_unit_negm_0438= null
unit gg_unit_negm_0439= null
unit gg_unit_negm_0440= null
unit gg_unit_negm_0441= null
unit gg_unit_negm_0442= null
unit gg_unit_negm_0443= null
unit gg_unit_negm_0444= null
unit gg_unit_nskf_0445= null
unit gg_unit_nskf_0446= null
unit gg_unit_nskf_0447= null
unit gg_unit_nskf_0448= null
unit gg_unit_nskf_0449= null
unit gg_unit_nskf_0450= null
unit gg_unit_nskf_0451= null
unit gg_unit_nskf_0452= null
unit gg_unit_nskg_0459= null
unit gg_unit_nskg_0460= null
unit gg_unit_nskg_0458= null
unit gg_unit_nskg_0453= null
unit gg_unit_nskg_0454= null
unit gg_unit_nskg_0455= null
unit gg_unit_nskg_0456= null
unit gg_unit_nskg_0463= null
unit gg_unit_nbal_0432= null
unit gg_unit_ninf_0457= null
unit gg_unit_ninf_0461= null
unit gg_unit_nwwd_0464= null
unit gg_unit_nwwd_0465= null
unit gg_unit_nwwd_0466= null
unit gg_unit_nwwd_0467= null
unit gg_unit_nwwd_0468= null
unit gg_unit_nwwd_0469= null
unit gg_unit_negm_0433= null
unit gg_unit_negm_0435= null
unit gg_unit_H00C_0473= null
unit gg_unit_Uwar_0475= null
unit gg_unit_N014_0478= null
unit gg_unit_E020_0479= null
unit gg_unit_ngnw_0480= null
unit gg_unit_N00J_0483= null
unit gg_unit_N00J_0484= null
unit gg_unit_N00J_0485= null
unit gg_unit_N00J_0486= null
unit gg_unit_N00J_0487= null
unit gg_unit_N00J_0488= null
unit gg_unit_N00J_0489= null
unit gg_unit_N00J_0490= null
unit gg_unit_N00J_0491= null
unit gg_unit_N00J_0492= null
unit gg_unit_N00J_0493= null
unit gg_unit_N00H_0498= null
unit gg_unit_H00I_0499= null
unit gg_unit_Harf_0501= null
unit gg_unit_U00C_0503= null
gamecache YDGC
trigger l__library_init
//JASSHelper struct globals:
constant integer si__Around__Data=1
integer si__Around__Data_F=0
integer si__Around__Data_I=0
integer array si__Around__Data_V
integer array s__Around__Data_Structs
integer s__Around__Data_Total= 0
unit array s__Around__Data_caster
unit array s__Around__Data_obj
real array s__Around__Data_dur
real array s__Around__Data_inter
real array s__Around__Data_each
real array s__Around__Data_rate
real array s__Around__Data_dis
real array s__Around__Data_rise
real array s__Around__Data_angle
real array s__Around__Data_radius
real array s__Around__Data_height
constant integer si__YDVector3=2
integer si__YDVector3_F=0
integer si__YDVector3_I=0
integer array si__YDVector3_V
real array s__YDVector3_x
real array s__YDVector3_y
real array s__YDVector3_z
constant integer si__YDWETimerPattern__Thread=3
integer si__YDWETimerPattern__Thread_F=0
integer si__YDWETimerPattern__Thread_I=0
integer array si__YDWETimerPattern__Thread_V
integer array s__YDWETimerPattern__Thread_des
integer array s__YDWETimerPattern__Thread_pos
integer array s__YDWETimerPattern__Thread_vel
integer array s__YDWETimerPattern__Thread_dec
unit array s__YDWETimerPattern__Thread_caster
unit array s__YDWETimerPattern__Thread_target
unit array s__YDWETimerPattern__Thread_obj
real array s__YDWETimerPattern__Thread_ac
real array s__YDWETimerPattern__Thread_bc
real array s__YDWETimerPattern__Thread_dist
real array s__YDWETimerPattern__Thread_step
real array s__YDWETimerPattern__Thread_amount
integer array s__YDWETimerPattern__Thread_switch
integer array s__YDWETimerPattern__Thread_follow
integer array s__YDWETimerPattern__Thread_unitid
integer array s__YDWETimerPattern__Thread_skills
integer array s__YDWETimerPattern__Thread_order
integer array s__YDWETimerPattern__Thread_level
string array s__YDWETimerPattern__Thread_dsfx
string array s__YDWETimerPattern__Thread_gsfx
string array s__YDWETimerPattern__Thread_wsfx
string array s__YDWETimerPattern__Thread_part
boolean array s__YDWETimerPattern__Thread_recyclable
boolean array s__YDWETimerPattern__Thread_killdest
boolean array s__YDWETimerPattern__Thread_volume
group array s__YDWETimerPattern__Thread_except
timer array s__YDWETimerPattern__Thread_t
constant integer si__Parabola=4
constant integer si__Linear=5
constant integer si__Deceleration=6
integer array si__YDWETimerPattern__Thread_type
trigger array st__YDWETimerPattern__Thread_onDestroy
integer f__arg_this
endglobals
//Generated allocator of Around__Data
function s__Around__Data__allocate takes nothing returns integer
local integer this=si__Around__Data_F
if (this!=0) then
set si__Around__Data_F=si__Around__Data_V[this]
else
set si__Around__Data_I=si__Around__Data_I+1
set this=si__Around__Data_I
endif
if (this>8190) then
return 0
endif
set s__Around__Data_caster[this]= null
set s__Around__Data_obj[this]= null
set s__Around__Data_dur[this]= 0.
set s__Around__Data_inter[this]= 0.
set s__Around__Data_each[this]= 0.
set s__Around__Data_rate[this]= 0.
set s__Around__Data_dis[this]= 0.
set s__Around__Data_rise[this]= 0.
set s__Around__Data_angle[this]= 0.
set s__Around__Data_radius[this]= 0.
set s__Around__Data_height[this]= 0
set si__Around__Data_V[this]=-1
return this
endfunction
//Generated destructor of Around__Data
function s__Around__Data_deallocate takes integer this returns nothing
if this==null then
return
elseif (si__Around__Data_V[this]!=-1) then
return
endif
set si__Around__Data_V[this]=si__Around__Data_F
set si__Around__Data_F=this
endfunction
//Generated allocator of YDVector3
function s__YDVector3__allocate takes nothing returns integer
local integer this=si__YDVector3_F
if (this!=0) then
set si__YDVector3_F=si__YDVector3_V[this]
else
set si__YDVector3_I=si__YDVector3_I+1
set this=si__YDVector3_I
endif
if (this>8190) then
return 0
endif
set si__YDVector3_V[this]=-1
return this
endfunction
//Generated destructor of YDVector3
function s__YDVector3_deallocate takes integer this returns nothing
if this==null then
return
elseif (si__YDVector3_V[this]!=-1) then
return
endif
set si__YDVector3_V[this]=si__YDVector3_F
set si__YDVector3_F=this
endfunction
//Generated method caller for YDWETimerPattern__Thread.onDestroy
function sc__YDWETimerPattern__Thread_onDestroy takes integer this returns nothing
set f__arg_this=this
call TriggerEvaluate(st__YDWETimerPattern__Thread_onDestroy[3])
endfunction
//Generated allocator of YDWETimerPattern__Thread
function s__YDWETimerPattern__Thread__allocate takes nothing returns integer
local integer this=si__YDWETimerPattern__Thread_F
if (this!=0) then
set si__YDWETimerPattern__Thread_F=si__YDWETimerPattern__Thread_V[this]
else
set si__YDWETimerPattern__Thread_I=si__YDWETimerPattern__Thread_I+1
set this=si__YDWETimerPattern__Thread_I
endif
if (this>8190) then
return 0
endif
set si__YDWETimerPattern__Thread_type[this]=3
set si__YDWETimerPattern__Thread_V[this]=-1
return this
endfunction
//Generated destructor of YDWETimerPattern__Thread
function sc__YDWETimerPattern__Thread_deallocate takes integer this returns nothing
if this==null then
return
elseif (si__YDWETimerPattern__Thread_V[this]!=-1) then
return
endif
set f__arg_this=this
call TriggerEvaluate(st__YDWETimerPattern__Thread_onDestroy[si__YDWETimerPattern__Thread_type[this]])
set si__YDWETimerPattern__Thread_V[this]=si__YDWETimerPattern__Thread_F
set si__YDWETimerPattern__Thread_F=this
endfunction
//Generated allocator of Parabola
function s__Parabola__allocate takes nothing returns integer
local integer this=s__YDWETimerPattern__Thread__allocate()
local integer kthis
if(this==0) then
return 0
endif
set si__YDWETimerPattern__Thread_type[this]=4
set kthis=this
return this
endfunction
//Generated allocator of Deceleration
function s__Deceleration__allocate takes nothing returns integer
local integer this=s__YDWETimerPattern__Thread__allocate()
local integer kthis
if(this==0) then
return 0
endif
set si__YDWETimerPattern__Thread_type[this]=6
set kthis=this
return this
endfunction
//Generated allocator of Linear
function s__Linear__allocate takes nothing returns integer
local integer this=s__YDWETimerPattern__Thread__allocate()
local integer kthis
if(this==0) then
return 0
endif
set si__YDWETimerPattern__Thread_type[this]=5
set kthis=this
return this
endfunction
//library YDWEBase:
//===========================================================================
//Return bug
//===========================================================================
//===========================================================================
//Return bug
//===========================================================================
function YDWEH2I takes handle h returns integer
return h
return 0
endfunction
function YDWEI2U takes integer i returns unit
return i
return null
endfunction
function YDWEI2It takes integer i returns item
return i
return null
endfunction
function YDWEI2P takes integer i returns player
return i
return null
endfunction
function YDWEI2Tm takes integer i returns timer
return i
return null
endfunction
function YDWEI2T takes integer i returns trigger
return i
return null
endfunction
function YDWEI2Pt takes integer i returns location
return i
return null
endfunction
function YDWEI2G takes integer i returns group
return i
return null
endfunction
function YDWEI2M takes integer i returns multiboard
return i
return null
endfunction
function YDWEI2Mt takes integer i returns multiboarditem
return i
return null
endfunction
function YDWEI2Tt takes integer i returns texttag
return i
return null
endfunction
function YDWEI2Ln takes integer i returns lightning
return i
return null
endfunction
function YDWEI2Rn takes integer i returns region
return i
return null
endfunction
function YDWEI2Rt takes integer i returns rect
return i
return null
endfunction
function YDWEI2Lb takes integer i returns leaderboard
return i
return null
endfunction
function YDWEI2E takes integer i returns effect
return i
return null
endfunction
function YDWEI2Da takes integer i returns destructable
return i
return null
endfunction
function YDWEI2TC takes integer i returns triggercondition
return i
return null
endfunction
function YDWEI2TA takes integer i returns triggeraction
return i
return null
endfunction
function YDWEI2Et takes integer i returns event
return i
return null
endfunction
function YDWEI2Fc takes integer i returns force
return i
return null
endfunction
function YDWEI2BE takes integer i returns boolexpr
return i
return null
endfunction
function YDWEI2Sd takes integer i returns sound
return i
return null
endfunction
function YDWEI2TD takes integer i returns timerdialog
return i
return null
endfunction
function YDWEI2Ta takes integer i returns trackable
return i
return null
endfunction
function YDWEI2D takes integer i returns dialog
return i
return null
endfunction
function YDWEI2Bt takes integer i returns button
return i
return null
endfunction
function YDWEI2Qt takes integer i returns quest
return i
return null
endfunction
function YDWEI2QI takes integer i returns questitem
return i
return null
endfunction
function GetHandleId takes handle h returns integer
return h
return 0
endfunction
function YDWEGetGameCache takes nothing returns gamecache
return YDGC
endfunction
//清空
function YDWEFlushAllData takes nothing returns nothing
call FlushGameCache(YDGC)
endfunction
function YDWEFlushMissionByInteger takes integer i returns nothing
call FlushStoredMission(YDGC, I2S(i))
endfunction
function YDWEFlushMissionByString takes string s returns nothing
call FlushStoredMission(YDGC, s)
endfunction
function YDWEFlushStoredIntegerByInteger takes integer i,integer j returns nothing
call FlushStoredInteger(YDGC, I2S(i), I2S(j))
endfunction
function YDWEFlushStoredIntegerByString takes string s1,string s2 returns nothing
call FlushStoredInteger(YDGC, s1, s2)
endfunction
function YDWEHaveSavedIntegerByInteger takes integer i,integer j returns boolean
return HaveStoredInteger(YDGC, I2S(i), I2S(j))
endfunction
function YDWEHaveSavedIntegerByString takes string s1,string s2 returns boolean
return HaveStoredInteger(YDGC, s1, s2)
endfunction
//store and get integer
function YDWESaveIntegerByInteger takes integer pTable,integer pKey,integer i returns nothing
call StoreInteger(YDGC, I2S(pTable), I2S(pKey), i)
endfunction
function YDWESaveIntegerByString takes string pTable,string pKey,integer i returns nothing
call StoreInteger(YDGC, pTable, pKey, i)
endfunction
function YDWEGetIntegerByInteger takes integer pTable,integer pKey returns integer
return GetStoredInteger(YDGC, I2S(pTable), I2S(pKey))
endfunction
function YDWEGetIntegerByString takes string pTable,string pKey returns integer
return GetStoredInteger(YDGC, pTable, pKey)
endfunction
//store and get real
function YDWESaveRealByInteger takes integer pTable,integer pKey,real r returns nothing
call StoreReal(YDGC, I2S(pTable), I2S(pKey), r)
endfunction
function YDWESaveRealByString takes string pTable,string pKey,real r returns nothing
call StoreReal(YDGC, pTable, pKey, r)
endfunction
function YDWEGetRealByInteger takes integer pTable,integer pKey returns real
return GetStoredReal(YDGC, I2S(pTable), I2S(pKey))
endfunction
function YDWEGetRealByString takes string pTable,string pKey returns real
return GetStoredReal(YDGC, pTable, pKey)
endfunction
//store and get string
function YDWESaveStringByInteger takes integer pTable,integer pKey,string s returns nothing
call StoreString(YDGC, I2S(pTable), I2S(pKey), s)
endfunction
function YDWESaveStringByString takes string pTable,string pKey,string s returns nothing
call StoreString(YDGC, pTable, pKey, s)
endfunction
function YDWEGetStringByInteger takes integer pTable,integer pKey returns string
return GetStoredString(YDGC, I2S(pTable), I2S(pKey))
endfunction
function YDWEGetStringByString takes string pTable,string pKey returns string
return GetStoredString(YDGC, pTable, pKey)
endfunction
//store and get boolean
function YDWESaveBooleanByInteger takes integer pTable,integer pKey,boolean b returns nothing
call StoreBoolean(YDGC, I2S(pTable), I2S(pKey), b)
endfunction
function YDWESaveBooleanByString takes string pTable,string pKey,boolean b returns nothing
call StoreBoolean(YDGC, pTable, pKey, b)
endfunction
function YDWEGetBooleanByInteger takes integer pTable,integer pKey returns boolean
return GetStoredBoolean(YDGC, I2S(pTable), I2S(pKey))
endfunction
function YDWEGetBooleanByString takes string pTable,string pKey returns boolean
return GetStoredBoolean(YDGC, pTable, pKey)
endfunction
//Covert Unit
function YDWESaveUnitByInteger takes integer pTable,integer pKey,unit u returns nothing
call StoreInteger(YDGC, I2S(pTable), I2S(pKey), YDWEH2I(u))
endfunction
function YDWESaveUnitByString takes string pTable,string pKey,unit u returns nothing
call StoreInteger(YDGC, pTable, pKey, YDWEH2I(u))
endfunction
function YDWEGetUnitByInteger takes integer pTable,integer pKey returns unit
return YDWEI2U(GetStoredInteger(YDGC, I2S(pTable), I2S(pKey)))
endfunction
function YDWEGetUnitByString takes string pTable,string pKey returns unit
return YDWEI2U(GetStoredInteger(YDGC, pTable, pKey))
endfunction
//Covert UnitID
function YDWESaveUnitIDByInteger takes integer pTable,integer pKey,integer uid returns nothing
call StoreInteger(YDGC, I2S(pTable), I2S(pKey), uid)
endfunction
function YDWESaveUnitIDByString takes string pTable,string pKey,integer uid returns nothing
call StoreInteger(YDGC, pTable, pKey, uid)
endfunction
function YDWEGetUnitIDByInteger takes integer pTable,integer pKey returns integer
return GetStoredInteger(YDGC, I2S(pTable), I2S(pKey))
endfunction
function YDWEGetUnitIDByString takes string pTable,string pKey returns integer
return GetStoredInteger(YDGC, pTable, pKey)
endfunction
//Covert AbilityID
function YDWESaveAbilityIDByInteger takes integer pTable,integer pKey,integer abid returns nothing
call StoreInteger(YDGC, I2S(pTable), I2S(pKey), abid)
endfunction
function YDWESaveAbilityIDByString takes string pTable,string pKey,integer abid returns nothing
call StoreInteger(YDGC, pTable, pKey, abid)
endfunction
function YDWEGetAbilityIDByInteger takes integer pTable,integer pKey returns integer
return GetStoredInteger(YDGC, I2S(pTable), I2S(pKey))
endfunction
function YDWEGetAbilityIDByString takes string pTable,string pKey returns integer
return GetStoredInteger(YDGC, pTable, pKey)
endfunction
//Covert Player
function YDWESavePlayerByInteger takes integer pTable,integer pKey,player p returns nothing
call StoreInteger(YDGC, I2S(pTable), I2S(pKey), YDWEH2I(p))
endfunction
function YDWESavePlayerByString takes string pTable,string pKey,player p returns nothing
call StoreInteger(YDGC, pTable, pKey, YDWEH2I(p))
endfunction
function YDWEGetPlayerByInteger takes integer pTable,integer pKey returns player
return YDWEI2P(GetStoredInteger(YDGC, I2S(pTable), I2S(pKey)))
endfunction
function YDWEGetPlayerByString takes string pTable,string pKey returns player
return YDWEI2P(GetStoredInteger(YDGC, pTable, pKey))
endfunction
//Covert Item
function YDWESaveItemByInteger takes integer pTable,integer pKey,item it returns nothing
call StoreInteger(YDGC, I2S(pTable), I2S(pKey), YDWEH2I(it))
endfunction
function YDWESaveItemByString takes string pTable,string pKey,item it returns nothing
call StoreInteger(YDGC, pTable, pKey, YDWEH2I(it))
endfunction
function YDWEGetItemByInteger takes integer pTable,integer pKey returns item
return YDWEI2It(GetStoredInteger(YDGC, I2S(pTable), I2S(pKey)))
endfunction
function YDWEGetItemByString takes string pTable,string pKey returns item
return YDWEI2It(GetStoredInteger(YDGC, pTable, pKey))
endfunction
//Covert ItemID
function YDWESaveItemIDByInteger takes integer pTable,integer pKey,integer itid returns nothing
call StoreInteger(YDGC, I2S(pTable), I2S(pKey), itid)
endfunction
function YDWESaveItemIDByString takes string pTable,string pKey,integer itid returns nothing
call StoreInteger(YDGC, pTable, pKey, itid)
endfunction
function YDWEGetItemIDByInteger takes integer pTable,integer pKey returns integer
return GetStoredInteger(YDGC, I2S(pTable), I2S(pKey))
endfunction
function YDWEGetItemIDByString takes string pTable,string pKey returns integer
return GetStoredInteger(YDGC, pTable, pKey)
endfunction
//Covert Timer
function YDWESaveTimerByInteger takes integer pTable,integer pKey,timer t returns nothing
call StoreInteger(YDGC, I2S(pTable), I2S(pKey), YDWEH2I(t))
endfunction
function YDWESaveTimerByString takes string pTable,string pKey,timer t returns nothing
call StoreInteger(YDGC, pTable, pKey, YDWEH2I(t))
endfunction
function YDWEGetTimerByInteger takes integer pTable,integer pKey returns timer
return YDWEI2Tm(GetStoredInteger(YDGC, I2S(pTable), I2S(pKey)))
endfunction
function YDWEGetTimerByString takes string pTable,string pKey returns timer
return YDWEI2Tm(GetStoredInteger(YDGC, pTable, pKey))
endfunction
//Covert Trigger
function YDWESaveTriggerByInteger takes integer pTable,integer pKey,trigger trg returns nothing
call StoreInteger(YDGC, I2S(pTable), I2S(pKey), YDWEH2I(trg))
endfunction
function YDWESaveTriggerByString takes string pTable,string pKey,trigger trg returns nothing
call StoreInteger(YDGC, pTable, pKey, YDWEH2I(trg))
endfunction
function YDWEGetTriggerByInteger takes integer pTable,integer pKey returns trigger
return YDWEI2T(GetStoredInteger(YDGC, I2S(pTable), I2S(pKey)))
endfunction
function YDWEGetTriggerByString takes string pTable,string pKey returns trigger
return YDWEI2T(GetStoredInteger(YDGC, pTable, pKey))
endfunction
//Covert Location
function YDWESaveLocationByInteger takes integer pTable,integer pKey,location pt returns nothing
call StoreInteger(YDGC, I2S(pTable), I2S(pKey), YDWEH2I(pt))
endfunction
function YDWESaveLocationByString takes string pTable,string pKey,location pt returns nothing
call StoreInteger(YDGC, pTable, pKey, YDWEH2I(pt))
endfunction
function YDWEGetLocationByInteger takes integer pTable,integer pKey returns location
return YDWEI2Pt(GetStoredInteger(YDGC, I2S(pTable), I2S(pKey)))
endfunction
function YDWEGetLocationByString takes string pTable,string pKey returns location
return YDWEI2Pt(GetStoredInteger(YDGC, pTable, pKey))
endfunction
//Covert Group
function YDWESaveGroupByInteger takes integer pTable,integer pKey,group g returns nothing
call StoreInteger(YDGC, I2S(pTable), I2S(pKey), YDWEH2I(g))
endfunction
function YDWESaveGroupByString takes string pTable,string pKey,group g returns nothing
call StoreInteger(YDGC, pTable, pKey, YDWEH2I(g))
endfunction
function YDWEGetGroupByInteger takes integer pTable,integer pKey returns group
return YDWEI2G(GetStoredInteger(YDGC, I2S(pTable), I2S(pKey)))
endfunction
function YDWEGetGroupByString takes string pTable,string pKey returns group
return YDWEI2G(GetStoredInteger(YDGC, pTable, pKey))
endfunction
//Covert multiboard
function YDWESaveMultiboardByInteger takes integer pTable,integer pKey,multiboard m returns nothing
call StoreInteger(YDGC, I2S(pTable), I2S(pKey), YDWEH2I(m))
endfunction
function YDWESaveMultiboardByString takes string pTable,string pKey,multiboard m returns nothing
call StoreInteger(YDGC, pTable, pKey, YDWEH2I(m))
endfunction
function YDWEGetMultiboardByInteger takes integer pTable,integer pKey returns multiboard
return YDWEI2M(GetStoredInteger(YDGC, I2S(pTable), I2S(pKey)))
endfunction
function YDWEGetMultiboardByString takes string pTable,string pKey returns multiboard
return YDWEI2M(GetStoredInteger(YDGC, pTable, pKey))
endfunction
//Covert multiboarditem
function YDWESaveMultiboardItemByInteger takes integer pTable,integer pKey,multiboarditem mt returns nothing
call StoreInteger(YDGC, I2S(pTable), I2S(pKey), YDWEH2I(mt))
endfunction
function YDWESaveMultiboardItemByString takes string pTable,string pKey,multiboarditem mt returns nothing
call StoreInteger(YDGC, pTable, pKey, YDWEH2I(mt))
endfunction
function YDWEGetMultiboardItemByInteger takes integer pTable,integer pKey returns multiboarditem
return YDWEI2Mt(GetStoredInteger(YDGC, I2S(pTable), I2S(pKey)))
endfunction
function YDWEGetMultiboardItemByString takes string pTable,string pKey returns multiboarditem
return YDWEI2Mt(GetStoredInteger(YDGC, pTable, pKey))
endfunction
//Covert Texttag
function YDWESaveTextTagByInteger takes integer pTable,integer pKey,texttag tt returns nothing
call StoreInteger(YDGC, I2S(pTable), I2S(pKey), YDWEH2I(tt))
endfunction
function YDWESaveTextTagByString takes string pTable,string pKey,texttag tt returns nothing
call StoreInteger(YDGC, pTable, pKey, YDWEH2I(tt))
endfunction
function YDWEGetTextTagByInteger takes integer pTable,integer pKey returns texttag
return YDWEI2Tt(GetStoredInteger(YDGC, I2S(pTable), I2S(pKey)))
endfunction
function YDWEGetTextTagByString takes string pTable,string pKey returns texttag
return YDWEI2Tt(GetStoredInteger(YDGC, pTable, pKey))
endfunction
//Covert lightning
function YDWESaveLightningByInteger takes integer pTable,integer pKey,lightning ln returns nothing
call StoreInteger(YDGC, I2S(pTable), I2S(pKey), YDWEH2I(ln))
endfunction
function YDWESaveLightningByString takes string pTable,string pKey,lightning ln returns nothing
call StoreInteger(YDGC, pTable, pKey, YDWEH2I(ln))
endfunction
function YDWEGetLightningByInteger takes integer pTable,integer pKey returns lightning
return YDWEI2Ln(GetStoredInteger(YDGC, I2S(pTable), I2S(pKey)))
endfunction
function YDWEGetLightningByString takes string pTable,string pKey returns lightning
return YDWEI2Ln(GetStoredInteger(YDGC, pTable, pKey))
endfunction
//Covert region
function YDWESaveRegionByInteger takes integer pTable,integer pKey,region rn returns nothing
call StoreInteger(YDGC, I2S(pTable), I2S(pKey), YDWEH2I(rn))
endfunction
function YDWESaveRegionByString takes string pTable,string pKey,region rn returns nothing
call StoreInteger(YDGC, pTable, pKey, YDWEH2I(rn))
endfunction
function YDWEGetRegionByInteger takes integer pTable,integer pKey returns region
return YDWEI2Rn(GetStoredInteger(YDGC, I2S(pTable), I2S(pKey)))
endfunction
function YDWEGetRegionByString takes string pTable,string pKey returns region
return YDWEI2Rn(GetStoredInteger(YDGC, pTable, pKey))
endfunction
//Covert rect
function YDWESaveRectByInteger takes integer pTable,integer pKey,rect rt returns nothing
call StoreInteger(YDGC, I2S(pTable), I2S(pKey), YDWEH2I(rt))
endfunction
function YDWESaveRectByString takes string pTable,string pKey,rect rt returns nothing
call StoreInteger(YDGC, pTable, pKey, YDWEH2I(rt))
endfunction
function YDWEGetRectByInteger takes integer pTable,integer pKey returns rect
return YDWEI2Rt(GetStoredInteger(YDGC, I2S(pTable), I2S(pKey)))
endfunction
function YDWEGetRectByString takes string pTable,string pKey returns rect
return YDWEI2Rt(GetStoredInteger(YDGC, pTable, pKey))
endfunction
//Covert leaderboard
function YDWESaveLeaderboardByInteger takes integer pTable,integer pKey,leaderboard lb returns nothing
call StoreInteger(YDGC, I2S(pTable), I2S(pKey), YDWEH2I(lb))
endfunction
function YDWESaveLeaderboardByString takes string pTable,string pKey,leaderboard lb returns nothing
call StoreInteger(YDGC, pTable, pKey, YDWEH2I(lb))
endfunction
function YDWEGetLeaderboardByInteger takes integer pTable,integer pKey returns leaderboard
return YDWEI2Lb(GetStoredInteger(YDGC, I2S(pTable), I2S(pKey)))
endfunction
function YDWEGetLeaderboardByString takes string pTable,string pKey returns leaderboard
return YDWEI2Lb(GetStoredInteger(YDGC, pTable, pKey))
endfunction
//Covert effect
function YDWESaveEffectByInteger takes integer pTable,integer pKey,effect e returns nothing
call StoreInteger(YDGC, I2S(pTable), I2S(pKey), YDWEH2I(e))
endfunction
function YDWESaveEffectByString takes string pTable,string pKey,effect e returns nothing
call StoreInteger(YDGC, pTable, pKey, YDWEH2I(e))
endfunction
function YDWEGetEffectByInteger takes integer pTable,integer pKey returns effect
return YDWEI2E(GetStoredInteger(YDGC, I2S(pTable), I2S(pKey)))
endfunction
function YDWEGetEffectByString takes string pTable,string pKey returns effect
return YDWEI2E(GetStoredInteger(YDGC, pTable, pKey))
endfunction
//Covert destructable
function YDWESaveDestructableByInteger takes integer pTable,integer pKey,destructable da returns nothing
call StoreInteger(YDGC, I2S(pTable), I2S(pKey), YDWEH2I(da))
endfunction
function YDWESaveDestructableByString takes string pTable,string pKey,destructable da returns nothing
call StoreInteger(YDGC, pTable, pKey, YDWEH2I(da))
endfunction
function YDWEGetDestructableByInteger takes integer pTable,integer pKey returns destructable
return YDWEI2Da(GetStoredInteger(YDGC, I2S(pTable), I2S(pKey)))
endfunction
function YDWEGetDestructableByString takes string pTable,string pKey returns destructable
return YDWEI2Da(GetStoredInteger(YDGC, pTable, pKey))
endfunction
//Covert triggercondition
function YDWESaveTriggerConditionByInteger takes integer pTable,integer pKey,triggercondition tc returns nothing
call StoreInteger(YDGC, I2S(pTable), I2S(pKey), YDWEH2I(tc))
endfunction
function YDWESaveTriggerConditionByString takes string pTable,string pKey,triggercondition tc returns nothing
call StoreInteger(YDGC, pTable, pKey, YDWEH2I(tc))
endfunction
function YDWEGetTriggerConditionByInteger takes integer pTable,integer pKey returns triggercondition
return YDWEI2TC(GetStoredInteger(YDGC, I2S(pTable), I2S(pKey)))
endfunction
function YDWEGetTriggerConditionByString takes string pTable,string pKey returns triggercondition
return YDWEI2TC(GetStoredInteger(YDGC, pTable, pKey))
endfunction
//Covert triggeraction
function YDWESaveTriggerActionByInteger takes integer pTable,integer pKey,triggeraction ta returns nothing
call StoreInteger(YDGC, I2S(pTable), I2S(pKey), YDWEH2I(ta))
endfunction
function YDWESaveTriggerActionByString takes string pTable,string pKey,triggeraction ta returns nothing
call StoreInteger(YDGC, pTable, pKey, YDWEH2I(ta))
endfunction
function YDWEGetTriggerActionByInteger takes integer pTable,integer pKey returns triggeraction
return YDWEI2TA(GetStoredInteger(YDGC, I2S(pTable), I2S(pKey)))
endfunction
function YDWEGetTriggerActionByString takes string pTable,string pKey returns triggeraction
return YDWEI2TA(GetStoredInteger(YDGC, pTable, pKey))
endfunction
//Covert event
function YDWESaveTriggerEventByInteger takes integer pTable,integer pKey,event et returns nothing
call StoreInteger(YDGC, I2S(pTable), I2S(pKey), YDWEH2I(et))
endfunction
function YDWESaveTriggerEventByString takes string pTable,string pKey,event et returns nothing
call StoreInteger(YDGC, pTable, pKey, YDWEH2I(et))
endfunction
function YDWEGetTriggerEventByInteger takes integer pTable,integer pKey returns event
return YDWEI2Et(GetStoredInteger(YDGC, I2S(pTable), I2S(pKey)))
endfunction
function YDWEGetTriggerEventByString takes string pTable,string pKey returns event
return YDWEI2Et(GetStoredInteger(YDGC, pTable, pKey))
endfunction
//Covert force
function YDWESaveForceByInteger takes integer pTable,integer pKey,force fc returns nothing
call StoreInteger(YDGC, I2S(pTable), I2S(pKey), YDWEH2I(fc))
endfunction
function YDWESaveForceByString takes string pTable,string pKey,force fc returns nothing
call StoreInteger(YDGC, pTable, pKey, YDWEH2I(fc))
endfunction
function YDWEGetForceByInteger takes integer pTable,integer pKey returns force
return YDWEI2Fc(GetStoredInteger(YDGC, I2S(pTable), I2S(pKey)))
endfunction
function YDWEGetForceByString takes string pTable,string pKey returns force
return YDWEI2Fc(GetStoredInteger(YDGC, pTable, pKey))
endfunction
//Covert boolexpr
function YDWESaveBoolexprByInteger takes integer pTable,integer pKey,boolexpr be returns nothing
call StoreInteger(YDGC, I2S(pTable), I2S(pKey), YDWEH2I(be))
endfunction
function YDWESaveBoolexprByString takes string pTable,string pKey,boolexpr be returns nothing
call StoreInteger(YDGC, pTable, pKey, YDWEH2I(be))
endfunction
function YDWEGetBoolexprByInteger takes integer pTable,integer pKey returns boolexpr
return YDWEI2BE(GetStoredInteger(YDGC, I2S(pTable), I2S(pKey)))
endfunction
function YDWEGetBoolexprByString takes string pTable,string pKey returns boolexpr
return YDWEI2BE(GetStoredInteger(YDGC, pTable, pKey))
endfunction
//Covert sound
function YDWESaveSoundByInteger takes integer pTable,integer pKey,sound sd returns nothing
call StoreInteger(YDGC, I2S(pTable), I2S(pKey), YDWEH2I(sd))
endfunction
function YDWESaveSoundByString takes string pTable,string pKey,sound sd returns nothing
call StoreInteger(YDGC, pTable, pKey, YDWEH2I(sd))
endfunction
function YDWEGetSoundByInteger takes integer pTable,integer pKey returns sound
return YDWEI2Sd(GetStoredInteger(YDGC, I2S(pTable), I2S(pKey)))
endfunction
function YDWEGetSoundByString takes string pTable,string pKey returns sound
return YDWEI2Sd(GetStoredInteger(YDGC, pTable, pKey))
endfunction
//Covert timerdialog
function YDWESaveTimerDialogByInteger takes integer pTable,integer pKey,timerdialog td returns nothing
call StoreInteger(YDGC, I2S(pTable), I2S(pKey), YDWEH2I(td))
endfunction
function YDWESaveTimerDialogByString takes string pTable,string pKey,timerdialog td returns nothing
call StoreInteger(YDGC, pTable, pKey, YDWEH2I(td))
endfunction
function YDWEGetTimerDialogByInteger takes integer pTable,integer pKey returns timerdialog
return YDWEI2TD(GetStoredInteger(YDGC, I2S(pTable), I2S(pKey)))
endfunction
function YDWEGetTimerDialogByString takes string pTable,string pKey returns timerdialog
return YDWEI2TD(GetStoredInteger(YDGC, pTable, pKey))
endfunction
//Covert trackable
function YDWESaveTrackableByInteger takes integer pTable,integer pKey,trackable ta returns nothing
call StoreInteger(YDGC, I2S(pTable), I2S(pKey), YDWEH2I(ta))
endfunction
function YDWESaveTrackableByString takes string pTable,string pKey,trackable ta returns nothing
call StoreInteger(YDGC, pTable, pKey, YDWEH2I(ta))
endfunction
function YDWEGetTrackableByInteger takes integer pTable,integer pKey returns trackable
return YDWEI2Ta(GetStoredInteger(YDGC, I2S(pTable), I2S(pKey)))
endfunction
function YDWEGetTrackableByString takes string pTable,string pKey returns trackable
return YDWEI2Ta(GetStoredInteger(YDGC, pTable, pKey))
endfunction
//Covert dialog
function YDWESaveDialogByInteger takes integer pTable,integer pKey,dialog d returns nothing
call StoreInteger(YDGC, I2S(pTable), I2S(pKey), YDWEH2I(d))
endfunction
function YDWESaveDialogByString takes string pTable,string pKey,dialog d returns nothing
call StoreInteger(YDGC, pTable, pKey, YDWEH2I(d))
endfunction
function YDWEGetDialogByInteger takes integer pTable,integer pKey returns dialog
return YDWEI2D(GetStoredInteger(YDGC, I2S(pTable), I2S(pKey)))
endfunction
function YDWEGetDialogByString takes string pTable,string pKey returns dialog
return YDWEI2D(GetStoredInteger(YDGC, pTable, pKey))
endfunction
//Covert button
function YDWESaveButtonByInteger takes integer pTable,integer pKey,button bt returns nothing
call StoreInteger(YDGC, I2S(pTable), I2S(pKey), YDWEH2I(bt))
endfunction
function YDWESaveButtonByString takes string pTable,string pKey,button bt returns nothing
call StoreInteger(YDGC, pTable, pKey, YDWEH2I(bt))
endfunction
function YDWEGetButtonByInteger takes integer pTable,integer pKey returns button
return YDWEI2Bt(GetStoredInteger(YDGC, I2S(pTable), I2S(pKey)))
endfunction
function YDWEGetButtonByString takes string pTable,string pKey returns button
return YDWEI2Bt(GetStoredInteger(YDGC, pTable, pKey))
endfunction
//Covert quest
function YDWESaveQuestByInteger takes integer pTable,integer pKey,quest qt returns nothing
call StoreInteger(YDGC, I2S(pTable), I2S(pKey), YDWEH2I(qt))
endfunction
function YDWESaveQuestByString takes string pTable,string pKey,quest qt returns nothing
call StoreInteger(YDGC, pTable, pKey, YDWEH2I(qt))
endfunction
function YDWEGetQuestByInteger takes integer pTable,integer pKey returns quest
return YDWEI2Qt(GetStoredInteger(YDGC, I2S(pTable), I2S(pKey)))
endfunction
function YDWEGetQuestByString takes string pTable,string pKey returns quest
return YDWEI2Qt(GetStoredInteger(YDGC, pTable, pKey))
endfunction
//Covert questitem
function YDWESaveQuestItemByInteger takes integer pTable,integer pKey,questitem qi returns nothing
call StoreInteger(YDGC, I2S(pTable), I2S(pKey), YDWEH2I(qi))
endfunction
function YDWESaveQuestItemByString takes string pTable,string pKey,questitem qi returns nothing
call StoreInteger(YDGC, pTable, pKey, YDWEH2I(qi))
endfunction
function YDWEGetQuestItemByInteger takes integer pTable,integer pKey returns questitem
return YDWEI2QI(GetStoredInteger(YDGC, I2S(pTable), I2S(pKey)))
endfunction
function YDWEGetQuestItemByString takes string pTable,string pKey returns questitem
return YDWEI2QI(GetStoredInteger(YDGC, pTable, pKey))
endfunction
function YDWES2I takes string s returns integer
return s
return 0
endfunction
function GetSpellTargetX takes nothing returns real
local location point=GetSpellTargetLoc()
local real x=GetLocationX(point)
call RemoveLocation(point)
set point=null
return x
endfunction
function GetSpellTargetY takes nothing returns real
local location point=GetSpellTargetLoc()
local real y=GetLocationY(point)
call RemoveLocation(point)
set point=null
return y
endfunction
//============================
//杞?崲handle涓篿nteger
//===========================================================================
function YDWEGetUnitID takes unit u returns integer
return YDWEH2I(u)
endfunction
function YDWEGetItemID takes item it returns integer
return YDWEH2I(it)
endfunction
function YDWEGetPlayerID takes player p returns integer
return YDWEH2I(p)
endfunction
function YDWEGetTimerID takes timer t returns integer
return YDWEH2I(t)
endfunction
function YDWEGetTriggerID takes trigger trg returns integer
return YDWEH2I(trg)
endfunction
function YDWEGetGroupID takes group g returns integer
return YDWEH2I(g)
endfunction
function YDWEGetLocationID takes location point returns integer
return YDWEH2I(point)
endfunction
function YDWEGetUnitTypeID takes integer uid returns integer
return uid
endfunction
function YDWEGetAbilityTypeID takes integer ab returns integer
return ab
endfunction
function YDWEGetItemTypeID takes integer itid returns integer
return itid
endfunction
function YDWEGetMultiboardID takes multiboard m returns integer
return YDWEH2I(m)
endfunction
function YDWEGetMultiboardItemID takes multiboarditem mt returns integer
return YDWEH2I(mt)
endfunction
function YDWEGetTextTagID takes texttag tt returns integer
return YDWEH2I(tt)
endfunction
function YDWEGetLightningID takes lightning ln returns integer
return YDWEH2I(ln)
endfunction
function YDWEGetRegionID takes region rn returns integer
return YDWEH2I(rn)
endfunction
function YDWEGetRectID takes rect rt returns integer
return YDWEH2I(rt)
endfunction
function YDWEGetLeaderboardID takes leaderboard lb returns integer
return YDWEH2I(lb)
endfunction
function YDWEGetEffectID takes effect e returns integer
return YDWEH2I(e)
endfunction
function YDWEGetDestructableID takes destructable da returns integer
return YDWEH2I(da)
endfunction
function YDWEGetTriggerConditionID takes triggercondition tc returns integer
return YDWEH2I(tc)
endfunction
function YDWEGetTriggerActionID takes triggeraction ta returns integer
return YDWEH2I(ta)
endfunction
function YDWEGetTriggerEventID takes event et returns integer
return YDWEH2I(et)
endfunction
function YDWEGetForceID takes force fc returns integer
return YDWEH2I(fc)
endfunction
function YDWEGetBoolexprID takes boolexpr be returns integer
return YDWEH2I(be)
endfunction
function YDWEGetSoundID takes sound sd returns integer
return YDWEH2I(sd)
endfunction
function YDWEGetTimerDialogID takes timerdialog td returns integer
return YDWEH2I(td)
endfunction
function YDWEGetTrackableID takes trackable ta returns integer
return YDWEH2I(ta)
endfunction
function YDWEGetDialogID takes dialog d returns integer
return YDWEH2I(d)
endfunction
function YDWEGetButtonID takes button bt returns integer
return YDWEH2I(bt)
endfunction
//返回单位 物品 闪电 命令ID的类型为整数 --UI需
function YDWEConverUnitcodeToInt takes integer uid returns integer
return uid
endfunction
function YDWEConverItemcodeToInt takes integer itid returns integer
return itid
endfunction
function YDWEConverAbilcodeToInt takes integer abid returns integer
return abid
endfunction
function YDWEConverOrdercodeToInt takes integer orderid returns integer
return orderid
endfunction
//===========================================================================
//===========================================================================
//Custom functions added by wataloo&Everguo
//===========================================================================
//===========================================================================
//===========================================================================
//返回参数
//===========================================================================
//地图边界判断
function YDWECoordinateX takes real x returns real
set x=RMaxBJ(x, yd_MapMinX)
set x=RMinBJ(x, yd_MapMaxX)
return x
endfunction
function YDWECoordinateY takes real y returns real
set y=RMaxBJ(y, yd_MapMinY)
set y=RMinBJ(y, yd_MapMaxY)
return y
endfunction
//两个单位之间的距离
function YDWEDistanceBetweenUnits takes unit a,unit b returns real
return SquareRoot(( GetUnitX(a) - GetUnitX(b) ) * ( GetUnitX(a) - GetUnitX(b) ) + ( GetUnitY(a) - GetUnitY(b) ) * ( GetUnitY(a) - GetUnitY(b) ))
endfunction
//两个单位之间的角度
function YDWEAngleBetweenUnits takes unit from,unit to returns real
return bj_RADTODEG * Atan2(GetUnitY(to) - GetUnitY(from), GetUnitX(to) - GetUnitX(from))
endfunction
//生成区域
function YDWEGetRect takes real x,real y,real width,real height returns rect
return Rect(x - width * 0.5, y - height * 0.5, x + width * 0.5, y + height * 0.5)
endfunction
//===========================================================================
//设置单位可以飞行
//===========================================================================
function YDWEFlyEnable takes unit u returns nothing
call UnitAddAbility(u, 'Amrf')
call UnitRemoveAbility(u, 'Amrf')
endfunction
//===========================================================================
//字符窜与ID转换
//===========================================================================
function YDWEId2S takes integer value returns string
local string charMap=bj_AllString
local string result= ""
local integer remainingValue= value
local integer charValue
local integer byteno
set byteno=0
loop
set charValue=ModuloInteger(remainingValue, 256)
set remainingValue=remainingValue / 256
set result=SubString(charMap, charValue, charValue + 1) + result
set byteno=byteno + 1
exitwhen byteno == 4
endloop
return result
endfunction
function YDWES2Id takes string targetstr returns integer
local string originstr=bj_AllString
local integer strlength=StringLength(targetstr)
local integer a=0
local integer b=0
local integer numx=1
local integer result=0
loop
exitwhen b > strlength - 1
set numx=R2I(Pow(256, strlength - 1 - b))
set a=1
loop
exitwhen a > 255
if SubString(targetstr, b, b + 1) == SubString(originstr, a, a + 1) then
set result=result + a * numx
set a=256
endif
set a=a + 1
endloop
set b=b + 1
endloop
return result
endfunction
function YDWES2UnitId takes string targetstr returns integer
return YDWES2Id(targetstr)
endfunction
function YDWES2ItemId takes string targetstr returns integer
return YDWES2Id(targetstr)
endfunction
function YDWEI2UnitId takes integer targetint returns integer
return targetint
endfunction
function YDWEI2ItemId takes integer targetint returns integer
return targetint
endfunction
function GetLastMovedItemInItemSlot takes nothing returns item
return bj_lastMovedItemInItemSlot
endfunction
function GetLastCombinedItem takes nothing returns item
return bj_lastCombinedItem
endfunction
function GetLastAbilityCastingUnit takes nothing returns unit
return bj_lastAbilityCastingUnit
endfunction
function GetLastAbilityTargetUnit takes nothing returns unit
return bj_lastAbilityTargetUnit
endfunction
function YDWECreateQuest takes integer questType,string title,string description,string iconPath returns quest
return CreateQuestBJ(questType, title, description, iconPath)
endfunction
function YDWECreateQuestItem takes quest whichQuest,string description returns questitem
return CreateQuestItemBJ(whichQuest, description)
endfunction
function YDWESetMapLimitCoordinate takes real MinX,real MaxX,real MinY,real MaxY returns nothing
set yd_MapMaxX=MaxX
set yd_MapMinX=MinX
set yd_MapMaxY=MaxY
set yd_MapMinY=MinY
endfunction
//===========================================================================
//===========================================================================
//地图初始化
//===========================================================================
//===========================================================================
//物品合成
function YDWESyStemItemCombineTriggerAction takes nothing returns nothing
local integer i=(GetStoredInteger(YDGC, ("YDWESyStemItemCombineRegistTrigger" ), ( "TriggerNumber"))) // INLINED!!
local trigger array trg
loop
set trg[i]=(YDWEI2T(GetStoredInteger(YDGC, ("YDWESyStemItemCombineRegistTrigger" ), ( I2S(i))))) // INLINED!!
if trg[i] != null and TriggerEvaluate(trg[i]) == true and IsTriggerEnabled(trg[i]) == true then
call TriggerExecute(trg[i])
endif
set trg[i]=null
set i=i - 1
exitwhen i <= 0
endloop
endfunction
//YDWE特殊技能结束事件
function YDWESyStemAbilityCastingOverTriggerAction takes unit hero,integer index returns nothing
local integer i= (GetStoredInteger(YDGC, ("YDWESyStemAbilityCastingOverRegistTrigger" ), ( "TriggerNumber"))) // INLINED!!
local integer abiltype= 0
local trigger array trg
loop
set trg[i]=(YDWEI2T(GetStoredInteger(YDGC, ("YDWESyStemAbilityCastingOverRegistTrigger" ), ( I2S(i))))) // INLINED!!
set abiltype=(GetStoredInteger(YDGC, ("YDWESyStemAbilityCastingOverRegistTrigger" ), ( I2S(YDWEH2I(trg[i])) + "AbilityType"))) // INLINED!!
if trg[i] != null and IsTriggerEnabled(trg[i]) == true and index == abiltype then
set bj_lastAbilityCastingUnit=hero
call ConditionalTriggerExecute(trg[i])
endif
set trg[i]=null
set i=i - 1
exitwhen i <= 0
endloop
endfunction
//===========================================================================
//系统函数完善
//===========================================================================
function YDWEIfThenElse takes boolexpr b,code c1,code c2 returns nothing
local trigger trg=CreateTrigger()
local triggercondition tc=TriggerAddCondition(trg, b)
local boolean b1=TriggerEvaluate(trg)
if b1 == true then
call TimerStart(CreateTimer(), 0, false, c1)
else
call TimerStart(CreateTimer(), 0, false, c2)
endif
call TriggerRemoveCondition(trg, tc)
//call DestroyCondition(tc)
call DestroyTrigger(trg)
set trg=null
set tc=null
endfunction
function YDWEIfThenElseMultiple takes nothing returns nothing
endfunction
function YDWEForLoopAMultiple takes nothing returns nothing
endfunction
function YDWECreateUnitPool takes nothing returns nothing
set bj_lastCreatedUnitPool=CreateUnitPool()
endfunction
function YDWEPlaceRandomUnit takes unitpool up,player p,real x,real y,real face returns nothing
set bj_lastPoolAbstractedUnit=PlaceRandomUnit(up, p, x, y, face)
endfunction
function YDWEGetLastUnitPool takes nothing returns unitpool
return bj_lastCreatedUnitPool
endfunction
function YDWEGetLastPoolAbstractedUnit takes nothing returns unit
return bj_lastPoolAbstractedUnit
endfunction
function YDWECreateItemPool takes nothing returns nothing
set bj_lastCreatedItemPool=CreateItemPool()
endfunction
function YDWEPlaceRandomItem takes itempool ip,real x,real y returns nothing
set bj_lastPoolAbstractedItem=PlaceRandomItem(ip, x, y)
endfunction
function YDWEGetLastItemPool takes nothing returns itempool
return bj_lastCreatedItemPool
endfunction
function YDWEGetLastPoolAbstractedItem takes nothing returns item
return bj_lastPoolAbstractedItem
endfunction
function YDWESetAttackDamageWeaponType takes attacktype at,damagetype dt,weapontype wt returns nothing
set bj_lastSetAttackType=at
set bj_lastSetDamageType=dt
set bj_lastSetWeaponType=wt
endfunction
//unitpool bj_lastCreatedPool=null
//unit bj_lastPoolAbstractedUnit=null
//===========================================================================
//===========================================================================
//飘动的红丝带
//===========================================================================
function YDWELocalVariableInitiliation takes nothing returns nothing
local integer TriggerRunSteps= (GetStoredInteger(YDGC, (I2S(YDWEH2I(GetTriggeringTrigger())) ), ( "GlobalsTriggerRunSteps"))) // INLINED!!
set TriggerRunSteps=TriggerRunSteps + 1
call StoreInteger(YDGC, (I2S(YDWEH2I(GetTriggeringTrigger())) ), ( "GlobalsTriggerRunSteps" ), ( TriggerRunSteps)) // INLINED!!
call StoreInteger(YDGC, (I2S(YDWEH2I(GetTriggeringTrigger())) ), ( "TriggerRunSteps" ), ( TriggerRunSteps)) // INLINED!!
endfunction
function YDWEWaitForLocalVariable takes real time returns nothing
local integer TriggerRunSteps=(GetStoredInteger(YDGC, (I2S(YDWEH2I(GetTriggeringTrigger())) ), ( "TriggerRunSteps"))) // INLINED!!
// call BJDebugMsg("绛夊緟涔嬪墠TriggerRunSteps= "+I2S(TriggerRunSteps))
call TriggerSleepAction(time)
// call BJDebugMsg("绛夊緟涔嬪悗TriggerRunSteps= "+I2S(TriggerRunSteps))
call StoreInteger(YDGC, (I2S(YDWEH2I(GetTriggeringTrigger())) ), ( "TriggerRunSteps" ), ( TriggerRunSteps)) // INLINED!!
endfunction
function YDWELocalVariableEnd takes nothing returns nothing
local integer TriggerRunSteps= (GetStoredInteger(YDGC, (I2S(YDWEH2I(GetTriggeringTrigger())) ), ( "TriggerRunSteps"))) // INLINED!!
local string dir= I2S(YDWEH2I(GetTriggeringTrigger())) + I2S(TriggerRunSteps)
call FlushStoredMission(YDGC, (dir)) // INLINED!!
endfunction
//integer
function YDWESetLocalVariableInteger takes string s,integer i returns nothing
local integer TriggerRunSteps= (GetStoredInteger(YDGC, (I2S(YDWEH2I(GetTriggeringTrigger())) ), ( "TriggerRunSteps"))) // INLINED!!
local string dir= I2S(YDWEH2I(GetTriggeringTrigger())) + I2S(TriggerRunSteps)
call StoreInteger(YDGC, (dir ), ( s ), ( i)) // INLINED!!
endfunction
function YDWEGetLocalVariableInteger takes string s returns integer
local integer TriggerRunSteps= (GetStoredInteger(YDGC, (I2S(YDWEH2I(GetTriggeringTrigger())) ), ( "TriggerRunSteps"))) // INLINED!!
local string dir= I2S(YDWEH2I(GetTriggeringTrigger())) + I2S(TriggerRunSteps)
return (GetStoredInteger(YDGC, (dir ), ( s))) // INLINED!!
endfunction
function YDWESetLocalVariableIntegerArray takes string s,integer index,integer i returns nothing
local integer TriggerRunSteps= (GetStoredInteger(YDGC, (I2S(YDWEH2I(GetTriggeringTrigger())) ), ( "TriggerRunSteps"))) // INLINED!!
local string dir= I2S(YDWEH2I(GetTriggeringTrigger())) + I2S(TriggerRunSteps)
call StoreInteger(YDGC, (dir ), ( s + I2S(index) ), ( i)) // INLINED!!
endfunction
function YDWEGetLocalVariableIntegerArray takes string s,integer index returns integer
local integer TriggerRunSteps= (GetStoredInteger(YDGC, (I2S(YDWEH2I(GetTriggeringTrigger())) ), ( "TriggerRunSteps"))) // INLINED!!
local string dir= I2S(YDWEH2I(GetTriggeringTrigger())) + I2S(TriggerRunSteps)
return (GetStoredInteger(YDGC, (dir ), ( s + I2S(index)))) // INLINED!!
endfunction
//real
function YDWESetLocalVariableReal takes string s,real R returns nothing
local integer TriggerRunSteps= (GetStoredInteger(YDGC, (I2S(YDWEH2I(GetTriggeringTrigger())) ), ( "TriggerRunSteps"))) // INLINED!!
local string dir= I2S(YDWEH2I(GetTriggeringTrigger())) + I2S(TriggerRunSteps)
call StoreReal(YDGC, (dir ), ( s ), (( R)*1.0)) // INLINED!!
endfunction
function YDWEGetLocalVariableReal takes string s returns real
local integer TriggerRunSteps= (GetStoredInteger(YDGC, (I2S(YDWEH2I(GetTriggeringTrigger())) ), ( "TriggerRunSteps"))) // INLINED!!
local string dir= I2S(YDWEH2I(GetTriggeringTrigger())) + I2S(TriggerRunSteps)
return (GetStoredReal(YDGC, (dir ), ( s))) // INLINED!!
endfunction
function YDWESetLocalVariableRealArray takes string s,integer index,real R returns nothing
local integer TriggerRunSteps= (GetStoredInteger(YDGC, (I2S(YDWEH2I(GetTriggeringTrigger())) ), ( "TriggerRunSteps"))) // INLINED!!
local string dir= I2S(YDWEH2I(GetTriggeringTrigger())) + I2S(TriggerRunSteps)
call StoreReal(YDGC, (dir ), ( s + I2S(index) ), (( R)*1.0)) // INLINED!!
endfunction
function YDWEGetLocalVariableRealArray takes string s,integer index returns real
local integer TriggerRunSteps= (GetStoredInteger(YDGC, (I2S(YDWEH2I(GetTriggeringTrigger())) ), ( "TriggerRunSteps"))) // INLINED!!
local string dir= I2S(YDWEH2I(GetTriggeringTrigger())) + I2S(TriggerRunSteps)
return (GetStoredReal(YDGC, (dir ), ( s + I2S(index)))) // INLINED!!
endfunction
//string
function YDWESetLocalVariableString takes string s,string str returns nothing
local integer TriggerRunSteps= (GetStoredInteger(YDGC, (I2S(YDWEH2I(GetTriggeringTrigger())) ), ( "TriggerRunSteps"))) // INLINED!!
local string dir= I2S(YDWEH2I(GetTriggeringTrigger())) + I2S(TriggerRunSteps)
call StoreString(YDGC, (dir ), ( s ), ( str)) // INLINED!!
endfunction
function YDWEGetLocalVariableString takes string s returns string
local integer TriggerRunSteps= (GetStoredInteger(YDGC, (I2S(YDWEH2I(GetTriggeringTrigger())) ), ( "TriggerRunSteps"))) // INLINED!!
local string dir= I2S(YDWEH2I(GetTriggeringTrigger())) + I2S(TriggerRunSteps)
return (GetStoredString(YDGC, (dir ), ( s))) // INLINED!!
endfunction
function YDWESetLocalVariableStringArray takes string s,integer index,string str returns nothing
local integer TriggerRunSteps= (GetStoredInteger(YDGC, (I2S(YDWEH2I(GetTriggeringTrigger())) ), ( "TriggerRunSteps"))) // INLINED!!
local string dir= I2S(YDWEH2I(GetTriggeringTrigger())) + I2S(TriggerRunSteps)
call StoreString(YDGC, (dir ), ( s + I2S(index) ), ( str)) // INLINED!!
endfunction
function YDWEGetLocalVariableStringArray takes string s,integer index returns string
local integer TriggerRunSteps= (GetStoredInteger(YDGC, (I2S(YDWEH2I(GetTriggeringTrigger())) ), ( "TriggerRunSteps"))) // INLINED!!
local string dir= I2S(YDWEH2I(GetTriggeringTrigger())) + I2S(TriggerRunSteps)
return (GetStoredString(YDGC, (dir ), ( s + I2S(index)))) // INLINED!!
endfunction
//boolean
function YDWESetLocalVariableBoolean takes string s,boolean bl returns nothing
local integer TriggerRunSteps= (GetStoredInteger(YDGC, (I2S(YDWEH2I(GetTriggeringTrigger())) ), ( "TriggerRunSteps"))) // INLINED!!
local string dir= I2S(YDWEH2I(GetTriggeringTrigger())) + I2S(TriggerRunSteps)
call StoreBoolean(YDGC, (dir ), ( s ), ( bl)) // INLINED!!
endfunction
function YDWEGetLocalVariableBoolean takes string s returns boolean
local integer TriggerRunSteps= (GetStoredInteger(YDGC, (I2S(YDWEH2I(GetTriggeringTrigger())) ), ( "TriggerRunSteps"))) // INLINED!!
local string dir= I2S(YDWEH2I(GetTriggeringTrigger())) + I2S(TriggerRunSteps)
return (GetStoredBoolean(YDGC, (dir ), ( s))) // INLINED!!
endfunction
function YDWESetLocalVariableBooleanArray takes string s,integer index,boolean bl returns nothing
local integer TriggerRunSteps= (GetStoredInteger(YDGC, (I2S(YDWEH2I(GetTriggeringTrigger())) ), ( "TriggerRunSteps"))) // INLINED!!
local string dir= I2S(YDWEH2I(GetTriggeringTrigger())) + I2S(TriggerRunSteps)
call StoreBoolean(YDGC, (dir ), ( s + I2S(index) ), ( bl)) // INLINED!!
endfunction
function YDWEGetLocalVariableBooleanArray takes string s,integer index returns boolean
local integer TriggerRunSteps= (GetStoredInteger(YDGC, (I2S(YDWEH2I(GetTriggeringTrigger())) ), ( "TriggerRunSteps"))) // INLINED!!
local string dir= I2S(YDWEH2I(GetTriggeringTrigger())) + I2S(TriggerRunSteps)
return (GetStoredBoolean(YDGC, (dir ), ( s + I2S(index)))) // INLINED!!
endfunction
//unit
function YDWESetLocalVariableUnit takes string s,unit u returns nothing
local integer TriggerRunSteps= (GetStoredInteger(YDGC, (I2S(YDWEH2I(GetTriggeringTrigger())) ), ( "TriggerRunSteps"))) // INLINED!!
local string dir= I2S(YDWEH2I(GetTriggeringTrigger())) + I2S(TriggerRunSteps)
call StoreInteger(YDGC, (dir ), ( s ), YDWEH2I(( u))) // INLINED!!
endfunction
function YDWEGetLocalVariableUnit takes string s returns unit
local integer TriggerRunSteps= (GetStoredInteger(YDGC, (I2S(YDWEH2I(GetTriggeringTrigger())) ), ( "TriggerRunSteps"))) // INLINED!!
local string dir= I2S(YDWEH2I(GetTriggeringTrigger())) + I2S(TriggerRunSteps)
return (YDWEI2U(GetStoredInteger(YDGC, (dir ), ( s)))) // INLINED!!
endfunction
function YDWESetLocalVariableUnitArray takes string s,integer index,unit u returns nothing
local integer TriggerRunSteps= (GetStoredInteger(YDGC, (I2S(YDWEH2I(GetTriggeringTrigger())) ), ( "TriggerRunSteps"))) // INLINED!!
local string dir= I2S(YDWEH2I(GetTriggeringTrigger())) + I2S(TriggerRunSteps)
call StoreInteger(YDGC, (dir ), ( s + I2S(index) ), YDWEH2I(( u))) // INLINED!!
endfunction
function YDWEGetLocalVariableUnitArray takes string s,integer index returns unit
local integer TriggerRunSteps= (GetStoredInteger(YDGC, (I2S(YDWEH2I(GetTriggeringTrigger())) ), ( "TriggerRunSteps"))) // INLINED!!
local string dir= I2S(YDWEH2I(GetTriggeringTrigger())) + I2S(TriggerRunSteps)
return (YDWEI2U(GetStoredInteger(YDGC, (dir ), ( s + I2S(index))))) // INLINED!!
endfunction
//unit code
function YDWESetLocalVariableUnitID takes string s,integer uid returns nothing
local integer TriggerRunSteps= (GetStoredInteger(YDGC, (I2S(YDWEH2I(GetTriggeringTrigger())) ), ( "TriggerRunSteps"))) // INLINED!!
local string dir= I2S(YDWEH2I(GetTriggeringTrigger())) + I2S(TriggerRunSteps)
call StoreInteger(YDGC, (dir ), ( s ), ( uid)) // INLINED!!
endfunction
function YDWEGetLocalVariableUnitID takes string s returns integer
local integer TriggerRunSteps= (GetStoredInteger(YDGC, (I2S(YDWEH2I(GetTriggeringTrigger())) ), ( "TriggerRunSteps"))) // INLINED!!
local string dir= I2S(YDWEH2I(GetTriggeringTrigger())) + I2S(TriggerRunSteps)
return (GetStoredInteger(YDGC, (dir ), ( s))) // INLINED!!
endfunction
function YDWESetLocalVariableUnitIDArray takes string s,integer index,integer uid returns nothing
local integer TriggerRunSteps= (GetStoredInteger(YDGC, (I2S(YDWEH2I(GetTriggeringTrigger())) ), ( "TriggerRunSteps"))) // INLINED!!
local string dir= I2S(YDWEH2I(GetTriggeringTrigger())) + I2S(TriggerRunSteps)
call StoreInteger(YDGC, (dir ), ( s + I2S(index) ), ( uid)) // INLINED!!
endfunction
function YDWEGetLocalVariableUnitIDArray takes string s,integer index returns integer
local integer TriggerRunSteps= (GetStoredInteger(YDGC, (I2S(YDWEH2I(GetTriggeringTrigger())) ), ( "TriggerRunSteps"))) // INLINED!!
local string dir= I2S(YDWEH2I(GetTriggeringTrigger())) + I2S(TriggerRunSteps)
return (GetStoredInteger(YDGC, (dir ), ( s + I2S(index)))) // INLINED!!
endfunction
//ability code
function YDWESetLocalVariableAbilityID takes string s,integer abid returns nothing
local integer TriggerRunSteps= (GetStoredInteger(YDGC, (I2S(YDWEH2I(GetTriggeringTrigger())) ), ( "TriggerRunSteps"))) // INLINED!!
local string dir= I2S(YDWEH2I(GetTriggeringTrigger())) + I2S(TriggerRunSteps)
call StoreInteger(YDGC, (dir ), ( s ), ( abid)) // INLINED!!
endfunction
function YDWEGetLocalVariableAbilityID takes string s returns integer
local integer TriggerRunSteps= (GetStoredInteger(YDGC, (I2S(YDWEH2I(GetTriggeringTrigger())) ), ( "TriggerRunSteps"))) // INLINED!!
local string dir= I2S(YDWEH2I(GetTriggeringTrigger())) + I2S(TriggerRunSteps)
return (GetStoredInteger(YDGC, (dir ), ( s))) // INLINED!!
endfunction
function YDWESetLocalVariableAbilityIDArray takes string s,integer index,integer abid returns nothing
local integer TriggerRunSteps= (GetStoredInteger(YDGC, (I2S(YDWEH2I(GetTriggeringTrigger())) ), ( "TriggerRunSteps"))) // INLINED!!
local string dir= I2S(YDWEH2I(GetTriggeringTrigger())) + I2S(TriggerRunSteps)
call StoreInteger(YDGC, (dir ), ( s + I2S(index) ), ( abid)) // INLINED!!
endfunction
function YDWEGetLocalVariableAbilityIDArray takes string s,integer index returns integer
local integer TriggerRunSteps= (GetStoredInteger(YDGC, (I2S(YDWEH2I(GetTriggeringTrigger())) ), ( "TriggerRunSteps"))) // INLINED!!
local string dir= I2S(YDWEH2I(GetTriggeringTrigger())) + I2S(TriggerRunSteps)
return (GetStoredInteger(YDGC, (dir ), ( s + I2S(index)))) // INLINED!!
endfunction
//item
function YDWESetLocalVariableItem takes string s,item it returns nothing
local integer TriggerRunSteps= (GetStoredInteger(YDGC, (I2S(YDWEH2I(GetTriggeringTrigger())) ), ( "TriggerRunSteps"))) // INLINED!!
local string dir= I2S(YDWEH2I(GetTriggeringTrigger())) + I2S(TriggerRunSteps)
call StoreInteger(YDGC, (dir ), ( s ), YDWEH2I(( it))) // INLINED!!
endfunction
function YDWEGetLocalVariableItem takes string s returns item
local integer TriggerRunSteps= (GetStoredInteger(YDGC, (I2S(YDWEH2I(GetTriggeringTrigger())) ), ( "TriggerRunSteps"))) // INLINED!!
local string dir= I2S(YDWEH2I(GetTriggeringTrigger())) + I2S(TriggerRunSteps)
return (YDWEI2It(GetStoredInteger(YDGC, (dir ), ( s)))) // INLINED!!
endfunction
function YDWESetLocalVariableItemArray takes string s,integer index,item it returns nothing
local integer TriggerRunSteps= (GetStoredInteger(YDGC, (I2S(YDWEH2I(GetTriggeringTrigger())) ), ( "TriggerRunSteps"))) // INLINED!!
local string dir= I2S(YDWEH2I(GetTriggeringTrigger())) + I2S(TriggerRunSteps)
call StoreInteger(YDGC, (dir ), ( s + I2S(index) ), YDWEH2I(( it))) // INLINED!!
endfunction
function YDWEGetLocalVariableItemArray takes string s,integer index returns item
local integer TriggerRunSteps= (GetStoredInteger(YDGC, (I2S(YDWEH2I(GetTriggeringTrigger())) ), ( "TriggerRunSteps"))) // INLINED!!
local string dir= I2S(YDWEH2I(GetTriggeringTrigger())) + I2S(TriggerRunSteps)
return (YDWEI2It(GetStoredInteger(YDGC, (dir ), ( s + I2S(index))))) // INLINED!!
endfunction
//item code
function YDWESetLocalVariableItemID takes string s,integer itid returns nothing
local integer TriggerRunSteps= (GetStoredInteger(YDGC, (I2S(YDWEH2I(GetTriggeringTrigger())) ), ( "TriggerRunSteps"))) // INLINED!!
local string dir= I2S(YDWEH2I(GetTriggeringTrigger())) + I2S(TriggerRunSteps)
call StoreInteger(YDGC, (dir ), ( s ), ( itid)) // INLINED!!
endfunction
function YDWEGetLocalVariableItemID takes string s returns integer
local integer TriggerRunSteps= (GetStoredInteger(YDGC, (I2S(YDWEH2I(GetTriggeringTrigger())) ), ( "TriggerRunSteps"))) // INLINED!!
local string dir= I2S(YDWEH2I(GetTriggeringTrigger())) + I2S(TriggerRunSteps)
return (GetStoredInteger(YDGC, (dir ), ( s))) // INLINED!!
endfunction
function YDWESetLocalVariableItemIDArray takes string s,integer index,integer itid returns nothing
local integer TriggerRunSteps= (GetStoredInteger(YDGC, (I2S(YDWEH2I(GetTriggeringTrigger())) ), ( "TriggerRunSteps"))) // INLINED!!
local string dir= I2S(YDWEH2I(GetTriggeringTrigger())) + I2S(TriggerRunSteps)
call StoreInteger(YDGC, (dir ), ( s + I2S(index) ), ( itid)) // INLINED!!
endfunction
function YDWEGetLocalVariableItemIDArray takes string s,integer index returns integer
local integer TriggerRunSteps= (GetStoredInteger(YDGC, (I2S(YDWEH2I(GetTriggeringTrigger())) ), ( "TriggerRunSteps"))) // INLINED!!
local string dir= I2S(YDWEH2I(GetTriggeringTrigger())) + I2S(TriggerRunSteps)
return (GetStoredInteger(YDGC, (dir ), ( s + I2S(index)))) // INLINED!!
endfunction
//location
function YDWESetLocalVariableLocation takes string s,location point returns nothing
local integer TriggerRunSteps= (GetStoredInteger(YDGC, (I2S(YDWEH2I(GetTriggeringTrigger())) ), ( "TriggerRunSteps"))) // INLINED!!
local string dir= I2S(YDWEH2I(GetTriggeringTrigger())) + I2S(TriggerRunSteps)
call StoreInteger(YDGC, (dir ), ( s ), YDWEH2I(( point))) // INLINED!!
endfunction
function YDWEGetLocalVariableLocation takes string s returns location
local integer TriggerRunSteps= (GetStoredInteger(YDGC, (I2S(YDWEH2I(GetTriggeringTrigger())) ), ( "TriggerRunSteps"))) // INLINED!!
local string dir= I2S(YDWEH2I(GetTriggeringTrigger())) + I2S(TriggerRunSteps)
return (YDWEI2Pt(GetStoredInteger(YDGC, (dir ), ( s)))) // INLINED!!
endfunction
function YDWESetLocalVariableLocationArray takes string s,integer index,location point returns nothing
local integer TriggerRunSteps= (GetStoredInteger(YDGC, (I2S(YDWEH2I(GetTriggeringTrigger())) ), ( "TriggerRunSteps"))) // INLINED!!
local string dir= I2S(YDWEH2I(GetTriggeringTrigger())) + I2S(TriggerRunSteps)
call StoreInteger(YDGC, (dir ), ( s + I2S(index) ), YDWEH2I(( point))) // INLINED!!
endfunction
function YDWEGetLocalVariableLocationArray takes string s,integer index returns location
local integer TriggerRunSteps= (GetStoredInteger(YDGC, (I2S(YDWEH2I(GetTriggeringTrigger())) ), ( "TriggerRunSteps"))) // INLINED!!
local string dir= I2S(YDWEH2I(GetTriggeringTrigger())) + I2S(TriggerRunSteps)
return (YDWEI2Pt(GetStoredInteger(YDGC, (dir ), ( s + I2S(index))))) // INLINED!!
endfunction
//group
function YDWESetLocalVariableGroup takes string s,group g returns nothing
local integer TriggerRunSteps= (GetStoredInteger(YDGC, (I2S(YDWEH2I(GetTriggeringTrigger())) ), ( "TriggerRunSteps"))) // INLINED!!
local string dir= I2S(YDWEH2I(GetTriggeringTrigger())) + I2S(TriggerRunSteps)
call StoreInteger(YDGC, (dir ), ( s ), YDWEH2I(( g))) // INLINED!!
endfunction
function YDWEGetLocalVariableGroup takes string s returns group
local integer TriggerRunSteps= (GetStoredInteger(YDGC, (I2S(YDWEH2I(GetTriggeringTrigger())) ), ( "TriggerRunSteps"))) // INLINED!!
local string dir= I2S(YDWEH2I(GetTriggeringTrigger())) + I2S(TriggerRunSteps)
return (YDWEI2G(GetStoredInteger(YDGC, (dir ), ( s)))) // INLINED!!
endfunction
function YDWESetLocalVariableGroupArray takes string s,integer index,group g returns nothing
local integer TriggerRunSteps= (GetStoredInteger(YDGC, (I2S(YDWEH2I(GetTriggeringTrigger())) ), ( "TriggerRunSteps"))) // INLINED!!
local string dir= I2S(YDWEH2I(GetTriggeringTrigger())) + I2S(TriggerRunSteps)
call StoreInteger(YDGC, (dir ), ( s + I2S(index) ), YDWEH2I(( g))) // INLINED!!
endfunction
function YDWEGetLocalVariableGroupArray takes string s,integer index returns group
local integer TriggerRunSteps= (GetStoredInteger(YDGC, (I2S(YDWEH2I(GetTriggeringTrigger())) ), ( "TriggerRunSteps"))) // INLINED!!
local string dir= I2S(YDWEH2I(GetTriggeringTrigger())) + I2S(TriggerRunSteps)
return (YDWEI2G(GetStoredInteger(YDGC, (dir ), ( s + I2S(index))))) // INLINED!!
endfunction
//effect
function YDWESetLocalVariableEffect takes string s,effect e returns nothing
local integer TriggerRunSteps= (GetStoredInteger(YDGC, (I2S(YDWEH2I(GetTriggeringTrigger())) ), ( "TriggerRunSteps"))) // INLINED!!
local string dir= I2S(YDWEH2I(GetTriggeringTrigger())) + I2S(TriggerRunSteps)
call StoreInteger(YDGC, (dir ), ( s ), YDWEH2I(( e))) // INLINED!!
endfunction
function YDWEGetLocalVariableEffect takes string s returns effect
local integer TriggerRunSteps= (GetStoredInteger(YDGC, (I2S(YDWEH2I(GetTriggeringTrigger())) ), ( "TriggerRunSteps"))) // INLINED!!
local string dir= I2S(YDWEH2I(GetTriggeringTrigger())) + I2S(TriggerRunSteps)
return (YDWEI2E(GetStoredInteger(YDGC, (dir ), ( s)))) // INLINED!!
endfunction
function YDWESetLocalVariableEffectArray takes string s,integer index,effect e returns nothing
local integer TriggerRunSteps= (GetStoredInteger(YDGC, (I2S(YDWEH2I(GetTriggeringTrigger())) ), ( "TriggerRunSteps"))) // INLINED!!
local string dir= I2S(YDWEH2I(GetTriggeringTrigger())) + I2S(TriggerRunSteps)
call StoreInteger(YDGC, (dir ), ( s + I2S(index) ), YDWEH2I(( e))) // INLINED!!
endfunction
function YDWEGetLocalVariableEffectArray takes string s,integer index returns effect
local integer TriggerRunSteps= (GetStoredInteger(YDGC, (I2S(YDWEH2I(GetTriggeringTrigger())) ), ( "TriggerRunSteps"))) // INLINED!!
local string dir= I2S(YDWEH2I(GetTriggeringTrigger())) + I2S(TriggerRunSteps)
return (YDWEI2E(GetStoredInteger(YDGC, (dir ), ( s + I2S(index))))) // INLINED!!
endfunction
//rect
function YDWESetLocalVariableRect takes string s,rect rt returns nothing
local integer TriggerRunSteps= (GetStoredInteger(YDGC, (I2S(YDWEH2I(GetTriggeringTrigger())) ), ( "TriggerRunSteps"))) // INLINED!!
local string dir= I2S(YDWEH2I(GetTriggeringTrigger())) + I2S(TriggerRunSteps)
call StoreInteger(YDGC, (dir ), ( s ), YDWEH2I(( rt))) // INLINED!!
endfunction
function YDWEGetLocalVariableRect takes string s returns rect
local integer TriggerRunSteps= (GetStoredInteger(YDGC, (I2S(YDWEH2I(GetTriggeringTrigger())) ), ( "TriggerRunSteps"))) // INLINED!!
local string dir= I2S(YDWEH2I(GetTriggeringTrigger())) + I2S(TriggerRunSteps)
return (YDWEI2Rt(GetStoredInteger(YDGC, (dir ), ( s)))) // INLINED!!
endfunction
function YDWESetLocalVariableRectArray takes string s,integer index,rect rt returns nothing
local integer TriggerRunSteps= (GetStoredInteger(YDGC, (I2S(YDWEH2I(GetTriggeringTrigger())) ), ( "TriggerRunSteps"))) // INLINED!!
local string dir= I2S(YDWEH2I(GetTriggeringTrigger())) + I2S(TriggerRunSteps)
call StoreInteger(YDGC, (dir ), ( s + I2S(index) ), YDWEH2I(( rt))) // INLINED!!
endfunction
function YDWEGetLocalVariableRectArray takes string s,integer index returns rect
local integer TriggerRunSteps= (GetStoredInteger(YDGC, (I2S(YDWEH2I(GetTriggeringTrigger())) ), ( "TriggerRunSteps"))) // INLINED!!
local string dir= I2S(YDWEH2I(GetTriggeringTrigger())) + I2S(TriggerRunSteps)
return (YDWEI2Rt(GetStoredInteger(YDGC, (dir ), ( s + I2S(index))))) // INLINED!!
endfunction
//===========================================================================
//===========================================================================
//全局函数
//===========================================================================
//===========================================================================
//===========================================================================
//物品属性系
//===========================================================================
function YDWEItemAbilityStorage takes integer itid,integer ab returns nothing
local integer index= (GetStoredInteger(YDGC, (I2S(itid) ), ( "AbilityStorageIndex"))) // INLINED!!
set index=index + 1
call StoreInteger(YDGC, (I2S(itid) ), ( "AbilityStorage" + I2S(index) ), ( ab)) // INLINED!!
call StoreInteger(YDGC, (I2S(itid) ), ( "AbilityStorageIndex" ), ( index)) // INLINED!!
endfunction
//===========================================================================
//拾取物品触发
//===========================================================================
function YDWEItemAbilitySystemByAbility_CON takes nothing returns boolean
local unit hero= GetTriggerUnit()
local item it=GetManipulatedItem()
local trigger trg=(YDWEI2T(GetStoredInteger(YDGC, (I2S(YDWEH2I(hero)) ), ( "MulItemSlotByAbility")))) // INLINED!!
local integer itid=GetItemTypeId(it)
local integer index= (GetStoredInteger(YDGC, (I2S(itid) ), ( "AbilityStorageIndex"))) // INLINED!!
local integer array skills
local integer i=0
local integer N=(GetStoredInteger(YDGC, (I2S(YDWEH2I(trg)) ), ( "ItemSlotNum"))) // INLINED!!
local boolean OnOff=(GetStoredBoolean(YDGC, (I2S(YDWEH2I(hero)) ), ( "YDWEItemAbilitySystemTriggerClose"))) // INLINED!!
if index == 0 or OnOff == true then
set it=null
set hero=null
set trg=null
return false
endif
loop
set i=i + 1
exitwhen i > index
set skills[i]=(GetStoredInteger(YDGC, (I2S(itid) ), ( "AbilityStorage" + I2S(i)))) // INLINED!!
if GetTriggerEventId() == ConvertUnitEvent(48) then
call UnitRemoveAbility(hero, skills[i])
elseif GetTriggerEventId() == ConvertUnitEvent(49) then
call UnitAddAbility(hero, skills[i])
call UnitMakeAbilityPermanent(hero, true, skills[i])
endif
endloop
set it=null
set hero=null
set trg=null
return false
endfunction
function YDWEItemAbilitySystem takes nothing returns nothing
local trigger trg=CreateTrigger()
call TriggerRegisterAnyUnitEventBJ(trg, EVENT_PLAYER_UNIT_PICKUP_ITEM)
call TriggerRegisterAnyUnitEventBJ(trg, EVENT_PLAYER_UNIT_DROP_ITEM)
call TriggerAddCondition(trg, Condition(function YDWEItemAbilitySystemByAbility_CON))
set trg=null
endfunction
//===========================================================================
//===========================================================================
//系统函数补充
//===========================================================================
//===========================================================================
function YDWEGetUnitItemSoftId takes unit hero,item it returns integer
local integer i= 0
loop
exitwhen i > 5
if UnitItemInSlot(hero, i) == it then
exitwhen true
endif
set i=i + 1
endloop
if i > 5 then
set i=0
else
set i=i + 1
endif
return i
endfunction
//===========================================================================
//===========================================================================
//地图初始化
//===========================================================================
//===========================================================================
//游戏时间
function YDWEGetGameCurrentTime takes nothing returns integer
return TimerSystem_BigSteps
endfunction
function YDWEGameTimeElapse takes nothing returns nothing
set TimerSystem_BigSteps=TimerSystem_BigSteps + 1
endfunction
//记录触发器函数
function YDWESaveTriggerActionsIndex2 takes trigger whichTrigger,code actionFunc returns triggeraction
//local triggeraction act
//call BJDebugMsg("bbb")
set FilterFuncSyStem_Index=FilterFuncSyStem_Index + 1
call StoreInteger(YDGC, (I2S(YDWEH2I(whichTrigger)) ), ( "ActionFunctionIndex" ), ( FilterFuncSyStem_Index)) // INLINED!!
set FilterFuncSyStem_filterfunc[FilterFuncSyStem_Index]=Filter(actionFunc)
// return TriggerAddAction(whichTrigger,actionFunc)
return null
endfunction
function YDWESaveTriggerActionsIndex takes trigger whichTrigger,code actionFunc returns triggeraction
//local triggeraction act
//call BJDebugMsg("aaa")
call YDWESaveTriggerActionsIndex2(whichTrigger , actionFunc)
return null
endfunction
//hook TriggerAddAction YDWESaveTriggerActionsIndex
//开启记录
function YDWEGameStartActions takes nothing returns nothing
set TimerSystem_BigTimer=CreateTimer()
call TimerStart(TimerSystem_BigTimer, TimerSystem_BigTimeout, true, function YDWEGameTimeElapse)
call YDWEItemAbilitySystem() //开启单位拾取物品触发器
endfunction
//显示版本
function YDWEVersion_Display takes nothing returns boolean
call DisplayTimedTextToPlayer(GetTriggerPlayer(), 0, 0, 30, "|cFF1E90FF褰撳墠缂栬緫鍣ㄧ増鏈?负锛?|r|cFF00FF00YDWE1.20姝e紡鐗?)
return false
endfunction
function YDWEVersion_Init takes nothing returns nothing
local trigger t= CreateTrigger()
local integer i= 0
loop
exitwhen i == 12
call TriggerRegisterPlayerChatEvent(t, Player(i), "YDWE Version", true)
set i=i + 1
endloop
call TriggerAddCondition(t, Condition(function YDWEVersion_Display))
set t=null
endfunction
function InitializeYD takes nothing returns nothing
local trigger trg=CreateTrigger()
call TriggerRegisterTimerEventSingle(trg, 0.00)
call TriggerAddAction(trg, function YDWEGameStartActions)
set TimerSystem_TimerZero=CreateTimer()
set trg=null
//call BJDebugMsg("The result is " + I2S(abcdefghij))
//=================设置变量=====================
set yd_MapMaxX=GetRectMaxX(bj_mapInitialPlayableArea)
set yd_MapMinX=GetRectMinX(bj_mapInitialPlayableArea)
set yd_MapMaxY=GetRectMaxY(bj_mapInitialPlayableArea)
set yd_MapMinY=GetRectMinY(bj_mapInitialPlayableArea)
//=================显示版本=====================
call YDWEVersion_Init()
endfunction
//library YDWEBase ends
//library Around:
//library TP1 requires YDWEBase
function Around__spin takes nothing returns nothing
local integer d= 0
local real x= 0.
local real y= 0.
local integer inst= 0
loop
exitwhen ( inst == s__Around__Data_Total )
set d=s__Around__Data_Structs[inst]
if ( s__Around__Data_dur[d] > 0 ) and ( GetUnitState(s__Around__Data_caster[d], UNIT_STATE_LIFE) > 0 ) and ( GetUnitState(s__Around__Data_obj[d], UNIT_STATE_LIFE) > 0 ) then
set s__Around__Data_each[d]=s__Around__Data_each[d] + Around__AROUND_INTER
if ( s__Around__Data_each[d] >= s__Around__Data_inter[d] ) then
set s__Around__Data_angle[d]=s__Around__Data_angle[d] + s__Around__Data_rate[d]
set s__Around__Data_radius[d]=s__Around__Data_radius[d] + s__Around__Data_dis[d]
set s__Around__Data_height[d]=s__Around__Data_height[d] + s__Around__Data_rise[d]
set x=GetUnitX(s__Around__Data_caster[d]) + s__Around__Data_radius[d] * Cos(s__Around__Data_angle[d])
set y=GetUnitY(s__Around__Data_caster[d]) + s__Around__Data_radius[d] * Sin(s__Around__Data_angle[d])
set x=YDWECoordinateX(x)
set y=YDWECoordinateY(y)
call SetUnitX(s__Around__Data_obj[d], x)
call SetUnitY(s__Around__Data_obj[d], y)
call SetUnitFlyHeight(s__Around__Data_obj[d], s__Around__Data_height[d], 0.)
set s__Around__Data_each[d]=0.
endif
set s__Around__Data_dur[d]=s__Around__Data_dur[d] - Around__AROUND_INTER
else
set bj_lastAbilityTargetUnit=s__Around__Data_caster[d]
call YDWESyStemAbilityCastingOverTriggerAction(s__Around__Data_obj[d] , 10)
set s__Around__Data_caster[d]=null
set s__Around__Data_obj[d]=null
call s__Around__Data_deallocate(d)
set s__Around__Data_Total=s__Around__Data_Total - 1
set s__Around__Data_Structs[inst]=s__Around__Data_Structs[s__Around__Data_Total]
set inst=inst - 1
endif
set inst=inst + 1
endloop
if ( s__Around__Data_Total == 0 ) then
call PauseTimer(Around__AROUND_TIM)
endif
endfunction
function YDWEAroundSystem takes unit satellite,unit star,real angleRate,real displacement,real riseRate,real timeout,real interval returns nothing
local integer d= s__Around__Data__allocate()
local real x1= GetUnitX(star)
local real y1= GetUnitY(star)
local real x2= GetUnitX(satellite)
local real y2= GetUnitY(satellite)
set s__Around__Data_caster[d]=star
set s__Around__Data_obj[d]=satellite
set s__Around__Data_dur[d]=timeout
set s__Around__Data_inter[d]=interval
set s__Around__Data_rate[d]=angleRate * ( 3.14159 / 180. )
set s__Around__Data_dis[d]=displacement
set s__Around__Data_rise[d]=riseRate
set s__Around__Data_angle[d]=Atan2(y2 - y1, x2 - x1)
set s__Around__Data_radius[d]=SquareRoot(( x2 - x1 ) * ( x2 - x1 ) + ( y2 - y1 ) * ( y2 - y1 ))
set s__Around__Data_height[d]=GetUnitFlyHeight(s__Around__Data_obj[d])
set s__Around__Data_Structs[s__Around__Data_Total]=(d)
set s__Around__Data_Total=s__Around__Data_Total + 1
call StoreInteger(YDGC, (I2S(YDWEH2I(satellite)) ), ( "abilevent" ), ( 10)) // INLINED!!
if ( s__Around__Data_Total - 1 == 0 ) then
call TimerStart(Around__AROUND_TIM, Around__AROUND_INTER, true, function Around__spin)
endif
endfunction
//library Around ends
//library YDWEJumpTimer:
function YDWEJumpTimerLoop takes nothing returns nothing
local timer t=GetExpiredTimer()
local unit hero=( (YDWEI2U(GetStoredInteger(YDGC, (I2S(YDWEH2I(t)) ), ( "Hero")))) ) // INLINED!!
local real angle=(GetStoredReal(YDGC, (I2S(YDWEH2I(t)) ), ( "Angle"))) // INLINED!!
local integer steeps=(GetStoredInteger(YDGC, (I2S(YDWEH2I(t)) ), ( "steeps"))) // INLINED!!
local integer steepsMax=(GetStoredInteger(YDGC, (I2S(YDWEH2I(t)) ), ( "steepsMax"))) // INLINED!!
local real heightMax=(GetStoredReal(YDGC, (I2S(YDWEH2I(t)) ), ( "heightMax"))) // INLINED!!
local real dist=(GetStoredReal(YDGC, (I2S(YDWEH2I(t)) ), ( "dist"))) // INLINED!!
local real dheig=(GetStoredReal(YDGC, (I2S(YDWEH2I(t)) ), ( "dheig"))) // INLINED!!
local real OriginHeight=(GetStoredReal(YDGC, (I2S(YDWEH2I(t)) ), ( "OriginHeight"))) // INLINED!!
local real x=(GetStoredReal(YDGC, (I2S(YDWEH2I(t)) ), ( "X"))) // INLINED!!
local real y=(GetStoredReal(YDGC, (I2S(YDWEH2I(t)) ), ( "Y"))) // INLINED!!
local real x1=0
local real y1=0
local real height=0
local integer lvJumpTimer=MoveMoreLevel_JumpTimer
local integer lvUnitMove=(GetStoredInteger(YDGC, (I2S(YDWEH2I(hero)) ), ( "lvUnitMove"))) // INLINED!!
if steeps < steepsMax and lvJumpTimer >= lvUnitMove then
set x1=x + steeps * dist * Cos(angle * 3.14159 / 180.0)
set y1=y + steeps * dist * Sin(angle * 3.14159 / 180.0)
set x1=YDWECoordinateX(x1)
set y1=YDWECoordinateY(y1)
call SetUnitX(hero, x1)
call SetUnitY(hero, y1)
set steeps=steeps + 1
call StoreInteger(YDGC, (I2S(YDWEH2I(t)) ), ( "steeps" ), ( steeps)) // INLINED!!
set height=( - ( 2 * I2R(steeps) * dheig - 1 ) * ( 2 * I2R(steeps) * dheig - 1 ) + 1 ) * heightMax + OriginHeight
call SetUnitFlyHeight(hero, height, 99999)
call SetUnitFacing(hero, angle)
else
call SetUnitFlyHeight(hero, OriginHeight, 99999)
call SetUnitPathing(hero, true)
call DestroyTimer(t)
call FlushStoredMission(YDGC, (I2S(YDWEH2I(t)))) // INLINED!!
call StoreInteger(YDGC, (I2S(YDWEH2I(hero)) ), ( "lvUnitMove" ), ( 0)) // INLINED!!
call YDWESyStemAbilityCastingOverTriggerAction(hero , 2)
endif
set t=null
set hero=null
endfunction
function YDWEJumpTimer takes unit hero,real angle,real distance,real lasttime,real timeout,real heightMax returns nothing
local timer t=null
local real x=GetUnitX(hero)
local real y=GetUnitY(hero)
local integer steepsMax=R2I(lasttime / timeout)
local integer steeps=0
local real dist=distance / steepsMax
local real dheig=1.0 / steepsMax
local real OriginHeight=GetUnitFlyHeight(hero)
local integer lvJumpTimer=MoveMoreLevel_JumpTimer
local integer lvUnitMove=(GetStoredInteger(YDGC, (I2S(YDWEH2I(hero)) ), ( "lvUnitMove"))) // INLINED!!
if lvJumpTimer > lvUnitMove then
set t=CreateTimer()
set lvUnitMove=lvJumpTimer
call StoreInteger(YDGC, (I2S(YDWEH2I(hero)) ), ( "lvUnitMove" ), ( lvUnitMove)) // INLINED!!
else
return
endif
call UnitAddAbility(hero, 'Amrf')
call UnitRemoveAbility(hero, 'Amrf')
call SetUnitPathing(hero, false)
call StoreInteger(YDGC, (I2S(YDWEH2I(t)) ), ( "Hero" ), YDWEH2I(( hero))) // INLINED!!
call StoreReal(YDGC, (I2S(YDWEH2I(t)) ), ( "OriginHeight" ), (( OriginHeight)*1.0)) // INLINED!!
call StoreReal(YDGC, (I2S(YDWEH2I(t)) ), ( "Angle" ), (( angle)*1.0)) // INLINED!!
call StoreReal(YDGC, (I2S(YDWEH2I(t)) ), ( "dist" ), (( dist)*1.0)) // INLINED!!
call StoreReal(YDGC, (I2S(YDWEH2I(t)) ), ( "heightMax" ), (( heightMax)*1.0)) // INLINED!!
call StoreReal(YDGC, (I2S(YDWEH2I(t)) ), ( "dheig" ), (( dheig)*1.0)) // INLINED!!
call StoreReal(YDGC, (I2S(YDWEH2I(t)) ), ( "X" ), (( x)*1.0)) // INLINED!!
call StoreReal(YDGC, (I2S(YDWEH2I(t)) ), ( "Y" ), (( y)*1.0)) // INLINED!!
call StoreInteger(YDGC, (I2S(YDWEH2I(t)) ), ( "steeps" ), ( steeps)) // INLINED!!
call StoreInteger(YDGC, (I2S(YDWEH2I(t)) ), ( "steepsMax" ), ( steepsMax)) // INLINED!!
call TimerStart(t, timeout, true, function YDWEJumpTimerLoop)
set t=null
endfunction
//library YDWEJumpTimer ends
//library YDWEMath:
//library YDWEMath ends
//library YDWESetGuard:
function YDWEGetUnitCurrentFree_Func takes unit u returns boolean
local string s= OrderId2String(GetUnitCurrentOrder(u))
if s == null then
return true
endif
return false
endfunction
function YDWERemoveGuard takes unit pet returns nothing
local integer tm= (GetStoredInteger(YDGC, (I2S(YDWEH2I(pet)) ), ( "Timer"))) // INLINED!!
call FlushStoredMission(YDGC, (I2S(YDWEH2I(pet)))) // INLINED!!
call FlushStoredMission(YDGC, (I2S(tm))) // INLINED!!
call DestroyTimer((YDWEI2Tm(GetStoredInteger(YDGC, (I2S(YDWEH2I(pet)) ), ( "Timer"))))) // INLINED!!
endfunction
function YDWESetGuard_Func takes nothing returns nothing
local timer tm= GetExpiredTimer()
local unit pet= ( (YDWEI2U(GetStoredInteger(YDGC, (I2S(YDWEH2I(tm)) ), ( "Pet")))) ) // INLINED!!
local unit captain= ( (YDWEI2U(GetStoredInteger(YDGC, (I2S(YDWEH2I(tm)) ), ( "Captain")))) ) // INLINED!!
local real x= GetUnitX(captain) - GetUnitX(pet)
local real y= GetUnitY(captain) - GetUnitY(pet)
local real d= x * x + y * y
local real v
local real a
local effect e=null
local real life= (GetStoredReal(YDGC, (I2S(YDWEH2I(tm)) ), ( "Life"))) // INLINED!!
local integer p= (GetStoredInteger(YDGC, (I2S(YDWEH2I(tm)) ), ( "Percent"))) // INLINED!!
set v=(GetStoredReal(YDGC, (I2S(YDWEH2I(tm)) ), ( "GuardRanger"))) // INLINED!!
if GetUnitState(pet, UNIT_STATE_LIFE) > 0 and GetUnitState(captain, UNIT_STATE_LIFE) > 0 then
if d < v * v then
if YDWEGetUnitCurrentFree_Func(pet) == true and GetRandomInt(0, 100) < p then
set x=GetUnitX(captain)
set y=GetUnitY(captain)
set d=GetRandomReal(0, v)
set a=GetRandomReal(0, 360)
call IssuePointOrder(pet, "patrol", x + d * CosBJ(a), y + d * SinBJ(a))
endif
else
set v=(GetStoredReal(YDGC, (I2S(YDWEH2I(tm)) ), ( "ReturnRanger"))) // INLINED!!
if d < v * v then
if YDWEGetUnitCurrentFree_Func(pet) == true then
call IssuePointOrder(pet, "patrol", GetUnitX(captain), GetUnitY(captain))
endif
else
set v=(GetStoredReal(YDGC, (I2S(YDWEH2I(tm)) ), ( "OutRanger"))) // INLINED!!
if d != 0 and d > v * v then
call SetUnitPosition(pet, GetUnitX(captain), GetUnitY(captain))
set e=AddSpecialEffectTarget("Abilities\\Spells\\Human\\MassTeleport\\MassTeleportTarget.mdl", captain, "chest")
call DestroyEffect(e)
else
call IssuePointOrder(pet, "move", GetUnitX(captain), GetUnitY(captain))
endif
endif
endif
else
call IssuePointOrder(pet, "attack", GetUnitX(captain), GetUnitY(captain))
call YDWERemoveGuard(pet)
endif
set tm=null
set pet=null
set captain=null
set e=null
endfunction
function YDWESetGuard takes unit pet,unit captain,real timeout,real guardRanger,real returnRanger,real outRanger,integer percent returns nothing
local timer tm= CreateTimer()
call StoreInteger(YDGC, (I2S(YDWEH2I(pet)) ), ( "Timer" ), YDWEH2I(( tm))) // INLINED!!
call StoreInteger(YDGC, (I2S(YDWEH2I(tm)) ), ( "pet" ), YDWEH2I(( pet))) // INLINED!!
call StoreInteger(YDGC, (I2S(YDWEH2I(tm)) ), ( "Captain" ), YDWEH2I(( captain))) // INLINED!!
call StoreInteger(YDGC, (I2S(YDWEH2I(tm)) ), ( "Percent" ), ( percent)) // INLINED!!
call StoreReal(YDGC, (I2S(YDWEH2I(tm)) ), ( "GuardRanger" ), (( guardRanger)*1.0)) // INLINED!!
call StoreReal(YDGC, (I2S(YDWEH2I(tm)) ), ( "ReturnRanger" ), (( returnRanger)*1.0)) // INLINED!!
call StoreReal(YDGC, (I2S(YDWEH2I(tm)) ), ( "OutRanger" ), (( outRanger)*1.0)) // INLINED!!
call TimerStart(tm, timeout, true, function YDWESetGuard_Func)
set tm=null
endfunction
//library YDWESetGuard ends
//library YDWETimerSystem:
function YDWECoordinateInteger3p takes integer i,integer j,integer k returns integer
if i >= j then
set i=k
endif
return i
endfunction
//该函数序列处理
function YDWETimerSystem_list_index_limit takes integer index,boolexpr proc returns integer
local integer i=0
//以下用来处理当任务序列超过8192的情形
loop
set yd_ctimer_list_index=YDWECoordinateInteger3p(yd_ctimer_list_index + 1 , 8191 , 0)
exitwhen yd_ctimer_list_index_boolean[yd_ctimer_list_index] == false
endloop
set yd_ctimer_list_index_boolean[yd_ctimer_list_index]=true
//以下用来获取当前任务序列下的执行序列
set yd_ctimer_list_proc[yd_ctimer_list_index]=proc
set i=(GetStoredInteger(YDGC, (I2S(YDWEH2I(TimerSystem_Timer)) ), ( "MaxIndex" + I2S(index)))) // INLINED!!
set i=i + 1
call StoreInteger(YDGC, (I2S(YDWEH2I(TimerSystem_Timer)) ), ( "MaxIndex" + I2S(index) ), ( i)) // INLINED!!
call StoreInteger(YDGC, (I2S(YDWEH2I(TimerSystem_Timer)) ), ( I2S(index) + "Index" + I2S(i) ), ( yd_ctimer_list_index)) // INLINED!!
return i
endfunction
//删除单位
function YDWETimerSystem_RemoveUnit_CallBack takes nothing returns nothing
call RemoveUnit((YDWEI2U(GetStoredInteger(YDGC, (I2S(YDWEH2I(TimerSystem_Timer)) ), ( I2S(yd_ctimer_current_index) + "data" + I2S(yd_ctimer_list_proc_index)))))) // INLINED!!
call FlushStoredInteger(YDGC, (I2S(YDWEH2I(TimerSystem_Timer)) ), ( I2S(yd_ctimer_current_index) + "data" + I2S(yd_ctimer_list_proc_index))) // INLINED!!
endfunction
function YDWETimerRemoveUnit takes real time,unit u returns nothing
local integer index=R2I(100 * time) + yd_ctimer_current_index
local integer i=YDWETimerSystem_list_index_limit(index , yd_ctimer_RemoveUnit_proc)
call StoreInteger(YDGC, (I2S(YDWEH2I(TimerSystem_Timer)) ), ( I2S(index) + "data" + I2S(i) ), YDWEH2I(( u))) // INLINED!!
endfunction
//摧毁计时器
function YDWETimerSystem_DestroyTimer_CallBack takes nothing returns nothing
call DestroyTimer((YDWEI2Tm(GetStoredInteger(YDGC, (I2S(YDWEH2I(TimerSystem_Timer)) ), ( I2S(yd_ctimer_current_index) + "data" + I2S(yd_ctimer_list_proc_index)))))) // INLINED!!
call FlushStoredInteger(YDGC, (I2S(YDWEH2I(TimerSystem_Timer)) ), ( I2S(yd_ctimer_current_index) + "data" + I2S(yd_ctimer_list_proc_index))) // INLINED!!
endfunction
function YDWETimerDestroyTimer takes real time,timer t returns nothing
local integer index=R2I(100 * time) + yd_ctimer_current_index
local integer i=YDWETimerSystem_list_index_limit(index , yd_ctimer_DestroyTimer_proc)
call StoreInteger(YDGC, (I2S(YDWEH2I(TimerSystem_Timer)) ), ( I2S(index) + "data" + I2S(i) ), YDWEH2I(( t))) // INLINED!!
endfunction
//删除物品
function YDWETimerSystem_RemoveItem_CallBack takes nothing returns nothing
call RemoveItem((YDWEI2It(GetStoredInteger(YDGC, (I2S(YDWEH2I(TimerSystem_Timer)) ), ( I2S(yd_ctimer_current_index) + "data" + I2S(yd_ctimer_list_proc_index)))))) // INLINED!!
call FlushStoredInteger(YDGC, (I2S(YDWEH2I(TimerSystem_Timer)) ), ( I2S(yd_ctimer_current_index) + "data" + I2S(yd_ctimer_list_proc_index))) // INLINED!!
endfunction
function YDWETimerRemoveItem takes real time,item it returns nothing
local integer index=R2I(100 * time) + yd_ctimer_current_index
local integer i=YDWETimerSystem_list_index_limit(index , yd_ctimer_RemoveItem_proc)
call StoreInteger(YDGC, (I2S(YDWEH2I(TimerSystem_Timer)) ), ( I2S(index) + "data" + I2S(i) ), YDWEH2I(( it))) // INLINED!!
endfunction
//删除特效
function YDWETimerSystem_DestroyEffect_CallBack takes nothing returns nothing
call DestroyEffect((YDWEI2E(GetStoredInteger(YDGC, (I2S(YDWEH2I(TimerSystem_Timer)) ), ( I2S(yd_ctimer_current_index) + "data" + I2S(yd_ctimer_list_proc_index)))))) // INLINED!!
call FlushStoredInteger(YDGC, (I2S(YDWEH2I(TimerSystem_Timer)) ), ( I2S(yd_ctimer_current_index) + "data" + I2S(yd_ctimer_list_proc_index))) // INLINED!!
endfunction
function YDWETimerDestroyEffect takes real time,effect e returns nothing
local integer index=R2I(100 * time) + yd_ctimer_current_index
local integer i=YDWETimerSystem_list_index_limit(index , yd_ctimer_DestroyEffect_proc)
call StoreInteger(YDGC, (I2S(YDWEH2I(TimerSystem_Timer)) ), ( I2S(index) + "data" + I2S(i) ), YDWEH2I(( e))) // INLINED!!
endfunction
//删除闪电特效
function YDWETimerSystem_DestroyLightning_CallBack takes nothing returns nothing
call DestroyLightning((YDWEI2Ln(GetStoredInteger(YDGC, (I2S(YDWEH2I(TimerSystem_Timer)) ), ( I2S(yd_ctimer_current_index) + "data" + I2S(yd_ctimer_list_proc_index)))))) // INLINED!!
call FlushStoredInteger(YDGC, (I2S(YDWEH2I(TimerSystem_Timer)) ), ( I2S(yd_ctimer_current_index) + "data" + I2S(yd_ctimer_list_proc_index))) // INLINED!!
endfunction
function YDWETimerDestroyLightning takes real time,lightning lt returns nothing
local integer index=R2I(100 * time) + yd_ctimer_current_index
local integer i=YDWETimerSystem_list_index_limit(index , yd_ctimer_DestroyLightning_proc)
call StoreInteger(YDGC, (I2S(YDWEH2I(TimerSystem_Timer)) ), ( I2S(index) + "data" + I2S(i) ), YDWEH2I(( lt))) // INLINED!!
endfunction
//运行触发器
function YDWETimerSystem_RunTrigger_CallBack takes nothing returns nothing
call TriggerExecute((YDWEI2T(GetStoredInteger(YDGC, (I2S(YDWEH2I(TimerSystem_Timer)) ), ( I2S(yd_ctimer_current_index) + "data" + I2S(yd_ctimer_list_proc_index)))))) // INLINED!!
call FlushStoredInteger(YDGC, (I2S(YDWEH2I(TimerSystem_Timer)) ), ( I2S(yd_ctimer_current_index) + "data" + I2S(yd_ctimer_list_proc_index))) // INLINED!!
endfunction
function YDWETimerRunTrigger takes real time,trigger trg returns nothing
local integer index=R2I(100 * time) + yd_ctimer_current_index
local integer i=YDWETimerSystem_list_index_limit(index , yd_ctimer_RunTrigger_proc)
call StoreInteger(YDGC, (I2S(YDWEH2I(TimerSystem_Timer)) ), ( I2S(index) + "data" + I2S(i) ), YDWEH2I(( trg))) // INLINED!!
endfunction
//删除漂浮文字
function YDWETimerDestroyTextTag takes real time,texttag tt returns nothing
local integer N=0
local integer i=0
if time <= 0 then
set time=0.01
endif
call SetTextTagPermanent(tt, false)
call SetTextTagLifespan(tt, time)
call SetTextTagFadepoint(tt, time)
endfunction
//中心计时器主函数
function YDWETimerSystem_Main takes nothing returns nothing
local integer i=0
local integer index=0
set yd_ctimer_current_index=yd_ctimer_current_index + 1 //执行步数累加
set i=(GetStoredInteger(YDGC, (I2S(YDWEH2I(TimerSystem_Timer)) ), ( "MaxIndex" + I2S(yd_ctimer_current_index)))) // INLINED!!
if i > 0 then
loop
set index=(GetStoredInteger(YDGC, (I2S(YDWEH2I(TimerSystem_Timer)) ), ( I2S(yd_ctimer_current_index) + "Index" + I2S(i)))) // INLINED!!
set yd_ctimer_list_proc_index=i
call ForceEnumPlayers(yd_RunBoolexpr, yd_ctimer_list_proc[index])
set yd_ctimer_list_index_boolean[index]=false
// call DestroyLightning(YDWEGetLightningByString(I2S(YDWEH2I(TimerSystem_Timer)),I2S(yd_ctimer_current_index)+"data"+I2S(yd_ctimer_list_proc_index)))
call FlushStoredInteger(YDGC, (I2S(YDWEH2I(TimerSystem_Timer)) ), ( I2S(yd_ctimer_current_index) + "Index" + I2S(i))) // INLINED!!
set i=i - 1
exitwhen i <= 0
endloop
call FlushStoredInteger(YDGC, (I2S(YDWEH2I(TimerSystem_Timer)) ), ( "MaxIndex" + I2S(yd_ctimer_current_index))) // INLINED!!
endif
endfunction
//初始化函数
function YDWETimerSystem_Init takes nothing returns nothing
set yd_RunBoolexpr=CreateForce()
call ForceAddPlayer(yd_RunBoolexpr, Player(0))
set TimerSystem_Timer=CreateTimer()
set yd_ctimer_list_index=0
set yd_ctimer_current_index=0
set yd_ctimer_list_proc_index=0
set yd_ctimer_RemoveUnit_proc=Filter(function YDWETimerSystem_RemoveUnit_CallBack)
set yd_ctimer_DestroyTimer_proc=Filter(function YDWETimerSystem_DestroyTimer_CallBack)
set yd_ctimer_RemoveItem_proc=Filter(function YDWETimerSystem_RemoveItem_CallBack)
set yd_ctimer_DestroyEffect_proc=Filter(function YDWETimerSystem_DestroyEffect_CallBack)
set yd_ctimer_DestroyLightning_proc=Filter(function YDWETimerSystem_DestroyLightning_CallBack)
set yd_ctimer_RunTrigger_proc=Filter(function YDWETimerSystem_RunTrigger_CallBack)
call TimerStart(TimerSystem_Timer, 0.01, true, function YDWETimerSystem_Main)
endfunction
//暂时先改下原来中心计时器的流程,这里暂时用普通计时器代替
function YDWETimerSystemGetRunIndex takes nothing returns integer
return TimerSystem_RunIndex
endfunction
//循环类仍用独立计时器
function YDWETimerRunPeriodicTriggerFunction takes nothing returns nothing
local timer t=GetExpiredTimer()
local trigger trg=(YDWEI2T(GetStoredInteger(YDGC, (I2S(YDWEH2I(t)) ), ( "Trigger")))) // INLINED!!
local integer RunIndex=(GetStoredInteger(YDGC, (I2S(YDWEH2I(t)) ), ( "RunIndex"))) // INLINED!!
call StoreInteger(YDGC, (I2S(YDWEH2I(trg)) ), ( "RunIndex" ), ( RunIndex)) // INLINED!!
call ConditionalTriggerExecute(trg)
set t=null
set trg=null
endfunction
function YDWETimerRunPeriodicTriggerFunctionByTimes takes nothing returns nothing
local timer t=GetExpiredTimer()
local trigger trg=(YDWEI2T(GetStoredInteger(YDGC, (I2S(YDWEH2I(t)) ), ( "Trigger")))) // INLINED!!
local integer RunIndex=(GetStoredInteger(YDGC, (I2S(YDWEH2I(t)) ), ( "RunIndex"))) // INLINED!!
local integer times=(GetStoredInteger(YDGC, (I2S(YDWEH2I(t)) ), ( "Times"))) // INLINED!!
call StoreInteger(YDGC, (I2S(YDWEH2I(trg)) ), ( "RunIndex" ), ( RunIndex)) // INLINED!!
call ConditionalTriggerExecute(trg)
set times=times - 1
if times > 0 then
call StoreInteger(YDGC, (I2S(YDWEH2I(t)) ), ( "Times" ), ( times)) // INLINED!!
else
call DestroyTimer(t)
call FlushStoredMission(YDGC, (I2S(YDWEH2I(t)))) // INLINED!!
endif
set t=null
set trg=null
endfunction
function YDWETimerRunPeriodicTrigger takes real timeout,trigger trg,boolean b,integer times,integer data returns nothing
local timer t=null
local integer i=0
local integer index=0
if timeout < 0 then
return
else
set t=CreateTimer()
endif
set TimerSystem_RunIndex=TimerSystem_RunIndex + 1
call StoreInteger(YDGC, (I2S(YDWEH2I(t)) ), ( "Trigger" ), YDWEH2I(( trg))) // INLINED!!
call StoreInteger(YDGC, (I2S(YDWEH2I(t)) ), ( "RunIndex" ), ( TimerSystem_RunIndex)) // INLINED!!
set index=(GetStoredInteger(YDGC, (I2S(YDWEH2I(trg)) ), ( "YDWETimerNumber" + I2S(data)))) // INLINED!!
set index=index + 1
call StoreInteger(YDGC, (I2S(YDWEH2I(trg)) ), ( "YDWETimerNumber" + I2S(data) ), ( index)) // INLINED!!
call StoreInteger(YDGC, (I2S(YDWEH2I(trg)) ), ( "YDWETimer" + I2S(data) + "Index" + I2S(index) ), YDWEH2I(( t))) // INLINED!!
if b == false then
call StoreInteger(YDGC, (I2S(YDWEH2I(t)) ), ( "Times" ), ( times)) // INLINED!!
call TimerStart(t, timeout, true, function YDWETimerRunPeriodicTriggerFunctionByTimes)
else
call TimerStart(t, timeout, true, function YDWETimerRunPeriodicTriggerFunction)
endif
set t=null
endfunction
function YDWETimerRunPeriodicTriggerOver takes trigger trg,integer data returns nothing
local integer index=(GetStoredInteger(YDGC, (I2S(YDWEH2I(trg)) ), ( "YDWETimerNumber" + I2S(data)))) // INLINED!!
local timer t=null
loop
exitwhen index <= 0
set t=(YDWEI2Tm(GetStoredInteger(YDGC, (I2S(YDWEH2I(trg)) ), ( "YDWETimer" + I2S(data) + "Index" + I2S(index))))) // INLINED!!
call DestroyTimer(t)
call FlushStoredMission(YDGC, (I2S(YDWEH2I(t)))) // INLINED!!
set t=null
set index=index - 1
endloop
endfunction
//library YDWETimerSystem ends
//library YDWETriggerEvent:
//===========================================================================
//任意单位伤害事件
//===========================================================================
//call YDWESaveBooleanByString(I2S(YDWEH2I(u)),"GetAdvancedUnitDataing",false)
function YDWEAnyUnitDamagedTriggerAction takes nothing returns nothing
local integer i=(GetStoredInteger(YDGC, ("YDWESyStemAnyUnitDamagedTrigger" ), ( "TriggerNumber"))) // INLINED!!
local boolean b=(GetStoredBoolean(YDGC, (I2S(YDWEH2I(GetTriggerUnit())) ), ( "GetAdvancedUnitDataing"))) // INLINED!!
local trigger array trg
loop
set trg[i]=(YDWEI2T(GetStoredInteger(YDGC, ("YDWESyStemAnyUnitDamagedTrigger" ), ( I2S(i))))) // INLINED!!
if trg[i] != null and IsTriggerEnabled(trg[i]) == true and b == false then
call ConditionalTriggerExecute(trg[i])
endif
set trg[i]=null
set i=i - 1
exitwhen i <= 0
endloop
//return
endfunction
function YDWEAnyUnitDamagedEnumUnitFunction takes nothing returns nothing
local trigger trg=(YDWEI2T(GetStoredInteger(YDGC, ("YDWESyStemAnyUnitDamagedTrigger" ), ( "Trigger")))) // INLINED!!
if GetUnitAbilityLevel(GetEnumUnit(), 'Aloc') == 0 then
call TriggerRegisterUnitEvent(trg, GetEnumUnit(), EVENT_UNIT_DAMAGED)
endif
set trg=null
endfunction
function YDWESyStemAnyUnitEnterMapRectTriggerAction takes nothing returns nothing
local trigger trg=(YDWEI2T(GetStoredInteger(YDGC, ("YDWESyStemAnyUnitDamagedTrigger" ), ( "Trigger")))) // INLINED!!
if GetUnitAbilityLevel(GetTriggerUnit(), 'Aloc') == 0 then
call TriggerRegisterUnitEvent(trg, GetTriggerUnit(), EVENT_UNIT_DAMAGED)
endif
set trg=null
endfunction
function YDWEAnyUnitDamagedEnumUnit takes nothing returns nothing
local trigger trg=CreateTrigger()
local group g=CreateGroup()
set g=GetUnitsInRectAll(GetPlayableMapRect())
call ForGroup(g, function YDWEAnyUnitDamagedEnumUnitFunction)
//call YDWESaveGroupByString("YDWESyStemAnyUnitDamagedTrigger","Group",g)
call TriggerRegisterEnterRectSimple(trg, GetPlayableMapRect())
call TriggerAddAction(trg, function YDWESyStemAnyUnitEnterMapRectTriggerAction)
call StoreInteger(YDGC, ("YDWESyStemAnyUnitEnterMapRectTrigger" ), ( "Trigger" ), YDWEH2I(( trg))) // INLINED!!
call DestroyGroup(g)
set trg=null
set g=null
//return
endfunction
function YDWESyStemAnyUnitDamagedRegistTrigger takes trigger trg returns nothing
local integer i=(GetStoredInteger(YDGC, ("YDWESyStemAnyUnitDamagedTrigger" ), ( "TriggerNumber"))) // INLINED!!
local trigger SystemTrigger=null
if i == 0 then
set SystemTrigger=CreateTrigger()
call TriggerAddAction(SystemTrigger, function YDWEAnyUnitDamagedTriggerAction)
call StoreInteger(YDGC, ("YDWESyStemAnyUnitDamagedTrigger" ), ( "Trigger" ), YDWEH2I(( SystemTrigger))) // INLINED!!
call YDWEAnyUnitDamagedEnumUnit()
endif
set i=i + 1
call StoreInteger(YDGC, ("YDWESyStemAnyUnitDamagedTrigger" ), ( "TriggerNumber" ), ( i)) // INLINED!!
call StoreInteger(YDGC, ("YDWESyStemAnyUnitDamagedTrigger" ), ( I2S(i) ), YDWEH2I(( trg))) // INLINED!!
set SystemTrigger=null
//return
endfunction
//===========================================================================
//移动物品事件
//===========================================================================
function YDWESyStemItemUnmovableTriggerAction takes nothing returns nothing
local integer i
local trigger trg
if GetIssuedOrderId() >= 852002 and GetIssuedOrderId() <= 852007 then
set i=(GetStoredInteger(YDGC, ("YDWESyStemItemUnmovableRegistTrigger" ), ( "TriggerNumber"))) // INLINED!!
set bj_lastMovedItemInItemSlot=GetOrderTargetItem()
loop
set trg=(YDWEI2T(GetStoredInteger(YDGC, ("YDWESyStemItemUnmovableRegistTrigger" ), ( I2S(i))))) // INLINED!!
if trg != null and IsTriggerEnabled(trg) and TriggerEvaluate(trg) then
call TriggerExecute(trg)
endif
set i=i - 1
exitwhen i <= 0
endloop
set trg=null
endif
endfunction
function YDWESyStemItemUnmovableRegistTrigger takes trigger trg returns nothing
local integer i=(GetStoredInteger(YDGC, ("YDWESyStemItemUnmovableRegistTrigger" ), ( "TriggerNumber"))) // INLINED!!
local trigger SystemTrigger=null
if i == 0 then
set SystemTrigger=CreateTrigger()
call TriggerRegisterAnyUnitEventBJ(SystemTrigger, EVENT_PLAYER_UNIT_ISSUED_TARGET_ORDER)
call TriggerAddAction(SystemTrigger, function YDWESyStemItemUnmovableTriggerAction)
call StoreInteger(YDGC, ("YDWESyStemItemUnmovableRegistTrigger" ), ( "Trigger" ), YDWEH2I(( SystemTrigger))) // INLINED!!
endif
set i=i + 1
call StoreInteger(YDGC, ("YDWESyStemItemUnmovableRegistTrigger" ), ( "TriggerNumber" ), ( i)) // INLINED!!
call StoreInteger(YDGC, ("YDWESyStemItemUnmovableRegistTrigger" ), ( I2S(i) ), YDWEH2I(( trg))) // INLINED!!
set SystemTrigger=null
endfunction
//GetLastMovedItemInItemSlot
//===========================================================================
//物品合成事件
//===========================================================================
function YDWESyStemItemCombineRegistTrigger takes trigger trg returns nothing
local integer i=(GetStoredInteger(YDGC, ("YDWESyStemItemCombineRegistTrigger" ), ( "TriggerNumber"))) // INLINED!!
set i=i + 1
call StoreInteger(YDGC, ("YDWESyStemItemCombineRegistTrigger" ), ( "TriggerNumber" ), ( i)) // INLINED!!
call StoreInteger(YDGC, ("YDWESyStemItemCombineRegistTrigger" ), ( I2S(i) ), YDWEH2I(( trg))) // INLINED!!
endfunction
//GetLastCombinedItem
//===========================================================================
//YDWE技能捕捉事件
//===========================================================================
function YDWESyStemAbilityCastingOverRegistTrigger takes trigger trg,integer index returns nothing
local integer i=(GetStoredInteger(YDGC, ("YDWESyStemAbilityCastingOverRegistTrigger" ), ( "TriggerNumber"))) // INLINED!!
set i=i + 1
call StoreInteger(YDGC, ("YDWESyStemAbilityCastingOverRegistTrigger" ), ( "TriggerNumber" ), ( i)) // INLINED!!
call StoreInteger(YDGC, ("YDWESyStemAbilityCastingOverRegistTrigger" ), ( I2S(YDWEH2I(trg)) + "AbilityType" ), ( index)) // INLINED!!
call StoreInteger(YDGC, ("YDWESyStemAbilityCastingOverRegistTrigger" ), ( I2S(i) ), YDWEH2I(( trg))) // INLINED!!
endfunction
//
//library YDWETriggerEvent ends
//library YDWETimerPattern:
//-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
// Timer Pattern Union //
//-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
function YDWETimerPattern__SingleMagic takes unit sour,unit targ,real x,real y,real h,integer uid,integer aid,integer lv,integer order returns nothing
local unit dummy= CreateUnit(GetOwningPlayer(sour), uid, x, y, GetUnitFacing(sour))
call UnitApplyTimedLife(dummy, 'BHwe', 1.0)
call UnitAddAbility(dummy, aid)
call SetUnitAbilityLevel(dummy, aid, lv)
call SetUnitFlyHeight(dummy, h, 0.0)
call IssueTargetOrderById(dummy, order, targ)
set dummy=null
endfunction
function YDWETimerPattern__GetUnitZ takes unit u returns real
call MoveLocation(yd_locHelper, GetUnitX(u), GetUnitY(u))
return GetUnitFlyHeight(u) + GetLocationZ(yd_locHelper)
endfunction
//-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
// Filter Funcs //
//-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
function YDWETimerPattern__EnemyFilter takes unit u,unit caster returns boolean
return IsUnitType(u, UNIT_TYPE_MAGIC_IMMUNE) == false and IsUnitType(u, UNIT_TYPE_RESISTANT) == false and IsUnitType(u, UNIT_TYPE_SLEEPING) == false and GetUnitState(u, UNIT_STATE_LIFE) > 0.405 and IsUnitType(u, UNIT_TYPE_STRUCTURE) == false and IsUnitIllusion(u) == false and IsUnitHidden(u) == false and IsUnitEnemy(u, GetOwningPlayer(caster)) and IsUnitVisible(u, GetOwningPlayer(caster))
endfunction
function YDWETimerPattern__TreeFilter takes nothing returns boolean
local integer id= GetDestructableTypeId(GetFilterDestructable())
return id == 'LTlt' or id == 'ATtr' or id == 'BTtw' or id == 'KTtw' or id == 'YTft' or id == 'JTct' or id == 'YTst' or id == 'YTct' or id == 'YTwt' or id == 'JTtw' or id == 'DTsh' or id == 'FTtw' or id == 'CTtr' or id == 'ITtw' or id == 'NTtw' or id == 'OTtw' or id == 'ZTtw' or id == 'WTst' or id == 'GTsh' or id == 'VTlt' or id == 'WTtw' or id == 'ATtc' or id == 'BTtc' or id == 'CTtc' or id == 'ITtc' or id == 'NTtc' or id == 'ZTtc'
endfunction
//-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
// Major Structure Code //
//-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
function s__YDWETimerPattern__Thread__staticgetindex takes handle h returns integer
return (GetStoredInteger(YDGC, ("YDWETimerPattern" ), ( I2S(YDWEH2I(h))))) // INLINED!!
endfunction
function s__YDWETimerPattern__Thread__staticsetindex takes handle h,integer value returns nothing
call StoreInteger(YDGC, ("YDWETimerPattern" ), ( I2S(YDWEH2I(h)) ), ( value)) // INLINED!!
endfunction
function s__YDWETimerPattern__Thread_flush takes handle h returns nothing
call FlushStoredInteger(YDGC, ("YDWETimerPattern" ), ( I2S(YDWEH2I(h)))) // INLINED!!
endfunction
function s__YDWETimerPattern__Thread__set_x takes integer this,real value returns nothing
set s__YDVector3_x[s__YDWETimerPattern__Thread_pos[this]]=value
call SetUnitX(s__YDWETimerPattern__Thread_obj[this], value)
endfunction
function s__YDWETimerPattern__Thread__set_y takes integer this,real value returns nothing
set s__YDVector3_y[s__YDWETimerPattern__Thread_pos[this]]=value
call SetUnitY(s__YDWETimerPattern__Thread_obj[this], value)
endfunction
function s__YDWETimerPattern__Thread__set_z takes integer this,real value returns nothing
set s__YDVector3_z[s__YDWETimerPattern__Thread_pos[this]]=value
call MoveLocation(yd_locHelper, s__YDVector3_x[s__YDWETimerPattern__Thread_pos[this]], s__YDVector3_y[s__YDWETimerPattern__Thread_pos[this]])
call SetUnitFlyHeight(s__YDWETimerPattern__Thread_obj[this], value - GetLocationZ(yd_locHelper), 0)
endfunction
function s__YDWETimerPattern__Thread_isInRange takes real vx,real vy,real vz,real radius returns boolean
return vx * vx + vy * vy + vz * vz < radius * radius
endfunction
function s__YDWETimerPattern__Thread_TreeKill takes nothing returns nothing
local destructable d= GetEnumDestructable()
if GetWidgetLife(d) > 0.405 then
call KillDestructable(d)
endif
set d=null
endfunction
function s__YDWETimerPattern__Thread_damage takes integer this,unit sour,real x,real y,real z,boolean monomer,boolean break returns nothing
local group g= CreateGroup()
local unit f
call GroupEnumUnitsInRange(g, x, y, YDWETimerPattern__TIMER_PATTERN_RADIUS, null)
loop
set f=FirstOfGroup(g)
exitwhen f == null
if IsUnitInGroup(f, s__YDWETimerPattern__Thread_except[this]) == false then
if YDWETimerPattern__EnemyFilter(f , sour) then
if s__YDWETimerPattern__Thread_isInRange(GetUnitX(f) - x , GetUnitY(f) - y , YDWETimerPattern__GetUnitZ(f) - z , YDWETimerPattern__TIMER_PATTERN_RADIUS) then
call GroupAddUnit(s__YDWETimerPattern__Thread_except[this], f)
call UnitDamageTarget(sour, f, s__YDWETimerPattern__Thread_amount[this], true, true, bj_lastSetAttackType, bj_lastSetDamageType, bj_lastSetWeaponType)
call DestroyEffect(AddSpecialEffectTarget(s__YDWETimerPattern__Thread_dsfx[this], f, s__YDWETimerPattern__Thread_part[this]))
set s__YDWETimerPattern__Thread_target[this]=f
if s__YDWETimerPattern__Thread_skills[this] > '0000' and s__YDWETimerPattern__Thread_skills[this] != null and s__YDWETimerPattern__Thread_order[this] > 0 and s__YDWETimerPattern__Thread_order[this] != null then
call YDWETimerPattern__SingleMagic(sour , f , x , y , GetUnitFlyHeight(s__YDWETimerPattern__Thread_obj[this]) , s__YDWETimerPattern__Thread_unitid[this] , s__YDWETimerPattern__Thread_skills[this] , s__YDWETimerPattern__Thread_level[this] , s__YDWETimerPattern__Thread_order[this])
endif
if break then
set s__YDWETimerPattern__Thread_switch[this]=0
exitwhen true
endif
exitwhen monomer
endif
endif
endif
call GroupRemoveUnit(g, f)
set f=null
endloop
call GroupClear(g)
call DestroyGroup(g)
set g=null
set f=null
endfunction
function s__YDWETimerPattern__Thread_onDestroy takes integer this returns nothing
call GroupClear(s__YDWETimerPattern__Thread_except[this])
call DestroyGroup(s__YDWETimerPattern__Thread_except[this])
call FlushStoredInteger(YDGC, ("YDWETimerPattern" ), ( I2S(YDWEH2I((s__YDWETimerPattern__Thread_obj[this]))))) // INLINED!!
call FlushStoredInteger(YDGC, ("YDWETimerPattern" ), ( I2S(YDWEH2I((s__YDWETimerPattern__Thread_t[this]))))) // INLINED!!
call PauseTimer(s__YDWETimerPattern__Thread_t[this])
call DestroyTimer(s__YDWETimerPattern__Thread_t[this])
call s__YDVector3_deallocate(s__YDWETimerPattern__Thread_des[this])
call s__YDVector3_deallocate(s__YDWETimerPattern__Thread_pos[this])
call s__YDVector3_deallocate(s__YDWETimerPattern__Thread_vel[this])
call s__YDVector3_deallocate(s__YDWETimerPattern__Thread_dec[this])
set s__YDWETimerPattern__Thread_except[this]=null
set s__YDWETimerPattern__Thread_caster[this]=null
set s__YDWETimerPattern__Thread_target[this]=null
set s__YDWETimerPattern__Thread_obj[this]=null
set s__YDWETimerPattern__Thread_t[this]=null
set s__YDWETimerPattern__Thread_amount[this]=0
set s__YDWETimerPattern__Thread_skills[this]=0
set s__YDWETimerPattern__Thread_order[this]=0
set s__YDWETimerPattern__Thread_dsfx[this]=""
set s__YDWETimerPattern__Thread_gsfx[this]=""
set s__YDWETimerPattern__Thread_wsfx[this]=""
set s__YDWETimerPattern__Thread_part[this]=""
endfunction
function s__Parabola_move takes nothing returns nothing
local integer this= (GetStoredInteger(YDGC, ("YDWETimerPattern" ), ( I2S(YDWEH2I((GetExpiredTimer())))))) // INLINED!!
local real vx= s__YDVector3_x[s__YDWETimerPattern__Thread_des[this]] - s__YDVector3_x[s__YDWETimerPattern__Thread_pos[this]]
local real vy= s__YDVector3_y[s__YDWETimerPattern__Thread_des[this]] - s__YDVector3_y[s__YDWETimerPattern__Thread_pos[this]]
local real vz= s__YDVector3_z[s__YDWETimerPattern__Thread_des[this]] - s__YDVector3_z[s__YDWETimerPattern__Thread_pos[this]]
if vx * vx + vy * vy + vz * vz > 900.0 then
call s__YDWETimerPattern__Thread__set_x(this,s__YDVector3_x[s__YDWETimerPattern__Thread_pos[this]] + s__YDVector3_x[s__YDWETimerPattern__Thread_vel[this]])
call s__YDWETimerPattern__Thread__set_y(this,s__YDVector3_y[s__YDWETimerPattern__Thread_pos[this]] + s__YDVector3_y[s__YDWETimerPattern__Thread_vel[this]])
call s__YDWETimerPattern__Thread__set_z(this,s__YDVector3_z[s__YDWETimerPattern__Thread_pos[this]] + s__YDWETimerPattern__Thread_ac[this] * s__YDWETimerPattern__Thread_step[this] * 2 + s__YDWETimerPattern__Thread_ac[this] * s__YDWETimerPattern__Thread_dist[this] + s__YDWETimerPattern__Thread_bc[this])
set s__YDWETimerPattern__Thread_step[this]=s__YDWETimerPattern__Thread_step[this] + s__YDWETimerPattern__Thread_dist[this]
if YDWECoordinateX(s__YDVector3_x[s__YDWETimerPattern__Thread_pos[this]]) != s__YDVector3_x[s__YDWETimerPattern__Thread_pos[this]] or YDWECoordinateY(s__YDVector3_y[s__YDWETimerPattern__Thread_pos[this]]) != s__YDVector3_y[s__YDWETimerPattern__Thread_pos[this]] then
set s__YDWETimerPattern__Thread_switch[this]=0
endif
if s__YDWETimerPattern__Thread_amount[this] > 0.0 then
call s__YDWETimerPattern__Thread_damage(this,s__YDWETimerPattern__Thread_caster[this] , s__YDVector3_x[s__YDWETimerPattern__Thread_pos[this]] + s__YDVector3_x[s__YDWETimerPattern__Thread_vel[this]] , s__YDVector3_y[s__YDWETimerPattern__Thread_pos[this]] + s__YDVector3_y[s__YDWETimerPattern__Thread_vel[this]] , YDWETimerPattern__GetUnitZ(s__YDWETimerPattern__Thread_obj[this]) , false , false)
endif
else
set s__YDWETimerPattern__Thread_switch[this]=0
endif
if s__YDWETimerPattern__Thread_switch[this] == 0 then
call SetUnitFlyHeight(s__YDWETimerPattern__Thread_obj[this], GetUnitDefaultFlyHeight(s__YDWETimerPattern__Thread_obj[this]), 200.0)
call SetUnitTimeScale(s__YDWETimerPattern__Thread_obj[this], 1)
//YDWETriggerEvent
call YDWESyStemAbilityCastingOverTriggerAction(s__YDWETimerPattern__Thread_obj[this] , 7)
call sc__YDWETimerPattern__Thread_deallocate(this)
endif
endfunction
function s__Parabola_create takes unit source,unit object,real angle,real distance,real time,real interval,real high,real damage,string attach,string deff returns integer
local integer this= s__Parabola__allocate()
local real vx= 0.0
local real vy= 0.0
local real vz= 0.0
set s__YDWETimerPattern__Thread_pos[this]=s__YDVector3__allocate()
set s__YDWETimerPattern__Thread_des[this]=s__YDVector3__allocate()
set s__YDWETimerPattern__Thread_vel[this]=s__YDVector3__allocate()
set s__YDVector3_x[s__YDWETimerPattern__Thread_pos[this]]=GetUnitX(object)
set s__YDVector3_y[s__YDWETimerPattern__Thread_pos[this]]=GetUnitY(object)
set s__YDVector3_z[s__YDWETimerPattern__Thread_pos[this]]=YDWETimerPattern__GetUnitZ(object)
set s__YDVector3_x[s__YDWETimerPattern__Thread_des[this]]=s__YDVector3_x[s__YDWETimerPattern__Thread_pos[this]] + distance * Cos(angle)
set s__YDVector3_y[s__YDWETimerPattern__Thread_des[this]]=s__YDVector3_y[s__YDWETimerPattern__Thread_pos[this]] + distance * Sin(angle)
call MoveLocation(yd_locHelper, s__YDVector3_x[s__YDWETimerPattern__Thread_des[this]], s__YDVector3_y[s__YDWETimerPattern__Thread_des[this]])
set s__YDVector3_z[s__YDWETimerPattern__Thread_des[this]]=GetLocationZ(yd_locHelper)
set vx=s__YDVector3_x[s__YDWETimerPattern__Thread_des[this]] - s__YDVector3_x[s__YDWETimerPattern__Thread_pos[this]]
set vy=s__YDVector3_y[s__YDWETimerPattern__Thread_des[this]] - s__YDVector3_y[s__YDWETimerPattern__Thread_pos[this]]
set vz=s__YDVector3_z[s__YDWETimerPattern__Thread_des[this]] - s__YDVector3_z[s__YDWETimerPattern__Thread_pos[this]]
if s__YDVector3_z[s__YDWETimerPattern__Thread_pos[this]] > s__YDVector3_z[s__YDWETimerPattern__Thread_des[this]] then
set high=high + s__YDVector3_z[s__YDWETimerPattern__Thread_pos[this]]
else
set high=high + s__YDVector3_z[s__YDWETimerPattern__Thread_des[this]]
endif
set s__YDWETimerPattern__Thread_ac[this]=( 2 * ( s__YDVector3_z[s__YDWETimerPattern__Thread_pos[this]] + s__YDVector3_z[s__YDWETimerPattern__Thread_des[this]] ) - 4 * high ) / ( distance * distance )
set s__YDWETimerPattern__Thread_bc[this]=( s__YDVector3_z[s__YDWETimerPattern__Thread_des[this]] - s__YDVector3_z[s__YDWETimerPattern__Thread_pos[this]] - s__YDWETimerPattern__Thread_ac[this] * distance * distance ) / distance
set s__YDWETimerPattern__Thread_dist[this]=distance * interval / time
set s__YDWETimerPattern__Thread_ac[this]=s__YDWETimerPattern__Thread_ac[this] * s__YDWETimerPattern__Thread_dist[this]
set s__YDWETimerPattern__Thread_bc[this]=s__YDWETimerPattern__Thread_bc[this] * s__YDWETimerPattern__Thread_dist[this]
set s__YDVector3_x[s__YDWETimerPattern__Thread_vel[this]]=s__YDWETimerPattern__Thread_dist[this] * Cos(angle)
set s__YDVector3_y[s__YDWETimerPattern__Thread_vel[this]]=s__YDWETimerPattern__Thread_dist[this] * Sin(angle)
set s__YDWETimerPattern__Thread_step[this]=0.0
set s__YDWETimerPattern__Thread_caster[this]=source
set s__YDWETimerPattern__Thread_obj[this]=object
set s__YDWETimerPattern__Thread_amount[this]=damage
set s__YDWETimerPattern__Thread_dsfx[this]=deff
set s__YDWETimerPattern__Thread_part[this]=attach
set s__YDWETimerPattern__Thread_switch[this]=1
set s__YDWETimerPattern__Thread_t[this]=CreateTimer()
set s__YDWETimerPattern__Thread_except[this]=CreateGroup()
call UnitAddAbility(s__YDWETimerPattern__Thread_obj[this], 'Amrf')
call UnitRemoveAbility(s__YDWETimerPattern__Thread_obj[this], 'Amrf')
call TimerStart(s__YDWETimerPattern__Thread_t[this], interval, true, function s__Parabola_move)
call GroupAddUnit(s__YDWETimerPattern__Thread_except[this], object)
call StoreInteger(YDGC, ("YDWETimerPattern" ), ( I2S(YDWEH2I((object))) ), ( ( (this)))) // INLINED!!
call StoreInteger(YDGC, ("YDWETimerPattern" ), ( I2S(YDWEH2I((s__YDWETimerPattern__Thread_t[this]))) ), ( ( (this)))) // INLINED!!
return this
endfunction
// uniform speed
function s__Linear_move takes nothing returns nothing
local integer this= (GetStoredInteger(YDGC, ("YDWETimerPattern" ), ( I2S(YDWEH2I((GetExpiredTimer())))))) // INLINED!!
if s__YDWETimerPattern__Thread_step[this] > s__YDWETimerPattern__Thread_dist[this] then
call s__YDWETimerPattern__Thread__set_x(this,s__YDVector3_x[s__YDWETimerPattern__Thread_pos[this]] + s__YDVector3_x[s__YDWETimerPattern__Thread_vel[this]])
call s__YDWETimerPattern__Thread__set_y(this,s__YDVector3_y[s__YDWETimerPattern__Thread_pos[this]] + s__YDVector3_y[s__YDWETimerPattern__Thread_vel[this]])
set s__YDVector3_z[s__YDWETimerPattern__Thread_pos[this]]=YDWETimerPattern__GetUnitZ(s__YDWETimerPattern__Thread_obj[this])
set s__YDWETimerPattern__Thread_step[this]=s__YDWETimerPattern__Thread_step[this] - s__YDWETimerPattern__Thread_dist[this]
call s__YDWETimerPattern__Thread_damage(this,s__YDWETimerPattern__Thread_caster[this] , s__YDVector3_x[s__YDWETimerPattern__Thread_pos[this]] , s__YDVector3_y[s__YDWETimerPattern__Thread_pos[this]] , s__YDVector3_z[s__YDWETimerPattern__Thread_pos[this]] , true , true)
if YDWECoordinateX(s__YDVector3_x[s__YDWETimerPattern__Thread_pos[this]]) != s__YDVector3_x[s__YDWETimerPattern__Thread_pos[this]] or YDWECoordinateY(s__YDVector3_y[s__YDWETimerPattern__Thread_pos[this]]) != s__YDVector3_y[s__YDWETimerPattern__Thread_pos[this]] then
set s__YDWETimerPattern__Thread_switch[this]=0
endif
else
set s__YDWETimerPattern__Thread_switch[this]=0
endif
if s__YDWETimerPattern__Thread_switch[this] == 0 then
// YDWETriggerEvent
if s__YDWETimerPattern__Thread_target[this] != null then
//call YDWESaveUnitByString(I2S(YDWEH2I(.caster)), "MoonPriestessArrow", .target)
set bj_lastAbilityTargetUnit=s__YDWETimerPattern__Thread_target[this]
call YDWESyStemAbilityCastingOverTriggerAction(s__YDWETimerPattern__Thread_caster[this] , 8)
else
call YDWESyStemAbilityCastingOverTriggerAction(s__YDWETimerPattern__Thread_caster[this] , 9)
endif
//call KillUnit(.obj)
call RemoveUnit(s__YDWETimerPattern__Thread_obj[this])
call sc__YDWETimerPattern__Thread_deallocate(this)
endif
endfunction
function s__Linear_create takes unit source,unit object,real angle,real distance,real time,real interval,integer uid,integer aid,integer lv,integer orderid,string attach,string sfx returns integer
local integer this= s__Linear__allocate()
set s__YDWETimerPattern__Thread_pos[this]=s__YDVector3__allocate()
set s__YDWETimerPattern__Thread_vel[this]=s__YDVector3__allocate()
set s__YDWETimerPattern__Thread_step[this]=distance
set s__YDWETimerPattern__Thread_dist[this]=distance * interval / time
set s__YDVector3_x[s__YDWETimerPattern__Thread_vel[this]]=s__YDWETimerPattern__Thread_dist[this] * Cos(angle)
set s__YDVector3_y[s__YDWETimerPattern__Thread_vel[this]]=s__YDWETimerPattern__Thread_dist[this] * Sin(angle)
set s__YDVector3_x[s__YDWETimerPattern__Thread_pos[this]]=GetUnitX(object)
set s__YDVector3_y[s__YDWETimerPattern__Thread_pos[this]]=GetUnitY(object)
set s__YDWETimerPattern__Thread_caster[this]=source
set s__YDWETimerPattern__Thread_obj[this]=object
set s__YDWETimerPattern__Thread_unitid[this]=uid
set s__YDWETimerPattern__Thread_skills[this]=aid
set s__YDWETimerPattern__Thread_level[this]=lv
set s__YDWETimerPattern__Thread_order[this]=orderid
set s__YDWETimerPattern__Thread_part[this]=attach
set s__YDWETimerPattern__Thread_gsfx[this]=sfx
set s__YDWETimerPattern__Thread_switch[this]=1
set s__YDWETimerPattern__Thread_t[this]=CreateTimer()
call TimerStart(s__YDWETimerPattern__Thread_t[this], interval, true, function s__Linear_move)
call StoreInteger(YDGC, ("YDWETimerPattern" ), ( I2S(YDWEH2I((s__YDWETimerPattern__Thread_t[this]))) ), ( ( (this)))) // INLINED!!
return this
endfunction
// Uniform deceleration
function s__Deceleration_move takes nothing returns nothing
local integer this= (GetStoredInteger(YDGC, ("YDWETimerPattern" ), ( I2S(YDWEH2I((GetExpiredTimer())))))) // INLINED!!
local real xp= s__YDVector3_x[s__YDWETimerPattern__Thread_pos[this]] + s__YDVector3_x[s__YDWETimerPattern__Thread_vel[this]]
local real yp= s__YDVector3_y[s__YDWETimerPattern__Thread_pos[this]] + s__YDVector3_y[s__YDWETimerPattern__Thread_vel[this]]
if s__YDWETimerPattern__Thread_volume[this] == false then
if IsTerrainPathable(xp, yp, PATHING_TYPE_WALKABILITY) then
set s__YDWETimerPattern__Thread_switch[this]=0
else
call s__YDWETimerPattern__Thread__set_x(this,xp)
call s__YDWETimerPattern__Thread__set_y(this,yp)
endif
else
call s__YDWETimerPattern__Thread__set_x(this,xp)
call s__YDWETimerPattern__Thread__set_y(this,yp)
endif
if s__YDWETimerPattern__Thread_follow[this] == 0 then
if GetUnitFlyHeight(s__YDWETimerPattern__Thread_obj[this]) < 5. then
if IsTerrainPathable(s__YDVector3_x[s__YDWETimerPattern__Thread_pos[this]], s__YDVector3_y[s__YDWETimerPattern__Thread_pos[this]], PATHING_TYPE_FLOATABILITY) then
call DestroyEffect(AddSpecialEffect(s__YDWETimerPattern__Thread_gsfx[this], s__YDVector3_x[s__YDWETimerPattern__Thread_pos[this]], s__YDVector3_y[s__YDWETimerPattern__Thread_pos[this]]))
else
call DestroyEffect(AddSpecialEffect(s__YDWETimerPattern__Thread_wsfx[this], s__YDVector3_x[s__YDWETimerPattern__Thread_pos[this]], s__YDVector3_y[s__YDWETimerPattern__Thread_pos[this]]))
endif
endif
endif
set s__YDWETimerPattern__Thread_follow[this]=s__YDWETimerPattern__Thread_follow[this] + 1
if s__YDWETimerPattern__Thread_follow[this] == 2 then
set s__YDWETimerPattern__Thread_follow[this]=0
endif
if s__YDWETimerPattern__Thread_killdest[this] then
call MoveRectTo(YDWETimerPattern__area, s__YDVector3_x[s__YDWETimerPattern__Thread_pos[this]], s__YDVector3_y[s__YDWETimerPattern__Thread_pos[this]])
call EnumDestructablesInRect(YDWETimerPattern__area, YDWETimerPattern__bexpr, function s__YDWETimerPattern__Thread_TreeKill)
endif
if s__YDWETimerPattern__Thread_amount[this] > 0.0 then
call s__YDWETimerPattern__Thread_damage(this,s__YDWETimerPattern__Thread_caster[this] , s__YDVector3_x[s__YDWETimerPattern__Thread_pos[this]] , s__YDVector3_y[s__YDWETimerPattern__Thread_pos[this]] , 0.0 , false , s__YDWETimerPattern__Thread_recyclable[this])
endif
if s__YDVector3_x[s__YDWETimerPattern__Thread_vel[this]] * s__YDVector3_x[s__YDWETimerPattern__Thread_vel[this]] + s__YDVector3_y[s__YDWETimerPattern__Thread_vel[this]] * s__YDVector3_y[s__YDWETimerPattern__Thread_vel[this]] < 100.0 or YDWECoordinateX(s__YDVector3_x[s__YDWETimerPattern__Thread_pos[this]]) != s__YDVector3_x[s__YDWETimerPattern__Thread_pos[this]] or YDWECoordinateY(s__YDVector3_y[s__YDWETimerPattern__Thread_pos[this]]) != s__YDVector3_y[s__YDWETimerPattern__Thread_pos[this]] then
set s__YDWETimerPattern__Thread_switch[this]=0
else
set s__YDVector3_x[s__YDWETimerPattern__Thread_vel[this]]=s__YDVector3_x[s__YDWETimerPattern__Thread_vel[this]] - s__YDVector3_x[s__YDWETimerPattern__Thread_dec[this]]
set s__YDVector3_y[s__YDWETimerPattern__Thread_vel[this]]=s__YDVector3_y[s__YDWETimerPattern__Thread_vel[this]] - s__YDVector3_y[s__YDWETimerPattern__Thread_dec[this]]
endif
if s__YDWETimerPattern__Thread_switch[this] == 0 then
call SetUnitFlyHeight(s__YDWETimerPattern__Thread_obj[this], GetUnitDefaultFlyHeight(s__YDWETimerPattern__Thread_obj[this]), 200.0)
call SetUnitTimeScale(s__YDWETimerPattern__Thread_obj[this], 1)
// YDWETriggerEvent
call YDWESyStemAbilityCastingOverTriggerAction(s__YDWETimerPattern__Thread_obj[this] , 6)
call sc__YDWETimerPattern__Thread_deallocate(this)
endif
endfunction
function s__Deceleration_create takes unit source,unit object,real angle,real distance,real time,real interval,real damage,boolean killtrees,boolean cycle,boolean path,string part,string geff,string weff returns integer
local integer this= ((GetStoredInteger(YDGC, ("YDWETimerPattern" ), ( I2S(YDWEH2I((object))))))) // INLINED!!
local real vx= 0.0
local real vy= 0.0
local real l= 0.0
if IsUnitInGroup(object, s__YDWETimerPattern__Thread_except[this]) then
return - 1
endif
set vx=2 * distance * Cos(angle) * interval / time
set vy=2 * distance * Sin(angle) * interval / time
if (this) > 0 then
set s__YDVector3_x[s__YDWETimerPattern__Thread_vel[this]]=s__YDVector3_x[s__YDWETimerPattern__Thread_vel[this]] + vx
set s__YDVector3_y[s__YDWETimerPattern__Thread_vel[this]]=s__YDVector3_y[s__YDWETimerPattern__Thread_vel[this]] + vy
set l=SquareRoot(s__YDVector3_x[s__YDWETimerPattern__Thread_vel[this]] * s__YDVector3_x[s__YDWETimerPattern__Thread_vel[this]] + s__YDVector3_y[s__YDWETimerPattern__Thread_vel[this]] * s__YDVector3_y[s__YDWETimerPattern__Thread_vel[this]]) / SquareRoot(vx * vx + vy * vy)
set s__YDVector3_x[s__YDWETimerPattern__Thread_dec[this]]=s__YDVector3_x[s__YDWETimerPattern__Thread_vel[this]] * interval / ( time * l )
set s__YDVector3_y[s__YDWETimerPattern__Thread_dec[this]]=s__YDVector3_y[s__YDWETimerPattern__Thread_vel[this]] * interval / ( time * l )
else
set this=s__Deceleration__allocate()
set s__YDWETimerPattern__Thread_pos[this]=s__YDVector3__allocate()
set s__YDWETimerPattern__Thread_vel[this]=s__YDVector3__allocate()
set s__YDWETimerPattern__Thread_dec[this]=s__YDVector3__allocate()
set s__YDVector3_x[s__YDWETimerPattern__Thread_vel[this]]=vx
set s__YDVector3_y[s__YDWETimerPattern__Thread_vel[this]]=vy
set s__YDVector3_x[s__YDWETimerPattern__Thread_dec[this]]=s__YDVector3_x[s__YDWETimerPattern__Thread_vel[this]] * interval / time
set s__YDVector3_y[s__YDWETimerPattern__Thread_dec[this]]=s__YDVector3_y[s__YDWETimerPattern__Thread_vel[this]] * interval / time
endif
set s__YDVector3_x[s__YDWETimerPattern__Thread_pos[this]]=GetUnitX(object)
set s__YDVector3_y[s__YDWETimerPattern__Thread_pos[this]]=GetUnitY(object)
set s__YDWETimerPattern__Thread_caster[this]=source
set s__YDWETimerPattern__Thread_obj[this]=object
set s__YDWETimerPattern__Thread_amount[this]=damage
set s__YDWETimerPattern__Thread_killdest[this]=killtrees
set s__YDWETimerPattern__Thread_recyclable[this]=cycle
set s__YDWETimerPattern__Thread_volume[this]=path
set s__YDWETimerPattern__Thread_gsfx[this]=geff
set s__YDWETimerPattern__Thread_wsfx[this]=weff
set s__YDWETimerPattern__Thread_switch[this]=1
set s__YDWETimerPattern__Thread_follow[this]=0
set s__YDWETimerPattern__Thread_except[this]=CreateGroup()
if s__YDWETimerPattern__Thread_t[this] == null then
set s__YDWETimerPattern__Thread_t[this]=CreateTimer()
endif
call PauseTimer(s__YDWETimerPattern__Thread_t[this])
call TimerStart(s__YDWETimerPattern__Thread_t[this], interval, true, function s__Deceleration_move)
call StoreInteger(YDGC, ("YDWETimerPattern" ), ( I2S(YDWEH2I((object))) ), ( ( (this)))) // INLINED!!
call StoreInteger(YDGC, ("YDWETimerPattern" ), ( I2S(YDWEH2I((s__YDWETimerPattern__Thread_t[this]))) ), ( ( (this)))) // INLINED!!
return this
endfunction
// Jump Attack PUI
function YDWETimerPatternJumpAttack takes unit u,real face,real dis,real lasttime,real timeout,real high,real damage,string part,string dsfx returns nothing
if u == null then
return
endif
call s__Parabola_create(u , u , Deg2Rad(face) , RMaxBJ(dis, 0) , RMaxBJ(lasttime, 0) , RMaxBJ(timeout, 0) , high , damage , part , dsfx)
endfunction
// Moon Priestess Arrow PUI
function YDWETimerPatternMoonPriestessArrow takes unit u,real face,real dis,real lasttime,real timeout,integer lv,integer aid,integer uid,string order,string part,string dsfx returns nothing
local unit sour= null
if u == null then
return
endif
set sour=(YDWEI2U(GetStoredInteger(YDGC, (I2S(YDWEH2I(u)) ), ( "MoonPriestessArrow")))) // INLINED!!
if sour == null then
set sour=u
endif
call s__Linear_create(sour , u , Deg2Rad(face) , RMaxBJ(dis, 0) , RMaxBJ(lasttime, 0) , RMaxBJ(timeout, 0) , uid , aid , IMaxBJ(lv, 1) , OrderId(order) , part , dsfx)
call FlushStoredMission(YDGC, (I2S(YDWEH2I(u)))) // INLINED!!
set sour=null
endfunction
// Rush Slide PUI
function YDWETimerPatternRushSlide takes unit u,real face,real dis,real lasttime,real timeout,real damage,boolean killtrees,boolean cycle,boolean path,string part,string gsfx,string wsfx returns nothing
if u == null then
return
endif
call s__Deceleration_create(u , u , Deg2Rad(face) , RMaxBJ(dis, 0) , RMaxBJ(lasttime, 0) , RMaxBJ(timeout, 0) , damage , killtrees , cycle , path , part , gsfx , wsfx)
endfunction
function YDWETimerPattern__Init takes nothing returns nothing
set YDWETimerPattern__area=Rect(- YDWETimerPattern__TIMER_PATTERN_RADIUS, - YDWETimerPattern__TIMER_PATTERN_RADIUS, YDWETimerPattern__TIMER_PATTERN_RADIUS, YDWETimerPattern__TIMER_PATTERN_RADIUS)
set YDWETimerPattern__bexpr=Filter(function YDWETimerPattern__TreeFilter)
endfunction
//library YDWETimerPattern ends
//===========================================================================
//
// |cFFFF6600姘告亽3C鏃犻檺鎶 |