| | |
| | | typeof(PlayerAttrConfig),
|
| | | typeof(PlayerFaceConfig),
|
| | | typeof(PriorBundleConfig),
|
| | | typeof(RandomNameConfig),
|
| | | typeof(SignInConfig),
|
| | | typeof(StoreConfig),
|
| | | typeof(SuccessConfig),
|
| | |
| | | ClearConfigDictionary<PlayerFaceConfig>();
|
| | | // 清空 PriorBundleConfig 字典
|
| | | ClearConfigDictionary<PriorBundleConfig>();
|
| | | // 清空 RandomNameConfig 字典
|
| | | ClearConfigDictionary<RandomNameConfig>();
|
| | | // 清空 SignInConfig 字典
|
| | | ClearConfigDictionary<SignInConfig>();
|
| | | // 清空 StoreConfig 字典
|
| New file |
| | |
| | | //-------------------------------------------------------- |
| | | // [Author]: YYL |
| | | // [ Date ]: 2025年11月11日 |
| | | //-------------------------------------------------------- |
| | | |
| | | using System.Collections.Generic; |
| | | using System; |
| | | using UnityEngine; |
| | | using LitJson; |
| | | |
| | | public partial class RandomNameConfig : ConfigBase<int, RandomNameConfig> |
| | | { |
| | | static RandomNameConfig() |
| | | { |
| | | // 访问过静态构造函数 |
| | | visit = true; |
| | | } |
| | | |
| | | public int ID; |
| | | public string Job; |
| | | public string RandomName1; |
| | | public string RandomName2; |
| | | |
| | | public override int LoadKey(string _key) |
| | | { |
| | | int key = GetKey(_key); |
| | | return key; |
| | | } |
| | | |
| | | public override void LoadConfig(string input) |
| | | { |
| | | try { |
| | | string[] tables = input.Split('\t'); |
| | | int.TryParse(tables[0],out ID); |
| | | |
| | | Job = tables[1]; |
| | | |
| | | RandomName1 = tables[2]; |
| | | |
| | | RandomName2 = tables[3]; |
| | | } |
| | | catch (Exception exception) |
| | | { |
| | | Debug.LogError(exception); |
| | | } |
| | | } |
| | | } |
| New file |
| | |
| | | fileFormatVersion: 2 |
| | | guid: be5973bc28eb7ad47bf0054cb653c1da |
| | | MonoImporter: |
| | | externalObjects: {} |
| | | serializedVersion: 2 |
| | | defaultReferences: [] |
| | | executionOrder: 0 |
| | | icon: {instanceID: 0} |
| | | userData: |
| | | assetBundleName: |
| | | assetBundleVariant: |
| New file |
| | |
| | | using System.Collections.Generic; |
| | | public partial class RandomNameConfig : ConfigBase<int, RandomNameConfig> |
| | | { |
| | | // <职业,随机姓> |
| | | static Dictionary<int, List<string>> randomName1Dict = new Dictionary<int, List<string>>(); |
| | | // <职业,随机名> |
| | | static Dictionary<int, List<string>> randomName2Dict = new Dictionary<int, List<string>>(); |
| | | protected override void OnConfigParseCompleted() |
| | | { |
| | | int[] arr = ConfigParse.GetMultipleStr<int>(Job); |
| | | if (arr.IsNullOrEmpty()) |
| | | return; |
| | | foreach (var item in arr) |
| | | { |
| | | if (!randomName1Dict.ContainsKey(item)) |
| | | { |
| | | randomName1Dict[item] = new List<string>(); |
| | | } |
| | | if (!randomName1Dict[item].Contains(RandomName1)) |
| | | { |
| | | randomName1Dict[item].Add(RandomName1); |
| | | } |
| | | |
| | | if (!randomName2Dict.ContainsKey(item)) |
| | | { |
| | | randomName2Dict[item] = new List<string>(); |
| | | } |
| | | if (!randomName2Dict[item].Contains(RandomName2)) |
| | | { |
| | | randomName2Dict[item].Add(RandomName2); |
| | | } |
| | | } |
| | | } |
| | | |
| | | public static bool TryGetRandomName1ByJob(int job, out List<string> list) |
| | | { |
| | | list = null; |
| | | return !randomName1Dict.IsNullOrEmpty() && randomName1Dict.TryGetValue(job, out list); |
| | | } |
| | | |
| | | public static bool TryGetRandomName2ByJob(int job, out List<string> list) |
| | | { |
| | | list = null; |
| | | return !randomName2Dict.IsNullOrEmpty() && randomName2Dict.TryGetValue(job, out list); |
| | | } |
| | | } |
| New file |
| | |
| | | fileFormatVersion: 2 |
| | | guid: 6a7049648c8e9ff428d119302bbd4800 |
| | | MonoImporter: |
| | | externalObjects: {} |
| | | serializedVersion: 2 |
| | | defaultReferences: [] |
| | | executionOrder: 0 |
| | | icon: {instanceID: 0} |
| | | userData: |
| | | assetBundleName: |
| | | assetBundleVariant: |
| New file |
| | |
| | | using UnityEngine; |
| | | using System.Collections; |
| | | |
| | | //A1 23 角色改名次数 #tagUpdatePlayerNameCount |
| | | |
| | | public class DTCA123_tagUpdatePlayerNameCount : DtcBasic { |
| | | public override void Done(GameNetPackBasic vNetPack) { |
| | | base.Done(vNetPack); |
| | | HA123_tagUpdatePlayerNameCount vNetData = vNetPack as HA123_tagUpdatePlayerNameCount; |
| | | RenameManager.Instance.UpdatePlayerNameCount(vNetData); |
| | | } |
| | | } |
| New file |
| | |
| | | fileFormatVersion: 2 |
| | | guid: fe116c76d9a7fb64cae48b1ccf2620bc |
| | | MonoImporter: |
| | | externalObjects: {} |
| | | serializedVersion: 2 |
| | | defaultReferences: [] |
| | | executionOrder: 0 |
| | | icon: {instanceID: 0} |
| | | userData: |
| | | assetBundleName: |
| | | assetBundleVariant: |
| New file |
| | |
| | | using UnityEngine; |
| | | using System.Collections; |
| | | |
| | | // A9 21 角色改名结果 #tagSCRenameResult |
| | | |
| | | public class DTCA921_tagSCRenameResult : DtcBasic { |
| | | public override void Done(GameNetPackBasic vNetPack) { |
| | | base.Done(vNetPack); |
| | | HA921_tagSCRenameResult vNetData = vNetPack as HA921_tagSCRenameResult; |
| | | RenameManager.Instance.UpdateRenameResult(vNetData); |
| | | } |
| | | } |
| New file |
| | |
| | | fileFormatVersion: 2 |
| | | guid: 13b012d2181362849a84ed5b9201d225 |
| | | MonoImporter: |
| | | externalObjects: {} |
| | | serializedVersion: 2 |
| | | defaultReferences: [] |
| | | executionOrder: 0 |
| | | icon: {instanceID: 0} |
| | | userData: |
| | | assetBundleName: |
| | | assetBundleVariant: |
| | |
| | | Register(typeof(HB120_tagMCZhanlingInfo), typeof(DTCB120_tagMCZhanlingInfo)); |
| | | Register(typeof(HA311_tagMCSyncRealmInfo), typeof(DTCA311_tagMCSyncRealmInfo)); |
| | | Register(typeof(HB110_tagMCTaskInfo), typeof(DTCB110_tagMCTaskInfo)); |
| | | Register(typeof(HA921_tagUpdatePlayerNameResult), typeof(DTCA921_tagUpdatePlayerNameResult)); |
| | | Register(typeof(H3202_tagServerResponse), typeof(DTC3202_tagServerResponse)); |
| | | Register(typeof(HA130_tagMCViewBillboardRet), typeof(DTCA130_tagMCViewBillboardRet)); |
| | | Register(typeof(HB419_tagSCObjHPRefresh), typeof(DTCB419_tagSCObjHPRefresh)); |
| | |
| | | Register(typeof(HA342_tagSCSuccessAwardRecordList), typeof(DTCA342_tagSCSuccessAwardRecordList)); |
| | | Register(typeof(HB128_tagSCLLMJInfo), typeof(DTCB128_tagSCLLMJInfo)); |
| | | Register(typeof(HA30D_tagSCDaySignInfo), typeof(DTCA30D_tagSCDaySignInfo)); |
| | | Register(typeof(HA123_tagUpdatePlayerNameCount), typeof(DTCA123_tagUpdatePlayerNameCount)); |
| | | Register(typeof(HA921_tagSCRenameResult), typeof(DTCA921_tagSCRenameResult)); |
| | | } |
| | | |
| | | //主工程注册封包 |
| New file |
| | |
| | | using UnityEngine; |
| | | using System.Collections; |
| | | |
| | | //A1 23 角色改名次数 #tagUpdatePlayerNameCount |
| | | |
| | | public class HA123_tagUpdatePlayerNameCount : GameNetPackBasic { |
| | | public uint Count; //改名次数 |
| | | |
| | | public HA123_tagUpdatePlayerNameCount () { |
| | | _cmd = (ushort)0xA123; |
| | | } |
| | | |
| | | public override void ReadFromBytes (byte[] vBytes) { |
| | | TransBytes (out Count, vBytes, NetDataType.DWORD); |
| | | } |
| | | |
| | | } |
| New file |
| | |
| | | fileFormatVersion: 2 |
| | | guid: 22a9f002b7d6ce248b9ea930161aea99 |
| | | MonoImporter: |
| | | externalObjects: {} |
| | | serializedVersion: 2 |
| | | defaultReferences: [] |
| | | executionOrder: 0 |
| | | icon: {instanceID: 0} |
| | | userData: |
| | | assetBundleName: |
| | | assetBundleVariant: |
| New file |
| | |
| | | using UnityEngine; |
| | | using System.Collections; |
| | | |
| | | // A9 21 角色改名结果 #tagSCRenameResult |
| | | |
| | | public class HA921_tagSCRenameResult : GameNetPackBasic { |
| | | public string PlayerName; // 新名字 |
| | | |
| | | public HA921_tagSCRenameResult () { |
| | | _cmd = (ushort)0xA921; |
| | | } |
| | | |
| | | public override void ReadFromBytes (byte[] vBytes) { |
| | | TransBytes (out PlayerName, vBytes, NetDataType.Chars, 33); |
| | | } |
| | | |
| | | } |
| New file |
| | |
| | | fileFormatVersion: 2 |
| | | guid: 36721f75d20b1bc4dbed1a1b80411885 |
| | | MonoImporter: |
| | | externalObjects: {} |
| | | serializedVersion: 2 |
| | | defaultReferences: [] |
| | | executionOrder: 0 |
| | | icon: {instanceID: 0} |
| | | userData: |
| | | assetBundleName: |
| | | assetBundleVariant: |
| | |
| | | managers.Add(TianziBillboradManager.Instance);
|
| | | managers.Add(ExpSecretCollectionManager.Instance);
|
| | | managers.Add(SignManager.Instance);
|
| | | managers.Add(RenameManager.Instance);
|
| | | foreach (var manager in managers)
|
| | | {
|
| | | manager.Init();
|
| | |
| | | [SerializeField] UIEffectPlayer openCloseAnim; |
| | | [SerializeField] FillTween cdTween; |
| | | [SerializeField] Text hammerText; |
| | | |
| | | |
| | | bool isForcePlayFightUIAnim = true; //强制播放战斗锤子框动画 |
| | | |
| | | public static event Action TabChangeEvent; |
| | |
| | | { |
| | | base.InitComponent(); |
| | | |
| | | avatarCell.button.AddListener(() => { }); |
| | | avatarCell.button.SetListener(() => |
| | | { |
| | | UIManager.Instance.OpenWindow<PlayerProfileWin>(); |
| | | }); |
| | | } |
| | | |
| | | void Display() |
| | |
| | | { |
| | | PlayerDatas.Instance.playerDataRefreshEvent += PlayerDataRefresh; |
| | | AutoFightModel.Instance.OnFightEvent += OnSkillCast; |
| | | RenameManager.Instance.OnUpdateRenameResultEvent += OnUpdateRenameResultEvent; |
| | | base.OnPreOpen(); |
| | | |
| | | // 刷新UI |
| | |
| | | { |
| | | PlayerDatas.Instance.playerDataRefreshEvent -= PlayerDataRefresh; |
| | | AutoFightModel.Instance.OnFightEvent -= OnSkillCast; |
| | | RenameManager.Instance.OnUpdateRenameResultEvent -= OnUpdateRenameResultEvent; |
| | | base.OnPreClose(); |
| | | isForcePlayFightUIAnim = true; |
| | | } |
| | | |
| | | private void OnUpdateRenameResultEvent() |
| | | { |
| | | Display(); |
| | | } |
| | | |
| | | void DisplayTopBar() |
| | | { |
| | | topBar.SetActive(functionOrder == 0 || functionOrder == 2); |
| | | } |
| | | |
| | | |
| | | |
| | | //战斗按钮动画 |
| | | void ClickAnimation(int index) |
| | | { |
| | |
| | | { |
| | | return; |
| | | } |
| | | |
| | | |
| | | |
| | | ClickAnimation(index); |
| | | // 更新当前选中的标签索引 |
| | |
| | | OnTabButtonClicked(lastWinOrder); |
| | | } |
| | | |
| | | |
| | | |
| | | #endregion |
| | | } |
| | |
| | | {
|
| | | if (m_button == null)
|
| | | {
|
| | | LoadPrefab();
|
| | | m_button = this.GetComponent<ButtonEx>("AvatarCell/Img_BG");
|
| | | }
|
| | | return m_button;
|
| New file |
| | |
| | | fileFormatVersion: 2 |
| | | guid: d96838ad917e38e418d0c8df7594ac01 |
| | | folderAsset: yes |
| | | DefaultImporter: |
| | | externalObjects: {} |
| | | userData: |
| | | assetBundleName: |
| | | assetBundleVariant: |
| New file |
| | |
| | | using System.Collections.Generic; |
| | | using UnityEngine; |
| | | using UnityEngine.UI; |
| | | |
| | | public class ExchangeCodeWin : UIBase |
| | | { |
| | | [SerializeField] InputField input; |
| | | [SerializeField] Button receiveBtn; |
| | | const string exchangeUrl = "http://gamecenter.secondworld.net.cn:53003/Coupon/CouponCode.php?"; |
| | | bool isCool = false; |
| | | float time = 0; |
| | | |
| | | protected override void InitComponent() |
| | | { |
| | | base.InitComponent(); |
| | | receiveBtn.AddListener(ClickRecevieBtn); |
| | | } |
| | | |
| | | protected override void OnPreOpen() |
| | | { |
| | | base.OnPreOpen(); |
| | | time = 0; |
| | | isCool = false; |
| | | InitUI(); |
| | | } |
| | | |
| | | protected override void OnPreClose() |
| | | { |
| | | base.OnPreClose(); |
| | | } |
| | | |
| | | void LateUpdate() |
| | | { |
| | | if (isCool) |
| | | { |
| | | time += Time.deltaTime; |
| | | if (time >= 3) |
| | | { |
| | | time = 0; |
| | | isCool = false; |
| | | } |
| | | } |
| | | } |
| | | |
| | | private void InitUI() |
| | | { |
| | | input.text = string.Empty; |
| | | } |
| | | |
| | | private void ClickRecevieBtn() |
| | | { |
| | | if (isCool) return; |
| | | |
| | | string passward = input.text; |
| | | if (string.IsNullOrEmpty(passward)) |
| | | { |
| | | SysNotifyMgr.Instance.ShowTip("InputExchangeCode"); |
| | | return; |
| | | } |
| | | else |
| | | { |
| | | isCool = true; |
| | | var tables = new Dictionary<string, string>(); |
| | | tables["channel"] = VersionConfig.Get().appId; |
| | | tables["code"] = passward; |
| | | #if UNITY_EDITOR |
| | | //tables["accid"] = ModelCenter.Instance.GetModel<LoginModel>().accountBuf; |
| | | tables["accid"] = PlayerDatas.Instance.baseData.AccID; |
| | | #else |
| | | tables["accid"] = ynmbxxjUtil.Instance.FreePlatformInfo.account; |
| | | #endif |
| | | tables["sid"] = ServerListCenter.Instance.currentServer.region_flag.ToString(); |
| | | tables["pushurl"] = ServerListCenter.Instance.currentServer.region_domain; |
| | | tables["spid"] = VersionConfig.Get().SpID; |
| | | tables["roleid"] = UIHelper.ServerStringTrim(PlayerDatas.Instance.baseData.PlayerName); |
| | | tables["level"] = PlayerDatas.Instance.baseData.LV.ToString(); |
| | | tables["viplevel"] = PlayerDatas.Instance.baseData.VIPLv.ToString(); |
| | | HttpRequest.Instance.RequestHttpGet(StringUtility.Contact(exchangeUrl, HttpRequest.HashtablaToString(tables)), HttpRequest.defaultHttpContentType, 1, null); |
| | | } |
| | | // if (passward.Length > 1) |
| | | // { |
| | | // string wxCode = passward.Substring(0, 2); |
| | | // if (wxCode == "wx") |
| | | // { |
| | | // WindowCenter.Instance.Close<WelfareWin>(); |
| | | // } |
| | | // } |
| | | } |
| | | } |
| New file |
| | |
| | | fileFormatVersion: 2 |
| | | guid: 4fc65570fe03ebc41bddb56d98345fce |
| | | MonoImporter: |
| | | externalObjects: {} |
| | | serializedVersion: 2 |
| | | defaultReferences: [] |
| | | executionOrder: 0 |
| | | icon: {instanceID: 0} |
| | | userData: |
| | | assetBundleName: |
| | | assetBundleVariant: |
| New file |
| | |
| | | using UnityEngine; |
| | | |
| | | public class PlayerProfileWin : UIBase |
| | | { |
| | | [SerializeField] AvatarCell avatarCell; |
| | | [SerializeField] OfficialTitleCell officialTitleCell; |
| | | [SerializeField] TextEx txtPlayerName; |
| | | [SerializeField] TextEx txtFightPoint; |
| | | [SerializeField] TextEx txtPlayerID; |
| | | [SerializeField] TextEx txtServerName; |
| | | [SerializeField] TextEx txtFamilyName; |
| | | [SerializeField] ButtonEx btnSetting; |
| | | [SerializeField] ButtonEx btnAnnouncement; |
| | | [SerializeField] ButtonEx btnCustomerService; |
| | | [SerializeField] ButtonEx btnRedemptionCode; |
| | | [SerializeField] ButtonEx btnForum; |
| | | [SerializeField] ButtonEx btnAssistant; |
| | | [SerializeField] ButtonEx btnGamingCommunity; |
| | | [SerializeField] ButtonEx btnSwitchServer; |
| | | [SerializeField] ButtonEx btnSyncPlatformAvatar; |
| | | [SerializeField] ButtonEx btnCopy; |
| | | [SerializeField] ButtonEx btnChangeName; |
| | | [SerializeField] ButtonEx btnText1; |
| | | [SerializeField] ButtonEx btnText2; |
| | | protected override void InitComponent() |
| | | { |
| | | base.InitComponent(); |
| | | btnSetting.SetListener(() => { UIManager.Instance.OpenWindow<SystemSetWin>(); }); |
| | | btnAnnouncement.SetListener(() => { GameNotice.OpenGameNoticeForce(); }); |
| | | btnSwitchServer.SetListener(() => { GameNetSystem.Instance.LoginOut(); }); |
| | | btnRedemptionCode.SetListener(() => { UIManager.Instance.OpenWindow<ExchangeCodeWin>(); }); |
| | | btnCopy.SetListener(() => |
| | | { |
| | | UIHelper.CopyToClipboard(PlayerDatas.Instance.baseData.PlayerID.ToString()); |
| | | SysNotifyMgr.Instance.ShowTip("CopySuccess"); |
| | | }); |
| | | btnChangeName.SetListener(() => { UIManager.Instance.OpenWindow<RenameWin>(); }); |
| | | btnText1.SetListener(() => |
| | | { |
| | | GameAgeWarnWin.data = 1; |
| | | UIManager.Instance.OpenWindow<GameAgeWarnWin>(); |
| | | }); |
| | | btnText2.SetListener(() => |
| | | { |
| | | GameAgeWarnWin.data = 2; |
| | | UIManager.Instance.OpenWindow<GameAgeWarnWin>(); |
| | | }); |
| | | } |
| | | |
| | | protected override void OnPreOpen() |
| | | { |
| | | base.OnPreOpen(); |
| | | RenameManager.Instance.OnUpdatePlayerNameCountEvent += OnUpdatePlayerNameCount; |
| | | RenameManager.Instance.OnUpdateRenameResultEvent += OnUpdateRenameResultEvent; |
| | | Display(); |
| | | } |
| | | |
| | | protected override void OnPreClose() |
| | | { |
| | | base.OnPreClose(); |
| | | RenameManager.Instance.OnUpdatePlayerNameCountEvent -= OnUpdatePlayerNameCount; |
| | | RenameManager.Instance.OnUpdateRenameResultEvent -= OnUpdateRenameResultEvent; |
| | | } |
| | | private void OnUpdateRenameResultEvent() |
| | | { |
| | | Display(); |
| | | } |
| | | |
| | | private void OnUpdatePlayerNameCount() |
| | | { |
| | | Display(); |
| | | } |
| | | |
| | | void Display() |
| | | { |
| | | txtPlayerName.text = PlayerDatas.Instance.baseData.PlayerName; |
| | | txtFightPoint.text = UIHelper.ReplaceLargeArtNum(PlayerDatas.Instance.baseData.FightPower); |
| | | txtPlayerID.text = Language.Get("PlayerProfile10", PlayerDatas.Instance.baseData.PlayerID.ToString()); |
| | | txtServerName.text = Language.Get("PlayerProfile11", ServerListCenter.Instance.GetServerName(UIHelper.GetServerIDByAccount(PlayerDatas.Instance.baseData.AccID))); |
| | | txtFamilyName.text = Language.Get("PlayerProfile12", PlayerDatas.Instance.fairyData.HasFairy ? PlayerDatas.Instance.baseData.FamilyName : Language.Get("PlayerProfile14")); |
| | | avatarCell.InitUI(AvatarHelper.GetAvatarModel((int)PlayerDatas.Instance.baseData.PlayerID, |
| | | PlayerDatas.Instance.baseData.face, |
| | | PlayerDatas.Instance.baseData.facePic)); |
| | | officialTitleCell.InitUI(PlayerDatas.Instance.baseData.realmLevel, PlayerDatas.Instance.baseData.TitleID); |
| | | } |
| | | } |
| New file |
| | |
| | | fileFormatVersion: 2 |
| | | guid: ea72bcc95f8931247844dde3088e0440 |
| | | MonoImporter: |
| | | externalObjects: {} |
| | | serializedVersion: 2 |
| | | defaultReferences: [] |
| | | executionOrder: 0 |
| | | icon: {instanceID: 0} |
| | | userData: |
| | | assetBundleName: |
| | | assetBundleVariant: |
| New file |
| | |
| | | using System; |
| | | using System.Text; |
| | | using UnityEngine; |
| | | using UnityEngine.UI; |
| | | |
| | | public class RenameManager : GameSystemManager<RenameManager> |
| | | { |
| | | public int moneyType; |
| | | public int moneyNeed; |
| | | public override void Init() |
| | | { |
| | | DTC0102_tagCDBPlayer.beforePlayerDataInitializeEvent += OnBeforePlayerDataInitializeEvent; |
| | | |
| | | FuncConfigConfig config = FuncConfigConfig.Get("PlayerRename"); |
| | | int[] arr = ConfigParse.GetMultipleStr<int>(config.Numerical3); |
| | | moneyType = arr[0]; |
| | | moneyNeed = arr[1]; |
| | | } |
| | | |
| | | public override void Release() |
| | | { |
| | | DTC0102_tagCDBPlayer.beforePlayerDataInitializeEvent -= OnBeforePlayerDataInitializeEvent; |
| | | } |
| | | |
| | | private void OnBeforePlayerDataInitializeEvent() |
| | | { |
| | | RenameManagerCount = 0; |
| | | } |
| | | |
| | | public event Action OnUpdateRenameResultEvent; |
| | | public void UpdateRenameResult(HA921_tagSCRenameResult vNetData) |
| | | { |
| | | if (vNetData == null) |
| | | return; |
| | | PlayerDatas.Instance.baseData.PlayerName = UIHelper.ServerStringTrim(vNetData.PlayerName); |
| | | SysNotifyMgr.Instance.ShowTip("RenameSuccess"); |
| | | OnUpdateRenameResultEvent?.Invoke(); |
| | | } |
| | | |
| | | int RenameManagerCount = 0; // 改名次数 为1 代表已经首次改名过,未改过上线不会收到该封包 |
| | | public event Action OnUpdatePlayerNameCountEvent; |
| | | public void UpdatePlayerNameCount(HA123_tagUpdatePlayerNameCount vNetData) |
| | | { |
| | | if (vNetData == null) |
| | | return; |
| | | RenameManagerCount = (int)vNetData.Count; |
| | | OnUpdatePlayerNameCountEvent?.Invoke(); |
| | | } |
| | | |
| | | public void SendRenamePack(string name) |
| | | { |
| | | CA122_tagUpdatePlayerName pack = new CA122_tagUpdatePlayerName(); |
| | | pack.NewName = name; |
| | | pack.NewNameLen = (byte)GetUTF8InfoLen(name); |
| | | GameNetSystem.Instance.SendInfo(pack); |
| | | } |
| | | |
| | | public bool IsFirstRename() |
| | | { |
| | | return RenameManagerCount == 0; |
| | | } |
| | | |
| | | public string GetRondomNameByJob(int job) |
| | | { |
| | | if (!RandomNameConfig.TryGetRandomName1ByJob(job, out var randomNameList1)) |
| | | return string.Empty; |
| | | if (!RandomNameConfig.TryGetRandomName2ByJob(job, out var randomNameList2)) |
| | | return string.Empty; |
| | | |
| | | int randomNameIndex1 = UnityEngine.Random.Range(0, randomNameList1.Count - 1); |
| | | int randomNameIndex2 = UnityEngine.Random.Range(0, randomNameList2.Count - 1); |
| | | return StringUtility.Contact(randomNameList1[randomNameIndex1], randomNameList2[randomNameIndex2]); |
| | | } |
| | | |
| | | public bool CheckNameLimit(string name, out int errorCode) |
| | | { |
| | | errorCode = 0; |
| | | if (string.IsNullOrEmpty(name)) |
| | | { |
| | | errorCode = 0; |
| | | return false; |
| | | } |
| | | |
| | | if (name.Length < 4) |
| | | { |
| | | errorCode = 1; |
| | | return false; |
| | | } |
| | | if (name.Length > 12) |
| | | { |
| | | errorCode = 2; |
| | | return false; |
| | | } |
| | | |
| | | if (DirtyWordConfig.IsDirtWord(name) || UIHelper.HasSpecialCharac(name) |
| | | || DirtyNameConfig.IsDirtName(name)) |
| | | { |
| | | errorCode = 3; |
| | | return false; |
| | | } |
| | | |
| | | if (name == PlayerDatas.Instance.baseData.PlayerName) |
| | | { |
| | | errorCode = 4; |
| | | return false; |
| | | } |
| | | return true; |
| | | } |
| | | |
| | | public void ShowNameErrorTip(int _errorCode) |
| | | { |
| | | switch (_errorCode) |
| | | { |
| | | case 0: |
| | | //空 |
| | | SysNotifyMgr.Instance.ShowTip("FamilyNameChangeNoNull"); |
| | | break; |
| | | case 1: |
| | | // 名字长度过短 |
| | | SysNotifyMgr.Instance.ShowTip("NameError4"); |
| | | break; |
| | | case 2: |
| | | // 名字长度过长 |
| | | SysNotifyMgr.Instance.ShowTip("NameError5"); |
| | | break; |
| | | case 3: |
| | | // 脏字 |
| | | SysNotifyMgr.Instance.ShowTip("NameSensitive"); |
| | | break; |
| | | case 4: |
| | | // 名字已存在 |
| | | SysNotifyMgr.Instance.ShowTip("NameExists"); |
| | | break; |
| | | } |
| | | } |
| | | |
| | | public string GetSafeRandomName() |
| | | { |
| | | int job = PlayerDatas.Instance.baseData.Job; |
| | | for (int i = 0; i < 9999; i++) |
| | | { |
| | | string name = GetRondomNameByJob(job); |
| | | if (CheckNameLimit(name, out int errorCode)) |
| | | return name; |
| | | } |
| | | return string.Empty; |
| | | } |
| | | |
| | | public static int GetUTF8InfoLen(string msg) |
| | | { |
| | | return Encoding.UTF8.GetBytes(msg).Length; |
| | | } |
| | | } |
| New file |
| | |
| | | fileFormatVersion: 2 |
| | | guid: b180558cd4c7e69429210cc1750a4789 |
| | | MonoImporter: |
| | | externalObjects: {} |
| | | serializedVersion: 2 |
| | | defaultReferences: [] |
| | | executionOrder: 0 |
| | | icon: {instanceID: 0} |
| | | userData: |
| | | assetBundleName: |
| | | assetBundleVariant: |
| New file |
| | |
| | | using System; |
| | | using UnityEngine; |
| | | using UnityEngine.UI; |
| | | |
| | | public class RenameWin : UIBase |
| | | { |
| | | [SerializeField] InputField input; |
| | | [SerializeField] Button btnOk; |
| | | [SerializeField] Button btnRandom; |
| | | [SerializeField] TextEx txtFirst; |
| | | [SerializeField] TextEx txtMoney; |
| | | [SerializeField] ImageEx imgMoney; |
| | | |
| | | RenameManager manager { get { return RenameManager.Instance; } } |
| | | protected override void InitComponent() |
| | | { |
| | | base.InitComponent(); |
| | | btnRandom.SetListener(() => |
| | | { |
| | | input.text = manager.GetSafeRandomName(); |
| | | }); |
| | | btnOk.SetListener(() => |
| | | { |
| | | bool isFirstRename = manager.IsFirstRename(); |
| | | if (!isFirstRename && !UIHelper.CheckMoneyCount(manager.moneyType, manager.moneyNeed)) |
| | | { |
| | | string title = Language.Get("Mail101"); |
| | | string info = Language.Get("PlayerProfile22"); |
| | | ConfirmCancel.ShowPopConfirm(title, info, (bool isOk) => |
| | | { |
| | | if (isOk) |
| | | { |
| | | |
| | | } |
| | | else |
| | | { |
| | | CloseWindow(); |
| | | } |
| | | }); |
| | | return; |
| | | } |
| | | |
| | | if (!manager.CheckNameLimit(input.text, out var errorCode)) |
| | | { |
| | | manager.ShowNameErrorTip(errorCode); |
| | | return; |
| | | } |
| | | |
| | | manager.SendRenamePack(input.text); |
| | | }); |
| | | } |
| | | |
| | | protected override void OnPreOpen() |
| | | { |
| | | base.OnPreOpen(); |
| | | manager.OnUpdatePlayerNameCountEvent += OnUpdatePlayerNameCount; |
| | | manager.OnUpdateRenameResultEvent += OnUpdateRenameResultEvent; |
| | | PlayerDatas.Instance.playerDataRefreshEvent += PlayerDataRefresh; |
| | | Display(); |
| | | } |
| | | |
| | | protected override void OnPreClose() |
| | | { |
| | | base.OnPreClose(); |
| | | manager.OnUpdatePlayerNameCountEvent -= OnUpdatePlayerNameCount; |
| | | manager.OnUpdateRenameResultEvent -= OnUpdateRenameResultEvent; |
| | | PlayerDatas.Instance.playerDataRefreshEvent -= PlayerDataRefresh; |
| | | } |
| | | |
| | | private void PlayerDataRefresh(PlayerDataType type) |
| | | { |
| | | Display(); |
| | | } |
| | | |
| | | private void OnUpdateRenameResultEvent() |
| | | { |
| | | Display(); |
| | | } |
| | | |
| | | private void OnUpdatePlayerNameCount() |
| | | { |
| | | Display(); |
| | | } |
| | | |
| | | void Display() |
| | | { |
| | | bool isFirstRename = manager.IsFirstRename(); |
| | | txtFirst.SetActive(isFirstRename); |
| | | txtMoney.SetActive(!isFirstRename); |
| | | imgMoney.SetIconWithMoneyType(manager.moneyType); |
| | | txtMoney.text = UIHelper.ShowUseMoney(manager.moneyType, manager.moneyNeed); |
| | | } |
| | | } |
| New file |
| | |
| | | fileFormatVersion: 2 |
| | | guid: 31a79aad128b21e449af2a82bd367cfe |
| | | MonoImporter: |
| | | externalObjects: {} |
| | | serializedVersion: 2 |
| | | defaultReferences: [] |
| | | executionOrder: 0 |
| | | icon: {instanceID: 0} |
| | | userData: |
| | | assetBundleName: |
| | | assetBundleVariant: |
| New file |
| | |
| | | using UnityEngine; |
| | | using UnityEngine.UI; |
| | | |
| | | public class SystemSetWin : UIBase |
| | | { |
| | | [SerializeField] Slider musicSlider; |
| | | [SerializeField] Slider soundEffectSlider; |
| | | |
| | | protected override void InitComponent() |
| | | { |
| | | base.InitComponent(); |
| | | } |
| | | |
| | | protected override void OnPreOpen() |
| | | { |
| | | base.OnPreOpen(); |
| | | musicSlider.onValueChanged.RemoveListener(OnSliderBgMusic); |
| | | musicSlider.onValueChanged.AddListener(OnSliderBgMusic); |
| | | soundEffectSlider.onValueChanged.RemoveListener(OnSliderSoundEffect); |
| | | soundEffectSlider.onValueChanged.AddListener(OnSliderSoundEffect); |
| | | |
| | | musicSlider.value = SystemSetting.Instance.GetSoundVolume(); |
| | | soundEffectSlider.value = SystemSetting.Instance.GetSoundEffect(); |
| | | } |
| | | |
| | | protected override void OnPreClose() |
| | | { |
| | | base.OnPreClose(); |
| | | } |
| | | |
| | | private void OnSliderSoundEffect(float arg0) |
| | | { |
| | | SystemSetting.Instance.SetSoundEffect(arg0); |
| | | } |
| | | |
| | | private void OnSliderBgMusic(float arg0) |
| | | { |
| | | SystemSetting.Instance.SetSoundVolume(arg0); |
| | | } |
| | | } |
| New file |
| | |
| | | fileFormatVersion: 2 |
| | | guid: 30dc70a9e7b94c34a8a1ea801f59837f |
| | | MonoImporter: |
| | | externalObjects: {} |
| | | serializedVersion: 2 |
| | | defaultReferences: [] |
| | | executionOrder: 0 |
| | | icon: {instanceID: 0} |
| | | userData: |
| | | assetBundleName: |
| | | assetBundleVariant: |
| | |
| | | |
| | | public float GetSoundVolume() |
| | | { |
| | | return LocalSave.GetFloat(SOUND_VOLUME_KEY, .55f); |
| | | return LocalSave.GetFloat(SOUND_VOLUME_KEY, 1.0f); |
| | | } |
| | | |
| | | public void SetSoundEffect(float value) |
| | |
| | | |
| | | public float GetSoundEffect() |
| | | { |
| | | return LocalSave.GetFloat(SOUND_EFFECT_KEY, .8f); |
| | | return LocalSave.GetFloat(SOUND_EFFECT_KEY, 1.0f); |
| | | } |
| | | |
| | | public void SetGameFps(GameFps _frame) |