找回密码
 点一下
查看: 3244|回复: 6

JASS里有没多维数组???

[复制链接]
发表于 2007-3-17 02:25:51 | 显示全部楼层 |阅读模式
随便问问
发表于 2007-3-17 16:59:23 | 显示全部楼层
没有~
回复

使用道具 举报

发表于 2007-3-17 17:36:48 | 显示全部楼层
模拟~~
回复

使用道具 举报

发表于 2007-8-10 15:27:39 | 显示全部楼层
有个教程中说可以模拟  下面是模拟介绍

WAR3本身就大量地使用数据结构,

如果创建1组无敌隐形单位, 那么这组单位的很多属性可以用来做模拟数组宽度(维数), 这样就变成 n 维数组了.

只需要做个函数在维数之间比较搜索, 便可以实现模拟数组中的元素调用.
同样也可以模拟其他结构.

逻辑(逆向思维):
在WE中创建新单位, 使用模型: Doodads\\Terrain\\LOSBlocker\\LOSBlocker.mdx(路径阻断器的模型)
使单位无敌, 隐形, 中立, 不可移动攻击, 生命/魔法不可回复, 有背包, 是英雄, 尽可能把属性清零, 设置最大生命值/法力为JASS_MAX_ARRAY_SIZE = 8192

利用单位的Custom value, life, mana, 位置x坐标, 位置y坐标等数值型的属性作为维数.
比如: 我们只用life, mana 模拟2维物品型数组item[(unit life),(unit mana)]

1) 模拟二维数组item[(unit life),(unit mana)]的赋值:
a)创建unit1 -> b)设置unit1 life=0, unit1 mana=0 -> c) 给unit1 物品1 -> d)放进 Unit Group

我们便模拟给2维物品型数组赋了值:set item[0, 0] = 物品1, 注意: b)步为模拟的维数. 我们可以继续重复以上步骤, 改变单位的unit life 和 unit mana, 给单位不同物品, 便相当于分别给item[(unit life),(unit mana)]赋了值(物品).
如: 创建unit2 -> 设置unit2 life=1, unit2 mana=0 -> 给unit2 物品2, .......
模拟了 set item[1, 0] = 物品2

2) 使用和检索: 在Unit Group中寻找指定life和mana的单位, 根据找到单位的返回携带物品. 比如, 要取出item[0,1]的值, 便可以在Unit Group中寻找life=0, mana =1的单位, 这样便可以返回携带物品了.
set myitem = GetItem(life, mana)

如果模拟数组的赋值按顺序赋值, 如对维数最大为 item[6, 4]的模拟数组赋值按这样的顺序赋值:
item[1, 1] , item[2, 1], item[3, 1] ...., item[6, 1],
item[1, 2] , item[2, 2], item[3, 2] ...., item[6, 2],
item[1, 3] , item[2, 3], item[3, 3] ...., item[6, 3],
item[1, 4] , item[2, 4], item[3, 4] ...., item[6, 4],

那么, 可以把 item[6, 4] 作为 6 进制数组来检索处理, 这样便不用作维数(life, mana)的比较了. 直接把6进制数转化为10进制, 然后在Unit Group中按转化得到的10进制数提取模拟维数的值. 不知道我这么说, 说明白了没有


当然, 因为此过程要创建单位来储存值, 只适合于较小的数组. 对于背包系统可以充分利用临时单位的6个背包格数, 减少单位创建. 这种模拟办法可以模拟较多的类型的数据, 如技能, BUFF, 数值,字符串, 位置....等等.
回复

使用道具 举报

发表于 2007-8-10 22:02:49 | 显示全部楼层
可以自己模拟出多维来。
比如,你想建一个5行9列的数组,
那么,你就先建立一个数组tmp_array,
这个数组的X行Y列,就是tmp_array的9X+Y位。(数组首行首列是0行,0列)
  0 1 2 3 4 5 6 7 8
0 




回复

使用道具 举报

发表于 2007-10-18 14:30:42 | 显示全部楼层
模拟并不难,但是用脑子记东西很郁闷。?*?
回复

使用道具 举报

发表于 2007-10-20 17:28:52 | 显示全部楼层
我记得虽然不可以多维,但是貌似有谁曾经说,可以用点坐标来代替的吧,还有么就是用朱朱的一个做法了吧..
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-23 00:15 , Processed in 0.039056 second(s), 18 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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