翔鹰帝国网|帝国时代论坛|帝国时代系列|神话时代
 找回密码
 注册翔鹰会员(昵称)
搜索
查看: 1166|回复: 3

[求助] 制作夺城系统遇到一些问题

[复制链接]

18

主题

0

精华

327

积分

子爵

耕战
30
鹰币
229
天龙币
0
回帖
47
附庸关系0
发表于 2017-2-12 03:35:57 | 显示全部楼层 |阅读模式
大家好,我正在制作一种夺城系统。其原理大概是用AI判定城堡血量小于x,通过资源法联动触发将城堡划归中立玩家名下;同时触发城堡回血;再次通过AI判定城堡血量大于等于x,通过资源法联动触发,停止城堡自动回血;同时激活判定触发,根据与城堡位置大体相同一绵羊之归属判定城堡归哪一玩家。AI写法大体如下所示:
  1. (defconst Object-data-hitpoints 10)
  2. (defconst ziyuan 1)
  3. (defconst BCHP 2)

  4. (defrule
  5. (true)
  6. =>
  7. (set-goal 12 0)
  8. (disable-self)
  9. )

  10. ;不动AI
  11. (defrule
  12. (true)
  13. =>
  14. (set-strategic-number sn-maximum-food-drop-distance 0)
  15. (set-strategic-number sn-maximum-wood-drop-distance 0)
  16. (set-strategic-number sn-maximum-gold-drop-distance 0)
  17. (set-strategic-number sn-maximum-stone-drop-distance 0)
  18. (set-strategic-number sn-percent-civilian-gatherers 0)
  19. (set-strategic-number sn-percent-civilian-builders 0)
  20. (set-strategic-number sn-percent-civilian-explorers 0)
  21. (set-strategic-number sn-maximum-hunt-drop-distance 0)
  22. (set-strategic-number sn-maximum-fish-boat-drop-distance 0)
  23. (set-strategic-number sn-task-ungrouped-soldiers 0)
  24. (set-strategic-number sn-total-number-explorers 0)
  25. (disable-self)
  26. )

  27. ;定义id为1的城堡(B城堡)血量用变量BCHP存储
  28. (defrule
  29. (true)
  30. =>
  31. (up-set-target-by-id c: 1)
  32. (up-get-object-data Object-data-hitpoints BCHP)
  33. )

  34. ;用56号隐藏资源来进贡,联动AI与触发
  35. (defrule
  36. (true)
  37. =>
  38. (up-get-fact 34 56 ziyuan)
  39. )

  40. ;当B城堡血量被削至960以下,获得56号资源1个单位
  41. (defrule
  42. (goal 12 0)
  43. (up-compare-goal BCHP < 960)
  44. (up-compare-goal ziyuan == 0)
  45. =>
  46. (chat-to-all "B城堡中立。" )
  47. (cc-add-resource 56 1)
  48. (set-goal 12 1)
  49. )

  50. ;当B城堡血量恢复至960以上,获得56号资源2个单位
  51. (defrule
  52. (goal 12 1)
  53. (up-compare-goal BCHP >= 960)
  54. (up-compare-goal ziyuan == 0)
  55. =>
  56. (chat-to-all "B城堡占领。" )
  57. (cc-add-resource 56 2)
  58. (set-goal 12 0)
  59. )
复制代码
各位可以下载附件《夺城系统2》与《血量检测-副本》感受一下。之前我也做了一个练习战役《浮士德征服乌托邦》。经过测试我认为这个系统大概是没有问题的(就是绵羊有点丑)。

不过,在附件《夺城系统》与《血量检测》中,我测试时发生了许多故障。id为0的城堡通过id为407的绵羊进行判定。把血量削至960以下,城堡中立。当电脑玩家2拥有绵羊,血量恢复至960时玩家2夺回城堡。奇怪的是,如果我(玩家1)拥有绵羊,AI貌似无法判定血量恢复至960,中立玩家4继续拥有城堡,而城堡回血不断。

我已经反复检查过很多次。我平时喜欢用AOKTS1.2进行战役编辑和修改。《夺城系统》中贡品类型、改权触发什么的似乎都没问题。用1.0打开之后,发现清空贡品的效果中贡品类型竟然还是黄金(应该改成56号);此外,玩家1、3的改权触发中不知为何也没有设置改权对象为何。但当我全部改回原样,发现还是会犯老毛病。最后,我用1.2编辑的《夺城系统2》,用1.0却打不开。

疑问颇多。我之前做浮士德的战役时使用的方法与现在一样,结果却不同,不知是否与userpatch1.4更新到1.5的变化有关。有请各位多多指教!












本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册翔鹰会员(昵称)

x
回复

使用道具 举报

24

主题

0

精华

1824

积分

侯爵

耕战
71
鹰币
1
天龙币
0
回帖
665

十字军勋章

附庸关系0
发表于 2017-2-16 21:41:09 | 显示全部楼层
一直很好奇 AI返回至触发检测到 应该是有那么几秒延迟的

点评

没记错计时器2吧好像  发表于 2017-2-16 23:38
...
回复

使用道具 举报

18

主题

0

精华

327

积分

子爵

耕战
30
鹰币
229
天龙币
0
回帖
47
附庸关系0
 楼主| 发表于 2017-2-17 17:46:07 | 显示全部楼层
lingfeng 发表于 2017-2-16 21:41
一直很好奇 AI返回至触发检测到 应该是有那么几秒延迟的

延迟是有的,但应该没那么慢,当我这个系统成功运转的时候,延迟大概是1秒的样子(血量到达961时才停止恢复生命值)。
回复

使用道具 举报

本版积分规则

排行榜|小黑屋|翔鹰帝国

GMT+8, 2024-11-22 06:05 , Processed in 0.115360 second(s), 48 queries , File On.

Powered by Hawk Studio  QS Security Corp.® Licensed

Copyright © 2001-2023, Hawkaoe.net All Rights Reserved

快速回复 返回顶部 返回列表