找回密码
 点一下
查看: 1511|回复: 10

求教制作支持多人使用的DOTA先知的发芽技能

[复制链接]
发表于 2012-1-1 00:00:57 | 显示全部楼层 |阅读模式
这个技能就是制造一圈树木围住目标(可破坏物),一段时间后树木消失,我试过很多种方法,就是做不出支持多人使用,特向各位朋友请教,求演示,谢谢了。
发表于 2012-1-1 00:28:10 | 显示全部楼层
1. 动态数组
2. 哈希表
3. 局部变量
  

动态数组可以参考下这个帖子:
关于如何让一段触发可以同时运行多次不冲突 by 希瓦



其实我想说哈希表很简单很好很强大……
就算用局部变量。。应该也要哈希表绑定的
回复

使用道具 举报

 楼主| 发表于 2012-1-1 00:46:25 | 显示全部楼层

回 1楼(chyj4747) 的帖子

chyj4747:1. 动态数组
2. 哈希表
3. 局部变量
  
动态数组可以参考下这个帖子:
....... (2012-01-01 00:28)
谢谢你,认真的看完,但是我不会写自定义代码。。。
回复

使用道具 举报

发表于 2012-1-1 09:31:20 | 显示全部楼层
慢慢学吧~

那么就先用动态数组吧~
比如十棵树围,先准备个整数变量num=0;再准备个树变量,取个名叫tree吧
对第一个单位施放,tree[num+0] ~ tree[num+9]赋值,相当于tree[0~9]
然后num = num+1
对第二次施放,tree[num+0] ~ tree[num+9]赋值,此时相当于tree[10~19]
以此类推~

但是若之前的树挂了,那么空着的变量就浪费了,所以每次用技能都要检测之前的某组十棵树死光没;
检测方式个人想法是树死的时候设置对应的变量tree=没有(比如树是单位那么这里就是没有单位),然后用循环A从0-num做动作,循环里再开一个循环B,从0-9做动作,检测tree[A+B]是不是等于没有,如果不是那么直接跳出循环B,如果B等于9且tree[A+B]=没有(即全部树死光了)那么记录循环数A并跳出循环A
然后以这个记录的A为基础设置变量,即tree[A+0]~tree[A+9]=新建树在……
如果循环A结束后仍旧没有空的树组,那么num=num+1,然后赋值。。

以上就基本能实现多人化的功能了,只不过循环A会越来越久,因为num会越来越大
所以当树死的时候判断是不是num的那组(也就是基础最大的那组),是的话判断那组是不是死光了,是的话从num-1到0检测,直到存在有树活着的组,num记录为那组的基础

PS:上面循环数A和B只是打字方便。。实际使用的话推荐新建整数变量专门用于循环,且每个地方的循环用不同变量,不过若循环比较短的则使用A和B也没什么问题~
   

以上仅个人的大致思路。。
应该有能改进的地方……可惜动态数组我平时基本不用的,所以没怎么研究。。
回复

使用道具 举报

发表于 2012-1-1 11:50:52 | 显示全部楼层
记得小鸟之前做过一个深渊领主的技能 上面有个超简单的给可破坏物设置生命周期的方法
回复

使用道具 举报

 楼主| 发表于 2012-1-1 13:19:36 | 显示全部楼层

回 3楼(chyj4747) 的帖子

chyj4747:慢慢学吧~

那么就先用动态数组吧~
比如十棵树围,先准备个整数变量num=0;再准备个树变量,取个名叫tree吧
对第一个单位施放,tree[num+0] ~ tree[num+9]赋值,相当于tree[0~9]
....... (2012-01-01 09:31)
谢谢你,我研究一下
回复

使用道具 举报

 楼主| 发表于 2012-1-1 13:20:16 | 显示全部楼层

回 4楼(破喉咙) 的帖子

破喉咙: 记得小鸟之前做过一个深渊领主的技能 上面有个超简单的给可破坏物设置生命周期的方法 (2012-01-01 11:50)
求个链接朋友
回复

使用道具 举报

发表于 2012-1-1 13:29:38 | 显示全部楼层
破喉咙: 记得小鸟之前做过一个深渊领主的技能 上面有个超简单的给可破坏物设置生命周期的方法 (2012-01-01 11:50)
哦。。原来还有生命周期这招……
回复

使用道具 举报

发表于 2012-1-1 15:00:49 | 显示全部楼层
那方法如下
创造可破坏物,设置生命值为XX

每XX秒做动作
选取所有可破坏物,等于该类型则生命值=生命值-1
生命值为0的时候它就自动死掉了~
回复

使用道具 举报

 楼主| 发表于 2012-1-1 17:31:32 | 显示全部楼层

回 8楼(喵呜~) 的帖子

喵呜~: 那方法如下
创造可破坏物,设置生命值为XX

每XX秒做动作
选取所有可破坏物,等于该类型则生命值=生命值-1
....... (2012-01-01 15:00)
研究了一会做出来了,谢谢大家
回复

使用道具 举报

发表于 2012-1-2 00:32:50 | 显示全部楼层
LZ需要注意的是不能用小鸟(额。。就是你LS的猫呜)那个方法的树来做根据树生命值变化效果的技能,比如吃树回复树HP*某系数或者什么按照树血量改变树人血量,如果有那样的技能,用单位代替树然后用生命周期吧(就是水人那种时间条)。。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-23 01:37 , Processed in 0.030365 second(s), 18 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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