精華區beta WOW 關於我們 聯絡資訊
由於我之前po的被吃掉了,重新po一次。 /跑 t={地面座騎編號}m=GetZoneText()if(m~="達拉然"and m~="冬握湖" and IsFlyableArea())or(GetSubZoneText()=="卡薩斯平臺")then t={飛行座騎編號 }end if not IsMounted()then CallCompanion("MOUNT",t[random(#t)])end /下馬 *請自動把 /跑 後面的3行接成1行 *長毛象不鳥此巨集的下馬指令,猜測載具類都不行。歡迎板友提供載具類的寫法。 *目前巨集字元數: 178 (意思是說你座騎部份可以填入76個字元,) *已測試地點: 達拉然、達拉然飛行平台、野外、可以上馬的副本 未測試地點:冬握湖、奧核之眼(對,我這幾個月都沒打冬握也沒打奧眼) *座騎編號請你打開人物介面選到坐騎那頁,查詢你的座騎編號。不同編號以逗號隔開。   1 2 3 4 5 6   7 8 9 10 11 12  後面的以此類推 座騎編號的範例:{1,3,5,6,10} *巨集說明:  1.會自動判斷能召喚飛行座騎就隨機召喚飛行座騎,不能的話就隨機召喚地面座騎。  2.如果已經在座騎上,自動下座騎。 *範例:  我有4隻座騎,從第一隻到第4隻分別為 1.100%馬 2.無頭馬 3.280%鳥 4.60%馬  我希望能飛的話就隨機召喚無頭馬或280%鳥,不能飛則隨機召喚100%馬或無頭馬。 則我的巨集如下 /跑 local t={1,2}local m=GetZoneText()if(m~="達拉然"and m~="冬握湖" and IsFlyableArea())or(GetSubZoneText()=="卡薩斯平臺")then t={2,3}end if not IsMounted()then CallCompanion("MOUNT",t[random(#t)])end /下馬 *小技巧:  如果你希望某隻座騎出現的機率大一點,可以重複輸入他的編號。  承上例,我希望提高無頭馬出現的機率,則我的地面座騎編號可以寫成{1,1,1,2}  如果我希望某隻座騎不要出現,就不要輸入他的編號。 *有人說奧核之眼不需要判斷,所以我把判斷式拿掉了,但是並未測試。  如果奧核之眼出問題了,請嘗試原本的巨集 /跑 local t={地面座騎編號}local m=GetZoneText()if(m~="達拉然"and m~="冬握湖 "and m~="奧核之眼" and IsFlyableArea())or(GetSubZoneText()=="卡薩斯平臺")then t={飛行座騎編號}end if not IsMounted()then CallCompanion("MOUNT",t[random(#t)])end /下馬 *本巨集改良自#19CcqLZz由ShionYu板友所分享的巨集。 *這個巨集還有改進的可能:  測試local t,m 的語法是否有效,是的話可以再壓縮字數。 -- 聖光之願 80級夜精牧 尤西莉 (天賦亂洗中) 我的治療手段是平均型 有多平均呢? 請看 http://www.wretch.cc/album/show.php?i=cpz99&b=1&f=1807169613&p=0 (戒律) -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 59.105.59.11
Xavy:昨天有個什麼GetMiniZoneText還什麼的被吃了 dont konw why 03/13 16:34
Nector:推!達拉然不能用一般的坐騎巨集非常困擾中!! 03/13 17:02
hou0211:推 可用,可以加上城底區排水口嗎? 03/13 17:21
那個我想過,當時看小地圖顯示達拉然,就想大概讀GetSubZoneText()會是達拉然 那就寫不出來。 不過Xavy提到GetMiniZoneText? 如果能讀出"下水道"之類的,就有機會!!
Xavy:昨天有版有PO 可是他自D了 03/13 17:28
ZincSaga:推 03/13 17:30
終於能上線了,測試完畢 GetSubZoneText() 在下水道會回傳"城底區" GetMiniZoneText() 沒有回應,應該不是正確的名稱 ※ 編輯: PEIRON 來自: 59.105.59.11 (03/13 23:06)
Fenikso:要凹字數的話可以用a and b or c取代if a then b else c 03/14 00:51
Fenikso:例如第一段變 t=(m~=...)and{地面座騎}or{飛行座騎}這樣 03/14 00:53
Fenikso:↑上面地面和飛行反了@@ 03/14 00:54
Peizon: 這個凹字數的想法真有趣!! 不過普通人應該會腦袋打結..... 我是普通人,我打結了.... (m~=...)應該回傳一個代表true或false的boolean值 {地面座騎}則是array boolean跟array做and....會變成什麼呀....(抱頭) Fenikso: 這東西叫short circuit evaluation, 我的code裡面也有用到XD 首先先把and/or分開來看 a or b => 如果 a是true則整個運算式一定是true, 所以不會去執行b a and b => 同理, a是false則整個運算式是false不會去執行b 例如說 IsMounted() or CallCompanion("MOUNT",t[random(#t)]) 等於原本的if not IsMounted() then CallCompanion("MOUNT",t[random(#t)]) end 另外lua的boolean expression傳回的是最後一個被算到的東西 合併起來變(a and b) or c 就變成 如果a是false => (a and b)是false => 傳回c 如果a是true => 如果b也是true => 傳回b => 如果b是false => 傳回c // 這條不會被走到 因為陣列是true 順便一提lua裡面只有false和nil是false, 0, "", {}, 0.0 都是true 希望不會太難懂orz
Fenikso:另外local可以拿掉(雖然這是個壞習慣..) 03/14 00:59
不宣告local的話就代表這是全域變數? (我沒學過lua,照c++去猜) 意思是說可能跟其他的全域變數產生衝突。 我並不知道系統內或其他ui會不會使用相衝突的全域變數名稱。 不過往其他的方向想,這代表不同巨集可以共用相同的變數囉? ※ 編輯: PEIRON 來自: 59.104.233.205 (03/14 18:11)
Fenikso:嗯是global 其他就跟你講的一樣 03/14 21:41