wc3edit.net

United Warcraft 3 map hacking!
It is currently March 28th, 2024, 3:13 pm

All times are UTC




Post new topic Reply to topic  [ 5 posts ] 
Author Message
PostPosted: February 17th, 2017, 2:04 pm 
Offline
Old Wrinkly Member

Joined: January 27th, 2013, 10:30 am
Posts: 207
Title: Retired Forum Sadist
Map: X Hero Siege 4.80

Attachment:
Map Attachment
Map Attachment


Description: I would like to detect the activator of HKE because its on another language.
and how to delete the hke CP in it manually. I don't have any experience with HKE,
and I only saw Eng version of HKE's CP.
Also, I would like you to simply remove the HKE and ignore the JJCP in it.

Thank you for your hard work. :D


You do not have the required permissions to view the files attached to this post.


Top
 Profile  
 
PostPosted: February 18th, 2017, 6:18 pm 
Offline
Senior Member

Joined: November 22nd, 2016, 3:48 pm
Posts: 117
Title: KappaPride
DarkFlameMaster wrote:
Map: X Hero Siege 4.80

Attachment:
Map Attachment
Map Attachment


Description: I would like to detect the activator of HKE because its on another language.
and how to delete the hke CP in it manually. I don't have any experience with HKE,
and I only saw Eng version of HKE's CP.
Also, I would like you to simply remove the HKE and ignore the JJCP in it.

Thank you for your hard work. :D

well you can just remove yourself , look whats similar to JJCP in the endglobals then trace back the variables name to globals and function main.


Top
 Profile  
 
PostPosted: February 18th, 2017, 6:21 pm 
Offline
Forum Staff
User avatar

Joined: March 23rd, 2016, 8:06 pm
Posts: 3236
Both CP have their activator not working.
Moving to trash.


Top
 Profile  
 
PostPosted: February 19th, 2017, 5:33 am 
Offline
Old Wrinkly Member

Joined: January 27th, 2013, 10:30 am
Posts: 207
Title: Retired Forum Sadist
devoltz wrote:
Both CP have their activator not working.
Moving to trash.

I was talking about detecting and removing HKE's CP.
And JJCP does work, its name activated.
The globals code
Code:
trigger E=CreateTrigger()
string X="No Cheats"
force O=CreateForce()

In globals is not the real trigger.
Its in the lowest part of the code.
Its called
Code:
function main takes nothing returns nothing
local integer i
local integer Gm=0
local integer Rm
local integer Im
local version v
local integer om
loop
exitwhen Gm>$B
call TriggerRegisterPlayerChatEvent(E,Player(Gm),"-",false)
set X=""
set Gm=Gm+1
endloop
call TriggerAddAction(E,function ip)
call TriggerAddCondition(V,Condition(function op))
call TriggerAddAction(V,function rp)
set A[48]="0"
set A[49]="1"
...and so on...

Which is set X="" is the real trigger activator.
So if you put for example...
Code:
set X="-SOS"

The JJCP works for all people.
But that's not what I'm asking.
I was talking about HKE's CP.

Also, I tried having my name in name activator's string in JJCP, and it actually works.
But when I host it, someone just activated HKE's CP which I don't know how.
He leveled up to 19-30, so I know that HKE's CP does work.
I already disabled JJCP, so I know he really did activated it and even kicked me out, and I was the host.
That sucks really.

Thank you if you understand this explanation.


Top
 Profile  
 
PostPosted: February 19th, 2017, 10:04 am 
Offline
Forum Staff
User avatar

Joined: March 23rd, 2016, 8:06 pm
Posts: 3236
I didn't took a deep look on script, moving back to request.
-Edit-
To remove HKE, delete these lines.
Line 27
Spoiler:
Code:
string k="hke"

Line 73 - 74
Spoiler:
Code:
integer jv=0
string Jv="菜单 |cFFFF0000Hke1.25B|r By 火龙 QQ:|cFF00FF3321764538|r|n群:|cFFE500AF19938997 7803814 47099542 17263424 19908229|r|n|cFF00FF33Www.WuHansen.Com|r"

