level 1
读了一些你关于we的帖子,很有收获,谢谢!问几个问题(仅限于t的范围,不要用jass):1.怎么做二元变量?2.请给谢模型导入方面的基础资料.3.魔法/魔法效果/魔法特效等等类似的模型怎么区分?各有什么作用?4.选项"固定开始点"有什么用?5.怎样最大提高用t遍出的图的读图效率?有时候一张图需要读好半天.暂时就这些,谢谢
2007年03月10日 03点03分
1
level 8
2---第二种情况就是两个变量都是数组,比如a[Integer A],b[Integer A]都是数值类型:例如:假设我们还是要进行物品合成,不过这次有两组地区:地区001 002摆放原料,003产生成品地区004 005摆放原料,006产生成品建立一个新的数组c[],类型为地区。先写语句:Set c[1]=地区003Set c[2]=地区006物品-Picked every item in地区001and do(If (Item type of(picked item)等于 能量垂饰)then do(Set a[1]=1)else do(do nothing)) 物品-Picked every item in地区002and do(If (Item type of(picked item)等于 能量垂饰)then do(Set b[1]=1)else do(do nothing)) 物品-Picked every item in地区004and do(If (Item type of(picked item)等于 能量垂饰)then do(Set a[2]=1)else do(do nothing)) 物品-Picked every item in地区005and do(If (Item type of(picked item)等于 能量垂饰)then do(Set b[2]=1)else do(do nothing)) 也就是把地区001,002对应的变量设定为a[1],b[1]把地区004,005对应的变量设定为a[2],b[2]而且只要能量垂饰出现在这些区域,这些变量就获得数值1类似地,把太阳钥匙和木头设定成数值2,3然后修改楼上的If (Integer Comparison)then do(action)else do(Do noting) 语句为:For each Integer A,do (Action)这里的Action完全替换成楼上的If (Integer Comparison)then do(action)else do(Do noting) 语句,修改过程和楼上完全相同注意要把原来的x换成a[Integer A],把y换成b[Integer A],把地区003换成c[Integer A]这样,这两组地区中哪一组中摆放了合适的物品,对应的产品区域就能出现 经验之书
2007年03月10日 06点03分
3
level 8
2楼:2元变量1---第一种形式:两个变量都是非数组:比如x,y假设我们要进行物品合成:设定3个地区,地区001,002为原料摆放地区,003为产品出现地区建立数值变量x,y写语句:物品-Picked every item in地区001and do(If (Item type of(picked item)等于 能量垂饰)then do(Set x=1)else do(do nothing)) 物品-Picked every item in地区002and do(If (Item type of(picked item)等于 能量垂饰)then do(Set y=1)else do(do nothing)) 这样,能量垂饰物品在001,002区域内被设定成数值1类似地,把太阳钥匙设定为2,木头设定为3然后写语句:If (Integer Comparison)then do(action)else do(Do noting)其中Integer Comparison会显示成(语句)等于0把0改为4,(语句)改为Arithmetic 显示为Value+1,把Value和1替换为x,y。这样Integer Comparison变成x+y等于4然后修改action为物品-Create 经验之书 at地区003这样,每当001,002地区内物品都是 太阳钥匙 的时候,因为太阳钥匙代号2,那么,x=y=2,x+y=4,满足合成条件,在地区003内将会出现 经验之书同样,当001内是 木头,002内是能量垂饰的时候,003地区内也出现经验之书
2007年03月10日 07点03分
5
level 8
3--第三种情况很少遇到,用的是a[Integer A],b[Integer B]暂时没想好有什么简单例子。
2007年03月10日 07点03分
6
level 8
第三种情况的引用,基本上就是For each Integer A,do (Action)中Action替换为For each Integer B,do (Action),在里面的Action中对a[Integer A],b[Integer B]进行判断并执行某些操作(比如生成物品)。注意,3楼For each Integer A后面有from 1 to 2,不要漏掉,刚才忘写了
2007年03月10日 07点03分
7
level 8
模型导入我基本没有用过,可能要修改war3.mpq映像文件,直接从外界导入的maya,3dsmax,autoCAD等3维软件生成的文件不可用魔法/魔法效果/魔法特效这些模型本质上可以通用。有些属于光影模型,有些属于物体模型,只是按照这两类区分就可以,同类的可以通用选择固定开始点实际上就是在生成的战役或者战斗地图中,使玩家的主基地位置固定。通常不使用这个的话,地图不可以被保存。关于地图的读取效率很容易提高,一方面是和地图的触发器复杂程度有关的,另一方面还与地图上事先摆放的物体的多少有关,后者影响远远大于前者。我做的那个地图一共有12个独立的触发器系统,但是地图上几乎什么都没有摆放,景物都靠触发器生成,如果这些景物或者怪物都事先摆放在地图上,读取速度会减慢一倍还多
2007年03月10日 07点03分
8
level 8
所以,尽可能不在地图上预先摆放太多的布景,这是提高地图读取速度的关键
2007年03月10日 07点03分
9
level 1
感谢对于问题2.3.4.5的回答!虽然问题1你写的最多,但是恐怕你没有理解我的意思......在vb中可以直接声明二元(多元)数组变量,例如:number(1,1),number(1,2)...number(2,1),munber(2,2)......而we中却只能声明一元数组变量,例如number(1),number(2),munber(3)....怎么用we作呢?(我不知道jass能不能支持多元数组.)请解答,谢谢.还有为了你的工作量着想,t语句不用写那么详细,略微说说我就明白了.
2007年03月10日 11点03分
10
level 8
您所说的是2维数组而不是2元变量。2维数组在编辑器内暂时还没有支持。2维数组在数学上等同于2维矩阵。具体模拟办法:假如想要构建一个为100行100列的数组,我们可以利用1维数组x[]在指令中调用x[(((Integer A)x100)+(Integer B))]来使用,这样,当A,B分别取值0~99的过程中,就形成10000个数值,对应了2维数组所有元素。比如第36行第8列的元素显示为x[3507],使用者一看后两位07就知道元素列标为07+1=8,那么前面的自然就是行标35+1=36。利用6楼的嵌套调用,就可以直接对x[(((Integer A)x100)+(Integer B))]进行调用和赋值。
2007年03月10日 14点03分
11
level 8
类似地,当我们用Integer Variable调用事先定义的数值变量 C,D时,将Cx10,000和Dx1,000,000加在Ax100+B前面,就构成更高的3或者4维数组。
2007年03月10日 14点03分
12
level 0
关键是we支持一维数组的无限下标,即无需声明数组个数,可以随便用到无限.而如果我定义了100*100的二维数组,当我需要(101,1)怎么办?有时候是无法提前估计到底需要多少的.
2007年03月11日 11点03分
13
level 0
不要说一维无限点集和二维无限点集都是可数集数量相等,所以可以找到一个对应关系.那个关系我做出来过,可惜太复杂太慢.光辉之晨星
2007年03月11日 11点03分
14
level 8
之所以说是所谓的“模拟”,就是因为我们模拟的2维矩阵具有大小限制,所以这矩阵的大小要靠使用者事先估算,这就要看你估算的本事了。
2007年03月11日 15点03分
15
level 8
we毕竟不是万能程序,它不够基本,所以限制也很多。这也是使用它的一个乐趣来源,因为有些东西用we来做比较有挑战性。呵呵
2007年03月11日 15点03分
16
level 8
比如最早的we连随机数都没有,只能随机物品。所以当时的随机数程序都是先随机出物品类型,再按照类型设定数值来人为创造随机数功能的。
2007年03月11日 15点03分
17