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

[教程] [UP1.5] 学习用实例 - 精细指派(可精确至0.01格)

[复制链接]

183

主题

9

精华

2万

积分

教皇

耕战
3329
鹰币
16751
天龙币
0
回帖
1200

翔鹰建站十周年纪念章

附庸关系3
 楼主| 发表于 2020-5-21 00:37:06 | 显示全部楼层 |阅读模式
本帖最后由 newtonerdai 于 2020-5-21 14:58 编辑

演示gif:


AI文件:(与下面的正文完全一致,可选择其中一种阅读)

注:本per文件为UTF-8编码,可直接用于DE。在旧版里用时,需要自己转码为GBK。



;///////////////////////////////////////////////////////////
;// ------------------- AI演示学习模块 -------------------//
;//      获取闪光位置+精确化+格内微调+【精细指派】     //
;//                                     作者:newtonerdai //
;//                                       www.hawkaoe.net //
;///////////////////////////////////////////////////////////
;
;                         【前言】
;▲模块作用:在【帝国电影/过场】里,让单个人物走到一个非常精确的点
;           (如果暂时将角色体积缩小到0.01以下,甚至可以每次只挪动0.01格)!
;
;在可以用AOKTS的旧版,我们可以使用(【隐形斗篷】-- 任务目标 / 精准0.N指派单位)来达到相同的效果
;然而在当前
无法使用AOKTS的决定版,我们可能无法利用隐形的木桩作为指派目标点。那么这时这个AI就能派上用场了。
;
;▲适用版本:仅适用于支持UP1.5 AI语句的版本。如UP1.5、WK、LK、DE。
;
;▲学习步骤:(请不要被吓到,跟着一步步来,你会学会的,这对于你的UP1.5 AI学习有很大的帮助)
;   准备阶段
;       0. 打开UP作者的脚本说明书如果遇到不懂的语句,可以搜索查看语法说明。
;       1. 把这个AI(包括.ai和.per两个文件)放到游戏根目录的ai文件夹(DE的为 AoE2DE\resources\_common\ai)。
;       2. 新建空白编辑器场景,在编辑器中给任意电脑玩家指定这个AI。
;       3. 在空白地图上,第一个单位先放置该AI的任一普通单位(此时这个单位的地图ID为0)。
;   测点阶段
;       4. 打开per文件。在下面的“参数输入部分 I”里,输入【自定义参数】偏移量,保存。
;       5. 回到编辑器,进入测试,确认已勾选向所有玩家发送信息(右上角聊天菜单)
;       6. 输入数字 2,然后在你想让角色前往的格子里,用 Alt+F 发送一个闪光。
;       7. 记下AI播报的 X、Y 坐标数字
;   指派阶段
;       8. 通过 AOKTS(DE暂不能用) 或 这个贴子(DE版)的方法,获取要指派的角色的地图ID
;       9. 打开per文件。在下面的“参数输入部分 II”里,输入【自定义参数】精确坐标和角色地图ID,保存。
;      10. 回到游戏,重新开始。
;      11. 输入数字 3 ,则角色将往精确化、偏移过的之前的闪光点处行走。
;   学以致用
;      12. 现在你已经学会使用这个系统了,接下来,请参考CPSB.doc或其他AI教程来把这几个系统运用到你的战役过场里吧!

;----------------------------------------------------------
;           第一部分:获取闪光位置+精确化+微调           
;----------------------------------------------------------
(defconst g-flare-x 100)
(defconst g-flare-y 101)
(defconst c-adjust-x 102)
(defconst c-adjust-y 103)

;=========== 参数输入部分 I ===========
(defrule
    (taunt-detected 1 2)
=>
    (set-goal c-adjust-x 50)            ;【自定义参数】50 = 稍后对闪光点进行格内偏移的量(1 = 0.01格)。偏移起始点为格子左角。X方向为↗,Y方向为↘
    (set-goal c-adjust-y 50)            ;【自定义参数】同上。这里两个 50 结果是偏移到格子中央(0.5格)。
    (disable-self)
)
;============= 运行部分 I =============
(defrule
    (taunt-detected 1 2)                            ;玩家1输入数字2后执行一次
    (cc-players-unit-type-count 1 274 > 0)          ;玩家1发送闪光后才会执行
=>
    (up-find-player-flare 1 g-flare-x)              ;获取玩家1的闪光坐标(保留到整格,即闪光格子最左角),这是第一次获取想要前往的格子的,获取到后就可以直接指定这个点了

    (up-modify-goal g-flare-x c:* 100)              ;闪光点升格为精确点
    (up-modify-goal g-flare-y c:* 100)              ;同上
    (up-modify-goal g-flare-x g:+ c-adjust-x)       ;对精确闪光点进行格内偏移
    (up-modify-goal g-flare-y g:+ c-adjust-y)       ;同上

    (up-chat-data-to-all "偏移后精确坐标 X = %d" g: g-flare-x)
    (up-chat-data-to-all "偏移后精确坐标 Y = %d" g: g-flare-y)

    (acknowledge-taunt 1 2)
)

