scope CM initializer Init
globals
//Cm modu yaz_ld_g_nda tum playerlere gosterilecek yaz_
private constant string MODE_STRING = "Captains Mode Activated"
//Ustteki cm modu yaz_s_n_n ekranda kac saniye gozukecegi
private constant real MODE_STRING_TIME = 10.00
//Cm multiboard_n_n oyunda gozuken ismi
private constant string MULTIBOARD_NAME = "Captains Mode"
//Cmdeki tum ban ve picklerin toplam say_s_
private constant integer BAN_PICK_COUNT = 16
// Cm Pick/Ban sirasi
// 1 Sayisi Devil Ban
// 2 Sayisi Devil Pick
// 3 Sayisi Reaper Ban
// 4 Sayisi Reaper Pick
// 0 sayisi son anlamina gelir
// anlamina gelir.
// oyun s_ras_nda bu s_ralamay_ degistirebiliyorsun, mesela at_yorum
// modu yazan kisi -cmReaper yada -cm2 yazinca once reaperin
// pickleyecegi sekilde ayarla vs vs
private string Cm_Turns = "1 3 1 3 2 4 4 2 2 4 1 3 4 2 2 4 0"
//Ban phase s_ras_nda tavernlerin orada c_kacak floating textin yaz_s_
private constant string BAN_TEXT = "|c00FF0000BAN|r"
//Pick phase s_ras_nda tavernlerin orada c_kacak floating textin yaz_s_
private constant string PICK_TEXT = "|c000000FFPICK|r"
//Floating textlerde o s_rada pick/ban_ yapan kaptan_n ismi gozuksun mu
private constant boolean TEXT_SHOW_CAPTAIN_NAMES = true
//Hero secme suresi
private constant integer CHOOSE_TIME =40
//Extra hero secme suresi
private constant integer EXTRA_TIME = 60
//Cm bittikten sonra herolar_ sececek wisp gibi yaratigin id'si
private constant integer HERO_SELECTOR_ID = 'e00L'
//Cm modda playerlerin isminde aldiklari heronun ismi yazacakmi
//Ornek: Jedi2(Shadow Mage)
private constant boolean SET_PLAYER_NAME = false
//Clan devil herolarinin picklenmelerinden onceki sahibi olacak playerin jass numarasi
private constant integer DEVIL_HEROES_OWNER = PLAYER_NEUTRAL_PASSIVE
//Clan reaper herolarinin picklenmelerinden onceki sahibi olacak playerin jass numarasi
private constant integer REAPER_HEROES_OWNER = PLAYER_NEUTRAL_PASSIVE
//Multiboardda picklenen herolar_n onunde yazacak yaz_
private constant string PICK_STRING = "Picks:"
//Multiboardda banlanan herolar_n onunde yazacak yaz_
private constant string BAN_STRING = "Bans:"
//Cm bittikten kac sn sonra map_n normal multiboardinin gorulecegi
private constant real MULTIBOARD_SHOW_TIME = 0.00
//Oyuna kac goldla baslanacagi
private constant integer CM_START_GOLD = 700
//Cm bittikten kac sn sonra creeplerin spawn olacagi
private constant real CREEP_SPAWN_TIME = 120.00
endglobals
globals
private string PlayerRedName
private string PlayerGreenName
private boolean Ban
private string Check
//private integer array PickedHeroes
// private integer array BannedHeroes
endglobals
function SelectCmHero takes nothing returns boolean
//bj_lastLoadedUnit = Secilen hero
//bj_lastCreatedUnit = Secen wisp
//bj_groupEnumOwningPlayer = Secen player
local unit hero = LoadUnitHandle(udg_hash, GetHandleId(GetTriggeringTrigger()), 0)
local unit wisp
local player owner
set bj_lastLoadedUnit = LoadUnitHandle(udg_hash, GetHandleId(GetTriggeringTrigger()), 0)
//if GetUnitTypeId(GetEnteringUnit()) == HERO_SELECTOR_ID and (GetOwningPlayer(hero) == Player(DEVIL_HEROES_OWNER) or GetOwningPlayer(hero) == Player(REAPER_HEROES_OWNER)) then
// GECICI NEUTRAL SORUNU USTTEKI IF CONDITION
if GetUnitTypeId(GetEnteringUnit()) == HERO_SELECTOR_ID and (GetOwningPlayer(hero) == udg_ClanDevilPlayer or GetOwningPlayer(hero) == udg_ClanReaperPlayer) then
// GECICI NEUTRAL SORUNU
set wisp = GetEnteringUnit()
set owner = GetOwningPlayer(wisp)
//set udg_MB_Bool[GetConvertedPlayerId(GetOwningPlayer(GetTriggerUnit()))] = true
set udg_MB_Bool[GetConvertedPlayerId(owner)] = true
call SetUnitOwner(hero, owner, true)
call PauseUnit(hero, false)
call RemoveUnit(wisp)
call SetPlayerStateBJ(owner, PLAYER_STATE_RESOURCE_FOOD_USED, 0)
if SET_PLAYER_NAME then
//call SetPlayerName(owner, GetPlayerName(owner) + udg_Player_Colors[GetConvertedPlayerId(owner)]+"(" + GetUnitName(hero) + ")|r")
call SetPlayerName(owner, GetPlayerName(owner)+"(" + GetUnitName(hero) + ")|r")
endif
if GetLocalPlayer() == owner then
call ClearSelection()
call SelectUnit(hero, true)
endif
call SetPlayerTechMaxAllowed(owner, 'HERO', 0)
set udg_GOD_PlayerNumber = GetPlayerId(owner) + 1
set udg_GOD_Hero[udg_GOD_PlayerNumber] = hero
set udg_GOD_B = 1
loop
exitwhen udg_GOD_B > udg_GOD_ButtonNumber
call DialogSetMessage(udg_GOD_Dialog[udg_GOD_PlayerNumber], "TRIGSTR_1266")
set udg_GOD_DialogButton[( ( ( udg_GOD_PlayerNumber - 1 ) * 8 ) + udg_GOD_B )] = DialogAddButton(udg_GOD_Dialog[udg_GOD_PlayerNumber], udg_GOD_Buton_Name[udg_GOD_B], 0)
set udg_GOD_B = udg_GOD_B + 1
endloop
call DialogDisplay(ConvertedPlayer(udg_GOD_PlayerNumber), udg_GOD_Dialog[udg_GOD_PlayerNumber], true)
call FlushChildHashtable(udg_hash, GetHandleId(GetTriggeringTrigger()))
call TriggerClearConditions(GetTriggeringTrigger())
call DestroyTrigger(GetTriggeringTrigger())
call MultiboardSetIcon( udg_NewTable, 1, udg_Table_PlayerLine[GetConvertedPlayerId(owner)], GetHeroIcon(hero) )
set wisp = null
set owner = null
endif
set hero = null
return false
endfunction
function MULTIDEVAM takes nothing returns nothing
call MultiboardDisplay(udg_NewTable, true)
call DestroyTimer(GetExpiredTimer())
endfunction
//Pickler bittikten 120 sn sonra calisan trigger
function SpawnCreeps takes nothing returns nothing
call DestroyTimer(GetExpiredTimer())
// bak surda cm bitktten 120 sn sonra calisan bolum varmis hehe OHA YER B0TT0
endfunction
//Pickler bittikten 60 sn sonra calisan trigger
function SwitchMulti takes nothing returns nothing
call DestroyMultiboard(udg_CmBoard)
call TimerDialogDisplay(udg_TankTimerW, true)
if udg_NewTable != null then
call MultiboardDisplay(udg_NewTable, true)
else
call TriggerExecute(gg_trg_Table_Setup)
call TimerStart(CreateTimer(), 1.00, false, function MULTIDEVAM)
endif
call TriggerExecute(gg_trg_Maden)
call DestroyTimer(GetExpiredTimer())
endfunction
//Pickler bittikten sonra calisan kisim
function FinishCm takes nothing returns nothing
local integer i = 0
call SetPlayerName(udg_ClanDevilPlayer, "|CFFFF0303Clan Devil|r")
call SetPlayerName(udg_ClanReaperPlayer, "|CFF20C000Clan Reaper|r")
call SetPlayerName(Player(1), udg_PlayerNames[2])
call SetPlayerName(Player(7), udg_PlayerNames[8])
//call SetPlayerStateBJ(Player(1), PLAYER_STATE_RESOURCE_GOLD, udg_CmPlayer2Gold)
//call SetPlayerStateBJ(Player(7), PLAYER_STATE_RESOURCE_GOLD, udg_CmPlayer8Gold)
call SetPlayerMaxHeroesAllowed(0, Player(1))
call SetPlayerMaxHeroesAllowed(0, Player(7))
//// surayi GUI ile baglamak geldi simdi aklima
call TriggerExecute(gg_trg_Comman_CM_Devam)
////call EnableTrigger(gg_trg_ExtraCreepsTIMER)
////call EnableTrigger(gg_trg_extra_creeps_vs_melee) //SUPHELI
////call EnableTrigger(gg_trg_Mekanik_Timer_ve_Ejder) //cmden sonra ac
////call TriggerExecute(gg_trg_Mekanik_Timer_ve_Ejder)
////call EnableTrigger(gg_trg_gametimer) //cmden sonra ac
////call EnableTrigger(gg_trg_Her_saniye_gold) //cmden sonra ac
////call EnableTrigger(gg_trg_Maden)
////call EnableTrigger(gg_trg_Heroes_Sent)
////call EnableTrigger(gg_trg_Table_Level_Update)
////call EnableTrigger(gg_trg_Table_Level_Update_Once)
////call EnableTrigger(gg_trg_Table_Kills_Deaths)
////call EnableTrigger(gg_trg_Table_Update_Lumbers)
////call TimerStart(udg_timer_creep_cikis_ap, 120.00, false, null)
////call TimerStart(udg_timer_nc_kucuk, 120.00, false, null)
////call TimerStart(udg_timer_lord_duyuru, 2580.00, false, null)
////call TimerStart(udg_timer_lord_creep_devam, 2760.00, false, null)
call DestroyTextTag(udg_CmFloat)
call MultiboardSetValue(udg_CmBoard, 1, 10, "|c006969FFStatus:|r |c007d7d7dEnd|r" )
call MultiboardSetValue(udg_CmBoard, 7, 10, "|c006969FFStatus:|r |c007d7d7dEnd|r" )
loop
exitwhen i == 6
if GetPlayerSlotState(Player(i)) == PLAYER_SLOT_STATE_PLAYING then
call SetPlayerStateBJ( Player(i), PLAYER_STATE_RESOURCE_GOLD, CM_START_GOLD )
set bj_lastCreatedUnit = CreateUnit(Player(i), HERO_SELECTOR_ID, GetRectCenterX(gg_rct_GameGuideDevil), GetRectCenterY(gg_rct_GameGuideDevil), 0)
if GetLocalPlayer() == Player(i) then
call PanCameraToTimed(GetRectCenterX(gg_rct_GameGuideDevil), GetRectCenterY(gg_rct_GameGuideDevil), 0.00)
call ClearSelection()
call SelectUnit(bj_lastCreatedUnit, true)
endif
endif
set i = i + 1
endloop
set i = 7
loop
exitwhen i == 12
if GetPlayerSlotState(Player(i)) == PLAYER_SLOT_STATE_PLAYING then
call SetPlayerStateBJ( Player(i), PLAYER_STATE_RESOURCE_GOLD, CM_START_GOLD )
set bj_lastCreatedUnit = CreateUnit(Player(i), HERO_SELECTOR_ID, GetRectCenterX(gg_rct_GameGuideReaper), GetRectCenterY(gg_rct_GameGuideReaper), 0)
if GetLocalPlayer() == Player(i) then
call PanCameraToTimed(GetRectCenterX(gg_rct_GameGuideReaper), GetRectCenterY(gg_rct_GameGuideReaper), 0.00)
call ClearSelection()
call SelectUnit(bj_lastCreatedUnit, true)
endif
endif
set i = i + 1
endloop
call TimerStart(CreateTimer(), MULTIBOARD_SHOW_TIME, false, function SwitchMulti)
////call TimerStart(CreateTimer(), CREEP_SPAWN_TIME, false, function Spawns)
if GetPlayerSlotState(udg_ClanDevilPlayer) != PLAYER_SLOT_STATE_EMPTY then
call SetPlayerName(udg_ClanDevilPlayer, PlayerRedName)
endif
if GetPlayerSlotState(udg_ClanReaperPlayer) != PLAYER_SLOT_STATE_EMPTY then
call SetPlayerName(udg_ClanDevilPlayer, PlayerGreenName)
endif
endfunction
public function SwitchToDevil takes boolean devil returns nothing
if devil then
// Lumber
call SetPlayerStateBJ( Player(1), PLAYER_STATE_RESOURCE_LUMBER, 1 )
// neden 2 tane lmber veriyoruz lan bilmem :D
call SetPlayerStateBJ( Player(7), PLAYER_STATE_RESOURCE_LUMBER, 0 )
// Food
call SetPlayerStateBJ(Player(1), PLAYER_STATE_RESOURCE_FOOD_USED, 0)
call SetPlayerStateBJ(Player(7), PLAYER_STATE_RESOURCE_FOOD_USED, 3)
call MultiboardSetValue(udg_CmBoard, 1, 10, "|c006969FFStatus:|r Active" )
call MultiboardSetValue(udg_CmBoard, 7, 10, "|c006969FFStatus:|r |c007d7d7dWait|r" )
set udg_CmCounter = 1
else
// Lumber
call SetPlayerStateBJ( Player(1), PLAYER_STATE_RESOURCE_LUMBER, 0 )
call SetPlayerStateBJ( Player(7), PLAYER_STATE_RESOURCE_LUMBER, 1 )
// Food
call SetPlayerStateBJ(Player(1), PLAYER_STATE_RESOURCE_FOOD_USED, 3)
call SetPlayerStateBJ(Player(7), PLAYER_STATE_RESOURCE_FOOD_USED, 0)
set udg_CmCounter = 2
call MultiboardSetValue(udg_CmBoard, 1, 10, "|c006969FFStatus:|r |c007d7d7dWait|r" )
call MultiboardSetValue(udg_CmBoard, 7, 10, "|c006969FFStatus:|r Active" )
endif
endfunction
function CmMovePickedUnit takes unit u, boolean devil returns nothing
call PauseUnit(u, true)
if devil then
call SetUnitColor(u, PLAYER_COLOR_RED)
call SetUnitFacing(u, 270.00)
if udg_CmDevilPickCount == 1 then
call SetUnitX(u, GetRectCenterX(gg_rct_PlayerItem2))
call SetUnitY(u, GetRectCenterY(gg_rct_PlayerItem2))
elseif udg_CmDevilPickCount == 2 then
call SetUnitX(u, GetRectCenterX(gg_rct_PlayerItem3))
call SetUnitY(u, GetRectCenterY(gg_rct_PlayerItem3))
elseif udg_CmDevilPickCount == 3 then
call SetUnitX(u, GetRectCenterX(gg_rct_PlayerItem4))
call SetUnitY(u, GetRectCenterY(gg_rct_PlayerItem4))
elseif udg_CmDevilPickCount == 4 then
call SetUnitX(u, GetRectCenterX(gg_rct_PlayerItem5))
call SetUnitY(u, GetRectCenterY(gg_rct_PlayerItem5))
elseif udg_CmDevilPickCount == 5 then
call SetUnitX(u, GetRectCenterX(gg_rct_PlayerItem6))
call SetUnitY(u, GetRectCenterY(gg_rct_PlayerItem6))
endif
else
call SetUnitColor(u, PLAYER_COLOR_GREEN)
call SetUnitFacing(u, 90.00)
if udg_CmReaperPickCount == 1 then
call SetUnitX(u, GetRectCenterX(gg_rct_PlayerItem8))
call SetUnitY(u, GetRectCenterY(gg_rct_PlayerItem8))
elseif udg_CmReaperPickCount == 2 then
call SetUnitX(u, GetRectCenterX(gg_rct_PlayerItem9))
call SetUnitY(u, GetRectCenterY(gg_rct_PlayerItem9))
elseif udg_CmReaperPickCount == 3 then
call SetUnitX(u, GetRectCenterX(gg_rct_PlayerItem10))
call SetUnitY(u, GetRectCenterY(gg_rct_PlayerItem10))
elseif udg_CmReaperPickCount == 4 then
call SetUnitX(u, GetRectCenterX(gg_rct_PlayerItem11))
call SetUnitY(u, GetRectCenterY(gg_rct_PlayerItem11))
elseif udg_CmReaperPickCount == 5 then
call SetUnitX(u, GetRectCenterX(gg_rct_PlayerItem12))
call SetUnitY(u, GetRectCenterY(gg_rct_PlayerItem12))
endif
endif
endfunction
private function DevilBan takes unit picked returns nothing
set udg_CmDevilBanCount = udg_CmDevilBanCount + 1
set udg_CmReaperTime = CHOOSE_TIME
set udg_HeroChoosen[GetHeroIndexById(GetUnitTypeId(picked))] = true
call SetUnitOwner(picked, Player(DEVIL_HEROES_OWNER), false)
call DisplayTimedTextToPlayer(GetLocalPlayer(), 0, 0, 8.00, udg_PlayerNames[2]+" has banned "+ GetUnitName(picked))
//call MultiboardSetValue(udg_CmBoard, 1, 10, "|c006969FFStatus:|r |c007d7d7dWait|r" )
//call MultiboardSetValue(udg_CmBoard, 7, 10, "|c006969FFStatus:|r Active" )
call MultiboardSetStyle(udg_CmBoard, udg_CmDevilBanCount + 1, 3, false, true)
call MultiboardSetIcon(udg_CmBoard, udg_CmDevilBanCount + 1, 3, GetHeroIcon(picked))
call RemoveUnit(picked)
endfunction
private function DevilPick takes unit picked returns nothing
set udg_CmDevilPickCount = udg_CmDevilPickCount + 1
set udg_CmReaperTime = CHOOSE_TIME
set udg_HeroChoosen[GetHeroIndexById(GetUnitTypeId(picked))] = true
call SetUnitOwner(picked, Player(DEVIL_HEROES_OWNER), false)
// GECICI NEUTRAL SORUNU
call SetUnitOwner(picked, udg_ClanDevilPlayer, false)
// GECICI NEUTRAL SORUNU
call DisplayTimedTextToPlayer(GetLocalPlayer(), 0, 0, 8.00, udg_PlayerNames[2]+" has selected "+ GetUnitName(picked))
//call MultiboardSetValue(udg_CmBoard, 1, 10, "|c006969FFStatus:|r |c007d7d7dWait|r" )
//call MultiboardSetValue(udg_CmBoard, 7, 10, "|c006969FFStatus:|r Active" )
call MultiboardSetStyle(udg_CmBoard, udg_CmDevilPickCount + 1, 5, false, true)
call MultiboardSetIcon(udg_CmBoard, udg_CmDevilPickCount + 1, 5, GetHeroIcon(picked))
call CmMovePickedUnit(picked, true)
set udg_CmPickTrigger = CreateTrigger()
call TriggerAddCondition(udg_CmPickTrigger, Condition(function SelectCmHero))
call TriggerRegisterUnitInRange(udg_CmPickTrigger, picked, 120, null)
call SaveUnitHandle(udg_hash, GetHandleId(udg_CmPickTrigger), 0, picked)
endfunction
private function ReaperBan takes unit picked returns nothing
set udg_CmReaperBanCount = udg_CmReaperBanCount + 1
set udg_CmDevilTime = CHOOSE_TIME
set udg_HeroChoosen[GetHeroIndexById(GetUnitTypeId(picked))] = true
call SetUnitOwner(picked, Player(REAPER_HEROES_OWNER), true)
call DisplayTextToPlayer(GetLocalPlayer(), 0, 0, udg_PlayerNames[8]+" has banned "+ GetUnitName(picked))
//call MultiboardSetValue(udg_CmBoard, 7, 10, "|c006969FFStatus:|r |c007d7d7dWait|r" )
//call MultiboardSetValue(udg_CmBoard, 1, 10, "|c006969FFStatus:|r Active" )
call MultiboardSetStyle(udg_CmBoard, udg_CmReaperBanCount + 7, 3, false, true)
call MultiboardSetIcon(udg_CmBoard, udg_CmReaperBanCount + 7, 3, GetHeroIcon(picked))
call RemoveUnit(picked)
endfunction
private function ReaperPick takes unit picked returns nothing
set udg_CmReaperPickCount = udg_CmReaperPickCount + 1
set udg_CmDevilTime = CHOOSE_TIME
set udg_HeroChoosen[GetHeroIndexById(GetUnitTypeId(picked))] = true
call SetUnitOwner(picked, Player(REAPER_HEROES_OWNER), true)
// GECICI NEUTRAL SORUNU
call SetUnitOwner(picked, udg_ClanReaperPlayer, false)
// GECICI NEUTRAL SORUNU
call DisplayTimedTextToPlayer(GetLocalPlayer(), 0, 0, 8.00, udg_PlayerNames[8]+" has selected "+ GetUnitName(picked))
call MultiboardSetValue(udg_CmBoard, 7, 10, "|c006969FFStatus:|r |c007d7d7dWait|r" )
////call MultiboardSetValue(udg_CmBoard, 1, 10, "|c006969FFStatus:|r Active" )
call MultiboardSetStyle(udg_CmBoard, udg_CmReaperPickCount + 7, 5, false, true)
call MultiboardSetIcon(udg_CmBoard, udg_CmReaperPickCount + 7, 5, GetHeroIcon(picked))
call CmMovePickedUnit(picked, false)
set udg_CmPickTrigger = CreateTrigger()
call TriggerAddCondition(udg_CmPickTrigger, Condition(function SelectCmHero))
call TriggerRegisterUnitInRange(udg_CmPickTrigger, picked, 120, null)
call SaveUnitHandle(udg_hash, GetHandleId(udg_CmPickTrigger), 0, picked)
endfunction
private function CheckTurn takes nothing returns boolean
local integer sum = udg_CmDevilBanCount + udg_CmReaperBanCount + udg_CmDevilPickCount + udg_CmReaperPickCount
local string char = SubString(Cm_Turns, 2 * sum, 2 * sum + 1)
set Check = char
if char == "1" then //Devil ban
call SwitchToDevil(true)
set Ban = true
if TEXT_SHOW_CAPTAIN_NAMES then
call SetTextTagTextBJ(udg_CmFloat, udg_PlayerNames[2]+" - "+BAN_TEXT, 20.00 )
else
call SetTextTagTextBJ(udg_CmFloat, BAN_TEXT, 20.00 )
endif
//call SetTextTagColorBJ(udg_CmFloat, 0, 0, 100, 0 )
elseif char == "2" then //Devil pick
call SwitchToDevil(true)
set Ban = false
if TEXT_SHOW_CAPTAIN_NAMES then
call SetTextTagTextBJ(udg_CmFloat, udg_PlayerNames[2]+" - "+PICK_TEXT, 20.00 )
else
call SetTextTagTextBJ(udg_CmFloat, PICK_TEXT, 20.00 )
endif
//call SetTextTagColorBJ(udg_CmFloat, 0, 0, 100, 0 )
elseif char == "3" then //Reaper ban
call SwitchToDevil(false)
set Ban = true
if TEXT_SHOW_CAPTAIN_NAMES then
call SetTextTagTextBJ(udg_CmFloat, udg_PlayerNames[8]+" - "+BAN_TEXT, 20.00 )
else
call SetTextTagTextBJ(udg_CmFloat, BAN_TEXT, 20.00 )
endif
//call SetTextTagColorBJ(udg_CmFloat, 0, 0, 100, 0 )
elseif char == "4" then //Reaper pick
call SwitchToDevil(false)
set Ban = false
if TEXT_SHOW_CAPTAIN_NAMES then
call SetTextTagTextBJ(udg_CmFloat, udg_PlayerNames[8]+" - "+PICK_TEXT, 20.00 )
else
call SetTextTagTextBJ(udg_CmFloat, PICK_TEXT, 20.00 )
endif
//call SetTextTagColorBJ(udg_CmFloat, 0, 0, 100, 0 )
elseif char == "0" or sum == BAN_PICK_COUNT then //End cm
return false
else
call DisplayTextToPlayer(GetLocalPlayer(), 0, 0, "Error number 0, send this replay to [email protected]")
endif
return true
endfunction
function CmDevilFirstBan takes nothing returns nothing
local unit u
local integer i = 0
local player picker
if GetTriggerEventId() == EVENT_PLAYER_UNIT_SELL then
// Lumber
call SetPlayerStateBJ( Player(1), PLAYER_STATE_RESOURCE_LUMBER, 0 )
call SetPlayerStateBJ( Player(7), PLAYER_STATE_RESOURCE_LUMBER, 0 )
// Food
call SetPlayerStateBJ(Player(1), PLAYER_STATE_RESOURCE_FOOD_USED, 3)
call SetPlayerStateBJ(Player(7), PLAYER_STATE_RESOURCE_FOOD_USED, 3)
endif
if CheckTurn() == false then
call TriggerClearConditions(GetTriggeringTrigger())
call DestroyTrigger(GetTriggeringTrigger())
call FinishCm()
return
endif
if GetTriggerEventId() == EVENT_PLAYER_UNIT_SELL then //Bir Hero Satildiysa
set u = GetSoldUnit()
// //TEST
// set picker = GetOwningPlayer(u)
//
// if picker == Player(1) then
// // Hero pickleyen tak_m devil ise
// if Check != "1" or Check != "2" then
// // Pick sirasi devilda degilse
// call DisplayTextToForce( GetPlayersAll(), ( ( udg_PlayerNames[GetConvertedPlayerId(picker)] + " hero aldi." ) + "" ) )
// call SetPlayerMaxHeroesAllowed( 0, picker )
// call SetPlayerStateBJ( picker, PLAYER_STATE_RESOURCE_LUMBER, 0 )
// endif
// else
// // Hero pickleyen tak_m reaper ise
// if Check != "3" or Check != "4" then
// // Pick sirasi reaperda
// call DisplayTextToForce( GetPlayersAll(), ( ( udg_PlayerNames[GetConvertedPlayerId(picker)] + " hero aldi." ) + "" ) )
// call SetPlayerMaxHeroesAllowed( 0, picker )
// call SetPlayerStateBJ( picker, PLAYER_STATE_RESOURCE_LUMBER, 0 )
// endif
// endif
//
// set picker = null
// //TEST
loop
exitwhen i == 12
call SetPlayerTechMaxAllowed(Player(i), GetUnitTypeId(u), 0)
set i = i + 1
endloop
if udg_CmCounter == 1 then //Satin Alan Devilse
if Ban then
call DevilBan(u)
set u = null
return //Devil hero banladi, actionlari sonlandir.
else
call DevilPick(u)
set u = null
return //Devil bir hero ald_, actionlari sonlandir
endif
elseif udg_CmCounter == 2 then //Satin Alan Reaperse
if Ban then
call ReaperBan(u)
set u = null
return //Reaper hero banladi, actionlari sonlandir.
else
call ReaperPick(u)
set u = null
return //Reaper bir hero ald_, actionlari sonlandir
endif
endif
set u = null
else //Hero satin alinmamis, timer tickler.
if udg_CmCounter == 1 then //Pick - Ban sirasi devildeyse,
if udg_CmDevilTime > 0 then //Devilin suresini kontrol et
set udg_CmDevilTime = udg_CmDevilTime - 1
call MultiboardSetValue(udg_CmBoard, 1, 7, "|c006969FFTime:|r |c007d7d7d"+I2S(udg_CmDevilTime)+"|r")
else //Devilin suresini dolmussa
if udg_CmDevilExtra > 0 then //Devilin extrasini kontrol et
set udg_CmDevilExtra = udg_CmDevilExtra - 1
call MultiboardSetValue(udg_CmBoard, 1, 8, "|c006969FFExtra:|r |c007d7d7d"+I2S(udg_CmDevilExtra)+"|r")
else //Devilin suresi bitmis, random bir hero verin lavuklara
//GET RANDOM HERO
set u = GetRandomHero(Player(DEVIL_HEROES_OWNER))
if Ban then
call DevilBan(u)
return //Devil random bir hero banladi, actionlari sonlandir.
endif
call DevilPick(u)
return //Devil random bir hero ald_, actionlari sonlandir
endif
endif
elseif udg_CmCounter == 2 then //Pick - Ban sirasi reaperde
if udg_CmReaperTime > 0 then //Reaperin suresini kontrol et
set udg_CmReaperTime = udg_CmReaperTime - 1
call MultiboardSetValue(udg_CmBoard, 7, 7, "|c006969FFTime:|r |c007d7d7d"+I2S(udg_CmReaperTime)+"|r")
else // Reaperin suresi dolmussa
if udg_CmReaperExtra > 0 then //Reaperin extrasini kontrol et
set udg_CmReaperExtra = udg_CmReaperExtra - 1
call MultiboardSetValue(udg_CmBoard, 7, 8, "|c006969FFExtra:|r |c007d7d7d"+I2S(udg_CmReaperExtra)+"|r")
else //Reaperin suresi bitmis, random bir hero verin lavuklara
set u = GetRandomHero(Player(REAPER_HEROES_OWNER))
if Ban then
call ReaperBan(u)
return //Reaper random bir hero banladi, actionlari sonlandir.
endif
call ReaperPick(u)
return //Reaper random bir hero ald_, actionlari sonlandir
endif
endif
endif
endif
endfunction
private function StartDeleteHeroes takes nothing returns boolean
local unit u=GetFilterUnit()
local player p=GetOwningPlayer(u)
if IsUnitType(u,UNIT_TYPE_HERO)==true and p!=udg_ClanDevilPlayer and p!=udg_ClanReaperPlayer and p!=Player(PLAYER_NEUTRAL_PASSIVE)and p!=Player(PLAYER_NEUTRAL_AGGRESSIVE)and p!=Player(bj_PLAYER_NEUTRAL_EXTRA)and p!=Player(bj_PLAYER_NEUTRAL_VICTIM)then
call RemoveUnit(u)
endif
set u=null
set p=null
return false
endfunction
private function DisableTriggers takes nothing returns nothing
call DisableTrigger(gg_trg_Table_Setup)
call DisableTrigger(gg_trg_Table_Level_Update)
call DisableTrigger(gg_trg_Table_Level_Update_Once)
call DisableTrigger(gg_trg_Table_Kills_Deaths)
call DisableTrigger(gg_trg_Table_Update_Lumbers)
call DisableTrigger(gg_trg_Normal_Pick)
call DisableTrigger(gg_trg_Ability_Setup_2)
call DisableTrigger(gg_trg_Heroes_Sent)
call DisableTrigger(gg_trg_Command_Random)
call DisableTrigger(gg_trg_Command_SH )
call DisableTrigger(gg_trg_Command_TEST)
call DisableTrigger(gg_trg_Command_PM)
//creepler cm oncesi turn off
//call DisableTrigger( gg_trg_Command_CM_Old )
call DisableTrigger( gg_trg_Command_VS )
//Sonradan acilacak olanlarin listesi
call DisableTrigger(gg_trg_Mekanik_Timer_ve_Ejder) //cmden sonra ac
call DisableTrigger(gg_trg_gametimer) //cmden sonra ac
call DisableTrigger(gg_trg_Her_saniye_gold) //cmden sonra ac
call DisableTrigger(gg_trg_Maden)
call DisableTrigger(gg_trg_Maden_Gold)
endfunction
function GOGOCM takes nothing returns nothing
local integer i = 1
local trigger cm = CreateTrigger()
call DisplayTimedTextToPlayer(GetLocalPlayer(), 0, 0, MODE_STRING_TIME, MODE_STRING)
set udg_CmBoard = CreateMultiboard()
set udg_CmOn = true
call TriggerExecute(gg_trg_CM_yazilirsa)
if GetPlayerSlotState(udg_ClanDevilPlayer) != PLAYER_SLOT_STATE_EMPTY then
set PlayerRedName = GetPlayerName(udg_ClanDevilPlayer)
endif
if GetPlayerSlotState(udg_ClanReaperPlayer) != PLAYER_SLOT_STATE_EMPTY then
set PlayerGreenName = GetPlayerName(udg_ClanReaperPlayer)
endif
call DisableTriggers()
set udg_FirstCreepWaveTime = 120
call TimerDialogDisplay(udg_TankTimerW, false)
call PauseTimer(udg_Tank_TimerSiege)
//Training dummyleri silme
call RemoveUnit( gg_unit_h00X_0002 )
call RemoveUnit( gg_unit_h00X_0061 )
if udg_NewTable != null then
call MultiboardDisplay(udg_NewTable, false)
endif
if udg_MadenWindow[1] != null then
call DestroyTimerDialog(udg_MadenWindow[1])
call PauseTimer(udg_MadenTimer[1])
set udg_MadenTime = 5000.00
set udg_MadenTick[1] = 1
set udg_MadenWindow[1] = null
endif
call MultiboardSetRowCount(udg_CmBoard, 10)
call MultiboardSetColumnCount(udg_CmBoard, 12)
call MultiboardSetTitleText(udg_CmBoard, MULTIBOARD_NAME)
call MultiboardDisplay(udg_CmBoard, true)
call MultiboardSetWidth(udg_CmBoard, 1, 1, 6.00)
call MultiboardSetWidth(udg_CmBoard, 1, 2, 6.00)
call MultiboardSetWidth(udg_CmBoard, 1, 3, 3.00)
//
call MultiboardSetWidth(udg_CmBoard, 7, 1, 6.00)
call MultiboardSetWidth(udg_CmBoard, 7, 2, 6.00)
loop
exitwhen i > 12
call MultiboardSetStyle(udg_CmBoard, i, 1, true, false )
call MultiboardSetStyle(udg_CmBoard, i, 2, true, false )
call MultiboardSetStyle(udg_CmBoard, i, 4, true, false )
call MultiboardSetStyle(udg_CmBoard, i, 6, true, false )
call MultiboardSetStyle(udg_CmBoard, i, 7, true, false )
call MultiboardSetStyle(udg_CmBoard, i, 8, true, false )
call MultiboardSetStyle(udg_CmBoard, i, 9, true, false )
call MultiboardSetStyle(udg_CmBoard, i, 10, true, false )
call MultiboardSetStyle(udg_CmBoard, 1, i, true, false )
call MultiboardSetStyle(udg_CmBoard, 7, i, true, false )
call MultiboardSetWidth(udg_CmBoard, 2, i, 1.20 )
call MultiboardSetWidth(udg_CmBoard, 3, i, 1.20 )
call MultiboardSetWidth(udg_CmBoard, 4, i, 1.20 )
call MultiboardSetWidth(udg_CmBoard, 5, i, 1.20 )
call MultiboardSetWidth(udg_CmBoard, 6, i, 1.20 )
// ORTA
call MultiboardSetWidth(udg_CmBoard, 8, i, 1.20 )
call MultiboardSetWidth(udg_CmBoard, 9, i, 1.20 )
call MultiboardSetWidth(udg_CmBoard, 10, i, 1.20 )
call MultiboardSetWidth(udg_CmBoard, 11, i, 1.20 )
call MultiboardSetWidth(udg_CmBoard, 12, i, 1.20 )
set i = i + 1
endloop
call MultiboardSetValue(udg_CmBoard, 1, 1, udg_PlayerNames[2])
call MultiboardSetValue(udg_CmBoard, 7, 1, udg_PlayerNames[8])
call MultiboardSetWidth(udg_CmBoard, 1, 1, 8.00)
call MultiboardSetWidth(udg_CmBoard, 2, 1, 0.20)
call MultiboardSetWidth(udg_CmBoard, 3, 1, 0.20)
call MultiboardSetWidth(udg_CmBoard, 4, 1, 0.20)
call MultiboardSetWidth(udg_CmBoard, 5, 1, 0.20)
call MultiboardSetWidth(udg_CmBoard, 6, 1, 0.20)
call MultiboardSetWidth(udg_CmBoard, 7, 1, 8.00)
call MultiboardSetWidth(udg_CmBoard, 8, 1, 0.20)
call MultiboardSetWidth(udg_CmBoard, 9, 1, 0.20)
call MultiboardSetWidth(udg_CmBoard, 10, 1, 0.20)
call MultiboardSetWidth(udg_CmBoard, 11, 1, 0.20)
call MultiboardSetWidth(udg_CmBoard, 12, 1, 0.20)
call MultiboardSetValue(udg_CmBoard, 1, 2, " " )
call MultiboardSetValue(udg_CmBoard, 7, 2, " " )
call MultiboardSetValue(udg_CmBoard, 1, 3, "|c006969FF"+BAN_STRING+"|r" )
call MultiboardSetValue(udg_CmBoard, 7, 3, "|c006969FF"+BAN_STRING+"|r" )
call MultiboardSetValue(udg_CmBoard, 1, 4, " " )
call MultiboardSetValue(udg_CmBoard, 7, 4, " " )
call MultiboardSetValue(udg_CmBoard, 1, 5, "|c006969FF"+PICK_STRING+"|r" )
call MultiboardSetValue(udg_CmBoard, 7, 5, "|c006969FF"+PICK_STRING+"|r" )
call MultiboardSetValue(udg_CmBoard, 1, 6, " " )
call MultiboardSetValue(udg_CmBoard, 7, 6, " " )
call MultiboardSetWidth(udg_CmBoard, 1, 7, 5.00)
call MultiboardSetWidth(udg_CmBoard, 7, 7, 5.00)
call MultiboardSetWidth(udg_CmBoard, 1, 8, 5.00)
call MultiboardSetWidth(udg_CmBoard, 7, 8, 5.00)
call MultiboardSetWidth(udg_CmBoard, 2, 7, 0.15)
call MultiboardSetWidth(udg_CmBoard, 2, 8, 0.20)
call MultiboardSetWidth(udg_CmBoard, 3, 8, 0.20)
call MultiboardSetWidth(udg_CmBoard, 4, 8, 0.20)
call MultiboardSetWidth(udg_CmBoard, 5, 8, 2.25)
call MultiboardSetWidth(udg_CmBoard, 3, 7, 0.20)
set udg_CmDevilTime = CHOOSE_TIME
set udg_CmReaperTime = CHOOSE_TIME
set udg_CmDevilExtra = EXTRA_TIME
set udg_CmReaperExtra = EXTRA_TIME
call MultiboardSetValue(udg_CmBoard, 1, 7, "|c006969FFTime:|r |c007d7d7d"+I2S(CHOOSE_TIME)+"|r")
call MultiboardSetValue(udg_CmBoard, 7, 7, "|c006969FFTime:|r |c007d7d7d"+I2S(CHOOSE_TIME)+"|r")
call MultiboardSetValue(udg_CmBoard, 1, 8, "|c006969FFExtra:|r |c007d7d7d"+I2S(EXTRA_TIME)+"|r")
call MultiboardSetValue(udg_CmBoard, 7, 8, "|c006969FFExtra:|r |c007d7d7d"+I2S(EXTRA_TIME)+"|r")
call MultiboardSetValue(udg_CmBoard, 1, 9, " " )
call MultiboardSetValue(udg_CmBoard, 7, 9, " " )
call MultiboardSetWidth(udg_CmBoard, 2, 10, 0.02)
call MultiboardSetWidth(udg_CmBoard, 3, 10, 0.02)
call MultiboardSetWidth(udg_CmBoard, 4, 10, 0.02)
call MultiboardSetWidth(udg_CmBoard, 5, 10, 1.00)
call MultiboardSetWidth(udg_CmBoard, 6, 10, 0.02)
call MultiboardSetWidth(udg_CmBoard, 8, 10, 0.02)
call MultiboardSetWidth(udg_CmBoard, 9, 10, 0.02)
call MultiboardSetWidth(udg_CmBoard, 10, 10, 0.02)
call MultiboardSetWidth(udg_CmBoard, 11, 10, 0.02)
call MultiboardSetWidth(udg_CmBoard, 1, 10, 8.00)
call MultiboardSetWidth(udg_CmBoard, 7, 10, 8.00)
call MultiboardSetValue(udg_CmBoard, 1, 10, "|c006969FFStatus:|r |c007d7d7dWait|r" )
call MultiboardSetValue(udg_CmBoard, 7, 10, "|c006969FFStatus:|r |c007d7d7dWait|r" )
// TEST
set i = 2
loop
exitwhen i > 6
//call MultiboardSetItemIconBJ(udg_CmBoard, i, 3, "UI\\Feedback\\Resources\\ResourceGold.blp" )
//call MultiboardSetItemIconBJ(udg_CmBoard, i, 5, "UI\\Feedback\\Resources\\ResourceGold.blp" )
call MultiboardSetStyle(udg_CmBoard, i, 3, false, false )
call MultiboardSetStyle(udg_CmBoard, i, 5, false, false )
set i = i + 1
endloop
set i = 8
loop
exitwhen i > 12
//call MultiboardSetItemIconBJ(udg_CmBoard, i, 3, "UI\\Feedback\\Resources\\ResourceGold.blp" )
//call MultiboardSetItemIconBJ(udg_CmBoard, i, 5, "UI\\Feedback\\Resources\\ResourceGold.blp" )
call MultiboardSetStyle(udg_CmBoard, i, 3, false, false )
call MultiboardSetStyle(udg_CmBoard, i, 5, false, false )
set i = i + 1
endloop
// TEST
call GroupEnumUnitsInRect(bj_lastCreatedGroup, bj_mapInitialPlayableArea, Condition(function StartDeleteHeroes))
set i = 2
loop
exitwhen i == 12
call SetPlayerStateBJ( Player(i), PLAYER_STATE_RESOURCE_FOOD_USED, 3 )
call SetPlayerStateBJ( Player(i), PLAYER_STATE_RESOURCE_LUMBER, 0 )
call SetPlayerStateBJ( Player(i), PLAYER_STATE_RESOURCE_GOLD, 0 )
set i = i + 1
endloop
call SetPlayerStateBJ( Player(1), PLAYER_STATE_RESOURCE_LUMBER, 1 )
//Mavi ve pembenin goldlari
call SetPlayerStateBJ( Player(1), PLAYER_STATE_RESOURCE_GOLD, 3000 )
call SetPlayerStateBJ( Player(7), PLAYER_STATE_RESOURCE_GOLD, 3000 )
set udg_CmCounter = 1 // 1 == Devil
call CheckTurn()
call MultiboardSetValue(udg_CmBoard, 1, 10, "|c006969FFStatus:|r Active" )
call MultiboardMinimize(udg_CmBoard, true)
call MultiboardMinimize(udg_CmBoard, false)
call TriggerRegisterTimerEvent(cm, 1.00, true)
call TriggerRegisterPlayerUnitEvent(cm, Player(PLAYER_NEUTRAL_PASSIVE), EVENT_PLAYER_UNIT_SELL, null)
call TriggerAddAction(cm, function CmDevilFirstBan)
set udg_CmFloat = CreateTextTagLocBJ("", GetRectCenter(gg_rct_StartCamera), 0.00, 20.00, 100.00, 0, 0, 0)
set udg_CmPlayer2Gold = GetPlayerState(Player(1), PLAYER_STATE_RESOURCE_GOLD)
set udg_CmPlayer8Gold = GetPlayerState(Player(7), PLAYER_STATE_RESOURCE_GOLD)
call SetPlayerStateBJ(Player(1), PLAYER_STATE_RESOURCE_GOLD, 3000)
call SetPlayerStateBJ(Player(7), PLAYER_STATE_RESOURCE_GOLD, 3000)
call SetPlayerName(udg_ClanDevilPlayer, "|CFFFF0303Clan Devil|r")
call SetPlayerName(udg_ClanReaperPlayer, "|CFF20C000Clan Reaper|r")
endfunction
//===========================================================================
private function Init takes nothing returns nothing
set gg_trg_Command_CM = CreateTrigger()
call TriggerRegisterPlayerChatEvent(gg_trg_Command_CM, Player(1), "-cm", true)
call TriggerAddAction(gg_trg_Command_CM, function GOGOCM)
endfunction
endscope