找回密码
 点一下
查看: 1929|回复: 17

【求助】前段时间讨论的击退问题

  [复制链接]
发表于 2008-3-24 20:20:18 | 显示全部楼层 |阅读模式
RT~我怎么找不到了?

就是击退单位后遇到障碍物、地形或者地图边界,单位就停止后退~的那个贴!我翻了半天,找不到了!

上次的问题是怎么解决的?我还没有受教。

我认为这个问题是个问题~是个WE界值得深究的学术问题~~

大家再来讨论讨论吧~~
 楼主| 发表于 2008-3-24 20:20:51 | 显示全部楼层
是什么 判断条件 然后停止移动单位呢??
回复

使用道具 举报

发表于 2008-3-24 21:08:30 | 显示全部楼层
Events
  Time - Every 0.05 seconds of game time
 Conditions
 Actions
   -------- 计次变数加一 --------
  Set index = (index + 1)
   -------- 以下移动目标 --------
   -------- 先尝试移动目标,如果遇到障碍物,目标移动後的点(P3)会和想移动的点(P2)距离过远 --------
   -------- P1=原位置 --------
   -------- P2=预定移动位置 --------
   -------- P3=移动後的位置 --------
  Set P1 = (Position of target)
  Set P2 = (P1 offset by 50.00 towards angle degrees)
  Unit - Move target instantly to P2, facing (Facing of target) degrees
  Set P3 = (Position of target)
  If (All Conditions are True) then do (Then Actions) else do (Else Actions)
   If - Conditions
    (Distance between P2 and P3) Less than 5.00
   Then - Actions
   Else - Actions
    -------- 目标移动後的点(P3)会和想移动的点(P2)距离过远,表示遇到障碍物。此时移回单位并关闭触发 --------
    Unit - Move target instantly to P1
    Trigger - Turn off (This trigger)
  If (All Conditions are True) then do (Then Actions) else do (Else Actions)
   If - Conditions
    index Greater than or equal to 20
   Then - Actions
    -------- 计次器大於一定值,表示已经被击退够远了,关闭触发(停止击退效果) --------
    Trigger - Turn off (This trigger)
   Else - Actions

某个WE教程里的
回复

使用道具 举报

发表于 2008-3-24 21:09:48 | 显示全部楼层
1.GIF 判断该点的行走能力是关闭的。
回复

使用道具 举报

 楼主| 发表于 2008-3-24 21:23:24 | 显示全部楼层
哈~~感谢2楼兄弟提供思路~~我下去尝试一下~~

三楼的是判断目标点所处地形是否可通行吧~~略微有点思路了~~

感谢LS两位
回复

使用道具 举报

发表于 2008-3-24 22:42:12 | 显示全部楼层
if not ( IsTerrainPathable(x,y, PATHING_TYPE_WALKABILITY)  ) then
donothing
endif
回复

使用道具 举报

发表于 2008-3-24 22:56:53 | 显示全部楼层
二楼言之有理,应该在每次timer发动之前 做个判断,欲移动的点是否是可行的,同时200范围内是否有单位存在,该单位是否存活,该单位是否有蜂群技能,同时该单位是不是可破坏物,移动的方向和单位所在方向的弧度是否小于某一个数值
回复

使用道具 举报

发表于 2008-3-25 00:22:55 | 显示全部楼层
其实要把2,3楼的综合起来就行
只用2楼的,那么可能会从悬崖边下移动到上面
而3楼的条件,对于树,单位的存在判断不了。
至于楼上的,就太复杂了,不说别的,就判断周围200范围内有无敌人这点就不行,因为要考虑的是自己本身和邻近的人的距离以及碰撞体积,不可能完全断定是200
回复

使用道具 举报

发表于 2008-3-25 07:56:27 | 显示全部楼层
其实140的距离就够了,利用getfilterunit()能够做到这一点,就跟月神箭一样   精度上差一些,视觉上问题不大
回复

使用道具 举报

 楼主| 发表于 2008-3-25 18:14:34 | 显示全部楼层
哪个哥们儿帮我做个演示出来好么?
最好是T版的~~

我还吗搞定这个问题~~单位退了以后停止是能停止不过会偏移轨迹。还有就是在边界仍然会出错~~
回复

使用道具 举报

发表于 2008-3-25 18:49:55 | 显示全部楼层
以前下载的
看一下吧
不过  没有那种沙尘效果

20080205—3击退.w3x

20 KB, 下载次数: 47

回复

使用道具 举报

 楼主| 发表于 2008-3-25 19:14:06 | 显示全部楼层
谢谢~~我先看看~~
回复

使用道具 举报

发表于 2008-3-25 21:10:58 | 显示全部楼层
不是说了吗,用这个函数
IsTerrainPathable(x,y, PATHING_TYPE_WALKABILITY)  
至于这个函数的T在哪儿我找不到了- -

if( not ( IsTerrainPathable(x,y, PATHING_TYPE_WALKABILITY)  ) )then
上面是判断坐标XY是否能让普通步行单位通过,如果路径是可以走的则在这里插入要执行的T
else
如果该坐标是步行单位无法通行的路径,则会到else
endif  //固定格式


也可以不用坐标的,用点的,用法如图
T2.jpg
回复

使用道具 举报

发表于 2008-3-25 21:28:43 | 显示全部楼层
貌似也有人提到过了,这样无法判断所在点是否有单位或者可破坏物的,所以这么做并不是完美的
回复

使用道具 举报

发表于 2008-3-25 21:33:49 | 显示全部楼层
引用第9楼sxlrose于2008-03-25 18:14发表的  :
哪个哥们儿帮我做个演示出来好么?
最好是T版的~~

我还吗搞定这个问题~~单位退了以后停止是能停止不过会偏移轨迹。还有就是在边界仍然会出错~~
在边界会出错,难道你用的是SetUnitX和SetUnitY?
回复

使用道具 举报

发表于 2008-3-25 21:36:48 | 显示全部楼层
算了 帮人帮到底,反正时间也花了,付上演示

冲锋.w3x

21 KB, 下载次数: 48

回复

使用道具 举报

发表于 2008-3-25 21:38:05 | 显示全部楼层
引用第13楼zhuzeitou于2008-03-25 21:28发表的  :
貌似也有人提到过了,这样无法判断所在点是否有单位或者可破坏物的,所以这么做并不是完美的
如果连有单位也要判断的话,不关闭碰撞不就好了
回复

使用道具 举报

 楼主| 发表于 2008-3-25 21:51:00 | 显示全部楼层
呵呵感谢兄弟们的热心~~

问题已经解决了~~谢过~
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 点一下

本版积分规则

Archiver|移动端|小黑屋|地精研究院

GMT+8, 2024-11-24 23:47 , Processed in 0.040714 second(s), 21 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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