- 鐵幣
- 678 元
- 文章
- 158 篇
- 聲望
- 27 枚
- 上次登入
- 14-9-4
- 精華
- 2
- 註冊時間
- 05-1-19
- UID
- 89552
|
巨集(marco)的專題
2.0 巨集的基礎知識(在2樓)
2.0.0 巨集是什麼?
2.0.1 巨集是否合法?用巨集會被鎖帳號嗎?
2.0.2 巨集的運行機制是怎樣的
2.0.3 如何使得我的巨集施展出來的時候可以自動說對象的名字?
2.0.4 巨集的數量有限制麼?
2.0.5 巨集裡面如何選定隊友,自己或者敵人?
2.0.6 巨集的寫作有什麼格式?
2.1~2.2 實際使用方面的疑難
2.1.0 我如何在一個巨集裡釋放法術?
2.1.1 我能否在一個巨集裡面使用很多技能?比如說(牧師為例)一個 MB,一個Pain,再來一個MF
2.1.2 我如何設定一個巨集或者一段腳本使得當我遇到什麼情況的時候自動施展技能?
2.1.3 我可以在一個巨集裡等待一小段時間然後再施展巨集的剩餘部分嗎?(以及對/in的解釋)
2.1.4 我如何在巨集裡面使用一個急救繃帶?
2.1.5 我可以對我的隊友施展一個增益法術而且不失去我當前的目標嗎?
2.1.6 盜賊如何切換雙手武器,比如說從 匕首/匕首 切換到 劍/錘 ?
2.1.7 在一個巨集裡面如何使我的寵物攻擊選定的目標
2.1.8 我可以建立一個巨集以使用副手武器嗎?
2.1.9 如何在一個巨集裡選定隊友1或者隊友5
2.2.1 如何在一個巨集裡面引用目標的各項屬性,比如說生命值,法力,性別,等級等等,,
2.2.2 我如何協助我的寵物進行攻擊?
2.2.3 如何協助我的隊友進行攻擊或者選中我自己?
2.2.4 我可以用巨集從A姿態切換到B姿態,使用B姿態的技能然後再返回A姿態嗎?
2.2.5 如何切換身上的裝備?
2.0 巨集的基礎知識
2.0.0 巨集是什麼?
簡而言之,巨集(marco)就是一個使用blizzard預先設置好的一系列命令或函數來實現一個有限的功能。
最強大的莫過於可以實現條件判斷。
******** ********** ************** *************
2.0.1 巨集是否合法?用巨集會被鎖帳號嗎?
請注意2.0.0回答裡面的部分,既然使用blizzard預先設置好的一系列命令或函數,哪還會不合法嗎?
******** ********** ************** *************
2.0.2 巨集的運行機制是怎樣的
事實上,巨集裡面的所有語句都是在同一時間被當成是一個整體同時運行的,而不是一行接著一行像我們想象的那樣運行
其實世界上沒有一台電腦可以把所有代碼當作一個整體來執行即使看上去是那樣的,電腦都是按順序執行的。
上面的意思就是說巨集不會在等第一行執行完以後再去執行第二行,第二行和第三行之間也是一樣。中間是不停頓的,所以看上去就像被當作一個整體去執行。
******** ********** ************** *************
2.0.3 如何使得我的巨集施展出來的時候可以自動說對象的名字?
%t這個變量可以使得你的巨集說出你所選擇的對象的名字,比如
/說 你好啊,%t
當你選擇 夢幻飛天無敵小豬 這個玩家的時候,使用這個巨集,結果就是
你說: 你好啊, 夢幻飛天無敵小豬
******** ********** ************** *************
2.0.4 巨集的數量有限制麼?
每個角色只能建立18個marco。而且就我所知不可以超過18。
******** ********** ************** *************
2.0.5 巨集裡面如何選定隊友,自己或者敵人?
巨集裡面每個角色都是有代號的,現列舉如下:
"player" 玩家自己
"pet" 玩家的寵物
"party1" 1號隊友
"party2" 2號隊友
......
"partypetN" 第N個隊友的寵物 (N 可以是 1,2,3, or 4) (1.5.0新加)
"raidN" 第N個團隊夥伴 (N 可以是 1,2,3,...,40)
"raidpetN" 第N個團隊夥伴的寵物 (N 可以是 1,2,3,...,40) (1.5.0新加)
"target" 被選中的目標
"mouseover" 鼠標正在劃過或剛剛劃過的目標
下面的值只能用於一些特殊場合:
"npc" or "NPC" 玩家正在與之交互的NPC
比如說需要引用2號隊友的生命值,就用 UnitHealth("party2") 就可以了
******** ********** ************** *************
2.0.6 巨集的寫作有什麼格式?
你可以使用給定的命令去完成一個巨集,比如/說,/施放
這些都是有英文的,比如上面兩個,你可以寫成/say,/cast
有的可以簡寫成 /say 寫成 /s
當你要用到函數的時候(一般後面會有一個括號,比如UnitMana()),需要用 /script 開頭。
比如釋放一個技能,你可以寫成 /cast 真言術:盾(等級1) ; 也可以寫成 /script CastSpellByName("真言術:盾(等級1)")
******** ********** ************** *************
2.1~2.2 實際使用方面的疑難
2.1.0 我如何在一個巨集裡釋放法術?
使用 /施放 這個命令。 例如 /施放 恢復(等級1)
最簡單的在你的巨集裡面寫入正確技能的方法是,當你編輯一個巨集的時候打開你的 技能窗口,然後shift+左鍵點擊相應技能。這樣就會自動在巨集編輯窗口裡面添加
/施放 你選擇的技能
******** ********** ************** *************
2.1.1 我能否在一個巨集裡面使用很多技能?比如說(牧師為例)一個 MB,一個Pain,再來一個MF
不可以!原因是巨集是不可以延遲的!但是你施放一個法術以後再施放一個法術,你必須等待其間的公共冷卻時間(1.2秒~1.5秒)結束以後,才可以施展第二個法術。
不過你仍然可以做一些不需要等待的事情。比如,施放一個法術然後進行攻擊。或者使用物品(只要他們有獨立的冷卻時間)
不過你仍然不可以做兩個之間需要等待的動作!
當然你會說,如果我要使用的第一個技能是瞬法法術,沒有公共冷卻時間呢?
告訴你,結果是,仍然不可以!哈哈
附錄:
再擴展一點點
(1)會觸發公共冷卻時間的技能:
釋放一個法術或者技能
(2)不會觸發公共冷卻時間的技能:
在聊天窗口裡面說話
進入攻擊模式
命令你的寵物攻擊
使用一個物品
巨集只可以做第一個列表裡面的一件事,但是卻可以做很多第二個列表裡面的事情
2.2.4里面有關於這個問題更詳細的解釋
******** ********** ************** *************
2.1.2 我如何設定一個巨集或者一段腳本使得當我遇到什麼情況的時候自動施展技能?
你不可以!現在的wow裡沒有辦法自動施展法術或技能。你只能在觸發一個硬件事件(hardware event)的時候才可以施展一個技能,(比如說,鼠標鍵被按下或者鍵盤上某個按鍵被按下)。此外,這個hardware event必須觸發一個法術或者技能,否則也無法釋放。
你可以嘗試使用在一段時間以後使用CastSpellByName()去釋放法術,但是這個法術不會被釋放。
******** ********** ************** *************
2.1.3 我可以在一個巨集裡等待一小段時間然後再施展巨集的剩餘部分麼?(以及對/in的解釋)
不可以,完全不可能。看看2.1.1的解釋。
附錄:
不過當你安裝cosmos(一個著名的國外UI)的時候,你倒是可以的,比如
/in 5
/說 你好,
/說 小豬!
在5秒之後你將會說“你好”。不過你會立刻說“小豬”。
/in 不是一個巨集延遲指令,它只是簡單的讓你在一段時間之後再去施展一個技能。
不過很遺憾的是,你不可以用 /in 去釋放一個法術,施展一個技能,或者運行一個宏,這都歸咎於2.1.2里面所說的hardware event限定。所以,/in的功能是很有限的,你只能用它去說話,或者使用物品,僅此而已。
我不一開始就說這個命令的原因是因為99%的時候人們都想在巨集裡來個暫停,以使得它們可以在同一個巨集裡再釋放一個法術,或者換裝備然後再使用一個技能。即使用了cosmos的 /in 這些仍然是不可行的!
******** ********** ************** *************
2.1.4 我如何在巨集裡面使用一個急救繃帶?
你如果想給自己使用繃帶的話,不用編寫巨集,直接使用它或者拖進你的動作條裡面。
如果你想再做其他一些事情,以下是你所需要的代碼
/target 你的名字
/script UseContainerItem(Bag#, Item#);
/script TargetLastEnemy();
bag# (0-4):
是背包(Bag)的編號
背包欄從右到左依次是 4,3,2,1,0
Item# (1-16)
格子編號取決於你的包的大小,一般都是從左往右,從上往下(一行接一行) 比如
6格包
____1 2
3 4 5 6
16格包
1 2 3 4
5 6 7 8
9 .....
******** ********** ************** *************
2.1.5 我可以對我的隊友施展一個增益法術而且不失去我當前的目標麼?
可以,,,,
只需要簡單得這樣做:
/施放 真言術:盾(等級 1)
/target 隊友的名字
當你在沒有選定一個友方目標的時候就施展增益法術的時候,這個技能將會進入 選擇模式(注意光標的變化)
下一個選定的命令(/target)(不管是寫代碼或者按鍵)告訴這個技能施展在誰的身上。
但是不會改變你的目標!
用另外一種方法來實現:
/target 隊友的名字
/施放 真言術:盾(等級 1)
/script LastTarget()
會改變你的目標,進入自動攻擊模式而且會使得盜賊失去他們的技能點
******** ********** ************** *************
2.1.6 盜賊如何切換雙手武器,比如說從 匕首/匕首 切換到 劍/錘 ?
這裡是我的巨集(把手上的匕首/匕首 切換到 背包裡面的 劍/錘 )
當然,只要是單手武器都可以切換,僅僅是一個位置問題,我們所做的只是從一個地方拿起一個東西和另外一個未知的東西互換位置,而不管它的類型。
這裡要用到兩個命令:
1. PickupInventoryItem(xx) [從主手武器位置禍福手武器位置一個武器]
2. PickupContainerItem(x, y) [和上面不同之處在於是從背包裡面拿]
參數的解釋:
1. PickupInventoryItem(xx)
[x填寫16代表主手武器位置, 17代表副手武器位置]
2. PickupContainerItem(x, y)
[x 是背包編號。 y代表格子編號。通過寫入不同的x,y值,你可以表示不同的物品。]
具體位置和數字的關係請參見2.1.4的解釋
巨集:
/script PickupInventoryItem(16);
/script PickupContainerItem(0, 1);
/script PickupInventoryItem(17);
/script PickupContainerItem(0, 2);
Enjoy!(2.2.5有這個兩個函數使用的另外的一個例子)
******** ********** ************** *************
2.1.7 在一個巨集裡面如何使我的寵物攻擊選定的目標
請使用如下代碼:
/script PetAttack();
******** ********** ************** *************
2.1.8 我可以建立一個巨集以使用副手武器麼?
可以!
/script UseInventoryItem(GetInventorySlotInfo("SecondaryHandSlot"));
這段代碼將會激活你所裝備的副手武器
******** ********** ************** *************
2.1.9 如何在一個巨集裡選定隊友1或者隊友5
/target party1 將會選定1號隊友 party2將會選定2號隊友,一直到5
party1 就是隊友1個代號,可以用在其他任何你想要選中1號隊友的指令裡面
******** ********** ************** *************
2.2.1 如何在一個巨集裡面引用目標的各項屬性,比如說生命值,法力,性別,等級等等,,,
UnitHealth("unit") 目標生命值(HP)
UnitHealthMax("unit") 目標生命最大值
UnitMana("unit") 目標法力值(mana)
UnitSex("unit") 顯示目標的性別(Sex)
UnitLevel("unit") 顯示目標的等級(LV)
unit的值請參照2.0.4
其他更多的函數請參考http://www.wowwiki.com/World_of_Warcraft_API
******** ********** ************** *************
2.2.2 我如何協助我的寵物進行攻擊?
你可以寫一個這樣的巨集去協助你的寵物
/script AssistUnit("pet");
這個將會鎖定你的寵物正在鎖定的目標。如果你的寵物沒有鎖定任何目標,這個巨集就會什麼也不做。
如果你的寵物死了,你將會受到這個信息“我需要一個目標”
我不喜歡聽電腦對我嘮叨這句話,所以一個稍微簡潔一點的宏是......
/script if UnitExists("pet") then AssistUnit("pet"); end
修正了上面那個缺點,當你使用巨集的時候你的寵物已經死了,你也不會收到那條信息。
******** ********** ************** *************
2.2.3 如何協助我的隊友進行攻擊或者選中我自己?
/script AssistUnit("party2");
這將會協助隊伍裡的2號隊友進行攻擊。如果你不在隊伍裡面你將會受到一條消息“我需要一個目標”
/script AssistUnit("小豬");
這個巨集將會協助一個叫做小豬的人進行攻擊,如果沒有 小豬 這個人,,,,,,
/script TargetUnit("player");
這個巨集會選擇你自己。當你想對自己施放某個法術的時候就會很有用。
******** ********** ************** *************
2.2.4 我可以用巨集從A姿態切換到B姿態,使用B姿態的技能然後再返回A姿態嗎?
絕對不可以!
已經說了很多次了,我再說一次!
“按一個鍵,使用一個技能” 這是一個雷打不動的規矩!
違反這個規矩就是外掛功能!
如果你被抓到違反規定,你就會被BAN ACC(封帳號)。
你的巨集不工作是因為他根本不應該這樣做!
客戶端可以很好地制止一部分違反規定的行為。
cosmos提供的 /in 並沒有違反規定,因為它不能用於延時去釋放一個技能。
以戰士的3種姿態來說,姿態切換都是瞬發的,但是都有一個1秒的公共冷卻時間。
你不可以用1個鍵去觸發兩個技能。
2.1.1里面有關於這個問題更多的解釋
******** ********** ************** *************
2.2.5 如何切換身上的裝備?
我寫了一個巨集使得我可以切換我的鞋子。
我有兩雙鞋子,一雙可以加快我的行走速度,一雙則用於戰鬥。
代碼是這樣的:
/script PickupInventoryItem(8);
/script PickupContainerItem(4,7);
/script UseContainerItem(4,13);
第一個命令,PickupInventoryItem(N),將會定位到你角色裝備欄裡某個需要切換裝備的地方(根據N的取值不同來實現指定不同的位置).而例子裡面所使用的8將會告訴電腦我要切換的是腳部的裝備.
第二行用到了PickupContainerItem()。這個激活了背包裡面所要切換的東西 (我的例子裡就是4,13這個地方的裝備) 這個例子裡面將會和巨集裡面第一行PickupInevtoryItem(8) 所指定的裝備進行切換。
(背包的編號請參見2.1.4)
最後1句話使用了我背包裡(4,13)這個位置的一樣東西。(Camus注:這個人說是上馬)
一個巨集就可以實現換鞋子然後上馬,不騎馬的時候使用一次,就會把鞋子切換回來。
一些注意事項:
(1)你必須把所要切換的東西很精確的放在背包的某個位置,而且不可以卻移動它,不然這個巨集就不會執行。
(2)當你和一個賣東西的NPC說話的時候,你將會自動下馬,你將會穿著你的加速靴下馬。換句話說,當你再一次使用這個巨集的時候,你將會穿著你的戰鬥用鞋上馬,不過並不像聽上去那麼糟,你可以再你上馬的時候再次使用這個巨集,就切換回來了(因為你在上馬的時候不會上馬)或者你也可以在跑的時候使用一次這個巨集,因為跑動的時候也不會上馬,你就又會回到一開頭的狀態了。
轉載 2005-10-30 age023 巴哈姆特 |
|