找回密码
 点一下
查看: 1496|回复: 2

N久的一个射击函数。。

[复制链接]
发表于 2011-5-10 16:39:09 | 显示全部楼层 |阅读模式
[trigger]
Fire Missile
    选项:动作
    返回类型:(无)
    参数
        Location = 无点 <点>
        Height = 0.0 <实数>
        zVelocity = 0.0 <实数>
        xVelocity = 0.0 <实数>
        yVelocity = 0.0 <实数>
        Missile Type = 无游戏链接 <游戏连接 - 单位>
        Missile Effect = 无游戏链接 <游戏连接 - 效果>
    语法文本: Fire Missile(Location,Height,zVelocity,xVelocity,yVelocity,Missile Type,Missile Effect)
    提示文本: Pew pew pew pew
    自定义脚本代码
    局部变量
        stillActive = true <布尔>
        Bullet Unit = 无单位 <单位>
        Temp Unit = 无单位 <单位>
        Temp Point = 无点 <点>
        Collision Radius = 0.5 <实数>
    动作
        单位 -为玩家1 在Location创建1个面向((点(xVelocity,0.0))到(点(0.0,yVelocity))之间的角度)度(忽略放置区)的Missile Type
        单位 -使Bullet Unit面向(玩家 1 的当前镜头横摇值)保持0.0秒
        变量 -设置Bullet Unit = (上一次创建的单位)
        单位 -在0.0秒内,将Bullet Unit的高度改为(Height-(在Location的空中高度))
        综合 -While (条件) are true, do (动作)
            条件
                (Bullet Unit为活体状态)==true
                stillActive==true
            动作
                综合 -等待Refresh Rate游戏时间秒
                变量 -设置Location = (Location偏移((xVelocity*Refresh Rate),(yVelocity*Refresh Rate)))
                单位 -立即将Bullet Unit移动到 Location(混合)
                变量 -设置zVelocity = (zVelocity+Gravity)
                变量 -设置Height = (Height+(zVelocity*Refresh Rate))
                单位 -在0.0秒内,将Bullet Unit的高度改为(Height-(在Location的空中高度))
                区域 -移动Collision Region到Location
                单位组 -为(在Collision Region内与玩家1拥有同盟敌人,并且匹配不包括: 发射物, 死亡的, 隐藏的的单位,最多有任意数量个)中的每一个单位Temp Unit执行(动作)
                    动作
                        变量 -设置Temp Point = (Temp Unit的位置点)
                        变量 -设置Collision Radius = ((Temp Unit的单位类型)半径)
                        综合 -If (条件) then do (动作) else do (动作)
                            If
                                (Temp Unit的单位类型)!=Missile Type
                                Temp Unit!=PlayerUnits[0]
                                (+(((-((Temp Point的X),(Location的X))) ^ 2.0),((-((Temp Point 的 Y),(Location 的 Y))) ^ 2.0),((-(Height,((在Temp Point的地面高度)+(Temp Unit的高度)))) ^ 2.0),0.0))<=Collision Radius
                            Then
                                变量 -设置stillActive = false
                                环境 -在Temp Unit身上创建由PlayerUnits[0]所施放的Missile Effect
                            Else
                综合 -If (条件) then do (动作) else do (动作)
                    If
                        Or
                            条件
                                (Location的X)<=MinX
                                (Location 的 Y)<=MinY
                                (Location的X)>=MaxX
                                (Location 的 Y)>=MaxY
                                Height<=(+((在Location的地面高度)))
                    Then
                        变量 -设置stillActive = false
                    Else
        单位 -杀死Bullet Unit
[/trigger]
发表于 2011-5-10 17:17:00 | 显示全部楼层
你也不说一下,直接贴个触发器有啥用呢。
回复

使用道具 举报

发表于 2011-5-10 20:22:13 | 显示全部楼层
太复杂啦
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-28 00:25 , Processed in 0.037635 second(s), 18 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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