Skip to content

🎮 坐标运用 — 演示图实战

演示图:坐标运用.w3x

触发器数:12

📁 本地路径:F:\AI\AI-machine\W3演示图\

📑 触发器目录

  • 1
  • 坐标冲锋
  • 坐标冲锋-判断地形
  • 如果要测试 判断地形,请把“坐标冲锋”关闭
  • 在‘触发器注释’上方可开启关闭
  • 坐标的好处

  • 坐标计算 xy1 到 xy2 的距离、角度
  • 坐标计算 xy1 到 xy2 的距离、角度 简洁

  • 坐标画圆-1
  • 坐标画圆-2

📜 触发器代码

1

text
触发器: 1 (初始化) [✓] — 











    不再使用的‘触发’建议删除。
───────────────────────────────────────────────────────
事件
  └─ 注册计时器单次事件(0.00)
条件
  └─ 无
动作
  ├─ 战争迷雾开关: EnabledDisabledDisabled
  ├─ 迷雾遮罩开关: EnabledDisabledDisabled
  ├─ 为 Player00 选择 gg_unit_Udre_0000
  ├─ SetCameraField: CameraFieldTargetDistance, 2800.00, 0
  └─ 销毁触发器(自身)

坐标冲锋

text
触发器: 坐标冲锋 (剧情/任务) [✓]
───────────────────────────────────────────────────────
事件
  └─ 任意单位 - PlayerUnitEventSpellEffect
条件
  └─ 技能ID比较(施法技能ID(), OperatorEqualENE, A000)
动作
  ├─ 设置局部变量:"dw"=触发单位()
  ├─ 设置局部变量:"x"=单位X坐标(读取局部变量("dw"))
  ├─ 设置局部变量:"y"=单位Y坐标(读取局部变量("dw"))
  ├─ ── ---- ──
  ├─ ── 这里的角度计算 = 触发单位的位置 到 技能释放点 的角度 ──
  ├─ ── 我偷懒就不记录  技能释放点的xy坐标  了,毕竟后面根本用不到 ──
  ├─ 设置局部变量:"jd"=Atan2BJ((GetSpellTargetY() - 读取局部变量("y")), (GetSpellTargetX() - 读取局部变量("x")))
  ├─ ── 但是要注意,技能施法结束,就无法获取到技能释放点xy,所以要在结束前使用 ──
  ├─ ── ---- ──
  ├─ ── 创建一个空单位组,避免敌人被多次伤害 ──
  ├─ 设置局部变量:"dwz"=CreateGroup()
  ├─ ── 创建一个单位(马甲)来进行冲锋位移,因为是创建马甲位移,无需设置创建某某玩家的马甲,直接用玩家1就好,省事 ──
  ├─ 设置局部变量:"mj"=创建单位(指定坐标)(Player00, e000, 读取局部变量("x"), 读取局部变量("y"), 读取局部变量("jd"))
  ├─ YDWETimerRemoveUnit: 1.00, 读取局部变量("mj")
  ├─ ── 0.05秒进行一次位移,持续1秒,想位移多长距离自己设置 ──
  └─ 启动计时器: 创建计时器(), 0.05s (循环)

坐标冲锋-判断地形

text
触发器: 坐标冲锋-判断地形 (剧情/任务) [✓]
───────────────────────────────────────────────────────
事件
  └─ 任意单位 - PlayerUnitEventSpellEffect
条件
  └─ 技能ID比较(施法技能ID(), OperatorEqualENE, A000)
动作
  ├─ 设置局部变量:"dw"=触发单位()
  ├─ 设置局部变量:"x"=单位X坐标(读取局部变量("dw"))
  ├─ 设置局部变量:"y"=单位Y坐标(读取局部变量("dw"))
  ├─ 设置局部变量:"jd"=Atan2BJ((GetSpellTargetY() - 读取局部变量("y")), (GetSpellTargetX() - 读取局部变量("x")))
  ├─ 设置局部变量:"dwz"=CreateGroup()
  ├─ 设置局部变量:"mj"=创建单位(指定坐标)(Player00, e000, 读取局部变量("x"), 读取局部变量("y"), 读取局部变量("jd"))
  ├─ YDWETimerRemoveUnit: 1.00, 读取局部变量("mj")
  └─ 启动计时器: 创建计时器(), 0.05s (循环)

如果要测试 判断地形,请把“坐标冲锋”关闭

text
触发器: 如果要测试 判断地形,请把“坐标冲锋”关闭 (剧情/任务) [注释] [✓]
───────────────────────────────────────────────────────
事件
  └─ (无)
条件
  └─ 无
动作
  └─ (无)

在‘触发器注释’上方可开启关闭

text
触发器: 在‘触发器注释’上方可开启关闭 (剧情/任务) [注释] [✓]
───────────────────────────────────────────────────────
事件
  └─ (无)
条件
  └─ 无
动作
  └─ (无)

坐标的好处

text
触发器: 坐标的好处 (技能/物品) [注释] [✓]
───────────────────────────────────────────────────────
事件
  └─ (无)
条件
  └─ 无
动作
  └─ (无)

-----------

text
触发器: ----------- (技能/物品) [注释] [✓]
───────────────────────────────────────────────────────
事件
  └─ (无)
条件
  └─ 无
动作
  └─ (无)

坐标计算 xy1 到 xy2 的距离、角度

