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

计时器复活多玩家多英雄,最多支持8191英雄同时复活

[复制链接]
发表于 2009-7-21 15:23:02 | 显示全部楼层 |阅读模式
经常有人问 不时有人问 动不动就来一个人问 丢个演示看你们谁还问
基本已经是成品,移植步骤只要 复制->粘贴
因为通常做 "防守" 和 "剧情" RPG的朋友比较多 这个演示目标也主要是这些WEER
竞技图的 需要改动一下

使用流程:
一.请先确认你的地图,"复制触发时自动创建未知变量"选项是被勾上的,
      该选项位于WE主面板->文件->参数设置->综合选项卡下.
      如下图:

Setup-1.jpg
二.右键点击触发器所在文件夹,选择复制,如下图:
Setup-2.jpg
三.右键点击触发器根文件,选择粘贴,如下图
Setup-3.jpg
四.根据需求修改参数设置
Setup-4.jpg
以上步骤进行完,就可以使用了

另外很多人打不开我的演示..特此声明本人是用RedWolf 1.2.2汉化WE  WOW8 WE也使用了RedWolf
但是很多人打不开,因为开启UI函数时,很多人选择Blz.bat ,这样只使用暴雪提供的BJ函数库,请使用ALL.bat
该批处理文件位于 UI文件夹中

如下图:
UI.jpg

评分

参与人数 1威望 +4 收起 理由
血戮魔动冰 + 4 补上触发的奖励

查看全部评分

 楼主| 发表于 2009-7-21 15:25:39 | 显示全部楼层
图片传太多了 演示传不上去 只好传在2楼
采用计时器加数组 和 我那个 仿WOW捡尸体系统一样
演示在这里:
计时器多英雄复活.w3x (21 KB, 下载次数: 448)
UI.. 工具程序区导航帖就有
回复

使用道具 举报

发表于 2009-7-21 18:53:28 | 显示全部楼层
LZ,如果你把触发发上来,我想我会给你加更多的分的。
…………不过居然是触发做的……哎…………还用未知变量……LZ快点学jass吧。
回复

使用道具 举报

 楼主| 发表于 2009-7-21 23:43:01 | 显示全部楼层
血魔大哥啊.. MS我学JASS的时候比你早 不过没你学得好就是了...
什么叫还用未知变量.. 我怕用JASS写了 叫我写演示那帮人要吐血
回复

使用道具 举报

发表于 2009-7-22 05:37:07 | 显示全部楼层
既然这样我就没办法了…………
但是…………你居然敢无视我的话,不把触发贴上来…………哎……
补充去~
回复

使用道具 举报

 楼主| 发表于 2009-7-22 19:12:29 | 显示全部楼层
血魔大哥.. 演示不是在二楼吗? 你要我把触发内容粘出来吗?
参数初始化
[trigger]
ParamterInit
┣━事件
┃ └─地图初始化
┣━条件
┗━动作
├─-------- 设置每个玩家最大可持有的英雄数量 --------
├─设置 MaxHeroAmount = 5
├─-------- 设置复活的基础时间 --------
├─设置 BaseReliveDur = 10.00
├─-------- 设置等级附加时间 --------
├─设置 BaseReliveDur = 10.00
├─-------- 设置复活英雄的X坐标 --------
├─设置 ReliveHeroX = -845.00
├─-------- 设置复活英雄的Y坐标 --------
└─设置 ReliveHeroY = 845.00
[/trigger]

计时器初始化
[trigger]
TimertInit
┣━事件
┃ └─时间 - 游戏开始 0.00 秒
┣━条件
┗━动作
├─For循环整数A从 1 到 12, 做动作
  │ Loop - 动作
  │ 如果所有条件成立则做动作1,否则做动作2
  │ If - 条件
  │ ((玩家 循环整数A [R]) 的游戏状态) 等于 正在游戏
  │ Then - 动作
  │ 设置 PlayerCount = (PlayerCount + 1)
  │ Else - 动作
├─设置 TimerMaxIndex = (PlayerCount x MaxHeroAmount)
└─For循环整数B从 1 到 TimerMaxIndex, 做动作
Loop - 动作
设置 ReliveTimer[循环整数B [R]] = (新建的计时器)
触发器 - 为 ReliveHero <预设> 添加事件: (时间 - ReliveTimer[循环整数B [R]] 到期)
[/trigger]

