找回密码
 点一下
楼主: 活宝

[T][光环]转生领域

[复制链接]
发表于 2009-9-24 13:38:24 | 显示全部楼层
引用第17楼cccty1l于2009-09-24 10:44发表的 :

本来是一个娱乐技能,可是既然要认真讨论的话我倒也觉得可以说出一些道理来,还希望不要认为我是胡搅蛮缠。

首先,这个演示的教化意义远大于其技术展示,而且在演示中一点也没有涉及到单位绑定数据方面的问题,小血你以可能造成数据丢失来否定“删除+创建”的方法本来就有些牵强了。虽然我也认为“改变所属+复活”不错,但是这样的话依然需要范围内的单位选取,不仅如此,还必须保证范围内有尸体才可以给英雄添加“复活之书”,否则会在操作界面出现“附近没有可以复活的友军尸体”的提示。如此凭空多出来的一步判断对于T的使用者来说应该很困扰吧。

.......

实际上用活宝的方法,首要的问题就是无法保证复活单位的面向角度与死亡前相同,这个是需要绑定数据的
也就是为什么要使用到各种存储系统,我不清楚复活是否会保证面向角度正确,不过大体上可以猜出来时能够保证的
这是小血希望用复活的一个原因。

那么我们来看用存储系统的问题,如果我记的没错,单位是当尸体消失之后数据才会被清除的,这也就是为什么unit类型变量在连接数为0后运行TriggerSleepAction(0)不会被释放的原因。那么就是说,如果用创建单位的方法的话,对应的handle是必然要变化的。而是用复活则不会变化。

在演示中替换记录的handle值,很容易就解决绑定的问题,但是如果在一张地图上,需要绑定的数据很多的话,那么调整handle值的记录明显是一项很麻烦的工作。
至于你说死亡就清除数据,复活后出现问题,这个很容易被解决的,尸体消失后再清除就行了。甚至我们不需要知道确切的消失时间,只要大于这个时间就行
这是为什么选择复活而不是创建单位的第二个原因

如果从对于新手的角度上来看,用存储系统绑定数据的难度肯定是要大于用书本复活的。话说你跟小血的新手期(或者纯T阶段)肯定没有我的时间长,你们不会有我清楚用T的难度在哪。对于J来说,局域化的绑定一个数很简单,T的话就是悲剧了。至少在1.23之前,不使用GC以及局域变量的话是很悲剧的
对于新手来说,更多的是拓宽思路,不要用一种方法来做。实际上同样的东西做法很多,能否找到更简单的方法才是从新手过度到老手的关键因素

另外说一点
不使用存储系统以及复活的话,仅仅用创建单位也是能够保证面向角度对的
这个技能还是能够做的
任意单位死亡事件
然后创建一个新的同类型单位,加上与尸体消失同样时间的生命周期,创建时保证与同死亡单位面向角度相同,把所有绑定在死亡单位的内容也立即转移到新单位身上(比如自定义值),然后隐藏新建的单位,被隐藏的单位当进入光环范围时。(忘记能不能去掉生命周期的效果了)创建隐藏单位同样的单位在同一点,并将所有数据转到新建立的单位身上
最后删除隐藏单位即可

实际上这个方法就是用隐藏单位代替了绑定的数据……
回复

使用道具 举报

发表于 2009-9-24 15:21:48 | 显示全部楼层
正确的做法是这样。

农民先说了声“反对独裁!”,然后被雷劈而死。

然后边上的朋友们纷纷喊道:“快信飞雪大人!”“快信飞雪大人!”

然后此人满血满BUFF活转回来:“状态满了。”
回复

使用道具 举报

发表于 2009-9-24 15:25:25 | 显示全部楼层
最好是屏幕在震动一下,跳出几个大字,信飞雪大人,然后加满状态,复活后说哈~状态满了!
回复

使用道具 举报

 楼主| 发表于 2009-9-24 17:04:43 | 显示全部楼层
引用第21楼麦德三世于2009-09-24 15:21发表的  :
正确的做法是这样。

