초기커밋
This commit is contained in:
179
GameServer/Contents/GameMode/Mode-Battle/Cheat/BattleCheat.cs
Normal file
179
GameServer/Contents/GameMode/Mode-Battle/Cheat/BattleCheat.cs
Normal file
@@ -0,0 +1,179 @@
|
||||
using Nettention.Proud;
|
||||
|
||||
|
||||
using ServerCore;
|
||||
using ServerBase;
|
||||
using ServerCommon;
|
||||
|
||||
|
||||
|
||||
namespace GameServer;
|
||||
|
||||
|
||||
|
||||
|
||||
[ChatCommandAttribute("battleinstanceinit", typeof(CheatBattleInstanceInit), AuthAdminLevelType.Developer,
|
||||
AuthAdminLevelType.GmNormal, AuthAdminLevelType.GmSuper)]
|
||||
public class CheatBattleInstanceInit : ChatCommandBase
|
||||
{
|
||||
public override async Task invoke(Player player, string token, string[] args)
|
||||
{
|
||||
Log.getLogger().info($"battleinstanceinit");
|
||||
|
||||
var server_logic = GameServerApp.getServerLogic();
|
||||
|
||||
var room_id = player.getCurrentInstanceRoomId();
|
||||
if (room_id.Equals(string.Empty))
|
||||
{
|
||||
Log.getLogger().error($"cheat:battleinstanceinit.... this cheat only use in instance");
|
||||
return;
|
||||
}
|
||||
|
||||
var battle_instance_room = BattleInstanceManager.It.getBattleInstanceRoom(room_id);
|
||||
if (battle_instance_room is null)
|
||||
{
|
||||
Log.getLogger().error($"cheat:battleinstanceinit.... battle_instance_room is null room_id : {room_id}");
|
||||
return;
|
||||
}
|
||||
|
||||
using (var releaser = await battle_instance_room.getAsyncLock())
|
||||
{
|
||||
var attribute = battle_instance_room.getEntityAttribute<BattleInstanceSnapshotAttribute>();
|
||||
NullReferenceCheckHelper.throwIfNull(attribute, () => $"attribute is null !!!");
|
||||
|
||||
if (false == attribute.m_combat_pod_mode.m_round_state_type.Equals(BattleRoundStateType.RoundEndAll) &&
|
||||
false == attribute.m_combat_pod_mode.m_round_state_type.Equals(BattleRoundStateType.Destroyed))
|
||||
{
|
||||
Log.getLogger().error($"cheat:battleinstanceinit.... this cheat only RoundEndAll room_id : {room_id}");
|
||||
return;
|
||||
}
|
||||
|
||||
var now = DateTimeHelper.Current;
|
||||
battle_instance_room.setEventStartTime(now);
|
||||
|
||||
attribute.m_combat_pod_mode.m_round_state_type = BattleRoundStateType.Rounding;
|
||||
attribute.m_combat_pod_mode.m_current_state_start_time = now;
|
||||
attribute.m_combat_pod_mode.m_current_round = 1;
|
||||
attribute.m_combat_pod_mode.m_charged_step = 0;
|
||||
attribute.m_combat_pod_mode.m_rewarded_step = 0;
|
||||
|
||||
attribute.m_combat_pod_mode.m_pod_combat.setActive(now);
|
||||
|
||||
|
||||
(Result result, var anchor_guid) =
|
||||
BattleRoomHelper.getRandomCombatPodAnchorGuid(attribute, battle_instance_room);
|
||||
if (result.isFail())
|
||||
{
|
||||
Log.getLogger().error("get Random pod combat anchor guid faile !!! ");
|
||||
return;
|
||||
}
|
||||
|
||||
attribute.m_combat_pod_mode.m_pod_combat.m_source_storage_anchor_guid = anchor_guid;
|
||||
|
||||
BattleRoomNotifyHelper.broadcast_GS2C_NTF_BATTLE_INSTANCE_STATE(battle_instance_room);
|
||||
|
||||
var update_action = battle_instance_room.getEntityAction<BattleInstanceUpdateAction>();
|
||||
NullReferenceCheckHelper.throwIfNull(update_action, () => $"attribute is null !!!");
|
||||
update_action.battleObjectStateInitAndNotify(battle_instance_room, attribute);
|
||||
|
||||
BattleRoomNotifyHelper.broadcast_GS2C_NTF_POD_COMBAT_STATE(battle_instance_room);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
[ChatCommandAttribute("gamemodeoccupyhost", typeof(BattleHostOccupy), AuthAdminLevelType.Developer,
|
||||
AuthAdminLevelType.GmNormal, AuthAdminLevelType.GmSuper)]
|
||||
public class BattleHostOccupy : ChatCommandBase
|
||||
{
|
||||
public override async Task invoke(Player player, string token, string[] args)
|
||||
{
|
||||
//Log.getLogger().info($"battleinstanceinit");
|
||||
|
||||
var server_logic = GameServerApp.getServerLogic();
|
||||
|
||||
var room_id = player.getCurrentInstanceRoomId();
|
||||
if (room_id.Equals(string.Empty))
|
||||
{
|
||||
Log.getLogger().error($"cheat:gamemodeoccupyhost.... this cheat only use in instance");
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
//kihoon todo : 임시 분기 처리
|
||||
//나중에 게임모드로 분리되면 그때 재작업
|
||||
if (room_id.Contains("battle"))
|
||||
{
|
||||
var battle_instance_room = BattleInstanceManager.It.getBattleInstanceRoom(room_id);
|
||||
if (battle_instance_room is null)
|
||||
{
|
||||
Log.getLogger().error($"cheat:gamemodeoccupyhost.... battle_instance_room is null room_id : {room_id}");
|
||||
return;
|
||||
}
|
||||
|
||||
using (var releaser = await battle_instance_room.getAsyncLock())
|
||||
{
|
||||
battle_instance_room.m_host_migrator.modifyHost(player.getUserGuid());
|
||||
}
|
||||
|
||||
BattleRoomNotifyHelper.broadcast_GS2C_NTF_P2P_HOST_UPDATE(battle_instance_room.m_instance_room,
|
||||
player.getUserGuid());
|
||||
}
|
||||
else if (room_id.Contains("1017101"))
|
||||
{
|
||||
var instance_room = InstanceRoomManager.Instance.getInstanceRoomByRoomId(room_id);
|
||||
if (instance_room is null)
|
||||
{
|
||||
Log.getLogger().error($"cheat:gamemodeoccupyhost.... instance_room is null room_id : {room_id}");
|
||||
return;
|
||||
}
|
||||
|
||||
BattleRoomNotifyHelper.broadcast_GS2C_NTF_P2P_HOST_UPDATE(instance_room, player.getUserGuid());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//======================================================================================================================
|
||||
//
|
||||
//======================================================================================================================
|
||||
[ChatCommandAttribute("gamehostmigration", typeof(BattleHostMigration), AuthAdminLevelType.Developer,
|
||||
AuthAdminLevelType.GmNormal, AuthAdminLevelType.GmSuper)]
|
||||
public class BattleHostMigration : ChatCommandBase
|
||||
{
|
||||
public override async Task invoke(Player player, string token, string[] args)
|
||||
{
|
||||
Log.getLogger().info($"gamehostmigration");
|
||||
|
||||
var server_logic = GameServerApp.getServerLogic();
|
||||
|
||||
var room_id = player.getCurrentInstanceRoomId();
|
||||
if (room_id.Equals(string.Empty))
|
||||
{
|
||||
Log.getLogger().error($"cheat:gamehostmigration.... this cheat only use in instance");
|
||||
return;
|
||||
}
|
||||
|
||||
var battle_instance_room = BattleInstanceManager.It.getBattleInstanceRoom(room_id);
|
||||
if (battle_instance_room is null)
|
||||
{
|
||||
Log.getLogger().error($"cheat:gamehostmigration.... battle_instance_room is null room_id : {room_id}");
|
||||
return;
|
||||
}
|
||||
|
||||
using var releaser = await battle_instance_room.getAsyncLock();
|
||||
if (battle_instance_room.m_host_migrator is CommonHostMigrator common_hot_migrator)
|
||||
{
|
||||
common_hot_migrator.HostMigrationSystem.setIgnoreMigrationCondition(true);
|
||||
common_hot_migrator.migrateCheck(true);
|
||||
var super_peer_guid_id = common_hot_migrator.getHostUserGuid();
|
||||
BattleRoomNotifyHelper.broadcast_GS2C_NTF_P2P_HOST_UPDATE(
|
||||
battle_instance_room.m_instance_room, super_peer_guid_id);
|
||||
common_hot_migrator.HostMigrationSystem.setIgnoreMigrationCondition(false);
|
||||
}
|
||||
else
|
||||
{
|
||||
Log.getLogger()
|
||||
.error(
|
||||
$"cheat:gamehostmigration.... battle_instance_room is not CommonHostMigrator room_id : {room_id}");
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user