找回密码
 点一下
查看: 1110|回复: 8

帮我看看这样的排泄有效不

[复制链接]
发表于 2008-6-11 01:38:07 | 显示全部楼层 |阅读模式
我写了这样一些排泄。请大哥大姐们帮忙看看能排得掉不。
由于没有办法截图,我的T都是手写的。去掉了一些不重要的地方。
一、点的排泄:
事件:任意单位死亡
条件:触发单位等于(大魔王)
动作:单位—创建(1)个(公主)在区域(001)的中心点,面向(默认角度)
            点—删除区域(001)的中心点

二、单位组的排泄:
事件:任意单位死亡
条件:触发单位等于(貂禅)
动作:单位—创建(10)个(吕步)在区域(002)的中心点面向(默认角度)
           单位组—命令(最后创建的单位组)(攻击)(凶手单位)
          单位组—删除(最后创建的单位组)。

由于我搜索到的排泄方法都是用变量来做的,所以我不是很清楚如果不用变量,而是直接指定具体的点和单位组是否能成功排泻掉。
拜托各位抽点时间给点解答。
发表于 2008-6-11 01:43:39 | 显示全部楼层
第一个排泄不行
第二个排泄会出BUG……

第一个必须用变量先保存,删除时也是删除该变量
第二个没必要删除的
回复

使用道具 举报

发表于 2008-6-11 01:44:22 | 显示全部楼层
第一个是无效的,点得清楚必须要用变量来完成的
点—删除区域(001)的中心点这个相当于再创建一个点然后清除,之前创建的那个仍然没有被清除掉

第二个是可以的,嗯~~
回复

使用道具 举报

发表于 2008-6-11 01:46:39 | 显示全部楼层
第二个没必要,一直是同一个单位组,没有Create何必删除
如果删除了,那么以后都没办法使用 最后创建的单位组 这个变量了(当然是指在T里)
回复

使用道具 举报

发表于 2008-6-11 01:48:02 | 显示全部楼层
function CreateNUnitsAtLoc takes integer count, integer unitId, player whichPlayer, location loc, real face returns group
    call GroupClear(bj_lastCreatedGroup)
    loop
        set count = count - 1
        exitwhen count < 0
        call CreateUnitAtLocSaveLast(whichPlayer, unitId, loc, face)
        call GroupAddUnit(bj_lastCreatedGroup, bj_lastCreatedUnit)
    endloop
    return bj_lastCreatedGroup
endfunction

这个是T创建单位的原函数,每次调用这个函数都会清空bj_lastCreatedGroup,然后把创建的单位放进去
如果删除了,那么bj_lastCreatedGroup无法再存单位,也就失效了
回复

使用道具 举报

发表于 2008-6-11 01:48:34 | 显示全部楼层
看了下,果然会出问题的………………

因为创建n个单位的触发都是往这个单位组里添加单位的,删除了就无法继续使用了
回复

使用道具 举报

发表于 2008-6-11 01:49:12 | 显示全部楼层
如果不用变量,而是直接指定具体的点和单位组
看来是都不行了~具体看楼上
回复

使用道具 举报

发表于 2008-6-11 01:50:58 | 显示全部楼层
关于最后创建的单位组,我去查了下代码,libla也已经把代码贴出来了,直接删除会出问题的,原因见4、5楼

这样删除命令已经发出去了,不会有来不及攻击的事情的
回复

使用道具 举报

 楼主| 发表于 2008-6-11 02:10:20 | 显示全部楼层
差点犯下大错哦,还好有你们指正。
我这就去全部改过。用点变量来排泄。
我说怎么排了跟没排差不多卡。原来必须用变量排。
单位组我就不排了,我的单位组都没用上变量的,排了反而出问题。
谢谢各位。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-7-20 18:12 , Processed in 0.031626 second(s), 18 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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