找回密码
 点一下
查看: 1889|回复: 27

全局变量导致技能同时释放时变量冲突问题

[复制链接]
发表于 2008-12-17 17:30:44 | 显示全部楼层 |阅读模式
也找人问过,搜帖子时候有一个讨论贴,大致看了看,有一个通过玩家不同,用数组索引解决的方法
自己尝试一下没弄出个所以然来,希望哪位朋友帮忙做个演示或者讲解一下
发表于 2008-12-17 17:36:57 | 显示全部楼层
先说说你的具体情况的比较好
回复

使用道具 举报

 楼主| 发表于 2008-12-17 17:43:34 | 显示全部楼层
单一玩家只控制一个英雄,部分技能应用了多个触发器
回复

使用道具 举报

kw 该用户已被删除
发表于 2008-12-17 17:46:06 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

 楼主| 发表于 2008-12-17 17:48:50 | 显示全部楼层
应该是索引对应玩家吧,比方说索引0对应玩家1
回复

使用道具 举报

发表于 2008-12-17 17:59:37 | 显示全部楼层
这个没有刻意规定怎么对应,只要做到一一对应就好,当然玩家对应是比较明了的一种做法,但如果出现一个玩家多个英雄就不行了

其实最好的是用局部变量………………
回复

使用道具 举报

kw 该用户已被删除
发表于 2008-12-17 18:00:56 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

 楼主| 发表于 2008-12-17 18:04:20 | 显示全部楼层
我不知道怎么让索引数对应玩家。。。
如果有其他方法能解决冲突也不错
局部变量解决不了多触发技能吧(我是这么认为的,不懂J)
期待演示
回复

使用道具 举报

发表于 2008-12-17 18:05:31 | 显示全部楼层
局部变量每一次执行间是不冲突的,所以多人多次释放也毫无关系
回复

使用道具 举报

发表于 2008-12-17 18:05:50 | 显示全部楼层
要每个玩家只有一个单位可能。。。然后把所有变量*12。。。按索引保存-。。。

设置xx[触发(?)玩家索引]=xx之类。。。
回复

使用道具 举报

发表于 2008-12-17 18:09:27 | 显示全部楼层
只有一个单位也不一定能用ls的方法,因为说不定同一个单位在前一次效果结束前可以释放下一次,所以说局部变量是最好的方法
回复

使用道具 举报

kw 该用户已被删除
发表于 2008-12-17 18:11:52 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

 楼主| 发表于 2008-12-17 18:11:57 | 显示全部楼层
我忽然明白了。。。。
猪头兄,当一个技能需要多个触发器来完成的话,那么局部变量是不是就行不通了呢?
回复

使用道具 举报

发表于 2008-12-17 18:13:24 | 显示全部楼层
这个时候,就需要传说中(怎么又是传说中)的gamecache+return bug来传递数据了
回复

使用道具 举报

发表于 2008-12-17 18:13:24 | 显示全部楼层
lz。。。直接说是什么技能比较好把。。。- -
回复

使用道具 举报

发表于 2008-12-17 18:14:50 | 显示全部楼层
引用第14楼zxcf于2008-12-17 18:13发表的  :
lz。。。直接说是什么技能比较好把。。。- -

这个可不一定哦,不同的技能对于排除冲突的方法可能是各异的
回复

使用道具 举报

kw 该用户已被删除
发表于 2008-12-17 18:17:11 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

发表于 2008-12-17 18:17:53 | 显示全部楼层
这样实在大家都很难理解啊- -。。。
回复

使用道具 举报

发表于 2008-12-17 18:19:38 | 显示全部楼层
所以说往jass方向发展,用return bug+gamecache去传递变量吧
回复

使用道具 举报

 楼主| 发表于 2008-12-17 18:20:25 | 显示全部楼层
[trigger]
zhanshenzhantiejian
    事件
        单位 - 任意单位 开始施放技能
    条件
        (施放技能) 等于 战神斩铁剑 (魔幻师)
    动作
        设置 unit_zhantiejian[((触发玩家) 的玩家索引号)] = (技能施放目标)
        等待 0.70 秒
        单位 - 命令 (触发单位) 对 (技能施放目标) 造成 200.00 点伤害(不是 攻击伤害, 不是远程攻击) 攻击类型: 法术 伤害类型: 强化 装甲类型: 无
        等待 0.30 秒
        设置 suijishu_zhengshu[((触发玩家) 的玩家索引号)] = (随机整数,最小值: 1 最大值: 20)
        如果所有条件成立则做动作1,否则做动作2
            If - 条件
                suijishu_zhengshu[((触发玩家) 的玩家索引号)] 等于 1
            Then - 动作
                单位 - 杀死 (技能施放目标)
                特殊效果 - 在 ((技能施放目标) 的位置) 创建特效: Objects\\Spawnmodels\\Undead\\UndeadLargeDeathExplode\\UndeadLargeDeathExplode.mdl
                特殊效果 - 删除 (最后创建的特效)
            Else - 动作
                无动作
[/trigger]
是这样么?
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-7-21 12:22 , Processed in 0.101476 second(s), 19 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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