scope Multiboard initializer Init
globals
private multiboard mb = CreateMultiboard()
private integer array PK // Chien tich
private integer array Creeping // Chan Quan
private integer array Giet // Giet
private integer array Chet // Chet
endglobals
private function update takes nothing returns nothing
local integer a = 1
local integer b = 2
loop
exitwhen a > 10
set b = b +1
if b == 8 then
set b = 9
endif
call MultiboardSetItemValueBJ(mb,2,b," " + I2S( PK[a]))
call MultiboardSetItemValueBJ(mb,3,b," " + I2S( Giet[a]))
call MultiboardSetItemValueBJ(mb,4,b," " + I2S( Chet[a] ))
call MultiboardSetItemValueBJ(mb,5,b," " + I2S( Creeping[a]))
set a = a + 1
endloop
endfunction
private function killcond takes nothing returns boolean
if ( not ( IsUnitEnemy(GetTriggerUnit(), GetOwningPlayer(GetKillingUnit())) == true ) ) then
return false
endif
if ( not ( GetUnitTypeId(GetTriggerUnit()) == 'dumy' )) then
return false
endif
return true
endfunction
private function killact takes nothing returns nothing
local unit u = GetTriggerUnit()
local unit k = GetKillingUnit()
local player pk = GetOwningPlayer(k)
local integer a = 1
local integer g
local string kname = GetPlayerName(pk)
local group gr
local group gro = NewGroup()
local real exp
local integer count = 1
local unit p
call DestroyEffect(AddSpecialEffect("UI\\Feedback\\GoldCredit\\GoldCredit.mdl",GetUnitX(u),GetUnitY(u)))
set a = 1
loop
exitwhen a > 10
if pk == Player(a) then
if IsUnitType(u,UNIT_TYPE_HERO) then
set Giet[a] = Giet[a] + 1
else
set Creeping[a] = Creeping[a] + 1
endif
endif
if GetOwningPlayer(u) == Player(a) and IsUnitType(u,UNIT_TYPE_HERO) then
set Chet[a] = Chet[a] + 1
endif
set a = a + 1
endloop
call SetPlayerState(GetOwningPlayer(k),PLAYER_STATE_RESOURCE_GOLD,GetPlayerState(GetOwningPlayer(k),PLAYER_STATE_RESOURCE_GOLD) + g)
//call TextTag(GetPlayerId(GetOwningPlayer(k)),"Gold: +" + I2S(g),k,7,25,255,242,0,0)
call update()
set exp = GetUnitLevel(u) * 100
call GroupUnitsInArea(gr, GetUnitX(k), GetUnitY(k), 700)
loop
set p = FirstOfGroup(gr)
call GroupRemoveUnit(gr,p)
exitwhen p == null
if IsUnitAlly(p,pk) and IsUnitType(p,UNIT_TYPE_HERO) then
set count = count + 1
call GroupAddUnit(gro,p)
endif
endloop
call ReleaseGroup(gr)
call AddHeroXP(k,R2I(exp),true)
set exp = exp / count
loop
set p = FirstOfGroup(gro)
call GroupRemoveUnit(gro,p)
exitwhen p == null
call AddHeroXP(p,R2I(exp),true)
if p == k then
set exp = exp * 2
endif
// call TextTag(GetPlayerId(GetOwningPlayer(p)),"EXP: +" + I2S(R2I(exp * 2.3)),p,7,3,102,45,145,0)
set exp = exp /2
endloop
call ReleaseGroup(gro)
set p = null
set u = null
set k = null
set gr = null
set gro = null
set pk = null
endfunction
function leftact takes nothing returns nothing
local integer iSCounter
local integer iFCounter
local integer a = 1
set PlayerCounter = PlayerCounter - 1
call DisplayTimedTextToForce(bj_FORCE_ALL_PLAYERS,25.,PlayerColor[GetPlayerId(GetTriggerPlayer())]+GetPlayerName(GetTriggerPlayer())+"|r"+"|c00ff0303 ®· tho¸t.|r")
set iSCounter=1
set iFCounter=10
loop
exitwhen iSCounter>iFCounter
if Player(iSCounter) !=GetTriggerPlayer()then
if GetPlayerController(Player(iSCounter)) == MAP_CONTROL_USER then
set PlayerPK[GetPlayerId(GetTriggerPlayer())] = false
call SetPlayerState(Player(iSCounter),PLAYER_STATE_RESOURCE_GOLD,GetPlayerState(GetTriggerPlayer(),PLAYER_STATE_RESOURCE_GOLD) / PlayerCounter)
call SetPlayerAllianceStateBJ(GetTriggerPlayer(),Player(iSCounter),4)
call SetPlayerController(GetTriggerPlayer(),MAP_CONTROL_COMPUTER)
call MultiboardSetItemValueBJ(mb,1,1 + PlayerSlot[GetPlayerId(GetTriggerPlayer())],PlayerColor[GetPlayerId(GetTriggerPlayer())] + "-®· rêi khái trËn ®Êu")
endif
endif
set iSCounter=iSCounter+1
endloop
endfunction
private function create takes nothing returns nothing
local integer a = 1
local integer b
local integer r = 3
loop
exitwhen a > 10
if GetPlayerSlotState(Player(a)) == PLAYER_SLOT_STATE_PLAYING and GetPlayerController(Player(a)) == MAP_CONTROL_USER then
set r = r + 1
endif
set a = a + 1
endloop
call MultiboardSetColumnCount(mb,6)
call MultiboardSetRowCount(mb,r)
call MultiboardSetTitleText(mb,"Pekon")
call MultiboardDisplay(mb,true)
set a = 1
loop
exitwhen a > r
set b = 1
loop
exitwhen b > 6
call MultiboardSetItemStyleBJ( mb, b + 1, a, true, false )
set b = b + 1
endloop
call MultiboardSetItemStyleBJ(mb,1,a,true,true)
call MultiboardSetItemValueBJ(mb,2,a," ")
call MultiboardSetItemWidthBJ(mb,1,a,8.50)
call MultiboardSetItemWidthBJ(mb,2,a,3.25)
call MultiboardSetItemWidthBJ(mb,3,a,7.25)
call MultiboardSetItemWidthBJ(mb,4,a,3.85)
call MultiboardSetItemWidthBJ(mb,5,a,5.25)
call MultiboardSetItemColorBJ(mb,2,a,100,10,10,0)
call MultiboardSetItemColorBJ(mb,3,a,10,100,10,0)
call MultiboardSetItemColorBJ(mb,4,a,40,18,57,0)
call MultiboardSetItemColorBJ(mb,5,a,0,68,94,0)
set a = a + 1
endloop
call MultiboardSetItemStyleBJ(mb,1,1,true,false)
call MultiboardSetItemColorBJ(mb,1,1,10,100,100,0)
call MultiboardSetItemValueBJ(mb,1,1," Danh tÝnh")
call MultiboardSetItemStyleBJ(mb,2,1,true,false)
call MultiboardSetItemStyleBJ(mb,3,1,true,false)
call MultiboardSetItemValueBJ(mb,2,1,"ChiÕn tÝch")
call MultiboardSetItemValueBJ(mb,3,1,"S¸t nh©n")
call MultiboardSetItemValueBJ(mb,4,1,"Hi sinh")
call MultiboardSetItemValueBJ(mb,5,1,"Ch¨n qu©n")
call MultiboardSetItemValueBJ(mb,1,2,"H¾c long")
call MultiboardSetItemValueBJ(mb,1,8,"B¹ch Hæ")
call MultiboardSetItemValueBJ(mb,2,2," 0")
call MultiboardSetItemValueBJ(mb,3,2," 0")
call MultiboardSetItemValueBJ(mb,4,2," 0")
call MultiboardSetItemValueBJ(mb,5,2," 0")
call MultiboardSetItemValueBJ(mb,2,8," 0")
call MultiboardSetItemValueBJ(mb,3,8," 0")
call MultiboardSetItemValueBJ(mb,4,8," 0")
call MultiboardSetItemValueBJ(mb,5,8," 0")
set a = 1
set b = 2
loop
exitwhen a > 10
if GetPlayerSlotState(Player(a)) == PLAYER_SLOT_STATE_PLAYING and GetPlayerController(Player(a)) == MAP_CONTROL_USER then
set b = b + 1
if b == 8 then
set b = 9
endif
call MultiboardSetItemValueBJ(mb,1,b, PlayerName[a])
call MultiboardSetItemValueBJ(mb,2,b," 0")
call MultiboardSetItemValueBJ(mb,3,b," 0")
call MultiboardSetItemValueBJ(mb,4,b," 0")
call MultiboardSetItemValueBJ(mb,5,b," 0")
endif
set a = a + 1
endloop
call MultiboardMinimize(mb,true)
endfunction
private function time takes nothing returns nothing
local integer a = 1
if Second == 59 then
set Min = Min + 1
set Second = 0
call SetPlayerHandicapXP(Player(0),Min)
call SetPlayerHandicapXP(Player(11),Min)
endif
set Second = Second + 1
loop
exitwhen a > 10
call AdjustPlayerStateBJ( 1, Player(a), PLAYER_STATE_RESOURCE_GOLD )
call SetPlayerState(Player(a),PLAYER_STATE_RESOURCE_LUMBER,Min)
call SetPlayerState(Player(a),PLAYER_STATE_RESOURCE_FOOD_USED,Second)
set a = a + 1
endloop
endfunction
public function Init takes nothing returns nothing
local trigger t = CreateTrigger() // dem thoi gian
local trigger a = CreateTrigger() // tao bang
local trigger b = CreateTrigger() // creeping
local trigger l = CreateTrigger() // player left
local integer i
local trigger k = CreateTrigger() // giet -> chan creep, tuong, cong exp
call TriggerRegisterTimerEvent(t,1,true)
call TriggerAddAction(t,function time)
call TriggerRegisterTimerEvent(a,0.1,false)
call TriggerAddAction(a,function create)
call DestroyTrigger(a)
set i = 1
loop
exitwhen i > 10
call TriggerRegisterPlayerEventLeave( l, Player(i) )
set i = i + 1
endloop
call TriggerAddAction(l,function leftact)
call TriggerRegisterAnyUnitEventBJ(k,EVENT_PLAYER_UNIT_DEATH)
call TriggerAddCondition(k,Condition(function killcond))
call TriggerAddAction(k,function killact)
set t = null
set a = null
set b = null
set l = null
set k = null
endfunction
endscope