초기커밋
This commit is contained in:
@@ -0,0 +1,189 @@
|
||||
using System.Collections.Concurrent;
|
||||
|
||||
|
||||
using Amazon.S3.Model;
|
||||
|
||||
|
||||
using ServerCore; using ServerBase;
|
||||
using ServerCommon;
|
||||
|
||||
|
||||
using static ClientToGameReq.Types;
|
||||
|
||||
|
||||
namespace GameServer;
|
||||
|
||||
|
||||
[ChatCommandAttribute("charappearcustom", typeof(ChatCharacterCustomize), AuthAdminLevelType.Developer, AuthAdminLevelType.GmNormal, AuthAdminLevelType.GmSuper)]
|
||||
public class ChatCharacterCustomize : ChatCommandBase
|
||||
{
|
||||
public override async Task invoke(Player player, string token, string[] args)
|
||||
{
|
||||
Log.getLogger().info($"Call charappearcustom !!! - {player.toBasicString()}");
|
||||
|
||||
var result = new Result();
|
||||
var err_msg = string.Empty;
|
||||
|
||||
if (args.Length < 3)
|
||||
{
|
||||
err_msg = $"Not enough argument !!! : argCount:{args.Length} == 1 - {player.toBasicString()}";
|
||||
Log.getLogger().error(err_msg);
|
||||
return;
|
||||
}
|
||||
|
||||
var read_params = new List<int>();
|
||||
for (var i = 0; i < 3; i++)
|
||||
{
|
||||
var param = args[i];
|
||||
if (true == param.isNullOrWhiteSpace())
|
||||
{
|
||||
err_msg = $"Arg {i} is Empty !!! - {player.toBasicString()}";
|
||||
Log.getLogger().error(err_msg);
|
||||
return;
|
||||
}
|
||||
|
||||
if (false == int.TryParse(param, out var value))
|
||||
{
|
||||
err_msg = $"Failed to TryParse() !!! - {player.toBasicString()}";
|
||||
Log.getLogger().error(err_msg);
|
||||
return;
|
||||
}
|
||||
|
||||
read_params.Add(value);
|
||||
}
|
||||
|
||||
var player_action = player.getEntityAction<PlayerAction>();
|
||||
NullReferenceCheckHelper.throwIfNull(player_action, () => $"player_action is null !!!");
|
||||
|
||||
var selected_character = player_action.getSelectedCharacter();
|
||||
NullReferenceCheckHelper.throwIfNull(selected_character, () => $"selected_character is null !!!");
|
||||
|
||||
var character_attribute = selected_character.getEntityAttribute<CharacterAttribute>();
|
||||
NullReferenceCheckHelper.throwIfNull(character_attribute, () => $"character_attribute is null !!!");
|
||||
|
||||
var to_change_character_guid = character_attribute.CharacterGuid;
|
||||
|
||||
var appearance_customize = new AppearanceCustomization();
|
||||
appearance_customize.BasicStyle = read_params[0];
|
||||
appearance_customize.BodyShape = read_params[1];
|
||||
appearance_customize.HairStyle = read_params[2];
|
||||
|
||||
var server_logic = GameServerApp.getServerLogic();
|
||||
NullReferenceCheckHelper.throwIfNull(server_logic, () => $"server_logic is null !!! - {player.toBasicString()}");
|
||||
|
||||
var session = player as IEntityWithSession;
|
||||
NullReferenceCheckHelper.throwIfNull(session, () => $"session is null !!! - {player.toBasicString()}");
|
||||
|
||||
//=====================================================================================
|
||||
// 패킷 구성
|
||||
//=====================================================================================
|
||||
var packet = new ClientToGame();
|
||||
packet.Request = new ClientToGameReq();
|
||||
var req_msg = new C2GS_REQ_CHARACTER_APPEARANCE_CUSTOMIZE();
|
||||
packet.Request.ReqCharacterAppearanceCustomize = req_msg;
|
||||
|
||||
req_msg.ToChangeCharacterGuid = to_change_character_guid;
|
||||
req_msg.ToApplyAppearCustomize = appearance_customize;
|
||||
|
||||
result = await server_logic.onCallProtocolHandler(session, packet);
|
||||
if (result.isFail())
|
||||
{
|
||||
err_msg = $"Failed to onCallProtocolHandler() !!! : {result.toBasicString()} - {player.toBasicString()}";
|
||||
Log.getLogger().error(err_msg);
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
[ChatCommandAttribute("beaconappearcustom", typeof(BeaconCharacterCustomize), AuthAdminLevelType.Developer, AuthAdminLevelType.GmNormal, AuthAdminLevelType.GmSuper)]
|
||||
public class BeaconCharacterCustomize : ChatCommandBase
|
||||
{
|
||||
public override async Task invoke(Player player, string token, string[] args)
|
||||
{
|
||||
Log.getLogger().info($"Call beaconappearcustom !!! - {player.toBasicString()}");
|
||||
|
||||
var result = new Result();
|
||||
var err_msg = string.Empty;
|
||||
|
||||
if (args.Length < 3)
|
||||
{
|
||||
err_msg = $"Not enough argument !!! : argCount:{args.Length} == 1 - {player.toBasicString()}";
|
||||
Log.getLogger().error(err_msg);
|
||||
return;
|
||||
}
|
||||
|
||||
var read_params = new List<int>();
|
||||
for (var i = 0; i < 3; i++)
|
||||
{
|
||||
var param = args[i];
|
||||
if (true == param.isNullOrWhiteSpace())
|
||||
{
|
||||
err_msg = $"Arg {i} is Empty !!! - {player.toBasicString()}";
|
||||
Log.getLogger().error(err_msg);
|
||||
return;
|
||||
}
|
||||
|
||||
if (false == int.TryParse(param, out var value))
|
||||
{
|
||||
err_msg = $"Failed to TryParse() !!! - {player.toBasicString()}";
|
||||
Log.getLogger().error(err_msg);
|
||||
return;
|
||||
}
|
||||
|
||||
read_params.Add(value);
|
||||
}
|
||||
|
||||
var player_action = player.getEntityAction<PlayerAction>();
|
||||
NullReferenceCheckHelper.throwIfNull(player_action, () => $"player_action is null !!!");
|
||||
|
||||
var had_ugc_npcs = player_action.getHadUgcNpcs().Values.ToList();
|
||||
NullReferenceCheckHelper.throwIfNull(had_ugc_npcs, () => $"had_ugc_npcs is null !!!");
|
||||
|
||||
if(0 >= had_ugc_npcs.Count)
|
||||
{
|
||||
err_msg = $"Had not Beacon !!! : 0 < hadCount:{had_ugc_npcs.Count} - {player.toBasicString()}";
|
||||
Log.getLogger().error(err_msg);
|
||||
return;
|
||||
}
|
||||
|
||||
var selected_seq = RandomHelper.next(0, had_ugc_npcs.Count() - 1);
|
||||
|
||||
var selected_ugc_npc = had_ugc_npcs[selected_seq];
|
||||
|
||||
var beacon_attribute = selected_ugc_npc.getEntityAttribute<UgcNpcAttribute>();
|
||||
NullReferenceCheckHelper.throwIfNull(beacon_attribute, () => $"beacon_attribute is null !!!");
|
||||
|
||||
var to_change_beacon_meta_guid = beacon_attribute.UgcNpcMetaGuid;
|
||||
|
||||
var appearance_customize = new AppearanceCustomization();
|
||||
appearance_customize.BasicStyle = read_params[0];
|
||||
appearance_customize.BodyShape = read_params[1];
|
||||
appearance_customize.HairStyle = read_params[2];
|
||||
|
||||
var server_logic = GameServerApp.getServerLogic();
|
||||
NullReferenceCheckHelper.throwIfNull(server_logic, () => $"server_logic is null !!! - {player.toBasicString()}");
|
||||
|
||||
var session = player as IEntityWithSession;
|
||||
NullReferenceCheckHelper.throwIfNull(session, () => $"session is null !!! - {player.toBasicString()}");
|
||||
|
||||
//=====================================================================================
|
||||
// 패킷 구성
|
||||
//=====================================================================================
|
||||
var packet = new ClientToGame();
|
||||
packet.Request = new ClientToGameReq();
|
||||
var req_msg = new C2GS_REQ_BEACON_APPEARANCE_CUSTOMIZE();
|
||||
packet.Request.ReqBeaconAppearanceCustomize = req_msg;
|
||||
|
||||
req_msg.ToChangeUgcNpcMetaGuid = to_change_beacon_meta_guid;
|
||||
req_msg.ToApplyAppearCustomize = appearance_customize;
|
||||
|
||||
result = await server_logic.onCallProtocolHandler(session, packet);
|
||||
if (result.isFail())
|
||||
{
|
||||
err_msg = $"Failed to onCallProtocolHandler() !!! : {result.toBasicString()} - {player.toBasicString()}";
|
||||
Log.getLogger().error(err_msg);
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user