init
This commit is contained in:
16
game_server/game/chat/command/__init__.py
Normal file
16
game_server/game/chat/command/__init__.py
Normal file
@@ -0,0 +1,16 @@
|
||||
import importlib
|
||||
import os
|
||||
import sys
|
||||
|
||||
|
||||
folder = "game_server/game/chat/command"
|
||||
sys.path.append(os.path.dirname(folder))
|
||||
|
||||
for filename in os.listdir(folder):
|
||||
if filename.endswith(".py") and filename != "__init__.py":
|
||||
module_name = filename[:-3]
|
||||
module_path = f"game_server.game.chat.command.{module_name}"
|
||||
try:
|
||||
importlib.import_module(module_path)
|
||||
except Exception as e:
|
||||
print(f"Error importing module '{module_path}': {e}")
|
||||
60
game_server/game/chat/command/give.py
Normal file
60
game_server/game/chat/command/give.py
Normal file
@@ -0,0 +1,60 @@
|
||||
from game_server.game.chat.decorators import Command
|
||||
from game_server.net.session import PlayerSession
|
||||
from game_server.resource import ResourceManager
|
||||
from game_server.resource.configdb.equipment_config import EquipmentConfig
|
||||
from game_server.resource.configdb.relic_config import RelicConfigData
|
||||
from game_server.resource.configdb.relic_main_affix_config import RelicMainAffixConfigData
|
||||
from game_server.resource.configdb.relic_sub_affix_config import RelicSubAffixConfigData
|
||||
from database.inventory.inventory_data import SubAffix
|
||||
|
||||
@Command(
|
||||
prefix="give",
|
||||
usage="/give",
|
||||
)
|
||||
async def execute(session:PlayerSession, item_id, param1=None, param2=None, param3=None, param4=None, param5=None):
|
||||
try:
|
||||
sync = False
|
||||
lightcones = ResourceManager.instance().find_by_index(EquipmentConfig,item_id)
|
||||
relics = ResourceManager.instance().find_by_index(RelicConfigData,item_id)
|
||||
|
||||
if lightcones:
|
||||
rank = 1
|
||||
if param1 and param1.startswith("r") and len(param1) == 2:
|
||||
rank_value = param1[1]
|
||||
if rank_value.isdigit() and 1 <= int(rank_value) <= 5:
|
||||
rank = int(rank_value)
|
||||
elif rank_value.isdigit() and int(rank_value) > 5:
|
||||
rank = 5
|
||||
item = session.player.add_lightcone(item_id, rank)
|
||||
if item:
|
||||
session.player.inventory_manager[item.unique_id] = item
|
||||
sync = True
|
||||
elif relics:
|
||||
main_stat = 0
|
||||
main_property = ""
|
||||
main_affix_group = ResourceManager.instance().find_all_by_index(RelicMainAffixConfigData, relics.MainAffixGroup)
|
||||
sub_affix_list = []
|
||||
|
||||
if param1 and param1.startswith("s") and len(param1) == 2 and param1[1].isdigit():
|
||||
main_affix = next((affix for affix in main_affix_group if affix.AffixID == int(param1[1])))
|
||||
if main_affix:
|
||||
main_stat = main_affix.AffixID
|
||||
main_property = main_affix.Property
|
||||
|
||||
for param in [param2, param3, param4, param5]:
|
||||
if param and len(param) >= 3 and ":" in param:
|
||||
parts = param.split(":")
|
||||
if len(parts) == 2 and all(part.isdigit() for part in parts):
|
||||
sub_affix_data = ResourceManager.instance().find_all_by_index(RelicSubAffixConfigData, relics.SubAffixGroup)
|
||||
for affix in sub_affix_data:
|
||||
if affix.AffixID == int(parts[0]) and affix.Property != main_property:
|
||||
sub_affix_list.append(SubAffix(id=int(parts[0]), count=int(parts[1]), step=int(parts[1]) * 2))
|
||||
item = session.player.add_relic(item_id,main_stat,sub_affix_list)
|
||||
if item:
|
||||
session.player.inventory_manager[item.unique_id] = item
|
||||
sync = True
|
||||
if sync:
|
||||
await session.notify(session.player.PlayerSyncProto())
|
||||
return "GIVE"
|
||||
except Exception as e:
|
||||
print(e)
|
||||
48
game_server/game/chat/command/giveall.py
Normal file
48
game_server/game/chat/command/giveall.py
Normal file
@@ -0,0 +1,48 @@
|
||||
from game_server.game.chat.decorators import Command
|
||||
from game_server.net.session import PlayerSession
|
||||
from game_server.resource import ResourceManager
|
||||
from game_server.resource.configdb.avatar_config import AvatarConfig
|
||||
from game_server.resource.configdb.equipment_config import EquipmentConfig
|
||||
from game_server.resource.configdb.relic_config import RelicConfigData
|
||||
|
||||
@Command(
|
||||
prefix="giveall",
|
||||
usage="/giveall",
|
||||
)
|
||||
async def execute(session:PlayerSession, text):
|
||||
try:
|
||||
sync = False
|
||||
if text == "avatars":
|
||||
avatars = ResourceManager.instance().values(AvatarConfig)
|
||||
for avatar in avatars:
|
||||
if avatar.AvatarID == 1224 or avatar.AvatarID >= 7000:
|
||||
continue
|
||||
if session.player.avatar_mananger.get(avatar.AvatarID):
|
||||
continue
|
||||
data = session.player.add_avatar(avatar.AvatarID)
|
||||
if data:
|
||||
session.player.avatar_mananger[data.avatar_id] = data
|
||||
sync = True
|
||||
|
||||
if text == "lightcones":
|
||||
lightcones = ResourceManager.instance().values(EquipmentConfig)
|
||||
for lightcone in lightcones:
|
||||
item = session.player.add_lightcone(lightcone.EquipmentID)
|
||||
if item:
|
||||
session.player.inventory_manager[item.unique_id] = item
|
||||
sync = True
|
||||
|
||||
if text == "relics":
|
||||
relics = ResourceManager.instance().values(RelicConfigData)
|
||||
for relic in relics:
|
||||
item = session.player.add_relic(relic.ID)
|
||||
if item:
|
||||
session.player.inventory_manager[item.unique_id] = item
|
||||
sync = True
|
||||
|
||||
if sync:
|
||||
await session.notify(session.player.PlayerSyncProto())
|
||||
|
||||
return "GIVEALL"
|
||||
except Exception as e:
|
||||
print(e)
|
||||
Reference in New Issue
Block a user