;----------------------------------------------------------
;                    第二部分:精细指派                    
;----------------------------------------------------------

(defconst g-destination-x 110)
(defconst g-destination-y 111)
(defconst unit-mapid 112)

;=========== 参数输入部分 II ===========
(defrule
    (taunt-detected 1 3)
=>
    (up-modify-goal g-destination-x g:= g-flare-x)    ;【自定义参数】把 g:= 替换为 c:= ,然后把 g-flare-x 替换为上面报告出来的精确坐标值,后面即可独立使用
    (up-modify-goal g-destination-y g:= g-flare-y)    ;【自定义参数】同上
    (set-goal unit-mapid 0)          ;【自定义参数】要指派单位的地图ID,可通过 www.hawkaoe.net/bbs/thread-146210-1-1.html 这个贴子的方法来获取
    (disable-self)
)
;============= 运行部分 II =============
(defrule
    (taunt-detected 1 3)                    ;玩家1输入数字3后执行一次。可换成你想要的其他事实,比如 AI触发器/事件 event-detected
=>
    (up-full-reset-search)                  ;每次使用DUC前完全重置一次
    (up-add-object-by-id 1 g: unit-mapid)   ;把unit-mapid对应的单位加入到本地搜索结果里。

    (set-strategic-number sn-target-point-adjustment 6) ;【核心语句】设置up-target-point为精确指派模式,允许使用精确点
    (up-target-point g-destination-x 1 -1 -1)           ; 指派 unit-mapid 对应的单位 [移动(1)] 到 g-destination-x 点处

    (up-full-reset-search)                  ;每次使用DUC后完全重置一次
    (acknowledge-taunt 1 3)
)

本帖子中包含更多资源

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

x
索引:
Userpatch 实用技术贴索引←点击进入
决定版精品贴大索引←点击进入

战役:
《 兔与豹》——柔弱奴隶公主  猛兽口中求生←点击进入
《敛由国的统一》←点击进入

殊途战役制作群 QQ: 616317226
翔鹰帝国Ⅱ:决定版交流群 QQ: 112822759
回复

使用道具 举报

15

主题

0

精华

1033

积分

伯爵

耕战
175
鹰币
580
天龙币
0
回帖
188
附庸关系0
发表于 2020-5-21 01:55:00 | 显示全部楼层
LK版能拿来做AI么,征服者旧版本引擎,AI只能使用900以下的单位编号,还能塞的下新4民族?
回复

使用道具 举报

183

主题

9

精华

2万

积分

教皇

耕战
3329
鹰币
16751
天龙币
0
回帖
1200

翔鹰建站十周年纪念章

附庸关系3
 楼主| 发表于 2020-5-21 13:42:18 | 显示全部楼层
blazefires 发表于 2020-5-21 01:55
LK版能拿来做AI么,征服者旧版本引擎,AI只能使用900以下的单位编号,还能塞的下新4民族? ...

哦,我说的是赤那做的LK,使用的是UP1.5内核。
索引:
Userpatch 实用技术贴索引←点击进入
决定版精品贴大索引←点击进入

战役:
《 兔与豹》——柔弱奴隶公主  猛兽口中求生←点击进入
《敛由国的统一》←点击进入

殊途战役制作群 QQ: 616317226
翔鹰帝国Ⅱ:决定版交流群 QQ: 112822759
回复

使用道具 举报

417

主题

19

精华

8万

积分

教皇

耕战
13421
鹰币
41665
天龙币
18
回帖
6021

特级嘉禾勋章三级帝国勋章十字军勋章翔鹰建站十周年纪念章

附庸关系0
发表于 2020-5-21 14:16:34 本帖来自手机 | 显示全部楼层
blazefires 发表于 2020-5-21 01:55
LK版能拿来做AI么,征服者旧版本引擎,AI只能使用900以下的单位编号,还能塞的下新4民族? ...

那已经不是原来的征服者程序而是1.5了,不然多文明也做不出来。单位id可用范围是0-899和1000-1959
回复

使用道具 举报

本版积分规则

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

GMT+8, 2024-11-21 20:50 , Processed in 0.178137 second(s), 56 queries , File On.

Powered by Hawk Studio  QS Security Corp.® Licensed

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

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