收起左侧

[求助] 有没有大佬知道godpowertechID的调用名呢?

[复制链接]
carote发表于 2020-6-27 13:32:56
aiCastGodPowerAtPosition( int godPowerTechID, vector pos): Casts the given God power tech, at the specified position. 
这是代码对应的描述,我想知道godPowerTechID的命名格式。
こはね发表于 2020-6-27 21:31:27
看上去是神话时代用来释放技能的命令,理论上这个AI命令已经不能使用,因为我尝试过帝国3的techtreey.xml调用神话时代的科技type="power"类型,结果直接初始化失败。
  • carote : 是的,我想在AI里让日本和尚使用烟雾等技能。虽然在power和ability中找到了技能的名字,但是在AI里不知道调用名怎么写。试了很多写法,比如cpowerpowerypsmokebomb等等,都是有错误。原来是不能用么。------ 谢谢你给我解答哈、
  • こはね 回复 carote : 你不如参考下探险家的秒枪技能,就是一枪秒宝藏守护者那个
  • carote 回复 こはね : 我找了下AI,里面没有关于POWER或者Ability的代码。可能跟游戏代码一样被编译了。
  • こはね 回复 carote : 我刚才找了一下,也是没找到,要不你试一下aiTaskUnitSpecialPower(int unitID, int powerID, vector position ): Does a lightweight (no plan)research tasking of the given unit for the given special power. ;
  • carote 回复 こはね : powerID的格式不知道是什么,这个是最困扰我的问题。
  • こはね 回复 carote : powers.xml,第一个技能ID为0,第二个技能ID为1以此类推,第二十个技能ID为21.
  • carote 回复 こはね : 我用日本跟葡萄牙试了一下,虽然没有报错,但是不知道为什么没起作用。最开始我对照powers.xml找日本和尚烟雾技能序号为48,但是测试无效。于是我用循环从0测试到50还是无效。
  • carote 回复 こはね : aiTaskUnitSpecialPower(getUnit(cUnitTypeypMonkJapanese, cMyID), i, CastTargetVec) i为从0到50的整数。CastTargetVec为和尚的位置
  • こはね 回复 carote : 就怕这个UnitID是一个单位算一个,开局第一个为0,第二个为1,出现单位死亡后打乱,最后会变成26W ,地图获取unitID很简单,但是AI我就不清楚了
  • carote 回复 こはね : UnitID也是不变的。也许跟power有关的命令没法生效。
こはね发表于 2020-6-29 13:13:23
UnittypeID跟UnitID不一样,比如现有的95%的外挂就是滥用UnitID,有专门的UI可以显示UnitID,我制作一部分触发程序都需要用上UnitID


这个在AI文件又找到相关的例子,不过我没看懂怎样使用。
kbUnitQueryGetResult( long queryID, int index ): Returns the UnitID of the index-th result in the current query.

看上去是将地图生成的areaID转化成UnitID
kbAreaGetUnitID( int areaID, long index ): Returns the Unit ID of the index-th unit in the given area.

kbGetBlockID可以将剧情名转化成UnitID
kbGetBlockID( string blockName ): Returns the UnitID of the cinematic block.

跳转到