自動配卡速度好慢- -用cython自動重構的出來的東西可以快40-50%,但還是太慢了,六卡全排列就受不了了
看來只能寫C了 QAQ
MAClient是一個百萬亞瑟王客戶端。支持台服、國服全區、韓服和日服。
遇到問題?
請先至下列地址查看有無新版windows二進制文件;git repo@github
使用腳本的用戶請先執行pu -f 更新插件及us 更新本體,以確認問題是否已解決
說明
有關API,請參閱API文檔
如果你閑得沒事感興趣可以為MAClient製作插件,插件文檔
運行
Windows
Windows用戶可以從這裡獲得二進制文件,或者從release下載
注意1:路徑不能包含中文,這是pyinstaller的缺陷
注意2:運行韓服和日服時,推薦使用MAClientGUI中的終端模擬器
網頁版
MAClient可以在支持websocket的瀏覽器上運行
Android
Linux/OS X/wwww
需要下載修改的httplib2庫,自行編譯PyCrypto庫
MAClient可以在python2.x和3.x上運行
1 2 3 |
git clone --recursive https://github.com/fffonion/MAClient.git cd httplib2 python setup.py install |
子模塊為針對py2x的httplib2;對py3x,你需要下載py3x適用的httplib2
1 2 3 |
python MAClient_cli.py python MAClient_cli.py [config file] python MAClient_cli.py [config file] [task]/[commands] |
將maclient_smart編譯成C模塊可以提高自動配卡速度
1 |
python build_cython_ext.py build_ext --inplace |
配置文件說明
參考config_sample.ini,以及這裡有一些參考配置
或者使用圖形化配置工具MAClientGUI,它可以從這裡下載,相關源代碼可以從這裡獲得
account_?
?可選cn
,cn2
,cn3
,tw
,kr
,jp
,sg
分別對應國服1區,國服2區,國服3區,台服,韓服,日服,東南亞服
session不用管它
carddeck
卡組列表
值可選卡片id或者卡片序列號
如:
1 2 |
min=124 #選出小狼女 factor=93714777,54276719 |
請保證存在min
項且值為舔刀卡組,以保證省流模式工作正常
如果你卡片中存在小狼女,那麼請不要大意地忽略這句話吧ww
system
系統設置
server
選服,可選cn
,cn2
,cn3
,tw
,kr
,jp
loglevel
屏幕輸出日誌級別,可選0-6,嫌煩就調大點
taskname
表示需要程序執行的任務名稱(tasker中),|分割
tasker_times
表示要執行任務的次數,0為無限
try_factor_time
是刷因子戰列表的次數,0為無限
factor_sleep
刷列表的間隔(秒)
explore_sleep
刷秘境的間隔(秒)
fairy_battle_times
刷妖精列表次數
fairy_battle_sleep
刷妖精列表間隔(分),按時間設置,比如0-5點每5分刷新一次,5-10點每2分刷新一次: 0,5,5|5,10,2,若不在範圍內,默認1.5分
fairy_battle_times
刷妖精列表間隔因數,用於將間隔時間全部縮放一個倍數
delay
設置POST延遲,默認關閉,設為0時會提示WARNING
allow_long_sleep
是否允許長睡眠,在某些操作系統上後台進程長時間睡眠會被kill,可以禁用此項
reconnect_gap
斷線重連策略,可選(1)數字,在指定分鐘後重連, (2)HH:MM,在指定時刻重連
tactic
策略
auto_explore
是否自動選擇秘境(按照explore_area
和explore_floor
規則),是為1
auto_green_tea,auto_red_tea
設置嗑藥次數,當前任務已是自動任務時,若此項設為0,則會在AP/BC不足時直接退出
auto_red_tea_level
自動嗑藥條件1.滿足條件的覺醒自動嗑紅,2.滿足條件的普妖嗑紅,0.不嗑藥(BC不足就跳過)
auto_choose_red_tea
自動選擇紅茶類型,如果半紅可以滿足戰鬥cost則嗑半紅,否則嗑全紅
strict_bc
嚴格BC模式, 打開時,當前BC低於卡組cost時認為BC不足(隻影響妖精戰)
auto_sell_card
到≥200張了是否自動賣卡,按照select_card_to_sell
規則
auto_fp_gacha
絆點到9900了是否自動轉蛋
fp_gacha_bulk
是否批量絆轉蛋(一次10張
auto_build
是否自動合成相同卡片,默認為1,隻影響探索和轉蛋中的一星/二星卡
auto_fairy_rewards
自動領取妖精獎勵
sell_card_warning
賣卡提醒,可設置2:全提醒 ,1:R+提醒,0:不提醒(此時只賣R以下卡)
del_friend_day
刪除幾天以上沒上線的好友
fairy_final_kill_hp
若打完妖精後血量低於設定值則立即再打一次,默認為20000
tasker
任務切換;Moore機
可以建立多個任務表達式,每個表達式用|分割,單個任務用空格分割命令和參數,
可選:
登陸 login
/l
, 設置卡組 set_card
/sc
,因子戰 factor_battle
/fcb
,秘境探索 explore
/e
,刷列表中的妖精 fairy_battle
/fyb
,嗑藥 red_tea
/rt
green_tea
/gt
,自動賣卡 sell_card
/slc
,設置賬號類型 set_server
/ss
,好友相關 friend
/f
,轉蛋gacha
/g
,分配點數point
/p
,禮物盒rewardbox
/rb
(可後跟參數 12345 分別表示 卡片 道具 金 絆點 蛋卷),手動選擇妖精戰鬥fairy_select
/fs
,重新登錄relogin
/rl
,問好like
/greet
/gr
以t:開頭可執行任務
其中explore
,sell_card
後可選參數以指定條件,否則按照condition中的條件執行;factor_battle
可選參數 最低BC,默認為0;fairy_battle
可選參數 循環次數,默認按照config中所指定的次數
如:
1 2 3 4 5 |
login heheh 123456 #登陸 set_server cn|set_card factor|factor_battle #設置國服,設置因子戰卡組,然後因子戰 ss cn|sc factor|fcb #同上 explore '明鏡月和島' in area.name #探索秘境名稱包含'明鏡月和島' fcb l:1 70 或 fcb lake:1 70#因子戰選擇第一因子,下限BC70,因子默認為隨機選擇,BC下限默認為0 |
各命令及參數的詳細介紹見COMMANDS文檔
condition
指定滿足什麼條件時做什麼事
全局可用的量:
1 2 3 4 5 6 7 8 9 10 11 |
HH 當前(24小時制的)小時 MM 當前分鐘 BC 剩餘bc BC% 剩餘bc百分比,小數 AP 剩餘ap AP% 剩餘ap百分比,小數 SUPER 累積的super值 GOLD 金幣 FP 友情點數 FAIRY_ALIVE 自己發現的妖精是否存活 GUILD_ALIVE 公會的妖精是否存活 |
PS:你必須進入一次妖精列表(使用fairy_battle
/fyb
或fairy_select
/fs
)才能刷新FAIRY_ALIVE和GUILD_ALIVE的值
PPS:當表達式中的主語可以被唯一確定時(變量只有一個),可以用’$’代替之
如explore_area
表達式中,$.IS_EVENT
和area.IS_EVENT
是等價的
factor
因子戰需滿足的表達式
變量:
star
,cid
,分別對應頭像的星數和卡片id, 其他變量嚴重影響遊戲公平性, 不作公開
eg:
1 2 |
start ==1 or star ==2或star in [1,2] #卡片為一星或兩星 cid in [124,8,256] #隊長卡片id為124,8或256: |
explore_area
選擇秘境滿足的表達式,支持多個條件,留空表示隨機
變量:area
屬性:
活動秘境 IS_EVENT
, 每日秘境 , 公會秘境 IS_DAILY_EVENT
IS_GUILD
, 未刷完 NOT_FINNISHED
, 秘境名稱 name
eg.:
1 2 3 4 |
area.IS_EVENT and area.NOT_FINNISHED #想進入一個沒完成的活動秘境 area.name == ' 學校四樓教室' #進入 學校四樓教室 area.NOT_FINNISHED | area.IS_EVENT #進入沒完成的秘境;如果不存在沒完成的秘境,則選擇一個活動秘境 area.NOT_FINNISHED | 進入沒完成的秘境;如果不存在沒完成的秘境,則選擇任一秘境 |
explore_floor
選擇地區滿足的表達式,支持多個條件,留空表示隨機
變量:floor
屬性:
未刷完 NOT_FINNISHED
, AP消耗 cost
eg.:
1 2 |
floor.cost>6 and floor.NOT_FINNISHED #進沒完成的且cost小於6的地區: floor.cost<3 | #進cost<3的地區;如果沒有則隨機選擇一個地區 |
fairy_select
妖精列表裡的什麼妖精要打
變量:fairy
屬性:
是我開的 IS_MINE
,剩餘時間 LIMIT
(單位為秒),沒打過 NOT_BATTLED
,等級 lv
,是否覺醒 IS_WAKE
,是否稀有妖精 IS_WAKE_RARE
,是否公會妖精 IS_GUILD
eg.:
1 |
not fairy.IS_MINE and fairy.LIMIT<600 and fairy.NOT_BATTLED #打不是我發現的,剩餘時間為10分鐘的,還沒舔過的妖精 |
fairy_select_carddeck
遇到什麼樣的妖精時選擇什麼樣的卡組
變量:fairy
屬性:
lv
,hp
,name
,IS_MINE
, 剩餘時間 TIME_LIMIT
(單位為秒), 是否覺醒 IS_WAKE
, 是否稀有妖精 IS_WAKE_RARE
,是否公會妖精 IS_GUILD
只能使用and or表達式 或if else表達式,可嵌套;卡組名稱需加引號,需在carddeck中給出;可以使用’no_change’表示不更改卡組
eg.:
1 2 |
fairy.hp>200000 and 'tiandao' or 'full' 也可寫作 'tiandao' if fairy.hp>200000 else 'full' #遇到hp>200000的妖精用卡組tiandao,否則用full 'no_change' #不改變 |
select_card_to_sell
自動賣卡賣哪些
變量:card
屬性:
star
,lv
,序列號 sid
,卡片編號 mid
,販賣價格price
, 是否閃卡holo
eg:
1 |
card.star in [1,2] and card.lv < 5 and card.mid != 124 and not card.holo #1星2星 lv5一下的卡且不是小狼女且不是閃卡 |
註: 已自動排除所有小切切;如果不慎選入R及以上的卡,會出現提示確認