close
20080105 edit: 增加 "找不到 NPC 就重登" 的巨集(其實我分享的巨集裡都有)
20080106 edit: 新增不會被玩家以公頻擾亂的判定
20080107 edit: 不會被玩家以公頻擾亂的判定小修正
20080111 edit: 新增 release all 在自動巨集 relogOnNpcNoRespond 裡以避免重登後不會重新啟動
提醒大家 portals.txt 要增加的資訊
20080113 edit: 小錯誤修正
20080121 edit: 改為單雙競賽都有。另外記錄檔改為 /logs/raceResultSingle.txt 與 /logs/raceResultDouble.txt。以及其它一些小修正。
#####
automacro initial {
map hugel
exclusive 1
run-once 1
call {
do conf squelchDomains emotion,skill,publicchat
do conf autoTalkCont 0
do conf cachePlayerNames_maxSize 300
$betNumber = 1
# 設定單人魔物賭注號碼 betNumber
$betNumber1 = 1
# 設定雙人魔物賭注號碼1 betNumber1
$betNumber2 = 2
# 設定雙人魔物賭注號碼2 betNumber2
}
}
automacro relogOnNpcNoRespond {
console /^無法在座標.*找到 NPC.$/i
exclusive 1
call {
release all
do relog
}
}
automacro dropTicketInHugel {
map hugel
inventory "魔物票券" == 1
run-once 1
call {
do drop @inventory(魔物票券)
pause 1
do move 63 73 hugel
}
}
# 單人賽外場進入內場的觸發字句
automacro singleAnnouncement {
location hugel
zeny > 50000
console /^魔物賽跑單人賽比賽競賽場/
call singleRace
}
# 雙人賽外場進入內場的觸發字句
automacro doubleAnnouncement {
location hugel
zeny > 50000
console /^魔物賽跑雙人賽比賽競賽場/
call doubleRace
}
# 進入單人賽內場,並選擇要賭的號碼
macro singleRace {
lock singleAnnouncement
lock doubleAnnouncement
pause @rand(1,10)
do move p_track01
pause 2
do move @rand(70,76) @rand(31,36) p_track01
pause 8
# 記錄各魔物素質(暫時註解掉)
# do talk @npc (73 22)
# pause 1
# do talk cont
# pause 1
# do conf logConsole 1
# do talk resp 0
# do conf logConsole 0
# pause 1
do talknpc 73 22 c r$betNumber n
# 賭號碼為 $betNumber 的魔物會贏
do sit
release singleAnnouncement
release doubleAnnouncement
}
# 進入雙人賽內場,並選擇要賭的號碼
macro doubleRace {
$betNumber1Temp = $betNumber1
$betNumber2Temp = $betNumber2
$betNumber1Temp--
$betNumber2Temp--
do eval if ($::Macro::Data::varStack{betNumber1Temp} < $::Macro::Data::varStack{betNumber2Temp}) {$::Macro::Data::varStack{betNumber2Temp}--}
lock singleAnnouncement
lock doubleAnnouncement
pause @rand(1,10)
do move p_track02
pause 2
do move @rand(70,76) @rand(31,36) p_track02
pause 8
# 記錄各魔物素質(暫時註解掉)
# do talk @npc (73 22)
# pause 1
# do talk cont
# pause 1
# do conf logConsole 1
# do talk resp 0
# do conf logConsole 0
# pause 1
do talknpc 73 22 c r1 c c r$betNumber1Temp c r0 c r$betNumber2Temp c r0 n
# 賭魔物的號碼
do sit
release singleAnnouncement
release doubleAnnouncement
}
# 單人賽結果揭曉後的觸發
automacro singleBetResult {
location p_track01
inventory "魔物票券" == 1
console /^第1名進來的魔物是 (\d)號 魔物~!!$/
call singleResultProcessing
}
# 雙人賽結果第一名揭曉後的觸發
automacro doubleBetResult1 {
location p_track02
inventory "魔物票券" == 1
console /^(\d)號魔物 有進到終點了$/
call doubleResultProcessing1
}
# 雙人賽結果第二名揭曉後的觸發
automacro doubleBetResult2 {
location p_track02
inventory "魔物票券" == 1
console /^在等(\d)號魔物 跟隨著進到終點的話 競賽就結束了$/
call doubleResultProcessing2
}
# 單人賽記錄並判斷要換獎牌或直接離場
macro singleResultProcessing {
$resultNumber = $.lastMatch1
# 記錄至檔案 /logs/raceResultSingle.txt
do eval if (open(FILE, ">>:utf8", $::Settings::logs_folder . "/raceResultSingle.txt")) {$::Macro::Data::varStack{datetime} = "[".getFormattedDate(int(time))."]";print FILE "\n$::Macro::Data::varStack{datetime} 賭注號碼: $::Macro::Data::varStack{betNumber} 號; 中獎號碼: $::Macro::Data::varStack{resultNumber} 號.";close FILE;}
if ($resultNumber == $betNumber) goto win
# 若號碼為 $betNumber 的魔物跑贏,則去換獎牌
call Exit
goto end
:win
call singleRedemption
:end
}
# 雙人賽記錄第一名魔物並判斷是否要直接離場
macro doubleResultProcessing1 {
$resultNumber1 = $.lastMatch1
# 若有沒中的號碼出現,但想知道一二名結果,則請將以下全部註解掉
# do eval if (open(FILE, ">>:utf8", $::Settings::logs_folder . "/raceResultDouble.txt")) {$::Macro::Data::varStack{datetime} = "[".getFormattedDate(int(time))."]";print FILE "\n$::Macro::Data::varStack{datetime} 賭注號碼: $::Macro::Data::varStack{betNumber1}, $::Macro::Data::varStack{betNumber2}; 中獎號碼: $::Macro::Data::varStack{resultNumber1}, 未知";close FILE;}
# if ($resultNumber1 == $betNumber1) goto wait
# if ($resultNumber1 == $betNumber2) goto wait
# call Exit
# :wait
}
# 雙人賽記錄第二名魔物並判斷要換獎牌或離場
macro doubleResultProcessing2 {
$resultNumber2 = $.lastMatch1
# 記錄至檔案 /logs/raceResultDouble.txt
do eval if (open(FILE, ">>:utf8", $::Settings::logs_folder . "/raceResultDouble.txt")) {$::Macro::Data::varStack{datetime} = "[".getFormattedDate(int(time))."]";print FILE "\n$::Macro::Data::varStack{datetime} 賭注號碼: $::Macro::Data::varStack{betNumber1}, $::Macro::Data::varStack{betNumber2}; 中獎號碼: $::Macro::Data::varStack{resultNumber1}, $::Macro::Data::varStack{resultNumber2}";close FILE;}
# 判斷要換獎牌或離場
if ($resultNumber1 == $betNumber1) goto halfWin
if ($resultNumber2 == $betNumber1) goto halfWin
call Exit
goto end
:halfWin
if ($resultNumber2 == $betNumber2) goto totallyWin
if ($resultNumber1 == $betNumber2) goto totallyWin
call Exit
goto end
:totallyWin
call doubleRedemption
:end
}
# 若魔物單人賽賭中了,則呼叫此巨集進行獎牌兌換
macro singleRedemption {
do stand
#停 10 秒,等待兌換服務人員出現
pause 10
do talknpc 67 45 c c c c c r0 c n
#兌換 服務人員
call Exit
}
# 若魔物雙人賽賭中了,則呼叫此巨集進行獎牌兌換
macro doubleRedemption {
do stand
#停 10 秒,等待兌換服務人員出現
pause 10
do talknpc 67 45 c c c c r0 c n
#兌換 服務人員
call Exit
}
# 若沒賭中,或換完獎牌後,呼叫此巨集離開內場
macro Exit {
release singleAnnouncement
release doubleAnnouncement
release singleBetResult
release doubleBetResult1
release doubleBetResult2
do stand
# 小範圍移動以改善偵測不到入場 NPC
do move @rand(63,68) @rand(73,78) hugel
pause @rand(1,10)
do move @rand(63,68) @rand(73,78) hugel
}
automacro medalChange {
map ein_in01
inventory "神奇的獎牌" > 0
run-once 1
call {
do move 81 206 ein_in01
do talknpc 85 208 c r0 c c c c c r0 c c r1 c c n
# 其中r1為換job值 要換經驗請改為r0
pause 2
release medalChange
}
}
automacro initial {
map hugel
exclusive 1
run-once 1
call {
do conf squelchDomains emotion,skill,publicchat
do conf autoTalkCont 0
do conf cachePlayerNames_maxSize 300
$betNumber = 1
# 設定單人魔物賭注號碼 betNumber
$betNumber1 = 1
# 設定雙人魔物賭注號碼1 betNumber1
$betNumber2 = 2
# 設定雙人魔物賭注號碼2 betNumber2
}
}
automacro relogOnNpcNoRespond {
console /^無法在座標.*找到 NPC.$/i
exclusive 1
call {
release all
do relog
}
}
automacro dropTicketInHugel {
map hugel
inventory "魔物票券" == 1
run-once 1
call {
do drop @inventory(魔物票券)
pause 1
do move 63 73 hugel
}
}
# 單人賽外場進入內場的觸發字句
automacro singleAnnouncement {
location hugel
zeny > 50000
console /^魔物賽跑單人賽比賽競賽場/
call singleRace
}
# 雙人賽外場進入內場的觸發字句
automacro doubleAnnouncement {
location hugel
zeny > 50000
console /^魔物賽跑雙人賽比賽競賽場/
call doubleRace
}
# 進入單人賽內場,並選擇要賭的號碼
macro singleRace {
lock singleAnnouncement
lock doubleAnnouncement
pause @rand(1,10)
do move p_track01
pause 2
do move @rand(70,76) @rand(31,36) p_track01
pause 8
# 記錄各魔物素質(暫時註解掉)
# do talk @npc (73 22)
# pause 1
# do talk cont
# pause 1
# do conf logConsole 1
# do talk resp 0
# do conf logConsole 0
# pause 1
do talknpc 73 22 c r$betNumber n
# 賭號碼為 $betNumber 的魔物會贏
do sit
release singleAnnouncement
release doubleAnnouncement
}
# 進入雙人賽內場,並選擇要賭的號碼
macro doubleRace {
$betNumber1Temp = $betNumber1
$betNumber2Temp = $betNumber2
$betNumber1Temp--
$betNumber2Temp--
do eval if ($::Macro::Data::varStack{betNumber1Temp} < $::Macro::Data::varStack{betNumber2Temp}) {$::Macro::Data::varStack{betNumber2Temp}--}
lock singleAnnouncement
lock doubleAnnouncement
pause @rand(1,10)
do move p_track02
pause 2
do move @rand(70,76) @rand(31,36) p_track02
pause 8
# 記錄各魔物素質(暫時註解掉)
# do talk @npc (73 22)
# pause 1
# do talk cont
# pause 1
# do conf logConsole 1
# do talk resp 0
# do conf logConsole 0
# pause 1
do talknpc 73 22 c r1 c c r$betNumber1Temp c r0 c r$betNumber2Temp c r0 n
# 賭魔物的號碼
do sit
release singleAnnouncement
release doubleAnnouncement
}
# 單人賽結果揭曉後的觸發
automacro singleBetResult {
location p_track01
inventory "魔物票券" == 1
console /^第1名進來的魔物是 (\d)號 魔物~!!$/
call singleResultProcessing
}
# 雙人賽結果第一名揭曉後的觸發
automacro doubleBetResult1 {
location p_track02
inventory "魔物票券" == 1
console /^(\d)號魔物 有進到終點了$/
call doubleResultProcessing1
}
# 雙人賽結果第二名揭曉後的觸發
automacro doubleBetResult2 {
location p_track02
inventory "魔物票券" == 1
console /^在等(\d)號魔物 跟隨著進到終點的話 競賽就結束了$/
call doubleResultProcessing2
}
# 單人賽記錄並判斷要換獎牌或直接離場
macro singleResultProcessing {
$resultNumber = $.lastMatch1
# 記錄至檔案 /logs/raceResultSingle.txt
do eval if (open(FILE, ">>:utf8", $::Settings::logs_folder . "/raceResultSingle.txt")) {$::Macro::Data::varStack{datetime} = "[".getFormattedDate(int(time))."]";print FILE "\n$::Macro::Data::varStack{datetime} 賭注號碼: $::Macro::Data::varStack{betNumber} 號; 中獎號碼: $::Macro::Data::varStack{resultNumber} 號.";close FILE;}
if ($resultNumber == $betNumber) goto win
# 若號碼為 $betNumber 的魔物跑贏,則去換獎牌
call Exit
goto end
:win
call singleRedemption
:end
}
# 雙人賽記錄第一名魔物並判斷是否要直接離場
macro doubleResultProcessing1 {
$resultNumber1 = $.lastMatch1
# 若有沒中的號碼出現,但想知道一二名結果,則請將以下全部註解掉
# do eval if (open(FILE, ">>:utf8", $::Settings::logs_folder . "/raceResultDouble.txt")) {$::Macro::Data::varStack{datetime} = "[".getFormattedDate(int(time))."]";print FILE "\n$::Macro::Data::varStack{datetime} 賭注號碼: $::Macro::Data::varStack{betNumber1}, $::Macro::Data::varStack{betNumber2}; 中獎號碼: $::Macro::Data::varStack{resultNumber1}, 未知";close FILE;}
# if ($resultNumber1 == $betNumber1) goto wait
# if ($resultNumber1 == $betNumber2) goto wait
# call Exit
# :wait
}
# 雙人賽記錄第二名魔物並判斷要換獎牌或離場
macro doubleResultProcessing2 {
$resultNumber2 = $.lastMatch1
# 記錄至檔案 /logs/raceResultDouble.txt
do eval if (open(FILE, ">>:utf8", $::Settings::logs_folder . "/raceResultDouble.txt")) {$::Macro::Data::varStack{datetime} = "[".getFormattedDate(int(time))."]";print FILE "\n$::Macro::Data::varStack{datetime} 賭注號碼: $::Macro::Data::varStack{betNumber1}, $::Macro::Data::varStack{betNumber2}; 中獎號碼: $::Macro::Data::varStack{resultNumber1}, $::Macro::Data::varStack{resultNumber2}";close FILE;}
# 判斷要換獎牌或離場
if ($resultNumber1 == $betNumber1) goto halfWin
if ($resultNumber2 == $betNumber1) goto halfWin
call Exit
goto end
:halfWin
if ($resultNumber2 == $betNumber2) goto totallyWin
if ($resultNumber1 == $betNumber2) goto totallyWin
call Exit
goto end
:totallyWin
call doubleRedemption
:end
}
# 若魔物單人賽賭中了,則呼叫此巨集進行獎牌兌換
macro singleRedemption {
do stand
#停 10 秒,等待兌換服務人員出現
pause 10
do talknpc 67 45 c c c c c r0 c n
#兌換 服務人員
call Exit
}
# 若魔物雙人賽賭中了,則呼叫此巨集進行獎牌兌換
macro doubleRedemption {
do stand
#停 10 秒,等待兌換服務人員出現
pause 10
do talknpc 67 45 c c c c r0 c n
#兌換 服務人員
call Exit
}
# 若沒賭中,或換完獎牌後,呼叫此巨集離開內場
macro Exit {
release singleAnnouncement
release doubleAnnouncement
release singleBetResult
release doubleBetResult1
release doubleBetResult2
do stand
# 小範圍移動以改善偵測不到入場 NPC
do move @rand(63,68) @rand(73,78) hugel
pause @rand(1,10)
do move @rand(63,68) @rand(73,78) hugel
}
automacro medalChange {
map ein_in01
inventory "神奇的獎牌" > 0
run-once 1
call {
do move 81 206 ein_in01
do talknpc 85 208 c r0 c c c c c r0 c c r1 c c n
# 其中r1為換job值 要換經驗請改為r0
pause 2
release medalChange
}
}
記得在 portals.txt 內新增以下傳點資訊:
p_track01 76 36 hugel 63 73 0 c c r0 n
p_track02 76 38 hugel 63 73 0 c c r0 n
hugel 58 72 p_track01 75 41 2000 c r1 c c r0 n
hugel 62 69 p_track02 75 41 2000 c r1 c c r0 n
p_track02 76 38 hugel 63 73 0 c c r0 n
hugel 58 72 p_track01 75 41 2000 c r1 c c r0 n
hugel 62 69 p_track02 75 41 2000 c r1 c c r0 n
以上原創人為littlewens 大大,若要轉帖請註明l出處及 ittlewens 大大的大名,謝謝!
全站熱搜
留言列表