text
触发器: 坐标计算 xy1 到 xy2 的距离、角度 (技能/物品) [✗] —  



   同‘点1’到‘点2’的距离



   同‘点1’到‘点2’的角度





关于‘反正切’请 → https://baike.so.com/doc/6497204-6710919.html



‘次幂’ 同 ‘次方’,只是叫法不同。

这就是所谓在触发中进行‘次方’计算的操作了
───────────────────────────────────────────────────────
事件
  └─ 任意单位 - PlayerUnitEventSpellEffect
条件
  └─ 技能ID比较(施法技能ID(), OperatorEqualENE, A001)
动作
  ├─ 设置局部变量:"x"=单位X坐标(触发单位())
  ├─ 设置局部变量:"y"=单位Y坐标(触发单位())
  ├─ 设置局部变量:"x2"=GetSpellTargetX()
  ├─ 设置局部变量:"y2"=GetSpellTargetY()
  ├─ ── 同‘点1’到‘点2’的角度 ──
  ├─ ── 这里的‘数学 - 反正切 Y:X’,我也不知道该怎么解释,如果你能明白那最好,不能就‘死记硬背’ ──
  ├─ ── 死记硬背逻辑   (技能y坐标 - 单位y坐标) : (技能x坐标 - 单位x坐标) ──
  ├─ 设置局部变量:"jd"=Atan2BJ((读取局部变量("y2") - 读取局部变量("y")), (读取局部变量("x2") - 读取局部变量("x")))
  ├─ ──   ──
  ├─ ── 同‘点1’到‘点2’的距离 ──
  ├─ ── 逻辑:设坐标1为 x1,y1 、 坐标2为 x2,y2。 ──
  ├─ ──  则两坐标之间距离 = ( (x1-x2)2次方 + (y1-y2)2次方 )的平方根 ──
  ├─ ── ‘次幂’ 同 ‘次方’,只是叫法不同。 ──
  ├─ 设置局部变量:"jl"=平方根((Pow((读取局部变量("x") - 读取局部变量("x2")), 2.00) + Pow((读取局部变量("y") - 读取局部变量("y2")), 2.00)))
  ├─ YDWETimerPatternRushSlide: 触发单位(), 读取局部变量("jd"), 读取局部变量("jl"), 0.50, 0.01, 0, false, false, false, "origin", , 
  └─ 显示文本→Player00: 0

坐标计算 xy1 到 xy2 的距离、角度 简洁

text
触发器: 坐标计算 xy1 到 xy2 的距离、角度 简洁 (技能/物品) [✓] —  


───────────────────────────────────────────────────────
事件
  └─ 任意单位 - PlayerUnitEventSpellEffect
条件
  └─ 技能ID比较(施法技能ID(), OperatorEqualENE, A001)
动作
  ├─ 设置局部变量:"x"=单位X坐标(触发单位())
  ├─ 设置局部变量:"y"=单位Y坐标(触发单位())
  ├─ 设置局部变量:"x2"=GetSpellTargetX()
  ├─ 设置局部变量:"y2"=GetSpellTargetY()
  ├─ 设置局部变量:"jd"=Atan2BJ((读取局部变量("y2") - 读取局部变量("y")), (读取局部变量("x2") - 读取局部变量("x")))
  ├─ 设置局部变量:"jl"=平方根((Pow((读取局部变量("x") - 读取局部变量("x2")), 2.00) + Pow((读取局部变量("y") - 读取局部变量("y2")), 2.00)))
  ├─ YDWETimerPatternRushSlide: 触发单位(), 读取局部变量("jd"), 读取局部变量("jl"), 0.50, 0.01, 0, false, false, false, "origin", , 
  └─ 显示文本→Player00: 0

-----------

text
触发器: ----------- (技能/物品) [注释] [✓]
───────────────────────────────────────────────────────
事件
  └─ (无)
条件
  └─ 无
动作
  └─ (无)

坐标画圆-1

text
触发器: 坐标画圆-1 (技能/物品) [✓] — 













   ‘坐标画圆’同‘坐标冲锋’,只是把角度变换而已
───────────────────────────────────────────────────────
事件
  └─ 任意单位 - PlayerUnitEventSpellEffect
条件
  └─ 技能ID比较(施法技能ID(), OperatorEqualENE, A002)
动作
  ├─ 设置局部变量:"x"=单位X坐标(触发单位())
  ├─ 设置局部变量:"y"=单位Y坐标(触发单位())
  ├─ YDWEForLoopLocVarMultiple: "q", 1, 10
  └─ YDWEEnumUnitsInRangeMultiple: 读取局部变量("x"), 读取局部变量("y"), 600.00

坐标画圆-2

text
触发器: 坐标画圆-2 (技能/物品) [✓] — 













   ‘坐标画圆’同‘坐标冲锋’,只是把角度变换而已
───────────────────────────────────────────────────────
事件
  └─ 任意单位 - PlayerUnitEventSpellEffect
条件
  └─ 技能ID比较(施法技能ID(), OperatorEqualENE, A003)
动作
  ├─ 设置局部变量:"x"=单位X坐标(触发单位())
  ├─ 设置局部变量:"y"=单位Y坐标(触发单位())
  ├─ YDWEForLoopLocVarMultiple: "w", 1, 5
  └─ YDWEEnumUnitsInRangeMultiple: 读取局部变量("x"), 读取局部变量("y"), 1500.00

内容由多智能体 AI 系统自动生成,仅供学习参考