找回密码
 点一下
查看: 1579|回复: 7

JASS有没有可以取得玩者命令和取得移动时自动产生坐标的函数

[复制链接]
发表于 2007-12-22 17:45:52 | 显示全部楼层 |阅读模式
我想做两个技能:

其一是技能启动时纪录一分钟内所有游戏者所下达的命令并存入变量之中。
其二是当我们下达移动命令时,魔兽应该会自动产生移动路径,而这条路径应该会对应到一串坐标,我必须取得这些坐标。

Jass必须有这两种不同功能的函数才能完成,我怎样才能查到这两个函数的名字?
发表于 2007-12-22 18:24:10 | 显示全部楼层
JASS其实并不是万能的。
好比,建一栋房子,需要有不同的材料,比如钢筋混凝土、砖头啥的。
WAR3有单位发布命令的事件,也有获取单位发布的命令的函数。
但是没有一分钟内发布的命令的函数。

另外,第二个问题连砖头都米有。用其它代替品也许不是那么完美。
回复

使用道具 举报

 楼主| 发表于 2007-12-22 20:20:21 | 显示全部楼层
先感谢解答,让我有了头绪。
第一个问题:
简单来说就是必须利用"单位发布命令的事件"和"获取单位发布命令的函数"来建立所下达的命令和下达时间的stack数据结构来实现,假如有10个玩家,就必须建立2*10=20个stack来暂存,当我需要的时候再配合定时器pop出来就对了。

第二个问题:
其实我是为了要做出超越移动速度522的的单位所想出来的解决方式,我原本是想,假如我得到了一连串坐标,就可以把连续坐标以较大的间隔,让单位跳跃的方式仿真出移动速度达上千的单位。
回复

使用道具 举报

发表于 2007-12-23 03:12:50 | 显示全部楼层
瞬间移动么。。只要直接把单位移过去,在两点之间画一条华丽的瞬移效果就好了
回复

使用道具 举报

 楼主| 发表于 2007-12-23 20:45:14 | 显示全部楼层
我想仿真速度上千的移动单位,让有热血灵光的部队都能跑的飞快,我先把条件简化了,如果只用瞬间移动会造成和路径差很多

结果可以跑的快可是他停不下来,在原地打转。

FlyRunPositionFuture=用鼠标右键点的地板
FlyRunPositionNow=现在的位置
FlyRunPositionAngle=部队面对的方向

FlyRun
事件-A Unit 已经下达了瞄准一个定点的命令
状况-((Triggering unit) has buff 热血灵光) 等于 真
行动-Set FlyRunPositionFuture = (Target point of issued order)
      Set FlyRunCaster = (Triggering unit)
      Turn off (This trigger)
      Turn on FlyRunEffect <情报>

FlyRunEffect
    事件-Every 0.00 seconds of game time
    状况-
    行动-
     If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        如果条件
        (Min X of (Region centered at (Position of FlyRunCaster) with size
        (200.00, 200.00))) 等于 (X of (FlyRunPositionFuture offset by (0.00,
                                                                       0.00)))
        (Min Y of (Region centered at (Position of FlyRunCaster) with size
        (200.00, 200.00))) 等于 (Y of (FlyRunPositionFuture offset by (0.00,
                                                                       0.00)))
        就行动
        Turn off (This trigger)
        Turn on FlyRun <情报>
        否则行动
        Set FlyRunPositionNow = (Position of FlyRunCaster)
        Set FlyRunPositionAngle = (Facing of FlyRunCaster)
        Move FlyRunCaster instantly to (FlyRunPositionNow offset by 128.00
        towards FlyRunPositionAngle degrees),facing FlyRunPositionAngle degrees
        Turn off (This trigger)
        Order FlyRunCaster to 右点 FlyRunPositionFuture
        Wait 0.15 game-time seconds
        Turn on (This trigger)


有人知道吗?
我用自学wiki改的,因为第一次接触触发,弄到早上还是不行。 只有魔将有热血灵光
http://uptovip.myweb.hinet.net/Basic.w3x
回复

使用道具 举报

发表于 2007-12-23 22:21:28 | 显示全部楼层
平衡性常数里的
移动 - 单位最大速度

shift 双击就可以突破522的限制,然后输入比如1200。。
回复

使用道具 举报

 楼主| 发表于 2007-12-23 22:25:50 | 显示全部楼层
我知道可以突破522可是那是数字上面改变,不是真的
回复

使用道具 举报

发表于 2007-12-24 16:39:34 | 显示全部楼层
意思是当目标靠近单位的时候加速?
给单位绑定一个单位变量叫做“目标”
在单位发布“锁定一个目标的命令”或者“单位获得一个目标”
如果命令的目标不等于原来那个的时候设置一个Timer用来循环检查该单位到单位的距离,如果接近那么加速,否则速度回复正常,并且在“目标”不等于计时器的时候释放这个Timer。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-6-29 14:18 , Processed in 0.039539 second(s), 19 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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