mirror of
https://github.com/zhenxun-org/zhenxun_bot.git
synced 2025-12-15 14:22:55 +08:00
更新开箱会记录箱子数据以及开箱时箱子价格加入花费
This commit is contained in:
parent
8c92756493
commit
33e42be32d
@ -1,7 +1,7 @@
|
|||||||
import asyncio
|
import asyncio
|
||||||
import os
|
import os
|
||||||
import time
|
import time
|
||||||
from datetime import datetime, timedelta, timezone
|
from datetime import datetime
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
from typing import List
|
from typing import List
|
||||||
|
|
||||||
|
|||||||
@ -226,7 +226,8 @@ async def _(event: MessageEvent, arg: Message = CommandArg()):
|
|||||||
else:
|
else:
|
||||||
case_list.append(f"{i+1}.{case_name}")
|
case_list.append(f"{i+1}.{case_name}")
|
||||||
await update_data.finish("未指定武器箱, 当前已包含武器箱\n" + "\n".join(case_list))
|
await update_data.finish("未指定武器箱, 当前已包含武器箱\n" + "\n".join(case_list))
|
||||||
await update_data.send(await update_case_data(msg))
|
await update_data.send(f"开始更新武器箱: {msg}, 请稍等")
|
||||||
|
await update_data.send(await update_case_data(msg), at_sender=True)
|
||||||
|
|
||||||
|
|
||||||
# 重置开箱
|
# 重置开箱
|
||||||
|
|||||||
@ -33,7 +33,7 @@ class OpenCasesUser(Model):
|
|||||||
"""金色"""
|
"""金色"""
|
||||||
knife_st_count: int = fields.IntField(default=0)
|
knife_st_count: int = fields.IntField(default=0)
|
||||||
"""金色暗金"""
|
"""金色暗金"""
|
||||||
spend_money: int = fields.IntField(default=0)
|
spend_money: float = fields.IntField(default=0)
|
||||||
"""花费金币"""
|
"""花费金币"""
|
||||||
make_money: float = fields.FloatField(default=0)
|
make_money: float = fields.FloatField(default=0)
|
||||||
"""赚取金币"""
|
"""赚取金币"""
|
||||||
@ -52,5 +52,6 @@ class OpenCasesUser(Model):
|
|||||||
@classmethod
|
@classmethod
|
||||||
async def _run_script(cls):
|
async def _run_script(cls):
|
||||||
return [
|
return [
|
||||||
"alter table open_cases_users alter COLUMN make_money type float;" # 将make_money字段改为float
|
"alter table open_cases_users alter COLUMN make_money type float;", # 将make_money字段改为float
|
||||||
|
"alter table open_cases_users alter COLUMN spend_money type float;", # 将spend_money字段改为float
|
||||||
]
|
]
|
||||||
|
|||||||
@ -32,7 +32,7 @@ COLOR2NAME = {"BLUE": "军规", "PURPLE": "受限", "PINK": "保密", "RED": "
|
|||||||
COLOR2CN = {"BLUE": "蓝", "PURPLE": "紫", "PINK": "粉", "RED": "红", "KNIFE": "金"}
|
COLOR2CN = {"BLUE": "蓝", "PURPLE": "紫", "PINK": "粉", "RED": "红", "KNIFE": "金"}
|
||||||
|
|
||||||
|
|
||||||
def add_count(user: OpenCasesUser, skin: BuffSkin):
|
def add_count(user: OpenCasesUser, skin: BuffSkin, case_price: float):
|
||||||
if skin.color == "BLUE":
|
if skin.color == "BLUE":
|
||||||
if skin.is_stattrak:
|
if skin.is_stattrak:
|
||||||
user.blue_st_count += 1
|
user.blue_st_count += 1
|
||||||
@ -61,7 +61,7 @@ def add_count(user: OpenCasesUser, skin: BuffSkin):
|
|||||||
user.today_open_total += 1
|
user.today_open_total += 1
|
||||||
user.total_count += 1
|
user.total_count += 1
|
||||||
user.make_money += skin.sell_min_price
|
user.make_money += skin.sell_min_price
|
||||||
user.spend_money += 17
|
user.spend_money += 17 + case_price
|
||||||
|
|
||||||
|
|
||||||
async def get_user_max_count(user_qq: int, group_id: int) -> int:
|
async def get_user_max_count(user_qq: int, group_id: int) -> int:
|
||||||
@ -116,7 +116,10 @@ async def open_case(user_qq: int, group_id: int, case_name: str) -> Union[str, M
|
|||||||
return "未抽取到任何皮肤..."
|
return "未抽取到任何皮肤..."
|
||||||
skin, rand = skin_list[0]
|
skin, rand = skin_list[0]
|
||||||
rand = str(rand)[:11]
|
rand = str(rand)[:11]
|
||||||
add_count(user, skin)
|
case_price = 0
|
||||||
|
if case_skin := await BuffSkin.get_or_none(case_name=case_name, color="CASE"):
|
||||||
|
case_price = case_skin.sell_min_price
|
||||||
|
add_count(user, skin, case_price)
|
||||||
ridicule_result = random.choice(RESULT_MESSAGE[skin.color])
|
ridicule_result = random.choice(RESULT_MESSAGE[skin.color])
|
||||||
price_result = skin.sell_min_price
|
price_result = skin.sell_min_price
|
||||||
name = skin.name + "-" + skin.skin_name + "-" + skin.abrasion
|
name = skin.name + "-" + skin.skin_name + "-" + skin.abrasion
|
||||||
@ -149,7 +152,7 @@ async def open_case(user_qq: int, group_id: int, case_name: str) -> Union[str, M
|
|||||||
+ "\n"
|
+ "\n"
|
||||||
+ f"皮肤:[{COLOR2NAME[skin.color]}]{skin.name}{'(StatTrak™)' if skin.is_stattrak else ''} | {skin.skin_name} ({skin.abrasion})\n"
|
+ f"皮肤:[{COLOR2NAME[skin.color]}]{skin.name}{'(StatTrak™)' if skin.is_stattrak else ''} | {skin.skin_name} ({skin.abrasion})\n"
|
||||||
f"磨损:{rand}\n"
|
f"磨损:{rand}\n"
|
||||||
f"价格:{price_result}\n"
|
f"价格:{price_result}\n箱子单价:{case_price}\n花费:{17 + case_price}\n"
|
||||||
f":{ridicule_result}"
|
f":{ridicule_result}"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -202,10 +205,13 @@ async def open_multiple_case(
|
|||||||
total_price = 0
|
total_price = 0
|
||||||
log_list = []
|
log_list = []
|
||||||
now = datetime.now()
|
now = datetime.now()
|
||||||
|
case_price = 0
|
||||||
|
if case_skin := await BuffSkin.get_or_none(case_name=case_name, color="CASE"):
|
||||||
|
case_price = case_skin.sell_min_price
|
||||||
for skin, rand in skin_list:
|
for skin, rand in skin_list:
|
||||||
total_price += skin.sell_min_price
|
total_price += skin.sell_min_price
|
||||||
rand = str(rand)[:11]
|
rand = str(rand)[:11]
|
||||||
add_count(user, skin)
|
add_count(user, skin, case_price)
|
||||||
color_name = COLOR2CN[skin.color]
|
color_name = COLOR2CN[skin.color]
|
||||||
if skin.is_stattrak:
|
if skin.is_stattrak:
|
||||||
color_name += "(暗金)"
|
color_name += "(暗金)"
|
||||||
@ -266,7 +272,7 @@ async def open_multiple_case(
|
|||||||
+ image(markImg.pic2bs4())
|
+ image(markImg.pic2bs4())
|
||||||
+ "\n"
|
+ "\n"
|
||||||
+ result[:-1]
|
+ result[:-1]
|
||||||
+ f"\n总获取金额:{total_price:.2f}\n总花费:{17 * num}"
|
+ f"\n箱子单价:{case_price}\n总获取金额:{total_price:.2f}\n总花费:{(17 + case_price) * num}"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -186,20 +186,26 @@ async def search_skin_page(
|
|||||||
info = goods_info["info"]
|
info = goods_info["info"]
|
||||||
tags = info["tags"]
|
tags = info["tags"]
|
||||||
obj["weapon_type"] = tags["type"]["localized_name"] # 枪械类型
|
obj["weapon_type"] = tags["type"]["localized_name"] # 枪械类型
|
||||||
if obj["weapon_type"] in ["音乐盒", "印花", "武器箱"]:
|
if obj["weapon_type"] in ["音乐盒", "印花"]:
|
||||||
continue
|
continue
|
||||||
if obj["weapon_type"] in ["匕首", "手套"]:
|
if obj["weapon_type"] in ["匕首", "手套"]:
|
||||||
obj["color"] = "KNIFE"
|
obj["color"] = "KNIFE"
|
||||||
obj["name"] = data["short_name"].split("(")[0].strip() # 名称
|
obj["name"] = data["short_name"].split("(")[0].strip() # 名称
|
||||||
|
if obj["weapon_type"] in ["武器箱"]:
|
||||||
|
obj["color"] = "CASE"
|
||||||
|
obj["name"] = data["short_name"]
|
||||||
else:
|
else:
|
||||||
obj["color"] = NAME2COLOR[tags["rarity"]["localized_name"]]
|
obj["color"] = NAME2COLOR[tags["rarity"]["localized_name"]]
|
||||||
obj["name"] = tags["weapon"]["localized_name"] # 名称
|
obj["name"] = tags["weapon"]["localized_name"] # 名称
|
||||||
obj["skin_name"] = data["short_name"].split("|")[-1].strip() # 皮肤名称
|
if obj["weapon_type"] not in ["武器箱"]:
|
||||||
obj["img_url"] = goods_info["original_icon_url"] # 图片url
|
|
||||||
obj["steam_price"] = goods_info["steam_price_cny"] # steam价格
|
|
||||||
obj["abrasion"] = tags["exterior"]["localized_name"] # 磨损
|
obj["abrasion"] = tags["exterior"]["localized_name"] # 磨损
|
||||||
obj["color"] = NAME2COLOR[tags["rarity"]["localized_name"]] # 品质颜色
|
obj["color"] = NAME2COLOR[tags["rarity"]["localized_name"]] # 品质颜色
|
||||||
obj["is_stattrak"] = "StatTrak" in tags["quality"]["localized_name"] # type: ignore # 是否暗金
|
obj["is_stattrak"] = "StatTrak" in tags["quality"]["localized_name"] # type: ignore # 是否暗金
|
||||||
|
else:
|
||||||
|
obj["abrasion"] = "CASE"
|
||||||
|
obj["skin_name"] = data["short_name"].split("|")[-1].strip() # 皮肤名称
|
||||||
|
obj["img_url"] = goods_info["original_icon_url"] # 图片url
|
||||||
|
obj["steam_price"] = goods_info["steam_price_cny"] # steam价格
|
||||||
obj["sell_min_price"] = data["sell_min_price"] # 售卖最低价格
|
obj["sell_min_price"] = data["sell_min_price"] # 售卖最低价格
|
||||||
obj["sell_num"] = data["sell_num"] # 售卖数量
|
obj["sell_num"] = data["sell_num"] # 售卖数量
|
||||||
obj["sell_reference_price"] = data["sell_reference_price"] # 参考价格
|
obj["sell_reference_price"] = data["sell_reference_price"] # 参考价格
|
||||||
@ -210,8 +216,8 @@ async def search_skin_page(
|
|||||||
)
|
)
|
||||||
return update_data, json_data["data"]["total_page"]
|
return update_data, json_data["data"]["total_page"]
|
||||||
else:
|
else:
|
||||||
logger.warning(f'访问BUFF失败: {json_data["msg"]}')
|
logger.warning(f'访问BUFF失败: {json_data["error"]}')
|
||||||
return f'访问失败: {json_data["msg"]}', -1
|
return f'访问失败: {json_data["error"]}', -1
|
||||||
|
|
||||||
|
|
||||||
async def reset_count_daily():
|
async def reset_count_daily():
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user