农民先说了声“反对独裁!”,然后被雷劈而死。

然后边上的朋友们纷纷喊道:“快信飞雪大人!”“快信飞雪大人!”
.......
头目英明。
引用第22楼灼眼の熊猫王于2009-09-24 15:25发表的  :
最好是屏幕在震动一下,跳出几个大字,信飞雪大人,然后加满状态,复活后说哈~状态满了!
小灼大人高见。
回复

使用道具 举报

发表于 2009-9-24 17:07:35 | 显示全部楼层
难道楼上看的出我的灵魂
还是说是瞎猜的呢
或者说是条件反射呢
也许是认错人了吧
回复

使用道具 举报

 楼主| 发表于 2009-9-24 17:12:11 | 显示全部楼层
引用第20楼疯人¢衰人于2009-09-24 13:38发表的 :

实际上用活宝的方法,首要的问题就是无法保证复活单位的面向角度与死亡前相同,这个是需要绑定数据的
也就是为什么要使用到各种存储系统,我不清楚复活是否会保证面向角度正确,不过大体上可以猜出来时能够保证的
这是小血希望用复活的一个原因。

.......

多谢孔明兄。其实如果仅仅考虑复活后的朝向问题倒是有一种简单的方法:首先记录下原单位的朝向角度,然后创建的时候朝向原单位原来的朝向角度即可。如图:

zs10.JPG   


zs11.JPG
zs12.JPG
回复

使用道具 举报

 楼主| 发表于 2009-9-24 17:14:14 | 显示全部楼层
引用第24楼灼眼の熊猫王于2009-09-24 17:07发表的 :
难道楼上看的出我的灵魂
还是说是瞎猜的呢
或者说是条件反射呢
也许是认错人了吧

咦,您不是灼眼大人吗?
回复

使用道具 举报

发表于 2009-9-24 17:15:23 | 显示全部楼层
你有证据证明我是灼眼大神吗
回复

使用道具 举报

发表于 2009-9-24 17:17:05 | 显示全部楼层
突然的致谢吓死我拉
回复

使用道具 举报

 楼主| 发表于 2009-9-24 17:20:15 | 显示全部楼层
引用第27楼灼眼の熊猫王于2009-09-24 17:15发表的 :
你有证据证明我是灼眼大神吗

您的名字是灼眼开头的嘛。就好像看到XX之茄就知道一定是番茄大人。
回复

使用道具 举报

发表于 2009-9-24 17:22:08 | 显示全部楼层
不对哦,小枫有一个马甲也是灼眼开头的,另外有一个会员名字是灼眼のsaber
回复

使用道具 举报

 楼主| 发表于 2009-9-24 17:26:45 | 显示全部楼层
引用第30楼zhuzeitou于2009-09-24 17:22发表的 :
不对哦,小枫有一个马甲也是灼眼开头的,另外有一个会员名字是灼眼のsaber

小枫,灼眼,熊猫,小七不是一个人吗?呃……完全糊涂了……
回复

使用道具 举报

发表于 2009-9-24 17:29:09 | 显示全部楼层
小枫和灼眼是2个人
灼眼和熊猫是一个人
小7是另外存在的一个人
虽然我出现没几天但我貌似知道的太多了,磨刀把自己灭口中...


相位太口怕了,居然是在技能区的,掉到坑里了,喵咪咪乖......
(快跑啊)
回复

使用道具 举报

 楼主| 发表于 2009-9-24 17:30:33 | 显示全部楼层
哦,真的很复杂呢……
回复

使用道具 举报

发表于 2009-9-24 18:44:50 | 显示全部楼层
忘记死亡单位的面向也可以获得了……
回复

使用道具 举报

