找回密码
 点一下
查看: 2099|回复: 2

有关触发器参数传递问题

[复制链接]
发表于 2011-9-14 15:33:13 | 显示全部楼层 |阅读模式
[trigger]BomberRain:CreateBombers
    選項:動作, 創造執行緒
    返回類型:(無)
    參數
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;Point = 無點 <點>
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;Bombers = (空的單位群組) <單位群組>
&#160;&#160;&#160;&#160;語法文字:BomberRain:CreateBombers(Point,Bombers)
&#160;&#160;&#160;&#160;提示文字:(無)
&#160;&#160;&#160;&#160;自訂腳本
&#160;&#160;&#160;&#160;本地變數
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;Unit = 無單位 <單位>
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;Count = ((EnemiesCount+2)*2) <整數>
&#160;&#160;&#160;&#160;動作
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;一般 -等待遊戲時間(在0.0和10.0之間的隨機實數)秒
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;一般 -重複(動作)Count次
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;動作
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;單位 -為玩家15在Point使用預設面向(無選項)創造1個感染者
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;變數 -設定Unit=(最後被創造的單位)
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;單位 -從Unit新增ModeDifficultyMonsterLevel至Unit
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;單位 -命令Unit到( 攻擊以城市入口点為目標)(取代存在的命令)
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;單位群組 -新增Unit至Bombers
[/trigger]

这个触发中将单位新增到了参数Bombers的群组中。

调用这个函数能创建一些单位并添加到参数指定的群组中。
[trigger]CreateEnemies
&#160;&#160;&#160;&#160;選項:動作
&#160;&#160;&#160;&#160;返回類型:(無)
&#160;&#160;&#160;&#160;參數
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;UnitTypeId = 0 <整數>
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;PointType = 0 <整數>
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;Quantity = 1 <整數>
&#160;&#160;&#160;&#160;語法文字:CreateEnemies(UnitTypeId,PointType,Quantity)
&#160;&#160;&#160;&#160;提示文字:0为随机点,1为接近点,2为出生点,3为边界点,4为山洞
&#160;&#160;&#160;&#160;自訂腳本
&#160;&#160;&#160;&#160;本地變數
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;Groups = (Quantity+EnemiesGroup) <整數>
&#160;&#160;&#160;&#160;動作
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;一般 -若滿足(條件)則執行(動作)否則執行(動作)
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;If
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;(0和100之間的隨機整數)<=(ModeDifficulty*2)
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;Then
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;變數 -設定UnitTypeId=(UnitTypeId+1)
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;Else
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;一般 -若滿足(條件)則執行(動作)否則執行(動作)
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;If
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;Quantity>=5
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;ModeDifficulty<=4
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;Then
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;------- 限制难度
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;變數 -設定Groups=5
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;Else
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;變數 -設定Quantity=(Quantity+(0和3之間的隨機整數))
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;一般 -重複(動作)Groups次
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;動作
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;單位 -CreateEnemy(UnitTypeId,(Point:GetPoint(PointType)),Quantity)
[/trigger]

这个触发中修改了Quantity,这个是整数类型的参数,如果我传个变量作为参数,修改这个参数会直接修改传进来的变量么?


好像单位,点,区域,单位群组作为参数传递的都是指针……

那么这些整数,实数,布尔类型,字符串类型好像都不是传递的指针……

编码的时候有哪些需要注意的?

处理参数的时候,直接设定变量改变参数的值,是否会有不良影响?是不是该先设定个局部变量,将参数的值付给局部变量,再使用局部变量?
这种做法和直接用设定变量改参数有区别么?
不同类型的变量在参数传递的时候有区别么?


目前只知道操作参数中的单位群组会直接改变对应的群组。(相当于参数传递了群组的引用)
发表于 2011-9-14 16:28:38 | 显示全部楼层
点传递过去好像是形参来的,我试过用函数改变传入的点的xyz但是调用完后点的属性还是没变。。。。
回复

使用道具 举报

发表于 2011-9-14 19:01:03 | 显示全部楼层
对比Jass,Handle类的传递的都是指针,也就是说,纯Galaxy下只有int,fixed,string,bool等不是指针……
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-26 22:21 , Processed in 0.032822 second(s), 18 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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