找回密码
 点一下
查看: 1815|回复: 9

\\\\\\\\\\\  积累下来的问题,伟大的我阿,居然可以这么郁闷,..可以写书勒,///////////

[复制链接]
发表于 2007-3-30 21:03:12 | 显示全部楼层 |阅读模式
关于设置整数变量,




  怎么样设置整数变量不等于X,

     

    或者说怎么做出随即不重复,

          有一个随即不重复的T,自己看不懂,- -#


  1. Melee Initialization
  2.     事件
  3.         地图初始化
  4.     条件
  5.     动作
  6.         对战游戏 - 使用对战昼夜设置
  7.         可见度 - 创建一个状态为 允许 的可见度修正器给 玩家1(红色) ,设置 可见 在 (可用地图区域)
  8.         设置 Unit_Type_All[1] = 血魔法师
  9.         设置 Unit_Type_All[2] = 大魔法师
  10.         设置 Unit_Type_All[3] = 暗影猎手
  11.         设置 Unit_Type_All[4] = 牛头人酋长
  12.         设置 Unit_Type_All[5] = 恶魔猎手
  13.         设置 Unit_Type_All[6] = 月之女祭司
  14.         设置 Unit_Type_All[7] = 巫妖
  15.         设置 Unit_Type_All[8] = 地穴领主
  16.         设置 Integer_Index_End = 8
  17. Untitled Trigger 001
  18.     事件
  19.         单位 - 单位进入 Region 000 <预设>
  20.     条件
  21.         ((进入的单位) 的类型) 等于 小精灵
  22.     动作
  23.         单位 - 杀死 (进入的单位)
  24.         设置 Integer_Index_Selected = (随机整数,最小值: 1 最大值: Integer_Index_End)
  25.         单位 - 创建 1 个 Unit_Type_All[Integer_Index_Selected] 给 ((进入的单位) 的所有者) 在 (Region 000 Copy <预设> 的中心点) ,面向角度为 默认建筑朝向 度
  26.         设置 Unit_Type_All[0] = Unit_Type_All[Integer_Index_Selected]
  27.         设置 Unit_Type_All[Integer_Index_Selected] = Unit_Type_All[Integer_Index_End]
  28.         设置 Unit_Type_All[Integer_Index_End] = Unit_Type_All[0]
  29.         设置 Integer_Index_End = (Integer_Index_End - 1)
复制代码



谁可以来解释下上面的T,
_______________________________________________________________________

下面是我照着搬出来做的T,为什么就不给我好好滴运行捏,??
  1. 对战初始化
  2.     事件
  3.         地图初始化
  4.     条件
  5.     动作
  6.         设置 X_suiji[1] = 000 <预设>
  7.         设置 X_suiji[2] = 001 <预设>
  8.         设置 X_suiji[3] = 002 <预设>
  9.         设置 X_suiji[4] = 003 <预设>
  10.         设置 X_suiji[5] = 004 <预设>
  11.         设置 X_suiji[6] = 005 <预设>
  12.         设置 Integer_Index_Selected = 6
  13. hero
  14.     事件
  15.         单位 - 单位进入 矩形区域 007 <预设>
  16.         单位 - 单位进入 矩形区域 008 <预设>
  17.         单位 - 单位进入 矩形区域 009 <预设>
  18.         单位 - 单位进入 矩形区域 010 <预设>
  19.     条件
  20.         任一条件成立
  21.             条件
  22.                 ((触发单位) 的类型) 等于 海豹
  23.                 ((触发单位) 的类型) 等于 企鹅
  24.                 ((触发单位) 的类型) 等于 野猪
  25.                 ((触发单位) 的类型) 等于 沙丘之虫
  26.     动作
  27.         设置 Temp_Point = (X_suiji[Integer_Index_Selected] 的中心点)
  28.         单位 - 立即移动 (触发单位) 到 Temp_Point
  29.         自定义代码: call RemoveLocation ( udg_Temp_Point )
  30.         设置 Integer_Index_Selected = (随机整数,最小值: 1 最大值: Integer_Index_End)
  31.         设置 X_suiji[0] = X_suiji[Integer_Index_Selected]
  32.         设置 X_suiji[Integer_Index_Selected] = X_suiji[Integer_Index_End]
  33.         设置 X_suiji[0] = X_suiji[Integer_Index_End]
  34.         设置 Integer_Index_End = (Integer_Index_End - 1)
复制代码

为什么上面这个T还是重复随即,
________________________________________________________________


我的地图里是根据情况开启随即系统,

     但是我开启随即的T之后,

最开始在矩形区域 008-010 <预设>里的单位都不会被随即,

   非得自己控制单位再进入一次,这种情况正常么,??

     如果正常,那么我想随即移动最初在矩形区域 008-010 <预设>里的单位,

       应该怎么写Tirgger,??

      
    觉得我描述的不清楚的地方请指出,
