找回密码
 点一下
查看: 1705|回复: 5

[已解决]请教一下!

[复制链接]
发表于 2008-7-14 11:36:17 | 显示全部楼层 |阅读模式
环绕技能模板.w3x (43 KB, 下载次数: 8)
在这个JASS演示里 有一点BUG 但自己弄了一下还是没弄好!
就是怎么让 英雄(触发单位)死亡后让身边的这些旋转单位一并死亡和删除计时 这个演示里没做到!
麻烦高手帮忙写一下!谢谢!
发表于 2008-7-14 13:03:11 | 显示全部楼层
[codes=jass]
function StoreHuanRaoUnit takes unit HuanRaou, unit u returns nothing
call StoreInteger(udg_cache,I2S(H2I(u)),"HuanRaoNumber",GetStoredInteger(udg_cache,I2S(H2I(u)),"HuanRaoNumber")+1)
call StoreInteger(udg_cache,I2S(H2I(u)),"HuanRao"+I2S(GetStoredInteger(udg_cache,I2S(H2I(u)),"HuanRaoNumber")),H2I(HuanRaou))
endfunction

function UnitDeathTrigger takes unit u returns nothing
local integer i=0
local unit HuanRaou=null
local string s=I2S(H2I(u))
set i=1
loop
exitwhen i>GetStoredInteger(udg_cache,s,"HuanRaoNumber")
set HuanRaou=I2U(GetStoredInteger(udg_cache,s,"HuanRao"+I2S(i)))
call RemoveUnit(HuanRaou)
set HuanRaou=null
set i=i+1
endloop
set i=0
set s=null
endfunction
[/codes]
貌似是这样?
当然如果每个环绕单位都有Trigger的话,还要改。
回复

使用道具 举报

 楼主| 发表于 2008-7-14 20:24:17 | 显示全部楼层
不是很明白 这段!
回复

使用道具 举报

发表于 2008-7-21 14:39:43 | 显示全部楼层
就是,
1你在为英雄创建环绕的单位(小精灵)时,使用StoreHuanRaoUnit(GetTriggerUnit(),GetLastCreateUnit()),【第一个参数(HuanRaou)为小精灵之类的。第二个参数(u)为被环绕的英雄。】存储英雄的小精灵并为其添加序号。
2.在释放技能的英雄死亡时,使用UnitDeathTrigger(GetTriggerUnit())来清洁小精灵。
不过还是太麻烦,我也不好跟你说,你自己研究一下我的,在再研究一下他的。搞明白就行,这问题太大,不好解决,研究一下就可以了(其实叫我改不是不可能,只是我现在要搞一大堆东西,就不帮你了,真是对不起…………)
回复

使用道具 举报

发表于 2008-7-24 18:22:09 | 显示全部楼层

做好了

给你吧

【Debug环绕技能模板】BUG修改By【血戮魔动冰】.w3x

58 KB, 下载次数: 5

回复

使用道具 举报

发表于 2008-7-29 11:08:40 | 显示全部楼层
感谢楼上的回答, 同时也感谢LZ的提问, 这是Jass中一个很有代表性的问题: 使用计时器的时候, 如何中途访问创建的物件. 现在解决思路大体上有两种, 一是用缓存, 把创建的物件"绑"在计时器上; 二是用vJass中的 struct, 把技能中用到的所有东西都放在一个struct里, 然后用轮询的方式访问, 不用的时候整个 struct一起删除. 二者各有优缺点.
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-22 20:05 , Processed in 0.264036 second(s), 21 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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