英雄死亡开启计时器
[trigger]
HeroDying
┣━事件
┃ └─单位 - 任意单位 死亡
┣━条件
┃ └─((触发单位) 是 英雄) 等于 TRUE
┗━动作
└─For循环整数A从 1 到 TimerMaxIndex, 做动作
Loop - 动作
如果所有条件成立则做动作1,否则做动作2
If - 条件
ReliveHero[循环整数A [R]] 等于 没有单位
Then - 动作
设置 ReliveHero[循环整数A [R]] = (触发单位)
计时器 - 开启 ReliveTimer[循环整数A [R]] ,计时方式: 一次性 时间设置: (BaseReliveDur + ((转换 ((触发单位) 的英雄等级) 为实数) x LevelReliveDur)) 秒
计时器 - 为 ReliveTimer[循环整数A [R]] 创建计时器窗口,使用标题: (((触发玩家) 的名字) + 复活时间:)
设置 ReliveTimerBox[循环整数A [R]] = (最后创建的计时器窗口)
跳过剩余动作
Else - 动作
[/trigger]

计时器到期复活英雄
[trigger]
ReliveHero
┣━事件
┣━条件
┗━动作
└─For循环整数B从 1 到 TimerMaxIndex, 做动作
Loop - 动作
如果所有条件成立则做动作1,否则做动作2
If - 条件
(到期的计时器) 等于 ReliveTimer[循环整数B [R]]
Then - 动作
计时器 - 删除 ReliveTimerBox[循环整数B [R]]
英雄 - 立即复活 ReliveHero[循环整数B [R]] 在(ReliveHeroX,ReliveHeroY), 显示 复活动画
设置 ReliveHero[循环整数B [R]] = 没有单位
跳过剩余动作
Else - 动作
[/trigger]
回复

使用道具 举报

 楼主| 发表于 2009-7-22 19:19:00 | 显示全部楼层
额 怎么感觉显示出来不对劲呢.. 而且发现如果计时器窗口创建以后隐藏再显示 N个计时器创建会重叠在显示一起 实在是奇怪
回复

使用道具 举报

发表于 2009-7-23 08:32:07 | 显示全部楼层
使用本地玩家+显示吧
回复

使用道具 举报

发表于 2009-8-17 07:59:14 | 显示全部楼层
还行。
回复

使用道具 举报

发表于 2009-8-17 17:41:30 | 显示全部楼层
几个英雄不能同时复活,是指同一玩家拥有几个以上英雄后不能复活还是指地图上的任何英雄哦
如果是指所有英雄的话,为什么不用触发器队列呢????
简单多少倍啊
回复

使用道具 举报

 楼主| 发表于 2009-8-18 15:09:57 | 显示全部楼层
几个英雄不能同时复活吗? 这里多英雄复活是指多个玩家多个英雄
触发器队列? 用触发器队列怎么个实现方式呢?
复活英雄的数组下标该如何获得?
回复

使用道具 举报

发表于 2009-8-18 16:26:41 | 显示全部楼层
其实是支持不了那么多的,8191个平摊给12/16个玩家,每个玩家也要几百个,不可能同时复活的,因为同一玩家同时挂掉的英雄超过一定数量,那么只能复活一部分了(7个还是8个忘记了)
回复

使用道具 举报

 楼主| 发表于 2009-8-19 08:30:21 | 显示全部楼层
这个我知道 我只是说最大能支持那么多而已
回复

使用道具 举报

发表于 2009-8-19 13:12:11 | 显示全部楼层
用等待可以支持无限英雄复活。。
回复

使用道具 举报

 楼主| 发表于 2009-8-19 15:57:13 | 显示全部楼层
说句实话... 我很讨厌等待 尽可能的不用等待
回复

使用道具 举报

发表于 2009-8-19 16:09:06 | 显示全部楼层
………………等待是禁止使用的……在我眼里。
回复

使用道具 举报

发表于 2009-8-19 17:00:55 | 显示全部楼层
但是很多人都很喜欢.......虽然我也不用,因为只有Jass里有这个神奇的东西,B、C里从来没见过.......
回复

使用道具 举报

发表于 2009-8-19 17:15:44 | 显示全部楼层
C里有Sleep算不算……
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-22 02:35 , Processed in 0.261755 second(s), 25 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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