本Python库是用来模拟原神抽卡的,作者为Lawrence Guo,具体可以模拟角色活动祈愿、武器祈愿和常驻祈愿(暂不支持新手祈愿)
通过pip安装即可,复制下面的代码到命令行中即可
pip install genshinwish
用于设定卡池初始状态并预备好抽卡。可以直接什么都不填,用Wish()
来进行实例化,也可以自定义卡池的信息和抽卡状态数据。
目前只能让一个对象进行实例化,在一个对象内不可以混合使用三种方法,因为水位是继承的。如果想在同意程序中抽别的池子需要对另外一个对象实例化。后续的更新中可能会将这个问题修复。
(可选)输入参数如下:
up_candidate
为限定角色祈愿中UP的五星角色,类型为str
,默认值为"纳西妲"
four_star_up
为限定角色祈愿中UP的四星角色,类型为长度为3的list
,默认值为["久岐忍", "多莉", "莱依拉"]
five_star_weapon_up
为限定武器祈愿中UP的五星武器,类型为长度为2的list
,默认值为["千夜浮梦", "圣显之钥"]
four_star_weapon_up
为限定武器祈愿中UP的四星武器星武器,类型为长度为5的list
,默认值为["绝弦", "祭礼残章", "匣里灭辰", "西风大剑", "西福斯的月光"]
draw_count
为抽卡水位统计,类型为int
,默认值为0
。four_star_count
为四星物品水位统计,类型为int
,默认值为0
。five_star_grt
为五星保底状态,类型为bool
,默认值为False
。当five_star_grt=False
时,可能会歪,也可能不歪;当five_star_grt=True
时,必定出本期UP五星物品。four_star_grt
为四星保底状态,类型为bool
,默认值为False
。当four_star_grt=False
时,可能会歪,也可能不歪;当four_star_grt=True
时,必定出本期UP四星物品。is_limited
判断是否为本期限定角色,类型为bool
,默认值为False
。star
为物品星级,类型为范围在[3,5]的int
,默认值为3
is_character
判断上一抽结果是否为角色,类型为bool
,默认值为False
history
存储抽卡记录,类型为list
chart_course
为定轨状态,类型应为str
,默认值为None
。fate_points
为命定值,类型为范围在[0,2]的int
,默认值为0
.is_chart_course
最近一次出五星时,判断结果是否为定轨武器,类型为bool
,默认值为False
。
from genshinwish import Wish
wish = Wish(up_candidate="纳西妲", four_star_up=["久岐忍", "多莉", "莱依拉"])
返回类型为dict
输出格式参考:
{'time': '2023-04-22 01:02:47',
'five_star_grt': False,
'four_star_grt': False,
'draw_count': 1,
'four_star_count': 1,
'star': 3,
'is_limited': False,
'is_character': False,
'result': '鸦羽弓'}
wish = Wish(up_candidate="纳西妲", four_star_up=["久岐忍", "多莉", "莱依拉"])
wish.char_event_wish()
返回类型为dict
输出格式参考:
{'time': '2023-04-22 01:05:47',
'five_star_grt': False,
'four_star_grt': True,
'draw_count': 13,
'four_star_count': 10,
'star': 4,
'is_character': False,
'is_limited': True,
'is_chart_course': False,
'fate_points': 0,
'result': '绝弦'}
wish = Wish(five_star_weapon_up=["千夜浮梦", "圣显之钥"],
four_star_weapon_up=["绝弦", "祭礼残章", "匣里灭辰", "西风大剑", "西福斯的月光"])
wish.weapon_event_wish()
返回类型为dict
输出格式参考:
{'time': '2023-04-22 01:12:43',
'draw_count': 13,
'four_star_count': 10,
'star': 4,
'is_limited': False,
'is_character': False,
'result': '匣里龙吟'}
wish = Wish()
wish.std_wish()
from genshinwish import Wish
wish = Wish(up_candidate="纳西妲", four_star_up=["久岐忍", "多莉", "莱依拉"], chart_course="千夜浮梦")
wish.history = []
collect = []
count = 0
# 使用例:模拟抽卡(直到第一次抽中限定五星)
while True:
# 我的回合!抽卡!
state = wish.char_event_wish()
# print(state)
if state["star"] == 5 and state["is_limited"]: # 抽中本期UP就计数
count += 1
if count == 6: # 抽满命!!!
break
# if state["star"] == 5:
# break
# 提取分析抽出的五星
for i in range(len(wish.history)):
if wish.history[i]["star"] == 5:
print(wish.history[i])
输出示例:
{'time': '2023-04-22 01:25:31', 'five_star_grt': False, 'four_star_grt': False, 'draw_count': 79, 'four_star_count': 1, 'star': 5, 'is_limited': False, 'is_character': True, 'result': '莫娜'}
{'time': '2023-04-22 01:25:31', 'five_star_grt': True, 'four_star_grt': True, 'draw_count': 78, 'four_star_count': 6, 'star': 5, 'is_limited': True, 'is_character': True, 'result': '纳西妲'}
{'time': '2023-04-22 01:25:31', 'five_star_grt': False, 'four_star_grt': False, 'draw_count': 79, 'four_star_count': 8, 'star': 5, 'is_limited': True, 'is_character': True, 'result': '纳西妲'}
{'time': '2023-04-22 01:25:31', 'five_star_grt': False, 'four_star_grt': False, 'draw_count': 77, 'four_star_count': 10, 'star': 5, 'is_limited': False, 'is_character': True, 'result': '刻晴'}
{'time': '2023-04-22 01:25:31', 'five_star_grt': True, 'four_star_grt': True, 'draw_count': 75, 'four_star_count': 4, 'star': 5, 'is_limited': True, 'is_character': True, 'result': '纳西妲'}
{'time': '2023-04-22 01:25:31', 'five_star_grt': False, 'four_star_grt': False, 'draw_count': 40, 'four_star_count': 6, 'star': 5, 'is_limited': True, 'is_character': True, 'result': '纳西妲'}
{'time': '2023-04-22 01:25:31', 'five_star_grt': False, 'four_star_grt': False, 'draw_count': 18, 'four_star_count': 5, 'star': 5, 'is_limited': False, 'is_character': True, 'result': '提纳里'}
{'time': '2023-04-22 01:25:31', 'five_star_grt': True, 'four_star_grt': True, 'draw_count': 67, 'four_star_count': 1, 'star': 5, 'is_limited': True, 'is_character': True, 'result': '纳西妲'}
{'time': '2023-04-22 01:25:31', 'five_star_grt': False, 'four_star_grt': True, 'draw_count': 47, 'four_star_count': 1, 'star': 5, 'is_limited': False, 'is_character': True, 'result': '迪卢克'}
{'time': '2023-04-22 01:25:31', 'five_star_grt': True, 'four_star_grt': False, 'draw_count': 83, 'four_star_count': 6, 'star': 5, 'is_limited': True, 'is_character': True, 'result': '纳西妲'}