|
Dota 6.63里面提到了新增HLC系统,究竟是什么?翻看了一下代码,实在是囧:
[codes=jass]
//HLC主函数
function OBI takes nothing returns nothing
local integer i
local integer j
local integer h
local integer v
local string OCI="abcdefghijklmnopqrstuvwxyz0123456789 -=;."
local integer array ODI
local boolean array OEI
set OEI[0]=true
set OEI[50]=true
set OEI[60]=true
set OEI[70]=true
set OEI[80]=true
set OEI[90]=true
set OEI[100]=true
set i=0
set j=0
loop
if OEI[j]then
set j=j+1
endif
exitwhen j>=256
set ODI[j]=i
set i=i+1
set j=j+1
endloop
set i=0
loop
exitwhen i>=12
set h=R2I(100*GetPlayerHandicap(Player(i)))
if not OEI[h]then
set h=ODI[h]
set v=h/ 6
set h=h-v*6
call SetPlayerHandicap(Player(i),1)
set DY=DY+SubString(OCI,v,v+1)
endif
set i=i+1
endloop
endfunction
//游戏开始后0.01秒自动执行,O2O为游戏命令处理函数
function ACO takes nothing returns boolean
if(DY)!="" then
call O2O("-"+(DY),2)
endif
return false
endfunction
[/codes]
利用了“玩家障碍”这个自定义地图基本不会使用的数值(一字节?)。
比如需要使用-ap指令,服务器可修改玩家1障碍为7,玩家2障碍为103即可。
game.dll没提供asc,chr之类的api真是麻烦。 |
|