找回密码
 点一下
楼主: Renee

真·免疫打断的法术(指令队列状态的获得和去除)

[复制链接]
发表于 2008-5-14 10:15:05 | 显示全部楼层
变羊了当然没得放了~~因为变羊是禁用法术而不是打断法术嘛~~

变羊会在魔法释放完后再变了,晕也是一样,这个单位"被晕"的状态其实已经放进状态buffer了,只不过处理的时候会等待在当前状态的动画播放完后,如果没记错,这个是暴雪专门为变身设计的一个单位指令执行机制,可以实现在魔免和非魔免状态间无缝切换,の,具体是怎么回事,の,相关的东西在war3.mpq中的data有体现,war3主程序专门有一段是写这个的,呵呵,因为某些原因不便详说...
回复

使用道具 举报

发表于 2008-6-15 17:05:44 | 显示全部楼层
根本打不开
回复

使用道具 举报

发表于 2008-6-26 14:18:39 | 显示全部楼层
…………………………………………………………………………
队列是什么意思???
是命令运行的顺序吗??
(1 attack>2 stop>…………)
是这样吗?
难道“晕”是放在单位的命令里的吗?
很难想象是“别人(山丘)叫单位(大法)发布『晕了自己,别动,死了都别动』的命令”,而大法却言听计从地“把自己调整到一个舒服的位置(重置动画),任由山丘的锤子拍在身上……………………”
但是大法死亡时的动作也是放在队列里的吗?
还是说,单位只要生命<0,那么立刻清除单位身上的所有Buff,并给单位发布死亡命令?转换单位的模型到骨头状态?
Jass的UnitRemoveAbility移除Buff效果并不好,总是会再存在1妙后图标才没有。如果能得到单位死亡命令中瞬间移除所有Buff和对应图标的命令,那无数高人就会………………
而且如果瞬间移除所有Buff和对应图标的命令是循环:瞬间移除单位的指定Buff,估计所有人都会………………………………
当然,如果死亡命令是这样的:
function Death takes unit u returns nothing
call UnitAddAbility(u,『蝗虫技能ID』)
call UnitRemoveAbility……………………………………
endfunction
那大家…………就当我没说过这话………………………………………………
跑题了…………………………
还有,单位设置:命令ID的禁止。比如说单位的攻击设置为无,那么在单位自己就会禁止任何对它发布的“attack”命令。而单位的设置是存在地图的缓存中的一个缓存中的。而“禁止任何对它发布的“attack”命令”则是作为一个Boolean存在的。如果:BLIZZARD的函数是:
function attack takes unit u returns nothing
if GetStoredBoolean(udg_GC,GetUnitTypeId(u),"DIS猜的"+『发布的命令ID(假晕ID)』)==false then
call IssueOrderTarget(u,『晕的ID(应该是真晕的Id,效果是晕单位),这里只是举例,应该是每个特殊的命令ID都会在地图初始化是存储一个对应的真命令Id』)
else
endif
endfunction
假『晕』Id是技能发出的,真『晕』技能是系统发出的(无法抵抗),也就是说,技能发
出的所有关于『晕』的命令——是假『晕』命令,需要通过条件判定(目标单位有没有无
敌的状态呀等)并成立后,向目标单位发出真『晕』命令,真『晕』命令是系统直接放
行的(比如前缀是某个特定的数或字母,系统可以通过SubString(String)或别的比如÷(Integer)等办法判定,或直接过上头的函数【因为真『晕』在初始化时不储存Boolean,所以默认为False】)。然后才有“把自己调整到一个舒服的位置(重置动画),任由山丘的锤子拍在身上……………………”的这一幕的。
也就是说:每个命令的Id都有两个:真和假(true and false)。
假命令是过系统判断的。
真命令是发效果的。
说到这里大家都有想扁我的冲动了吧(小子你丫居然敢猜BLIZZARD的源代码,是不是不想活了!!而且还写这么长!!!!!!!!!!!)…………其实不然,我说的函数不仅与楼主的不冲突,而且————————
大家可以用call StoreBoolean(………………………………,true)来让命令Id无效果!
原因:仔细看上面的函数。
也就是:
事件——任意单位“开始施法”
条件——无
动作——call StoreBoolean(udg_Data,GetUnitTypeId(GetTriggerUnit()),"DIS……(说实话我也不知道)",true)
事件——任意单位“施法结束”
条件——无
动作——call StoreBoolean(udg_Data,GetUnitTypeId(GetTriggerUnit()),"DIS……(说实话我也不知道)",false)
这样的话,会实现:任意单位施法的全过程时间段中,这个单位的类型的所有的单位会免疫……的命令。
举例:
一个步兵放180妙的通魔技能,在这个时间段里,山丘用锤子(技能的)K步兵,只出伤害,不出晕………………(山丘我对不起你…………)
※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
以上为我猜想,如有强人发现真的是这样的话,告诉我就可以了。
毕竟LZ的比我的好多了……………………
回复

