Re: [WE ]請教一下,我這樣寫對改善記憶體漏失有幫 …

看板WarCraft (魔獸爭霸 - 魔獸爭霸3)作者 (拉可羅洛)時間18年前 (2008/03/08 00:26), 編輯推噓19(19022)
留言41則, 13人參與, 最新討論串1/1
我不知道DestroyTrigger(GetTriggeringTrigger())以後 TempTrigger[T_ID]還能不能用= = 無法回答 orz ------------- 如果是我的話我用區域變數,雖然方法不一樣,但效果一樣 機機毛毛的GUI+JASS Larchrono的關懷:跑一次就創新觸發,剛創的觸發跑完後會自己砍自己掉 ●用Custom script插進去 local trigger loctrigger=CreateTrigger() XXXX..... XXXX..... XXXX..... call TriggerRegisterUnitEvent(loctrigger,GetLastCreatedUnit(),→ →→ EVENT_UNIT_DEATH ) call TriggerAddAction(loctrigger,function ※Trig_***_Func00#A ←名子不一定 要找) ●給loctrigger用的function,故意設條件不符合不讓他跑 部隊群組 - Pick every unit in (Units in (自己畫個小區域) matching (假 等於 真) →→ and do (Actions)  迴一行動    部隊死亡觸發裡你要的行動....    XXXX.......    XXXX.......    觸發 - Run trigggg[(Player number of (Owner of (Triggering unit)))] →→ (ignoring conditions)●見下文    Custom script: call DestroyTrigger(GetTriggeringTrigger()) 最後 編輯→轉換為自訂文字 找一下這個function的名子,通常都叫做Trig_***_Func00#A *** 是現在全部這一大條這觸發的名子 # 不一定,動作數目多寡會影響這數字 找到以後複製名子,編輯→復原觸發轉換 貼到剛剛說要找的紅色文字 PS:以後若這一整條觸發有修改,#會有更動,要再重找一次 : ============================================== : 另外之前我看到新增event也會增加記憶體負擔,只能將整個觸發砍了才會刪掉事件。 : 那麼我這樣寫可以改善嗎? : --------//使用觸發陣列變數來增加只執行一次的事件。 : 設定 TempTigger[T_ID] = TempTiggerS : 觸發 - 於(TempTigger[T_ID])增加事件:(部隊 - (最後創造的部隊) 死亡) : 設定 T_ID = T_ID + 1 : -------//並在該觸發的開頭加上call DestroyTrigger(GetTriggeringTrigger()) : 觸發 TempTiggerS : 事件 : 條件 : 動作 :   自訂腳本:call DestroyTrigger(GetTriggeringTrigger()) : --------------------- : 這樣寫的話有用嗎? 另外,這樣的話,在該觸發被執行後,因為 : call DestroyTrigger(GetTriggeringTrigger())而被刪掉的 : 觸發變數TempTigger[T_ID]那個值是變為空(null)嗎?有沒有辦法判斷? : 另外一個問題,有沒有辦法取得觸發變數陣列在執行時的索引值? : 舉例來說,我希望觸發TempTigger[5]在執行的時候能抓到它的索引值也就是5, : 然後指定給TempTiggerEmpty[5] = true : 這樣就可以用迴圈來跑看那一個索引位置已經被執行過也被移除空了出來以便重新指定 : 新的觸發與事件。 : 另外,解答這個問題在解決不同的玩家在執行事件-遊戲時間經過或事件-計時器歸零 : 時抓取玩家編號也有作用。 ●這樣效果應該一樣吧,抓觸發單位的玩家的編號,跑編號的觸發 : 例如:玩家3的英雄死亡後,開啟記時器3的倒數, :    並增加事件-記時器3時間歸零 到 觸發 玩家復活[3] :    這樣就可以玩家復活那個觸發中根據抓到的陣列索引值來復活相應玩家的英雄了 -- 黃XD全部重製了D@三國貳FalconEX三國‧論劍,站在一樣的立場 學WE是用來保護世界和平的 http://www.wretch.cc/blog/larchrono -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.165.135.236

03/08 00:30, , 1F
推XD
03/08 00:30, 1F

03/08 00:31, , 2F
呿,你把黃XD全部重製了嗎,這樣的話我就不追究了
03/08 00:31, 2F

03/08 00:32, , 3F
我期待著你用WE保護世界和平的那一天
03/08 00:32, 3F

03/08 00:41, , 4F
\._ . 戳戳 你有啥資格追究?
03/08 00:41, 4F

03/08 00:44, , 5F
憑我是一個有自立思考能力的有機碳源生命體
03/08 00:44, 5F

03/08 00:53, , 6F
請問狗可以追究閣下何德何能活在這個世界上嗎?
03/08 00:53, 6F

03/08 00:59, , 7F
酷,原來觸發註冊是這樣用的。
03/08 00:59, 7F

03/08 01:00, , 8F
我可以請教原po的JASS是怎麼學的嗎?
03/08 01:00, 8F

03/08 01:18, , 9F
我在盜圖的過程中學到了很多很多的東西
03/08 01:18, 9F

03/08 01:23, , 10F
可以,只要他有辦法表達
03/08 01:23, 10F

03/08 01:23, , 11F
我倒是比較好奇閣下有沒有資格呢,呵呵呵
03/08 01:23, 11F

03/08 01:26, , 12F
感謝指教,不過,我原來是不想用jass搞才提出觸發陣列的想法
03/08 01:26, 12F

03/08 01:27, , 13F
不過還是很感謝你啦 囧....
03/08 01:27, 13F

03/08 01:28, , 14F
另外,如果要加的事件是幾秒之後執行,並將玩家編號傳給該
03/08 01:28, 14F

03/08 01:30, , 15F
觸發,以利該觸發使用,這樣又要如何寫呢?
03/08 01:30, 15F

03/08 01:30, , 16F
因為幾秒之後執行這個事件好像無法抓到觸發玩家....
03/08 01:30, 16F

03/08 01:29, , 17F
模仿是學習的開始 本來就是這樣 我也從OS學了很多東西
03/08 01:29, 17F

03/08 01:31, , 18F
V大你要的東西用區域變數做吧
03/08 01:31, 18F

03/08 01:32, , 19F
不能用區域變數傳遞吧?已經是不同的觸發了。
03/08 01:32, 19F

03/08 01:33, , 20F
專業
03/08 01:33, 20F

03/08 01:33, , 21F
我的意思是,在觸發A,把時間事件加到觸發B,順便把觸發A的
03/08 01:33, 21F

03/08 01:33, , 22F
區域變數傳過wait後 轉成全域 傳過觸發
03/08 01:33, 22F

03/08 01:34, , 23F
觸發玩家編號傳遞到觸發B去,讓B也可以使用到。
03/08 01:34, 23F

03/08 01:35, , 24F
用wait只有用在跑一次的事件,那如果是每x秒執行的事件呢?
03/08 01:35, 24F

03/08 01:37, , 25F
如果用全域變數傳的話,兩個玩家都觸發的話該變數又會被蓋掉
03/08 01:37, 25F

03/08 01:36, , 26F
說實話 弄這麼麻煩沒好處 一個玩家一條比較省事 也好維護
03/08 01:36, 26F

03/08 01:39, , 27F
也只好這樣了 囧,模組化失敗
03/08 01:39, 27F

03/08 01:42, , 28F
傳資料進timer其實是可行 但是要用所謂的jass return bug
03/08 01:42, 28F

03/08 01:43, , 29F
那樣做下去基本上就是全JASS寫了 要用GUI應該是不太可能
03/08 01:43, 29F

03/08 01:50, , 30F
我覺得可以先討論看看v兄要做的效果是什麼,
03/08 01:50, 30F

03/08 01:50, , 31F
很多東西不見得要用複雜的方法做。
03/08 01:50, 31F

03/08 01:58, , 32F
用迴圈去比對GetTriggeringTrigger()跟TempTrigger[] ?
03/08 01:58, 32F

03/08 01:59, , 33F
剛剛發現問題點不是要傳資料 只是要取得index
03/08 01:59, 33F

03/08 02:36, , 34F
推模仿是學習的開始這句話
03/08 02:36, 34F

03/08 02:36, , 35F
讓我想到我統計老師@@
03/08 02:36, 35F

03/08 04:04, , 36F
larch比較謙遜,wix態度讓人看了真的不蘇湖
03/08 04:04, 36F

03/08 07:13, , 37F
追究.... 好像別人欠你一樣.... "東吳可消事件"嗆聲也沒道歉
03/08 07:13, 37F

03/08 07:37, , 38F
東吳可消? 我只說了"不是有時間的都是召喚部隊"吧
03/08 07:37, 38F

03/08 08:52, , 39F
面子問題 從以前到現在都是這樣= =拿得起 放不下
03/08 08:52, 39F

03/08 09:43, , 40F
面子問題 從以前到現在都是這樣= =拿得起 放不下
03/08 09:43, 40F

03/08 13:51, , 41F
這種話麻煩你們對鏡子講
03/08 13:51, 41F
文章代碼(AID): #17qMownz (WarCraft)
文章代碼(AID): #17qMownz (WarCraft)