找回密码
 点一下
查看: 3006|回复: 14

求 DOTA里的10分钟无动作T人代码

[复制链接]
发表于 2008-7-28 19:36:02 | 显示全部楼层 |阅读模式
求 DOTA里的10分钟无动作T人代码
如题~~~
发表于 2008-7-28 19:41:47 | 显示全部楼层
每个玩家给一个计时器(可以用数组,下标与玩家索引相关)

对英雄发布命令,就开启对应玩家的计时器,时间为10分钟,一次性
如果某玩家的计时器到期,那么说明在10分钟内该玩家没有发布任何命令,也就是10分钟无动作

以上为思路
回复

使用道具 举报

发表于 2008-7-28 19:51:48 | 显示全部楼层
玩家单位事件-发布一个无目标的指令
玩家单位事件-发布一个目标指令
玩家单位事件-发布一个指定物体目标指令
记下现在游戏时间
计时器周期事件-每1秒触发事件
现在游戏时间和计下的时间比较



dota里的方法
回复

使用道具 举报

发表于 2008-7-28 19:55:39 | 显示全部楼层
额………………

这样貌似比我说的方法还麻烦………………
回复

使用道具 举报

发表于 2008-7-28 19:57:42 | 显示全部楼层
如果对英雄发布命令,就开启对应玩家的计时器。。。那么狂对英雄发布命令。。。不是会占资源么。。。
回复

使用道具 举报

发表于 2008-7-28 19:59:53 | 显示全部楼层
每个玩家只有一个计时器阿,后一次开启前一次就没有了

比如说有一个计时器timer,先开启timer一次性30秒,然后在20秒的时候再开启timer30秒,那么前1次就无效了
回复

使用道具 举报

发表于 2008-7-28 20:00:40 | 显示全部楼层
dota的只需一个触发就行了
回复

使用道具 举报

发表于 2008-7-28 20:02:17 | 显示全部楼层
饿。。。这有关系么。。。
回复

使用道具 举报

发表于 2008-7-28 20:03:33 | 显示全部楼层
我是说。。。。。。以对英雄发布命令为事件是不是太频繁了。。。。
回复

使用道具 举报

发表于 2008-7-28 20:04:13 | 显示全部楼层
忽忽。。。ms都是这么作的哈。。。
回复

使用道具 举报

发表于 2008-7-28 20:05:12 | 显示全部楼层
我的意思是再怎么狂发布命令,也只是对一个计时器的操作,不会耗费很大资源的

额,貌似随便怎么样1个触发都不够的口牙
回复

使用道具 举报

发表于 2008-7-28 20:07:34 | 显示全部楼层
莫非用的等待成立???
回复

使用道具 举报

发表于 2008-7-28 20:08:24 | 显示全部楼层
3连。。。
回复

使用道具 举报

发表于 2008-7-28 20:18:45 | 显示全部楼层
无标题.jpg

T不太会写,凑合着看吧


大概就是这样,事件处,把所有玩家都加进去,那个计时器我不知道是不是这个,下面的条件是检查,事件ID是计时器事件还是发布指令事件,T我不知道在哪


当然dota里这些都是写在条件里的
回复

使用道具 举报

发表于 2008-7-28 21:23:14 | 显示全部楼层
以下是我的触发,共3个,全玩家

[trigger]InitTimers
    事件
        地图初始化
    条件
    动作
        For PlayerIndex 从 0 到 15, 做动作
            Loop - 动作
                如果所有条件成立则做动作1,否则做动作2
                    If - 条件
                        ((玩家 (PlayerIndex + 1)) 的控制者) 等于 用户
                        ((玩家 (PlayerIndex + 1)) 的游戏状态) 等于 正在游戏
                    Then - 动作
                        触发器 - 为 OrderTimers <预设> 添加事件: (时间 - OrderTimers[PlayerIndex] 到期)
                        计时器 - 开启 OrderTimers[PlayerIndex] ,计时方式: 一次性 时间设置: 600.00 秒
                    Else - 动作[/trigger]
[trigger]IssueOrders
    事件
        单位 - 任意单位 发布指定物体目标指令
        单位 - 任意单位 发布指定点目标指令
        单位 - 任意单位 发布无目标指令
    条件
    动作
        计时器 - 开启 OrderTimers[((((触发单位) 的所有者) 的玩家索引号) - 1)] ,计时方式: 一次性 时间设置: 600.00 秒[/trigger]
[trigger]OrderTimers
    事件
    条件
    动作
        For PlayerIndex 从 0 到 15, 做动作
            Loop - 动作
                自定义代码: if GetExpiredTimer() == udg_OrderTimers[udg_PlayerIndex] then
                //干你想干的事
                跳过剩余动作
                自定义代码: endif[/trigger]
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-24 16:39 , Processed in 0.063688 second(s), 22 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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