使用道具 举报

发表于 2008-6-27 04:20:08 | 显示全部楼层
难道“晕”是放在单位的命令里的吗?
很难想象是“别人(山丘)叫单位(大法)发布『晕了自己,别动,死了都别动』的命令”,而大法却言听计从地“把自己调整到一个舒服的位置(重置动画),任由山丘的锤子拍在身上……………………”
看来就是这样~另外没必要另外加入“真”、“假”命令概念,一般可以认为,单位的命令有是否可以由玩家直接操作来发布这个属性,比如我们
按“攻击”这个按钮,选择目标作发布命令动作;但“是否可以由玩家直接操作来发布这个属性”其实在这里并不占主要位置,因为不管是玩家发布的命令还是系统自带的命令,判断其返回值的过程一样。其实“真”、“假”命令就是命令是否生效而已。而从命令队列中看出,眩晕这个命令并没有什么特权~至于为何眩晕要作为一个系统命令而存在?从它的功能上解释,即是作为传递信息的途径而已,比如你可以直接从GetTriggerUnit()得到被击晕的单位,GetOrderTargetUnit()得到击晕者,也就是这条击晕命令包含了以下信息:1.单位被击晕,处于暂停状态。2.这个击晕是由GetOrderTargetUnit()对GetTriggerUnit()造成的。另外的另外,击晕和pauseunit命令的id是一样的
回复

使用道具 举报

发表于 2008-6-27 11:10:46 | 显示全部楼层
击晕和pauseunit命令的id是一样的…………………………
我死了```````````````
但还是不太懂63楼的话…………
copy回家研究一下`研究一下。 [s:186]
回复

使用道具 举报

发表于 2008-6-27 11:21:56 | 显示全部楼层
似乎明白了………………
War3似乎不是系统占主导啊,就是说,各种命令是由各Handle的个体发出的(比如单位),然后再经过传递,到达另一个Handle的个体(这个个体不需要翻译此命令),系统似乎只是用于翻译人发出的命令给Handle的个体,翻译Handle的个体发出的命令给人,和加快传递速度、把个体的状态显示到屏幕上而存在的。
也就是说:命令是Handle的个体之间的语言,系统只作为我们人的翻译而存在的。
Handle的个体是凌驾于系统之上的。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~`
这也有我猜测的成分噢!
回复

使用道具 举报

发表于 2008-8-26 21:53:40 | 显示全部楼层
嗯....看的好迷糊.....
回复

使用道具 举报

发表于 2008-10-21 15:49:33 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

发表于 2009-7-9 18:34:48 | 显示全部楼层

大家有没有发现:吉安娜用了暴风雪后攻击增加了???是我的WE的BUG 还是所有的都是哦 灵异哦
回复

使用道具 举报

发表于 2009-7-9 18:39:53 | 显示全部楼层
至少我没见过这事情……
回复

使用道具 举报

发表于 2009-7-9 18:43:22 | 显示全部楼层
额,我前面的话没看到头目的演示也没测试,所以无视罢。
回复

使用道具 举报

发表于 2010-1-23 14:47:57 | 显示全部楼层
真是精品啊,找着地了,不客气抱走了
回复

使用道具 举报

发表于 2010-8-31 13:12:46 | 显示全部楼层
这个吉安娜无缘无故加攻击是怎么实现的饿,在施法过后。。。
回复

使用道具 举报

发表于 2010-8-31 19:00:06 | 显示全部楼层
引用第72楼t5q583于2010-08-31 13:12发表的 :
这个吉安娜无缘无故加攻击是怎么实现的饿,在施法过后。。。

那是变身BUG,解决方法请见第二章第二节
回复

使用道具 举报

发表于 2011-7-4 20:12:20 | 显示全部楼层
現在遇到另一個問題就是我成功的解決了雙倍攻擊力 + 單位對列指令的問題

可是解除以後的角色不管是被暈 or 怎樣都不會停止... 仍然可以移動, 身上帶有暈眩Buff 卻可自由移動...
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-22 10:24 , Processed in 0.047645 second(s), 18 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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