Переданные данные используются в каждой карте по разному и в принципе не должны иметь одинаковые значения для разных карт. Предполагается что карты будут использовать HCL систему чтобы позволить боту устанавливать моды или другую "стартовую" информацию которая не должна указываться игроками. К примеру при автоматическом создании DotA игр желательно чтобы мод был установлен на боте а не указывался игроками.
HCL система работает посредством информации хандикапа игрока таким образом что после загрузки карты они восстанавливаются. Это означает что если вы попробуете установить HCL командную строку на карте не поддерживающей стандарт, бот радикально изменит хандикапы игроков. В любом случае карта не поддерживающая стандарт не восстановит оригинальные хандикапы и игра будет испорчена. Поэтому даже не пытайтесь установить HCL командную строку на карте которая не поддерживает HCL стандарт.
это процент форы для игрока - количество жизней воинов например, попробуй на карте поставить 2-х одинаковых героев для 2-х игроков и для одного игрока поставить гандикап на 1000 и увидишь что это такое
Код с какого-то буржуйского сайта:
Code
library HCL initializer init
globals
private string command = ""
endglobals
public function GetCommandString takes nothing returns string
return command
endfunction
private function init takes nothing returns nothing
local integer i
local integer j
local integer h
local integer v
local string chars = "abcdefghijklmnopqrstuvwxyz0123456789 -=,."
local integer array map
local boolean array blocked
//precompute mapping [have to avoid invalid and normal handicaps]
set blocked[0] = true
set blocked[50] = true
set blocked[60] = true
set blocked[70] = true
set blocked[80] = true
set blocked[90] = true
set blocked[100] = true
set i = 0
set j = 0
loop
if blocked[j] then
set j = j + 1
endif
exitwhen j >= 256
set map[j] = i
set i = i + 1
set j = j + 1
endloop
//Extract command string from player handicaps
set i = 0
loop
exitwhen i >= 12
set h = R2I(100*GetPlayerHandicap(Player(i)) + 0.5)
if not blocked[h] then
set h = map[h]
set v = h/6
set h = h-v*6
call SetPlayerHandicap(Player(i), 0.5 + h/10.0)
set command = command + SubString(chars, v, v+1)
endif
set i = i + 1
endloop
endfunction
endlibrary
Эту штуку вообще реально добавить в карту? Уже час сижу гуглю и ничего толкового не нашел, лишь какой-то код...