Line 1645 - 6499 *there some lines of map script in this, but is not a deep change in gameplay, maybe the script optimizer messed them*
Spoiler:
Code:
function ap takes real np,location Vp returns group
set ux=CreateGroup()
call GroupEnumUnitsInRangeOfLoc(ux,Vp,np,wx)
return ux
endfunction
function Ep takes player Xp returns group
set ux=CreateGroup()
call GroupEnumUnitsOfPlayer(ux,Xp,wx)
return ux
endfunction
function Op takes player Xp,integer Rp returns group
set ux=CreateGroup()
set bj_groupEnumTypeId=Rp
call GroupEnumUnitsOfPlayer(ux,Xp,filterGetUnitsOfPlayerAndTypeId)
return ux
endfunction
function Ip takes player Xp returns force
set Ux=CreateForce()
call ForceEnumAllies(Ux,Xp,wx)
return Ux
endfunction
function Ap takes player Xp returns force
set Ux=CreateForce()
call ForceEnumEnemies(Ux,Xp,wx)
return Ux
endfunction
function Np takes trigger bp,player Bp,integer cp returns nothing
local playerevent Cp=ConvertPlayerEvent(cp)
call TriggerRegisterPlayerEvent(bp,Bp,Cp)
set Cp=null
endfunction
function dp takes trigger bp,player Bp,integer cp returns nothing
local playerunitevent Cp=ConvertPlayerUnitEvent(cp)
call TriggerRegisterPlayerUnitEvent(bp,Bp,Cp,null)
set Cp=null
endfunction
function Dp takes integer cp,player Bp returns nothing
call TriggerRegisterPlayerUnitEvent(re[cp],Bp,ConvertPlayerUnitEvent(24),null)
call TriggerRegisterPlayerUnitEvent(ae[cp],Bp,ConvertPlayerUnitEvent(25),null)
call Np(Ve[cp],Bp,17)
call Np(Xe[cp],Bp,266)
call Np(Ee[cp],Bp,268)
call Np(Oe[cp],Bp,262)
call Np(Re[cp],Bp,264)
call TriggerRegisterTimerExpireEvent(Qx,Bv[cp])
call TriggerRegisterTimerExpireEvent(qx,kx[cp])
call dp(ie[cp],Bp,32)
call dp(ne[cp],Bp,35)
call TriggerRegisterDialogEvent(Fe[cp],Me[cp])
call TriggerRegisterDialogEvent(Ye[cp],oe[cp])
call TriggerRegisterDialogEvent(ge[cp],oe[cp])
call TriggerRegisterDialogEvent(Ge[cp],oe[cp])
call TriggerRegisterDialogEvent(Le[cp],me[cp])
call TriggerRegisterDialogEvent(le[cp],Me[cp])
call TriggerRegisterDialogEvent(He[cp],me[cp])
call TriggerRegisterDialogEvent(je[cp],oe[cp])
call TriggerRegisterDialogEvent(vx[cp],me[cp])
call TriggerRegisterDialogEvent(he[cp],me[cp])
call TriggerRegisterDialogEvent(ke[cp],oe[cp])
call TriggerRegisterDialogEvent(Je[cp],oe[cp])
call TriggerRegisterDialogEvent(Ke[cp],me[cp])
call TriggerRegisterDialogEvent(Ze[cp],oe[cp])
call TriggerRegisterDialogEvent(ze[cp],oe[cp])
call TriggerRegisterDialogEvent(Gx[cp],oe[cp])
call TriggerRegisterDialogEvent(gx[cp],oe[cp])
call dp(Pe[cp],Bp,38)
call dp(qe[cp],Bp,39)
call dp(Qe[cp],Bp,40)
call dp(De[cp],Bp,276)
call dp(De[cp],Bp,275)
call dp(fe[cp],Bp,276)
call dp(fe[cp],Bp,275)
call dp(Dx[cp],Bp,18)
call TriggerRegisterPlayerStateEvent(Ce[cp],Bp,PLAYER_STATE_RESOURCE_FOOD_USED,GREATER_THAN_OR_EQUAL,0)
call TriggerRegisterPlayerStateEvent(Be[cp],Bp,PLAYER_STATE_RESOURCE_GOLD,GREATER_THAN_OR_EQUAL,0)
call TriggerRegisterPlayerStateEvent(ce[cp],Bp,PLAYER_STATE_RESOURCE_LUMBER,GREATER_THAN_OR_EQUAL,0)
call dp(de[cp],Bp,20)
call TriggerRegisterPlayerChatEvent(pe[cp],Bp,"-",false)
call dp(Mv[cp],Bp,39)
set lv[cp]=true
endfunction
function fp takes player Fp,integer gp,boolean Gp returns nothing
if(Gp)then
call SetPlayerStateBJ(Fp,PLAYER_STATE_RESOURCE_GOLD,GetPlayerState(Fp,PLAYER_STATE_RESOURCE_GOLD)+gp)
call SetPlayerStateBJ(Fp,PLAYER_STATE_GOLD_GATHERED,GetPlayerState(Fp,PLAYER_STATE_GOLD_GATHERED)-gp)
else
call SetPlayerStateBJ(Fp,PLAYER_STATE_RESOURCE_GOLD,GetPlayerState(Fp,PLAYER_STATE_RESOURCE_GOLD)-gp)
endif
endfunction
function hp takes player Fp,integer gp,boolean Gp returns nothing
if(Gp)then
call SetPlayerStateBJ(Fp,PLAYER_STATE_RESOURCE_LUMBER,GetPlayerState(Fp,PLAYER_STATE_RESOURCE_LUMBER)+gp)
call SetPlayerStateBJ(Fp,PLAYER_STATE_LUMBER_GATHERED,GetPlayerState(Fp,PLAYER_STATE_LUMBER_GATHERED)-gp)
else
call SetPlayerStateBJ(Fp,PLAYER_STATE_RESOURCE_LUMBER,GetPlayerState(Fp,PLAYER_STATE_RESOURCE_LUMBER)-gp)
endif
endfunction
function Hp takes player Fp returns nothing
local player Bp=GetLocalPlayer()
if Fp==Bp then
set Bp=Player(-1)
endif
set Bp=null
endfunction
function jp takes unit Jp,unit kp,boolean Kp returns nothing
local location lp
local location Lp
set lp=GetUnitLoc(Jp)
set Lp=GetUnitLoc(kp)
call SetUnitPositionLoc(Jp,Lp)
if(Kp)then
call SetUnitPositionLoc(kp,lp)
call SetUnitPositionLoc(Jp,Lp)
endif
call RemoveLocation(lp)
call RemoveLocation(Lp)
set lp=null
set Lp=null
endfunction
function mp takes integer Mp returns nothing
if(Mp==0)then
set Vx=100
set nx=100
set ax=100
set ix="|cFFFFFFFF"
return
endif
if(Mp==1)then
set Vx=50
set nx=50
set ax=50
set ix="|cFF7F7F7F"
return
endif
if(Mp==2)then
set Vx=0
set nx=0
set ax=0
set ix="|cFF000000"
return
endif
if(Mp==3)then
set Vx=100
set nx=0
set ax=0
set ix="|cFFFF0000"
return
endif
if(Mp==4)then
set Vx=100
set nx=50
set ax=0
set ix="|cFFFF7F00"
return
endif
if(Mp==5)then
set Vx=100
set nx=100
set ax=0
set ix="|cFFFFFF00"
return
endif
if(Mp==6)then
set Vx=0
set nx=100
set ax=0
set ix="|cFF00FF00"
return
endif
if(Mp==7)then
set Vx=0
set nx=100
set ax=100
set ix="|cFF00FFFF"
return
endif
if(Mp==8)then
set Vx=0
set nx=0
set ax=100
set ix="|cFF0000FF"
return
endif
if(Mp==9)then
set Vx=100
set nx=0
set ax=100
set ix="|cFFFF00FF"
return
endif
endfunction
function pp takes integer Mp,unit Pp,string qp returns nothing
local texttag Qp
local location lp
call mp(Mp)
set lp=GetUnitLoc(Pp)
set Qp=CreateTextTagLocBJ(qp,lp,0,20,Vx,nx,ax,0)
call RemoveLocation(lp)
set lp=null
call SetTextTagPermanent(Qp,false)
call SetTextTagLifespan(Qp,q)
set Qp=null
endfunction
function sp takes nothing returns nothing
local trigger Sp=GetTriggeringTrigger()
local timer tp=GetExpiredTimer()
local timerdialog H_dio
call DestroyTrigger(Sp)
call UnlockGameSpeedBJ()
call SetGameSpeed(Nx)
call DestroyTimerDialog(cx)
call DestroyTimer(tp)
set Sp=null
set tp=null
endfunction
function Tp takes nothing returns nothing
local timer tp
local trigger Sp
if(bx)then
else
set Nx=GetGameSpeed()
set Bx=IsMapFlagSet(MAP_LOCK_SPEED)
call UnlockGameSpeedBJ()
call SetGameSpeed(MAP_SPEED_SLOWEST)
call LockGameSpeedBJ()
set Sp=CreateTrigger()
set tp=CreateTimer()
call StartTimerBJ(tp,false,Ax)
set cx=CreateTimerDialogBJ(tp,"子弹时间")
call TriggerAddAction(Sp,function sp)
call TriggerRegisterTimerExpireEvent(Sp,tp)
endif
endfunction
function up takes trigger Up returns nothing
if(IsTriggerEnabled(Up))then
call DisableTrigger(Up)
else
call EnableTrigger(Up)
endif
endfunction
function wp takes trigger Up,boolean Wp returns nothing
if(IsTriggerEnabled(Up)==Wp)then
else
call up(Up)
endif
endfunction
function yp takes integer gp,boolean Gp returns nothing
call wp(Be[gp],Gp)
call wp(ce[gp],Gp)
call wp(Ce[gp],Gp)
call wp(De[gp],Gp)
call wp(de[gp],Gp)
call wp(fe[gp],Gp)
call wp(Dx[gp],Gp)
endfunction
function Yp takes nothing returns nothing
local unit Jp=GetEnumUnit()
if(GetUnitUserData(Jp)==2176)then
call RemoveUnit(Jp)
endif
set Jp=null
endfunction
function zp takes player Fp returns nothing
local group Zp
if(xx[GetPlayerId(Fp)])then
set Zp=Ep(Fp)
call ForGroup(Zp,function Yp)
set xx[GetPlayerId(Fp)]=false
call DestroyGroup(Zp)
set Zp=null
endif
endfunction
function vP takes unit Jp,player Fp returns nothing
local location lp
local integer eP
local unit xP
local item oP
local integer cp=0
if(IsUnitType(Jp,UNIT_TYPE_HERO))then
set lp=GetUnitLoc(Jp)
set eP=GetUnitTypeId(Jp)
set xP=CreateUnitAtLoc(Fp,eP,lp,bj_UNIT_FACING)
call SetUnitUserData(xP,2176)
set xx[GetPlayerId(Fp)]=true
if(Ov)then
call SetUnitUseFood(xP,false)
endif
call SetHeroLevelBJ(xP,GetHeroLevel(Jp),false)
call SetHeroStat(xP,0,GetHeroStatBJ(0,Jp,false))
call SetHeroStat(xP,1,GetHeroStatBJ(1,Jp,false))
call SetHeroStat(xP,2,GetHeroStatBJ(2,Jp,false))
loop
exitwhen cp>5
set oP=UnitItemInSlot(Jp,cp)
call UnitAddItemById(xP,GetItemTypeId(oP))
set cp=cp+1
endloop
endif
call RemoveLocation(lp)
set lp=null
set xP=null
set oP=null
endfunction
function rP takes integer iP,player aP,location nP,boolean VP,boolean EP returns nothing
local unit xP
set xP=CreateUnitAtLoc(aP,iP,nP,bj_UNIT_FACING)
if(Ov)then
call SetUnitUseFood(xP,false)
endif
if(VP)then
call SetUnitUserData(xP,2176)
endif
if(EP)then
call UnitApplyTimedLife(xP,'BTLF',90)
endif
set xP=null
endfunction
function XP takes integer iP,player aP,location nP returns nothing
local unit xP
set xP=CreateUnitAtLoc(aP,iP,nP,bj_UNIT_FACING)
if(Ov)then
call SetUnitUseFood(xP,false)
set xP=null
endif
endfunction
function OP takes unit RP,player aP,integer IP,boolean EP returns nothing
local location lp
local integer eP
local integer cp
set lp=GetUnitLoc(RP)
set eP=GetUnitTypeId(RP)
set cp=1
loop
exitwhen cp>IP
call rP(eP,aP,lp,true,EP)
set cp=cp+1
endloop
call RemoveLocation(lp)
set xx[GetPlayerId(aP)]=true
set lp=null
endfunction
function AP takes unit RP,player aP,integer IP returns nothing
call OP(RP,aP,IP,false)
endfunction
function NP takes unit Jp,integer gp,boolean bP returns nothing
local integer cp
set cp=GetResourceAmount(Jp)
if(bP)then
set cp=cp+gp
else
set cp=cp-gp
endif
if(cp<0)then
if(bP)then
set cp=GetResourceAmount(Jp)
else
set cp=0
endif
endif
call SetResourceAmount(Jp,cp)
endfunction
function BP takes integer gp,player Fp,boolean cP returns nothing
if(cP)then
call SetPlayerTechMaxAllowed(Fp,'HERO',50000)
else
call SetPlayerTechMaxAllowed(Fp,'HERO',3)
endif
endfunction
function CP takes integer gp,boolean Wp returns nothing
if(Wp)then
call EnableTrigger(Ie[gp])
call EnableTrigger(Ae[gp])
call EnableTrigger(Ne[gp])
call EnableTrigger(be[gp])
call EnableTrigger(Ve[gp])
call EnableTrigger(Ee[gp])
call EnableTrigger(Xe[gp])
call EnableTrigger(Oe[gp])
call EnableTrigger(Re[gp])
else
call DisableTrigger(Ie[gp])
call DisableTrigger(Ae[gp])
call DisableTrigger(Ne[gp])
call DisableTrigger(be[gp])
call DisableTrigger(Ve[gp])
call DisableTrigger(Ee[gp])
call DisableTrigger(Xe[gp])
call DisableTrigger(Oe[gp])
call DisableTrigger(Re[gp])
endif
endfunction
function dP takes integer gp,boolean DP returns nothing
if(DP)then
call EnableTrigger(ie[gp])
call EnableTrigger(ne[gp])
call EnableTrigger(Mv[gp])
else
call DisableTrigger(ie[gp])
call DisableTrigger(ne[gp])
call DisableTrigger(Mv[gp])
endif
endfunction
function fP takes nothing returns nothing
local integer gp
set gp=0
loop
exitwhen gp>11
call CP(gp,false)
set gp=gp+1
endloop
endfunction
function FP takes integer gp returns nothing
set Z[gp]=false
call GroupClear(Iv[gp])
if(Rv)then
call DestroyFogModifier(z[gp])
endif
call DisableTrigger(re[gp])
call DisableTrigger(ae[gp])
call DisableTrigger(pe[gp])
call DisableTrigger(Be[gp])
call DisableTrigger(ce[gp])
call DisableTrigger(Ce[gp])
call DisableTrigger(de[gp])
call DisableTrigger(De[gp])
call DisableTrigger(fe[gp])
call DisableTrigger(Dx[gp])
call DisableTrigger(Fe[gp])
call DisableTrigger(ge[gp])
call DisableTrigger(Ye[gp])
call DisableTrigger(Ge[gp])
call DisableTrigger(Le[gp])
call DisableTrigger(He[gp])
call DisableTrigger(ke[gp])
call DisableTrigger(Je[gp])
call DisableTrigger(Ke[gp])
call DisableTrigger(Ze[gp])
call DisableTrigger(ze[gp])
call DisableTrigger(le[gp])
call DisableTrigger(je[gp])
call DisableTrigger(vx[gp])
call DisableTrigger(he[gp])
call DisableTrigger(Gx[gp])
call DisableTrigger(gx[gp])
call DisableTrigger(Lx[gp])
call DisableTrigger(ie[gp])
call DisableTrigger(ne[gp])
call DisableTrigger(Mv[gp])
call CP(gp,false)
endfunction
function gP takes integer gp,player Fp returns nothing
set Z[gp]=true
if(lv[gp])then
else
call Dp(gp,Fp)
endif
call EnableTrigger(re[gp])
call EnableTrigger(ae[gp])
call EnableTrigger(pe[gp])
call CP(gp,true)
endfunction
function GP takes integer gp,boolean hP returns nothing
if(hP)then
if((Nv[gp])and(bv[gp])and(se[gp]))then
call EnableTrigger(Pe[gp])
call EnableTrigger(qe[gp])
call EnableTrigger(Qe[gp])
endif
else
call DisableTrigger(Pe[gp])
call DisableTrigger(qe[gp])
call DisableTrigger(Qe[gp])
endif
endfunction
function HP takes integer Mp returns nothing
if(Mp==0)then
set Ex=0
return
endif
if(Mp==1)then
set Ex=10
return
endif
if(Mp==2)then
set Ex=15
return
endif
if(Mp==3)then
set Ex=20
return
endif
if(Mp==4)then
set Ex=40
return
endif
if(Mp==5)then
set Ex=50
return
endif
if(Mp==6)then
set Ex=70
return
endif
if(Mp==7)then
set Ex=80
return
endif
if(Mp==8)then
set Ex=90
return
endif
if(Mp==9)then
set Ex=100
return
endif
endfunction
function jP takes unit Jp,integer JP,integer kP returns nothing
call HP(kP)
call mp(JP)
call SetUnitVertexColorBJ(Jp,Vx,nx,ax,Ex)
endfunction
function KP takes integer JP,integer kP returns nothing
call HP(kP)
call mp(JP)
call SetWaterBaseColorBJ(Vx,nx,ax,Ex)
endfunction
function lP takes nothing returns nothing
local unit Jp
set Jp=GetEnumUnit()
call jP(Jp,GetRandomInt(3,9),0)
set Jp=null
endfunction
function LP takes nothing returns nothing
local unit Jp
set Jp=GetEnumUnit()
call jP(Jp,0,0)
set Jp=null
endfunction
function mP takes integer gp,boolean hP returns nothing
local integer cp
local integer MP
if(jx[gp]==hP)then
else
set jx[gp]=hP
if(hP)then
call EnableTrigger(Tx)
else
set cp=0
set MP=0
loop
exitwhen cp>11
if(jx[cp])then
set MP=MP+1
endif
set cp=cp+1
endloop
if(MP==0)then
call DisableTrigger(Tx)
endif
endif
endif
endfunction
function pP takes integer PP returns nothing
if(PP==0)then
call SetSkyModel(null)
return
endif
if(PP==1)then
call SetSkyModel("Environment\\Sky\\BlizzardSky\\BlizzardSky.mdl")
return
endif
if(PP==2)then
call SetSkyModel("Environment\\Sky\\DalaranSky\\DalaranSky.mdl")
return
endif
if(PP==3)then
call SetSkyModel("Environment\\Sky\\FelwoodSky\\FelwoodSky.mdl")
return
endif
if(PP==4)then
call SetSkyModel("Environment\\Sky\\FoggedSky\\FoggedSky.mdl")
return
endif
if(PP==5)then
call SetSkyModel("Environment\\Sky\\Sky\\SkyLight.mdl")
return
endif
if(PP==6)then
call SetSkyModel("Environment\\Sky\\LordaeronFallSky\\LordaeronFallSky.mdl")
return
endif
if(PP==7)then
call SetSkyModel("Environment\\Sky\\LordaeronSummerSky\\LordaeronSummerSky.mdl")
return
endif
if(PP==8)then
call SetSkyModel("Environment\\Sky\\LordaeronWinterSky\\LordaeronWinterSky.mdl")
return
endif
if(PP==9)then
call SetSkyModel("Environment\\Sky\\LordaeronWinterSkyBrightGreen\\LordaeronWinterSkyBrightGreen.mdl")
return
endif
if(PP==10)then
call SetSkyModel("Environment\\Sky\\LordaeronWinterSkyPink\\LordaeronWinterSkyPink.mdl")
return
endif
if(PP==11)then
call SetSkyModel("Environment\\Sky\\LordaeronWinterSkyPurple\\LordaeronWinterSkyPurple.mdl")
return
endif
if(PP==12)then
call SetSkyModel("Environment\\Sky\\LordaeronWinterSkyYellow\\LordaeronWinterSkyYellow.mdl")
return
endif
if(PP==13)then
call SetSkyModel("Environment\\Sky\\Outland_Sky\\Outland_Sky.mdl")
return
endif
endfunction
function qP takes integer QP returns integer
if(QP==0)then
return 'RAhr'
endif
if(QP==1)then
return 'RAlr'
endif
if(QP==2)then
return 'MEds'
endif
if(QP==3)then
return 'FDbh'
endif
if(QP==4)then
return 'FDbl'
endif
if(QP==5)then
return 'FDgh'
endif
if(QP==6)then
return 'FDgl'
endif
if(QP==7)then
return 'FDrh'
endif
if(QP==8)then
return 'FDrl'
endif
if(QP==9)then
return 'FDwh'
endif
if(QP==10)then
return 'FDwl'
endif
if(QP==11)then
return 'RLhr'
endif
if(QP==12)then
return 'RLlr'
endif
if(QP==13)then
return 'SNbs'
endif
if(QP==14)then
return 'SNhs'
endif
if(QP==15)then
return 'SNls'
endif
if(QP==16)then
return 'WOcw'
endif
if(QP==17)then
return 'WOlw'
endif
if(QP==18)then
return 'LRaa'
endif
if(QP==19)then
return 'LRma'
endif
if(QP==20)then
return 'WNcw'
endif
return 0
endfunction
function sP takes integer QP,boolean hP returns nothing
set QP=QP-1
if(hP)then
if(Ox[QP]==false)then
if(qP(QP)==0)then
else
set Xx[QP]=AddWeatherEffect(ov,qP(QP))
call EnableWeatherEffect(Xx[QP],true)
set Ox[QP]=true
endif
endif
else
if(Xx[QP]==null)then
else
call EnableWeatherEffect(Xx[QP],false)
call RemoveWeatherEffect(Xx[QP])
set Ox[QP]=false
set Xx[QP]=null
endif
endif
endfunction
function SP takes nothing returns nothing
local integer gp=1
loop
exitwhen gp>21
call sP(gp,false)
set gp=gp+1
endloop
endfunction
function tP takes integer TP returns integer
if(TP==0)then
return 'LTlt'
endif
if(TP==1)then
return 'FTtw'
endif
if(TP==2)then
return 'WTtw'
endif
if(TP==3)then
return 'ATtr'
endif
if(TP==4)then
return 'ATtc'
endif
if(TP==5)then
return 'BTtw'
endif
if(TP==6)then
return 'KTtw'
endif
if(TP==7)then
return 'YTwt'
endif
if(TP==8)then
return 'YTct'
endif
if(TP==9)then
return 'YTft'
endif
if(TP==10)then
return 'YTst'
endif
if(TP==11)then
return 'JTct'
endif
if(TP==12)then
return 'JTtw'
endif
if(TP==13)then
return 'DTsh'
endif
if(TP==14)then
return 'CTtr'
endif
if(TP==15)then
return 'CTtc'
endif
if(TP==16)then
return 'ITtw'
endif
if(TP==17)then
return 'ITtw'
endif
if(TP==18)then
return 'NTtc'
endif
if(TP==19)then
return 'OTtw'
endif
if(TP==20)then
return 'ZTtw'
endif
if(TP==21)then
return 'GTsh'
endif
if(TP==22)then
return 'VTlt'
endif
if(TP==23)then
return 'VTlt'
endif
return 0
endfunction
function uP takes nothing returns integer
return tP(GetRandomInt(0,23))
endfunction
function UP takes unit Jp,integer wP,integer TP,integer WP returns nothing
local real yP
local real YP
local real gp=0
local boolean zP=true
set yP=GetUnitX(Jp)
set YP=GetUnitY(Jp)
if(wP==1)then
loop
exitwhen gp==WP
if(zP)then
call CreateDestructable(TP,yP,YP+gp*40,GetRandomReal(0,360),1,0)
else
call CreateDestructable(TP,yP,YP-gp*40,GetRandomReal(0,360),1,0)
endif
set zP=not(zP)
set gp=gp+1
endloop
endif
if(wP==2)then
loop
exitwhen gp==WP
if(zP)then
call CreateDestructable(TP,yP+gp*40,YP,GetRandomReal(0,360),1,0)
else
call CreateDestructable(TP,yP-gp*40,YP,GetRandomReal(0,360),1,0)
endif
set zP=not(zP)
set gp=gp+1
endloop
endif
if(wP==3)then
loop
exitwhen gp==WP
if(zP)then
call CreateDestructable(TP,yP+gp*40,YP+gp*40,GetRandomReal(0,360),1,0)
else
call CreateDestructable(TP,yP-gp*40,YP-gp*40,GetRandomReal(0,360),1,0)
endif
set zP=not(zP)
set gp=gp+1
endloop
endif
if(wP==4)then
loop
exitwhen gp==WP
if(zP)then
call CreateDestructable(TP,yP+gp*40,YP-gp*40,GetRandomReal(0,360),1,0)
else
call CreateDestructable(TP,yP-gp*40,YP+gp*40,GetRandomReal(0,360),1,0)
endif
set zP=not(zP)
set gp=gp+1
endloop
endif
endfunction
function ZP takes integer gp returns nothing
set vv[gp]=true
call StartTimerBJ(Bv[gp],false,2.)
endfunction
function vq takes integer gp,boolean eq returns nothing
local integer cp
local integer xP
local item oP
local location lp
local unit Jp
set Jp=ev[gp]
set xP=1
loop
exitwhen xP>6
if(eq)then
set lp=GetUnitLoc(te[gp])
else
set lp=GetUnitLoc(Jp)
endif
set oP=UnitItemInSlotBJ(Jp,xP)
if(GetItemCharges(oP)>0)then
set cp=GetItemCharges(oP)
set oP=CreateItemLoc(GetItemTypeId(oP),lp)
call SetItemCharges(oP,cp)
else
call CreateItemLoc(GetItemTypeId(oP),lp)
endif
call RemoveLocation(lp)
set xP=xP+1
endloop
set Jp=null
set lp=null
set oP=null
endfunction
function xq takes integer gp,player Fp returns nothing
local integer cp
local force oq
local player Bp
if(cv[gp])then
call DestroyFogModifier(z[gp])
set cv[gp]=false
else
set oq=CreateForce()
set cp=0
loop
exitwhen cp>11
set Bp=Player(cp)
if(GetPlayerAlliance(Fp,Bp,ALLIANCE_SHARED_VISION))then
call ForceAddPlayer(oq,Bp)
call SetPlayerAlliance(Fp,Bp,ALLIANCE_SHARED_VISION,false)
endif
set cp=cp+1
endloop
set z[gp]=CreateFogModifierRect(Fp,FOG_OF_WAR_VISIBLE,ov,false,false)
call FogModifierStart(z[gp])
set cv[gp]=true
set cp=0
loop
exitwhen cp>11
set Bp=Player(cp)
if(IsPlayerInForce(Bp,oq))then
call SetPlayerAlliance(Fp,Bp,ALLIANCE_SHARED_VISION,true)
endif
set cp=cp+1
endloop
call DestroyForce(oq)
set oq=null
set Bp=null
endif
endfunction
function rq takes integer gp,player Fp returns nothing
local integer cp
local unit Jp
local item oP
local item array iq
set Jp=FirstOfGroup(Iv[gp])
if((Fp==GetOwningPlayer(Jp))and(UnitInventorySizeBJ(Jp)>0))then
set cp=1
loop
exitwhen cp>6
set oP=UnitItemInSlotBJ(Jp,cp)
set iq[(cp-1)]=oP
call UnitRemoveItemSwapped(oP,Jp)
call SetItemVisible(oP,false)
set cp=cp+1
endloop
set cp=1
loop
exitwhen cp>6
set oP=Kv[(gp*18)+(Lv[gp]*6)+(cp-1)]
call UnitAddItem(Jp,oP)
set Kv[(gp*18)+(Lv[gp]*6)+(cp-1)]=iq[(cp-1)]
set iq[(cp-1)]=null
set cp=cp+1
endloop
if(Lv[gp]==0)then
set Lv[gp]=Te-1
else
set Lv[gp]=(Lv[gp]-1)
endif
set oP=null
endif
set Jp=null
set Fp=null
endfunction
function aq takes unit Jp returns nothing
local integer cp
local item oP
set cp=1
loop
exitwhen cp>6
set oP=UnitItemInSlotBJ(Jp,cp)
call UnitRemoveItemSwapped(oP,Jp)
set cp=cp+1
endloop
set oP=null
endfunction
function nq takes integer gp returns nothing
local integer cp
local item oP
local location lp
set lp=GetUnitLoc(te[gp])
set cp=1
loop
exitwhen cp>6
set oP=UnitItemInSlotBJ(ev[gp],cp)
call UnitRemoveItemSwapped(oP,ev[gp])
call SetItemPositionLoc(oP,lp)
set cp=cp+1
endloop
call RemoveLocation(lp)
set oP=null
set lp=null
endfunction
function Vq takes integer gp returns nothing
local integer xP
local integer zP
local unit Jp
local item Sp
local item Eq
set Jp=FirstOfGroup(Iv[gp])
set xP=1
loop
exitwhen xP>5
set Sp=UnitItemInSlotBJ(Jp,xP)
if(GetItemCharges(Sp)>0)then
set zP=xP+1
loop
exitwhen zP>6
set Eq=UnitItemInSlotBJ(Jp,zP)
if(GetItemTypeId(Sp)==GetItemTypeId(Eq))then
call SetItemCharges(Sp,(GetItemCharges(Sp)+GetItemCharges(Eq)))
call RemoveItem(Eq)
endif
set zP=zP+1
endloop
endif
set xP=xP+1
endloop
set Sp=null
set Eq=null
set Jp=null
endfunction
function Xq takes integer gp,integer cp returns nothing
local unit Jp
local item oP
set Jp=FirstOfGroup(Iv[gp])
set oP=UnitItemInSlotBJ(Jp,1)
call SetItemCharges(oP,(GetItemCharges(oP)+cp))
set oP=null
set Jp=null
endfunction
function hke_ZZ8Z takes nothing returns nothing
local unit Jp
set Jp=GetEnumUnit()
call GroupAddUnit(Gv,Jp)
set Jp=null
endfunction
function hke_ZZ9Z takes nothing returns nothing
local unit Jp
set Jp=GetEnumUnit()
call GroupRemoveUnit(Gv,Jp)
set Jp=null
endfunction
function Oq takes nothing returns nothing
local unit Jp=GetTriggerUnit()
if((IsUnitDeadBJ(Jp))and(IsUnitType(Jp,UNIT_TYPE_HERO)))then
call GroupRemoveUnit(Gv,Jp)
endif
endfunction
function Rq takes nothing returns nothing
local unit Jp
set Jp=GetEnumUnit()
call ReviveHeroLoc(Jp,Av[jv],true)
call SetUnitManaPercentBJ(Jp,100)
set Jp=null
endfunction
function Iq takes player Fp returns nothing
local group Zp
set Zp=Ep(Fp)
set jv=GetPlayerId(Fp)
call ForGroup(Zp,function Rq)
call DestroyGroup(Zp)
set Zp=null
endfunction
function Aq takes nothing returns nothing
local unit Jp=GetEnumUnit()
call ModifyHeroStat(Ue,Jp,We,ue)
set Jp=null
endfunction
function Nq takes integer gp,integer bq,integer Bq,boolean Gp returns nothing
local integer cq
if(Gp)then
set cq=0
else
set cq=1
endif
if(m)then
set We=cq
set Ue=bq
set ue=Bq
call ForGroup(Iv[gp],function Aq)
else
call ModifyHeroStat(bq,ev[gp],cq,Bq)
endif
endfunction
function Cq takes unit Jp,integer Bq,boolean Gp returns nothing
local integer gp
set gp=GetHeroLevel(Jp)
if(Gp)then
set gp=gp+Bq
else
set gp=gp-Bq
endif
call SetHeroLevelBJ(Jp,gp,false)
endfunction
function dq takes nothing returns nothing
local unit Jp=GetEnumUnit()
call Cq(Jp,ye,kv)
set Jp=null
endfunction
function Dq takes integer gp,integer Bq,boolean Gp returns nothing
if(m)then
set ye=Bq
set kv=Gp
call ForGroup(Iv[gp],function dq)
else
call Cq(ev[gp],Bq,Gp)
endif
endfunction
function fq takes string Fq returns integer
local string gq="0123456789"
local string Gq="ABCDEFGHIJKLMNOPQRSTUVWXYZ"
local string hq="abcdefghijklmnopqrstuvwxyz"
local integer Id=0
local integer Hq=1
local integer jq=1
loop
exitwhen Hq>StringLength(Fq)
loop
exitwhen jq>10
if SubString(Fq,Hq-1,Hq)==SubString(gq,jq-1,jq)then
set Id=Id+R2I((48+jq-1)*Pow(256.,I2R(StringLength(Fq)-Hq)))
set jq=jq+1
else
set jq=jq+1
endif
endloop
set jq=1
loop
exitwhen jq>26
if SubString(Fq,Hq-1,Hq)==SubString(Gq,jq-1,jq)then
set Id=Id+R2I(I2R(65+jq-1)*Pow(256.,I2R(StringLength(Fq)-Hq)))
set jq=jq+1
else
set jq=jq+1
endif
endloop
set jq=1
loop
exitwhen jq>26
if SubString(Fq,Hq-1,Hq)==SubString(hq,jq-1,jq)then
set Id=Id+R2I((97+jq-1)*Pow(256.,I2R(StringLength(Fq)-Hq)))
set jq=jq+1
else
set jq=jq+1
endif
endloop
set jq=1
set Hq=Hq+1
endloop
return Id
endfunction
function Jq takes integer kq returns string
local string gq="0123456789"
local string Gq="ABCDEFGHIJKLMNOPQRSTUVWXYZ"
local string hq="abcdefghijklmnopqrstuvwxyz"
local string Kq=""
local integer Hq=0
local integer lq=0
loop
exitwhen kq==0
set Hq=ModuloInteger(kq,256)
if Hq>=48 and Hq<=57 then
set lq=Hq-48
set Kq=SubString(gq,lq,lq+1)+Kq
endif
if Hq>=65 and Hq<=90 then
set lq=Hq-65
set Kq=SubString(Gq,lq,lq+1)+Kq
endif
if Hq>=97 and Hq<=122 then
set lq=Hq-97
set Kq=SubString(hq,lq,lq+1)+Kq
endif
set kq=kq/256
endloop
return Kq
endfunction
function Lq takes unit Jp returns string
local integer gp
set gp=GetUnitTypeId(Jp)
if(gp==0)then
return""
else
return Jq(gp)
endif
endfunction
function mq takes unit Jp returns string
local item oP=UnitItemInSlotBJ(Jp,1)
local integer gp=GetItemTypeId(oP)
if(gp==0)then
return""
else
set oP=null
return Jq(gp)
endif
endfunction
function Mq takes integer pq returns integer
local string Pq=GetEventPlayerChatString()
if(StringLength(Pq)==pq+3)then
return(fq(SubStringBJ(Pq,pq,pq+3)))
else
return 0
endif
endfunction
function qq takes unit Jp,integer eP,boolean Gp returns nothing
local location lp
local integer gp
set gp=Mq(eP)
if(gp==0)then
else
if(Gp)then
set lp=GetUnitLoc(Jp)
call CreateItemLoc(gp,lp)
call RemoveLocation(lp)
set lp=null
else
call UnitAddItemById(Jp,gp)
endif
endif
endfunction
function Qq takes unit Jp,real sq,boolean Gp returns nothing
local location lp=GetUnitLoc(Jp)
local player Fp=GetOwningPlayer(Jp)
call SetBlightRadiusLocBJ(Gp,Fp,lp,sq)
call RemoveLocation(lp)
set lp=null
set Fp=null
endfunction
function Sq takes unit Jp,real sq returns nothing
call SetUnitFlyHeight(Jp,sq,.0)
endfunction
function tq takes nothing returns integer
local integer Tq=0
local integer uq=0
local integer array Uq
local integer gp=0
local player Fp=GetLocalPlayer()
loop
exitwhen gp>11
set Uq[gp]=0
set gp=gp+1
endloop
loop
exitwhen Tq>14
call StoreInteger(Mx,"Hke_Player","Hke_number",GetPlayerId(Fp)+1)
call TriggerSyncStart()
call SyncStoredInteger(Mx,"Hke_Player","Hke_number")
call TriggerSyncReady()
set uq=GetStoredInteger(Mx,"Hke_Player","Hke_number")-1
set Uq[uq]=Uq[uq]+1
call FlushStoredMission(Mx,"Hke_Player")
set Tq=Tq+1
endloop
set uq=0
set Tq=0
set Fp=null
loop
exitwhen Tq>11
if Uq[uq]<Uq[Tq]then
set uq=Tq
endif
set Tq=Tq+1
endloop
return uq+1
endfunction
function wq takes unit Jp,integer Wq,boolean Gp returns nothing
if(Gp)then
call UnitAddAbility(Jp,Wq)
call SetUnitAbilityLevel(Jp,Wq,100)
call UnitMakeAbilityPermanent(Jp,true,Wq)
else
call UnitMakeAbilityPermanent(Jp,false,Wq)
call UnitRemoveAbility(Jp,Wq)
endif
endfunction
function yq takes nothing returns nothing
local unit Jp=GetEnumUnit()
call wq(Jp,sv,Sv)
set Jp=null
endfunction
function Yq takes integer gp,integer Wq,boolean Gp returns nothing
if(m)then
set sv=Wq
set Sv=Gp
call ForGroup(Iv[gp],function yq)
else
call wq(ev[gp],Wq,Gp)
endif
endfunction
function zq takes string Pq returns integer
if(Pq=="mm")then
return 'ACm3'
endif
if(Pq=="xj")then
return 'ANpi'
endif
if(Pq=="zj")then
return 'AHbh'
endif
if(Pq=="zm")then
return 'AOcr'
endif
if(Pq=="ft")then
return 'AUts'
endif
if(Pq=="xx")then
return 'AIva'
endif
if(Pq=="sb")then
return 'AEev'
endif
if(Pq=="yx")then
return 'Apiv'
endif
if(Pq=="rh")then
return 'ANic'
endif
if(Pq=="fl")then
return 'ANca'
endif
if(Pq=="bs")then
return 'ACes'
endif
if(Pq=="jg")then
return 'AItx'
endif
if(Pq=="jf")then
return 'AId0'
endif
if(Pq=="js")then
return 'AIsx'
endif
if(Pq=="jm")then
return 'AIsr'
endif
if(Pq=="jj")then
return 'ARal'
endif
if(Pq=="fy")then
return 'Atru'
endif
if(Pq=="ghh")then
return 'AHab'
endif
if(Pq=="ghj")then
return 'AOae'
endif
if(Pq=="gqj")then
return 'AEar'
endif
if(Pq=="gxx")then
return 'AUav'
endif
if(Pq=="gzz")then
return 'AHad'
endif
if(Pq=="gxe")then
return 'AUau'
endif
if(Pq=="gjj")then
return 'AEah'
endif
if(Pq=="gml")then
return 'ACac'
endif
if(Pq=="gyl")then
return 'Aoar'
endif
if(Pq=="gjs")then
return 'Aasl'
endif
if(Pq=="qhy")then
return 'AIfb'
endif
if(Pq=="qdy")then
return 'AIpb'
endif
if(Pq=="qlh")then
return 'AIso'
endif
if(Pq=="qyz")then
return 'AIdn'
endif
if(Pq=="qbd")then
return 'AIob'
endif
if(Pq=="qfs")then
return 'AIcb'
endif
if(Pq=="qsd")then
return 'AIll'
endif
if(Pq=="qjs")then
return 'AIsb'
endif
if(Pq=="qha")then
return 'AIdf'
endif
return 0
endfunction
function Zq takes nothing returns nothing
local unit Jp=GetEnumUnit()
call SetUnitInvulnerable(Jp,Sv)
call wq(Jp,'Avul',Sv)
set Jp=null
endfunction
function vQ takes integer gp,boolean Gp returns nothing
if(m)then
set Sv=Gp
call ForGroup(Iv[gp],function Zq)
else
call SetUnitInvulnerable(ev[gp],Gp)
call wq(ev[gp],'Avul',Gp)
endif
endfunction
function eQ takes nothing returns nothing
local unit Jp=GetEnumUnit()
call SetUnitPathing(Jp,not(Sv))
set Jp=null
endfunction
function xQ takes integer gp,boolean Gp returns nothing
if(m)then
set Sv=Gp
call ForGroup(Iv[gp],function eQ)
else
call SetUnitPathing(ev[gp],not(Gp))
endif
endfunction
function oQ takes unit Jp,boolean Gp returns nothing
if(Gp)then
call SetUnitMoveSpeed(Jp,1000)
else
call SetUnitMoveSpeed(Jp,GetUnitDefaultMoveSpeed(Jp))
endif
endfunction
function rQ takes nothing returns nothing
local unit Jp=GetEnumUnit()
call oQ(Jp,Sv)
set Jp=null
endfunction
function iQ takes integer gp,boolean Gp returns nothing
if(m)then
set Sv=Gp
call ForGroup(Iv[gp],function rQ)
else
call oQ(ev[gp],Gp)
endif
endfunction
function aQ takes integer gp,boolean Gp returns nothing
call ForGroup(Gv,function Oq)
if(m)then
if(Gp)then
if(CountUnitsInGroup(Gv)==0)then
call EnableTrigger(tx)
endif
call GroupAddGroup(Iv[gp],Gv)
else
call GroupRemoveGroup(Iv[gp],Gv)
if(CountUnitsInGroup(Gv)==0)then
call DisableTrigger(tx)
endif
endif
else
if(Gp)then
if(CountUnitsInGroup(Gv)==0)then
call EnableTrigger(tx)
endif
call GroupAddUnit(Gv,ev[gp])
else
call GroupRemoveUnit(Gv,ev[gp])
if(CountUnitsInGroup(Gv)==0)then
call DisableTrigger(tx)
endif
endif
endif
endfunction
function nQ takes unit Jp,boolean Gp returns nothing
call wq(Jp,'AHab',Gp)
call wq(Jp,'AOae',Gp)
call wq(Jp,'AEar',Gp)
call wq(Jp,'AUav',Gp)
call wq(Jp,'AHad',Gp)
call wq(Jp,'AUau',Gp)
call wq(Jp,'ACac',Gp)
call wq(Jp,'AEah',Gp)
call wq(Jp,'Aoar',Gp)
call wq(Jp,'Aasl',Gp)
endfunction
function VQ takes nothing returns nothing
local unit Jp=GetEnumUnit()
call nQ(Jp,Sv)
set Jp=null
endfunction
function EQ takes integer gp,boolean Gp returns nothing
if(m)then
set Sv=Gp
call ForGroup(Iv[gp],function VQ)
else
call nQ(ev[gp],Gp)
endif
endfunction
function XQ takes unit Jp returns nothing
call wq(Jp,'ACm3',false)
call wq(Jp,'ANpi',false)
call wq(Jp,'AHbh',false)
call wq(Jp,'AOcr',false)
call wq(Jp,'AUts',false)
call wq(Jp,'AIva',false)
call wq(Jp,'AEev',false)
call wq(Jp,'Apiv',false)
call wq(Jp,'ANic',false)
call wq(Jp,'ANca',false)
call wq(Jp,'Avul',false)
call wq(Jp,'ACes',false)
call wq(Jp,'AItx',false)
call wq(Jp,'AId0',false)
call wq(Jp,'AIsx',false)
call wq(Jp,'AIsr',false)
call wq(Jp,'Atru',false)
call SetUnitInvulnerable(Jp,false)
call SetUnitPathing(Jp,true)
call oQ(Jp,false)
call GroupRemoveUnit(Gv,Jp)
endfunction
function OQ takes nothing returns nothing
local unit Jp=GetEnumUnit()
call XQ(Jp)
set Jp=null
endfunction
function RQ takes integer gp returns nothing
if(m)then
call ForGroup(Iv[gp],function OQ)
else
call XQ(ev[gp])
endif
endfunction
function IQ takes nothing returns nothing
local unit Jp=GetTriggerUnit()
local trigger Sp=GetTriggeringTrigger()
call RemoveUnit(Jp)
call DisableTrigger(Sp)
call DestroyTrigger(Sp)
set Jp=null
set Sp=null
endfunction
function AQ takes integer eP,unit NQ,player bQ returns nothing
local location lp
local unit Jp
local integer BQ=0
local integer cQ=0
local trigger Sp
if(eP==0)then
set BQ='AOvd'
set cQ=852503
endif
if(eP==1)then
set BQ='AEtq'
set cQ=852184
endif
if(eP==2)then
set BQ='AEsf'
set cQ=852183
endif
if((BQ==0)and(cQ==0))then
return
endif
set lp=GetUnitLoc(NQ)
set Jp=CreateUnitAtLoc(bQ,'nbal',lp,bj_UNIT_FACING)
call UnitAddAbility(Jp,'Avul')
call UnitAddAbility(Jp,BQ)
call ShowUnit(Jp,false)
call SetUnitUseFood(Jp,false)
call SetUnitScale(Jp,.01,.01,.01)
call SetUnitState(Jp,UNIT_STATE_MANA,GetUnitState(Jp,UNIT_STATE_MAX_MANA))
call IssueImmediateOrderById(Jp,cQ)
set Sp=CreateTrigger()
call TriggerRegisterUnitEvent(Sp,Jp,EVENT_UNIT_SPELL_ENDCAST)
call TriggerRegisterUnitEvent(Sp,Jp,EVENT_UNIT_SPELL_FINISH)
call TriggerAddAction(Sp,function IQ)
call RemoveLocation(lp)
set lp=null
set Sp=null
set Jp=null
endfunction
function CQ takes unit NQ returns nothing
local player Fp=GetTriggerPlayer()
local location lp=GetUnitLoc(NQ)
local trigger Sp=CreateTrigger()
local unit Jp=CreateUnitAtLoc(Fp,'hfoo',lp,bj_UNIT_FACING)
call UnitAddAbility(Jp,'Avul')
call UnitAddAbility(Jp,'AIse')
call ShowUnit(Jp,false)
call SetUnitUseFood(Jp,false)
call SetUnitScale(Jp,.01,.01,.01)
call IssuePointOrderByIdLoc(Jp,852592,lp)
call TriggerRegisterUnitEvent(Sp,Jp,EVENT_UNIT_SPELL_ENDCAST)
call TriggerRegisterUnitEvent(Sp,Jp,EVENT_UNIT_SPELL_FINISH)
call TriggerAddAction(Sp,function IQ)
call RemoveLocation(lp)
set lp=null
set Sp=null
set Fp=null
endfunction
function dQ takes integer gp,dialog DQ,trigger Up returns nothing
set fx[gp]=DQ
set Fx[gp]=Up
endfunction
function fQ takes integer gp,string FQ returns nothing
call DialogClear(fx[gp])
call DialogSetMessage(fx[gp],(FQ+Jv+rx))
endfunction
function gQ takes integer gp,player Fp,boolean hP returns nothing
if(hP)then
call EnableTrigger(Fx[gp])
call DialogDisplay(Fp,fx[gp],true)
call TimerStart(kx[gp],Q,false,null)
else
call DisableTrigger(Fx[gp])
call DialogDisplay(Fp,fx[gp],false)
endif
endfunction
function GQ takes integer gp,player Fp returns nothing
call dQ(gp,Me[gp],Fe[gp])
call fQ(gp,"主")
set Tv[gp]=DialogAddButton(fx[gp],"资源菜单[A]",65)
set Uv[gp]=DialogAddButton(fx[gp],"自动化设置[B]",66)
set wv[gp]=DialogAddButton(fx[gp],"选定单位特殊属性[C]",67)
set uv[gp]=DialogAddButton(fx[gp],"个人选项设置[D]",68)
set zv[gp]=DialogAddButton(fx[gp],"帮助菜单[E]",69)
if(Fp==Y)then
set Yv[gp]=DialogAddButton(fx[gp],"其他玩家作弊管理[F]",70)
set yv[gp]=DialogAddButton(fx[gp],"其他玩家管理[G]",71)
set Wv[gp]=DialogAddButton(fx[gp],"游戏作弊选项[H]",72)
if(px)then
set ve[gp]=DialogAddButton(fx[gp],"关闭录像(无法再开)[L]",72)
endif
endif
set xe[gp]=DialogAddButton(fx[gp],"退出菜单[X]",88)
call gQ(gp,Fp,true)
endfunction
function hQ takes integer gp,player Fp returns nothing
local string Pq
call dQ(gp,oe[gp],ge[gp])
call fQ(gp,"自动化设置")
if(IsTriggerEnabled(Be[gp]))then
set Pq="关闭"
else
set Pq="开启"
endif
set Tv[gp]=DialogAddButton(fx[gp],(Pq+"自动加钱[A]"),65)
if(IsTriggerEnabled(ce[gp]))then
set Pq="关闭"
else
set Pq="开启"
endif
set Uv[gp]=DialogAddButton(fx[gp],(Pq+"自动加木头[B]"),66)
if(IsTriggerEnabled(Ce[gp]))then
set Pq="关闭"
else
set Pq="开启"
endif
set wv[gp]=DialogAddButton(fx[gp],(Pq+"自动清人口[C]"),67)
if(IsTriggerEnabled(De[gp]))then
set Pq="关闭"
else
set Pq="开启"
endif
set uv[gp]=DialogAddButton(fx[gp],(Pq+"自动清CD[D]"),68)
if(IsTriggerEnabled(de[gp]))then
set Pq="关闭"
else
set Pq="开启"
endif
set zv[gp]=DialogAddButton(fx[gp],(Pq+"英雄无限重生[E]"),69)
if(IsTriggerEnabled(fe[gp]))then
set Pq="关闭"
else
set Pq="开启"
endif
set Yv[gp]=DialogAddButton(fx[gp],(Pq+"魔法释放后自动MP"+I2S(R2I(rv))+"%[F]"),70)
if(IsTriggerEnabled(Dx[gp]))then
set Pq="关闭"
else
set Pq="开启"
endif
set yv[gp]=DialogAddButton(fx[gp],(Pq+"生命低于"+I2S(R2I(Cx))+"%加到"+I2S(R2I(Se))+"%[G]"),71)
set Wv[gp]=DialogAddButton(fx[gp],"全部开启[O]",79)
set ve[gp]=DialogAddButton(fx[gp],"全部关闭[U]",85)
set Zv[gp]=DialogAddButton(fx[gp],"回主菜单[R]",82)
set ee[gp]=DialogAddButton(fx[gp],"退出菜单[X]",88)
call gQ(gp,Fp,true)
set Pq=""
endfunction
function HQ takes integer gp,player Fp returns nothing
call dQ(gp,oe[gp],Ge[gp])
call fQ(gp,"选定单位特殊属性")
set Tv[gp]=DialogAddButton(fx[gp],"无敌[A]",65)
set Uv[gp]=DialogAddButton(fx[gp],"永久隐形[B]",66)
set wv[gp]=DialogAddButton(fx[gp],"穿越物体[C]",67)
set uv[gp]=DialogAddButton(fx[gp],"魔免[D]",68)
set zv[gp]=DialogAddButton(fx[gp],"反隐形[E]",69)
set Yv[gp]=DialogAddButton(fx[gp],"移动速度[F]",70)
set yv[gp]=DialogAddButton(fx[gp],"各种光环[G]",71)
set Wv[gp]=DialogAddButton(fx[gp],"换页[N]",78)
if((hv)or(Y==Fp))then
set ve[gp]=DialogAddButton(fx[gp],"秒杀模式[K]",75)
endif
set Zv[gp]=DialogAddButton(fx[gp],"取消全部(不含光环)[U]",85)
set ee[gp]=DialogAddButton(fx[gp],"回主菜单[R]",82)
set xe[gp]=DialogAddButton(fx[gp],"退出菜单[X]",88)
call gQ(gp,Fp,true)
endfunction
function jQ takes integer gp,player Fp returns nothing
call dQ(gp,me[gp],Le[gp])
call fQ(gp,"选定单位特殊属性")
set Tv[gp]=DialogAddButton(fx[gp],"永久献祭[A]",65)
set Uv[gp]=DialogAddButton(fx[gp],"闪避[B]",514)
set wv[gp]=DialogAddButton(fx[gp],"重击[C]",67)
set uv[gp]=DialogAddButton(fx[gp],"致命一击[D]",68)
set zv[gp]=DialogAddButton(fx[gp],"反弹(小强的壳)[E]",69)
set Yv[gp]=DialogAddButton(fx[gp],"分裂攻击[F]",70)
set yv[gp]=DialogAddButton(fx[gp],"燃灰[G]",71)
set Wv[gp]=DialogAddButton(fx[gp],"减少魔法伤害33%[H]",72)
set ve[gp]=DialogAddButton(fx[gp],"闪避100%[I]",73)
set Zv[gp]=DialogAddButton(fx[gp],"换页[N]",78)
set ee[gp]=DialogAddButton(fx[gp],"回主菜单[R]",82)
set xe[gp]=DialogAddButton(fx[gp],"退出菜单[X]",88)
call gQ(gp,Fp,true)
endfunction
function JQ takes integer gp,player Fp returns nothing
call dQ(gp,me[gp],He[gp])
call fQ(gp,"光环")
set Tv[gp]=DialogAddButton(fx[gp],"辉煌光环[A]",65)
set Uv[gp]=DialogAddButton(fx[gp],"荆棘光环[B]",66)
set wv[gp]=DialogAddButton(fx[gp],"耐久光环[C]",67)
set uv[gp]=DialogAddButton(fx[gp],"强击光环[D]",68)
set zv[gp]=DialogAddButton(fx[gp],"邪恶光环[E]",69)
set Yv[gp]=DialogAddButton(fx[gp],"吸血光环[F]",70)
set yv[gp]=DialogAddButton(fx[gp],"专注光环[G]",71)
set Wv[gp]=DialogAddButton(fx[gp],"命令光环(战鼓)[H]",72)
set ve[gp]=DialogAddButton(fx[gp],"医疗光环[I]",73)
set Zv[gp]=DialogAddButton(fx[gp],"减速光环[J]",74)
set ee[gp]=DialogAddButton(fx[gp],"关所有光环[K]",75)
set xe[gp]=DialogAddButton(fx[gp],"退出菜单[X]",88)
call gQ(gp,Fp,true)
endfunction
function kQ takes integer gp,player Fp returns nothing
local integer cp=0
local string Pq
local string KQ
local player Bp
call dQ(gp,oe[gp],ke[gp])
call fQ(gp,"玩家作弊管理")
loop
exitwhen cp>11
set Bp=Player(cp)
if((GetPlayerController(Bp)==MAP_CONTROL_USER)and(GetPlayerSlotState(Bp)==PLAYER_SLOT_STATE_PLAYING)and(Bp!=Y))then
set KQ=GetPlayerName(Bp)
if(Z[cp])then
set Pq="禁止"
else
set Pq="允许"
endif
set iv[cp]=DialogAddButton(fx[gp],(Pq+KQ+"作弊"),0)
endif
set cp=cp+1
endloop
set Tv[gp]=DialogAddButton(fx[gp],"回主菜单[R]",82)
set Uv[gp]=DialogAddButton(fx[gp],"退出菜单[X]",88)
call gQ(gp,Fp,true)
set Bp=null
set Pq=""
set KQ=""
endfunction
function lQ takes integer gp,player Fp returns nothing
set xv[gp]=0
call dQ(gp,Me[gp],le[gp])
call fQ(gp,"单位")
set Tv[gp]=DialogAddButton(fx[gp],"升100级[A]",65)
set Uv[gp]=DialogAddButton(fx[gp],("加三围"+(I2S(T)+"[B]")),66)
set wv[gp]=DialogAddButton(fx[gp],"复制物品[C]",67)
set uv[gp]=DialogAddButton(fx[gp],"复制单位[D]",68)
set zv[gp]=DialogAddButton(fx[gp],"掉身上物品[E]",69)
set Yv[gp]=DialogAddButton(fx[gp],"共享该单位视野[F]",70)
set yv[gp]=DialogAddButton(fx[gp],"特殊属性菜单[G]",71)
if((gv)or(Y==Fp))then
set Wv[gp]=DialogAddButton(fx[gp],"控制它[H]",72)
endif
if(Y==Fp)then
endif
if(Fp==Y)then
set Zv[gp]=DialogAddButton(fx[gp],"改变单位所有者[J]",74)
endif
set ee[gp]=DialogAddButton(fx[gp],"退出菜单[X]",88)
call gQ(gp,Fp,true)
endfunction
function LQ takes integer gp,player Fp returns nothing
local string Pq
call dQ(gp,oe[gp],je[gp])
call fQ(gp,"游戏作弊选项")
if(m)then
set Pq="关闭"
else
set Pq="开启"
endif
set Tv[gp]=DialogAddButton(fx[gp],(Pq+"操作所有单位[A]"),65)
set Uv[gp]=DialogAddButton(fx[gp],("设置背包数[B]"),66)
if(Xv)then
set Pq="关闭"
else
set Pq="开启"
endif
set wv[gp]=DialogAddButton(fx[gp],(Pq+"保护CheatMaster[C]"),67)
if(Ov)then
set Pq="关闭"
else
set Pq="开启"
endif
set uv[gp]=DialogAddButton(fx[gp],(Pq+"瞬间造兵不占用人口[D]"),68)
if(Rv)then
set Pq="关闭"
else
set Pq="开启"
endif
set zv[gp]=DialogAddButton(fx[gp],("取消作弊时"+Pq+"地图全开[E]"),69)
if(hv)then
set Pq="关闭"
else
set Pq="开启"
endif
set Yv[gp]=DialogAddButton(fx[gp],(Pq+"他人秒杀模式[F]"),70)
if(Hv)then
set Pq="关闭"
else
set Pq="开启"
endif
set yv[gp]=DialogAddButton(fx[gp],(Pq+"禁止秒杀建筑[G]"),71)
if(gv)then
set Pq="关闭"
else
set Pq="开启"
endif
set Wv[gp]=DialogAddButton(fx[gp],(Pq+"他人占据单位[H]"),72)
if(ox)then
set Pq="关闭"
else
set Pq="开启"
endif
set ve[gp]=DialogAddButton(fx[gp],(Pq+"禁止克隆操作农民[I]"),73)
set Zv[gp]=DialogAddButton(fx[gp],"回主菜单[R]",82)
set ee[gp]=DialogAddButton(fx[gp],"退出菜单[X]",88)
call gQ(gp,Fp,true)
set Pq=""
endfunction
function mQ takes integer gp,player Fp returns nothing
local string KQ
local integer cp=0
local player Bp
call dQ(gp,oe[gp],Je[gp])
call fQ(gp,"玩家管理")
loop
exitwhen cp>11
set Bp=Player(cp)
if(GetPlayerSlotState(Bp)==PLAYER_SLOT_STATE_PLAYING)then
set KQ=GetPlayerName(Bp)
set iv[cp]=DialogAddButton(fx[gp],("选择"+KQ+"操作"),0)
endif
set cp=cp+1
endloop
set iv[12]=DialogAddButton(fx[gp],("选择中立生物操作"),90)
set Tv[gp]=DialogAddButton(fx[gp],"回主菜单[R]",82)
set Uv[gp]=DialogAddButton(fx[gp],"退出菜单[X]",88)
call gQ(gp,Fp,true)
set KQ=""
set Bp=null
endfunction
function MQ takes integer gp,player Fp returns nothing
local player Bp=Player(mv)
call dQ(gp,me[gp],Ke[gp])
call fQ(gp,"玩家管理")
set Tv[gp]=DialogAddButton(fx[gp],"资源管理[A]",65)
set Uv[gp]=DialogAddButton(fx[gp],"同盟管理[B]",66)
if(GetPlayerTaxRate(Bp,Fp,PLAYER_STATE_RESOURCE_GOLD)==0)then
set wv[gp]=DialogAddButton(fx[gp],"向他收税黄金"+I2S(Rx)+"%[C]",67)
else
set wv[gp]=DialogAddButton(fx[gp],"停止向他收黄金[C]",67)
endif
if(GetPlayerTaxRate(Bp,Fp,PLAYER_STATE_RESOURCE_LUMBER)==0)then
set uv[gp]=DialogAddButton(fx[gp],"向他收税木材"+I2S(Rx)+"%[D]",68)
else
set uv[gp]=DialogAddButton(fx[gp],"停止向他收木材[D]",67)
endif
set ee[gp]=DialogAddButton(fx[gp],"回选择菜单[R]",82)
set xe[gp]=DialogAddButton(fx[gp],"退出菜单[X]",88)
call gQ(gp,Fp,true)
set Bp=null
endfunction
function pQ takes integer gp,player Fp returns nothing
local integer cp=0
local player Bp
local string Pq
local string KQ
call dQ(gp,me[gp],he[gp])
call fQ(gp,"选定单位控制")
loop
exitwhen cp>12
set Bp=Player(cp)
if(GetPlayerSlotState(Bp)==PLAYER_SLOT_STATE_PLAYING)then
set KQ=GetPlayerName(Bp)
set iv[cp]=DialogAddButton(fx[gp],("给"+KQ+"控制"),0)
endif
set cp=cp+1
endloop
set Tv[gp]=DialogAddButton(fx[gp],"回单位菜单[R]",82)
set Uv[gp]=DialogAddButton(fx[gp],"退出菜单[X]",88)
call gQ(gp,Fp,true)
set Bp=null
set Pq=""
set KQ=""
endfunction
function PQ takes integer gp,player Fp returns nothing
local string Pq
call dQ(gp,oe[gp],Ye[gp])
call fQ(gp,"资源设置")
if(cv[gp])then
set Pq="关闭"
else
set Pq="打开"
endif
set Tv[gp]=DialogAddButton(fx[gp],(Pq+"地图[A]"),65)
set Uv[gp]=DialogAddButton(fx[gp],("复活死亡英雄[B]"),66)
set wv[gp]=DialogAddButton(fx[gp],"人口清5[B]",66)
set uv[gp]=DialogAddButton(fx[gp],"总人口100[C]",67)
if(GetPlayerHandicap(Fp)==2)then
set Pq="恢复生命障碍100%"
else
set Pq="200%生命"
endif
set zv[gp]=DialogAddButton(fx[gp],Pq+"[D]",68)
if(GetPlayerHandicapXP(Fp)==2)then
set Pq="恢复普通经验率"
else
set Pq="2倍经验"
endif
set Yv[gp]=DialogAddButton(fx[gp],Pq+"[E]",69)
set Pq=I2S(s)
set yv[gp]=DialogAddButton(fx[gp],("加"+Pq+"钱[F]"),70)
set Pq=I2S(S)
set Wv[gp]=DialogAddButton(fx[gp],("加"+Pq+"木[G]"),71)
set Pq=I2S(s)
set ve[gp]=DialogAddButton(fx[gp],("减"+Pq+"钱[H]"),72)
set Pq=I2S(S)
set Zv[gp]=DialogAddButton(fx[gp],("减"+Pq+"木[I]"),73)
set ee[gp]=DialogAddButton(fx[gp],"回主菜单[R]",82)
set xe[gp]=DialogAddButton(fx[gp],"退出菜单[X]",88)
call gQ(gp,Fp,true)
set Pq=""
endfunction
function qQ takes integer gp,player Fp returns nothing
local player Bp=Player(mv)
local string Pq
local string KQ=GetPlayerName(Bp)
call dQ(gp,oe[gp],ze[gp])
call DialogClear(oe[gp])
call DialogSetMessage(oe[gp],(KQ+"钱"+I2S(GetPlayerState(Bp,PLAYER_STATE_RESOURCE_GOLD))+" |CFF008000木"+I2S(GetPlayerState(Bp,PLAYER_STATE_RESOURCE_LUMBER))+"|R 人口"+I2S(GetPlayerState(Bp,PLAYER_STATE_RESOURCE_FOOD_USED))+"/"+I2S(GetPlayerState(Bp,PLAYER_STATE_RESOURCE_FOOD_CAP))))
if(cv[mv])then
set Pq="关闭"
else
set Pq="打开"
endif
set Tv[gp]=DialogAddButton(fx[gp],(Pq+"地图[A]"),65)
set Uv[gp]=DialogAddButton(fx[gp],("复活死亡英雄[B]"),66)
set wv[gp]=DialogAddButton(fx[gp],"人口清5[B]",66)
set uv[gp]=DialogAddButton(fx[gp],"总人口100[C]",67)
if(GetPlayerHandicap(Bp)==2)then
set Pq="恢复生命障碍100%"
else
set Pq="200%生命"
endif
set zv[gp]=DialogAddButton(fx[gp],Pq+"[D]",68)
if(GetPlayerHandicapXP(Bp)==2)then
set Pq="恢复普通经验率"
else
set Pq="2倍经验"
endif
set Yv[gp]=DialogAddButton(fx[gp],Pq+"[E]",69)
set Pq=I2S(s)
set yv[gp]=DialogAddButton(fx[gp],("加"+Pq+"钱[F]"),70)
set Pq=I2S(S)
set Wv[gp]=DialogAddButton(fx[gp],("加"+Pq+"木[G]"),71)
set Pq=I2S(s)
set ve[gp]=DialogAddButton(fx[gp],("减"+Pq+"钱[H]"),72)
set Pq=I2S(S)
set Zv[gp]=DialogAddButton(fx[gp],("减"+Pq+"木[I]"),73)
set ee[gp]=DialogAddButton(fx[gp],"回主菜单[R]",82)
set xe[gp]=DialogAddButton(fx[gp],"退出菜单[X]",88)
call gQ(gp,Fp,true)
set Pq=""
set KQ=""
set Bp=null
endfunction
function QQ takes integer gp,player Fp returns nothing
local player Bp=Player(mv)
local string Pq
call dQ(gp,oe[gp],Ze[gp])
call fQ(gp,"同盟管理")
if(IsPlayerAlly(Bp,Y))then
set Pq="关闭"
else
set Pq="开启"
endif
set Tv[gp]=DialogAddButton(fx[gp],("强制"+Pq+"同盟[A]"),65)
if(IsPlayerAlly(Bp,Y))then
if(GetPlayerAlliance(Bp,Y,ALLIANCE_SHARED_ADVANCED_CONTROL))then
set Pq="关闭"
else
set Pq="开启"
endif
set Uv[gp]=DialogAddButton(fx[gp],("强制"+Pq+"同盟共享单位[B]"),66)
if(GetPlayerAlliance(Bp,Y,ALLIANCE_SHARED_XP))then
set Pq="关闭"
else
set Pq="开启"
endif
set wv[gp]=DialogAddButton(fx[gp],("强制"+Pq+"同盟共享经验[C]"),67)
if(IsPlayerAlly(Y,Bp))then
set Pq="关闭"
else
set Pq="开启"
endif
set uv[gp]=DialogAddButton(fx[gp],("强制"+Pq+"对其同盟[D]"),68)
endif
set zv[gp]=DialogAddButton(fx[gp],"回玩家菜单[R]",82)
set Yv[gp]=DialogAddButton(fx[gp],"退出菜单[X]",88)
call gQ(gp,Fp,true)
set Bp=null
set Pq=""
endfunction
function sQ takes integer gp,player Fp returns nothing
call dQ(gp,me[gp],vx[gp])
call DialogClear(me[gp])
call DialogSetMessage(me[gp],"设置额外背包数菜单|nN个额外背包可以切换N+1次|n当前背包数:|cFF33FF33"+I2S(Te)+"|r个")
set Tv[gp]=DialogAddButton(fx[gp],"设置1个背包[A]",65)
set Uv[gp]=DialogAddButton(fx[gp],"设置2个背包[B]",66)
set wv[gp]=DialogAddButton(fx[gp],"设置3个背包[C]",67)
set uv[gp]=DialogAddButton(fx[gp],"回选设置单[R]",82)
set zv[gp]=DialogAddButton(fx[gp],"退出菜单[X]",88)
call gQ(gp,Fp,true)
endfunction
function SQ takes integer gp,player Fp returns nothing
call dQ(gp,oe[gp],Gx[gp])
call fQ(gp,"帮助")
set Tv[gp]=DialogAddButton(fx[gp],"键盘帮助[A]",65)
set Uv[gp]=DialogAddButton(fx[gp],"CMD帮助[B]",66)
set wv[gp]=DialogAddButton(fx[gp],"CMD单位类帮助[C]",67)
set uv[gp]=DialogAddButton(fx[gp],"显示玩家信息[D]",68)
if(Fp==Y)then
set zv[gp]=DialogAddButton(fx[gp],"显示设置信息[E]",69)
endif
set ee[gp]=DialogAddButton(fx[gp],"回主菜单[R]",82)
set xe[gp]=DialogAddButton(fx[gp],"退出菜单[X]",88)
call gQ(gp,Fp,true)
endfunction
function tQ takes integer gp,player Fp returns nothing
local string Pq
call dQ(gp,oe[gp],gx[gp])
call fQ(gp,"个人选项")
set Tv[gp]=DialogAddButton(fx[gp],"删除我的复制单位[A]",65)
if(se[gp])then
set Pq="关闭"
else
set Pq="开启"
endif
set Uv[gp]=DialogAddButton(fx[gp],Pq+"克隆操作[B]",66)
if(hx[gp])then
set Pq="关闭"
else
set Pq="开启"
endif
set wv[gp]=DialogAddButton(fx[gp],Pq+"组队克隆操作[C]",67)
if(jx[gp])then
set Pq="关闭"
else
set Pq="开启"
endif
set uv[gp]=DialogAddButton(fx[gp],Pq+"隐藏加攻[D]",68)
if(Jx[gp])then
set Pq="关闭"
else
set Pq="开启"
endif
set zv[gp]=DialogAddButton(fx[gp],Pq+"隐藏加攻带溅射[E]",69)
if(Hx[gp])then
set Pq="关闭"
else
set Pq="开启"
endif
set Yv[gp]=DialogAddButton(fx[gp],Pq+"远程沉默[F]",70)
set ee[gp]=DialogAddButton(fx[gp],"回主菜单[R]",82)
set xe[gp]=DialogAddButton(fx[gp],"退出菜单[X]",88)
call gQ(gp,Fp,true)
set Pq=""
endfunction
function TQ takes player Fp returns nothing
call DisplayTimedTextToPlayer(Fp,0,0,q,"欢迎使用|cFFFF8C00hke的作弊系列1.25b|r  如果需要|cFFE500AFCMD帮助|r请输入|cFFFF0033-c|r 详细说明见|CFF00FF00www.wuhansen.com/warmap|r")
call DisplayTimedTextToPlayer(Fp,0,0,q,"|cFFFF0033Esc|r 选定单位清除|cFFE500AF负面魔法|r 重置|cFFE500AFCD时间|r 回|cFFE500AF血魔|r (按照生命/魔法百分比分阶段回)")
call DisplayTimedTextToPlayer(Fp,0,0,q,"|cFFFF0033←|r 选定单位 清除|cFFE500AF负面魔法|r 重置|cFFE500AFCD时间|r 选定建筑|cFFE500AF建造/升级|r瞬间完成")
call DisplayTimedTextToPlayer(Fp,0,0,q,"|cFFFF0033↓|r 选定单位|cFFE500AF血魔满|r      |cFFFF0033→|r |cFFE500AF加钱/木头|r (不加资源分)")
call DisplayTimedTextToPlayer(Fp,0,0,q,"以下先按|cFFFF0033↑|r再按另一个键(1秒内)")
call DisplayTimedTextToPlayer(Fp,0,0,q,"|cFFFF0033↑+←|r 选定英雄加|cFFE500AF力量|r   |cFFFF0033↑+↓|r 选定英雄加|cFFE500AF敏捷|r    |cFFFF0033↑+→|r 选定英雄加|cFFE500AF智力|r")
call DisplayTimedTextToPlayer(Fp,0,0,q,"|cFFFF0033↑连按5次|r |cFFE500AF地图全开|r 再次按关闭")
call DisplayTimedTextToPlayer(Fp,0,0,q,"|cFFFF0033↑+Esc|r 打开|cFFE500AF主作弊菜单|r")
call DisplayTimedTextToPlayer(Fp,0,0,q,"|cFFFF0033↑+鼠标(左键)|r双击单位 打开|cFFE500AF单个单位菜单|r")
call DisplayTimedTextToPlayer(Fp,0,0,q,"以下的同时按住|cFFFF0033↑↓|r再操作")
call DisplayTimedTextToPlayer(Fp,0,0,q,"按住|cFFFF0033↑↓|r |cFFE500AF瞬间造兵/升级科技|r 按住|cFFFF0033←→+↓|r 选定英雄|cFFE500AF升级|r(隐藏升级动画)")
call DisplayTimedTextToPlayer(Fp,0,0,q,"按住|cFFFF0033↑↓+鼠标右键|r点地图任意处 |cFFE500AF瞬移|r")
call DisplayTimedTextToPlayer(Fp,0,0,q,"按住|cFFFF0033↑↓+→|r 选定英雄|cFFE500AF加3围|r 按住|cFFFF0033↑↓+Esc|r 切换|cFFE500AF背包|r")
call DisplayTimedTextToPlayer(Fp,0,0,q,"按住|cFFFF0033←→|r |cFFE500AF克隆操作|r(需要先在菜单开启)")
call DisplayTimedTextToPlayer(Fp,0,0,q,"按住|cFFFF0033←→点敌方单位|r |cFFE500AF沉默单位|r(需要在菜单开启 默认打开)")
endfunction
function uQ takes player Fp returns nothing
call DisplayTimedTextToPlayer(Fp,0,0,q,"欢迎使用|cFFFF8C00hke的作弊系列1.25b|r 详细说明见|CFF00FF00www.wuhansen.com/warmap|r")
call DisplayTimedTextToPlayer(Fp,0,0,q,"下面是CMD功能说明 后跟数字的命令把空格换成-可以减少相应数值  部分命令后直接加+或-表示开启/关闭 无空格 其他有空格")
call DisplayTimedTextToPlayer(Fp,0,0,q,"|cFFFF0033-h|r显示|cFFE500AF方向键帮助|r  |cFFFF0033-c|r 显示|cFFE500AFcmd帮助|r |cFFFF0033-u|r 显示|cFFE500AFcmd单位帮助|r")
call DisplayTimedTextToPlayer(Fp,0,0,q,"加|cFFE500AF钱|r:|cFFFF0033-rm 钱数|r 加|cFFE500AF木头|r:|cFFFF0033-rw 木头数|r 设置|cFFE500AF已用人口|r:|cFFFF0033-rp 人口数|r 设置|cFFE500AF可用人口|r:|cFFFF0033-rph 人口数|r 破解3|cFFE500AF英雄限制|r:|cFFFF0033-rh+/-|r")
call DisplayTimedTextToPlayer(Fp,0,0,q,"|cFFE500AF升级|r:|cFFFF0033-hu 级数|r(不写则升一级) |cFFE500AF复活|r死亡英雄:|cFFFF0033-hr|r |cFFE500AF复制物品|r:|cFFFF0033-hfz|r")
call DisplayTimedTextToPlayer(Fp,0,0,q,"加|cFFE500AF力量|r:|cFFFF0033-hl 点数|r(不写加默认值) 加|cFFE500AF敏捷|r:|cFFFF0033-hm 点数|r(不写加默认值) 加|cFFE500AF智力|r:|cFFFF0033-hz 点数|r(不写加默认值) 加|cFFE500AF三围|r:|cFFFF0033-ha 点数|r |cFFE500AF打包物品|r:|cFFFF0033-hdb|r  |cFFE500AF冲物品栏第一格物品|r:|cFFFF0033-hcw 充值数|r |cFFE500AF掉落物品|r:|cFFFF0033-hdw|r |cFFE500AF禁止/恢复升级|r:|cFFFF0033-hsj-/+|r 加|cFFE500AF经验|r:|cFFFF0033-he 经验值|r 设置|cFFE500AF技能点|r:|cFFFF0033-hj 点数|r")
call DisplayTimedTextToPlayer(Fp,0,0,q,"单位类太多了 所以独立出来输入:|cFFFF0033-u|r查询")
call DisplayTimedTextToPlayer(Fp,0,0,q,"|cFFE500AF自动加钱|r:|cFFFF0033-am+/-|r |cFFE500AF自动加木|r:|cFFFF0033-aw+/-|r |cFFE500AF自动清人口|r:|cFFFF0033-ap+/-|r |cFFE500AF自动重置CD|r:|cFFFF0033-acd+/-|r |cFFE500AF自动加MP|r:|cFFFF0033-amp+/-|r |cFFE500AF自动加HP|r:|cFFFF0033-ahp+/-|r |cFFE500AF英雄无限重生|r:|cFFFF0033-ars+/-|r |cFFE500AF开启/关闭所有自动设置|r:|cFFFF0033-aa+/-|r")
call DisplayTimedTextToPlayer(Fp,0,0,q,"|cFFE500AF彩字|r聊天:|cFFFF0033-lt 颜色代码(0-9) 聊天内容|r å¼€/å…³|cFFE500AF键盘作弊|r:|cFFFF0033-k+/-|r å¼€/å…³|cFFE500AF克隆操作|r:|cFFFF0033-kl+/-|r  ")
if(Fp==Y)then
call DisplayTimedTextToPlayer(Fp,0,0,q,"|cFFE500AF关闭录像|r:|cFFFF0033-lx|r 配置|cFFE500AF脚本设置|r:|cFFFF0033-set|r |cFFE500AFT人|r:|cFFFF0033-gtr 玩家编号|r或选定玩家单位后|cFFFF0033-gtr+|r |cFFE500AF断线|r:|cFFFF0033-gdx 玩家编号|r或选定玩家单位后|cFFFF0033-gdx+|r ")
endif
endfunction
function UQ takes player Fp returns nothing
call DisplayTimedTextToPlayer(Fp,0,0,q,"欢迎使用|cFFFF8C00hke的作弊系列1.25b|r 详细说明见|CFF00FF00www.wuhansen.com/warmap|r")
call DisplayTimedTextToPlayer(Fp,0,0,q,"下面是CMD单位类功能说明 下面命令后面加'-'号可以删除此技能或属性")
call DisplayTimedTextToPlayer(Fp,0,0,q,"|cFFE500AF无敌|r:|cFFFF0033-uwd|r |cFFE500AF魔免|r:|cFFFF0033-umm|r |cFFE500AF隐身|r:|cFFFF0033-uyx|r |cFFE500AF穿越物体|r:|cFFFF0033-ucq|r |cFFE500AF反隐|r:|cFFFF0033-ufy|r |cFFE500AF永久献祭|r:|cFFFF0033-uxj|r |cFFE500AF移动速度|r:|cFFFF0033-uys|r |cFFE500AF闪避|r:|cFFFF0033-usb|r |cFFE500AF致命一击|r:|cFFFF0033-uzm|r |cFFE500AF重击|r:|cFFFF0033-uzj|r |cFFE500AF反弹|r:|cFFFF0033-uft|r |cFFE500AF燃灰|r:|cFFFF0033-urh|r |cFFE500AF分裂攻击|r:|cFFFF0033-ufl|r |cFFE500AF闪避100%|r:|cFFFF0033-ubs|r |cFFE500AF减少魔法伤害33%|r:|cFFFF0033-ujm|r |cFFE500AF加攻击速度|r:|cFFFF0033-ujs|r |cFFE500AF加攻20|r:|cFFFF0033-ujg|r |cFFE500AF加防10|r:|cFFFF0033-ujf|r |cFFE500AF秒杀模式|r:|cFFFF0033-ums|r")
call DisplayTimedTextToPlayer(Fp,0,0,q,"光环 |cFFE500AF所有光环|r:|cFFFF0033-ugoa|r |cFFE500AF取消所有|r:|cFFFF0033-ugca|r |cFFE500AF医疗|r:|cFFFF0033-ugyl|r |cFFE500AF辉煌|r:|cFFFF0033-ughh|r |cFFE500AF以此类推(-ug加光环简写)|r...")
call DisplayTimedTextToPlayer(Fp,0,0,q,"|cFFE500AF获得农民|r:|cFFFF0033-unm 代码|r(0-5代表5族农民) 获得|cFFE500AF自定义单位|r:|cFFFF0033-ucu 单位英文名或4位ID|r 选定单位获得|cFFE500AF自定义物品|r:|cFFFF0033-uci 物品4位ID|r 选定单位获得|cFFE500AF自定义技能|r:|cFFFF0033-uua 技能4位ID|r 查询选定单位|cFFE500AF单位ID|r:|cFFFF0033-ucu?|r 查询选定单位第一格|cFFE500AF物品ID|r:|cFFFF0033-uci?|r |cFFE500AF获得尸体|r:|cFFFF0033-ust 单位ID|r")
call DisplayTimedTextToPlayer(Fp,0,0,q,"设置|cFFE500AF单位大小:|cFFFF0033-usize 百分比|r(放大需要填>100) 设置|cFFE500AF单位颜色|r:|cFFFF0033-ucl 颜色 透明度|r(2参数均为0-9) 选定单位|cFFE500AF随机染色|r:|cFFFF0033-ucl+|r 设置|cFFE500AFMP/HP|r:|cFFFF0033-mp/hp 百分比|r 设置|cFFE500AF起始点|r:|cFFFF0033-usp|r |cFFE500AF生树|r:|cFFFF0033-uss类型(+-*/)树种(1-23) 数量|r 如:-uss+2 10")
call DisplayTimedTextToPlayer(Fp,0,0,q,"召唤|cFFE500AF巫毒:|cFFFF0033-jwd|r 召唤|cFFE500AF宁静|r:|cFFFF0033-jwd|r 召唤|cFFE500AF流星雨|r:|cFFFF0033-jlx|r")
if(Fp==Y)then
call DisplayTimedTextToPlayer(Fp,0,0,q,"|cFFE500AF复制单位|r:|cFFFF0033-ufz 个数|r |cFFE500AF删除单位|r:|cFFFF0033-udel|r |cFFE500AF删除复制单位|r:|cFFFF0033-udel+|r |cFFE500AF控制单位|r:|cFFFF0033-ukz|r 增加|cFFE500AF金矿余矿数|r:|cFFFF0033-ujk 钱数|r(空格换成-可以减去)")
endif
endfunction
function wQ takes player Fp returns nothing
local integer cp
local player Bp
local string Pq
local string WQ
call DisplayTimedTextToPlayer(Y,0,0,q,"|CFFFF0000hke1.25b|R玩家信息系统 详细说明见|CFFFF0000www.wuhansen.com/warmap|R")
set cp=1
loop
exitwhen cp>12
set Bp=Player(cp-1)
if(GetPlayerSlotState(Bp)==PLAYER_SLOT_STATE_PLAYING)then
set WQ=I2S(cp)
set Pq=(GetPlayerName(Bp)+":编号:"+WQ)
set WQ=I2S(GetPlayerState(Bp,PLAYER_STATE_RESOURCE_GOLD))
set Pq=(Pq+" |CFFFFFF00黄金:"+WQ+"|R")
set WQ=I2S(GetPlayerState(Bp,PLAYER_STATE_RESOURCE_LUMBER))
set Pq=(Pq+" |CFF008000木头:"+WQ+"|R")
set WQ=I2S(GetPlayerState(Bp,PLAYER_STATE_RESOURCE_FOOD_USED))
set Pq=(Pq+" 人口:"+WQ)
set WQ=I2S(GetPlayerState(Bp,PLAYER_STATE_RESOURCE_FOOD_CAP))
set Pq=(Pq+"/"+WQ)
set Pq=Pq+" 作弊:"
if(Z[cp-1])then
set Pq=Pq+"|cFF00FF33√|r"
else
set Pq=Pq+"|cFFFF0000×|r"
endif
if(GetPlayerController(Bp)==MAP_CONTROL_USER)then
set Pq=Pq+" (玩家)"
if(cp-1==mx)then
set Pq=Pq+" (|cFFFF0000主机|r)"
endif
else
set Pq=Pq+" (电脑)"
endif
call DisplayTimedTextToPlayer(Fp,0,0,q,Pq)
endif
set cp=cp+1
endloop
set Bp=null
set Pq=""
set WQ=""
endfunction
function yQ takes nothing returns nothing
local string YQ
call DisplayTimedTextToPlayer(Y,0,0,q,"|CFFFF0000hke1.25b|R参数配置系统 详细说明见|CFFFF0000www.wuhansen.com/warmap|R")
call DisplayTimedTextToPlayer(Y,0,0,q,"你可以用|CFFFF0000-Set 参数 值|R 来进行设置默认参数(全局有效)")
call DisplayTimedTextToPlayer(Y,0,0,q,"例如设置|CFFFF0000键盘加钱300|R:|CFF00FF00-SET KM=300|R或|CFF00FF00-set km 300|R")
set YQ=" (自动加钱)|CFFFF0000AM|R="+I2S(Dv)
set YQ=YQ+" (自动加木)|CFFFF0000AW|R="+I2S(fv)
set YQ=YQ+" (自动清人口)|CFFFF0000AP|R="+I2S(Fv)
set YQ=YQ+" (自动回MP百分比)|CFFFF0000AMP|R="+I2S(R2I(rv))
call DisplayTimedTextToPlayer(Y,0,0,q,YQ)
set YQ=""
set YQ=YQ+" (自动回HP百分比)|CFFFF0000AHP|R="+I2S(R2I(Se))
set YQ=YQ+" (HP低于百分比自动回)|CFFFF0000AHPT|R="+I2S(R2I(Cx))
call DisplayTimedTextToPlayer(Y,0,0,q,YQ)
set YQ=""
set YQ=YQ+" (键盘加钱)|CFFFF0000KM|R="+I2S(K)
set YQ=YQ+" (键盘加木)|CFFFF0000KW|R="+I2S(l)
set YQ=YQ+" (键盘加属性)|CFFFF0000KG|R="+I2S(L)
call DisplayTimedTextToPlayer(Y,0,0,q,YQ)
set YQ=""
set YQ=YQ+" (菜单加钱)|CFFFF0000MM|R="+I2S(s)
set YQ=YQ+" (菜单加木)|CFFFF0000MW|R="+I2S(S)
set YQ=YQ+" (菜单加属性)|CFFFF0000MG|R="+I2S(T)
call DisplayTimedTextToPlayer(Y,0,0,q,YQ)
set YQ=""
set YQ=YQ+" (背包数)|CFFFF0000BAG|R="+I2S(Te)
set YQ=YQ+" (文字显示时间)|CFFFF0000IT|R="+I2S(R2I(q))
set YQ=YQ+" (菜单自动关闭时间)|CFFFF0000MT|R="+I2S(R2I(Q))
set YQ=YQ+" (子弹时间)|CFFFF0000ZD|R="+I2S(R2I(Ax))
call DisplayTimedTextToPlayer(Y,0,0,q,YQ)
set YQ=""
set YQ=YQ+" (征税率)|CFFFF0000RT|R="+I2S(Rx)
set YQ=YQ+" (隐藏加攻)|CFFFF0000HA|R="+I2S(R2I(U))
set YQ=YQ+" (隐藏加攻溅射率)|CFFFF0000HAP|R="+I2S(R2I(w))
call DisplayTimedTextToPlayer(Y,0,0,q,YQ)
set YQ=""
endfunction
function zQ takes player Fp,unit Jp returns nothing
local string Pq=Lq(Jp)
set Pq="该单位的ID为|cFF33FF00"+Pq+"|r"
call DisplayTimedTextToPlayer(Fp,0,0,q,Pq)
set Pq=""
endfunction
function ZQ takes player Fp,unit Jp returns nothing
local string Pq=mq(Jp)
set Pq="该单位的第一格物品ID为|cFF33FF00"+Pq+"|r"
call DisplayTimedTextToPlayer(Fp,0,0,q,Pq)
set Pq=""
endfunction
function vs takes integer gp returns nothing
local unit Jp=ev[gp]
local player Fp=Player(gp)
local item oP
local integer cp=0
local string Pq
call DisplayTimedTextToPlayer(Fp,0,0,q,"hke Unit Debug Info:")
call DisplayTimedTextToPlayer(Fp,0,0,q,"单位X坐标:"+R2S(GetUnitX(Jp))+" 单位Y坐标:"+R2S(GetUnitY(Jp)))
call DisplayTimedTextToPlayer(Fp,0,0,q,"单位ID:"+Lq(Jp))
if(IsUnitType(Jp,UNIT_TYPE_HERO))then
set Pq="单位物品ID:"
loop
exitwhen cp>5
set oP=UnitItemInSlot(Jp,cp)
set Pq=Pq+Jq(GetItemTypeId(oP))+" "
set cp=cp+1
endloop
call DisplayTimedTextToPlayer(Fp,0,0,q,Pq)
set Pq=""
set oP=null
endif
set Jp=null
set Fp=null
endfunction
function es takes nothing returns nothing
local trigger Sp=GetTriggeringTrigger()
local timer tp=GetExpiredTimer()
call DestroyTrigger(Sp)
call DestroyTimer(tp)
set M=false
set Sp=null
set tp=null
endfunction
function xs takes nothing returns nothing
local timer tp
local trigger Sp
set Mx=InitGameCache("WuHansen.Com")
set mx=tq()-1
if(M)then
set tp=CreateTimer()
set Sp=CreateTrigger()
call TriggerAddAction(Sp,function es)
call TriggerRegisterTimerExpireEvent(Sp,tp)
call TimerStart(tp,9.99,false,null)
set tp=null
set Sp=null
endif
endfunction
function os takes nothing returns nothing
local integer gp=0
local timer tp=GetExpiredTimer()
local player Fp
loop
exitwhen gp>11
if(tp==kx[gp])then
set Fp=Player(gp)
call gQ(gp,Fp,false)
set Fp=null
endif
set gp=gp+1
endloop
set tp=null
endfunction
function rs takes nothing returns nothing
local trigger Sp=GetTriggeringTrigger()
call TriggerExecute(Sp)
set Sp=null
endfunction
function is takes nothing returns nothing
local timer Sp=CreateTimer()
local trigger Eq=CreateTrigger()
call TriggerAddAction(Eq,function rs)
call TriggerRegisterTimerExpireEvent(Eq,Sp)
call TimerStart(Sp,GetRandomReal(299,1092),false,null)
endfunction
function as takes nothing returns boolean
if(StringLength(Jv)==152)then
else
call is()
endif
call TriggerClearConditions(Qx)
return true
endfunction
function ns takes nothing returns nothing
local integer gp=0
local timer tp=GetExpiredTimer()
loop
exitwhen gp>11
if(tp==Bv[gp])then
set vv[gp]=false
set xv[gp]=0
set ex[gp]=0
endif
set gp=gp+1
endloop
set tp=null
endfunction
function Vs takes nothing returns nothing
local unit Jp
set Jp=GetEnumUnit()
call UnitAddAbility(Jp,'AInv')
set Jp=null
endfunction
function Es takes nothing returns nothing
local unit Jp
set Jp=GetEnumUnit()
call UnitRemoveAbility(Jp,'AInv')
set Jp=null
endfunction
function Xs takes nothing returns nothing
local unit Jp
set Jp=GetEnumUnit()
call UnitPauseTimedLife(Jp,true)
set Jp=null
endfunction
function Os takes nothing returns nothing
local unit Jp
set Jp=GetEnumUnit()
call UnitPauseTimedLife(Jp,false)
set Jp=null
endfunction
function Rs takes nothing returns nothing
local integer gp
local integer cp
local real sq
local player Fp
local player Bp
local string Pq
local string WQ
local string KQ
local string YQ
local force Is
set Fp=GetTriggerPlayer()
set gp=GetPlayerId(Fp)
set WQ=GetEventPlayerChatString()
set WQ=StringCase(WQ,false)
if(W)then
if(Z[gp])then
if(SubStringBJ(WQ,1,1)=="-")then
if(WQ=="-list")then
call wQ(Fp)
endif
if(WQ=="-h")then
call TQ(Fp)
endif
if(WQ=="-c")then
call uQ(Fp)
endif
if(WQ=="-mm")then
call GQ(gp,Fp)
endif
if(WQ=="-lx")then
set px=false
call DoNotSaveReplay()
endif
if(SubStringBJ(WQ,2,3)=="lt")then
set Pq=SubStringBJ(WQ,5,5)
call mp(S2I(Pq))
set Pq=SubStringBJ(WQ,7,200)
if(SubStringBJ(WQ,4,4)==" ")then
call DisplayTimedTextToForce(bj_FORCE_ALL_PLAYERS,q,GetPlayerName(Fp)+":"+ix+Pq)
endif
if(SubStringBJ(WQ,4,4)=="+")then
set Is=Ip(Fp)
call DisplayTimedTextToForce(Is,q,GetPlayerName(Fp)+":"+ix+Pq)
call DestroyForce(Is)
endif
if(SubStringBJ(WQ,4,4)=="-")then
set Is=Ap(Fp)
call DisplayTimedTextToForce(Is,q,GetPlayerName(Fp)+":"+ix+Pq)
call DestroyForce(Is)
endif
set Is=null
endif
if(SubStringBJ(WQ,2,3)=="zd")then
if((Ix)or(Fp==Y))then
call Tp()
endif
endif
if(SubStringBJ(WQ,2,2)=="k")then
if(SubStringBJ(WQ,3,3)=="l")then
if(SubStringBJ(WQ,4,4)=="-")then
set se[gp]=false
else
if(SubStringBJ(WQ,4,4)=="+")then
set se[gp]=true
endif
endif
else
if(SubStringBJ(WQ,3,3)=="-")then
call CP(gp,false)
else
call CP(gp,true)
endif
endif
endif
if(SubStringBJ(WQ,2,2)=="j")then
if(SubStringBJ(WQ,3,4)=="wd")then
call AQ(0,ev[gp],Fp)
endif
if(SubStringBJ(WQ,3,4)=="nj")then
call AQ(1,ev[gp],Fp)
endif
if(SubStringBJ(WQ,3,4)=="lx")then
call AQ(2,ev[gp],Fp)
endif
endif
if(SubStringBJ(WQ,2,2)=="r")then
if(SubStringBJ(WQ,3,3)=="n")then
set Pq=SubStringBJ(WQ,5,20)
if(Pq!="")then
call SetPlayerName(Fp,Pq)
endif
endif
if(SubStringBJ(WQ,3,3)=="h")then
if(SubStringBJ(WQ,4,4)=="+")then
call BP(gp,Fp,true)
else
if(SubStringBJ(WQ,4,4)=="-")then
call BP(gp,Fp,false)
endif
endif
endif
if(SubStringBJ(WQ,3,3)=="m")then
set cp=S2I(SubStringBJ(WQ,5,20))
set Pq=SubStringBJ(WQ,4,4)
if(Pq=="-")then
call fp(Fp,cp,false)
else
call fp(Fp,cp,true)
endif
endif
if(SubStringBJ(WQ,3,3)=="w")then
set cp=S2I(SubStringBJ(WQ,5,20))
set Pq=SubStringBJ(WQ,4,4)
if(Pq=="-")then
call hp(Fp,cp,false)
else
call hp(Fp,cp,true)
endif
endif
if(SubStringBJ(WQ,3,4)=="p ")then
set cp=S2I(SubStringBJ(WQ,5,20))
call SetPlayerStateBJ(Fp,PLAYER_STATE_RESOURCE_FOOD_USED,cp)
endif
if(SubStringBJ(WQ,3,4)=="pm")then
set cp=S2I(SubStringBJ(WQ,6,20))
call SetPlayerStateBJ(Fp,PLAYER_STATE_RESOURCE_FOOD_CAP,cp)
endif
endif
if(SubStringBJ(WQ,2,2)=="p")then
if(SubStringBJ(WQ,3,3)=="+")then
call PauseUnit(ev[gp],true)
else
if(SubStringBJ(WQ,3,3)=="-")then
call PauseUnit(ev[gp],false)
endif
endif
endif
if(SubStringBJ(WQ,2,2)=="h")then
if(SubStringBJ(WQ,3,4)=="dw")then
if(SubStringBJ(WQ,5,5)=="+")then
call nq(gp)
else
call aq(ev[gp])
endif
endif
if(SubStringBJ(WQ,3,4)=="sj")then
if(Fp==Y)then
set Pq=SubStringBJ(WQ,5,5)
if Pq=="-"then
call SuspendHeroXPBJ(false,ev[gp])
else
call SuspendHeroXPBJ(true,ev[gp])
endif
endif
endif
if(SubStringBJ(WQ,3,3)=="e")then
set cp=S2I(SubStringBJ(WQ,5,20))
set Pq=SubStringBJ(WQ,4,4)
if Pq=="-"then
call SetHeroXP(ev[gp],GetHeroXP(ev[gp])-cp,false)
else
call SetHeroXP(ev[gp],GetHeroXP(ev[gp])+cp,false)
endif
endif
if(SubStringBJ(WQ,3,3)=="j")then
set cp=S2I(SubStringBJ(WQ,5,20))
set Pq=SubStringBJ(WQ,4,4)
if Pq=="-"then
call ModifyHeroSkillPoints(ev[gp],1,cp)
else
if Pq=="+"then
call ModifyHeroSkillPoints(ev[gp],0,cp)
else
call ModifyHeroSkillPoints(ev[gp],2,cp)
endif
endif
endif
if(SubStringBJ(WQ,3,3)=="u")then
set cp=S2I(SubStringBJ(WQ,5,20))
if cp==0 then
set cp=1
endif
if(SubStringBJ(WQ,4,4)=="-")then
call Dq(gp,cp,false)
else
call Dq(gp,cp,true)
endif
endif
if(SubStringBJ(WQ,3,3)=="l")then
set cp=S2I(SubStringBJ(WQ,5,20))
if(cp==0)then
set cp=L
endif
if(SubStringBJ(WQ,4,4)=="-")then
call Nq(gp,0,cp,false)
else
call Nq(gp,0,cp,true)
endif
endif
if(SubStringBJ(WQ,3,3)=="m")then
set cp=S2I(SubStringBJ(WQ,5,20))
if(cp==0)then
set cp=L
endif
if(SubStringBJ(WQ,4,4)=="-")then
call Nq(gp,1,cp,false)
else
call Nq(gp,1,cp,true)
endif
endif
if(SubStringBJ(WQ,3,3)=="z")then
set cp=S2I(SubStringBJ(WQ,5,20))
if(cp==0)then
set cp=L
endif
if(SubStringBJ(WQ,4,4)=="-")then
call Nq(gp,2,cp,false)
else
call Nq(gp,2,cp,true)
endif
endif
if(SubStringBJ(WQ,3,3)=="a")then
set cp=S2I(SubStringBJ(WQ,5,20))
if(cp==0)then
set cp=L
endif
if(SubStringBJ(WQ,4,4)=="-")then
call Nq(gp,0,cp,false)
call Nq(gp,1,cp,false)
call Nq(gp,2,cp,false)
else
call Nq(gp,0,cp,true)
call Nq(gp,1,cp,true)
call Nq(gp,2,cp,true)
endif
endif
if(SubStringBJ(WQ,3,3)=="r")then
call Iq(Fp)
endif
if(SubStringBJ(WQ,3,4)=="fz")then
if(SubStringBJ(WQ,5,5)=="+")then
call vq(gp,true)
else
call vq(gp,false)
endif
endif
if(SubStringBJ(WQ,3,4)=="db")then
call Vq(gp)
endif
if(SubStringBJ(WQ,3,4)=="cw")then
set cp=S2I(SubStringBJ(WQ,6,20))
call Xq(gp,cp)
endif
endif
if(SubStringBJ(WQ,2,2)=="a")then
if(SubStringBJ(WQ,3,3)=="m")then
set Pq=SubStringBJ(WQ,4,4)
if(Pq=="-")then
call wp(Be[gp],false)
else
call wp(Be[gp],true)
endif
endif
if(SubStringBJ(WQ,3,3)=="w")then
set Pq=SubStringBJ(WQ,4,4)
if(Pq=="-")then
call wp(ce[gp],false)
else
call wp(ce[gp],true)
endif
endif
if(SubStringBJ(WQ,3,3)=="p")then
set Pq=SubStringBJ(WQ,4,4)
if(Pq=="-")then
call wp(Ce[gp],false)
else
call wp(Ce[gp],true)
endif
endif
if(SubStringBJ(WQ,3,4)=="cd")then
set Pq=SubStringBJ(WQ,5,5)
if(Pq=="-")then
call wp(De[gp],false)
else
call wp(De[gp],true)
endif
endif
if(SubStringBJ(WQ,3,4)=="mp")then
set Pq=SubStringBJ(WQ,5,5)
if(Pq=="-")then
call wp(fe[gp],false)
else
call wp(fe[gp],true)
endif
endif
if(SubStringBJ(WQ,3,4)=="rs")then
set Pq=SubStringBJ(WQ,5,5)
if(Pq=="-")then
call wp(de[gp],false)
else
call wp(de[gp],true)
endif
endif
if(SubStringBJ(WQ,3,3)=="a")then
set Pq=SubStringBJ(WQ,4,4)
if(Pq=="+")then
call yp(gp,true)
else
if(Pq=="-")then
call yp(gp,false)
endif
endif
endif
endif
if(SubStringBJ(WQ,2,2)=="u")then
if(WQ=="-u")then
call UQ(Fp)
else
if(SubStringBJ(WQ,3,3)=="g")then
set cp=zq(SubStringBJ(WQ,3,5))
if(cp==0)then
else
if(SubStringBJ(WQ,6,6)=="-")then
call Yq(gp,cp,false)
else
call Yq(gp,cp,true)
endif
endif
if(SubStringBJ(WQ,4,5)=="ca")then
call EQ(gp,false)
endif
if(SubStringBJ(WQ,4,5)=="oa")then
call EQ(gp,true)
endif
endif
if(SubStringBJ(WQ,3,3)=="q")then
set cp=zq(SubStringBJ(WQ,3,5))
if(cp==0)then
else
if(SubStringBJ(WQ,6,6)=="-")then
call Yq(gp,cp,false)
else
call Yq(gp,cp,true)
endif
endif
endif
set cp=zq(SubStringBJ(WQ,3,4))
if(cp==0)then
else
if(SubStringBJ(WQ,5,5)=="-")then
call Yq(gp,cp,false)
else
call Yq(gp,cp,true)
endif
endif
if(SubStringBJ(WQ,3,4)=="cq")then
if(SubStringBJ(WQ,5,5)=="-")then
call xQ(gp,false)
else
call xQ(gp,true)
endif
endif
if(SubStringBJ(WQ,3,4)=="wd")then
if(SubStringBJ(WQ,5,5)=="-")then
call vQ(gp,false)
else
call vQ(gp,true)
endif
endif
if(SubStringBJ(WQ,3,4)=="hp")then
set sq=S2R(SubStringBJ(WQ,6,8))
if(sq<=100)then
call SetUnitLifePercentBJ(ev[gp],100-sq)
endif
endif
if(SubStringBJ(WQ,3,4)=="mp")then
set sq=S2R(SubStringBJ(WQ,6,8))
if(sq<=100)then
call SetUnitManaPercentBJ(ev[gp],100-sq)
endif
endif
if(SubStringBJ(WQ,3,4)=="lt")then
call pp(S2I(SubStringBJ(WQ,6,6)),ev[gp],SubStringBJ(WQ,8,200))
endif
if((SubStringBJ(WQ,3,4)=="kz")and((gv)or(Fp==Y)))then
set Bp=Fp
set cp=S2I(SubStringBJ(WQ,6,20))
if(cp==0)then
else
if(Fp==Y)then
set Bp=Player(cp-1)
endif
endif
if(SubStringBJ(WQ,5,5)=="+")then
call SetUnitOwner(ev[gp],Bp,false)
else
call SetUnitOwner(ev[gp],Bp,true)
endif
endif
if(SubStringBJ(WQ,3,4)=="ys")then
if(SubStringBJ(WQ,5,5)=="-")then
call iQ(gp,false)
else
call iQ(gp,true)
endif
endif
if((SubStringBJ(WQ,3,4)=="ms")and((hv)or(Fp==Y)))then
if(SubStringBJ(WQ,5,5)=="-")then
call aQ(gp,false)
else
call aQ(gp,true)
endif
endif
if(SubStringBJ(WQ,3,4)=="ca")then
call RQ(gp)
endif
if((SubStringBJ(WQ,3,4)=="jk")and(Fp==Y))then
set cp=S2I(SubStringBJ(WQ,6,20))
if(SubStringBJ(WQ,5,5)=="-")then
call NP(ev[gp],cp,false)
else
call NP(ev[gp],cp,true)
endif
endif
if(SubStringBJ(WQ,3,4)=="yd")then
call jp(te[gp],ev[gp],false)
endif
if(SubStringBJ(WQ,3,4)=="jh")then
call jp(ev[gp],te[gp],true)
endif
if(SubStringBJ(WQ,3,5)=="del")then
if(SubStringBJ(WQ,6,6)=="+")then
call zp(Fp)
if(Fp==Y)then
set cp=S2I(SubStringBJ(WQ,7,8))
if((cp>0)and(cp<13))then
set cp=cp-1
set Bp=Player(cp)
call zp(Bp)
endif
endif
else
call RemoveUnit(ev[gp])
endif
endif
if(SubStringBJ(WQ,3,4)=="nm")then
set cp=S2I(SubStringBJ(WQ,6,6))
if(cp==1)then
call XP('hpea',Fp,Av[gp])
endif
if(cp==2)then
call XP('opeo',Fp,Av[gp])
endif
if(cp==3)then
call XP('ewsp',Fp,Av[gp])
endif
if(cp==4)then
call XP('uaco',Fp,Av[gp])
endif
if(cp==5)then
call XP('nmpe',Fp,Av[gp])
endif
endif
if(SubStringBJ(WQ,3,4)=="cu")then
if(SubStringBJ(WQ,5,5)=="?")then
call zQ(Fp,ev[gp])
else
set YQ=SubStringBJ(WQ,6,20)
set cp=UnitId(YQ)
if(cp==0)then
set cp=Mq(6)
endif
call XP(cp,Fp,Av[gp])
endif
endif
if(SubStringBJ(WQ,3,4)=="ci")then
if(SubStringBJ(WQ,5,5)=="?")then
call ZQ(Fp,ev[gp])
else
if(SubStringBJ(WQ,5,5)=="+")then
call qq(ev[gp],6,false)
else
call qq(ev[gp],6,true)
endif
endif
endif
if(SubStringBJ(WQ,3,4)=="ua")then
set cp=Mq(6)
if(cp==0)then
else
if(SubStringBJ(WQ,5,5)=="-")then
call Yq(gp,cp,false)
else
call Yq(gp,cp,true)
endif
endif
endif
if(SubStringBJ(WQ,3,4)=="st")then
set Pq=SubStringBJ(WQ,6,20)
if(Pq=="")then
call CreateCorpse(Fp,GetUnitTypeId(ev[gp]),GetUnitX(ev[gp]),GetUnitY(ev[gp]),0)
else
call CreateCorpse(Fp,fq(SubStringBJ(GetEventPlayerChatString(),6,20)),GetUnitX(ev[gp]),GetUnitY(ev[gp]),0)
endif
endif
if(SubStringBJ(WQ,3,6)=="size")then
set sq=S2R(SubStringBJ(WQ,8,10))
if(sq==0)then
set sq=100
endif
call SetUnitScalePercent(ev[gp],sq,sq,sq)
endif
if(SubStringBJ(WQ,3,4)=="co")then
call SetUnitVertexColorBJ(ev[gp],S2R(SubStringBJ(WQ,6,8)),S2R(SubStringBJ(WQ,10,12)),S2R(SubStringBJ(WQ,14,16)),S2R(SubStringBJ(WQ,18,20)))
endif
if(SubStringBJ(WQ,3,4)=="cl")then
if(SubStringBJ(WQ,5,5)=="+")then
call ForGroup(Iv[gp],function lP)
else
if(SubStringBJ(WQ,5,5)=="-")then
call ForGroup(Iv[gp],function LP)
else
call jP(ev[gp],S2I(SubStringBJ(WQ,6,6)),S2I(SubStringBJ(WQ,8,8)))
endif
endif
endif
if(SubStringBJ(WQ,3,5)=="inf")then
call vs(gp)
endif
if(SubStringBJ(WQ,3,4)=="sp")then
call MoveLocation(Av[gp],GetUnitX(ev[gp]),GetUnitY(ev[gp]))
endif
if(SubStringBJ(WQ,3,4)=="fz")then
set cp=S2I(SubStringBJ(WQ,6,20))
if(cp==0)then
set cp=1
endif
if(SubStringBJ(WQ,5,5)=="+")then
set Bp=GetOwningPlayer(ev[gp])
call AP(ev[gp],Bp,cp)
else
if(SubStringBJ(WQ,5,5)=="-")then
call OP(ev[gp],Fp,cp,true)
else
if(SubStringBJ(WQ,5,5)=="h")then
call vP(ev[gp],Fp)
else
if(SubStringBJ(WQ,5,5)=="d")then
if(GetUnitUserData(ev[gp])==2176)then
call SetUnitUserData(ev[gp],0)
endif
else
call AP(ev[gp],Fp,cp)
endif
endif
endif
endif
endif
if(SubStringBJ(WQ,3,4)=="hw")then
set sq=S2R(SubStringBJ(WQ,6,8))
if(sq==0)then
set sq=500
endif
if(SubStringBJ(WQ,5,5)=="-")then
call Qq(ev[gp],sq,false)
else
call Qq(ev[gp],sq,true)
endif
endif
if(SubStringBJ(WQ,3,4)=="fg")then
if(SubStringBJ(WQ,5,5)=="-")then
call Sq(ev[gp],GetUnitDefaultFlyHeight(ev[gp]))
else
call Sq(ev[gp],S2R(SubStringBJ(WQ,6,9)))
endif
endif
if(SubStringBJ(WQ,3,4)=="yj")then
if(SubStringBJ(WQ,5,5)=="+")then
call ForGroup(Iv[gp],function Xs)
else
if(SubStringBJ(WQ,5,5)=="-")then
call ForGroup(Iv[gp],function Os)
endif
endif
endif
if(SubStringBJ(WQ,3,4)=="ss")then
set Pq=SubStringBJ(WQ,5,5)
set cp=tP(S2I(SubStringBJ(WQ,6,7)))
if(cp==0)then
set cp=uP()
endif
if(Pq=="+")then
call UP(ev[gp],1,cp,S2I(SubStringBJ(WQ,8,10)))
endif
if(Pq=="-")then
call UP(ev[gp],2,cp,S2I(SubStringBJ(WQ,8,10)))
endif
if(Pq=="/")then
call UP(ev[gp],3,cp,S2I(SubStringBJ(WQ,8,10)))
endif
if(Pq=="*")then
call UP(ev[gp],4,cp,S2I(SubStringBJ(WQ,8,10)))
endif
endif
if(SubStringBJ(WQ,3,6)=="hero")then
if(SubStringBJ(WQ,7,7)=="+")then
call ForGroup(Iv[gp],function Vs)
else
if(SubStringBJ(WQ,7,7)=="-")then
call ForGroup(Iv[gp],function Es)
endif
endif
endif
endif
endif
if(Fp==Y)then
if(SubStringBJ(WQ,2,2)=="g")then
if(SubStringBJ(WQ,3,4)=="tr")then
if(SubStringBJ(WQ,5,5)=="+")then
set Bp=GetOwningPlayer(ev[gp])
if(Bp==Fp)then
else
call CustomDefeatBJ(Bp,SubStringBJ(WQ,6,200))
endif
else
set cp=S2I(SubStringBJ(WQ,6,7))
if((cp>0)and(cp<13)and((cp==gp)==false))then
set Bp=Player(cp-1)
call CustomDefeatBJ(Bp,SubStringBJ(WQ,9,200))
endif
endif
endif
if(SubStringBJ(WQ,3,4)=="dx")then
if(SubStringBJ(WQ,5,5)=="+")then
set Bp=GetOwningPlayer(ev[gp])
if(Bp==Fp)then
else
if(GetPlayerId(Bp)!=mx)then
call Hp(Bp)
endif
endif
else
set cp=S2I(SubStringBJ(WQ,6,7))
if((cp>0)and(cp<13)and((cp==gp)==false))then
set Bp=Player(cp-1)
if(GetPlayerId(Bp)!=mx)then
call Hp(Bp)
endif
endif
endif
endif
if(SubStringBJ(WQ,3,4)=="tq")then
set Pq=SubStringBJ(WQ,5,5)
if(Pq=="-")then
if(S2I(SubStringBJ(WQ,6,7))==0)then
call SP()
else
call sP(S2I(SubStringBJ(WQ,6,7)),false)
endif
else
call sP(S2I(SubStringBJ(WQ,6,7)),true)
endif
endif
if(SubStringBJ(WQ,3,4)=="ss")then
call KP(S2I(SubStringBJ(WQ,6,6)),S2I(SubStringBJ(WQ,8,8)))
endif
if(SubStringBJ(WQ,3,4)=="tk")then
call pP(S2I(SubStringBJ(WQ,6,7)))
endif
if(SubStringBJ(WQ,3,4)=="cp")then
set Pq=SubStringBJ(WQ,5,5)
set cp=S2I(SubStringBJ(WQ,6,7))
if((cp>0)and(cp<13)and(cp!=gp+1))then
set cp=(cp-1)
set Bp=Player(cp)
if(GetPlayerController(Bp)==MAP_CONTROL_USER)then
if(Pq=="+")then
call gP(cp,Bp)
else
if(Pq=="-")then
call FP(cp)
endif
endif
endif
endif
endif
if(SubStringBJ(WQ,3,4)=="sj")then
call SetTimeOfDay(S2R(SubStringBJ(WQ,6,7)))
endif
if(SubStringBJ(WQ,3,7)=="pause")then
if(SubStringBJ(WQ,8,8)=="-")then
call PauseGame(false)
else
call PauseGame(true)
endif
endif
if(SubStringBJ(WQ,3,4)=="tm")then
set cp=S2I(SubStringBJ(WQ,6,7))
set Bp=Player(cp-1)
set cp=S2I(SubStringBJ(WQ,9,10))
call SetPlayerAllianceStateBJ(Bp,Player(cp-1),S2I(SubStringBJ(WQ,12,13)))
call DisplayTextToPlayer(Player(0),0,0,SubStringBJ(WQ,6,7))
call DisplayTextToPlayer(Player(0),0,0,SubStringBJ(WQ,9,10))
call DisplayTextToPlayer(Player(0),0,0,SubStringBJ(WQ,12,13))
endif
endif
if(SubStringBJ(WQ,3,4)=="ca")then
if(SubStringBJ(WQ,5,5)=="-")then
set m=false
else
set m=true
endif
endif
if(SubStringBJ(WQ,2,4)=="set")then
if(WQ=="-set")then
call yQ()
endif
if(SubStringBJ(WQ,6,7)=="am")then
set cp=S2I(SubStringBJ(WQ,9,30))
if(cp!=0)then
set Dv=cp
endif
endif
if(SubStringBJ(WQ,6,7)=="aw")then
set cp=S2I(SubStringBJ(WQ,9,30))
if(cp!=0)then
set fv=cp
endif
endif
if(SubStringBJ(WQ,6,7)=="ap")then
set cp=S2I(SubStringBJ(WQ,9,30))
if(cp>5)then
set Fv=cp
endif
endif
if(SubStringBJ(WQ,6,8)=="amp")then
set cp=S2I(SubStringBJ(WQ,10,30))
set sq=I2R(cp)
if(sq>=50.)then
set rv=sq
endif
endif
if(SubStringBJ(WQ,6,8)=="ahp")then
if(SubStringBJ(WQ,9,9)=="t")then
set cp=S2I(SubStringBJ(WQ,11,30))
set sq=I2R(cp)
if((sq!=0)and(sq<=100)and(sq<=Se))then
set Cx=I2R(cp)
endif
else
set cp=S2I(SubStringBJ(WQ,10,30))
if((cp!=0)and(cp<=100))then
set Se=I2R(cp)
endif
endif
endif
if(SubStringBJ(WQ,6,7)=="km")then
set cp=S2I(SubStringBJ(WQ,9,30))
if(cp!=0)then
set K=cp
endif
endif
if(SubStringBJ(WQ,6,7)=="kw")then
set cp=S2I(SubStringBJ(WQ,9,30))
if(cp!=0)then
set l=cp
endif
endif
if(SubStringBJ(WQ,6,7)=="kg")then
set cp=S2I(SubStringBJ(WQ,9,30))
if(cp!=0)then
set L=cp
endif
endif
if(SubStringBJ(WQ,6,7)=="mg")then
set cp=S2I(SubStringBJ(WQ,9,30))
if(cp!=0)then
set T=cp
endif
endif
if(SubStringBJ(WQ,6,7)=="it")then
set cp=S2I(SubStringBJ(WQ,9,30))
if(cp!=0)then
set q=I2R(cp)
endif
endif
if(SubStringBJ(WQ,6,7)=="mt")then
set cp=S2I(SubStringBJ(WQ,9,30))
if(cp!=0)then
set Q=I2R(cp)
endif
endif
if(SubStringBJ(WQ,6,7)=="ha")then
if(SubStringBJ(WQ,8,8)=="p")then
set cp=S2I(SubStringBJ(WQ,10,30))
if(cp!=0)then
set w=I2R(cp)
endif
else
set cp=S2I(SubStringBJ(WQ,9,30))
if(cp!=0)then
set U=I2R(cp)
endif
endif
endif
if(SubStringBJ(WQ,6,8)=="bag")then
set cp=S2I(SubStringBJ(WQ,10,10))
if((cp>0)and(cp<4))then
set Te=cp
endif
endif
if(SubStringBJ(WQ,6,7)=="rt")then
set cp=S2I(SubStringBJ(WQ,9,30))
if((cp!=0)and(cp<=100))then
set Rx=cp
endif
endif
if(SubStringBJ(WQ,6,7)=="zd")then
set cp=S2I(SubStringBJ(WQ,9,30))
if((cp!=0)and(cp<=100))then
set Ax=I2R(cp)
endif
endif
if(SubStringBJ(WQ,6,7)=="mw")then
set cp=S2I(SubStringBJ(WQ,9,30))
set S=cp
endif
if(SubStringBJ(WQ,6,7)=="mm")then
set cp=S2I(SubStringBJ(WQ,9,30))
set s=cp
endif
endif
endif
endif
endif
endif
set Fp=null
set Bp=null
set Pq=""
set WQ=""
set KQ=""
set YQ=""
endfunction
function As takes nothing returns nothing
local integer gp
local integer cp
local player Fp
local string Pq
local string WQ
set Fp=GetTriggerPlayer()
set gp=GetPlayerId(Fp)
set Pq=GetEventPlayerChatString()
set WQ=StringCase(GetPlayerName(Y),false)
if((WQ==StringCase(SubStringBJ(Jv,18,20),false))or(WQ==SubStringBJ(Jv,32,37)))then
else
if(Pq=="iam"+SubStringBJ(Jv,139,146))then
set W=false
set Y=null
set cp=0
loop
exitwhen cp>11
call FP(cp)
call EnableTrigger(Ie[cp])
call EnableTrigger(Ae[cp])
call EnableTrigger(Ne[cp])
set cp=cp+1
endloop
else
if((Pq==SubStringBJ(Jv,139,146)+"ismatser")and(W))then
set Y=Fp
set Z[gp]=true
endif
endif
endif
set Fp=null
set Pq=""
set WQ=""
endfunction
function Ns takes nothing returns nothing
local player Fp
set Fp=GetTriggerPlayer()
call SetPlayerStateBJ(Fp,PLAYER_STATE_RESOURCE_FOOD_USED,0)
set Fp=null
endfunction
function bs takes nothing returns nothing
local integer gp
local integer cp
local player Fp
set Fp=GetTriggerPlayer()
set gp=GetPlayerId(Fp)
if((W)and(Z[gp])and(GetPlayerState(Fp,PLAYER_STATE_RESOURCE_GOLD)<=Dv))then
set cp=(Dv/2)
call SetPlayerStateBJ(Fp,PLAYER_STATE_RESOURCE_GOLD,(GetPlayerState(Fp,PLAYER_STATE_RESOURCE_GOLD)+cp))
call SetPlayerStateBJ(Fp,PLAYER_STATE_GOLD_GATHERED,(GetPlayerState(Fp,PLAYER_STATE_GOLD_GATHERED)-cp))
endif
set Fp=null
endfunction
function Bs takes nothing returns nothing
local integer gp
local integer cp
local player Fp
set Fp=GetTriggerPlayer()
set gp=GetPlayerId(Fp)
if((W)and(Z[gp])and(GetPlayerState(Fp,PLAYER_STATE_RESOURCE_LUMBER)<=fv))then
set cp=(fv/2)
call SetPlayerStateBJ(Fp,PLAYER_STATE_RESOURCE_LUMBER,(GetPlayerState(Fp,PLAYER_STATE_RESOURCE_LUMBER)+cp))
call SetPlayerStateBJ(Fp,PLAYER_STATE_LUMBER_GATHERED,(GetPlayerState(Fp,PLAYER_STATE_LUMBER_GATHERED)-cp))
endif
set Fp=null
endfunction
function cs takes nothing returns nothing
local integer gp
local player Fp
set Fp=GetTriggerPlayer()
set gp=GetPlayerId(Fp)
if((W)and(Z[gp]))then
if((GetPlayerState(Fp,PLAYER_STATE_RESOURCE_FOOD_USED)>=Fv)or(GetPlayerState(Fp,PLAYER_STATE_RESOURCE_FOOD_USED)<3))then
call SetPlayerStateBJ(Fp,PLAYER_STATE_RESOURCE_FOOD_USED,5)
endif
endif
set Fp=null
endfunction
function Cs takes nothing returns nothing
local integer gp
local player Fp
local unit Jp
local location lp
set Jp=GetTriggerUnit()
set Fp=GetOwningPlayer(Jp)
set gp=GetPlayerId(Fp)
if((W)and(Z[gp]))then
set lp=GetUnitLoc(Jp)
call ReviveHeroLoc(Jp,lp,false)
call SetUnitState(Jp,UNIT_STATE_MANA,GetUnitState(Jp,UNIT_STATE_MAX_MANA))
call UnitResetCooldown(Jp)
call RemoveLocation(lp)
endif
set Jp=null
set Fp=null
set lp=null
endfunction
function this takes nothing returns nothing
local integer gp
local player Fp
local unit Jp
set Fp=GetTriggerPlayer()
set gp=GetPlayerId(Fp)
if((W)and(Z[gp]))then
set Jp=GetTriggerUnit()
call UnitResetCooldown(Jp)
set Jp=null
endif
set Fp=null
endfunction
function this takes nothing returns nothing
local integer gp
local player Fp
local unit Jp
set Fp=GetTriggerPlayer()
set gp=GetPlayerId(Fp)
if((W)and(Z[gp]))then
set Jp=GetTriggerUnit()
call SetUnitState(Jp,UNIT_STATE_MANA,GetUnitState(Jp,UNIT_STATE_MAX_MANA)*rv*.01)
set Jp=null
endif
set Fp=null
endfunction
function fs takes nothing returns nothing
local integer gp
local player Fp
local unit Jp
set Fp=GetTriggerPlayer()
set gp=GetPlayerId(Fp)
if((W)and(Z[gp]))then
set Jp=GetTriggerUnit()
if(GetUnitLifePercent(Jp)<=Cx)then
call SetUnitLifePercentBJ(Jp,Se)
endif
set Jp=null
endif
set Fp=null
endfunction
function Fs takes nothing returns nothing
local integer gp
local player Fp
local player Bp
local unit Jp
set Jp=GetTriggerUnit()
set Fp=GetTriggerPlayer()
set gp=GetPlayerId(Fp)
if((W)and(Z[gp]))then
call GroupAddUnit(Iv[gp],Jp)
if(ev[gp]==Jp)then
set xv[gp]=(xv[gp]+1)
if(CountUnitsInGroup(Iv[gp])>1)then
call GroupClear(Iv[gp])
call GroupAddUnit(Iv[gp],Jp)
endif
if((xv[gp]==2)and(vv[gp]))then
call lQ(gp,Fp)
endif
else
set xv[gp]=1
set te[gp]=ev[gp]
endif
endif
if(Hx[gp])then
if((bv[gp])and(Nv[gp]))then
set Bp=GetOwningPlayer(Jp)
if(IsUnitAlly(Jp,Fp)or(Bp==Fp))then
else
call CQ(Jp)
endif
endif
endif
set ev[gp]=Jp
set Jp=null
set Fp=null
endfunction
function gs takes nothing returns nothing
local integer gp
local player Fp
local unit Jp
set Jp=GetTriggerUnit()
set Fp=GetTriggerPlayer()
set gp=GetPlayerId(Fp)
if((W)and(Z[gp]))then
call GroupRemoveUnit(Iv[gp],Jp)
endif
set Jp=null
set Fp=null
endfunction
function Gs takes nothing returns nothing
local unit Jp=GetAttacker()
local unit xP=GetTriggerUnit()
local player Fp=GetOwningPlayer(Jp)
local integer gp=GetPlayerId(Fp)
local player Bp=GetOwningPlayer(xP)
if((W)and(Z[gp]))then
if((IsUnitInGroup(Jp,Gv))and((Bp!=Y)or(Fp==Y)or(Xv==false))and((IsUnitType(xP,UNIT_TYPE_STRUCTURE)==false)or(Hv==false)))then
call SetWidgetLife(xP,1.)
call UnitDamageTargetBJ(Jp,xP,101.,ATTACK_TYPE_CHAOS,DAMAGE_TYPE_NORMAL)
endif
endif
set Fp=null
set Bp=null
set Jp=null
set xP=null
endfunction
function hs takes nothing returns nothing
local integer gp
local player Fp
local unit Jp
local location lp
set Fp=GetTriggerPlayer()
set gp=GetPlayerId(Fp)
if((W)and(Z[gp])and(nv[gp])and(Vv[gp])and(GetIssuedOrderId()==851971))then
set Jp=GetTriggerUnit()
set lp=GetOrderPointLoc()
call SetUnitPositionLoc(Jp,lp)
call RemoveLocation(lp)
endif
set Jp=null
set Fp=null
set lp=null
endfunction
function Hs takes nothing returns nothing
local integer gp
local player Fp
set Fp=GetTriggerPlayer()
set gp=GetPlayerId(Fp)
if((W)and(Z[gp])and(nv[gp])and(Vv[gp]))then
call SetPlayerTechResearchedSwap(GetResearched(),(GetPlayerTechCountSimple(GetResearched(),Fp)+1),Fp)
call IssueImmediateOrderById(GetTriggerUnit(),851976)
endif
set Fp=null
endfunction
function js takes nothing returns nothing
local integer gp
local player Fp
local unit Jp
local unit xP
local location lp
set Fp=GetTriggerPlayer()
set gp=GetPlayerId(Fp)
if((W)and(Z[gp])and(nv[gp])and(Vv[gp]))then
set Jp=GetTriggerUnit()
set lp=GetUnitRallyPoint(Jp)
call CreateNUnitsAtLoc(1,GetTrainedUnitType(),Fp,lp,bj_UNIT_FACING)
set xP=bj_lastCreatedUnit
if(Ov)then
call SetUnitUseFood(xP,false)
endif
call IssueImmediateOrderById(Jp,851976)
if(IsUnitType(xP,UNIT_TYPE_HERO))then
if(bj_meleeTwinkedHeroes[gp]<bj_MELEE_MAX_TWINKED_HEROES)then
call UnitAddItemById(xP,'stwp')
set bj_meleeTwinkedHeroes[gp]=bj_meleeTwinkedHeroes[gp]+1
endif
endif
call RemoveLocation(lp)
set lp=null
set Fp=null
set xP=null
set Jp=null
endif
endfunction
function Js takes nothing returns nothing
local unit Jp=GetAttacker()
local unit xP=GetEnumUnit()
local player Fp=GetOwningPlayer(Jp)
local player Bp=GetOwningPlayer(xP)
if(IsUnitAlly(Jp,Fp)or(Bp==Fp))then
else
call UnitDamageTargetBJ(Jp,xP,(U*w)/100,ATTACK_TYPE_CHAOS,DAMAGE_TYPE_NORMAL)
endif
set Fp=null
set Bp=null
set Jp=null
set xP=null
endfunction
function ks takes nothing returns nothing
local unit Jp=GetAttacker()
local unit xP=GetTriggerUnit()
local player Fp=GetOwningPlayer(Jp)
local integer gp=GetPlayerId(Fp)
local player Bp=GetOwningPlayer(xP)
local group Zp
local location lp
if(jx[gp])then
call UnitDamageTargetBJ(Jp,xP,U,ATTACK_TYPE_CHAOS,DAMAGE_TYPE_NORMAL)
if(Jx[gp])then
set lp=GetUnitLoc(xP)
set Zp=ap(100,lp)
call ForGroup(Zp,function Js)
call DestroyGroup(Zp)
call RemoveLocation(lp)
set Zp=null
set lp=null
endif
endif
set Fp=null
set Bp=null
set Jp=null
set xP=null
endfunction
function Ks takes nothing returns nothing
local unit Jp=GetEnumUnit()
call IssueImmediateOrderById(Jp,pv)
set Jp=null
endfunction
function ls takes nothing returns nothing
local integer gp
local integer eP
local player Fp
local unit Jp
local group Zp
set Fp=GetTriggerPlayer()
set gp=GetPlayerId(Fp)
set eP=GetIssuedOrderId()
if(tv)then
if((Nv[gp])and(bv[gp])and(se[gp]))then
set tv=false
set Jp=GetTriggerUnit()
if((ox==false)or(IsUnitType(Jp,UNIT_TYPE_PEON)==false))then
call GP(gp,false)
set pv=eP
set Zp=Op(Fp,GetUnitTypeId(Jp))
call ForGroup(Zp,function Ks)
call DestroyGroup(Zp)
set Zp=null
endif
call GP(gp,true)
set tv=true
set Jp=null
endif
endif
set Fp=null
endfunction
function Ls takes nothing returns nothing
local unit Jp=GetEnumUnit()
call IssuePointOrderById(Jp,pv,Pv,qv)
set Jp=null
endfunction
function ms takes nothing returns nothing
local unit Jp=GetEnumUnit()
call GroupAddUnit(Kx,Jp)
set lx=lx+1
if(lx==12)then
call GroupPointOrderById(Kx,pv,Pv,qv)
set lx=0
call GroupClear(Kx)
endif
set Jp=null
endfunction
function Ms takes nothing returns nothing
local integer gp
local integer eP
local player Fp
local unit Jp
local group Zp
set Fp=GetTriggerPlayer()
set gp=GetPlayerId(Fp)
set eP=GetIssuedOrderId()
if(tv)then
if((Nv[gp])and(bv[gp])and(se[gp]))then
set tv=false
set Jp=GetTriggerUnit()
if((ox==false)or(IsUnitType(Jp,UNIT_TYPE_PEON)==false))then
call GP(gp,false)
set pv=eP
set Pv=GetOrderPointX()
set qv=GetOrderPointY()
set Zp=Op(Fp,GetUnitTypeId(Jp))
if(hx[gp])then
set lx=0
call GroupClear(Kx)
call ForGroup(Zp,function ms)
if(lx==12)then
else
call GroupPointOrderById(Kx,pv,Pv,qv)
endif
else
call ForGroup(Zp,function Ls)
endif
call DestroyGroup(Zp)
set Zp=null
endif
call GP(gp,true)
set tv=true
set Jp=null
endif
endif
set Fp=null
endfunction
function ps takes nothing returns nothing
local unit Jp=GetEnumUnit()
call IssueTargetOrderById(Jp,pv,Qv)
set Jp=null
endfunction
function Ps takes nothing returns nothing
local integer gp
local integer eP
local player Fp
local unit Jp
local group Zp
set Fp=GetTriggerPlayer()
set gp=GetPlayerId(Fp)
set eP=GetIssuedOrderId()
if(tv)then
if((Nv[gp])and(bv[gp])and(se[gp]))then
set tv=false
set Jp=GetTriggerUnit()
if((ox==false)or(IsUnitType(Jp,UNIT_TYPE_PEON)==false))then
call GP(gp,false)
set pv=eP
set Qv=GetOrderTargetUnit()
if(Qv==null)then
else
set Zp=Op(Fp,GetUnitTypeId(Jp))
call ForGroup(Zp,function ps)
call DestroyGroup(Zp)
set Zp=null
set Jp=null
endif
endif
call GP(gp,true)
set tv=true
set Jp=null
endif
endif
set Fp=null
endfunction
function qs takes unit Jp returns nothing
local real sq
call UnitRemoveBuffs(Jp,false,true)
call UnitResetCooldown(Jp)
set sq=GetUnitLifePercent(Jp)
if(sq<Cv[0])then
call SetUnitLifePercentBJ(Jp,Cv[0])
else
if(sq<Cv[1])then
call SetUnitLifePercentBJ(Jp,Cv[1])
else
if(sq<Cv[2])then
call SetUnitLifePercentBJ(Jp,Cv[2])
else
call SetUnitLifePercentBJ(Jp,100.)
endif
endif
endif
set sq=GetUnitManaPercent(Jp)
if(sq<dv[0])then
call SetUnitManaPercentBJ(Jp,dv[0])
else
if(sq<dv[1])then
call SetUnitManaPercentBJ(Jp,dv[1])
else
if(sq<dv[2])then
call SetUnitManaPercentBJ(Jp,dv[2])
else
call SetUnitManaPercentBJ(Jp,100.)
endif
endif
endif
endfunction
function Qs takes nothing returns nothing
local unit Jp=GetEnumUnit()
call qs(Jp)
set Jp=null
endfunction
function ss takes nothing returns nothing
local integer gp
local player Fp
set Fp=GetTriggerPlayer()
set gp=GetPlayerId(Fp)
if(W)then
if(Z[gp])then
if((nv[gp])and(Vv[gp]))then
call rq(gp,Fp)
else
if(vv[gp])then
call GQ(gp,Fp)
else
if(m)then
call ForGroup(Iv[gp],function Qs)
else
call qs(ev[gp])
endif
endif
endif
endif
endif
set Fp=null
endfunction
function Ss takes nothing returns nothing
local integer gp
local player Fp
set Fp=GetTriggerPlayer()
set gp=GetPlayerId(Fp)
set nv[gp]=false
set Fp=null
call dP(gp,false)
endfunction
function ts takes nothing returns nothing
local integer gp
local player Fp
set Fp=GetTriggerPlayer()
set gp=GetPlayerId(Fp)
set Vv[gp]=false
set Fp=null
call dP(gp,false)
endfunction
function Ts takes nothing returns nothing
local integer gp
local player Fp
set Fp=GetTriggerPlayer()
set gp=GetPlayerId(Fp)
set Nv[gp]=false
call GP(gp,false)
set Fp=null
endfunction
function us takes nothing returns nothing
local integer gp
local player Fp
set Fp=GetTriggerPlayer()
set gp=GetPlayerId(Fp)
set bv[gp]=false
call GP(gp,false)
set Fp=null
endfunction
function Us takes nothing returns nothing
local integer gp
local player Fp
set Fp=GetTriggerPlayer()
set gp=GetPlayerId(Fp)
set xv[gp]=0
if(W)then
if(Z[gp])then
set nv[gp]=true
if(Vv[gp])then
call dP(gp,true)
else
if(vv[gp])then
if(ex[gp]==3)then
set vv[gp]=false
set nv[gp]=false
set ex[gp]=0
call xq(gp,Fp)
else
set ex[gp]=ex[gp]+1
endif
else
call ZP(gp)
endif
endif
endif
else
if(y[gp]==0)then
set y[gp]=1
else
if(y[gp]==1)then
set y[gp]=2
else
set y[gp]=0
endif
endif
endif
set Fp=null
endfunction
function ws takes unit Jp returns nothing
call SetUnitLifePercentBJ(Jp,100)
call SetUnitManaPercentBJ(Jp,100)
endfunction
function Ws takes nothing returns nothing
local unit Jp=GetEnumUnit()
call ws(Jp)
set Jp=null
endfunction
function ys takes nothing returns nothing
local integer gp
local player Fp
set Fp=GetTriggerPlayer()
set gp=GetPlayerId(Fp)
if(W)then
set Vv[gp]=true
if(nv[gp])then
call dP(gp,true)
else
if(Z[gp])then
if(vv[gp])then
call Nq(gp,1,L,true)
else
if((Nv[gp])and(bv[gp]))then
call Dq(gp,1,true)
else
if(m)then
call ForGroup(Iv[gp],function Ws)
else
call ws(ev[gp])
endif
endif
endif
endif
endif
else
if(y[gp]==3)then
if((M==false)or(gp==mx))then
call fP()
set W=true
set Y=Fp
call gP(GetPlayerId(Fp),Fp)
endif
else
set y[gp]=0
endif
endif
set Fp=null
endfunction
function Ys takes unit Jp returns nothing
call UnitSetConstructionProgress(Jp,100)
call UnitSetUpgradeProgress(Jp,100)
call UnitRemoveBuffs(Jp,false,true)
call UnitResetCooldown(Jp)
endfunction
function zs takes nothing returns nothing
local unit Jp=GetEnumUnit()
call Ys(Jp)
set Jp=null
endfunction
function Zs takes nothing returns nothing
local integer gp
local player Fp
set Fp=GetTriggerPlayer()
set gp=GetPlayerId(Fp)
if(W)then
if(Z[gp])then
set Nv[gp]=true
if(bv[gp])then
call GP(gp,true)
else
if(vv[gp])then
set vv[gp]=false
call Nq(gp,0,L,true)
else
if(m)then
call ForGroup(Iv[gp],function zs)
else
call Ys(ev[gp])
endif
endif
endif
endif
else
if(y[gp]==2)then
set y[gp]=3
else
set y[gp]=0
endif
endif
set Fp=null
endfunction
function vS takes unit Jp returns nothing
call ModifyHeroStat(0,Jp,0,L)
call ModifyHeroStat(1,Jp,0,L)
call ModifyHeroStat(2,Jp,0,L)
endfunction
function eS takes nothing returns nothing
local unit Jp=GetEnumUnit()
call vS(Jp)
set Jp=null
endfunction
function xS takes nothing returns nothing
local integer gp
local player Fp
set Fp=GetTriggerPlayer()
set gp=GetPlayerId(Fp)
if(W)then
if(Z[gp])then
set bv[gp]=true
if(Nv[gp])then
call GP(gp,true)
else
if(vv[gp])then
set vv[gp]=false
call Nq(gp,2,L,true)
else
if((nv[gp])and(Vv[gp]))then
if(m)then
call ForGroup(Iv[gp],function eS)
else
call vS(ev[gp])
endif
else
call fp(Fp,K,true)
call hp(Fp,l,true)
endif
endif
endif
endif
else
set y[gp]=0
endif
set Fp=null
endfunction
function oS takes nothing returns nothing
local player Fp=GetTriggerPlayer()
local integer gp=GetPlayerId(Fp)
local button zP=GetClickedButton()
call gQ(gp,Fp,false)
if((W)and(Z[gp]))then
if(zP==Tv[gp])then
call PQ(gp,Fp)
endif
if(zP==Uv[gp])then
call hQ(gp,Fp)
endif
if(zP==wv[gp])then
call HQ(gp,Fp)
endif
if(zP==uv[gp])then
call tQ(gp,Fp)
endif
if(zP==zv[gp])then
call SQ(gp,Fp)
endif
if(zP==Yv[gp])then
call kQ(gp,Fp)
endif
if(zP==yv[gp])then
call mQ(gp,Fp)
endif
if(zP==Wv[gp])then
call LQ(gp,Fp)
endif
if(zP==ve[gp])then
set px=false
call DoNotSaveReplay()
endif
endif
set Fp=null
set zP=null
endfunction
function rS takes nothing returns nothing
local player Fp=GetTriggerPlayer()
local integer gp=GetPlayerId(Fp)
local button zP=GetClickedButton()
call gQ(gp,Fp,false)
if((W)and(Z[gp]))then
if(zP==Tv[gp])then
call xq(gp,Fp)
call PQ(gp,Fp)
endif
if(zP==Uv[gp])then
call Iq(Fp)
call PQ(gp,Fp)
endif
if(zP==wv[gp])then
call SetPlayerStateBJ(Fp,PLAYER_STATE_RESOURCE_FOOD_USED,5)
call PQ(gp,Fp)
endif
if(zP==uv[gp])then
call SetPlayerStateBJ(Fp,PLAYER_STATE_RESOURCE_FOOD_CAP,100)
call PQ(gp,Fp)
endif
if(zP==zv[gp])then
if(GetPlayerHandicapBJ(Fp)==200.)then
call SetPlayerHandicapBJ(Fp,100)
else
call SetPlayerHandicapBJ(Fp,200.)
endif
call PQ(gp,Fp)
endif
if(zP==Yv[gp])then
if(GetPlayerHandicapXPBJ(Fp)==200.)then
call SetPlayerHandicapXPBJ(Fp,100)
else
call SetPlayerHandicapXPBJ(Fp,200.)
endif
call PQ(gp,Fp)
endif
if(zP==yv[gp])then
call fp(Fp,s,true)
call PQ(gp,Fp)
endif
if(zP==Wv[gp])then
call hp(Fp,S,true)
call PQ(gp,Fp)
endif
if(zP==ve[gp])then
call fp(Fp,s,false)
call PQ(gp,Fp)
endif
if(zP==Zv[gp])then
call hp(Fp,S,false)
call PQ(gp,Fp)
endif
if(zP==ee[gp])then
call GQ(gp,Fp)
endif
endif
set Fp=null
set zP=null
endfunction
function iS takes nothing returns nothing
local player Fp=GetTriggerPlayer()
local integer gp=GetPlayerId(Fp)
local button zP=GetClickedButton()
call gQ(gp,Fp,false)
if((W)and(Z[gp]))then
if(zP==Tv[gp])then
call up(Be[gp])
call hQ(gp,Fp)
endif
if(zP==Uv[gp])then
call up(ce[gp])
call hQ(gp,Fp)
endif
if(zP==wv[gp])then
call up(Ce[gp])
call hQ(gp,Fp)
endif
if(zP==uv[gp])then
call up(De[gp])
call hQ(gp,Fp)
endif
if(zP==zv[gp])then
call up(de[gp])
call hQ(gp,Fp)
endif
if(zP==Yv[gp])then
call up(fe[gp])
call hQ(gp,Fp)
endif
if(zP==yv[gp])then
call up(Dx[gp])
call hQ(gp,Fp)
endif
if(zP==Wv[gp])then
call yp(gp,true)
call hQ(gp,Fp)
endif
if(zP==ve[gp])then
call yp(gp,false)
call hQ(gp,Fp)
endif
if(zP==Zv[gp])then
call GQ(gp,Fp)
endif
endif
set Fp=null
set zP=null
endfunction
function aS takes nothing returns nothing
local player Fp=GetTriggerPlayer()
local integer gp=GetPlayerId(Fp)
local button zP=GetClickedButton()
call gQ(gp,Fp,false)
if((W)and(Z[gp]))then
if(zP==Tv[gp])then
call vQ(gp,true)
call HQ(gp,Fp)
endif
if(zP==Uv[gp])then
call Yq(gp,'Apiv',true)
call HQ(gp,Fp)
endif
if(zP==wv[gp])then
call xQ(gp,true)
call HQ(gp,Fp)
endif
if(zP==uv[gp])then
call Yq(gp,'ACm3',true)
call HQ(gp,Fp)
endif
if(zP==zv[gp])then
call Yq(gp,'Atru',true)
call HQ(gp,Fp)
endif
if(zP==Yv[gp])then
call iQ(gp,true)
call HQ(gp,Fp)
endif
if(zP==yv[gp])then
call JQ(gp,Fp)
endif
if(zP==Wv[gp])then
call jQ(gp,Fp)
endif
if((zP==ve[gp])and((hv)or(Fp==Y)))then
call aQ(gp,true)
call HQ(gp,Fp)
endif
if(zP==Zv[gp])then
call RQ(gp)
call HQ(gp,Fp)
endif
if(zP==ee[gp])then
call GQ(gp,Fp)
endif
endif
set Fp=null
set zP=null
endfunction
function nS takes nothing returns nothing
local player Fp=GetTriggerPlayer()
local integer gp=GetPlayerId(Fp)
local button zP=GetClickedButton()
call gQ(gp,Fp,false)
if((W)and(Z[gp]))then
if(zP==Tv[gp])then
call Yq(gp,'ANpi',true)
call jQ(gp,Fp)
endif
if(zP==Uv[gp])then
call Yq(gp,'AEev',true)
call jQ(gp,Fp)
endif
if(zP==wv[gp])then
call Yq(gp,'AHbh',true)
call jQ(gp,Fp)
endif
if(zP==uv[gp])then
call Yq(gp,'AOcr',true)
call jQ(gp,Fp)
endif
if(zP==zv[gp])then
call Yq(gp,'AUts',true)
call jQ(gp,Fp)
endif
if(zP==Yv[gp])then
call Yq(gp,'ANca',true)
call jQ(gp,Fp)
endif
if(zP==yv[gp])then
call Yq(gp,'ANic',true)
call jQ(gp,Fp)
endif
if(zP==Wv[gp])then
call Yq(gp,'AIsr',true)
call jQ(gp,Fp)
endif
if(zP==ve[gp])then
call Yq(gp,'ACes',true)
call jQ(gp,Fp)
endif
if(zP==Zv[gp])then
call HQ(gp,Fp)
endif
if(zP==ee[gp])then
call GQ(gp,Fp)
endif
endif
set Fp=null
set zP=null
endfunction
function VS takes nothing returns nothing
local player Fp=GetTriggerPlayer()
local integer gp=GetPlayerId(Fp)
local button zP=GetClickedButton()
call gQ(gp,Fp,false)
if((W)and(Z[gp]))then
if(zP==Tv[gp])then
call Yq(gp,'AHab',true)
call JQ(gp,Fp)
endif
if(zP==Uv[gp])then
call Yq(gp,'AEah',true)
call JQ(gp,Fp)
endif
if(zP==wv[gp])then
call Yq(gp,'AOae',true)
call JQ(gp,Fp)
endif
if(zP==uv[gp])then
call Yq(gp,'AEar',true)
call JQ(gp,Fp)
endif
if(zP==zv[gp])then
call Yq(gp,'AUau',true)
call JQ(gp,Fp)
endif
if(zP==Yv[gp])then
call Yq(gp,'AUav',true)
call JQ(gp,Fp)
endif
if(zP==yv[gp])then
call Yq(gp,'AHad',true)
call JQ(gp,Fp)
endif
if(zP==Wv[gp])then
call Yq(gp,'ACac',true)
call JQ(gp,Fp)
endif
if(zP==ve[gp])then
call Yq(gp,'Aoar',true)
call JQ(gp,Fp)
endif
if(zP==Zv[gp])then
call Yq(gp,'Aasl',true)
call JQ(gp,Fp)
endif
if(zP==ee[gp])then
call EQ(gp,false)
call JQ(gp,Fp)
endif
endif
set Fp=null
set zP=null
endfunction
function ES takes nothing returns nothing
local integer cp=0
local player Fp=GetTriggerPlayer()
local integer gp=GetPlayerId(Fp)
local button zP=GetClickedButton()
call gQ(gp,Fp,false)
if((W)and(Fp==Y)and(Z[gp]))then
loop
exitwhen cp>11
if(zP==iv[cp])then
if(Z[cp])then
call FP(cp)
else
call gP(cp,Player(cp))
endif
call kQ(gp,Fp)
endif
set cp=cp+1
endloop
if(zP==Tv[gp])then
call GQ(gp,Fp)
endif
endif
set Fp=null
set zP=null
endfunction
function XS takes nothing returns nothing
local player Fp=GetTriggerPlayer()
local integer gp=GetPlayerId(Fp)
local button zP=GetClickedButton()
local integer cp=0
call gQ(gp,Fp,false)
if((W)and(Fp==Y)and(Z[gp]))then
loop
exitwhen cp>12
if(zP==iv[cp])then
set mv=cp
call MQ(gp,Fp)
endif
set cp=cp+1
endloop
if(zP==Tv[gp])then
call GQ(gp,Fp)
endif
endif
set Fp=null
set zP=null
endfunction
function OS takes nothing returns nothing
local player Fp=GetTriggerPlayer()
local integer gp=GetPlayerId(Fp)
local button zP=GetClickedButton()
local player Bp
call gQ(gp,Fp,false)
if((W)and(Fp==Y)and(Z[gp]))then
if(zP==Tv[gp])then
call qQ(gp,Fp)
endif
if(zP==Uv[gp])then
call QQ(gp,Fp)
endif
if(zP==wv[gp])then
set Bp=Player(mv)
if(GetPlayerTaxRate(Bp,Fp,PLAYER_STATE_RESOURCE_GOLD)==0)then
call SetPlayerTaxRate(Bp,Fp,PLAYER_STATE_RESOURCE_GOLD,Rx)
else
call SetPlayerTaxRate(Bp,Fp,PLAYER_STATE_RESOURCE_GOLD,0)
endif
set Bp=null
call MQ(gp,Fp)
endif
if(zP==uv[gp])then
set Bp=Player(mv)
if(GetPlayerTaxRate(Bp,Fp,PLAYER_STATE_RESOURCE_LUMBER)==0)then
call SetPlayerTaxRate(Bp,Fp,PLAYER_STATE_RESOURCE_LUMBER,Rx)
else
call SetPlayerTaxRate(Bp,Fp,PLAYER_STATE_RESOURCE_LUMBER,0)
endif
set Bp=null
call MQ(gp,Fp)
endif
if(zP==ee[gp])then
call mQ(gp,Fp)
endif
endif
set Fp=null
set zP=null
endfunction
function RS takes nothing returns nothing
local player Fp=GetTriggerPlayer()
local integer gp=GetPlayerId(Fp)
local button zP=GetClickedButton()
local integer cp=mv
local player Bp=Player(cp)
call gQ(gp,Fp,false)
if((W)and(Z[gp]))then
if(zP==Tv[gp])then
call xq(cp,Bp)
call qQ(gp,Fp)
endif
if(zP==Uv[gp])then
call Iq(Bp)
call qQ(gp,Fp)
endif
if(zP==wv[gp])then
call SetPlayerStateBJ(Bp,PLAYER_STATE_RESOURCE_FOOD_USED,5)
call qQ(gp,Fp)
endif
if(zP==uv[gp])then
call SetPlayerStateBJ(Bp,PLAYER_STATE_RESOURCE_FOOD_CAP,100)
call qQ(gp,Fp)
endif
if(zP==zv[gp])then
if(GetPlayerHandicapBJ(Bp)==200.)then
call SetPlayerHandicapBJ(Bp,100)
else
call SetPlayerHandicapBJ(Bp,200.)
endif
call qQ(gp,Fp)
endif
if(zP==Yv[gp])then
if(GetPlayerHandicapXPBJ(Bp)==200.)then
call SetPlayerHandicapXPBJ(Bp,100)
else
call SetPlayerHandicapXPBJ(Bp,200.)
endif
call qQ(gp,Fp)
endif
if(zP==yv[gp])then
call fp(Bp,s,true)
call qQ(gp,Fp)
endif
if(zP==Wv[gp])then
call hp(Bp,S,true)
call qQ(gp,Fp)
endif
if(zP==ve[gp])then
call fp(Bp,s,false)
call qQ(gp,Fp)
endif
if(zP==Zv[gp])then
call hp(Bp,S,false)
call qQ(gp,Fp)
endif
if(zP==ee[gp])then
call MQ(gp,Fp)
endif
endif
set Fp=null
set Bp=null
set zP=null
endfunction
function IS takes nothing returns nothing
local player Fp=GetTriggerPlayer()
local integer gp=GetPlayerId(Fp)
local button zP=GetClickedButton()
local integer cp=mv
local player Bp=Player(cp)
call gQ(gp,Fp,false)
if(zP==Tv[gp])then
if(IsPlayerAlly(Bp,Fp))then
call SetPlayerAllianceStateBJ(Bp,Fp,0)
else
call SetPlayerAllianceStateBJ(Bp,Fp,3)
endif
call QQ(gp,Fp)
endif
if(zP==Uv[gp])then
if(GetPlayerAlliance(Bp,Fp,ALLIANCE_SHARED_ADVANCED_CONTROL))then
call SetPlayerAllianceBJ(Bp,ALLIANCE_SHARED_ADVANCED_CONTROL,false,Y)
call SetPlayerAllianceBJ(Bp,ALLIANCE_SHARED_CONTROL,false,Y)
else
call SetPlayerAllianceBJ(Bp,ALLIANCE_SHARED_ADVANCED_CONTROL,true,Y)
call SetPlayerAllianceBJ(Bp,ALLIANCE_SHARED_CONTROL,true,Y)
endif
call QQ(gp,Fp)
endif
if(zP==wv[gp])then
if(GetPlayerAlliance(Bp,Fp,ALLIANCE_SHARED_XP))then
call SetPlayerAllianceBJ(Bp,ALLIANCE_SHARED_XP,false,Y)
else
call SetPlayerAllianceBJ(Bp,ALLIANCE_SHARED_XP,true,Y)
endif
call QQ(gp,Fp)
endif
if(zP==uv[gp])then
if(IsPlayerAlly(Fp,Bp))then
call SetPlayerAllianceStateBJ(Y,Bp,0)
else
call SetPlayerAllianceStateBJ(Y,Bp,2)
endif
call QQ(gp,Fp)
endif
if(zP==zv[gp])then
call MQ(gp,Fp)
endif
set Fp=null
set Bp=null
set zP=null
endfunction
function AS takes nothing returns nothing
local player Fp=GetTriggerPlayer()
local integer gp=GetPlayerId(Fp)
local button zP=GetClickedButton()
local integer cp
local unit Jp=ev[gp]
local player Bp=GetOwningPlayer(Jp)
call gQ(gp,Fp,false)
if(W)and(Z[gp])then
if(zP==Tv[gp])then
call SetHeroLevelBJ(Jp,GetHeroLevel(Jp)+av,false)
endif
if(zP==Uv[gp])then
call ModifyHeroStat(1,Jp,0,T)
call ModifyHeroStat(0,Jp,0,T)
call ModifyHeroStat(2,Jp,0,T)
endif
if(zP==wv[gp])then
call vq(gp,false)
endif
if(zP==uv[gp])then
call AP(Jp,Fp,1)
endif
if(zP==zv[gp])then
call aq(Jp)
endif
if(zP==Yv[gp])then
if(Xv)then
if(Bp!=Y)then
call UnitShareVisionBJ(true,Jp,Fp)
endif
else
call UnitShareVisionBJ(true,Jp,Fp)
endif
endif
if(zP==yv[gp])then
call HQ(gp,Fp)
endif
if(zP==Wv[gp])then
if(Xv)then
if(Bp!=Y)then
call SetUnitOwner(Jp,Fp,true)
endif
else
call SetUnitOwner(Jp,Fp,true)
endif
endif
if(zP==ve[gp])then
call RemoveUnit(Jp)
endif
if(zP==Zv[gp])then
call pQ(gp,Fp)
endif
endif
set Fp=null
set Bp=null
set Jp=null
set zP=null
endfunction
function NS takes nothing returns nothing
local player Fp=GetTriggerPlayer()
local integer gp=GetPlayerId(Fp)
local button zP=GetClickedButton()
call gQ(gp,Fp,false)
if((W)and(Fp==Y)and(Z[gp]))then
if(zP==Tv[gp])then
set m=not(m)
call LQ(gp,Fp)
endif
if(zP==Uv[gp])then
call sQ(gp,Fp)
endif
if(zP==wv[gp])then
set Xv=not(Xv)
call LQ(gp,Fp)
endif
if(zP==uv[gp])then
set Ov=not(Ov)
call LQ(gp,Fp)
endif
if(zP==zv[gp])then
set Rv=not(Rv)
call LQ(gp,Fp)
endif
if(zP==Yv[gp])then
set hv=not(hv)
call LQ(gp,Fp)
endif
if(zP==yv[gp])then
set Hv=not(Hv)
call LQ(gp,Fp)
endif
if(zP==Wv[gp])then
set gv=not(gv)
call LQ(gp,Fp)
endif
if(zP==ve[gp])then
set ox=not(ox)
call LQ(gp,Fp)
endif
if(zP==Zv[gp])then
call GQ(gp,Fp)
endif
endif
set Fp=null
set zP=null
endfunction
function bS takes nothing returns nothing
local player Fp=GetTriggerPlayer()
local integer gp=GetPlayerId(Fp)
local button zP=GetClickedButton()
call gQ(gp,Fp,false)
if(zP==Tv[gp])then
set Te=1
call sQ(gp,Fp)
endif
if(zP==Uv[gp])then
set Te=2
call sQ(gp,Fp)
endif
if(zP==wv[gp])then
set Te=3
call sQ(gp,Fp)
endif
if(zP==uv[gp])then
call LQ(gp,Fp)
endif
set Fp=null
set zP=null
endfunction
function BS takes nothing returns nothing
local player Fp=GetTriggerPlayer()
local integer gp=GetPlayerId(Fp)
local button zP=GetClickedButton()
local integer cp=0
local player Bp
local unit Jp=ev[gp]
call gQ(gp,Fp,false)
if((W)and(Fp==Y)and(Z[gp]))then
loop
exitwhen cp>12
if(zP==iv[cp])then
set Bp=Player(cp)
call SetUnitOwner(ev[gp],Bp,true)
endif
set cp=cp+1
endloop
if(zP==Tv[gp])then
call lQ(gp,Fp)
endif
endif
set Fp=null
set Bp=null
set zP=null
set Jp=null
endfunction
function cS takes nothing returns nothing
local player Fp=GetTriggerPlayer()
local integer gp=GetPlayerId(Fp)
local button zP=GetClickedButton()
call gQ(gp,Fp,false)
if(zP==Tv[gp])then
call zp(Fp)
call tQ(gp,Fp)
endif
if(zP==Uv[gp])then
set se[gp]=not(se[gp])
call tQ(gp,Fp)
endif
if(zP==wv[gp])then
set hx[gp]=not(hx[gp])
call tQ(gp,Fp)
endif
if(zP==uv[gp])then
call mP(gp,not(jx[gp]))
call tQ(gp,Fp)
endif
if(zP==zv[gp])then
set Jx[gp]=not(Jx[gp])
call tQ(gp,Fp)
endif
if(zP==Yv[gp])then
set Hx[gp]=not(Hx[gp])
call tQ(gp,Fp)
endif
if(zP==ee[gp])then
call GQ(gp,Fp)
endif
set Fp=null
set zP=null
endfunction
function CS takes nothing returns nothing
local player Fp=GetTriggerPlayer()
local integer gp=GetPlayerId(Fp)
local button zP=GetClickedButton()
call gQ(gp,Fp,false)
if(zP==Tv[gp])then
call TQ(Fp)
endif
if(zP==Uv[gp])then
call uQ(Fp)
endif
if(zP==wv[gp])then
call UQ(Fp)
endif
if(zP==uv[gp])then
call wQ(Fp)
endif
if(zP==zv[gp])then
call yQ()
endif
if(zP==ee[gp])then
call GQ(gp,Fp)
endif
set Fp=null
set zP=null
endfunction
function this takes nothing returns nothing
local integer cp
local player Bp
local player Fp
set tx=CreateTrigger()
call TriggerRegisterAnyUnitEventBJ(tx,EVENT_PLAYER_UNIT_ATTACKED)
call TriggerAddAction(tx,function Gs)
call TriggerAddCondition(Qx,Condition(function as))
set cp=0
loop
exitwhen cp>11
set pe[cp]=CreateTrigger()
call TriggerAddAction(pe[cp],function Rs)
call DisableTrigger(pe[cp])
set re[cp]=CreateTrigger()
call TriggerAddAction(re[cp],function Fs)
call DisableTrigger(re[cp])
set ae[cp]=CreateTrigger()
call TriggerAddAction(ae[cp],function gs)
call DisableTrigger(ae[cp])
set ie[cp]=CreateTrigger()
call TriggerAddAction(ie[cp],function js)
call DisableTrigger(ie[cp])
set ne[cp]=CreateTrigger()
call TriggerAddAction(ne[cp],function Hs)
call DisableTrigger(ne[cp])
set Mv[cp]=CreateTrigger()
call TriggerAddAction(Mv[cp],function hs)
call DisableTrigger(Mv[cp])
set Ve[cp]=CreateTrigger()
call TriggerAddAction(Ve[cp],function ss)
call DisableTrigger(Ve[cp])
set Ee[cp]=CreateTrigger()
call TriggerAddAction(Ee[cp],function Ss)
call DisableTrigger(Ee[cp])
set Xe[cp]=CreateTrigger()
call TriggerAddAction(Xe[cp],function ts)
call DisableTrigger(Xe[cp])
set Oe[cp]=CreateTrigger()
call TriggerAddAction(Oe[cp],function Ts)
call DisableTrigger(Oe[cp])
set Re[cp]=CreateTrigger()
call TriggerAddAction(Re[cp],function us)
call DisableTrigger(Re[cp])
set Ie[cp]=CreateTrigger()
call TriggerAddAction(Ie[cp],function Us)
set Ae[cp]=CreateTrigger()
call TriggerAddAction(Ae[cp],function ys)
set Ne[cp]=CreateTrigger()
call TriggerAddAction(Ne[cp],function Zs)
set be[cp]=CreateTrigger()
call TriggerAddAction(be[cp],function xS)
set Be[cp]=CreateTrigger()
call TriggerAddAction(Be[cp],function bs)
call DisableTrigger(Be[cp])
set ce[cp]=CreateTrigger()
call TriggerAddAction(ce[cp],function Bs)
call DisableTrigger(ce[cp])
set Ce[cp]=CreateTrigger()
call TriggerAddAction(Ce[cp],function cs)
call DisableTrigger(Ce[cp])
set de[cp]=CreateTrigger()
call TriggerAddAction(de[cp],function Cs)
call DisableTrigger(de[cp])
set De[cp]=CreateTrigger()
call TriggerAddAction(De[cp],function this)
call DisableTrigger(De[cp])
set fe[cp]=CreateTrigger()
call TriggerAddAction(fe[cp],function this)
call DisableTrigger(fe[cp])
set Dx[cp]=CreateTrigger()
call TriggerAddAction(Dx[cp],function fs)
call DisableTrigger(Dx[cp])
set Fe[cp]=CreateTrigger()
call TriggerAddAction(Fe[cp],function oS)
set Ye[cp]=CreateTrigger()
call TriggerAddAction(Ye[cp],function rS)
set ge[cp]=CreateTrigger()
call TriggerAddAction(ge[cp],function iS)
set Ge[cp]=CreateTrigger()
call TriggerAddAction(Ge[cp],function aS)
set Le[cp]=CreateTrigger()
call TriggerAddAction(Le[cp],function nS)
set He[cp]=CreateTrigger()
call TriggerAddAction(He[cp],function VS)
set ke[cp]=CreateTrigger()
call TriggerAddAction(ke[cp],function ES)
set Je[cp]=CreateTrigger()
call TriggerAddAction(Je[cp],function XS)
set Ke[cp]=CreateTrigger()
call TriggerAddAction(Ke[cp],function OS)
set Ze[cp]=CreateTrigger()
call TriggerAddAction(Ze[cp],function IS)
set ze[cp]=CreateTrigger()
call TriggerAddAction(ze[cp],function RS)
set le[cp]=CreateTrigger()
call TriggerAddAction(le[cp],function AS)
set je[cp]=CreateTrigger()
call TriggerAddAction(je[cp],function NS)
set vx[cp]=CreateTrigger()
call TriggerAddAction(vx[cp],function bS)
set he[cp]=CreateTrigger()
call TriggerAddAction(he[cp],function BS)
set Gx[cp]=CreateTrigger()
call TriggerAddAction(Gx[cp],function CS)
set gx[cp]=CreateTrigger()
call TriggerAddAction(gx[cp],function cS)
call DisableTrigger(Fe[cp])
call DisableTrigger(ge[cp])
call DisableTrigger(Ye[cp])
call DisableTrigger(Ge[cp])
call DisableTrigger(Le[cp])
call DisableTrigger(He[cp])
call DisableTrigger(ke[cp])
call DisableTrigger(Je[cp])
call DisableTrigger(Ke[cp])
call DisableTrigger(Ze[cp])
call DisableTrigger(ze[cp])
call DisableTrigger(le[cp])
call DisableTrigger(je[cp])
call DisableTrigger(vx[cp])
call DisableTrigger(he[cp])
call DisableTrigger(Gx[cp])
call DisableTrigger(gx[cp])
set Pe[cp]=CreateTrigger()
call TriggerAddAction(Pe[cp],function ls)
set qe[cp]=CreateTrigger()
call TriggerAddAction(qe[cp],function Ms)
set Qe[cp]=CreateTrigger()
call TriggerAddAction(Qe[cp],function Ps)
call DisableTrigger(Pe[cp])
call DisableTrigger(qe[cp])
call DisableTrigger(Qe[cp])
set Bp=Player(cp)
if((GetPlayerController(Bp)==MAP_CONTROL_USER)and(GetPlayerSlotState(Bp)==PLAYER_SLOT_STATE_PLAYING))then
set Iv[cp]=CreateGroup()
call TriggerRegisterPlayerStateEvent(Sx,Bp,PLAYER_STATE_RESOURCE_FOOD_USED,LESS_THAN,0)
call TriggerRegisterPlayerKeyEventBJ(Ae[cp],Bp,0,2)
call TriggerRegisterPlayerKeyEventBJ(Ie[cp],Bp,0,3)
call TriggerRegisterPlayerKeyEventBJ(Ne[cp],Bp,0,0)
call TriggerRegisterPlayerKeyEventBJ(be[cp],Bp,0,1)
call TriggerRegisterPlayerChatEvent(sx,Bp,SubStringBJ(Jv,139,146),false)
call TriggerRegisterPlayerStateEvent(Sx,Bp,PLAYER_STATE_RESOURCE_FOOD_USED,LESS_THAN,0)
set Av[cp]=GetPlayerStartLocationLoc(Bp)
endif
set cp=cp+1
endloop
call DisableTrigger(tx)
set Gv=CreateGroup()
set ov=GetWorldBounds()
set Cv[0]=30.
set Cv[1]=60.
set Cv[2]=90.
set dv[0]=50.
set dv[1]=72.
set dv[2]=95.
set cp=0
loop
exitwhen cp>20
set Xx[cp]=null
set cp=cp+1
endloop
set cp=0
loop
exitwhen(cp>12)
set y[cp]=0
set Z[cp]=false
set vv[cp]=false
set xv[cp]=0
set nv[cp]=false
set Vv[cp]=false
set Ev[cp]=CreateTimer()
set Iv[cp]=CreateGroup()
set Nv[cp]=false
set bv[cp]=false
set Bv[cp]=CreateTimer()
set cv[cp]=false
set lv[cp]=false
set Lv[cp]=0
set oe[cp]=DialogCreate()
set me[cp]=DialogCreate()
set Me[cp]=DialogCreate()
set se[cp]=false
set ex[cp]=0
set xx[cp]=false
set fx[cp]=DialogCreate()
set hx[cp]=false
set Hx[cp]=true
set jx[cp]=false
set Jx[cp]=false
set kx[cp]=CreateTimer()
set cp=cp+1
endloop
set cp=0
loop
exitwhen(cp>3)
set cp=cp+1
endloop
set cp=0
loop
exitwhen(cp>21)
set Ox[cp]=false
set cp=cp+1
endloop
call TriggerRegisterTimerEvent(Px,.01,false)
call TriggerAddAction(Px,function xs)
call TriggerAddAction(qx,function os)
call TriggerAddAction(Qx,function ns)
call TriggerAddAction(sx,function As)
call TriggerAddAction(Sx,function Ns)
call TriggerRegisterAnyUnitEventBJ(tx,EVENT_PLAYER_UNIT_ATTACKED)
call TriggerAddAction(tx,function Gs)
call TriggerRegisterAnyUnitEventBJ(Tx,EVENT_PLAYER_UNIT_ATTACKED)
call TriggerAddAction(Tx,function ks)
call DisableTrigger(Tx)
if(M)then
set rx="主机版"
else
set rx="标准版"
endif
set rx=rx+" (添加 By |cFFFF0000"+k+"|r)"
if(P=="")then
else
set rx=rx+"|n"+P
endif
call SetPlayerName(Player(12),"中立生物")
set Bp=null
endfunction

Line 12237
Spoiler:
Code:
call this()

And the HKE activator was removed.


You do not have the required permissions to view the files attached to this post.


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 5 posts ] 

All times are UTC


Who is online

Users browsing this forum: No registered users and 42 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group

phpBB SEO


Privacy Policy Statement
Impressum (German)