MAClient是一个可以用来装B的百万亚瑟王客户端。支持台服、国服全区、韩服、日服和东南亚(新加坡)服。
##文档
##运行
###Windows
Windows用户可以从这里获得二进制文件,或者从release下载
注意1:路径不能包含中文,这是pyinstaller的缺陷
注意2:运行韩服和日服时,推荐使用MAClientGUI中的终端模拟器
###网页版
MAClient可以在支持websocket的浏览器上运行炒鸡棒在线版
###Android
###Linux/OS X/wwww 从这里 或者PIP下载httplib2,并安装PyCrypto。 你需要安装python-devel 和一个编译工具链来编译 PyCrypto。
sudo pip install httplib2 Crypto
####韩服依赖库 使用韩服的娃请至release中下载适合自己系统的依赖库;依赖库暂时不开源
MAClient可以在python2.x和3.x上运行
git clone --recursive https://github.com/fffonion/MAClient.git
cd httplib2
python setup.py install
子模块为针对py2x的httplib2;对py3x,你需要下载py3x适用的httplib2
python MAClient_cli.py
python MAClient_cli.py [config file]
python MAClient_cli.py [config file] [task]/[commands]
将maclient_smart编译成C模块可以提高自动配卡速度
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或者卡片序列号
如:
min=124 #选出小狼女
factor=93714777,54276719
请保证存在min
项且值为舔刀卡组,以保证省流模式工作正常
如果你卡片中存在小狼女,那么请不要大意地忽略这句话吧ww
###system
系统设置
####server
选服,可选cn
,cn2
,cn3
,tw
,kr
,jp
,'sg'
####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:不提醒
####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中所指定的次数
如:
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 指定满足什么条件时做什么事
全局可用的量:
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:
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.:
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.:
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.:
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
,放跑妖精letitgo
,不打妖精abort
eg.:
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:
card.star in [1,2] and card.lv<5 and card.mid != 124 and not card.holo #1星2星 lv5一下的卡且不是小狼女且不是闪卡:
注: 已自动排除所有小切切;如果不慎选入R及以上的卡,会出现提示确认
####select_card_as_food 自动合成时,那些作为狗粮
同上,但不会自动排出切切
####select_card_to_feed 自动合成时,那些作为合成的目标
同上,但不会提示R+,已自动排除满级卡