发表于 2009-9-24 19:22:53 | 显示全部楼层
  1. 那么我们来看用存储系统的问题,如果我记的没错,单位是当尸体消失之后数据才会被清除的,这也就是为什么unit类型变量在连接数为0后运行 TriggerSleepAction(0)不会被释放的原因。那么就是说,如果用创建单位的方法的话,对应的handle是必然要变化的。而是用复活则不会变化。
  2. 在演示中替换记录的handle值,很容易就解决绑定的问题,但是如果在一张地图上,需要绑定的数据很多的话,那么调整handle值的记录明显是一项很麻烦的工作。
  3. 至于你说死亡就清除数据,复活后出现问题,这个很容易被解决的,尸体消失后再清除就行了。甚至我们不需要知道确切的消失时间,只要大于这个时间就行
  4. 这是为什么选择复活而不是创建单位的第二个原因
复制代码


尸体消失的时间是“肉态尸体+骨态尸体”的时间,在单位死亡后进过如上时间其handle表位才会释放。嗯,这个大家都知道,但是这只是一般的情况,还有一些单位是没有尸体的或者该单位是爆炸死亡的,这些单位的handle表位会很快被重新使用,因此疯人兄你所说“单位死亡后开始计时,超时发现单位不存在即删除数据”的方法很可能出现Bug,因为一些handle表位在一个更提前的时间就已经被重用了;同理,即使没有上述情况,你使用这个方法依然可能出现问题不是么,如果计时时间和尸体消失时间一样行不行呢?这个我没有试验过,就不说了。那么根据上面我所说的,我认为在除了“单位死亡”之外的其他时间删除绑定于单位的数据都是需要较复杂的判断且是不易掌握的,可能有些片面,还请指教。

另外,疯人兄你所说的“需要绑定的数据很多的话,那么调整handle值的记录明显是一项很麻烦的工作”,在我刚才的帖子中的第三点就是其中的一个解决方法,而且,在1.24b中,这个工作本身就已经很简单了。如果你还是认为这样无法简化这个工作的话,那么就应该整理下存储数据的结构了。


我看到LZ自己已经解决了创建单位面向的问题了,哈哈,恭喜恭喜,那么就不讨论这个问题。

不过疯人兄的方法可以被使用在存在“单位死亡消失后依然会被复活”可能的前提下,嘛,这个功能说不定有一些残酷呢,那些家伙可能已经转世了呢,你仍要它们回到前生来赎罪么?呵呵,其实这还要看飞雪大人的意见呢。
回复

使用道具 举报

发表于 2009-9-24 19:26:20 | 显示全部楼层
为啥用/code
回复

使用道具 举报

发表于 2009-9-24 19:29:12 | 显示全部楼层
呃,引用应该是/quito  ?
回复

使用道具 举报

发表于 2009-9-24 19:31:44 | 显示全部楼层
[ quote]被引用的内容,主要作用是在发帖时引用并回复具体楼层的帖子[/quote]
被引用的帖子和您的回复内容
[ code]
e cho "PHPWind 欢迎您!"
[ /code]
Copy code
    echo "PHPWind 欢迎您!"
[ url]http://www.phpwind.net[/url] http://www.phpwind.net
[ url=http://www.phpwind.net]PHPwind[/url]PHPwind
[ email][email protected][/email][email protected]
[ [email protected]]email me[/email]email me
[ b]粗体字 粗体字
[ i]斜体字 斜体字
[ u]下划线下划线
[ align=center(可以是向左left,向右right)]位于中间
中间对齐
[ size=4]改变字体大小 改变字体大小
[ font=楷体_gb2312]改变字体 改变字体
[ color=red]改变颜色 改变颜色
[ img]http://www.phpwind.net/logo.gif[/img]
[ fly]飞行文字特效[/fly] 飞行文字特效
[ move]滚动文字特效[/move] 滚动文字特效
[ flash=400,300]http://www.phpwind.net/wind.swf[/flash] 将显示flash文件
[ iframe]http://www.phpwind.net[/iframe] 将在帖子中粘贴网页(后台默认关闭)
[ glow=255(宽度),red(颜色),1(边界)]要产生光晕效果的文字[/glow]
要产生彩色发光效果的文字
回复

使用道具 举报

发表于 2009-9-24 19:32:30 | 显示全部楼层
/quote
/alexhandsome
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-27 12:46 , Processed in 0.095957 second(s), 19 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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