求助:关于dota AI的红杖释放的问题。
魔兽地图编辑器吧
全部回复
仅看楼主
level 3
txqqyy 楼主
JUG函数是dota ai中红杖释放相关的函数,骨法(H00H)的红杖用该函数控制。想移植给地精修补匠(Ntin),为何不成功?
以下是JUG函数
function JUG takes unit j5, unit m5 returns boolean //JUG函数控制红杖的释放
local integer I8 = 0
local item ja
local boolean jR = false
loop
set ja = UnitItemInSlot( j5, I8 )
if ( ( ja != null )and( GJ8( GetItemTypeId( ja ) ) ) ) then //GJ8函数是用来识别红杖的
set jR = UnitUseItemTarget( j5, ja, m5 )
set I8 = bj_MAX_INVENTORY
endif
set I8 = I8 + 1
exitwhen I8 >= bj_MAX_INVENTORY
endloop
set ja = null
return jR
endfunction
以下是G78函数
function GJ8 takes integer Iz returns boolean
return ( ( Iz == BU[ dagongzhishenli ] )or( Iz == BU[ dagongzhishenli2 ] )or( Iz == BU[ dagongzhishenli3 ] )or( Iz == BU[ dagongzhishenli4 ] )or( Iz == BU[ dagongzhishenli5 ] ) )
endfunction
2014年09月08日 06点09分 1
level 3
txqqyy 楼主
骨法使用该函数的原始代码
elseif ( id == *H00H* ) then
if ( h4[ 16 + O5 ] != null ) then //尝试过将h4[ 16 + O5 ]统一替换为X77 不影响红杖的释放。
if ( ( Z_7( h4[ 16 + O5 ] ) )and( GetUnitAbilityLevel( h4[ 16 + O5 ], *B01N* ) > 0 ) ) then //B01N 不知为何物,貌似不是某个特定英雄的技能
set J4 = ( JUG( AM7, h4[ 16 + O5 ] ) )or( IssueTargetOrderById( AM7, 852089, h4[ 16 + O5 ] ) )
call JLG( AM7, h4[ 16 + O5 ] )
else
set h4[ 16 + O5 ] = null //这句没作更改
endif
移植地精代码
elseif ( id == *Ntin* ) then
if ( h4[ 16 + O5 ] != null ) then
if ( ( Z_7( h4[ 16 + O5 ] ) )and( GetUnitAbilityLevel( h4[ 16 + O5 ], *B01N* ) > 0 ) ) then //
set J4 = ( JUG( AM7, h4[ 16 + O5 ] ) )or( IssueTargetOrderById( AM7, 852089, h4[ 16 + O5 ] ) )
call JLG( AM7, h4[ 16 + O5 ] )
call BJDebugMsg("hongzhangceshi") //加入测试代码,验证判定是否生效
else
set h4[ 16 + O5 ] = null
endif
call SetPlayerAbilityAvailable( pl, *A05E*, ( GetHeroLevel( AM7 ) > 4 )and( GetUnitManaPercent( AM7 ) > 60. )and( ( X77 != null )or( AN7( 1500., b5, Condition( function k6 ) ) > 0 ) ) )
将代码插入到elseif与 call之间。试过不论是用h4[ 16 + O5 ]还是用X77,地精均不会释放红杖。测试时却能显示hongzhangceshi
甚至将JUG( AM7, h4[ 16 + O5 ] ) 直接改为UnitUseItemTarget( AM7, AV7( AM7, BU[ dagongzhishenli5 ] ), X77 ),地精拥有5级红杖下,同样无法释放5级红杖。
2014年09月08日 06点09分 3
level 6
5级红帐代码对?
2014年09月08日 07点09分 4
代码没错。BU[ dagongzhishenli5 ],这个版本是dotaai吧里jiayushen1的置顶贴里的图。
2014年09月08日 07点09分
什么玩意贴吧 没听说过 自己把每个变量都debug出来看看不就知道了
2014年09月08日 07点09分
回复 jass高手 :用哪个神奇?War3JassDebug不知道为什么,用不了。
2014年09月08日 07点09分
用txt都行
2014年09月08日 07点09分
level 3
txqqyy 楼主
会的童鞋还请指导一下啦~~~
2014年09月10日 02点09分 5
level 11
那么长没人看的。
2014年09月10日 02点09分 6
但这个真短不了,挑重点看吧~~
2014年09月10日 02点09分
level 3
txqqyy 楼主
高手请不吝赐教啊。
2014年09月12日 13点09分 7
level 3
txqqyy 楼主
会的麻烦指导一下
2014年09月17日 06点09分 8
1