发表于 2007-3-30 22:26:55 | 显示全部楼层
设置 A[1] = 血魔法师
        设置 A[2] = 大魔法师
        设置 A[3] = 暗影猎手
        设置 A[4] = 牛头人酋长
        设置 A[5] = 恶魔猎手
        设置 A[6] = 月之女祭司
        设置 A[7] = 巫妖
        设置 A[8] = 地穴领主
        设置 (B=8)


Untitled Trigger 001
    事件
        单位 - 单位进入 Region 000 <预设>
    条件
        ((进入的单位) 的类型) 等于 小精灵
    动作
        单位 - 杀死 (进入的单位)
        设置 C= (随机整数,最小值: 1 最大值:    (B=8)     )   
        单位 - 创建 1 个 A[C] 给 ((进入的单位) 的所有者) 在 (Region 000 Copy <预设> 的中心点) ,面向角度为 默认建筑朝向 度
        设置 A[0] = A[C]
        设置 A[C] = A[(B=8)   ]
        设置 A[(B=8) ] = A[0]
        设置 (B=8) = (   (B=8)     -1)


酱紫明白了吗?
其实就是使用了变量  A[ 0  ]   来代替已经选择的单位,

接着原来单位的变量A(  C  ) 代替原来设置的单位中的最后1个(A( B )),
相当于把最后1个单位移动到A(  C  )

这样了呢,可以认为A( ( B ) )已经没有单位了(实际上还有),那么,
把已经选择的单位(已经变成A( 0 ) ) 放到A(B),也就是放到最后面,
这时,已经选择的单位编号为最后1个

最后,
设置B=B-1,这样,已经选择的单位的编号大于B,所以不在变量A(XXX)里面了,所以不会被重复选择.
回复

使用道具 举报

发表于 2007-3-30 22:33:45 | 显示全部楼层
好吧,如果还不明白的话,看这个人工演示........

A0(不在选择队列中)    A1  A2  A3  A4  A5  A6  A7  A8
B=8

假定A3被选择,
变成A0=A3 (不在选择队列中)   A1  A2  A4  A5  A6  A7  A8

接着,把A8代替A3原来的位置
A1  A2  A8  A4  A5  A6  A7


接着,重新排序
A1  A2  A8  A4  A5  A6  A7  A3
这时候B=8,所以  A3  还在选择队列

最后,B=B-1=8-1=7
就是说 A3在第8号 大于B=7,所以不在选择队列当中

现在选择队列变成
A0(不在选择队列中)    A1  A2  A8  A4  A5  A6  A7         A3(不在选择队列中)


依次重复,
loop.................................
回复

使用道具 举报

发表于 2007-3-30 22:47:35 | 显示全部楼层
至于LZ的第二个T,

首先错在没有设置Integer_Index_End = XXXX

接着........
看花了眼.....反正是错了..........


PS: LZ不素一般的郁闷........
强烈抗议LZ做变量名字过于复杂.................
回复

使用道具 举报

 楼主| 发表于 2007-3-31 09:53:41 | 显示全部楼层
引用第3楼wjf-wjf于2007-03-30 22:47发表的  :
至于LZ的第二个T,

首先错在没有设置Integer_Index_End = XXXX

接着........
.......
[s:38]........
     ,
       我做的地图里面想拥有不重复的随即,
         ...但是这个T貌似不能满足我的愿望,
              想让单位不再被随入已经被选择单位的选择圈,
                ...应该怎么写T,...

    可以设置随即不等于某个数么,??
回复

使用道具 举报

发表于 2007-3-31 12:06:02 | 显示全部楼层
???
LZ的第一个T就是现成的了,直接用sharingen   copy过去就OK了.........
回复

使用道具 举报

 楼主| 发表于 2007-3-31 14:05:43 | 显示全部楼层
引用第5楼wjf-wjf于2007-03-31 12:06发表的  :
???
LZ的第一个T就是现成的了,直接用sharingen   copy过去就OK了.........
[s:37]
   他随即的时候为什么还是在重复,?/
回复

使用道具 举报

发表于 2007-4-1 23:43:00 | 显示全部楼层
呃,这2天由于要回去MB先人,没时间呢.........

第一个T会重复的话,是在所有单位都被选择了一次之后吧.

至于原因呢,  当整数 = 整数-1 = 1-1=0的时候,LZ可以自己人工做一次模拟就知道了.............

SO,当 整数 = 0 的时候要关闭触发,避免电脑的低级IQ错乱........................

做了个演示,LZ可以参考参考

不重复选择英雄.w3x

19 KB, 下载次数: 19

回复

使用道具 举报

 楼主| 发表于 2007-4-2 10:09:17 | 显示全部楼层
[s:41]
    您终于出现鸟捏,
     演示先收下鸟,!
回复

使用道具 举报

 楼主| 发表于 2007-4-3 12:49:00 | 显示全部楼层
...每次随即都是一样的,
[s:39]
      果然是随即,
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-12 23:20 , Processed in 0.053048 second(s), 21 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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