From 14cdc2b7570447bab3f78b9e1351ad3127072041 Mon Sep 17 00:00:00 2001 From: jonny Date: Mon, 20 Nov 2023 23:54:36 +0900 Subject: [PATCH 01/22] change claim items defualt respone --- .../_Scripts/Extensions/MailExtensions.cs | 49 +++++++++++++++++-- 1 file changed, 44 insertions(+), 5 deletions(-) diff --git a/nekoyume/Assets/_Scripts/Extensions/MailExtensions.cs b/nekoyume/Assets/_Scripts/Extensions/MailExtensions.cs index 715d730b497..a92cbf7e011 100644 --- a/nekoyume/Assets/_Scripts/Extensions/MailExtensions.cs +++ b/nekoyume/Assets/_Scripts/Extensions/MailExtensions.cs @@ -2,7 +2,9 @@ using System.Linq; using System.Text.RegularExpressions; using System.Threading.Tasks; +using Nekoyume.Blockchain; using Nekoyume.L10n; +using Nekoyume.Model.Item; using Nekoyume.Model.Mail; using NineChronicles.ExternalServices.IAPService.Runtime; using NineChronicles.ExternalServices.IAPService.Runtime.Models; @@ -159,12 +161,49 @@ public static async Task GetCellContentAsync(this ClaimItemsMail mail) private static string GetCellContentsForException( this ClaimItemsMail mail) { + string itemNames = string.Empty; + if (mail.FungibleAssetValues is not null) + { + foreach (var fav in mail.FungibleAssetValues) + { + itemNames += LocalizationExtensions.GetLocalizedName(fav) + ", "; + } + } + + if (mail.Items is not null) + { + var materialSheet = Game.Game.instance.TableSheets.MaterialItemSheet; + var itemSheet = Game.Game.instance.TableSheets.ItemSheet; + foreach (var (fungibleId, count) in + mail.Items) + { + var row = materialSheet.OrderedList! + .FirstOrDefault(row => row.Id.Equals(fungibleId)); + if (row != null) + { + var material = ItemFactory.CreateMaterial(row); + itemNames += LocalizationExtensions.GetLocalizedName(material) + ", "; + continue; + } + + if (itemSheet.TryGetValue(fungibleId, out var itemSheetRow)) + { + var item = ItemFactory.CreateItem(itemSheetRow, new ActionRenderHandler.LocalRandom(0)); + itemNames += LocalizationExtensions.GetLocalizedName(item) + ", "; + continue; + } + Debug.LogWarning($"Not found material sheet row. {fungibleId}"); + } + } + if(itemNames.Length > 2) + { + itemNames.Remove(itemNames.Length-2,2); + } var exceptionFormat = L10nManager.Localize( - "MAIL_UNLOAD_FROM_MY_GARAGES_RECIPIENT_CELL_CONTENT_EXCEPTION_FORMAT"); - return string.Format( - exceptionFormat, - mail.FungibleAssetValues?.Count ?? 0, - mail.Items?.Count ?? 0); + "UI_RECEIVED"); + itemNames += exceptionFormat; + + return itemNames; } } } From 1b5aa063a64c575c80d94b4db57f8932d2ab2150 Mon Sep 17 00:00:00 2001 From: hskim881028 Date: Tue, 21 Nov 2023 18:05:58 +0900 Subject: [PATCH 02/22] Set currency --- nekoyume/Assets/_Scripts/IAPStore/IAPStoreManager.cs | 1 + 1 file changed, 1 insertion(+) diff --git a/nekoyume/Assets/_Scripts/IAPStore/IAPStoreManager.cs b/nekoyume/Assets/_Scripts/IAPStore/IAPStoreManager.cs index e571d4d618e..59d72286693 100644 --- a/nekoyume/Assets/_Scripts/IAPStore/IAPStoreManager.cs +++ b/nekoyume/Assets/_Scripts/IAPStore/IAPStoreManager.cs @@ -212,6 +212,7 @@ private async void OnPurchaseRequestAsync(PurchaseEventArgs e) AirbridgeEvent @event = new AirbridgeEvent("IAP"); @event.SetAction(e.purchasedProduct.definition.id); @event.SetLabel("iap"); + @event.SetCurrency(e.purchasedProduct.metadata.isoCurrencyCode); @event.SetValue((double)e.purchasedProduct.metadata.localizedPrice); @event.AddCustomAttribute("product-id", e.purchasedProduct.definition.id); @event.SetTransactionId(e.purchasedProduct.transactionID); From c88021a8b93ed6da917714edadc53d77a54fd78e Mon Sep 17 00:00:00 2001 From: hskim881028 Date: Tue, 21 Nov 2023 20:29:27 +0900 Subject: [PATCH 03/22] Add airbridge events --- .../_Scripts/Blockchain/ActionManager.cs | 159 ++++++++++++++++-- .../Blockchain/ActionRenderHandler.cs | 19 ++- .../Assets/_Scripts/Blockchain/ErrorCode.cs | 7 + .../Assets/_Scripts/Game/Character/Player.cs | 6 + nekoyume/Assets/_Scripts/Game/Game.cs | 39 +++++ .../Game/OAuth/AppleSigninBehaviour.cs | 6 + .../Game/OAuth/GoogleSigninBehaviour.cs | 6 + nekoyume/Assets/_Scripts/Game/Prologue.cs | 5 + nekoyume/Assets/_Scripts/Game/Stage.cs | 9 + .../_Scripts/IAPStore/IAPStoreManager.cs | 23 ++- .../Assets/_Scripts/UI/Login/PortalConnect.cs | 30 +++- .../UI/Module/IAP/IAPShopProductCellView.cs | 6 + .../UI/Tutorial/TutorialController.cs | 5 + .../_Scripts/UI/Widget/BattlePreparation.cs | 6 + nekoyume/Assets/_Scripts/UI/Widget/Craft.cs | 14 +- nekoyume/Assets/_Scripts/UI/Widget/Login.cs | 3 + .../Assets/_Scripts/UI/Widget/LoginDetail.cs | 12 ++ nekoyume/Assets/_Scripts/UI/Widget/Menu.cs | 31 ++++ .../Assets/_Scripts/UI/Widget/MobileShop.cs | 5 + .../UI/Widget/Popup/BattleResultPopup.cs | 10 ++ .../_Scripts/UI/Widget/Popup/MailPopup.cs | 8 + .../UI/Widget/Popup/PatrolRewardPopup.cs | 7 + .../_Scripts/UI/Widget/Popup/ShopListPopup.cs | 13 ++ .../_Scripts/UI/Widget/Screen/IntroScreen.cs | 46 +++++ nekoyume/Assets/_Scripts/UI/Widget/ShopBuy.cs | 15 +- .../Assets/_Scripts/UI/Widget/ShopSell.cs | 13 ++ .../Assets/_Scripts/UI/Widget/Synopsis.cs | 12 ++ .../_Scripts/UI/Widget/System/LoginSystem.cs | 28 +++ .../UI/Widget/System/TitleOneButtonSystem.cs | 9 + .../_Scripts/UI/Widget/Tooltip/HelpTooltip.cs | 5 + .../Assets/_Scripts/UI/Widget/WorldMap.cs | 5 + 31 files changed, 528 insertions(+), 34 deletions(-) diff --git a/nekoyume/Assets/_Scripts/Blockchain/ActionManager.cs b/nekoyume/Assets/_Scripts/Blockchain/ActionManager.cs index 6b667e3862b..87509967927 100644 --- a/nekoyume/Assets/_Scripts/Blockchain/ActionManager.cs +++ b/nekoyume/Assets/_Scripts/Blockchain/ActionManager.cs @@ -227,6 +227,10 @@ public IObservable> HackAndSlash( { ["StageID"] = stageId, }); + + var evt = new AirbridgeEvent("Click_Guided_Quest_Enter_Dungeon"); + evt.SetValue(stageId); + AirbridgeUnity.TrackEvent(evt); } var sentryTrace = Analyzer.Instance.Track( @@ -240,6 +244,14 @@ public IObservable> HackAndSlash( ["AgentAddress"] = States.Instance.AgentState.address.ToString(), }, true); + var hasEvt = new AirbridgeEvent("HackAndSlash"); + hasEvt.SetValue(stageId); + hasEvt.AddCustomAttribute("world-id", worldId); + hasEvt.AddCustomAttribute("play-count", playCount); + hasEvt.AddCustomAttribute("agent-address", States.Instance.CurrentAvatarState.address.ToString()); + hasEvt.AddCustomAttribute("avatar-address", States.Instance.AgentState.address.ToString()); + AirbridgeUnity.TrackEvent(hasEvt); + var avatarAddress = States.Instance.CurrentAvatarState.address; costumes ??= new List(); equipments ??= new List(); @@ -298,10 +310,27 @@ public IObservable> EventDungeonBattle( ["EventDungeonID"] = eventDungeonId, ["EventDungeonStageID"] = eventDungeonStageId, }); + + var evt = new AirbridgeEvent("Click_Guided_Quest_Enter_Event_Dungeon"); + evt.SetValue(eventDungeonStageId); + evt.AddCustomAttribute("event-schedule-id", eventScheduleId); + evt.AddCustomAttribute("event-dungeon-id", eventDungeonId); + AirbridgeUnity.TrackEvent(evt); } - var numberOfTicketPurchases = - RxProps.EventDungeonInfo.Value?.NumberOfTicketPurchases ?? 0; + var remainingTickets = RxProps.EventDungeonTicketProgress.Value.currentTickets - Action.EventDungeonBattle.PlayCount; + var numberOfTicketPurchases = RxProps.EventDungeonInfo.Value?.NumberOfTicketPurchases ?? 0; + var ticketCostIfNeeded = buyTicketIfNeeded + ? TableSheets.Instance.EventScheduleSheet.TryGetValue( + eventScheduleId, + out var scheduleRow) + ? scheduleRow.GetDungeonTicketCost( + numberOfTicketPurchases, + States.Instance.GoldBalanceState.Gold.Currency) + .GetQuantityString(true) + : "0" + : "0"; + var sentryTrace = Analyzer.Instance.Track( "Unity/EventDungeonBattle", new Dictionary() @@ -309,23 +338,22 @@ public IObservable> EventDungeonBattle( ["EventScheduleId"] = eventScheduleId, ["EventDungeonId"] = eventDungeonId, ["EventDungeonStageId"] = eventDungeonStageId, - ["RemainingTickets"] = - RxProps.EventDungeonTicketProgress.Value.currentTickets - - Action.EventDungeonBattle.PlayCount, + ["RemainingTickets"] = remainingTickets, ["NumberOfTicketPurchases"] = numberOfTicketPurchases, ["BuyTicketIfNeeded"] = buyTicketIfNeeded, - ["TicketCostIfNeeded"] = buyTicketIfNeeded - ? TableSheets.Instance.EventScheduleSheet.TryGetValue( - eventScheduleId, - out var scheduleRow) - ? scheduleRow.GetDungeonTicketCost( - numberOfTicketPurchases, - States.Instance.GoldBalanceState.Gold.Currency) - .GetQuantityString(true) - : "0" - : "0", + ["TicketCostIfNeeded"] = ticketCostIfNeeded, }, true); + var edbEvt = new AirbridgeEvent("EventDungeonBattle"); + edbEvt.SetValue(eventDungeonStageId); + edbEvt.AddCustomAttribute("event-schedule-id", eventScheduleId); + edbEvt.AddCustomAttribute("event-dungeon-id", eventDungeonId); + edbEvt.AddCustomAttribute("remaining-tickets", remainingTickets); + edbEvt.AddCustomAttribute("number-of-ticket-purchases", numberOfTicketPurchases); + edbEvt.AddCustomAttribute("buy-ticket-if-needed", buyTicketIfNeeded); + edbEvt.AddCustomAttribute("ticket-cost-if-needed", ticketCostIfNeeded); + AirbridgeUnity.TrackEvent(edbEvt); + var avatarAddress = States.Instance.CurrentAvatarState.address; costumes ??= new List(); equipments ??= new List(); @@ -404,6 +432,12 @@ public IObservable> CombinationConsumabl ["AgentAddress"] = States.Instance.AgentState.address.ToString(), }, true); + var evt = new AirbridgeEvent("CombinationConsumable"); + evt.SetValue(recipeInfo.RecipeId); + evt.AddCustomAttribute("agent-address", States.Instance.CurrentAvatarState.address.ToString()); + evt.AddCustomAttribute("avatar-address", States.Instance.AgentState.address.ToString()); + AirbridgeUnity.TrackEvent(evt); + var action = new CombinationConsumable { recipeId = recipeInfo.RecipeId, @@ -429,11 +463,12 @@ public IObservable> SubRecipeView.RecipeInfo recipeInfo, int slotIndex) { + var subRecipeId = recipeInfo.SubRecipeId ?? 0; var trackValue = new Dictionary() { ["EventScheduleId"] = eventScheduleId, ["RecipeId"] = recipeInfo.RecipeId, - ["SubRecipeId"] = recipeInfo.SubRecipeId ?? 0, + ["SubRecipeId"] = subRecipeId, }; var num = 1; foreach (var pair in recipeInfo.Materials) @@ -447,6 +482,12 @@ public IObservable> trackValue, true); + var evt = new AirbridgeEvent("EventConsumableItemCrafts"); + evt.SetValue(recipeInfo.RecipeId); + evt.AddCustomAttribute("event-schedule-id", eventScheduleId); + evt.AddCustomAttribute("sub-recipe-id", subRecipeId); + AirbridgeUnity.TrackEvent(evt); + var agentAddress = States.Instance.AgentState.address; var avatarState = States.Instance.CurrentAvatarState; var avatarAddress = avatarState.address; @@ -550,6 +591,15 @@ public IObservable> HackAndSlashSweep( ["AvatarAddress"] = States.Instance.CurrentAvatarState.address.ToString(), ["AgentAddress"] = States.Instance.AgentState.address.ToString(), }, true); + + var evt = new AirbridgeEvent("HackAndSlashSweep"); + evt.SetValue(stageId); + evt.AddCustomAttribute("ap-stone-count", apStoneCount); + evt.AddCustomAttribute("play_count", playCount); + evt.AddCustomAttribute("agent-address", States.Instance.CurrentAvatarState.address.ToString()); + evt.AddCustomAttribute("avatar-address", States.Instance.AgentState.address.ToString()); + AirbridgeUnity.TrackEvent(evt); + var avatarAddress = States.Instance.CurrentAvatarState.address; var action = new HackAndSlashSweep { @@ -594,6 +644,13 @@ public IObservable> RegisterProduct( ["AgentAddress"] = States.Instance.AgentState.address.ToString(), }, true); + var evt = new AirbridgeEvent("RegisterProduct"); + evt.SetValue((double)registerInfo.Price.RawValue); + evt.AddCustomAttribute("product-type", registerInfo.Type.ToString()); + evt.AddCustomAttribute("agent-address", States.Instance.CurrentAvatarState.address.ToString()); + evt.AddCustomAttribute("avatar-address", States.Instance.AgentState.address.ToString()); + AirbridgeUnity.TrackEvent(evt); + if (chargeAp) { var row = Game.Game.instance.TableSheets.MaterialItemSheet.Values @@ -639,6 +696,12 @@ public IObservable> CancelProductReg ["AgentAddress"] = States.Instance.AgentState.address.ToString(), }, true); + var evt = new AirbridgeEvent("CancelProductRegistration"); + evt.SetValue(productInfo.Count); + evt.AddCustomAttribute("agent-address", States.Instance.CurrentAvatarState.address.ToString()); + evt.AddCustomAttribute("avatar-address", States.Instance.AgentState.address.ToString()); + AirbridgeUnity.TrackEvent(evt); + if (chargeAp) { var row = Game.Game.instance.TableSheets.MaterialItemSheet.Values @@ -839,6 +902,11 @@ public IObservable> ItemEnhancement( ["AgentAddress"] = States.Instance.AgentState.address.ToString(), }, true); + var evt = new AirbridgeEvent("ItemEnhancement"); + evt.AddCustomAttribute("agent-address", States.Instance.CurrentAvatarState.address.ToString()); + evt.AddCustomAttribute("avatar-address", States.Instance.AgentState.address.ToString()); + AirbridgeUnity.TrackEvent(evt); + var action = new ItemEnhancement { itemId = baseEquipment.NonFungibleId, @@ -879,6 +947,7 @@ List equipmentIds ["AvatarAddress"] = States.Instance.CurrentAvatarState.address.ToString(), ["AgentAddress"] = States.Instance.AgentState.address.ToString(), }, true); + var action = new RankingBattle { avatarAddress = States.Instance.CurrentAvatarState.address, @@ -971,6 +1040,15 @@ int ticket ["AvatarAddress"] = States.Instance.CurrentAvatarState.address.ToString(), ["AgentAddress"] = States.Instance.AgentState.address.ToString(), }, true); + + var evt = new AirbridgeEvent("BattleArena"); + evt.SetValue(championshipId); + evt.AddCustomAttribute("round", round); + evt.AddCustomAttribute("enemy-avatar-address", enemyAvatarAddress.ToString()); + evt.AddCustomAttribute("agent-address", States.Instance.CurrentAvatarState.address.ToString()); + evt.AddCustomAttribute("avatar-address", States.Instance.AgentState.address.ToString()); + AirbridgeUnity.TrackEvent(evt); + action.PayCost(Game.Game.instance.Agent, States.Instance, TableSheets.Instance); LocalLayerActions.Instance.Register(action.Id, action.PayCost, _agent.BlockIndex); ProcessAction(action); @@ -1028,6 +1106,13 @@ public IObservable> CombinationEquipment( ["AgentAddress"] = States.Instance.AgentState.address.ToString(), }, true); + var evt = new AirbridgeEvent("CombinationEquipment"); + evt.SetValue(recipeInfo.RecipeId); + evt.AddCustomAttribute("pet-id", petId ?? default); + evt.AddCustomAttribute("agent-address", States.Instance.CurrentAvatarState.address.ToString()); + evt.AddCustomAttribute("avatar-address", States.Instance.AgentState.address.ToString()); + AirbridgeUnity.TrackEvent(evt); + var agentAddress = States.Instance.AgentState.address; var avatarState = States.Instance.CurrentAvatarState; var avatarAddress = avatarState.address; @@ -1119,6 +1204,12 @@ public IObservable> RapidCombination( ["AgentAddress"] = States.Instance.AgentState.address.ToString(), }, true); + var evt = new AirbridgeEvent("RapidCombination"); + evt.SetValue(cost); + evt.AddCustomAttribute("agent-address", States.Instance.CurrentAvatarState.address.ToString()); + evt.AddCustomAttribute("avatar-address", States.Instance.AgentState.address.ToString()); + AirbridgeUnity.TrackEvent(evt); + var action = new RapidCombination { avatarAddress = avatarAddress, @@ -1238,6 +1329,13 @@ public IObservable> Grinding( ["AgentAddress"] = States.Instance.AgentState.address.ToString(), }, true); + var evt = new AirbridgeEvent("Grinding"); + evt.SetValue(gainedCrystal); + evt.AddCustomAttribute("equipment-count", equipmentList.Count); + evt.AddCustomAttribute("agent-address", States.Instance.CurrentAvatarState.address.ToString()); + evt.AddCustomAttribute("avatar-address", States.Instance.AgentState.address.ToString()); + AirbridgeUnity.TrackEvent(evt); + var action = new Grinding { AvatarAddress = avatarAddress, @@ -1272,6 +1370,13 @@ public IObservable> UnlockEquipmentRecip ["AvatarAddress"] = avatarAddress.ToString(), ["AgentAddress"] = States.Instance.AgentState.address.ToString(), }, true); + + var evt = new AirbridgeEvent("UnlockEquipmentRecipe"); + evt.SetValue((double)openCost); + evt.AddCustomAttribute("agent-address", States.Instance.CurrentAvatarState.address.ToString()); + evt.AddCustomAttribute("avatar-address", States.Instance.AgentState.address.ToString()); + AirbridgeUnity.TrackEvent(evt); + var action = new UnlockEquipmentRecipe { AvatarAddress = avatarAddress, @@ -1299,6 +1404,12 @@ public IObservable> UnlockWorld(List worldIdL ["AgentAddress"] = States.Instance.AgentState.address.ToString(), }, true); + var evt = new AirbridgeEvent("UnlockWorld"); + evt.SetValue(cost); + evt.AddCustomAttribute("agent-address", States.Instance.CurrentAvatarState.address.ToString()); + evt.AddCustomAttribute("avatar-address", States.Instance.AgentState.address.ToString()); + AirbridgeUnity.TrackEvent(evt); + var action = new UnlockWorld { AvatarAddress = avatarAddress, @@ -1324,6 +1435,14 @@ public IObservable> HackAndSlashRandomB ["AvatarAddress"] = States.Instance.CurrentAvatarState.address.ToString(), ["AgentAddress"] = States.Instance.AgentState.address.ToString(), }, true); + + var evt = new AirbridgeEvent("HackAndSlashRandomBuff"); + evt.SetValue(burntCrystal); + evt.AddCustomAttribute("is-advanced", advanced); + evt.AddCustomAttribute("agent-address", States.Instance.CurrentAvatarState.address.ToString()); + evt.AddCustomAttribute("avatar-address", States.Instance.AgentState.address.ToString()); + AirbridgeUnity.TrackEvent(evt); + var avatarAddress = States.Instance.CurrentAvatarState.address; var action = new HackAndSlashRandomBuff @@ -1482,6 +1601,14 @@ public IObservable> PetEnhancement( ["TargetLevel"] = targetLevel, ["PetId"] = petId, }, true); + + var evt = new AirbridgeEvent("PetEnhancement"); + evt.SetValue(targetLevel); + evt.AddCustomAttribute("pet-id", petId); + evt.AddCustomAttribute("agent-address", States.Instance.CurrentAvatarState.address.ToString()); + evt.AddCustomAttribute("avatar-address", States.Instance.AgentState.address.ToString()); + AirbridgeUnity.TrackEvent(evt); + var action = new PetEnhancement { AvatarAddress = States.Instance.CurrentAvatarState.address, diff --git a/nekoyume/Assets/_Scripts/Blockchain/ActionRenderHandler.cs b/nekoyume/Assets/_Scripts/Blockchain/ActionRenderHandler.cs index 201cbbf7888..3533f123d70 100644 --- a/nekoyume/Assets/_Scripts/Blockchain/ActionRenderHandler.cs +++ b/nekoyume/Assets/_Scripts/Blockchain/ActionRenderHandler.cs @@ -106,15 +106,23 @@ public override void Start(ActionRenderer renderer) var currentAvatarState = States.Instance.CurrentAvatarState; if (currentAvatarState is not null) { + var type = actionType.TypeIdentifier.Inspect(false); Analyzer.Instance.Track( "Unity/ActionRender", new Dictionary { - ["ActionType"] = actionType.TypeIdentifier.Inspect(false), + ["ActionType"] = type, ["Elapsed"] = elapsed, ["AvatarAddress"] = currentAvatarState.address.ToString(), ["AgentAddress"] = agentState.address.ToString(), }); + + var category = $"ActionRender_{type}"; + var evt = new AirbridgeEvent(category); + evt.SetValue(elapsed); + evt.AddCustomAttribute("agent-address", agentState.address.ToString()); + evt.AddCustomAttribute("avatar-address", currentAvatarState.address.ToString()); + AirbridgeUnity.TrackEvent(evt); } var actionTypeName = actionType.TypeIdentifier.Inspect(false); @@ -1919,12 +1927,19 @@ await Task.WhenAll( Analyzer.Instance.Track("Unity/Use Crystal Bonus Skill", new Dictionary { - ["RandomSkillId"] = eval.Action.StageBuffId, + ["RandomSkillId"] = eval.Action.StageBuffId.Value, ["IsCleared"] = simulator.Log.IsClear, ["AvatarAddress"] = States.Instance.CurrentAvatarState.address.ToString(), ["AgentAddress"] = States.Instance.AgentState.address.ToString(), }); + + var evt = new AirbridgeEvent("Use_Crystal_Bonus_Skill"); + evt.SetValue(eval.Action.StageBuffId.Value); + evt.AddCustomAttribute("is-clear", simulator.Log.IsClear); + evt.AddCustomAttribute("agent-address", States.Instance.AgentState.address.ToString()); + evt.AddCustomAttribute("avatar-address", States.Instance.CurrentAvatarState.address.ToString()); + AirbridgeUnity.TrackEvent(evt); } if (Widget.Find().IsActive()) diff --git a/nekoyume/Assets/_Scripts/Blockchain/ErrorCode.cs b/nekoyume/Assets/_Scripts/Blockchain/ErrorCode.cs index 65e7f72a0cd..d077ef7300b 100644 --- a/nekoyume/Assets/_Scripts/Blockchain/ErrorCode.cs +++ b/nekoyume/Assets/_Scripts/Blockchain/ErrorCode.cs @@ -312,6 +312,13 @@ public static class ErrorCode ("AgentAddress", Game.Game.instance.Agent.Address.ToString()), ("AvatarAddress", Game.Game.instance.States.CurrentAvatarState.address.ToString())); + var evt = new AirbridgeEvent("Error"); + evt.SetValue(Convert.ToInt16(code)); + evt.AddCustomAttribute("key", key); + evt.AddCustomAttribute("agent-address", Game.Game.instance.Agent.Address.ToString()); + evt.AddCustomAttribute("avatar-address", Game.Game.instance.States.CurrentAvatarState.address.ToString()); + AirbridgeUnity.TrackEvent(evt); + errorMsg = errorMsg == string.Empty ? string.Format( L10nManager.Localize("UI_ERROR_RETRY_FORMAT"), diff --git a/nekoyume/Assets/_Scripts/Game/Character/Player.cs b/nekoyume/Assets/_Scripts/Game/Character/Player.cs index 333b70b453d..6d9738dc817 100644 --- a/nekoyume/Assets/_Scripts/Game/Character/Player.cs +++ b/nekoyume/Assets/_Scripts/Game/Character/Player.cs @@ -343,6 +343,12 @@ public IEnumerator CoGetExp(long exp) ["AgentAddress"] = Game.instance.States.AgentState.address.ToString(), }); + var evt = new AirbridgeEvent("User_Level_Up"); + evt.SetValue(beforeLevel); + evt.AddCustomAttribute("agent-address", Game.instance.States.CurrentAvatarState.address.ToString()); + evt.AddCustomAttribute("avatar-address", Game.instance.States.AgentState.address.ToString()); + AirbridgeUnity.TrackEvent(evt); + Widget.Find()?.Show(beforeLevel, Level); for (int interLevel = beforeLevel + 1; interLevel <= Level; interLevel++) { diff --git a/nekoyume/Assets/_Scripts/Game/Game.cs b/nekoyume/Assets/_Scripts/Game/Game.cs index 7cdeb1bf1ad..bd8a04e72ba 100644 --- a/nekoyume/Assets/_Scripts/Game/Game.cs +++ b/nekoyume/Assets/_Scripts/Game/Game.cs @@ -465,11 +465,21 @@ private IEnumerator Start() { Analyzer.SetAgentAddress(Agent.Address.ToString()); Analyzer.Instance.Track("Unity/Intro/Start/AgentInitialized"); + + var evt = new AirbridgeEvent("Intro_Start_AgentInitialized"); + evt.AddCustomAttribute("agent-address", Agent.Address.ToString()); + AirbridgeUnity.TrackEvent(evt); + settingPopup.UpdatePrivateKey(_commandLineOptions.PrivateKey); } else { Analyzer.Instance.Track("Unity/Intro/Start/AgentInitializeFailed"); + + var evt = new AirbridgeEvent("Intro_Start_AgentInitializeFailed"); + evt.AddCustomAttribute("agent-address", Agent.Address.ToString()); + AirbridgeUnity.TrackEvent(evt); + QuitWithAgentConnectionError(null); yield break; } @@ -625,6 +635,10 @@ private IEnumerator Start() yield return initializeSecondWidgetsCoroutine; grayLoadingScreen.ShowProgress(GameInitProgress.ProgressCompleted); Analyzer.Instance.Track("Unity/Intro/Start/SecondWidgetCompleted"); + + var secondWidgetCompletedEvt = new AirbridgeEvent("Intro_Start_SecondWidgetCompleted"); + AirbridgeUnity.TrackEvent(secondWidgetCompletedEvt); + // Initialize Stage sw.Reset(); sw.Start(); @@ -649,6 +663,9 @@ private IEnumerator Start() Widget.Find().SetVersion(appProtocolVersion); Analyzer.Instance.Track("Unity/Intro/Start/ShowNext"); + var showNextEvt = new AirbridgeEvent("Intro_Start_ShowNext"); + AirbridgeUnity.TrackEvent(showNextEvt); + StartCoroutine(CoUpdate()); ReservePushNotifications(); @@ -713,6 +730,10 @@ IEnumerator InitializeWithAgent() innerSw.Stop(); Debug.Log($"[Game/SyncTableSheets] Start()... TableSheets synced in {innerSw.ElapsedMilliseconds}ms.(elapsed)"); Analyzer.Instance.Track("Unity/Intro/Start/TableSheetsInitialized"); + + var tableSheetsInitializedEvt = new AirbridgeEvent("Intro_Start_TableSheetsInitialized"); + AirbridgeUnity.TrackEvent(tableSheetsInitializedEvt); + RxProps.Start(Agent, States, TableSheets); Event.OnUpdateAddresses.AsObservable().Subscribe(_ => @@ -998,6 +1019,10 @@ private IEnumerator CoCheckPledge(PlanetId planetId) while (!States.PledgeRequested) { Analyzer.Instance.Track("Unity/Intro/Pledge/Request"); + + var requestEvt = new AirbridgeEvent("Intro_Pledge_Request"); + AirbridgeUnity.TrackEvent(requestEvt); + swForRequestPledge.Reset(); swForRequestPledge.Start(); yield return PortalConnect.RequestPledge( @@ -1022,6 +1047,9 @@ private IEnumerator CoCheckPledge(PlanetId planetId) } Analyzer.Instance.Track("Unity/Intro/Pledge/Requested"); + + var requestedEvt = new AirbridgeEvent("Intro_Pledge_Requested"); + AirbridgeUnity.TrackEvent(requestedEvt); } } @@ -1034,6 +1062,10 @@ private IEnumerator CoCheckPledge(PlanetId planetId) while (!States.PledgeApproved) { Analyzer.Instance.Track("Unity/Intro/Pledge/ApproveAction"); + + var approveActionEvt = new AirbridgeEvent("Intro_Start_ApproveAction"); + AirbridgeUnity.TrackEvent(approveActionEvt); + var patronAddress = States.PatronAddress!.Value; ActionManager.Instance.ApprovePledge(patronAddress).Subscribe(); @@ -1043,7 +1075,11 @@ private IEnumerator CoCheckPledge(PlanetId planetId) swForRenderingApprovePledge.Stop(); Debug.Log("[Game] CoCheckPledge()... Rendering ApprovePledge" + $" finished in {swForRenderingApprovePledge.ElapsedMilliseconds}ms.(elapsed)"); + Analyzer.Instance.Track("Unity/Intro/Pledge/Approve"); + + var approveEvt = new AirbridgeEvent("Intro_Start_Approve"); + AirbridgeUnity.TrackEvent(approveEvt); } Widget.Find().ShowProgress(GameInitProgress.EndPledge); @@ -1252,6 +1288,9 @@ protected override void OnApplicationQuit() { Analyzer.Instance.Track("Unity/Player Quit"); Analyzer.Instance.Flush(); + + var evt = new AirbridgeEvent("Intro_Player_Quit"); + AirbridgeUnity.TrackEvent(evt); } _logsClient?.Dispose(); diff --git a/nekoyume/Assets/_Scripts/Game/OAuth/AppleSigninBehaviour.cs b/nekoyume/Assets/_Scripts/Game/OAuth/AppleSigninBehaviour.cs index ade2f2e67c1..bfc6b739c41 100644 --- a/nekoyume/Assets/_Scripts/Game/OAuth/AppleSigninBehaviour.cs +++ b/nekoyume/Assets/_Scripts/Game/OAuth/AppleSigninBehaviour.cs @@ -116,6 +116,8 @@ public void OnSignIn() // If a sign in with apple succeeds, we should have obtained the credential with the user id, name, and email, save it PlayerPrefs.SetString(AppleUserIdKey, credential.User); Analyzer.Instance.Track("Unity/Intro/AppleSignIn/Signed"); + var signedEvt = new AirbridgeEvent("Intro_AppleSignIn_Signed"); + AirbridgeUnity.TrackEvent(signedEvt); var appleIdCredential = credential as IAppleIDCredential; Email = appleIdCredential.Email; IdToken = Encoding.UTF8.GetString(appleIdCredential.IdentityToken, 0, appleIdCredential.IdentityToken.Length); @@ -134,9 +136,13 @@ public void OnSignIn() { case SignInState.Signed: Analyzer.Instance.Track("Unity/Intro/AppleSignIn/Signed"); + var signedEvt = new AirbridgeEvent("Intro_AppleSignIn_Signed"); + AirbridgeUnity.TrackEvent(signedEvt); break; case SignInState.Canceled: Analyzer.Instance.Track("Unity/Intro/AppleSignIn/Canceled"); + var canceledEvt = new AirbridgeEvent("Intro_AppleSignIn_Canceled"); + AirbridgeUnity.TrackEvent(canceledEvt); break; } }); diff --git a/nekoyume/Assets/_Scripts/Game/OAuth/GoogleSigninBehaviour.cs b/nekoyume/Assets/_Scripts/Game/OAuth/GoogleSigninBehaviour.cs index 58b81029ff5..8cae89e9758 100644 --- a/nekoyume/Assets/_Scripts/Game/OAuth/GoogleSigninBehaviour.cs +++ b/nekoyume/Assets/_Scripts/Game/OAuth/GoogleSigninBehaviour.cs @@ -47,9 +47,15 @@ public void OnSignIn() { case SignInState.Signed: Analyzer.Instance.Track("Unity/Intro/GoogleSignIn/Signed"); + + var signedEvt = new AirbridgeEvent("Intro_GoogleSignIn_Signed"); + AirbridgeUnity.TrackEvent(signedEvt); break; case SignInState.Canceled: Analyzer.Instance.Track("Unity/Intro/GoogleSignIn/Canceled"); + + var canceledEvt = new AirbridgeEvent("Intro_GoogleSignIn_Canceled"); + AirbridgeUnity.TrackEvent(canceledEvt); break; } }); diff --git a/nekoyume/Assets/_Scripts/Game/Prologue.cs b/nekoyume/Assets/_Scripts/Game/Prologue.cs index c4e6fd38b95..6b138e264fb 100644 --- a/nekoyume/Assets/_Scripts/Game/Prologue.cs +++ b/nekoyume/Assets/_Scripts/Game/Prologue.cs @@ -42,6 +42,11 @@ private IEnumerator CoStartPrologue() { ["AgentAddress"] = Game.instance.States.AgentState.address.ToString(), }); + + var evt = new AirbridgeEvent("Prologue_Battle_Start"); + evt.AddCustomAttribute("agent-address", Game.instance.States.AgentState.address.ToString()); + AirbridgeUnity.TrackEvent(evt); + StartCoroutine(Widget.Find().FadeOut(2f)); ActionCamera.instance.InPrologue = true; AudioController.instance.PlayMusic(AudioController.MusicCode.PrologueBattle); diff --git a/nekoyume/Assets/_Scripts/Game/Stage.cs b/nekoyume/Assets/_Scripts/Game/Stage.cs index 5efdec6d207..6b958d6ef26 100644 --- a/nekoyume/Assets/_Scripts/Game/Stage.cs +++ b/nekoyume/Assets/_Scripts/Game/Stage.cs @@ -657,6 +657,15 @@ private IEnumerator CoStageEnd(BattleLog log) ["AgentAddress"] = States.Instance.AgentState.address.ToString(), }; Analyzer.Instance.Track("Unity/Stage End", props); + + var evt = new AirbridgeEvent("Stage_End"); + evt.SetValue(log.stageId); + evt.AddCustomAttribute("cleared-wave", log.clearedWaveNumber); + evt.AddCustomAttribute("cp", cp); + evt.AddCustomAttribute("food-count", foodCount); + evt.AddCustomAttribute("agent-address", States.Instance.CurrentAvatarState.address.ToString()); + evt.AddCustomAttribute("avatar-address", States.Instance.AgentState.address.ToString()); + AirbridgeUnity.TrackEvent(evt); } private IEnumerator CoSlideBg() diff --git a/nekoyume/Assets/_Scripts/IAPStore/IAPStoreManager.cs b/nekoyume/Assets/_Scripts/IAPStore/IAPStoreManager.cs index 59d72286693..5a6add34766 100644 --- a/nekoyume/Assets/_Scripts/IAPStore/IAPStoreManager.cs +++ b/nekoyume/Assets/_Scripts/IAPStore/IAPStoreManager.cs @@ -170,6 +170,13 @@ void IDetailedStoreListener.OnPurchaseFailed(Product i, PurchaseFailureDescripti "Unity/Shop/IAP/PurchaseResult", ("product-id", p.productId), ("result", p.reason.ToString())); + + var evt = new AirbridgeEvent("IAP_Failed"); + evt.SetAction(p.productId); + evt.SetLabel(p.reason.ToString()); + evt.AddCustomAttribute("product-id", p.productId); + AirbridgeUnity.TrackEvent(evt); + if (p.reason == PurchaseFailureReason.PurchasingUnavailable) { // IAP may be disabled in device settings. @@ -209,14 +216,14 @@ private async void OnPurchaseRequestAsync(PurchaseEventArgs e) ("result", "Complete"), ("transaction-id", e.purchasedProduct.transactionID)); - AirbridgeEvent @event = new AirbridgeEvent("IAP"); - @event.SetAction(e.purchasedProduct.definition.id); - @event.SetLabel("iap"); - @event.SetCurrency(e.purchasedProduct.metadata.isoCurrencyCode); - @event.SetValue((double)e.purchasedProduct.metadata.localizedPrice); - @event.AddCustomAttribute("product-id", e.purchasedProduct.definition.id); - @event.SetTransactionId(e.purchasedProduct.transactionID); - AirbridgeUnity.TrackEvent(@event); + var evt = new AirbridgeEvent("IAP"); + evt.SetAction(e.purchasedProduct.definition.id); + evt.SetLabel("iap"); + evt.SetCurrency(e.purchasedProduct.metadata.isoCurrencyCode); + evt.SetValue((double)e.purchasedProduct.metadata.localizedPrice); + evt.AddCustomAttribute("product-id", e.purchasedProduct.definition.id); + evt.SetTransactionId(e.purchasedProduct.transactionID); + AirbridgeUnity.TrackEvent(evt); popup.Show( "UI_COMPLETED", diff --git a/nekoyume/Assets/_Scripts/UI/Login/PortalConnect.cs b/nekoyume/Assets/_Scripts/UI/Login/PortalConnect.cs index 33188146a8d..3fa1cea2368 100644 --- a/nekoyume/Assets/_Scripts/UI/Login/PortalConnect.cs +++ b/nekoyume/Assets/_Scripts/UI/Login/PortalConnect.cs @@ -115,6 +115,9 @@ public void OpenPortal(System.Action onPortalEnd = null) clientSecret = GetClientSecret(); Application.OpenURL(url); Analyzer.Instance.Track("Unity/Portal/1"); + + var evt = new AirbridgeEvent("Portal_1"); + AirbridgeUnity.TrackEvent(evt); } public void OpenPortalRewardUrl() @@ -142,6 +145,9 @@ private void OnDeepLinkActivated(string url) Analyzer.Instance.Track("Unity/Portal/2"); + var evt = new AirbridgeEvent("Portal_2"); + AirbridgeUnity.TrackEvent(evt); + var param = deeplinkURL.Split('?')[1].Split('&') .ToDictionary(str => str.Split('=')[0], str => str.Split('=')[1]); @@ -204,6 +210,9 @@ private async void RequestCode(System.Action onSuccess) { Analyzer.Instance.Track("Unity/Portal/3"); + var evt = new AirbridgeEvent("Portal_3"); + AirbridgeUnity.TrackEvent(evt); + var url = $"{PortalUrl}{RequestCodeEndpoint}?clientSecret={clientSecret}"; Debug.Log($"[{nameof(PortalConnect)}] {nameof(RequestCode)} invoked: url({url})"); @@ -444,6 +453,9 @@ private void SetRefreshTokenToPlayerPrefs(string address) Debug.Log($"[GoogleSigninBehaviour] CoSendGoogleIdToken invoked w/ idToken({idToken})"); Analyzer.Instance.Track("Unity/Intro/GoogleSignIn/ConnectToPortal"); + var evt = new AirbridgeEvent("Intro_GoogleSignIn_ConnectToPortal"); + AirbridgeUnity.TrackEvent(evt); + var body = new JsonObject {{"idToken", idToken}}; var bodyString = body.ToJsonString(new JsonSerializerOptions {WriteIndented = true}); var request = new UnityWebRequest($"{PortalUrl}{GoogleAuthEndpoint}", "POST"); @@ -459,8 +471,10 @@ private void SetRefreshTokenToPlayerPrefs(string address) if (HandleTokensResult(request)) { Analyzer.Instance.Track("Unity/Intro/GoogleSignIn/ConnectedToPortal"); - AirbridgeEvent @event = new AirbridgeEvent("Login"); - AirbridgeUnity.TrackEvent(@event); + + var loginEvt = new AirbridgeEvent("Login"); + AirbridgeUnity.TrackEvent(loginEvt); + var accessTokenResult = JsonUtility.FromJson(request.downloadHandler.text); if (!string.IsNullOrEmpty(accessTokenResult.address)) { @@ -482,6 +496,9 @@ private void SetRefreshTokenToPlayerPrefs(string address) Debug.Log($"[AppleSigninBehaviour] CoSendAppleIdToken invoked w/ idToken({idToken})"); Analyzer.Instance.Track("Unity/Intro/AppleSignIn/ConnectToPortal"); + var evt = new AirbridgeEvent("Intro_AppleSignIn_ConnectToPortal"); + AirbridgeUnity.TrackEvent(evt); + var body = new JsonObject {{"idToken", idToken}}; var bodyString = body.ToJsonString(new JsonSerializerOptions {WriteIndented = true}); var request = new UnityWebRequest($"{PortalUrl}{AppleAuthEndpoint}", "POST"); @@ -497,8 +514,10 @@ private void SetRefreshTokenToPlayerPrefs(string address) if (HandleTokensResult(request)) { Analyzer.Instance.Track("Unity/Intro/AppleSignIn/ConnectedToPortal"); - AirbridgeEvent @event = new AirbridgeEvent("Login"); - AirbridgeUnity.TrackEvent(@event); + + var loginEvt = new AirbridgeEvent("Login"); + AirbridgeUnity.TrackEvent(loginEvt); + var accessTokenResult = JsonUtility.FromJson(request.downloadHandler.text); if (!string.IsNullOrEmpty(accessTokenResult.address)) { @@ -771,6 +790,9 @@ private static void ShowRequestErrorPopup(RequestResult data) #endif }; Analyzer.Instance.Track("Unity/Portal/0"); + + var evt = new AirbridgeEvent("Portal_0"); + AirbridgeUnity.TrackEvent(evt); } } } diff --git a/nekoyume/Assets/_Scripts/UI/Module/IAP/IAPShopProductCellView.cs b/nekoyume/Assets/_Scripts/UI/Module/IAP/IAPShopProductCellView.cs index 017b9517651..a2a25ab2453 100644 --- a/nekoyume/Assets/_Scripts/UI/Module/IAP/IAPShopProductCellView.cs +++ b/nekoyume/Assets/_Scripts/UI/Module/IAP/IAPShopProductCellView.cs @@ -66,6 +66,12 @@ private void Awake() Widget.Find().SetLoadingDataScreen(true); Analyzer.Instance.Track("Unity/Shop/IAP/GridCell/Click", ("product-id", _data.Sku)); + + var evt = new AirbridgeEvent("IAP_GridCell_Click"); + evt.SetAction(_data.Sku); + evt.AddCustomAttribute("product-id", _data.Sku); + AirbridgeUnity.TrackEvent(evt); + Widget.Find().Show(_data, _puchasingData).Forget(); }); diff --git a/nekoyume/Assets/_Scripts/UI/Tutorial/TutorialController.cs b/nekoyume/Assets/_Scripts/UI/Tutorial/TutorialController.cs index 2b739bf7c84..87676e9d0c0 100644 --- a/nekoyume/Assets/_Scripts/UI/Tutorial/TutorialController.cs +++ b/nekoyume/Assets/_Scripts/UI/Tutorial/TutorialController.cs @@ -279,6 +279,11 @@ private void SendMixPanel(int id) ["Id"] = id, }; Analyzer.Instance.Track("Unity/Tutorial progress", props); + + var evt = new AirbridgeEvent("Tutorial_Progress"); + evt.SetValue(id); + AirbridgeUnity.TrackEvent(evt); + } private IEnumerator CoShowTutorialRewardScreen() diff --git a/nekoyume/Assets/_Scripts/UI/Widget/BattlePreparation.cs b/nekoyume/Assets/_Scripts/UI/Widget/BattlePreparation.cs index 5ee9f1f2a92..1b497e7a9a8 100644 --- a/nekoyume/Assets/_Scripts/UI/Widget/BattlePreparation.cs +++ b/nekoyume/Assets/_Scripts/UI/Widget/BattlePreparation.cs @@ -184,12 +184,18 @@ public void Show( { base.Show(ignoreShowAnimation); _trackGuideQuest = showByGuideQuest; + Analyzer.Instance.Track("Unity/Click Stage", new Dictionary() { ["AvatarAddress"] = States.Instance.CurrentAvatarState.address.ToString(), ["AgentAddress"] = States.Instance.AgentState.address.ToString(), }); + var evt = new AirbridgeEvent("Click_Stage"); + evt.AddCustomAttribute("agent-address", States.Instance.CurrentAvatarState.address.ToString()); + evt.AddCustomAttribute("avatar-address", States.Instance.AgentState.address.ToString()); + AirbridgeUnity.TrackEvent(evt); + repeatToggle.isOn = false; repeatToggle.interactable = true; diff --git a/nekoyume/Assets/_Scripts/UI/Widget/Craft.cs b/nekoyume/Assets/_Scripts/UI/Widget/Craft.cs index b5d4c7e62d5..fb3fc7b463b 100644 --- a/nekoyume/Assets/_Scripts/UI/Widget/Craft.cs +++ b/nekoyume/Assets/_Scripts/UI/Widget/Craft.cs @@ -567,17 +567,25 @@ private void CombinationEquipmentAction(SubRecipeView.RecipeInfo recipeInfo, int itemUsable: equipment); Find().Crystal.SetProgressCircle(true); + var materialCount = insufficientMaterials.Sum(x => x.Value); + Analyzer.Instance.Track( - "Unity/Replace Combination Material", + "Unity/Replace_Combination_Material", new Dictionary() { - ["MaterialCount"] = insufficientMaterials - .Sum(x => x.Value), + ["MaterialCount"] = materialCount, ["BurntCrystal"] = (long)recipeInfo.CostCrystal.MajorUnit, ["AvatarAddress"] = States.Instance.CurrentAvatarState.address.ToString(), ["AgentAddress"] = States.Instance.AgentState.address.ToString(), }); + var evt = new AirbridgeEvent("Replace_Combination_Material"); + evt.SetValue((double)recipeInfo.CostCrystal.MajorUnit); + evt.AddCustomAttribute("material-count", materialCount); + evt.AddCustomAttribute("agent-address", States.Instance.CurrentAvatarState.address.ToString()); + evt.AddCustomAttribute("avatar-address", States.Instance.AgentState.address.ToString()); + AirbridgeUnity.TrackEvent(evt); + ActionManager.Instance .CombinationEquipment( recipeInfo, diff --git a/nekoyume/Assets/_Scripts/UI/Widget/Login.cs b/nekoyume/Assets/_Scripts/UI/Widget/Login.cs index a7e003130c7..b87ba0990c7 100644 --- a/nekoyume/Assets/_Scripts/UI/Widget/Login.cs +++ b/nekoyume/Assets/_Scripts/UI/Widget/Login.cs @@ -67,6 +67,9 @@ public override void Show(bool ignoreShowAnimation = false) base.Show(ignoreShowAnimation); Analyzer.Instance.Track("Unity/LoginImpression"); + var evt = new AirbridgeEvent("Login_Impression"); + AirbridgeUnity.TrackEvent(evt); + for (var i = 0; i < slots.Length; i++) { var slot = slots[i]; diff --git a/nekoyume/Assets/_Scripts/UI/Widget/LoginDetail.cs b/nekoyume/Assets/_Scripts/UI/Widget/LoginDetail.cs index 8166123a52e..8a2aee3d9bc 100644 --- a/nekoyume/Assets/_Scripts/UI/Widget/LoginDetail.cs +++ b/nekoyume/Assets/_Scripts/UI/Widget/LoginDetail.cs @@ -70,6 +70,10 @@ public void CreateClick() { AudioController.PlayClick(); Analyzer.Instance.Track("Unity/Create Click"); + + var evt = new AirbridgeEvent("Create_Avatar_Click"); + AirbridgeUnity.TrackEvent(evt); + var inputBox = Find(); inputBox.CloseCallback = result => { @@ -90,6 +94,10 @@ private void CreateAndLogin(string nickName) } Analyzer.Instance.Track("Unity/Choose Nickname"); + + var evt = new AirbridgeEvent("Choose_Avatar_Nickname"); + AirbridgeUnity.TrackEvent(evt); + Find().Show( LoadingScreen.LoadingType.Entering, L10nManager.Localize("UI_IN_MINING_A_BLOCK")); @@ -232,6 +240,10 @@ private void SetInformation(Player player) public override void Show(bool ignoreShowAnimation = false) { Analyzer.Instance.Track("Unity/CustomizeAvatar/Show"); + + var evt = new AirbridgeEvent("Customize_Avatar"); + AirbridgeUnity.TrackEvent(evt); + base.Show(ignoreShowAnimation); if (_isCreateMode) { diff --git a/nekoyume/Assets/_Scripts/UI/Widget/Menu.cs b/nekoyume/Assets/_Scripts/UI/Widget/Menu.cs index 00e1983dcdd..c63d8fb1986 100644 --- a/nekoyume/Assets/_Scripts/UI/Widget/Menu.cs +++ b/nekoyume/Assets/_Scripts/UI/Widget/Menu.cs @@ -273,7 +273,14 @@ public void GoToFood() private void GoToCraftWithToggleType(int toggleIndex) { AudioController.PlayClick(); + Analyzer.Instance.Track("Unity/Click Guided Quest Combination Equipment"); + + var evt = new AirbridgeEvent("Click_Guided_Quest_Combination_Equipment"); + evt.AddCustomAttribute("agent-address", States.Instance.CurrentAvatarState.address.ToString()); + evt.AddCustomAttribute("avatar-address", States.Instance.AgentState.address.ToString()); + AirbridgeUnity.TrackEvent(evt); + CombinationClickInternal(() => Find().ShowWithToggleIndex(toggleIndex)); } @@ -281,12 +288,19 @@ private void GoToCraftWithToggleType(int toggleIndex) private void GoToCombinationEquipmentRecipe(int recipeId) { AudioController.PlayClick(); + Analyzer.Instance.Track("Unity/Click Guided Quest Combination Equipment", new Dictionary() { ["AvatarAddress"] = States.Instance.CurrentAvatarState.address.ToString(), ["AgentAddress"] = States.Instance.AgentState.address.ToString(), }); + + var evt = new AirbridgeEvent("Click_Guided_Quest_Combination_Equipment"); + evt.AddCustomAttribute("agent-address", States.Instance.CurrentAvatarState.address.ToString()); + evt.AddCustomAttribute("avatar-address", States.Instance.AgentState.address.ToString()); + AirbridgeUnity.TrackEvent(evt); + CombinationClickInternal(() => Find().ShowWithEquipmentRecipeId(recipeId)); } @@ -390,6 +404,9 @@ public void ShopClick() Analyzer.Instance.Track("Unity/Lobby/ShopButton/Click"); + var evt = new AirbridgeEvent("Lobby_ShopButton_Click"); + AirbridgeUnity.TrackEvent(evt); + if (shopExclamationMark.gameObject.activeSelf) { var addressHex = States.Instance.CurrentAvatarState.address.ToHex(); @@ -440,11 +457,18 @@ public void RankingClick() Close(true); Find().ShowAsync().Forget(); + Analyzer.Instance.Track("Unity/Enter arena page", new Dictionary() { ["AvatarAddress"] = States.Instance.CurrentAvatarState.address.ToString(), ["AgentAddress"] = States.Instance.AgentState.address.ToString(), }); + + var evt = new AirbridgeEvent("Enter_Arena_Page"); + evt.AddCustomAttribute("agent-address", States.Instance.CurrentAvatarState.address.ToString()); + evt.AddCustomAttribute("avatar-address", States.Instance.AgentState.address.ToString()); + AirbridgeUnity.TrackEvent(evt); + AudioController.PlayClick(); } @@ -555,6 +579,9 @@ public void WorldBossClick() Close(true); Find().ShowAsync().Forget(); Analyzer.Instance.Track("Unity/Enter world boss page"); + + var evt = new AirbridgeEvent("Enter_World_Boss_Page"); + AirbridgeUnity.TrackEvent(evt); } public void DccClick() @@ -606,6 +633,10 @@ public void UpdateGuideQuest(AvatarState avatarState) public override void Show(bool ignoreShowAnimation = false) { Analyzer.Instance.Track("Unity/Lobby/Show"); + + var evt = new AirbridgeEvent("Lobby_Show"); + AirbridgeUnity.TrackEvent(evt); + SubscribeAtShow(); Time.timeScale = Prologue.DefaultTimeScale; diff --git a/nekoyume/Assets/_Scripts/UI/Widget/MobileShop.cs b/nekoyume/Assets/_Scripts/UI/Widget/MobileShop.cs index 99b782a8cd0..bf761adcba6 100644 --- a/nekoyume/Assets/_Scripts/UI/Widget/MobileShop.cs +++ b/nekoyume/Assets/_Scripts/UI/Widget/MobileShop.cs @@ -204,6 +204,11 @@ public void PurchaseComplete(string productId) private void RefreshGridByCategory(string categoryName) { Analyzer.Instance.Track("Unity/Shop/IAP/Tab/Click",("category-name", categoryName)); + + var evt = new AirbridgeEvent("IAP_Tab_Click"); + evt.SetAction(categoryName); + AirbridgeUnity.TrackEvent(evt); + foreach (var item in _allProductObjs) { item.Value.gameObject.SetActive(false); diff --git a/nekoyume/Assets/_Scripts/UI/Widget/Popup/BattleResultPopup.cs b/nekoyume/Assets/_Scripts/UI/Widget/Popup/BattleResultPopup.cs index eb764421828..c827594cc75 100644 --- a/nekoyume/Assets/_Scripts/UI/Widget/Popup/BattleResultPopup.cs +++ b/nekoyume/Assets/_Scripts/UI/Widget/Popup/BattleResultPopup.cs @@ -792,6 +792,11 @@ private IEnumerator CoRepeatStage(bool buyTicketIfNeeded = false) var eventName = $"Unity/Stage Exit {eventKey}"; Analyzer.Instance.Track(eventName, props); + var category = $"Stage_Exit_{eventKey}"; + var evt = new AirbridgeEvent(category); + evt.SetValue(SharedModel.StageID); + AirbridgeUnity.TrackEvent(evt); + yield return StartCoroutine(SendBattleActionAsync(0, buyTicketIfNeeded)); } @@ -891,6 +896,11 @@ private void GoToMain() var eventName = $"Unity/Stage Exit {eventKey}"; Analyzer.Instance.Track(eventName, props); + var category = $"Stage_Exit_{eventKey}"; + var evt = new AirbridgeEvent(category); + evt.SetValue(Game.Game.instance.Stage.stageId); + AirbridgeUnity.TrackEvent(evt); + Find().Close(true); Game.Game.instance.Stage.DestroyBackground(); Game.Event.OnRoomEnter.Invoke(true); diff --git a/nekoyume/Assets/_Scripts/UI/Widget/Popup/MailPopup.cs b/nekoyume/Assets/_Scripts/UI/Widget/Popup/MailPopup.cs index cd565ac6fb7..62cd6f84747 100644 --- a/nekoyume/Assets/_Scripts/UI/Widget/Popup/MailPopup.cs +++ b/nekoyume/Assets/_Scripts/UI/Widget/Popup/MailPopup.cs @@ -767,6 +767,10 @@ public void Read(UnloadFromMyGaragesRecipientMail unloadFromMyGaragesRecipientMa { Analyzer.Instance.Track( "Unity/MailBox/UnloadFromMyGaragesRecipientMail/ReceiveButton/Click"); + + var evt = new AirbridgeEvent("UnloadFromMyGaragesRecipientMail_ReceiveButton_Click"); + AirbridgeUnity.TrackEvent(evt); + var game = Game.Game.instance; unloadFromMyGaragesRecipientMail.New = false; LocalLayerModifier.RemoveNewMail( @@ -922,6 +926,10 @@ public void Read(ClaimItemsMail claimItemsMail) { Analyzer.Instance.Track( "Unity/MailBox/ClaimItemsMail/ReceiveButton/Click"); + + var evt = new AirbridgeEvent("ClaimItemsMail_ReceiveButton_Click"); + AirbridgeUnity.TrackEvent(evt); + var game = Game.Game.instance; claimItemsMail.New = false; LocalLayerModifier.RemoveNewMail( diff --git a/nekoyume/Assets/_Scripts/UI/Widget/Popup/PatrolRewardPopup.cs b/nekoyume/Assets/_Scripts/UI/Widget/Popup/PatrolRewardPopup.cs index b0131055b19..6c5d32dc8fc 100644 --- a/nekoyume/Assets/_Scripts/UI/Widget/Popup/PatrolRewardPopup.cs +++ b/nekoyume/Assets/_Scripts/UI/Widget/Popup/PatrolRewardPopup.cs @@ -99,6 +99,10 @@ private async void ShowAsync(bool ignoreShowAnimation = false) ["PatrolTime"] = PatrolReward.PatrolTime.Value }); + var evt = new AirbridgeEvent("PatrolReward_Show_Popup"); + evt.AddCustomAttribute("patrol-time", PatrolReward.PatrolTime.Value.ToString()); + AirbridgeUnity.TrackEvent(evt); + if (!_initialized) { Init(); @@ -234,6 +238,9 @@ private async void ClaimRewardAsync() { Analyzer.Instance.Track("Unity/PatrolReward/Request Claim Reward"); + var evt = new AirbridgeEvent("PatrolReward_Request_Claim_Reward"); + AirbridgeUnity.TrackEvent(evt); + Claiming.Value = true; Close(); diff --git a/nekoyume/Assets/_Scripts/UI/Widget/Popup/ShopListPopup.cs b/nekoyume/Assets/_Scripts/UI/Widget/Popup/ShopListPopup.cs index d8bcc7eb0f5..caff173b73d 100644 --- a/nekoyume/Assets/_Scripts/UI/Widget/Popup/ShopListPopup.cs +++ b/nekoyume/Assets/_Scripts/UI/Widget/Popup/ShopListPopup.cs @@ -58,13 +58,26 @@ protected override void Awake() closeButton.onClick.AddListener(() => { Analyzer.Instance.Track("Unity/Shop/IAP/ShopListPopup/Close", ("product-id", _data.Sku)); + + var evt = new AirbridgeEvent("IAP_ShopListPopup_Close"); + evt.SetAction(_data.Sku); + evt.AddCustomAttribute("product-id", _data.Sku); + AirbridgeUnity.TrackEvent(evt); + Close(); }); CloseWidget = () => Close(); buyButton.onClick.AddListener(() => { Debug.Log($"Purchase: {_data.Sku}"); + Analyzer.Instance.Track("Unity/Shop/IAP/ShopListPopup/PurchaseButton/Click",("product-id", _data.Sku)); + + var evt = new AirbridgeEvent("IAP_ShopListPopup_PurchaseButton_Click"); + evt.SetAction(_data.Sku); + evt.AddCustomAttribute("product-id", _data.Sku); + AirbridgeUnity.TrackEvent(evt); + Game.Game.instance.IAPStoreManager.OnPurchaseClicked(_data.Sku); buyButton.interactable = false; diff --git a/nekoyume/Assets/_Scripts/UI/Widget/Screen/IntroScreen.cs b/nekoyume/Assets/_Scripts/UI/Widget/Screen/IntroScreen.cs index 294f1de3688..7b54c147c25 100644 --- a/nekoyume/Assets/_Scripts/UI/Widget/Screen/IntroScreen.cs +++ b/nekoyume/Assets/_Scripts/UI/Widget/Screen/IntroScreen.cs @@ -254,6 +254,10 @@ protected override void Awake() { Debug.Log("[IntroScreen] Click start button."); Analyzer.Instance.Track("Unity/Intro/StartButton/Click"); + + var evt = new AirbridgeEvent("Intro_StartButton_Click"); + AirbridgeUnity.TrackEvent(evt); + startButtonContainer.SetActive(false); OnClickStart.OnNext(this); }); @@ -269,6 +273,10 @@ protected override void Awake() Debug.Log("[IntroScreen] Click apple sign in button."); Analyzer.Instance.Track("Unity/Intro/AppleSignIn/Click"); + + var evt = new AirbridgeEvent("Intro_AppleSignIn_Click"); + AirbridgeUnity.TrackEvent(evt); + startButtonContainer.SetActive(false); ProcessAppleSigning(); }); @@ -276,24 +284,42 @@ protected override void Awake() { Debug.Log("[IntroScreen] Click google sign in button."); Analyzer.Instance.Track("Unity/Intro/GoogleSignIn/Click"); + + var evt = new AirbridgeEvent("Intro_GoogleSignIn_Click"); + AirbridgeUnity.TrackEvent(evt); + startButtonContainer.SetActive(false); ProcessGoogleSigning(); }); twitterSignInButton.onClick.AddListener(() => { Debug.Log("[IntroScreen] Click twitter sign in button."); + Analyzer.Instance.Track("Unity/Intro/TwitterSignIn/Click"); + + var evt = new AirbridgeEvent("Intro_TwitterSignIn_Click"); + AirbridgeUnity.TrackEvent(evt); + ShowPortalConnectGuidePopup(SigninContext.SocialType.Twitter); }); discordSignInButton.onClick.AddListener(() => { Debug.Log("[IntroScreen] Click discord sign in button."); + Analyzer.Instance.Track("Unity/Intro/DiscordSignIn/Click"); + + var evt = new AirbridgeEvent("Intro_DiscordSignIn_Click"); + AirbridgeUnity.TrackEvent(evt); + ShowPortalConnectGuidePopup(SigninContext.SocialType.Discord); }); signinButton.onClick.AddListener(() => { Analyzer.Instance.Track("Unity/Intro/SigninButton/Click"); + + var evt = new AirbridgeEvent("Intro_SigninButton_Click"); + AirbridgeUnity.TrackEvent(evt); + qrCodeGuideBackground.Show(); qrCodeGuideContainer.SetActive(true); foreach (var image in qrCodeGuideImages) @@ -399,6 +425,10 @@ public void ShowTabToStart() public void Show(string keyStorePath, string privateKey, PlanetContext planetContext) { Analyzer.Instance.Track("Unity/Intro/Show"); + + var evt = new AirbridgeEvent("Intro_Show"); + AirbridgeUnity.TrackEvent(evt); + SetData(keyStorePath, privateKey, planetContext); #if RUN_ON_MOBILE @@ -462,6 +492,10 @@ public void ShowPlanetAccountInfosPopup(PlanetContext planetContext, bool needTo private void OnVideoEnd() { Analyzer.Instance.Track("Unity/Intro/Video/End"); + + var evt = new AirbridgeEvent("Intro_Video_End"); + AirbridgeUnity.TrackEvent(evt); + videoImage.gameObject.SetActive(false); AudioController.instance.PlayMusic(AudioController.MusicCode.Title); } @@ -495,11 +529,19 @@ private void ShowQrCodeGuide() startButtonContainer.SetActive(false); loginSystem.Show(_keyStorePath, string.Empty); Analyzer.Instance.Track("Unity/Intro/QRCodeImported"); + + var evt = new AirbridgeEvent("Intro_QRCodeImported"); + AirbridgeUnity.TrackEvent(evt); }); } else { Analyzer.Instance.Track($"Unity/Intro/GuideDMX/{_guideIndex + 1}"); + + var evt = new AirbridgeEvent("Intro_GuideDMX"); + evt.SetValue(_guideIndex + 1); + AirbridgeUnity.TrackEvent(evt); + qrCodeGuideImages[_guideIndex].SetActive(true); qrCodeGuideText.text = L10nManager.Localize($"INTRO_QR_CODE_GUIDE_{_guideIndex}"); } @@ -525,6 +567,10 @@ private async void GetGuestPrivateKey() guestButton.onClick.AddListener(() => { Analyzer.Instance.Track("Unity/Intro/Guest/Click"); + + var evt = new AirbridgeEvent("Intro_Guest_Click"); + AirbridgeUnity.TrackEvent(evt); + startButtonContainer.SetActive(false); Find().Show(_keyStorePath, pk); }); diff --git a/nekoyume/Assets/_Scripts/UI/Widget/ShopBuy.cs b/nekoyume/Assets/_Scripts/UI/Widget/ShopBuy.cs index dba039ccd2f..1eda1b627c2 100644 --- a/nekoyume/Assets/_Scripts/UI/Widget/ShopBuy.cs +++ b/nekoyume/Assets/_Scripts/UI/Widget/ShopBuy.cs @@ -258,18 +258,31 @@ private void Buy(List models) ["AgentAddress"] = States.Instance.AgentState.address.ToString(), }; Analyzer.Instance.Track("Unity/Number of Purchased Items", props); + + var evt = new AirbridgeEvent("Number_Of_Purchased_Items"); + evt.SetValue(models.Count); + evt.AddCustomAttribute("agent-address", States.Instance.CurrentAvatarState.address.ToString()); + evt.AddCustomAttribute("avatar-address", States.Instance.AgentState.address.ToString()); + AirbridgeUnity.TrackEvent(evt); } foreach (var model in models) { + var price = model.Product?.Price ?? model.FungibleAssetProduct.Price; var props = new Dictionary() { - ["Price"] = model.Product?.Price ?? model.FungibleAssetProduct.Price, + ["Price"] = price, ["AvatarAddress"] = States.Instance.CurrentAvatarState.address.ToString(), ["AgentAddress"] = States.Instance.AgentState.address.ToString(), }; Analyzer.Instance.Track("Unity/BuyProduct", props); + var evt = new AirbridgeEvent("BuyProduct"); + evt.SetValue((double)price); + evt.AddCustomAttribute("agent-address", States.Instance.CurrentAvatarState.address.ToString()); + evt.AddCustomAttribute("avatar-address", States.Instance.AgentState.address.ToString()); + AirbridgeUnity.TrackEvent(evt); + var count = model.Product?.Quantity ?? model.FungibleAssetProduct.Quantity; var itemName = model.ItemBase?.GetLocalizedName() ?? model.FungibleAssetValue.GetLocalizedName(); model.Selected.Value = false; diff --git a/nekoyume/Assets/_Scripts/UI/Widget/ShopSell.cs b/nekoyume/Assets/_Scripts/UI/Widget/ShopSell.cs index 63e306acd53..e3abf75c886 100644 --- a/nekoyume/Assets/_Scripts/UI/Widget/ShopSell.cs +++ b/nekoyume/Assets/_Scripts/UI/Widget/ShopSell.cs @@ -426,6 +426,7 @@ private async void SubscribeReRegisterProduct(bool chargeAp) } Game.Game.instance.ActionManager.ReRegisterProduct(avatarAddress, reRegisterInfos, chargeAp).Subscribe(); + Analyzer.Instance.Track("Unity/ReRegisterProductAll", new Dictionary() { ["Quantity"] = reRegisterInfos.Count, @@ -433,6 +434,12 @@ private async void SubscribeReRegisterProduct(bool chargeAp) ["AgentAddress"] = States.Instance.AgentState.address.ToString(), }); + var evt = new AirbridgeEvent("ReRegisterProduct_All"); + evt.SetValue(reRegisterInfos.Count); + evt.AddCustomAttribute("agent-address", States.Instance.CurrentAvatarState.address.ToString()); + evt.AddCustomAttribute("avatar-address", States.Instance.AgentState.address.ToString()); + AirbridgeUnity.TrackEvent(evt); + string message; if (reRegisterInfos.Count() > 1) { @@ -697,11 +704,17 @@ private void SubscribeReRegisterProduct(Model.ItemCountableAndPricePopup data) Game.Game.instance.ActionManager .ReRegisterProduct(avatarAddress, reRegisterInfos, data.ChargeAp.Value).Subscribe(); + Analyzer.Instance.Track("Unity/ReRegisterProduct", new Dictionary() { ["AvatarAddress"] = avatarAddress.ToString(), ["AgentAddress"] = States.Instance.AgentState.address.ToString(), }, true); + + var evt = new AirbridgeEvent("ReRegisterProduct"); + evt.AddCustomAttribute("agent-address", States.Instance.CurrentAvatarState.address.ToString()); + evt.AddCustomAttribute("avatar-address", States.Instance.AgentState.address.ToString()); + AirbridgeUnity.TrackEvent(evt); } private static (IProductInfo, IRegisterInfo) GetReRegisterInfo(Guid productId, int newPrice) diff --git a/nekoyume/Assets/_Scripts/UI/Widget/Synopsis.cs b/nekoyume/Assets/_Scripts/UI/Widget/Synopsis.cs index c8998f4d031..e98737abcfb 100644 --- a/nekoyume/Assets/_Scripts/UI/Widget/Synopsis.cs +++ b/nekoyume/Assets/_Scripts/UI/Widget/Synopsis.cs @@ -351,6 +351,10 @@ public override void Show(bool ignoreShowAnimation = false) { base.Show(ignoreShowAnimation); Analyzer.Instance.Track("Unity/Synopsis Start"); + + var evt = new AirbridgeEvent("Synopsis_Start"); + AirbridgeUnity.TrackEvent(evt); + AudioController.instance.PlayMusic(AudioController.MusicCode.Prologue); skipButton.SetActive(true); StartCoroutine(StartSynopsis(true)); @@ -386,6 +390,10 @@ private async Task End() } Analyzer.Instance.Track("Unity/Synopsis End"); + + var evt = new AirbridgeEvent("Synopsis_End"); + AirbridgeUnity.TrackEvent(evt); + Close(); } @@ -397,6 +405,10 @@ public void Skip() public void SkipAll() { Analyzer.Instance.Track("Unity/Synopsis Skip"); + + var evt = new AirbridgeEvent("Synopsis_Skip"); + AirbridgeUnity.TrackEvent(evt); + skipAll = true; Skip(); } diff --git a/nekoyume/Assets/_Scripts/UI/Widget/System/LoginSystem.cs b/nekoyume/Assets/_Scripts/UI/Widget/System/LoginSystem.cs index c3cbd52bbbe..c11e9c4909f 100644 --- a/nekoyume/Assets/_Scripts/UI/Widget/System/LoginSystem.cs +++ b/nekoyume/Assets/_Scripts/UI/Widget/System/LoginSystem.cs @@ -127,6 +127,10 @@ protected override void Awake() setPasswordLaterButton.onClick.AddListener(() => { Analyzer.Instance.Track("Unity/SetPassword/Cancel"); + + var evt = new AirbridgeEvent("SetPassword_Cancel"); + AirbridgeUnity.TrackEvent(evt); + Close(true); }); @@ -248,6 +252,9 @@ public void CheckPassphrase(string text) { AnalyzeCache.IsTrackedInputPassword = true; Analyzer.Instance.Track("Unity/Login/Password/Input"); + + var evt = new AirbridgeEvent("Login_Password_Input"); + AirbridgeUnity.TrackEvent(evt); } var valid = submitButton.IsSubmittable; @@ -262,6 +269,9 @@ public void CheckRetypePassphrase(string text) { AnalyzeCache.IsTrackedRetypePassword = true; Analyzer.Instance.Track("Unity/Login/Password/Retype"); + + var evt = new AirbridgeEvent("Login_Password_Retype"); + AirbridgeUnity.TrackEvent(evt); } UpdateSubmitButton(); @@ -366,6 +376,9 @@ public void Submit() Analyzer.Instance.Track("Unity/Login/GameStartButton/Click"); + var evt = new AirbridgeEvent("Login_GameStartButton_Click"); + AirbridgeUnity.TrackEvent(evt); + submitButton.Interactable = false; switch (State.Value) { @@ -384,6 +397,10 @@ public void Submit() SetPassPhrase(_privateKey.ToAddress().ToString(), passPhraseField.text); OneLineSystem.Push(MailType.System, L10nManager.Localize("UI_SET_PASSWORD_COMPLETE"), NotificationCell.NotificationType.Notification); Analyzer.Instance.Track("Unity/SetPassword/Complete"); + + var setPasswordEvt = new AirbridgeEvent("SetPassword_Complete"); + AirbridgeUnity.TrackEvent(setPasswordEvt); + Close(); break; case States.Login: @@ -526,12 +543,20 @@ public void Show(Address? connectedAddress) if (connectedAddress.HasValue) { Analyzer.Instance.Track("Unity/Login/1"); + + var evt = new AirbridgeEvent("Login_1"); + AirbridgeUnity.TrackEvent(evt); + SetState(States.ConnectedAddress_Mobile); SetImage(connectedAddress.Value); } else { Analyzer.Instance.Track("Unity/Login/2"); + + var evt = new AirbridgeEvent("Login_2"); + AirbridgeUnity.TrackEvent(evt); + KeyStore = new Web3KeyStore(Platform.GetPersistentDataPath("keystore")); _privateKey = new PrivateKey(); CreateProtectedPrivateKey(_privateKey); @@ -548,6 +573,9 @@ public void ShowResetPassword() Debug.Log($"[LoginSystem] ShowResetPassword invoked"); Analyzer.Instance.Track("Unity/SetPassword/Show"); + var evt = new AirbridgeEvent("SetPassword_Show"); + AirbridgeUnity.TrackEvent(evt); + SetState(States.SetPassword); base.Show(); } diff --git a/nekoyume/Assets/_Scripts/UI/Widget/System/TitleOneButtonSystem.cs b/nekoyume/Assets/_Scripts/UI/Widget/System/TitleOneButtonSystem.cs index c0f7bce7cb0..ed53536e985 100644 --- a/nekoyume/Assets/_Scripts/UI/Widget/System/TitleOneButtonSystem.cs +++ b/nekoyume/Assets/_Scripts/UI/Widget/System/TitleOneButtonSystem.cs @@ -18,6 +18,11 @@ public class TitleOneButtonSystem : Alert public override void Show(string title, string content, string labelOK = "UI_OK", bool localize = true) { Analyzer.Instance.Track("Unity/SystemPopupImpression"); + + var evt = new AirbridgeEvent("System_Popup_Impression"); + evt.SetValue(Game.Game.instance.Stage.stageId); + AirbridgeUnity.TrackEvent(evt); + if (Game.Game.instance.IsInWorld) { var props = new Dictionary() @@ -25,6 +30,10 @@ public override void Show(string title, string content, string labelOK = "UI_OK" ["StageId"] = Game.Game.instance.Stage.stageId, }; Analyzer.Instance.Track("Unity/Stage Exit Crash", props); + + var crashEvt = new AirbridgeEvent("Stage_Exit_Crash"); + evt.SetValue(Game.Game.instance.Stage.stageId); + AirbridgeUnity.TrackEvent(crashEvt); } base.Show(title, content, labelOK, localize); diff --git a/nekoyume/Assets/_Scripts/UI/Widget/Tooltip/HelpTooltip.cs b/nekoyume/Assets/_Scripts/UI/Widget/Tooltip/HelpTooltip.cs index be637e26938..658348e3bc5 100644 --- a/nekoyume/Assets/_Scripts/UI/Widget/Tooltip/HelpTooltip.cs +++ b/nekoyume/Assets/_Scripts/UI/Widget/Tooltip/HelpTooltip.cs @@ -157,8 +157,13 @@ public static void HelpMe(int id, bool showOnceForEachAgentAddress = default) { ["HelpPopupId"] = id, }; + Analyzer.Instance.Track("Unity/Click HelpPopup", props); + var evt = new AirbridgeEvent("Click_Help_Popup"); + evt.SetValue(id); + AirbridgeUnity.TrackEvent(evt); + #pragma warning disable 618 Instance.Show(); #pragma warning restore 618 diff --git a/nekoyume/Assets/_Scripts/UI/Widget/WorldMap.cs b/nekoyume/Assets/_Scripts/UI/Widget/WorldMap.cs index 88be7ed4691..ceb0a755a33 100644 --- a/nekoyume/Assets/_Scripts/UI/Widget/WorldMap.cs +++ b/nekoyume/Assets/_Scripts/UI/Widget/WorldMap.cs @@ -305,6 +305,11 @@ private void ShowWorld(int worldId) ["AvatarAddress"] = States.Instance.CurrentAvatarState.address.ToString(), ["AgentAddress"] = States.Instance.AgentState.address.ToString(), }); + + var evt = new AirbridgeEvent("Click_Yggdrasil"); + evt.AddCustomAttribute("agent-address", States.Instance.AgentState.address.ToString()); + evt.AddCustomAttribute("avatar-address", States.Instance.CurrentAvatarState.address.ToString()); + AirbridgeUnity.TrackEvent(evt); } Push(); From 6475eb2845436217e9a6cd27bb7d3d2fff970233 Mon Sep 17 00:00:00 2001 From: sonohoshi Date: Wed, 22 Nov 2023 14:39:31 +0900 Subject: [PATCH 04/22] fix GetKeystore() on runtime --- .../Assets/_Scripts/Helper/KeyStoreHelper.cs | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/nekoyume/Assets/_Scripts/Helper/KeyStoreHelper.cs b/nekoyume/Assets/_Scripts/Helper/KeyStoreHelper.cs index 3ccdadaef25..18216c5509e 100644 --- a/nekoyume/Assets/_Scripts/Helper/KeyStoreHelper.cs +++ b/nekoyume/Assets/_Scripts/Helper/KeyStoreHelper.cs @@ -4,6 +4,7 @@ using System.Text; using Libplanet.Crypto; using Libplanet.KeyStore; +using Nekoyume.UI; using UnityEditor; using UnityEngine; @@ -15,14 +16,21 @@ public static IKeyStore GetKeystore() { IKeyStore store; - if (Platform.IsMobilePlatform()) + if (Application.isPlaying) { - string dataPath = Platform.GetPersistentDataPath("keystore"); - store = new Web3KeyStore(dataPath); + store = Widget.Find().KeyStore; } else { - store = Web3KeyStore.DefaultKeyStore; + if (Platform.IsMobilePlatform()) + { + var dataPath = Platform.GetPersistentDataPath("keystore"); + store = new Web3KeyStore(dataPath); + } + else + { + store = Web3KeyStore.DefaultKeyStore; + } } return store; From 64b1b9167061e3788f886b88c5c5d847c68f427c Mon Sep 17 00:00:00 2001 From: jonny Date: Wed, 22 Nov 2023 16:10:36 +0900 Subject: [PATCH 05/22] show Currency ticker --- .../_Scripts/Extensions/MailExtensions.cs | 44 ++++++++++++++----- 1 file changed, 34 insertions(+), 10 deletions(-) diff --git a/nekoyume/Assets/_Scripts/Extensions/MailExtensions.cs b/nekoyume/Assets/_Scripts/Extensions/MailExtensions.cs index a92cbf7e011..cc5ebf45f04 100644 --- a/nekoyume/Assets/_Scripts/Extensions/MailExtensions.cs +++ b/nekoyume/Assets/_Scripts/Extensions/MailExtensions.cs @@ -86,12 +86,39 @@ public static ProductSchema GetProductFromMemo(string memo) private static string GetCellContentsForException( this UnloadFromMyGaragesRecipientMail mail) { + string itemNames = string.Empty; + if (mail.FungibleAssetValues is not null) + { + foreach (var fav in mail.FungibleAssetValues) + { + itemNames += fav.value.Currency.Ticker + ", "; + } + } + + if (mail.FungibleIdAndCounts is not null) + { + var materialSheet = Game.Game.instance.TableSheets.MaterialItemSheet; + var itemSheet = Game.Game.instance.TableSheets.ItemSheet; + foreach (var (fungibleId, count) in + mail.FungibleIdAndCounts) + { + var row = materialSheet.OrderedList! + .FirstOrDefault(row => row.Id.Equals(fungibleId)); + if (row != null) + { + var material = ItemFactory.CreateMaterial(row); + itemNames += LocalizationExtensions.GetLocalizedName(material) + ", "; + continue; + } + Debug.LogWarning($"Not found material sheet row. {fungibleId}"); + } + } + var exceptionFormat = L10nManager.Localize( - "MAIL_UNLOAD_FROM_MY_GARAGES_RECIPIENT_CELL_CONTENT_EXCEPTION_FORMAT"); - return string.Format( - exceptionFormat, - mail.FungibleAssetValues?.Count() ?? 0, - mail.FungibleIdAndCounts?.Count() ?? 0); + "UI_RECEIVED"); + itemNames += exceptionFormat; + + return itemNames; } public static async Task GetCellContentAsync(this ClaimItemsMail mail) @@ -166,7 +193,7 @@ private static string GetCellContentsForException( { foreach (var fav in mail.FungibleAssetValues) { - itemNames += LocalizationExtensions.GetLocalizedName(fav) + ", "; + itemNames += fav.Currency.Ticker + ", "; } } @@ -195,10 +222,7 @@ private static string GetCellContentsForException( Debug.LogWarning($"Not found material sheet row. {fungibleId}"); } } - if(itemNames.Length > 2) - { - itemNames.Remove(itemNames.Length-2,2); - } + var exceptionFormat = L10nManager.Localize( "UI_RECEIVED"); itemNames += exceptionFormat; From 25f7be4a0b5294fc9331550ce009305585f2d86d Mon Sep 17 00:00:00 2001 From: yujeong Date: Wed, 22 Nov 2023 16:46:04 +0900 Subject: [PATCH 06/22] remove prosperity meter label --- nekoyume/Assets/StreamingAssets/Localization/common.csv | 2 +- .../Assets/StreamingAssets/Localization/item_description.csv | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/nekoyume/Assets/StreamingAssets/Localization/common.csv b/nekoyume/Assets/StreamingAssets/Localization/common.csv index 3e1f66da80a..9168d6c0dd4 100644 --- a/nekoyume/Assets/StreamingAssets/Localization/common.csv +++ b/nekoyume/Assets/StreamingAssets/Localization/common.csv @@ -436,7 +436,7 @@ UI_BATTLE_EXIT_RESERVATION_TITLE,Battle Exit Reservation,나가기 예약,Reserv UI_BATTLE_EXIT_RESERVATION_CONTENT,Do you want to exit back to the menu after this battle?,전투가 끝난 후 메인으로 이동하시겠습니까?,Deseja sair do menu após esta batalha?,バトルが終了したらロビーに戻りますか?,¿Deseas salir a la pantalla principal después de esta batalla?,คุณต้องการไปที่หน้าหลักหลังจากการต่อสู้นี้จบลงหรือไม่?,Apakah Anda ingin keluar ke menu setelah pertempuran ini?,,您想在这场战斗后退出菜单吗?,這次戰鬥後,您想退出菜單嗎?,Gusto mo bang bumalik sa menu pagkatapos ng labang ito?,Bạn có muốn thoát trở lại Menu sau trận chiến này không? UI_BLESS_OF_GODDESS,Action Power,행동력,Poder de ação,アクションパワー,Puntos de Acción,(AP) แอคชั่นพาวเวอร์,Kekuatan Aksi,,行动力,行動點,aksyon lakas,AP UI_BLESS_OF_GODDESS_DESCRIPTION,"Without the blessings of the Goddess Freya, cats cannot carry out their mission. Action Power can be refilled when the Prosperity Meter is full.",프레이야 여신은 고양이를 위해 가호를 선사합니다. 고양이는 가호가 있어야 모든 행동을 할 수 있습니다. 여신의 가호는 왕국 번영도가 가득 차면 갱신시킬 수 있습니다.,"Sem as bênçãos da Deusa Freya, os gatos não podem cumprir sua missão. O poder de ação é recarregado quando o medidor de prosperidade está cheio.",女神フレイヤの加護がなければ猫たちは任務を遂行できません。女神の加護はプロスペリティメーターが満ちると回復できます。,"Sin las bendiciones de la diosa Freya, los gatos no pueden llevar a cabo su misión. Los Puntos de Acción se puede recargar cuando el Baul de Bendiciones está lleno.",หากปราศจากพรของเทพธิดา Freya,"Tanpa restu Dewi Freya, Kucing tidak bisa menjalankan misinya. Action Power dapat diisi ulang ketika Prosperity Meter sudah penuh.",,没有祝福猫女神芙蕾雅,猫无法执行任务。,沒有女神芙蕾雅的祝福,貓就無法完成它們的使命。當繁榮計滿時,可以重新補充行動點,"Kung walang Biyaya galing sa diyosang Freya,hindi kayang magpatuloy ang mga pusa sa kanilang misyon. Ang Aksyon lakas ay napupuno pag ang metro ng kasaganaan puno.","Không có sự ban phước của Nữ thần Freya, mèo không thể thực hiện nhiệm vụ của mình. AP có thể được nạp lại khi Thanh Danh vọng được sạc đầy." -UI_PROSPERITY_DEGREE,Prosperity Meter,번영도,Medidor de Prosperidade,プロスペリティメーター,Baul de Bendiciones,ที่วัดความมั่งคั่ง,Prosperity Meter,,繁荣仪表,繁榮計,Metro ng Kasaganaan,Thanh Danh vọng +UI_PROSPERITY_DEGREE,AP recharging,행동력 충전,Recarga de AP,AP充電,Recarga de AP,การชาร์จ AP,AP Recharging,,AP充电,AP充電,AP Recharging,AP sạc lại UI_PROSPERITY_DEGREE_DESCRIPTION,The world gradually stabilizes and prospers thanks to the cats' remarkable deeds. Action Power can be refilled when the Prosperity Meter is full. (Recharge AP and obtain Adventurer's Rune Stone),고양이들의 활약으로 신계는 점차 안정되고 번영합니다. 번영도가 꽉 차면 여신의 가호를 갱신할 수 있습니다. (AP 충전 및 모험가의 룬 스톤 획득),O mundo gradualmente se estabiliza e prospera graças às ações notáveis dos gatos. O poder de ação é recarregado quando o medidor de prosperidade está cheio.(Recarregue AP e obtenha a Pedra Rúnica do Aventureiro),猫たちの活躍で世界は徐々に安定と繁栄を取り戻しています。プロスペリティメーターが満ちると女神の加護を回復できます。(AP 回復して冒険者のルーンを入手),El mundo se estabiliza y progresa gradualmente gracias a las destacadas hazañas de los gatos. Los Puntos de Acción se puede recargar cuando el Baul de Bendiciones está lleno. (Recarga Puntos de Acción y obtén la Piedra Rúnica del Aventurero),โลกค่อยๆมีเสถียรภาพและเติบโตขึ้นด้วยการกระทำที่น่าทึ่งของแมว Action Power จะเพิ่มเมื่อความเจริญรุ่งเรืองมิเตอร์เต็ม (เติม AP และรับหินรูนของนักผจญภัย 10 ก้อน),Dunia berangsur-angsur menjadi stabil dan berkembang berkat perbuatan Kucing yang luar biasa. Action Power dapat diisi ulang saat Prosperity Meter penuh. (Isi ulang AP dan dapatkan batu Rune Petualang),,由于猫的非凡事迹,世界逐渐稳定和繁荣。 当繁荣度计满时可以补充行动力。(充值AP并获得冒险家的符文石),由於貓的非凡事蹟,世界逐漸穩定和繁榮。活力條滿時可補充行動點。(充值AP並獲得冒險者符文石),Pa konti konting ring nagiging matatag at maunlad ang mundo dahil sa mga kamangha manghang gawain ng mga pusa. Ang Aksyon lakas ay napupuno pag ang metro ng kasaganaan ay puno. (Magrecharge ng AP at makakuha ng Hiyas ng Manlalakbay),Thế giới dần dần ổn định và trở nên phồn vinh nhờ những chiến tích anh hùng của mèo. AP có thể được nạp lại khi Thanh Danh vọng được sạc đầy. (Sạc lại AP và nhận Đá Cổ ngữ của nhà thám hiểm) UI_MASTER_VOLUME,Master Volume,전체 음량,Volume Master,マスターボリューム,Volumen Principal,ระดับเสียงหลัก,Volume Utama,,主音量,主音量,Pangkalahatang Tunog,Âm lượng tổng UI_MUSIC_VOLUME,Music Volume,배경음 음량,Volume da Música,BGMボリューム,Volumen de la Música,ระดับเสียงเพลง,Volume Music,,音乐音量,音樂音量,Musikang Tunog,Âm lượng nhạc diff --git a/nekoyume/Assets/StreamingAssets/Localization/item_description.csv b/nekoyume/Assets/StreamingAssets/Localization/item_description.csv index 263a544ef0f..50e0e6a596c 100644 --- a/nekoyume/Assets/StreamingAssets/Localization/item_description.csv +++ b/nekoyume/Assets/StreamingAssets/Localization/item_description.csv @@ -754,7 +754,7 @@ ITEM_DESCRIPTION_800109,This ingredient is Fluffy Marshmallow that can be obtain ITEM_DESCRIPTION_10001,This is a material used to craft runes and level up. It can be obtained as a World Boss [Fenrir of the Abyss] reward.,룬 제작과 레벨 업에 사용되는 재료입니다. 월드 보스 [심연의 펜리르] 보상으로 획득할 수 있습니다.,Este é um material usado para criar runas e subir de nível. Pode ser obtido como um chefe do mundo [Fenrir da Abyss].,これは、ルーンを作成してレベルアップするために使用される素材です。それは世界のボス[深淵のフェンリル]報酬として得ることができます。,Este es un material utilizado para crear runas y subirlas de nivel. Se pueden obtener como una recompensa del Jefe Mundial [Fenrir of the Abyss],นี่คือวัสดุที่ใช้ในการสร้างรูนและเลเวลอัพ มันสามารถรับได้ในฐานะเจ้านายของโลก [Fenrir of the Abyss] รางวัล,Ini adalah bahan yang digunakan untuk membuat rune dan naik level. Ini dapat diperoleh sebagai bos dunia [fenrir dari jurang] hadiah.,"Это материал, используемый для создания рун и повышения уровня. Это может быть получено как вознаграждение мира [Фенрир Бездны].",这是一种用于制作符文和升级的材料。它可以作为世界老板(深渊的芬里尔)奖励获得。,這是一種用於製作符文和升級的材料。它可以作為世界Boss(深淵芬里爾)獎勵獲得。,Ito ay isang materyal na ginagamit sa paggawa ng mga hiyas at pang taas ng antas. Maaari itong makuha bilang gantimpala ng Pangkalahatang Pinuno [Fenrir ng Abyss].,Đây là một vật liệu được sử dụng để chế tạo rune và tăng cấp. Nó có thể được lấy như một phần thưởng của một ông chủ thế giới [Fenrir of the Abyss]. ITEM_DESCRIPTION_10002,This is a material used to craft runes and level up. It can be obtained as a World Boss [Fenrir of the Abyss] reward.,룬 제작과 레벨 업에 사용되는 재료입니다. 월드 보스 [심연의 펜리르] 보상으로 획득할 수 있습니다.,Este é um material usado para criar runas e subir de nível. Pode ser obtido como um chefe do mundo [Fenrir da Abyss].,これは、ルーンを作成してレベルアップするために使用される素材です。それは世界のボス[深淵のフェンリル]報酬として得ることができます。,Este es un material utilizado para crear runas y subirlas de nivel. Se pueden obtener como una recompensa del Jefe Mundial [Fenrir of the Abyss],นี่คือวัสดุที่ใช้ในการสร้างรูนและเลเวลอัพ มันสามารถรับได้ในฐานะเจ้านายของโลก [Fenrir of the Abyss] รางวัล,Ini adalah bahan yang digunakan untuk membuat rune dan naik level. Ini dapat diperoleh sebagai bos dunia [fenrir dari jurang] hadiah.,"Это материал, используемый для создания рун и повышения уровня. Это может быть получено как вознаграждение мира [Фенрир Бездны].",这是一种用于制作符文和升级的材料。它可以作为世界老板(深渊的芬里尔)奖励获得。,這是一種用於製作符文和升級的材料。它可以作為世界Boss(深淵芬里爾)獎勵獲得。,Ito ay isang materyal na ginagamit sa paggawa ng mga hiyas at pang taas ng antas. Maaari itong makuha bilang gantimpala ng Pangkalahatang Pinuno [Fenrir ng Abyss].,Đây là một vật liệu được sử dụng để chế tạo rune và tăng cấp. Nó có thể được lấy như một phần thưởng của một ông chủ thế giới [Fenrir of the Abyss]. ITEM_DESCRIPTION_10003,This is a material used to craft runes and level up. It can be obtained as a World Boss [Fenrir of the Abyss] reward.,룬 제작과 레벨 업에 사용되는 재료입니다. 월드 보스 [심연의 펜리르] 보상으로 획득할 수 있습니다.,Este é um material usado para criar runas e subir de nível. Pode ser obtido como um chefe do mundo [Fenrir da Abyss].,これは、ルーンを作成してレベルアップするために使用される素材です。それは世界のボス[深淵のフェンリル]報酬として得ることができます。,Este es un material utilizado para crear runas y subirlas de nivel. Se pueden obtener como una recompensa del Jefe Mundial [Fenrir of the Abyss],นี่คือวัสดุที่ใช้ในการสร้างรูนและเลเวลอัพ มันสามารถรับได้ในฐานะเจ้านายของโลก [Fenrir of the Abyss] รางวัล,Ini adalah bahan yang digunakan untuk membuat rune dan naik level. Ini dapat diperoleh sebagai bos dunia [fenrir dari jurang] hadiah.,"Это материал, используемый для создания рун и повышения уровня. Это может быть получено как вознаграждение мира [Фенрир Бездны].",这是一种用于制作符文和升级的材料。它可以作为世界老板(深渊的芬里尔)奖励获得。,這是一種用於製作符文和升級的材料。它可以作為世界Boss(深淵芬里爾)獎勵獲得。,Ito ay isang materyal na ginagamit sa paggawa ng mga hiyas at pang taas ng antas. Maaari itong makuha bilang gantimpala ng Pangkalahatang Pinuno [Fenrir ng Abyss].,Đây là một vật liệu được sử dụng để chế tạo rune và tăng cấp. Nó có thể được lấy như một phần thưởng của một ông chủ thế giới [Fenrir of the Abyss]. -ITEM_DESCRIPTION_30001,This is a material used to craft runes and level up. It can be obtained as a prosperity reward.,룬 제작과 레벨 업에 사용되는 재료입니다. 번영도 보상으로 획득할 수 있습니다.,Este é um material usado para criar runas e subir de nível. Pode ser obtido como uma recompensa da prosperidade.,これは、ルーンを作成してレベルアップするために使用される素材です。繁栄の報酬として得ることができます。,Este es un material utilizado para crear runas y subir de nivel. Se puede obtener como recompensa del baúl de bendiciones.,นี่คือวัสดุที่ใช้ในการสร้างรูนและเลเวลอัพ สามารถรับได้เป็นรางวัลความเจริญรุ่งเรือง,Ini adalah bahan yang digunakan untuk membuat rune dan naik level. Ini dapat diperoleh sebagai hadiah kemakmuran.,"Это материал, используемый для создания рун и повышения уровня. Это может быть получено как награда за процветание.",这是一种用于制作符文和升级的材料。它可以作为繁荣奖励获得。,這是一種用於製作符文和升級的材料。它可以作為繁榮獎勵獲得。,Ito ay isang materyal na ginagamit sa paggawa ng mga hiyas at pang taas ng antas. Maaari itong makuha bilang gantimpala ng kaunlaran.,Đây là một vật liệu được sử dụng để chế tạo rune và tăng cấp. Nó có thể được lấy như một phần thưởng thịnh vượng. +ITEM_DESCRIPTION_30001,This is a material used to craft runes and level up.,룬 제작과 레벨 업에 사용되는 재료입니다.,Este é um material usado para criar runas e subir de nível.,これは、ルーンを作成してレベルアップするために使用される素材です。,Este es un material utilizado para crear runas y subir de nivel. ,นี่คือวัสดุที่ใช้ในการสร้างรูนและเลเวลอัพ,Ini adalah bahan yang digunakan untuk membuat rune dan naik level.,"Это материал, используемый для создания рун и повышения уровня.",这是一种用于制作符文和升级的材料。,這是一種用於製作符文和升級的材料。,Ito ay isang materyal na ginagamit sa paggawa ng mga hiyas at pang taas ng antas. ,Đây là một vật liệu được sử dụng để chế tạo rune và tăng cấp. ITEM_DESCRIPTION_20001,This is a material used to craft runes and level up. It can be obtained as a monster collection reward.,룬 제작과 레벨 업에 사용되는 재료입니다. 몬스터 콜렉션 보상으로 획득할 수 있습니다.,Este é um material usado para criar runas e subir de nível. Pode ser obtido como uma recompensa de coleção de monstros.,これは、ルーンを作成してレベルアップするために使用される素材です。モンスターコレクションの報酬として入手できます。,Este es un material utilizado para crear runas y subirlas de nivel. Se puede obtener como una recompensa de la colección de monstruos.,นี่คือวัสดุที่ใช้ในการสร้างรูนและเลเวลอัพ สามารถรับได้เป็นรางวัลคอลเลกชันมอนสเตอร์,Ini adalah bahan yang digunakan untuk membuat rune dan naik level. Ini dapat diperoleh sebagai hadiah koleksi monster.,"Это материал, используемый для создания рун и повышения уровня. Это может быть получено в виде награды за коллекцию монстров.",这是一种用于制作符文和升级的材料。它可以作为怪物收集奖励获得。,這是一種用於製作符文和升級的材料。它可以作為怪物收集獎勵獲得。,Ito ay isang materyal na ginagamit sa paggawa ng mga hiyas at pang taas ng antas. Maaari itong makuha bilang reward sa koleksyon ng halimaw.,Đây là một vật liệu được sử dụng để chế tạo rune và tăng cấp. Nó có thể được lấy như một phần thưởng bộ sưu tập quái vật. ITEM_DESCRIPTION_9999996,"Action Power (AP) is vital for in-game actions like battles and crafting. It recharges regularly and can be instantly replenished using AP potions. From 5c07044c4a2b03257535fe991d43e242e1233933 Mon Sep 17 00:00:00 2001 From: yujeong Date: Wed, 22 Nov 2023 16:46:17 +0900 Subject: [PATCH 07/22] remove mimir dialog --- .../StreamingAssets/Localization/dialog.csv | 367 ++++++++---------- 1 file changed, 167 insertions(+), 200 deletions(-) diff --git a/nekoyume/Assets/StreamingAssets/Localization/dialog.csv b/nekoyume/Assets/StreamingAssets/Localization/dialog.csv index f90cfa52730..d06d23cc7be 100644 --- a/nekoyume/Assets/StreamingAssets/Localization/dialog.csv +++ b/nekoyume/Assets/StreamingAssets/Localization/dialog.csv @@ -1,4 +1,4 @@ -Key,English,Korean,Portuguese,Japanese,Spanish,Thai,Indonesian,Russian,ChineseSimplified,ChineseTraditional,Tagalog,Vietnam +Key,English,Korean,Portuguese,Japanese,Spanish,Thai,Indonesian,Russian,ChineseSimplified,ChineseTraditional,Tagalog,Vietnam DIALOG_0_1_0,[npc:11]You dare to attempt to block my way? How can you stop me? Are you nothing but a slave to Odin's will? This is a matter between my father and my brothers. Step aside now and I will spare your meager life!,"[npc:11]아직까지도 나를 가로막으려 하는 것인가.. 고작 오딘의 하수인일 뿐인 네가 무슨 수로 나를 막겠다는 것이냐 이것은 아버지와 우리 형제 사이의 일. 지금 물러선다면 목숨만은 살려주겠다","[npc:11]Você ainda está tentando me bloquear ..? @@ -10,7 +10,7 @@ Bagaimana kamu bisa menghentikanku, padahal kamu tidak lebih dari seorang pelaya Ini antara ayahku dan kakakku. Jika kamu mundur sekarang, aku akan menyelamatkan hidupmu.","[npc:11]Все еще пытаешься преградить мне путь..? Как ты меня остановишь, если ты всего лишь слуга Одина? Это дело между моим отцом и моими братьями. Отойди в сторону сейчас же и я пощажу тебя.","[npc:11]您还在尝试阻止我吗?你只不过是奥丁的仆人时,你怎么能阻止我 这是我父亲和我兄弟之间的事情。如果您现在不离开,我将要你的命。",[NPC:11]你敢試圖阻止我?你怎能阻止我?你只不過是奧丁意志的奴隸而已?這是我與我父親和兄弟們的事情。現在讓開,我會饒你一命。,[npc:11]Ang lakas ng loob mong harangan ang aking daan? Paano mo ako mapipigilan? Ikaw ay isang hamak na alipin lamang dahil sa kalooban ni Odin? Ito ay isang bagay sa pagitan ng aking ama at mga kapatid. Tumabi ka at pahihintulutan kong mabuhay ang iyong kakarampot na buhay,"[npc:11] Sao nguơi dám chặn đường của ta? Chỉ là một nô lệ nhỏ bé của Odin mà cũng dám đứng lên ngăn cản ta? -Đây là vấn đề giữa cha và anh em chúng ta. Tránh sang một bên ngay và ta sẽ tha mạng cho kẻ hèn kém như ngươi!" +Đây là vấn đề giữa cha và anh em chúng ta. Tránh sang một bên ngay và ta sẽ tha mạng cho kẻ hèn kém như ngươi!" DIALOG_0_1_1,"[npc:07]Please, you must do as Odin wills. It is the only way for you, for all of us, to survive.","[npc:07]이제 그만 오딘의 뜻을 따르세요 그것만이 당신,그리고 우리 모두가 살 길입니다","[npc:07]Por favor, agora siga a vontade de Odin. Essa é a única maneira de você e todos nós vivermos.","[npc:07]もうオーディンの意志に従って下さい。 @@ -18,7 +18,7 @@ Essa é a única maneira de você e todos nós vivermos.","[npc:07]もうオー Itulah satu-satunya cara bagi kamu dan kita semua untuk hidup.","[npc:07]Прошу тебя, следуй желаниям Одина. Это единственный способ для тебя, да и для всех нас, чтобы выжить.","[npc:07]请,现在就按照奥丁的遗嘱。 那是您和我们所有人活命的唯一途径。",[NPC:07]請,你必須按照奧丁的意願行事。這是你,我們所有人,生存的唯一方式。,"[npc:07]Pakiusap, kailangan mong sundin ang nais ni Odin. Ito ang tanging paraan para sa iyo, at para sa ating lahat, na mabuhay.","[npc:07] Làm ơn, hãy tuân theo mong muốn của Odin. -Đó là cách duy nhất cho ngươi, cho tất cả chúng ta, có thể sống sót." +Đó là cách duy nhất cho ngươi, cho tất cả chúng ta, có thể sống sót." DIALOG_0_1_2,[npc:11]Do not speak that name in my presence ever again! My brothers and I will no longer remain silent! We will MAKE our voices heard!,"[npc:11]... 그 이름을 더 이상 내 앞에서 거론하지 마라. 나와 내 형제들은 더 이상 가만히 있지 않을 것이다!!","[npc:11].. não mencione mais o nome na minha frente. Não vamos mais ficar parados !!","[npc:11]..それ以上その名を口に出すな。 @@ -27,7 +27,7 @@ Kami tidak akan diam lebih lama lagi !!","[npc:11].. Больше не прои Мои братья и я не станем более сохранять спокойствие!!","[npc:11]..不要在我面前再提那个名字。 我们再也待不下去了!",[NPC:11]不要再在我面前提那個名字!我和我的兄弟們不再保持沉默!我們要讓我們的聲音被聽到。,[npc:11]Huwag na huwag mo nang banggitin muli ang pangalang iyan sa harapan ko! Hindi na kami mananahimik ng mga kapatid ko! Ipapadinig namin ang aming mga boses.,"[npc:11] Đừng bao giờ nhắc đến cái tên đó trước mặt ta thêm một lần nào nữa! Anh em chúng ta sẽ không im lặng nữa! -Chúng ta sẽ cất cao tiếng nói của mình!" +Chúng ta sẽ cất cao tiếng nói của mình!" DIALOG_0_1_3,"[npc:07]If it must come to that and blood must be spilled...this too shall be a part of your destiny... Cat warrior, win this war and I will return you to Midgard, I swear to you in the name of Odin, King of the Gods!","[npc:07]그렇다면 어쩔 수 없군요. 어쩔 수 없이 피를 봐야 한다면, 그 역시 당신의 운명... 고양이 전사,이 싸움을 해내면 당신은 미드가르드로 돌아갈 수 있어요. 제가 신들의 왕 오딘의 이름을 걸고 약속드립니다.","[npc:07]Então não posso evitar. Se você quer fazer o sangue de Odin ferver .. É apenas o seu destino ... @@ -40,7 +40,7 @@ aku bersumpah padamu atas nama Odin, Raja para Dewa!","[npc:07]Пуст Воин Кот, победи в этой войне и я отправлю тебя назад в Мидгард. Это я обещаю тебе во имя Одина, короля Богов.","[npc:07]那我无能为力了。如果您想让奥丁的血沸腾。 这只是您的命运... 猫战士,如果您打败这场战斗,您可以回到米德加德。我向您保证,以奥丁的名义",[npc:07]如果必須這樣,血必須流淌...這也是你命運的一部分...貓戰士,贏得這場戰爭,我會把你送回中土世界。我向你發誓,以神王奧丁的名義。,"[npc:07]Kung ito man ay hahantong sa pagdanak ang dugo.. ito rin ay magiging bahagi ng iyong kapalaran... Pusang mandirigma, ipanalo mo ang digmaang ito at ibabalik kita sa Midgard. Ito'y pangako ko sa iyo, sa pangalan ni Odin, Hari ng mga Diyos.","[npc:07] Nếu đã đến nước này, đổ máu chính là số phận của ngươi Miêu chiến binh, hãy chiến thắng và ta sẽ đưa ngươi trở lại Midgard. -Nhân danh Odin, vua của các thần, ta thề với ngươi. " +Nhân danh Odin, vua của các thần, ta thề với ngươi. " DIALOG_0_1_4,"[npc:11]Clumsy little kitten, you have the gall to stand in my path? I will crush your bones to a powder so fine you will never be reborn. Prepare for your doom!","[npc:11]어설픈 애송이가 감히 내 앞을 가로막을 수 있을 것 같으냐.. 먼지로도 환생할 수 없도록,뼈까지 산산히 부수어서 가루로 만들어주겠다. 각오는 되어 있겠지?!","[npc:11]Como ousa um garotinho desajeitado se posicionar na minha frente? @@ -53,7 +53,7 @@ Aku akan menghancurkan tulangmu hingga menjadi bubuk dan kamu tidak akan pernah Ты приготовился к своей кончине?","[npc:11]你一个笨拙的小男孩怎么敢挡在我面前? 我会打断你的骨头,使你永远站不起来。你准备好了吗?",[NPC:11]笨拙的小貓,你竟然敢擋在我的路上?我會把你的骨頭粉碎,讓你永遠無法重生。準備迎接你的末日!,"[npc:11]Malamyang maliit na kuting, ang lakas ng loob mong harangan ang daraanan ko? Dudurugin ko ang iyong mga buto hanggang sa maging pulbos ang mga ito na sa sobrang pino ay hindi kana magagawang buhayin pa. Humanda ka sa iyong katapusan!","[npc:11] Mèo con vụng về, ngươi có gan cản đường ta sao? Ta sẽ nghiền nát xương của ngươi thành bột để ngươi không bao giờ được tái sinh. -Chuẩn bị đón nhận số phận của mình đi!" +Chuẩn bị đón nhận số phận của mình đi!" DIALOG_0_2_0,"[npc:11]Interesting... The puny kitten has indeed made it this far. You possess a fierce drive to have come all this way. Alas, my will has endured centuries of darkness beyond your understanding. Now... Be gone!","[npc:11]재미있군. 한낱 미물이 여기까지 버틴 것을 보니.. 네 강렬한 염원이 너를 여기까지 오게 한 것 같구나. 하지만 몇백 년을 숨죽여 지낸 나의 염원 또한 너의 그것을 아득히 뛰어 넘는다. @@ -70,29 +70,29 @@ Sayangnya, keinginanku telah bertahan dalam kegelapan selama berabad-abad di lua А теперь, поди прочь!!!!!!!","[npc:11]这很有趣...看到一个孩子忍受了这么长时间……您的强烈愿望似乎已经带给您了。 但是百年来与我呼吸与共的强烈愿望远远超出了您的。现在,滚出我的视线!!!!!!!",[NPC:11]有趣...這個弱小的小貓竟然走到這裡。你一定有一種強烈的決心才能走這麼遠。但我的意誌已經經受了數百年的黑暗,超出你的理解。現在....消失吧!!!!!!!,"[npc:11]Kahanga-hanga... Ang napakaliit na kuting ay umabot ng ganito kalayo. Ikaw man ay malakas na determinasyon upang makarating hanggang dito. Ngunit ang aking hangarin ay nagawang lagpasan ang maraming siglo ng kadiliman, na lampas pa sa iyong pang-unawa. Ngayon, katapusan mo na!!!","[npc:11] Thú vị thật ... chú mèo nhỏ bé đã đi được xa đến vậy. Chắc hẳn là ý chí kiên cường đã giúp ngươi tiến xa như thế. -Nhưng than ôi, lý tưởng đã bị vùi lấp trong bóng tối hàng thế kỉ của ta nằm ngoài cả sự nhận thức của ngươi. Giờ thì tránh ra!" +Nhưng than ôi, lý tưởng đã bị vùi lấp trong bóng tối hàng thế kỉ của ta nằm ngoài cả sự nhận thức của ngươi. Giờ thì tránh ra!" DIALOG_1_1_0,"[npc:09]Hello cat! You're new here, aren't you? Boy, it sure is getting crowded in here!","[npc:09]잘 왔어, 너는 또 새로운 녀석이구나옹. 여기도 슬슬 고양이들로 붐비기 시작하는군.","[npc:09]Bem-vindo, gato. Você é nova , não é? Está começando a ficar lotado aqui!","[npc:09]ようこそ。キミは新人さんだね? ここも猫たちで賑わってきたじゃん。","[npc:09] ¡Hola, gato! Eres nuevo aquí, ¿verdad? ¡Vaya! Esto se está volviendo cada vez más poblado.",[npc:09]ยินดีต้อนรับเจ้าแมว คุณมาใหม่ใช่ไหม ที่นี่เริ่มมีคนพลุกพล่าน!,"[npc:09]Hai, Kucing! Kamu baru di sini, bukan? Wah, pasti ramai sekali di sini!","[npc:09]Добро пожаловать, кот. Ты новенький? Тут становится тесновато!","[npc:09]欢迎光临,猫。您是新手,不是吗? -这里马上就会变得人潮涌动!",[NPC:09]你好,貓!你是新來的,對吧?哇!這裡真的越來越擁擠了。,"[npc:09]Kumusta, pusa! Bago ka dito, 'di ba? Grabe! Talagang nagiging siksikan na dito.",[npc:09] Xin chào nhóc mèo! Ngươi là người mới phải không? Chỗ này thật đông đúc quá đi! +这里马上就会变得人潮涌动!",[NPC:09]你好,貓!你是新來的,對吧?哇!這裡真的越來越擁擠了。,"[npc:09]Kumusta, pusa! Bago ka dito, 'di ba? Grabe! Talagang nagiging siksikan na dito.",[npc:09] Xin chào nhóc mèo! Ngươi là người mới phải không? Chỗ này thật đông đúc quá đi! DIALOG_1_1_1,Who am?! [shake_vertical:20|1|2]I am a very important cat. I'm the one that can put you in touch with Freya!,"아, 난 누구냐고? .. [shake_vertical:20|1|2]나로 말할 것 같으면. 여신님과 너를 잇는 역할을 하는 아주 중요한 몸이랄까?","Oh, quem sou eu? [shake_vertical:20|1|2] Um gato muito importante que pode conectar você com a Freya ....!","ああ、僕が誰かって?[shake_vertical:20|1|2] 知らないの? 僕と言えば、女神様とキミを繋ぐとっても重要な猫だよ!",¿Quién soy yo? [shake_vertical:20|1|2] ¡Soy un gato muy importante! Soy el único que puede ponerte en contacto con Freya!?,โอ้ฉันเป็นใคร [shake_vertical:20|1|2] แมวตัวสำคัญที่สามารถเชื่อมโยงคุณกับเฟรย่า….!,Siapa aku?! [shake_vertical:20|1|2]Aku adalah Kucing yang sangat penting. Akulah yang bisa menghubungkanmu dengan Freya!,"Хм, кто я? [shake_vertical:20|1|2] Я очень важный Кот, который сведет тебя с Фреей....!","哦,我是谁?[shake_vertical:20|1|2] -一只非常重要的猫,可以让您与弗雷亚取得联系....!",我是誰?!?! [shake_vertical:20|1|2] 我是一個非常重要的貓。我是可以把你帶到弗蕾雅的那一個....?!?!,Sino ako?!?! [shake_vertical:20|1|2]Ako ay isang napakahalagang pusa. Ako ang pwedeng mapag-ugnay saiyo kay Freya....?!?!,Ta là ai ấy hả?! [Shake_vertical: 20 | 1 | 2] Ta là một con mèo rất quan trọng. Ta là người có thể giúp ngươi liên lạc với Freya! +一只非常重要的猫,可以让您与弗雷亚取得联系....!",我是誰?!?! [shake_vertical:20|1|2] 我是一個非常重要的貓。我是可以把你帶到弗蕾雅的那一個....?!?!,Sino ako?!?! [shake_vertical:20|1|2]Ako ay isang napakahalagang pusa. Ako ang pwedeng mapag-ugnay saiyo kay Freya....?!?!,Ta là ai ấy hả?! [Shake_vertical: 20 | 1 | 2] Ta là một con mèo rất quan trọng. Ta là người có thể giúp ngươi liên lạc với Freya! DIALOG_1_1_2,WHAT?! Did you just ask who the Goddess Freya is?? Oh my...,"여신님은 또 누구냐고? 이런이런.. 한꺼번에 다 설명하려면 너무 복잡하다고.","O quê????? Quem é a divindade ?????????? Oh meu Deus...","えっ?? 女神様は誰かって??? うーん、もう…一気に説明しようとするととても複雑だよ。","¿¡QUÉ!? ¿Acabas de preguntar quién es la Diosa Freya? Oh, mi...",อะไรน่ะ????? ใครคือเทพธิดา?????????? โอ้...…,APA?! Apakah kamu baru saja bertanya siapa Dewi Freya?? Astaga...,"Что????? Ты только что спросил кто такая Богиня?????????? О, Боже...","什么?????谁是女神?????????? -哦,我的…",什麼! ?你剛剛問神女弗蕾雅是誰嗎?哦,我的天哪。,ANO!? Tinatanong mo talaga kung sino ang Diyosa si Freya??? Ay naku.,CÁI GÌ?! Ngươi vừa hỏi nữ thần Freya là ai ấy hả?? Ôi trời… +哦,我的…",什麼! ?你剛剛問神女弗蕾雅是誰嗎?哦,我的天哪。,ANO!? Tinatanong mo talaga kung sino ang Diyosa si Freya??? Ay naku.,CÁI GÌ?! Ngươi vừa hỏi nữ thần Freya là ai ấy hả?? Ôi trời… DIALOG_1_1_3,"Let's try to do a few things before we meet the goddess, shall we? Try climbing onto that platform below me.","일단 다른 설명을 듣기 전에 간단한 준비물을 챙겨 몸을 풀고 와볼까? 내 아래쪽에 있는 단상에 올라가면 다른 세계로 이동할 수 있다옹.","Vamos tentar fazer algumas coisas antes de encontrarmos a deusa, não é? Tente subir nessa plataforma abaixo de mim.",他の説明に進む前に簡単に体を動かして見ようか。僕の下にある壇上に登れば他の世界に移動できるよ。,"Intentemos hacer algunas cosas antes de conocer a la diosa, ¿de acuerdo? Intenta subir a esa plataforma debajo de mí.",มาลองทำบางสิ่งก่อนที่เราจะได้พบกับเทพธิดากันไหม? ลองปีนขึ้นไปบนแพลตฟอร์มนั้นด้านล่างฉัน,"Mari kita coba melakukan beberapa hal sebelum kita bertemu sang Dewi, ya? -Cobalah naik ke platform di bawahku.","Давайте попробуем сделать несколько вещей, прежде чем мы встретимся с богиней, не так ли? Попробуйте подняться на эту платформу под мной.",让我们在遇到女神之前尝试做一些事情,好吗?尝试爬上我下面的平台。,讓我們在遇到女神之前嘗試做一些事情,好嗎?嘗試爬上我下面的平台。,"Subukan nating gumawa ng ilang mga bagay bago natin makilala ang diyosa, hindi ba? Subukang umakyat sa platform na iyon sa ibaba ko.",Chúng ta hãy thử một vài thứ trước khi gặp nữ thần nhé? Hãy thử leo lên cái bục bên dưới ta đi. -DIALOG_1_1_4,So let's go to get ready before moving to another world!,자 그럼 다른세계로의 이동 전에 준비물을 챙기러 가자!,"Então, vamos nos preparar antes de se mudar para outro mundo!",それでは、他の世界に移る前に準備をしよう!,¡Así que vamos a prepararnos antes de mudarnos a otro mundo!,งั้นมาเตรียมพร้อมก่อนที่จะย้ายไปอีกโลกหนึ่ง!,Ayo bersiap-siap sebelum pindah ke dunia lain!,"Итак, давайте пойдем, чтобы подготовиться, прежде чем переехать в другой мир!",因此,让我们开始准备,然后再搬到另一个世界!,因此,讓我們開始準備,然後再搬到另一個世界!,Kaya't maghanda tayo bago lumipat sa ibang mundo!,Hãy sẵn sàng để chuyển đến một thế giới khác! +Cobalah naik ke platform di bawahku.","Давайте попробуем сделать несколько вещей, прежде чем мы встретимся с богиней, не так ли? Попробуйте подняться на эту платформу под мной.",让我们在遇到女神之前尝试做一些事情,好吗?尝试爬上我下面的平台。,讓我們在遇到女神之前嘗試做一些事情,好嗎?嘗試爬上我下面的平台。,"Subukan nating gumawa ng ilang mga bagay bago natin makilala ang diyosa, hindi ba? Subukang umakyat sa platform na iyon sa ibaba ko.",Chúng ta hãy thử một vài thứ trước khi gặp nữ thần nhé? Hãy thử leo lên cái bục bên dưới ta đi. +DIALOG_1_1_4,So let's go to get ready before moving to another world!,자 그럼 다른세계로의 이동 전에 준비물을 챙기러 가자!,"Então, vamos nos preparar antes de se mudar para outro mundo!",それでは、他の世界に移る前に準備をしよう!,¡Así que vamos a prepararnos antes de mudarnos a otro mundo!,งั้นมาเตรียมพร้อมก่อนที่จะย้ายไปอีกโลกหนึ่ง!,Ayo bersiap-siap sebelum pindah ke dunia lain!,"Итак, давайте пойдем, чтобы подготовиться, прежде чем переехать в другой мир!",因此,让我们开始准备,然后再搬到另一个世界!,因此,讓我們開始準備,然後再搬到另一個世界!,Kaya't maghanda tayo bago lumipat sa ibang mundo!,Hãy sẵn sàng để chuyển đến một thế giới khác! DIALOG_1_1_5,"The preparations are how to make equipment! Follow me!","준비물은 바로 장비 제작법이야! 나를 따라와!","Os preparativos são como fazer equipamentos! @@ -105,13 +105,13 @@ Ikuti aku!","Подготовка - это как сделать оборудо 跟我来!","準備工作是製造設備的方法! 跟我來!","Ang mga paghahanda ay kung paano gumawa ng kagamitan! Sundan mo ako!","Công tác chuẩn bị chính là học làm trang bị! -Theo ta!" -DIALOG_2_1_0,[npc:09]Whew... Is that all of them?,[npc:09]휴 당장은 좀 사그러든건가...,[npc:09]Ufa ... Isso foi tudo?,[npc:09]ふー...これで終わりなのか…,[npc:09]¡Cuand... ¿Eso es todo de ellos?,[npc:09]เฮ้อ…หมดแล้วเหรอ?,[npc:09]Wah… apakah Itu saja?,[npc:09]Уф... Все закончилось?,[npc:09]哇...这是全部吗?,[NPC:09]呼...那是所有的怪物嗎?,[npc:09]Whew... Iyan na ba silang lahat?,[npc:09] Whew ... Đó là tất cả hả? +Theo ta!" +DIALOG_2_1_0,[npc:09]Whew... Is that all of them?,[npc:09]휴 당장은 좀 사그러든건가...,[npc:09]Ufa ... Isso foi tudo?,[npc:09]ふー...これで終わりなのか…,[npc:09]¡Cuand... ¿Eso es todo de ellos?,[npc:09]เฮ้อ…หมดแล้วเหรอ?,[npc:09]Wah… apakah Itu saja?,[npc:09]Уф... Все закончилось?,[npc:09]哇...这是全部吗?,[NPC:09]呼...那是所有的怪物嗎?,[npc:09]Whew... Iyan na ba silang lahat?,[npc:09] Whew ... Đó là tất cả hả? DIALOG_2_1_1,Those nasty creatures coming from Yggdrasil are called Teratomas. They have started to become quite vicious lately.,"네가 조금 전에 없앤 녀석들은 세계수, 이그드라실에서 떨어져나온 생명체들이야. 악랄한 녀석들이지.","Aqueles saíram de Yggdrasill. Eles são bastante cruéis.",あいつらは世界樹ユグドラシルから離れた生物だよ。悪意のものじゃ。,Esas criaturas desagradables surgieron de Yggdrasil. Son teratomas. Se han vuelto bastante feroces.,พวกมันออกมาจาก Yggdrasil พวกมันค่อนข้างเลวทราม,Makhluk jahat yang berasal dari Yggdrasil disebut Teratoma. Mereka mulai menjadi sangat kejam akhir-akhir ini,"Эти пришли из Иггдрасиля. Они и в самом деле жестокие.",那些是从伊格德拉西尔出来的。它们很恶毒。,這些噁心的生物是從伊格德拉西爾出來的。他們是特拉托瑪。它們已經變得非常兇猛。,Ang mga masasamang nilalang na iyon ay nagmula sa Yggdrasil. Ang mga ito ay teratomas. Sila ay naging napakalupit.,"Các Teratomas là những sinh vật kì lạ sinh ra từ Yggdrasil. -Gần đây chúng bắt đầu trở nên khá xấu xa." +Gần đây chúng bắt đầu trở nên khá xấu xa." DIALOG_2_1_2,We need to do something about them otherwise they'll keep multiplying and take over the world. If that happens I won't have anywhere to nap!,"가만히 놔두면 점점 자라서 온 세계를 헤집어다닐 녀석들이야. 이 녀석들이 너무 창궐해서 도저히 발을 디딜 수가 없을 정도라고.","Se você não fizer algo sobre eles , eles se multiplicarão e dominarão este mundo. @@ -119,15 +119,15 @@ Hoje em dia eu nem consigo encontrar espaço para os meus pés!",放っておく kalau tidak mereka akan terus bertambah banyak dan mengambil alih dunia. Jika itu terjadi aku tidak akan punya tempat untuk tidur siang!","Если ты ничего с ними не сделаешь, их станет больше и они захватят этот мир. А я сейчас так занят в эти дни, что даже нет времени на педикюр!","如果您不对他们采取行动,他们将繁衍并接管这个世界。 将没有我们的立足之地!",如果你不對它們採取行動,它們會不斷繁殖並接管這個世界。我將無處打個盹!,"Kung wala kang gagawin tungkol sa kanila, patuloy silang dadami at sasakupin ang mundong ito. Wala na akong mapupuntahan para umidlip.","Chúng ta cần phải hành động nếu không chúng sẽ tiếp tục nhân lên và chiếm lấy thế giới. -Nếu điều đó xảy ra, ta sẽ mất chỗ ngủ trưa mất!" +Nếu điều đó xảy ra, ta sẽ mất chỗ ngủ trưa mất!" DIALOG_2_1_3,I fear something strange must be making them multiply at an incredible rate. Go deeper into Yggdrasil to see if you can find out more about them!,"아무래도 이런 속도로 늘어나는 것을 보니, 증식을 위한 특별한 방법을 쓰고 있는 것 같아. 좀 더 이그드라실 깊숙히 들어가서 원인을 찾아봐줘!","Acho que estão usando uma forma especial de multiplicar, porque eles estão a aumentar a esta altura. Vá mais fundo na Yggdrasil para descobrir mais sobre eles!",あいつらの増え方を見ると、何か特別な方法で増殖しているようよ。 ユグドラシルの奥へ行って、それを調べてきて欲しい!,Temo que algo extraño esté haciendo que se multipliquen a una velocidad increíble. Adéntrate más en Yggdrasil para ver si puedes descubrir más sobre ellos.,ฉันคิดว่าพวกมันกำลังใช้วิธีบางอย่างในการทวีคูณเพราะมันเพิ่มขึ้นในอัตราที่รวดเร็ว ไปที่ Yggdrasil เพื่อไปสื่บหาเพิ่มเติมเกี่ยวกับพวกมัน!,"Saya khawatir ada sesuatu yang aneh yang membuat mereka berkembang biak dengan kecepatan yang luar biasa. Masuk lebih dalam ke Yggdrasil untuk melihat apakah kamu dapat mengetahui lebih banyak tentang mereka!","Я думаю у них какой-то особенный способ размножаться, потому что их количество очень быстро растет. Иди вглубь Иггдрасиля и узнай больше о них!","我认为它们正在以一种特殊的方式繁殖,因为它们以惊人的速度增长。 深入伊格德拉西尔可以找到更多关于它们的信息!",我擔心有些奇怪的東西使它們以驚人的速度繁殖。深入伊格德拉西爾,看看你能否找出更多關於它們的信息!,Natatakot ako na may kakaibang nagpaparami sa kanila sa hindi kapani-paniwalang dahilan. Puntahan mo pa ang kalooblooban ng Yggrasil at tingnan kung meron ka pang madidiskubre tungkol sa kanila.,"Ta cho rằng có cái gì đó kỳ lạ đã làm cho chúng nhân với tốc độ đáng kinh ngạc. -Tiến sâu hơn vào Yggdrasil để xem ngươi có thể thu thập được thông tin gì không!" -DIALOG_3_1_0,[npc:07](Goddess Freya reappears with a somber expression on her face.),[npc:07](여신 프레이야가 굳은 얼굴로 다시 나타났다.),[npc:07](A Freya deusa reapareceu com um cara duro.),[npc:07](女神フレイヤが固い顔で再度現れた。),[npc:07](La Diosa Freya aparece con una expresión sombría.),[npc:07](เทพธิดาเฟรย่าปรากฏตัวอีกครั้งด้วยใบหน้านิ่งเฉย),[npc:07](Dewi Freya muncul kembali dengan ekspresi muram di wajahnya.),[npc:07](Богиня Фрея появилась вновь с напряженным лицом.),[npc:07](女神芙蕾雅重新出现,神情呆滞。),[NPC:07](女神弗蕾雅帶著嚴肅的表情再次出現。),[npc:07](Muling lumitaw ang Diyosa na si Freya na may napakalungkot na ekspresyon sa kanyang mukha.),[npc:07] (Nữ thần Freya xuất hiện trở lại với khuôn mặt ảm đạm.) +Tiến sâu hơn vào Yggdrasil để xem ngươi có thể thu thập được thông tin gì không!" +DIALOG_3_1_0,[npc:07](Goddess Freya reappears with a somber expression on her face.),[npc:07](여신 프레이야가 굳은 얼굴로 다시 나타났다.),[npc:07](A Freya deusa reapareceu com um cara duro.),[npc:07](女神フレイヤが固い顔で再度現れた。),[npc:07](La Diosa Freya aparece con una expresión sombría.),[npc:07](เทพธิดาเฟรย่าปรากฏตัวอีกครั้งด้วยใบหน้านิ่งเฉย),[npc:07](Dewi Freya muncul kembali dengan ekspresi muram di wajahnya.),[npc:07](Богиня Фрея появилась вновь с напряженным лицом.),[npc:07](女神芙蕾雅重新出现,神情呆滞。),[NPC:07](女神弗蕾雅帶著嚴肅的表情再次出現。),[npc:07](Muling lumitaw ang Diyosa na si Freya na may napakalungkot na ekspresyon sa kanyang mukha.),[npc:07] (Nữ thần Freya xuất hiện trở lại với khuôn mặt ảm đạm.) DIALOG_3_1_1,"I congratulate you on arriving in this world, poor cat of Midgard, whose life has ended too soon.","무사히 이 세계에 안착한 것을 축하합니다. 당신은 인간의 세계, 미드가르드의 고양이였던 존재. 짧은 생을 살고 부유하는 혼이 되어있던 것을 제가 이리로 데려왔습니다.","Quero parabenizá-lo por ter chegado a este mundo. @@ -137,13 +137,13 @@ Você teve uma vida muito curta.","あなたが無事この世界に来たこと Kucing Midgard yang malang, yang hidupnya telah berakhir terlalu cepat.","Я поздравляю Вас с прибытием в этот мир. Вы - кот из Мидгарда. Ваша жизнь была слишком коротка. Я перенесла Вашу мимолетную душу сюда.","我祝贺你来到这个世界。你是米德加德的猫。 -您的生命实在太短暂了。",我祝賀你來到這個世界。你,這個中土世界的可憐貓,生命過早結束。我已經將你短暫的靈魂帶到這裡。,"Binabati kita sa pagdating mo sa mundong ito. Ikaw na kaawa-awang pusa ng Midgard, kung saan ang buhay ay maagang matatapos. Dinala ko ang iyong kaluluwa rito.","Chào mừng ngươi đã đến thế giới này, con mèo tội nghiệp của Midgard, ngươi đã mất mạng quá sớm" +您的生命实在太短暂了。",我祝賀你來到這個世界。你,這個中土世界的可憐貓,生命過早結束。我已經將你短暫的靈魂帶到這裡。,"Binabati kita sa pagdating mo sa mundong ito. Ikaw na kaawa-awang pusa ng Midgard, kung saan ang buhay ay maagang matatapos. Dinala ko ang iyong kaluluwa rito.","Chào mừng ngươi đã đến thế giới này, con mèo tội nghiệp của Midgard, ngươi đã mất mạng quá sớm" DIALOG_3_1_2,"Your memories of your last life have nearly faded, haven't they? But don't worry, there is a way to restore them.","이미 예전의 기억은 거의 소실되어서 본디 당신이 어디에 있던 누구였는지는 희미할 테지요.","Suas memórias do passado quase desapareceram, mas há uma maneira de salvá-las.",あなたの過去の記憶はほとんど失われ、自分がどこの誰だったのかも微かでしょう。,"Tus recuerdos de tu vida pasada casi se han desvanecido, ¿verdad? Pero no te preocupes, hay una forma de restaurarlos.",ความทรงจำในอดีตของคุณแทบจะเลือนหายไป แต่มันมีวิธีที่จะรักษามันไว้,"Ingatanmu tentang kehidupan terakhirmu hampir memudar, bukan? Tapi jangan khawatir, ada cara untuk memulihkannya.","Ваши воспоминания о прошлых днях исчезли, но есть способ их восстановить.",您对过去的记忆几乎消失了,但是有一种方法可以恢复它们。,你對上一生的記憶幾乎已經消失,對吧?但不要擔心,有方法可以恢復它們。,"Ang iyong mga alaala mula sa iyong nakaraang buhay ay halos nawawala na, hindi ba? Ngunit huwag kang mag-alala, may paraan upang ibalik ang mga ito.","Ký ức của ngươi về kiếp sống trước đã gần như mờ dần, đúng không? -Nhưng đừng lo lắng, có một cách để khôi phục chúng." +Nhưng đừng lo lắng, có một cách để khôi phục chúng." DIALOG_3_1_3,"This realm is in danger. Yggdrasil, the gigantic tree that supports and connects the Nine Worlds, is spawning strange creatures throughout the land.","이곳은 위험에 빠져있습니다. 아홉개의 세계를 지탱하는 거목, 이그드라실이 전 세계에 이상한 생명체를 만들어내고 있어요.","Aqui está em perigo. @@ -154,14 +154,14 @@ Yggdrasil, pohon raksasa yang menopang dan menghubungkan Sembilan Dunia, melahir Иггдрасиль, исполинское дерево, опора Девяти Миров, создает странных существ по всему миру.","这个地方处于危险之中。 支持九大世界的巨大树伊格德拉西尔正在这些世界创造奇怪的生物。",這個領域正在遭受威脅。伊格德拉西爾,那棵支撐並連接九個世界的巨大樹木,正在全世界產生奇怪的生物。,"Ang kaharian ay nasa panganib. Ang Yggdrasil, ang malaking puno na sumusuporta at nag-uugnay sa Siyam na Mundo, ay nagluluwal ng mga kakaibang nilalang sa buong mga mundo.","Vương quốc này đang gặp nguy hiểm. -Yggdrasil, Cây khổng lồ hỗ trợ và kết nối chín thế giới, đang sinh ra những sinh vật kỳ lạ trên khắp vùng đất này." +Yggdrasil, Cây khổng lồ hỗ trợ và kết nối chín thế giới, đang sinh ra những sinh vật kỳ lạ trên khắp vùng đất này." DIALOG_3_1_4,The Gods are preoccupied with fighting amongst themselves. None have come to help defeat these monsters. I... No. We need your help.,"다른 신들은 서로 싸우느라 정신이 없어, 이 혼란을 수습할 겨를이 없습니다. 당신의 도움이 필요해요.","Os deuses estão brigando entre si e não conseguem derrotar essas criaturas. Preciso de sua ajuda.",神々は互いに争うに夢中で、この生物らを倒して混乱を収める余裕がありません。 あなたの助けが必要なのです。,"Los dioses están ocupados peleando entre ellos y ninguno viene a ayudar a derrotar a estas criaturas. Yo... nosotros, necesitamos tu ayuda.",เทพเจ้ากำลังต่อสู้กันเองและไม่สามารถเอาชนะสิ่งมีชีวิตเหล่านี้ได้ ฉันต้องการความช่วยเหลือจากคุณ.,"Para Dewa sibuk bertarung di antara mereka sendiri. Tidak ada yang datang untuk membantu mengalahkan monster-monster ini. Aku... Tidak. Kami butuh bantuanmu.","Боги дерутся друг против друга и не в состоянии одолеть этих существ. Мне нужна твоя помощь.","众神在相互战斗,也无法击败这些生物。 我需要您的帮助。",諸神正忙於自相爭鬥,沒有人來幫助打敗這些怪物。我...我們,需要你的幫助。,"Ang mga diyos ay abala sa pagtatalo sa isa't isa, at walang sinumang pumaparito upang tulungan tayo sa paglaban sa mga halimaw na ito. Ako... kami, kailangan namin ng tulong mo","Các vị thần đang chìm đắm vào cuộc nội chiến. Chẳng có ai đến để giúp đánh bại những con quái vật này. -Ta ... Không. Chúng ta cần sự giúp đỡ của ngươi." +Ta ... Không. Chúng ta cần sự giúp đỡ của ngươi." DIALOG_3_1_5,"You are only able to keep this form through my power. If you can help me save this world, I will have the strength to return you to Midgard.",".... 당신은 지금 저의 힘으로 겨우 형체를 유지하고 있습니다. 당신이 이 세계를 구하는 데 도움을 준다면, 당신에게 새 생명을 주어 미드가르드로 내려보내 드리겠습니다.","Se você puder ajudar a salvar este mundo, @@ -171,14 +171,14 @@ Jika kamu bisa membantuku menyelamatkan dunia ini, aku akan memiliki kekuatan un Если ты поможешь сохранить этот мир, Я дам тебе новую жизнь и отправлю назад в Мидгард.","如果您可以拯救这个世界, 我会给您新的生活,并将您送往米德加德。",您你只能通過我的力量保持這個形態。如果你能幫助拯救這個世界,我將有力量將你送回中土世界。,"Ikaw ay nakapapanatili sa anyong ito sa pamamagitan ng aking kapangyarihan. Kung ikaw matutulungan mong iligtas ang mundo na ito, magkakaroon ako ng lakas upang ibalik ka sa Midgard.","Ngươi chỉ có thể giữ hình dạng này thông qua sức mạnh của ta. -Nếu ngươi có thể giúp ta cứu thế giới này, ta sẽ có sức mạnh để đưa ngươi trở lại Midgard." +Nếu ngươi có thể giúp ta cứu thế giới này, ta sẽ có sức mạnh để đưa ngươi trở lại Midgard." DIALOG_3_1_6,If you... if we... do not succeed. You will be trapped in eternal darkness with me forever... powerless.,"하지만 저를 도와주시지 않는다면.. 당신은 이미 살아있지 않은 몸. 영원한 어둠 속에 갇힐테지요.","Mas se você não me ajudar ... Você ficará preso comigo na escuridão eterna.","しかし、私の頼みを聞いて入れないならば...あなたはもう生きてない者。 永遠の闇に捕らわれるのしょう。","Si... no logramos tener éxito, quedarás atrapado aquí conmigo. Sin poder en la eterna oscuridad.",แต่ถ้าคุณไม่ช่วยฉัน ... คุณจะติดอยู่กับฉันในความมืดชั่วนิรันดร์,Tapi kalau kamu... kalau kita... tidak berhasil. Kamu akan terjebak dalam kegelapan abadi bersamaku selamanya... tak berdaya.,"Но если ты мне не поможешь... То останешься навеки заключен вместе со мной в вечной темноте.","但是,如果您不帮我…… 您将被困在永恒的黑暗中。",如果你....我們沒有成功。你將和我一起被困在這裡。在永恆的黑暗中無力掙扎。,"Kung ikaw.... hindi tayo magtagumpay, ikaw ay mabibihag dito kasama ko. Walang lakas laban sa walang hanggang kadiliman.","Nếu ngươi ... nếu chúng ta ... không thành công. -Ngươi sẽ bị mắc kẹt trong bóng tối vĩnh cửu với ta mãi mãi ... bất lực." +Ngươi sẽ bị mắc kẹt trong bóng tối vĩnh cửu với ta mãi mãi ... bất lực." DIALOG_5_1_0,"[npc:09]That was a weird creature. I knew Yggdrasil could create such creatures, but I would have never expected them to grow on their own.","[npc:09]정말 괴상하게 생긴 녀석이었어… 세계수 이그드라실이 이상한 생명체를 만들어 낸다는 것 까지는 생각했지만, 이 녀석들이 스스로 증식을 하게 될 줄은 몰랐어.","[npc:09]Era uma criatura realmente estranha… @@ -190,7 +190,7 @@ Aku tahu Yggdrasil bisa menciptakan makhluk seperti itu, tapi aku tidak pernah m Я знал, что Иггдрасиль может порождать их. Но я никогда не ожидал, что они могут возникать сами по себе.","[npc:09]这真是个奇怪的生物……我从没想过伊格德拉西尔会创造出这种奇怪的生物。 我没想到这些家伙会自己成长。",[NPC:09]那是一個奇怪的生物。我知道伊格德拉西爾有能力創造出這樣的奇怪生物,但我從不期待它們能自己生長。,"[npc:09]Talagang kakaiba ang nilalang na iyon. Alam kong may kakayahan ang Yggdrasil na lumikha ng ganitong kakaibang nilalang, ngunit hindi ko inaasahang sila ay magiging ganap na malaya at lumaki ng sarili lang nila.","[npc:09] Đó là một sinh vật kỳ lạ. -Ta biết Yggdrasil có thể tạo ra những sinh vật như vậy, nhưng ta không bao giờ nghĩ chúng có thể tự phát triển được." +Ta biết Yggdrasil có thể tạo ra những sinh vật như vậy, nhưng ta không bao giờ nghĩ chúng có thể tự phát triển được." DIALOG_5_1_1,"Did you see the creature with flowers on its head? If they blossom, it means they can reproduce on their own! If they continue like this, the whole world will be covered with the creatures created by Yggdrasil.","아까 머리에 꽃이 달린 녀석 봤어? 꽃을 피울 수 있다는 건 스스로 번식을 할 수 있다는 거야. 이대로 가다가는 온 세계가 이그드라실이 만들어낸 저 괴물들로 뒤덮여 버리고 말거야.","Você viu aquela criatura com flores na cabeça? @@ -206,7 +206,7 @@ dengan makhluk yang diciptakan Yggdrasil.","Ты видел существ с ц Если так будет продолжаться и дальше, весь мир будет заселен существами, созданными Иггдрасилем.","你看到那个生物了吗?头上放着花?如果开花,它们就可以自己繁殖! 如果这样下去,整个世界将被伊格德拉西尔创造的生物所覆盖。",你有沒有看到那個頭上有花的生物?如果它們開花,就意味著它們可以自我繁殖!如果它們繼續這樣,整個世界將被伊格德拉西爾創造的生物覆蓋。,"Nakita mo ba ang nilalang na may bulaklak sa ulo nito? Kapag sila'y bumulaklak, ibig sabihin ay may kakayahan sila magparami ng kanilang sarili! Kung patuloy na ganito, ang buong mundo ay mapupuno ng mga nilalang na nilikha ng Yggdrasil.","Ngươi có thấy sinh vật có hoa trên đầu không? Nếu chúng nở rộ, điều đó có nghĩa là chúng có thể tự sinh sản! -Nếu chúng tiếp tục như thế này, cả thế giới sẽ bị bao phủ bởi các sinh vật được tạo ra từ Yggdrasil." +Nếu chúng tiếp tục như thế này, cả thế giới sẽ bị bao phủ bởi các sinh vật được tạo ra từ Yggdrasil." DIALOG_5_1_2,I need you to dig deeper to fulfill your promise. I want you to go further into the woods and find out if there is a way to destroy these creatures.,"여기서 좀 더 내막을 깊게 파줘야겠어. 좀 더 숲 속 깊숙히 들어가서 이녀석들을 섬멸할 수 있는 방법이 없을지 알아봐주면 좋겠어.","Eu preciso que você se aprofunde para cumprir sua promessa. Eu quero que você vá mais longe na floresta @@ -217,32 +217,32 @@ Aku ingin kamu pergi lebih jauh ke dalam hutan dan mencari tahu apakah ada cara и выяснил, есть ли способ уничтожить этих существ.","我需要你更深入地履行诺言。 我要你深入树林 并找出是否有办法消灭这些生物。",我需要你深入挖掘以履行你的承諾。我希望你深入森林,找出是否有辦法摧毀這些生物。,Kailangan mong maglakas loob upang matupad ang iyong pangako. Gusto kong pumunta ka sa kailaliman ng kagubatan at alamin kung may paraan upang puksain ang mga nilalang na ito.,"Ta cần ngươi đào sâu hơn. -Ta muốn ngươi đi xa hơn vào rừng và tìm hiểu xem có cách nào để phá hủy những sinh vật này không." +Ta muốn ngươi đi xa hơn vào rừng và tìm hiểu xem có cách nào để phá hủy những sinh vật này không." DIALOG_5_1_3,Don't worry. I'll let the goddess know that you're working hard.,"걱정마. 네가 수고하고 있다는 건 여신님께 내가 잘 말씀드려둘 테니까.","Não se preocupe. Vou informar a Deusa que você está trabalhando duro.","心配ないよ。 キミが頑張っていることは女神様に僕がちゃんと報告しておくからよ。",No te preocupes. Le informaré a la Diosa que estás trabajando duro.,ไม่ต้องกังวล. ฉันจะบอกให้เทพธิดารู้ว่าคุณทำงานหนัก,"Jangan khawatir. Aku akan memberi tahu Dewi bahwa kamu sedang bekerja keras.","Не волнуйся. -Я позабочусь, чтобы Богиня узнала, что ты усердно трудишься.",不用担心。我会让女神知道您正在努力。,不用擔心。我會讓女神知道您正在努力工作。,Huwag kang mag-alala. Ipapaalam ko sa Diyosa na nagtatrabaho ka nang husto.,Đừng lo lắng. Ta sẽ thông báo cho Nữ thần biết rằng ngươi đang làm việc chăm chỉ. +Я позабочусь, чтобы Богиня узнала, что ты усердно трудишься.",不用担心。我会让女神知道您正在努力。,不用擔心。我會讓女神知道您正在努力工作。,Huwag kang mag-alala. Ipapaalam ko sa Diyosa na nagtatrabaho ka nang husto.,Đừng lo lắng. Ta sẽ thông báo cho Nữ thần biết rằng ngươi đang làm việc chăm chỉ. DIALOG_6_1_0,[npc:02]Stop![shake_vertical:20|1|2] Why have you trespassed upon our forest and killed these creatures?,"[npc:02] 멈춰![shake_vertical:20|1|2] 왜 허락도 없이 마음대로 들어와서 이 숲의 생명들을 죽이는거냐!","[npc:02]Pare! [shake_vertical: 20 | 1 | 2] Por que você vem aqui sem permissão e mata essas criaturas da floresta?","[npc:02]止まれ![shake_vertical:20|1|2] 何故お前は許可もなくここに入り、森の生物達を殺すのだ?",[npc:02]¡Detente! ¿Por qué vienes aquí sin permiso y matas a estas criaturas del bosque?,[npc:02]หยุด! [shake_vertical: 20|1|2] ทำไมคุณเข้ามาที่นี่โดยไม่ได้รับอนุญาตและฆ่าสัตว์ป่าเหล่านี้?,[npc:02]Berhenti![shake_vertical:20|1|2] Mengapa kamu masuk tanpa izin ke hutan kami dan membunuh makhluk-makhluk ini?,"[npc:02]Остановись![shake_vertical:20|1|2] Почему ты пришел сюда без разрешения и убиваешь этих лесных существ?","[npc:02]停止![shake_vertical:20|1|2] -您为何未经允许进入这里杀死这些森林生物?",[NPC:02]停止![shake_vertical:20|1|2] 你為什麼未經許可就來這裡殺害這些森林生物?,[npc:02] Huwag! [shake_vertical:20|1|2] Bakit ka pumarito nang walang pahintulot at pumapatay ng mga nilalang sa kagubatan?,[npc:02] Dừng lại! Tại sao ngươi lại xâm phạm khu rừng của chúng ta và giết hại những sinh vật đó +您为何未经允许进入这里杀死这些森林生物?",[NPC:02]停止![shake_vertical:20|1|2] 你為什麼未經許可就來這裡殺害這些森林生物?,[npc:02] Huwag! [shake_vertical:20|1|2] Bakit ka pumarito nang walang pahintulot at pumapatay ng mga nilalang sa kagubatan?,[npc:02] Dừng lại! Tại sao ngươi lại xâm phạm khu rừng của chúng ta và giết hại những sinh vật đó DIALOG_6_1_1,"You shall not pass! By our honor as the Fox Tribe, you shall be stopped!","이 앞으로는 더이상 못 지나간다! 우리 여우부족의 명예를 걸고 기필코 너를 저지할 것이다!","Você não pode ir mais longe assim! Vamos pará-lo em honra da nossa tribo de raposas!","この先へは行かせん! 我々狐族の名誉にかけて、お前を止める!",¡No puedes avanzar más por este camino! ¡Te detendremos en nombre del honor de nuestra tribu zorro!,คุณไม่สามารถไปไกลกว่านี้ได้อีกแล้ว! เราจะหยุดคุณด้วยเกียรติของเผ่าจิ้งจอกของเรา!,"Kamu tidak boleh lewat! Demi kehormatan kami sebagai Suku Rubah, Anda harus dihentikan!","Ты не можешь идти дальше! Мы остановим тебя ради чести нашего лисьего племени!","您不能再这样走了! 我们将以狐狸部落为名阻止您!",你不能再往這邊走了!我們會為了我們狐族的榮譽阻止你!,Hindi kana puwedeng magpatuloy pa sa daanan na ito! Haharangin ka namin para sa dangal ng aming tribu ng mga lobo!,"Ngươi không thể đi qua! -Bằng danh dự của bộ lạc Hồ ly, chúng ta sẽ không cho phép điều đó!" +Bằng danh dự của bộ lạc Hồ ly, chúng ta sẽ không cho phép điều đó!" DIALOG_7_1_0,[npc:09]I see you've already met the Fox Tribe. Saves me the trouble of having to introduce them.,"[npc:09]여우부족을 만났구나. 따로 소개해줄 필요가 없게 되었으니, 일이 간단해졌는걸?","[npc:09]Você já conheceu a tribo das raposas. Agora que eu não tenho que apresentá-las , será simples.","[npc:09]もう狐族に遭遇したようだね。 それなら別に紹介する手間も省けて、仕事が簡単じゃ。","[npc:09] Veo que ya has conocido a la tribu zorro. Ahora que no tengo que presentarlos, esto será más sencillo.",[npc:09]ฉันเห็นว่าคุณได้พบกับเผ่าจิ้งจอกแล้ว ตอนนี้ฉันไม่จำเป็นต้องแนะนำพวกเขาแล้ว,"[npc:09]Kamu telah bertemu dengan suku rubah. Sekarang aku tidak perlu memperkenalkannya lagi, segalanya menjadi lebih sederhana, bukan?","[npc:09]Как я вижу ты уже встретил лисье племя. Ну, раз мне не нужно их представлять тебе, все будет проще.","[npc:09]您已经认识了狐狸部落。 -现在,我不必介绍它们了,这将变得很简单。",[NPC:09]我看你已經遇到了狐狸部落。現在我不用介紹他們,這將是很簡單的。,"[npc:09] Nakita kong nakita mo na ang tribu ng lobo. Ngayong hindi ko na sila kailangan pang ipakilala, Mapapadali na ito.",[npc:09] Ta thấy ngươi đã gặp bộ lạc Hồ ly. Ta có thể tiết kiệm thời gian giới thiệu chúng. +现在,我不必介绍它们了,这将变得很简单。",[NPC:09]我看你已經遇到了狐狸部落。現在我不用介紹他們,這將是很簡單的。,"[npc:09] Nakita kong nakita mo na ang tribu ng lobo. Ngayong hindi ko na sila kailangan pang ipakilala, Mapapadali na ito.",[npc:09] Ta thấy ngươi đã gặp bộ lạc Hồ ly. Ta có thể tiết kiệm thời gian giới thiệu chúng. DIALOG_7_1_1,"Originally, the Fox Tribe lived a peaceful existence deep within the forest... However, once Yggdrasil began producing those nasty Teratomas, they started to worship it and became hostile towards outsiders.","여우부족은 원래 알프헤임의 깊은 숲 속에서 조용히 살고 있던 종족이었는데, 이그드라실이 부산물을 만들어내기 시작하자 갑자기 세계수를 숭배하기 시작하며 난폭해져 버렸지 뭐야.","A tribo das raposas era originalmente uma tribo @@ -255,18 +255,18 @@ Namun, setelah Yggdrasil mulai memproduksi Teratoma jahat itu, mereka mulai memu они внезапно стали поклоняться Иггдрасилю и стали жестокими.","狐狸部落原本是一个安静地生活在阿尔夫海姆深森林中的部落。 当伊格德拉西尔开始创造新怪物时, 他们突然开始崇拜伊格德拉西尔并变得暴力。”",狐狸部落原本安靜地生活在阿爾夫海姆的深林中。但當伊格德拉西爾開始創造新的怪物時,他們突然開始崇拜伊格德拉西爾並變得暴力。,"Ang tribu ng mga lobo ay una nang namumuhay nang tahimik sa loob ng masukal na kagubatan ng Alfheim. Ngunit nung nagsimula lumikha ng mga bagong mga halimaw ang Yggdrasil, bigla silang nagsimulang sumamba sa Yggdrasil at nagsimula silang maging marahas.","Ban đầu, bộ lạc Hồ ly sống yên bình sâu trong rừng ... -Tuy nhiên, khi Yggdrasil bắt đầu sản sinh ra những Teratomas đó, họ bắt đầu tôn thờ nó và trở nên thù địch với người ngoài." +Tuy nhiên, khi Yggdrasil bắt đầu sản sinh ra những Teratomas đó, họ bắt đầu tôn thờ nó và trở nên thù địch với người ngoài." DIALOG_7_1_2,"They live under the protection of the Gods, yet dare to worship other things. This is an insult to the Goddess Freya!","신들의 보호 아래 살고 있으면서 신이 아닌 다른 것을 숭배하다니.. 이건 여신님에 대한 도전이야..!","Viver sob a proteção dos deuses mas adorar outro ser vivo - esse é um desafio para a deusa!",神々の保護の下で生きながら、神以外のものを崇拝するなんて…これは女神様への挑戦だ!,Vivir bajo la protección de los dioses mientras adoran a otras cosas... ¡Esto es un desafío contra la Diosa!,การมีชีวิตอยู่ภายใต้การคุ้มครองของเทพเจ้าในขณะที่บูชาสิ่งอื่นๆ ... นี่เป็นการหลบหลู่ต่อเทพธิดา!,"Mereka hidup di bawah perlindungan Dewa, namun berani menyembah hal lain. Ini merupakan penghinaan terhadap Dewi Freya!",Жить под защитой Богов и в то же время поклоняться другим сущностям... Это вызов Богини!,"在众神的保护下生活并崇拜众神之外的任何东西…… 这对女神来说是一个挑战!",在神的保護下生活,同時崇拜其他東西……這是對女神的挑戰!,Ang mabuhay sa ilalim ng pangangalaga ng mga Diyos habang sumasamba sa ibang bagay... Ito ay isang hamon laban sa Diyosa!,"Họ sống dưới sự bảo vệ của các vị thần, nhưng dám tôn thờ những thứ khác. -Đây là một sự xúc phạm đối với nữ thần Freya!" +Đây là một sự xúc phạm đối với nữ thần Freya!" DIALOG_9_1_0,[npc:02]Damn you... Do you know what you're doing wielding that sword?!,"[npc:02]크흑.. 네가 무슨 짓을 하려는 건지 알고서 이 칼을 휘두르는 것이냐?","[npc:02]Ugh… Você sabe o que está tentando fazer com sua espada…?","[npc:02]いまいましい... その剣を振るうことで自分が何をしようとしているのか分かっているのか...?",[npc:02] Rayos!... ¿Sabes lo que estás a punto de hacer empuñando esa espada...?,[npc:02]ฮึ… คุณรู้ตัวหรือเปล่าว่าคุณพยายามจะทำอะไรกับดาบนั่น…?,[npc:02]Astaga... Tahukah kamu apa yang kamu lakukan sambil memegang pedang itu?!,"[npc:02]Будь ты проклят... -Знаешь ли ты что нужно делать с этим мечом...?",[npc:02] 喔……你知道你要用剑做什么吗?,[NPC:02]該死的……你知道你拿起那把劍即將要做什麼嗎……?,[npc:02] Sumpain ka... Alam mo ba ang ginagawa mo at magyayari sa paghawak mo ng espadang iyan...?,[npc:02] Chết tiệt ... ngươi có biết ngươi đang làm gì khi cầm thanh kiếm đó không ?! +Знаешь ли ты что нужно делать с этим мечом...?",[npc:02] 喔……你知道你要用剑做什么吗?,[NPC:02]該死的……你知道你拿起那把劍即將要做什麼嗎……?,[npc:02] Sumpain ka... Alam mo ba ang ginagawa mo at magyayari sa paghawak mo ng espadang iyan...?,[npc:02] Chết tiệt ... ngươi có biết ngươi đang làm gì khi cầm thanh kiếm đó không ?! DIALOG_9_1_1,Take whatever else you want... just... please leave the essence... (Falls down.),"다른 것은 다 네 마음대로 해도 좋다.. 다만.. 제발 그 정수 만큼은… @@ -277,7 +277,7 @@ Apenas… por favor , as raízes de Yggdrasill… (バタッ)","Lleva lo que quieras... Solo... por favor, deja la Esencia... (Caído)",ทำอะไรก็ได้... แค่…ได้โปรด แก่นแท้… (ล้มลง),Ambil apa pun yang kamu mau... hanya... tolong tinggalkan Essence... (Jatuh.),"Делай что хочешь с остальными... Только... прошу, Сущность... (Падает на колени)","您可以做任何您想做的事。 -请……请伊格德拉西尔的根源……(跌倒)",拿走你想要的其他東西吧...只是...請,留下精華....(倒下),"Kunin mo nang lahat ng gusto mo... Pero... pakiusap, huwag mong kunin ang Essence... (Nahulog pababa)",Lấy bất cứ thứ gì ngươi muốn ... chỉ ... xin vui lòng để lại Tinh chất đó ... (ngã xuống.) +请……请伊格德拉西尔的根源……(跌倒)",拿走你想要的其他東西吧...只是...請,留下精華....(倒下),"Kunin mo nang lahat ng gusto mo... Pero... pakiusap, huwag mong kunin ang Essence... (Nahulog pababa)",Lấy bất cứ thứ gì ngươi muốn ... chỉ ... xin vui lòng để lại Tinh chất đó ... (ngã xuống.) DIALOG_10_1_0,[npc:09]Well done! Now you're really starting to look like a warrior! I'm here to deliver a message from the goddess.,"[npc:09]잘 했어. 이제 슬슬 전사의 위용이 나기 시작하는걸? 여신님의 메시지를 전하러 왔어.","[npc:09]Muito bem. Agora você está realmente começando a parecer um guerreiro! @@ -288,13 +288,13 @@ Aku di sini untuk menyampaikan pesan dari Dewi.","[npc:09]Отличная ра Теперь ты и в самом деле начинаешь походить на воина! Я здесь, чтобы доставить послание от Богини.","[npc:09]好了。现在您真的开始看起来像个战士了! 我在这里传达信息",[NPC:09]做得好。現在你真的開始像個戰士了!我在這裡給你傳達女神的信息。,"[npc:09] Magaling. Ngayon, talagang nagmumukha ka nang isang tunay na mandirigma! Narito ako upang maghatid ng isang mensahe mula sa Diyosa.","[npc:09] Làm rất tốt! Bây giờ ngươi thực sự bắt đầu trông giống như một chiến binh! -Ta ở đây để gửi một thông điệp từ Nữ thần." +Ta ở đây để gửi một thông điệp từ Nữ thần." DIALOG_10_1_1,"Listen, it's the Essence of Earth that the Fox Tribe was trying to defend in the end. It's a vital part of the Nine Worlds...",잘 들어. 여우부족이 마지막까지 사수하려고 하는 건 대지의 정수야.,"Ouça , é a raiz de Yggdrasill que a tribo das raposas estava tentando defender até o fim.","いいよね、 狐族が最後まで守ろうとしているのは大地のエッセンス。","Escucha, esta es la Esencia de la Tierra por lo que la tribu de los zorros estaba dispuesta a defender hasta el final.","ฟัง, มันคือแก่นแท้ของโลกที่เผ่าจิ้งจอกพยายามปกป้องจนถึงที่สุด","Dengar, Essence Bumi yang pada akhirnya coba dipertahankan oleh Suku Rubah. Itu adalah bagian penting dari Sembilan Dunia...","Послушай, лисье племя до самого конца пыталось защитить Сущность Земли.",听着,这是狐狸部落试图捍卫到最后的伊格德拉西尔的根源。,聽著,狐狸部落試圖捍衛到底的就是地之精華。,"Makinig ka, ito ang Essence ng Lupa na sinubukang ipagtanggol ng tribu ng lobo hanggang sa huli.","Nghe này, đó là Tinh chất Trái đất mà bộ lạc Hồ ly đã cố gắng bảo vệ đến cùng. -Nó là một phần quan trọng của Cửu giới ..." +Nó là một phần quan trọng của Cửu giới ..." DIALOG_10_1_2,"However, the Essence of Earth is just the start. We need the other essence found in each world to pacify Yggdrasil. Unfortunately, there is no other way.","정수는 아홉 세계에 모두 뻗어 있어. 지금으로서는 이그드라실을 잠재우기 위해 각 세계의 정수를 모으는 수밖에.. 다른 방법이 없어.","As raízes de Yggdrasill se estendem a todos os Nove Mundos. @@ -309,39 +309,39 @@ Kita membutuhkan Essence lain yang ditemukan di setiap dunia untuk menenangkan Y Другого пути нет.","伊格德拉西尔的根源延伸到所有的九个世界。 就目前而言,我们别无选择,只能砍掉每一个的根源。 为了使伊格德拉西尔保持沉默,没有其他办法。",精華擴展到所有九個世界。目前,我們別無選擇,只能收集每個世界的精華,以便安撫伊格德拉西爾。沒有別的辦法。,"Ang mga Essence ay umaabot sa lahat ng Siyam na Mundo. Sa ngayon, wala tayong ibang pagpipilian kundi kolektahin ang Essence ng bawat mundo upang kumalma ang Yggdrasil. Walang ng iba pang paraan.","Tuy nhiên, Tinh chất Trái đất chỉ là khởi đầu. -Chúng ta cần các Tinh chất khác từ mỗi thế giới để ổn định Yggdrasil. Thật không may, không có cách nào khác." +Chúng ta cần các Tinh chất khác từ mỗi thế giới để ổn định Yggdrasil. Thật không may, không có cách nào khác." DIALOG_10_1_3,This is the only way to save this world. It is said that the leader of the Fox Tribe has the Essence of Earth.,"이것이 유일하게 이 세계를 구하는 길. 그중 대지의 정수는 여우부족의 대장이 가지고 있다고 해.","Esta é a única maneira de salvar este mundo. Dizem que o líder da tribo das raposas tem um ingrediente poderoso para cortar as raízes de Alfheim.","この世界を救うためにはこれしかない。 その中の大地のエッセンスは狐族の隊長が持っているらしいね。",Esta es la única forma de salvar este mundo. Se dice que el líder de la tribu de zorros tiene la Esencia de la Tierra.,นี่เป็นวิธีเดียวที่จะช่วยโลกนี้ได้ ว่ากันว่าหัวหน้าเผ่าจิ้งจอกมีแก่นแท้แห่งโลก,Inilah satu-satunya cara untuk menyelamatkan dunia ini. Konon pemimpin Suku Rubah ini memiliki Essence Bumi.,"Это единственный способ спасти этот мир. Говорят, у лидера лисьего племени есть Сущность Земли.","这是拯救这个世界的唯一方法。 据说,狐狸部落的首领拥有强大的传承,可以斩断阿尔夫海姆的本源。",這是拯救這個世界的唯一方式。據說狐狸部落的領袖擁有地之精華。,Ito lang ang natatanging paraan para iligtas ang mundong ito. Sinasabing ang pinuno ng tribo ng mga lobo ang may hawak ng Essence ng Lupa.,"Đây là cách duy nhất để cứu thế giới này. -Người ta nói rằng tộc trưởng của bộ lạc Hồ ly sở hữu Tinh chất Trái đất." +Người ta nói rằng tộc trưởng của bộ lạc Hồ ly sở hữu Tinh chất Trái đất." DIALOG_10_1_4,"If you venture deep into the forests of Alfheim, you will find the Fox Captain. Come on! Let's go!","알프헤임의 가장 깊은 숲까지 들어가면 여우대장을 만날 수 있을거야. 자 어서 가보자구!","Se você for para a floresta mais profunda de Alfheim , encontrará o capitão da raposa. Vamos lá , vamos lá!","アルフヘイムの森の最奥まで行くと狐族の隊長に会えるはず。 さあ、行こう!","Si vas al bosque más profundo de Alfheim, encontrarás al capitán zorro. ¡Vamos, vamos!",หากคุณเข้าไปในป่าที่ลึกที่สุดของ Alfheim คุณจะพบกับกัปตันสุนัขจิ้งจอก ไปกันเลย!,"Jika kamu menjelajah jauh ke dalam hutan Alfheim, kamu akan menemukan Kapten Rubah. Ayo, pergi!","Если ты пойдешь в самые дальние леса Альвхейма, ты встретишь лисьего вожака. -Ну все, выдвигаемся!",如果您去阿尔夫海姆最深的森林,您会发现狐狸的队长来吧,走吧!,如果你去阿爾夫海姆最深的森林,你會找到狐狸隊長。來吧,我們走吧!,Kapag pumasok pa sa malalim na bahagi ng kagubatan ng Alfheim ay makikita mo ang pinuno ng mga lobo. Tara na!,"Nếu ngươi mạo hiểm đi sâu vào các khu rừng của Alfheim, ngươi sẽ tìm thấy tộc trưởng Hồ ly. Cố lên! Đi nào!" -DIALOG_10_1_5,(The cat jumps into the forest and disappears),(알렉스는 숲 속으로 뛰어들어가 사라졌다),(O gato pulou na floresta e desapareceu.),(アレックスは森に飛び込み消えた。),(El gato saltó al bosque y desapareció.),(เจ้าแมวกระโดดเข้าไปในป่าแล้วก็หายไป),(Kucing itu pun melompat ke hutan dan menghilang.),(кот прыгнул в лес и исчез.),(猫跳入森林中消失了。),(那隻貓跳進了森林並消失了。),(Ang mahiwagang pusa ay pumasok sa kagubatan at naglaho na parang bula.),(Con mèo nhảy vào rừng và biến mất) -DIALOG_11_1_0,[npc:03]What do you want with the Essence of Earth?,[npc:03]어찌하여 너는 신성한 대지의 정수를 건드리려 하는 것이냐..,[npc:03]Por que você quer tocar as raízes da árvore sagrada?,[npc:03]なぜキミは大地のエッセンスを欲するのだ?,[npc:03]¿Qué quieres con la Esencia de la Tierra?,[npc:03]คุณต้องการอะไรจากแก่นแท้โลก?,[npc:03]Mengapa kamu ingin menyentuh Essence Bumi ini?,[npc:03]Для чего тебе Сущность Земли?,[npc:03]为什么要触摸圣树的根?,[NPC:03]你想要地之精華做什麼?,[NPC:03] Ano naman ang gagawin mo sa Essence ng Lupa?,[npc:03] ngươi muốn gì với Tinh chất Trái đất? +Ну все, выдвигаемся!",如果您去阿尔夫海姆最深的森林,您会发现狐狸的队长来吧,走吧!,如果你去阿爾夫海姆最深的森林,你會找到狐狸隊長。來吧,我們走吧!,Kapag pumasok pa sa malalim na bahagi ng kagubatan ng Alfheim ay makikita mo ang pinuno ng mga lobo. Tara na!,"Nếu ngươi mạo hiểm đi sâu vào các khu rừng của Alfheim, ngươi sẽ tìm thấy tộc trưởng Hồ ly. Cố lên! Đi nào!" +DIALOG_10_1_5,(The cat jumps into the forest and disappears),(알렉스는 숲 속으로 뛰어들어가 사라졌다),(O gato pulou na floresta e desapareceu.),(アレックスは森に飛び込み消えた。),(El gato saltó al bosque y desapareció.),(เจ้าแมวกระโดดเข้าไปในป่าแล้วก็หายไป),(Kucing itu pun melompat ke hutan dan menghilang.),(кот прыгнул в лес и исчез.),(猫跳入森林中消失了。),(那隻貓跳進了森林並消失了。),(Ang mahiwagang pusa ay pumasok sa kagubatan at naglaho na parang bula.),(Con mèo nhảy vào rừng và biến mất) +DIALOG_11_1_0,[npc:03]What do you want with the Essence of Earth?,[npc:03]어찌하여 너는 신성한 대지의 정수를 건드리려 하는 것이냐..,[npc:03]Por que você quer tocar as raízes da árvore sagrada?,[npc:03]なぜキミは大地のエッセンスを欲するのだ?,[npc:03]¿Qué quieres con la Esencia de la Tierra?,[npc:03]คุณต้องการอะไรจากแก่นแท้โลก?,[npc:03]Mengapa kamu ingin menyentuh Essence Bumi ini?,[npc:03]Для чего тебе Сущность Земли?,[npc:03]为什么要触摸圣树的根?,[NPC:03]你想要地之精華做什麼?,[NPC:03] Ano naman ang gagawin mo sa Essence ng Lupa?,[npc:03] ngươi muốn gì với Tinh chất Trái đất? DIALOG_11_1_1,"...What? To pacify Yggdrasil, the world tree? Where did you hear such things?...",… 뭐..? 세계수를 잠재우기 위해서라고..? 어디서 그런 이야기를....,… O quê? Silenciar a Árvore do Mundo? Onde você...?,...何だと?世界樹を鎮めるために?どこでそんなことを...,... ¿Qué? ¿Para silenciar el Árbol del Mundo? ¿De dónde has oído tales cosas...?,… อะไรน่ะ? เพื่อหยุดต้นไม้โลก? คุณได้ยินมาจากไหน…,"...Apa? Untuk menenangkan Yggdrasil, pohon dunia? Darimana kamu mendengar hal itu?...",... Что? Чтобы усмирить Дерево Мира? Откуда ты услышал такое...,"...什么?要使世界树静音? -您在哪里...",...什麼?為了使世界樹沉默?你從哪裡聽到這樣的事情…,Ano? Para patayin ang Puno ng Mundo? Saan mo naman narinig yan...,"...Cái gì? Để ổn định Yggdrasil, Cây thế giới? Ngươi đã nghe những thứ như vậy ở đâu? ..." +您在哪里...",...什麼?為了使世界樹沉默?你從哪裡聽到這樣的事情…,Ano? Para patayin ang Puno ng Mundo? Saan mo naman narinig yan...,"...Cái gì? Để ổn định Yggdrasil, Cây thế giới? Ngươi đã nghe những thứ như vậy ở đâu? ..." DIALOG_11_1_2,Yes... I can imagine who would have told you... and as for you... You're not from this world!,"훗.. 누가 그런 이야기를 했는지 짐작이 가는군….. 너도 본디 이곳에서 난 생명은 아닌 것을 보니..","Sim , Eu posso imaginar quem te disse isso ... e você não é daqui.",そうか、誰に言われたのか想像がつく...お前はここの者ではないのだな。,"Sí... puedo imaginar quién te lo habría dicho... y en cuanto a ti, no eres de este mundo...",ใช่ .. ฉันนึกภาพออกว่าใครบอกมาก…และสำหรับคุณ คุณไม่ได้จากโลกนี้ ...,Ya... Aku bisa membayangkan siapa yang memberitahumu... dan untukmu... Kamu bukan dari dunia ini!,"Да.. Я могу представить себе, кто тебе это сказал... а что касается тебя, ты не из этого мира...","是的,我可以想象是谁告诉您的... -您不是本地人。",是...我可以想像是誰告訴你的...至於你,你不是來自這個世界的…,"Oo... may ideya na ako kung sino ang nagsabi saiyo... at ikaw, ikaw ay hindi galing sa mundong ito...",Ta có thể đoán được ai đã nói với ngươi ... Còn ngươi ... Ngươi không phải từ thế giới này! +您不是本地人。",是...我可以想像是誰告訴你的...至於你,你不是來自這個世界的…,"Oo... may ideya na ako kung sino ang nagsabi saiyo... at ikaw, ikaw ay hindi galing sa mundong ito...",Ta có thể đoán được ai đã nói với ngươi ... Còn ngươi ... Ngươi không phải từ thế giới này! DIALOG_11_1_3,...I fear for this world. Failing to protect the Essence of Earth... I wonder what this will bring upon Alfheim...,"… 두렵군.. 대지의 정수를 사수하지 못한 것이.. 이 세계에 어떠한 일을 가져올지….","… Temo por este mundo. Não fomos capazes de proteger as raízes deste lugar… O que isso trará para Alfheim…","...恐ろしい。 大地のエッセンスを守られなかった...これがアルフヘイムに何をもたらすのか...",... Temo por este mundo. Si no logramos proteger la Esencia de la Tierra... me pregunto qué consecuencias traerá para Alfheim...,… ฉันกลัวโลกใบนี้... ความล้มเหลวในการรักษาแก่นแท้ของโลก ... มันจะนำอะไรมาสู่โลกนี้ ... .,...Aku takut pada dunia ini. Gagal melindungi Essence Bumi... Aku penasaran apa yang akan terjadi pada Alfheim...,"... Мне страшно за этот мир. Не суметь защитить Сущность Земли... Интересно, что это принесет Альвхейму...","...我为这个世界感到恐惧。我们无法保护这个地方的本源…… -这将为您带来什么?阿尔夫海姆…",...我為這個世界感到害怕。未能保護地之精華...我不知道這將給阿爾夫海姆帶來什麼…,"... Natatakot ako para sa mundong ito. Na hindi maprotektahan ang Essence ng Lupa... Kung sakali, ano kaya ang mangyayari sa Alfheim...",... Ta lo lắng cho thế giới này. Không bảo vệ được Tinh chất Trái đất ... ta tự hỏi điều gì sẽ xảy đến với Alfheim … +这将为您带来什么?阿尔夫海姆…",...我為這個世界感到害怕。未能保護地之精華...我不知道這將給阿爾夫海姆帶來什麼…,"... Natatakot ako para sa mundong ito. Na hindi maprotektahan ang Essence ng Lupa... Kung sakali, ano kaya ang mangyayari sa Alfheim...",... Ta lo lắng cho thế giới này. Không bảo vệ được Tinh chất Trái đất ... ta tự hỏi điều gì sẽ xảy đến với Alfheim … DIALOG_11_1_4,You poor thing... Are you that naive to believe everything the Goddess tells you? (The Fox Captain took his last breath.),"여신의 말을.. 너무 맹신하지는 말거라 가여운 생명이여….. (여우대장은 마지막 숨을 몰아내쉬었다.)","O que a Deusa disse ... Não seja tão cego para confiar em tudo. Coitadinho… (O capitão da raposa deu um último suspiro.)","女神が言ってたこと、全てを鵜呑みにして盲目になるな。あわれな子よ... (狐族の長は息絶えた)","No seas tan ingenuo como para confiar en todo lo que dice la Diosa, pobre de ti... (El capitán zorro exhaló su último aliento).","อย่าเชื่อทุกสิ่งที่เทพธิดาพูด, คุณช่างน่าสงสาร... (กัปตันจิ้งจอกสูดลมหายใจเฮือกสุดท้าย)","Kasihan sekali... Apakah kamu begitu naif hingga memercayai semua yang Dewi katakan padamu? (Kapten Rubah menghembuskan nafas terakhirnya.)","Бедняжка, не верь слепо всему, что говорит Богиня... (лидер лисьего племени умер.)","不要盲目相信女神所说的一切,你这可怜的东西…… -(狐狸船长吐出了他的最后一口气)",不要那麼盲目地相信女神說的一切,你這可憐的東西...(狐狸隊長吐出了最後一口氣。),"Huwag kang bulag na pinaniniwalaan mo lahat ng sinasabi ng Diyosa, kaawa-awang nilalang... (At nawalan ng hininga ang pinuno ng mga lobo)",Kẻ đáng thương ... Ngươi thật đáng thương khi tin vào mọi lời nói của Nữ thần? (Tộc trưởng Hồ ly ngừng thở) +(狐狸船长吐出了他的最后一口气)",不要那麼盲目地相信女神說的一切,你這可憐的東西...(狐狸隊長吐出了最後一口氣。),"Huwag kang bulag na pinaniniwalaan mo lahat ng sinasabi ng Diyosa, kaawa-awang nilalang... (At nawalan ng hininga ang pinuno ng mga lobo)",Kẻ đáng thương ... Ngươi thật đáng thương khi tin vào mọi lời nói của Nữ thần? (Tộc trưởng Hồ ly ngừng thở) DIALOG_13_1_0,[npc:05]Did you know that I cook as a side job? You can get various temporary buffs to your stats by equipping food before a battle.,"[npc:05]자네, 내가 부업으로 요리도 하고 있다는 사실을 혹시 알고 있나? 요리를 먹으면 다양한 힘을 얻을 수 있다네. 물론 효과는 일시적이지만.","[npc:05]Você sabia que estou cozinhando como um trabalho paralelo? Você pode obter vários buffs comendo comida. @@ -352,42 +352,42 @@ Kamu bisa mendapatkan berbagai buff sementara pada statistik dengan melengkapi m Ты можешь себя усилить, поедая еду. Конечно, это усиление временное...","[npc:05]您知道我在做美食的副业吗? 您可以通过吃食物来获得各种增益。当然,这种效果是暂时的…",[NPC:05]你知道我做飯是副業嗎?通過吃食物你可以獲得各種增益效果。當然,效果是暫時的…,"[NPC:05] Alam mo ba na marunong din akong magluto? Pwede kang makakuha ng karagdagang ""buffs"" sa pamamagitan ng mga pagkain. Gayunpaman, ay pansamantala lamang ang epekto nito...","[npc:05] Ngươi có biết rằng đầu bếp là nghề tay trái của ta không? -Ngươi có thể nhận được nhiều buff tạm thời cho chỉ số của mình bằng cách trang bị thực phẩm trước một trận chiến." +Ngươi có thể nhận được nhiều buff tạm thời cho chỉ số của mình bằng cách trang bị thực phẩm trước một trận chiến." DIALOG_13_1_1,Come see me if you are interested. I'll make it as delicious as I can.,"관심이 있으면 내게로 오게나. 최대한 맛있게 만들어주지..","Venha a mim se estiver interessado. Vou fazer o mais delicioso possível.","興味があるなら来てくれ。 なるべく美味しく作ってやるぞ。",Ven a verme si estás interesado. Lo haré tan delicioso como pueda.,มาหาฉันถ้าคุณสนใจ ฉันจะทำให้อร่อยที่สุดเท่าที่จะทำได้,"Datanglah jika Anda tertarik. Aku akan membuatnya selezat mungkin.","Приходи ко мне, если тебя это заинтересовало. Я приготовлю это так вкусно, насколько смогу.","如果您有兴趣的话,请来我这里。 -我会尽可能地使它美味。",如果你有興趣的話,來找我。我會盡我所能讓它做得美味。,Hanapin mo ako kung ikaw ay interisadong matuto. Sisikapin ko na ipagluto ka ng pinakamasarap.,Hãy đến gặp ta nếu ngươi cần. Ta sẽ nấu ngon nhất có thể. +我会尽可能地使它美味。",如果你有興趣的話,來找我。我會盡我所能讓它做得美味。,Hanapin mo ako kung ikaw ay interisadong matuto. Sisikapin ko na ipagluto ka ng pinakamasarap.,Hãy đến gặp ta nếu ngươi cần. Ta sẽ nấu ngon nhất có thể. DIALOG_14_1_0,[npc:05]You think the battle is getting a little bit tougher? I will teach you how to enhance your equipment.,"[npc:05]자네, 전투가 조금씩 어려워지고 있다고 느껴지지 않나? 장비를 강화할 수 있는 법을 알려주지..","[npc:05]Talvez , você ache que a batalha está ficando um pouco mais difícil? Vou ensiná-lo a melhorar seu equipamento.","[npc:05]キミ、そろそろ戦いがキツくなってきたんじゃないか? 装備を強化する方法を教えてやろう。",¿Crees que la batalla se está volviendo un poco más difícil? Te enseñaré cómo mejorar tu equipo.,[npc:05]บางทีคุณคิดว่าการต่อสู้จะยากขึ้นหน่อยหรือเปล่า? ฉันจะสอนวิธีเสริมแกร่งอุปกรณ์ของคุณ,[npc:05]Menurutmu pertarungannya menjadi sedikit lebih sulit? Aku akan mengajarimu cara meningkatkan peralatan.,"[npc:05]Тебе кажется, что битвы становятся труднее? Я научу тебя, как зачаровать свое снаряжение.","[npc:05]也许,您认为战斗会变得有些困难吗? 我将教您如何增强您的装备。",[NPC:05]你覺得戰鬥變得有點困難了?我會教你如何強化你的裝備。,[NPC:05] Napapansin mo ba na pahirap ng pahirap ang pakikipaglaban? Tuturuan kita kung papaano mapapalakas ang iyong mga sandata.,"[npc:05] Ngươi có nghĩ rằng những trận chiến đang trở nên khó khăn hơn? -Ta sẽ dạy ngươi cách nâng cấp trang bị." +Ta sẽ dạy ngươi cách nâng cấp trang bị." DIALOG_14_1_1,You can combine two pieces of equipment of the same grade and level. Enhancing equipment raises the stats.,"같은 등급과 같은 강화도를 가진 장비를 하나로 합칠 수 있다네. 그러면 장비의 기본 능력치가 향상되지.","Você pode combinar dois equipamentos da mesma classe e do mesmo nível. O aprimoramento do equipamento eleva as estatísticas básicas do equipamento.","同じグレードで同じレベルの2つの装備は組み合わせることができる。 すると装備品の基本能力値が上がるんだ。",Puedes combinar dos equipos del mismo grado y del mismo nivel. Mejorar el equipo aumenta las estadísticas básicas del equipo.,คุณสามารถรวมอุปกรณ์สองชิ้นที่มีเกรดเดียวกันและระดับเดียวกันได้ เสริมแกร่งอุปกรณ์จะเพิ่มค่าสถานะพื้นฐานของอุปกรณ์,Kamu dapat menggabungkan dua peralatan dengan tingkatan dan level yang sama. Meningkatkan peralatan meningkatkan statistik.,"Ты можешь объединить два предмета одного и того же ранга и уровня. Зачарование предмета повышает базовые характеристики снаряжения.","您可以将相同等级和相同等级的两种装备合并。 -强化设备、提高设备的基本性能。",你可以合併兩個相同等級和相同級別的裝備。強化裝備可以提升裝備的基本屬性。,Pwede mong pagsamahin ang dalawang sandata na magkaparehas ng antas. Ang paraan na ito ay nagpapataas sa angking kapangyarihan ng iyong sandata.,Ngươi có thể kết hợp hai mảnh trang bị cùng phân lớp và cấp độ. Trang bị cường hóa tăng các chỉ số của ngươi. -DIALOG_14_1_2,Come. See me if you are interested.,관심이 있으면 내게로 오게나.,Venha até mim se estiver interessado.,興味があるなら来な。,Ven a verme si estás interesado.,มาหาฉันถ้าคุณสนใจ,Datanglah jika kamu tertarik.,"Приходи ко мне, если тебя это заинтересовало.",如果您有兴趣,请告诉我。,如果你有興趣的話,就來找我。,Hanapin mo ako kung ikaw ay interesado.,Tới gặp ta nếu ngươi thấy hứng thú. +强化设备、提高设备的基本性能。",你可以合併兩個相同等級和相同級別的裝備。強化裝備可以提升裝備的基本屬性。,Pwede mong pagsamahin ang dalawang sandata na magkaparehas ng antas. Ang paraan na ito ay nagpapataas sa angking kapangyarihan ng iyong sandata.,Ngươi có thể kết hợp hai mảnh trang bị cùng phân lớp và cấp độ. Trang bị cường hóa tăng các chỉ số của ngươi. +DIALOG_14_1_2,Come. See me if you are interested.,관심이 있으면 내게로 오게나.,Venha até mim se estiver interessado.,興味があるなら来な。,Ven a verme si estás interesado.,มาหาฉันถ้าคุณสนใจ,Datanglah jika kamu tertarik.,"Приходи ко мне, если тебя это заинтересовало.",如果您有兴趣,请告诉我。,如果你有興趣的話,就來找我。,Hanapin mo ako kung ikaw ay interesado.,Tới gặp ta nếu ngươi thấy hứng thú. DIALOG_15_1_0,"[npc:10]So, you're the intruder? I will not let you walk our lands!!!","[npc:10]이 세계를 휘젓고 다닌다는 녀석이 네놈이었군.. 우리 땅에서는 더이상 네놈이 활개치지 못하도록 해주겠다!!!!!!!!!!",[npc:10]Você é quem está circulando pelo mundo.,"この世界を引っかき回してのがおまえか。 もう俺たちの領域では歩けなくやってやるぞ!",[npc:10]Así que eres el que ha estado invadiendo este mundo. ¡No te permitiré caminar en nuestra tierra!,[npc:10]คุณคือคนที่บุกรุกเข้ามาในโลกนี้ ฉันจะไม่ปล่อยให้คุณเดินบนแผ่นดินของเรา!!!!!!!!!!!!!!!!!!!,"[npc:10]Jadi, kamu penyusupnya?","[npc:10]Значит это ты вторгся в этот мир. -Я не позволю тебе бродить по нашей земле!!!!!!!!!!!!!!!!!!!",[npc:10]您是世界上到处乱跑的人。,[NPC:10]所以你就是那個一直闖入這個世界的人。我不會讓你在我們的土地上行走! ! !,[NPC:10] Ikaw pala ang pangahas na pumasok sa aming mundo. Hindi kita hahayaang manatili sa aming lupain!!!,"[npc:10] Vậy, ngươi là kẻ xâm nhập? Ta sẽ không để ngươi xâm phạm mảnh đất của chúng ta !!!" +Я не позволю тебе бродить по нашей земле!!!!!!!!!!!!!!!!!!!",[npc:10]您是世界上到处乱跑的人。,[NPC:10]所以你就是那個一直闖入這個世界的人。我不會讓你在我們的土地上行走! ! !,[NPC:10] Ikaw pala ang pangahas na pumasok sa aming mundo. Hindi kita hahayaang manatili sa aming lupain!!!,"[npc:10] Vậy, ngươi là kẻ xâm nhập? Ta sẽ không để ngươi xâm phạm mảnh đất của chúng ta !!!" DIALOG_15_1_1,Don't even dare to set foot in Svartalfheim!!!,스바르트알프헤임에는 얼씬도 하지 마라!,"Eu não vou deixar você andar em nossa terra !!!!!!!!!!!!!!!!!!! Nem olhe dentro de Svartalfheim !!",スヴァルトアルフヘイムには近寄るな!,¡Ni siquiera te atrevas a poner un pie en Svartalfheim!,อย่าแม้แต่เหยียบบน Svartalfheim !!,"Aku tidak akan membiarkanmu berjalan di tanah kami!!! Bahkan untuk menginjakkan kaki di Svartalfheim!!!",Не смей даже шагу сделать по Свартальфахейму!!,"我不会让您在我们的领地通行!! -甚至都不能看斯瓦尔塔夫海姆里面!",別敢踏上斯瓦特阿爾夫海姆! !,Huwag na huwag kang mangangahas na tumuntong dito sa Svartalfheim!!,Thậm chí đừng nghĩ đến việc đặt chân vào Svartalfheim !!! +甚至都不能看斯瓦尔塔夫海姆里面!",別敢踏上斯瓦特阿爾夫海姆! !,Huwag na huwag kang mangangahas na tumuntong dito sa Svartalfheim!!,Thậm chí đừng nghĩ đến việc đặt chân vào Svartalfheim !!! DIALOG_16_1_0,[npc:11]You're an extraordinary cat… Rumors about you have circulated and reached my ears.,"[npc:11]범상치 않은 고양이로구나… 너에 대한 소문이 돌고 돌아 내 귀에까지 들려왔다.","[npc:11]Você é um gato extraordinário… Rumores sobre você circularam e chegaram aos meus ouvidos.","[npc:11]尋常ではない猫だな... おまえの噂が儂の耳にも届いているぞ。",[npc:11]Eres un gato extraordinario... Los rumores sobre ti han circulado y llegado hasta mis oídos.,[npc:11]คุณเป็นแมวที่ไม่ธรรมดา… ข่าวลือเกี่ยวกับลือกระฉ่อนมาถึงหูของฉัน,[npc:11]Kamu Kucing yang luar biasa… Rumor tentangmu telah beredar dan sampai ke telingaku.,"[npc:11]Ты выдающийся кот... Слухи о тебе распространялись и достигли моих ушей.","[npc:11]你真是只非同寻常的猫…… -关于你的谣言已经传遍了我的耳朵。",[NPC:11]你是一隻不凡的貓……關於你的謠言已經傳開,達到了我的耳朵。,[NPC:11] Kamanghamanghang pusa... Nakarating na sa akin ang mga balita patungkol sayo.,[npc:11] Ngươi là một con mèo phi thường. Tin đồn về ngươi đã bay đến tai ta. +关于你的谣言已经传遍了我的耳朵。",[NPC:11]你是一隻不凡的貓……關於你的謠言已經傳開,達到了我的耳朵。,[NPC:11] Kamanghamanghang pusa... Nakarating na sa akin ang mga balita patungkol sayo.,[npc:11] Ngươi là một con mèo phi thường. Tin đồn về ngươi đã bay đến tai ta. DIALOG_16_1_1,"Why do you disturb the balance of this world? Cease here. If you continue, you shall not leave Asgard alive.","왜 이 세계를 이리 어지럽히고 있는 것이냐? 여기서 멈춰라. 아스가르드에 오면 너는 살아서 나가지 못할 것이다.","Por que você está perturbando o equilíbrio deste mundo? Você deve parar por aqui. Se você vier a Asgard , não sairá vivo.","なぜこの世界のバランスを乱すのか?ここで止まれ。 @@ -395,12 +395,12 @@ Se você vier a Asgard , não sairá vivo.","なぜこの世界のバランス Jika kamu datang ke Asgard, kamu tidak akan keluar hidup-hidup.","Зачем ты нарушаешь баланс этого мира? Остановись. Если ты придешь в Асгард, ты не покинешь его живым.","你为什么要扰乱这个世界的平衡?您必须在这里停下来。 如果您来阿斯加德,就不会活着。",你為什麼要打破這個世界的平衡?停在這裡。如果你來到阿斯加德,你就別想活著出去。,"Bakit mo sinisira ang balanse ng aming mundo? Tumigil ka na. Kapag tumuntong ka dito sa Asgard, hindi ka na makakalabas pa ng buhay.","Tại sao ngươi làm thay đổi sự cân bằng của thế giới này? Dừng lại đi. -Nếu ngươi tiếp tục, ngươi sẽ không thể còn sống mà rời khỏi Asgard." +Nếu ngươi tiếp tục, ngươi sẽ không thể còn sống mà rời khỏi Asgard." DIALOG_17_1_0,[npc:01]You have become so strong! Oh... who am I? ...You don't need to know that...,"[npc:01]정말 많이 강해졌구나! 아 내가 누구냐고? 그건 몰라도 돼.","[npc:01]Você se tornou tão forte! Oh , quem sou eu? Você não tem que saber.","[npc:01]とても強くなったね! ああ、私は誰ですかって? それはわからなくていいのよ。","¡Te has vuelto tan fuerte! Oh, ¿quién soy yo? No necesitas saber eso.",[npc:01]เจ้าแข็งแกร่งขึ้นมาก! โอ้ฉันเป็นใครกันหรอ? คุณไม่จำเป็นต้องรู้เรื่องนั้น,[npc:01]Kamu menjadi sangat kuat! Oh... siapa aku? ...Kamu tidak perlu tahu itu...,"[npc:01]Ты стал таким сильным! -О, кто я такой? Тебе не нужно этого знать.",[npc:01]你变得如此坚强!哦,我是谁?您不必知道。,[NPC:01]你變得如此強大!哦,我是誰?你不需要知道。,"[NPC:01] Napakalakas mo na! Ah, sino ako? Di mo na kelangan pang alamin.",[npc:01] Ngươi đã trở nên thât mạnh mẽ! Ồ … Ta là ai ấy hả? ... Ngươi không cần biết điều đó ... +О, кто я такой? Тебе не нужно этого знать.",[npc:01]你变得如此坚强!哦,我是谁?您不必知道。,[NPC:01]你變得如此強大!哦,我是誰?你不需要知道。,"[NPC:01] Napakalakas mo na! Ah, sino ako? Di mo na kelangan pang alamin.",[npc:01] Ngươi đã trở nên thât mạnh mẽ! Ồ … Ta là ai ấy hả? ... Ngươi không cần biết điều đó ... DIALOG_17_1_1,"Anyway, you need special training to become stronger. I made a very challenging training camp for you. Check your world map!","그나저나, 더 강해지기 위해서는 특별한 수련이 필요하지. 너를 위해 아주 도전적인 수련장을 만들었어. 월드맵에서 확인해봐!","Enfim , Você precisa de treinamento especial para se tornar mais forte. Fiz um campo de treinamento muito desafiador para você. Confira o mapa mundi!","ところで、さらに強くなるためには特別な訓練が必要。 @@ -409,7 +409,7 @@ Aku akan membuat pelatihan yang sangat menantang untukmu. Lihatlah peta duniamu! Я создал очень сложный тренировочный лагерь для тебя. Проверь на карте мира!","无论如何,您需要特殊的训练才能变得更强壮。 我为您提供了一个非常具有挑战性的训练营。检查世界地图!",無論如何,你需要特別的訓練才能變得更強。我為你製作了一個非常具有挑戰性的訓練營。檢查一下世界地圖!,"Subalit, kelangan mo pa ng karagdagang pagsasanay upang mas lalo ka pang lumakas. May mga inihanda akong mga pagsubok para sayo. Tignan mo ang pandaigdigang mapa!","Dù sao đi nữa, ngươi cần đào tạo đặc biệt để có thể trở nên mạnh mẽ hơn. Ta đã chế tạo một trại huấn luyện đầy thử thách cho ngươi. -Hãy kiểm tra bản đồ thế giới của ngươi!" +Hãy kiểm tra bản đồ thế giới của ngươi!" DIALOG_18_1_0,"[npc:07]You're the cat warrior, correct? That's right... I was the one that brought you here. I'm the Goddess Freya, leader of the Valkyries, and one of the many gods that follow Odin.","[npc:07]당신은 고양이 전사.. 맞지요? 맞아요. 제가 당신을 이곳으로 데리고 왔어요. 나는 프레이야. 발키리의 수장이자 오딘의 뜻을 따르는 신 중 하나입니다.","[npc:07]Você é um guerreiro de gato. Certo? @@ -424,7 +424,7 @@ Aku Dewi Freya, pemimpin Valkyrie, dan salah satu dari banyak dewa yang mengikut Я - Фрея. Глава валькирий и одна из Богинь, поклоняющихся Одину.","[npc:07]您是猫战士。对对对我带你到这里。 我是芙蕾雅。女武神的负责人,也是跟随奥丁的众神之一。",[NPC:07]你是那隻貓戰士,對嗎?沒錯。我把你帶到這裡。我是弗蕾雅。女武神的首領,也是跟隨奧丁的諸神之一。,"[npc:07] Ikaw ang mandirigmang Pusa, tama? Tama nga. Ako ang nagdala saiyo rito. Ako si Freya. Ang pinuno ng mga valkyries at isa sa mga Diyos na naglilingkod kay Odin.","[npc:07] Ngươi là Miêu chiến binh, đúng không? Đúng vậy ... ta là người đã đưa ngươi đến đây. -Ta là nữ thần Freya, lãnh đạo của Valkyries và là một trong nhiều vị thần thuộc hạ của Odin." +Ta là nữ thần Freya, lãnh đạo của Valkyries và là một trong nhiều vị thần thuộc hạ của Odin." DIALOG_18_1_1,"We're nearing the enormous world tree, Yggdrasil. Its roots serve as the mantle of the Nine Worlds and have protected life by radiating mana.","이곳은 거대한 세계수 이그드라실 주변입니다. 그 뿌리가 이 세계의 중심을 지탱하고 있죠. 이그드라실은 언제나 이 세계를 보호하는 긍정적인 마나를 발산해왔습니다.","Isso é ao redor do Yggdrasil gigante árvore. As raízes, o centro do mundo. Yggdrasil foi sempre Mas mana para proteger este lugar.","ここは巨大な世界樹ユグドラシルの周辺です。 @@ -432,7 +432,7 @@ Yggdrasil foi sempre Mas mana para proteger este lugar.","ここは巨大な世 Akarnya berfungsi sebagai mantel Sembilan Dunia dan melindungi kehidupan dengan memancarkan Mana.","Мы возле гигантского мирового дерева, Иггдрасиля. Его корни поддерживают центр мира. Иггдрасиль постоянно излучает энергию для защиты мира.","它环绕着巨大的世界树伊格德拉西尔。 它的根基支撑着世界的中心。伊格德拉西尔一直在辐射法力保护世界。",我們靠近巨大的世界樹,伊格德拉西爾。它的根紮根於世界的中心。伊格德拉西爾一直發出魔力來保護世界。,"Malapit na tayo sa napakalaking puno ng mundo, ang Yggdrasil. Ang mga ugat nito ang siyang sumusuporta sa gitna ng mundo. Ang Yggdrasil ay palagiang nagpapalabas ng mabuting enerhiya na kumakalat upang protektahan ang ating mundo.","Chúng ta đang tới gần Cây thế giới khổng lồ, Yggdrasil. -Bộ rễ của nó bao phủ của chín thế giới và đã bảo vệ các sinh mệnh bằng cách tỏa ra mana." +Bộ rễ của nó bao phủ của chín thế giới và đã bảo vệ các sinh mệnh bằng cách tỏa ra mana." DIALOG_18_1_2,"But... As dark energy began to circulate the world, Yggdrasil started spawning strange creatures. Please exterminate the flowers of Yggdrasil. Eliminating these flowers will slow the production of the strange creatures.","하지만 상서로운 기운이 이 세계에 돌기 시작하면서 이그드라실은 지금 이상한 크리쳐를 양산하고 있습니다. 부디 이그드라실의 꽃을 박멸해주세요. 꽃들을 없애면 이상한 크리쳐들이 양산되는 속도를 늦출 수 있을 것입니다.","Mas como a energia favorável começa a circular ao redor do mundo, Yggdrasil é agora a produzir criaturas estranhas. @@ -444,7 +444,7 @@ Eliminar as flores vai atrasar a produção de estranhas criaturas."," Прошу, уничтожь цветы Иггдрасиля. Это замедлит появление на свет этих существ.","但是,随着吉祥的能量开始在世界范围内传播,伊格德拉西尔现在正在生产奇怪的生物。 请消灭伊格德拉西尔的花朵。消除花朵会减慢奇怪生物的产生。",但隨著黑暗能量開始在世界上流動,伊格德拉西爾現在正在產生奇怪的生物。 請消滅伊格德拉西爾的花。消滅這些花將減緩奇怪生物的產生。,"Ngunit sa paglipas ng panahon, ang mabuting enerhiya ay napalitan ng masamang enerhiya na siyang unti-unting kumakalat sa paligid ng mundo, kaya ang Yggdrasil ngayon ay lumilikha ng kakaibang mga nilalang. Nakikiusap ako, puksain mo ang mga bulaklak ng Yggdrasil. Sa pag alis ng mga bulaklak, mababawasan ang produksyon ng masamang enerhiya at ng mga kakaibang nilalang.","Nhưng ... Khi năng lượng hắc ám bắt đầu bao trùm thế giới, Yggdrasil bắt đầu sinh ra những sinh vật kỳ lạ. - Hãy tiêu diệt những bông hoa của Yggdrasil. Loại bỏ những bông hoa này sẽ làm chậm việc sản sinh các sinh vật lạ." + Hãy tiêu diệt những bông hoa của Yggdrasil. Loại bỏ những bông hoa này sẽ làm chậm việc sản sinh các sinh vật lạ." DIALOG_19_1_0,"[npc:09]Hmm... I think you destroyed quite a few, but is it still not slowing down its pace. I suspect the flowers aren't the only problem...","[npc:09]흐음 꽤 많이 잡은 것 같네. 하지만 여전히 크리쳐들이 만들어지는 속도가 줄지 않고 있어. 아무래도 꽃만이 문제가 아닌 것 같다는 의심이 들어.","[npc:09]Acho que eu pego muito. @@ -457,7 +457,7 @@ Aku curiga bunganya bukan satu-satunya masalah...","[npc:09]Хмм. Я дума Я подозреваю, что цветы - не единственная проблема.","[npc:09]嗯。我认为您抓到了很多东西。 但是它仍然没有减慢生物造出的速度。 我怀疑花朵并不是唯一的问题。",[NPC:09]哼。我覺得你抓得還算多。但他們的速度還是沒有減慢。我懷疑花並不是唯一的問題。,[npc:09] Hmm. Tingin ko marami ka nang nahuli. Ngunit hindi pa rin ito sapat upang mapabagal ang kanilang pagusbong. May palagay ako na ang hindi lamang ang mga bulaklak ng Yggdrasil ang sanhi ng problema.,"[npc:09] Hmm …Ta nghĩ rằng ngươi đã phá hủy được khá nhiều, nhưng vẫn chưa thể làm chậm tốc độ của nó. -Ta nghi ngờ rằng những bông hoa không phải là vấn đề duy nhất …" +Ta nghi ngờ rằng những bông hoa không phải là vấn đề duy nhất …" DIALOG_19_1_1,I just heard that a strange cloud is growing deep within Yggdrasil. The cloud is apparently yellow and powdery. I want you to go investigate.,"이그드라실 깊숙한 곳에서 이상한 구름이 만들어지고 있다는 소식을 방금 들었어. 마치 가루같은 노란 구름이 떠다닌다는 이야기를 들었는데 네가 가서 조사를 해보면 좋겠어.","Eu só ouvi uma nuvem estranha está a ser feito no Yggdrasil. Eu ouvi que uma nuvem de cerâmica amarelo está flutuando, então eu quero que você vá e investigar.","さっき、ユグドラシルの奥で奇妙な雲が作られているって聞いたよ。 @@ -465,7 +465,7 @@ Eu ouvi que uma nuvem de cerâmica amarelo está flutuando, então eu quero que Awannya tampak kuning dan tebal. Aku ingin kamu pergi menyelidikinya.","Я недавно услышал, что в глубинах Иггдрасиля образовалась странная туча. Вероятно, пылевидная желтая туча плывет в воздухе. Я хочу, чтобы ты пошел и расследовал это.","我只是听说伊格德拉西尔正在深深地造一朵奇怪的云。 一朵粉状的黄色云朵正在漂浮。我要你去调查。",我剛聽說伊格德拉西爾深處正在形成一個奇怪的雲。顯然,一個粉黃色的雲正在漂浮。我想讓你去調查一下。,"Nabalitaan ko, na may kakaibang ulap na nabubuo sa malalim na parte ng Yggdrasil. Mukhang parang dilaw na ulap na mala-pulbos at palutang lutang. Gusto kong puntahan mo iyon at siyasatin.","Ta mới nghe nói rằng có một đám mây kỳ lạ đang phát triển sâu trong Yggdrasil. -Đám mây có màu màu vàng và trông như phấn. Ta muốn ngươi đi điều tra." +Đám mây có màu màu vàng và trông như phấn. Ta muốn ngươi đi điều tra." DIALOG_20_1_0,[npc:12]...My back has been itching all day! I am going to spray spores... this will make more brothers... I'm so bored...,"[npc:12]#$@%$##$%@#…. 등이 하루종일 간지러워.. 나는 포자를 팡팡 뿌릴거야.. 그래서 내 동생들을 많이 만들거야.. 심심해..","[npc:12]#$@%$#$%@#… @@ -476,7 +476,7 @@ Então eu vou fazer um monte dos meus irmãos. Eu estou entediada…","[npc:12]# Aku akan menyemprotkan spora... ini akan membuat lebih banyak saudara... Saya sangat bosan...","[npc:12]#$@%$##$%@#…. Моя спина зудит весь день. Я собираюсь распылить споры... Это произведет на свет больше братьев.. Мне скучно...","[npc:12]#$ @%$ ### $%@#…。我整天都痒。 -我要喷孢子…所以我要结交很多兄弟。我很无聊…",[NPC:12]#$@%$ ## $%@#…。我一整天都在癢。我要噴孢子... 這會產生更多的兄弟們...我無聊…,[npc:12]#$@%$##$%@#….Buong araw nang nangagati ang likod ko. Makapagpasabog nga ng aking mga binhi... Dadami na naman kami nito... Nakakalungkot mag-isa....,[npc:12] ... Lưng ta đã bị ngứa cả ngày! Ta sẽ phun các bào tử ... Các anh em sẽ được tạo ra... Thật chán quá đi ... +我要喷孢子…所以我要结交很多兄弟。我很无聊…",[NPC:12]#$@%$ ## $%@#…。我一整天都在癢。我要噴孢子... 這會產生更多的兄弟們...我無聊…,[npc:12]#$@%$##$%@#….Buong araw nang nangagati ang likod ko. Makapagpasabog nga ng aking mga binhi... Dadami na naman kami nito... Nakakalungkot mag-isa....,[npc:12] ... Lưng ta đã bị ngứa cả ngày! Ta sẽ phun các bào tử ... Các anh em sẽ được tạo ra... Thật chán quá đi ... DIALOG_20_1_1,"Oh. Who are you? Are you going to play with me? Well... If you're not going to play with me, then quit following me... Stop!","앗, 너는 누구야..? 나랑 같이 놀아줄거야..? 흐음.. 같이 놀아줄 게 아니라면.. 날 따라오지마. 따라오지 말라고!","[npc:12]Quem é você? @@ -488,19 +488,19 @@ Bem, se você não vai brincar comigo… Não me siga. Não me siga!","おぉ、 Baiklah... Jika kamu tidak ingin bermain-main denganku, maka berhentilah mengikutiku... Berhenti!","О, Кто ты? Ты собираешься поиграть со мной? Ну... если не собираешься со мной играть... Не иди за мной. Не надо!","哦,你是谁?你要和我一起玩吗? -噢,你不会和我一起玩...别跟着我。",哦,你是誰?你要和我玩嗎?那麼...如果你不和我玩...就不要跟著我。不要!,Ah. Sino ka? Makikipaglaro ka ba sa akin? Hmmm.... kung hindi ka makikipaglaro... Huwag mo akong sundan. Huwag sabi!,"Ồ. ngươi là ai? Ngươi sẽ chơi với ta? Chà ... Nếu ngươi sẽ không chơi với ta, thì đừng có đi theo ta ... Dừng lại!" +噢,你不会和我一起玩...别跟着我。",哦,你是誰?你要和我玩嗎?那麼...如果你不和我玩...就不要跟著我。不要!,Ah. Sino ka? Makikipaglaro ka ba sa akin? Hmmm.... kung hindi ka makikipaglaro... Huwag mo akong sundan. Huwag sabi!,"Ồ. ngươi là ai? Ngươi sẽ chơi với ta? Chà ... Nếu ngươi sẽ không chơi với ta, thì đừng có đi theo ta ... Dừng lại!" DIALOG_21_1_0,[npc:09]Whoa! What are these?! Please come help me! (T_T),"[npc:09]으악!! 얘들은 뭐야 어서 나 좀 살려줘 ㅠㅠ","[npc:09]Whoa! O que é isto? Vamos, me ajude. T_T","[npc:09]わぁ! 何だこいつらは? 頼む、助けてくれ~ T_T","[npc:09]¡Vaya! ¿Qué son estas cosas? Por favor, ven a ayudarme. T_T",[npc:09]โอ้โฮ! พวกนี้คืออะไร? ได้โปรดช่วยฉันด้วย T_T,[npc:09]Wah! Apa ini?! Tolong datang bantu aku! (T_T),"[npc:09]Эй! Что это? -Прошу, иди помоги мне. T_T",[npc:09]哇!这些是什么?请帮我。 T_T,[NPC:09]哇!這些是什麼?請來幫幫我。 T_T,[npc:09] Whoa! Ano ang mga ito? Pakiusap tulungan nyo ako. T_T,[npc:09] Whoa! Cái gì đây?! Xin hãy đến giúp ta! (T_T) +Прошу, иди помоги мне. T_T",[npc:09]哇!这些是什么?请帮我。 T_T,[NPC:09]哇!這些是什麼?請來幫幫我。 T_T,[npc:09] Whoa! Ano ang mga ito? Pakiusap tulungan nyo ako. T_T,[npc:09] Whoa! Cái gì đây?! Xin hãy đến giúp ta! (T_T) DIALOG_22_1_0,[npc:13]...Let's blossom... Let's spread our seeds... We're going to keep growing... We're going to bloom...,"[npc:13]@$%%^%^&#.. 꽃을 피우러 가자. 씨를 뿌리러 가자. 우리는 계속 예쁘게 자라나서 꽃을 피울거야.","[npc:13]@$%^%^&#... Vamos em flor. Vamos seeding. Nós vamos continuar a crescer muito, e nós vamos florescer.","[npc:13]@$%%^%^&#.. 花を咲かせましょう。種をまきましょう。 私たちはキレイに育って花を咲かせるの。",[npc:13]@$%%^%^&#.. Vamos a florecer. Vamos a esparcir nuestras semillas. Seguiremos creciendo y floreciendo.,[npc:13]@$%%^%^&#.. ออกดอกกันเถอะ มากระจายเมล็ดพันธุ์ของเรา เราจะเติบโตต่อไปและเราจะผลิบานต่อไปเรื่อยๆ,[npc:13]...Ayo berkembang... Ayo tebarkan benih kita... Kita akan terus tumbuh... Kita akan berkembang...,"[npc:13]@$%%^%^&#.. Давай расцветать. Давай распространим наше семя. Мы собираемся расти, мы собираемся цвести.","[npc:13]@ $ %% ^%^&#..让我们开花吧。让我们去播种。 -我们要保持漂亮的成长,我们要绽放。",[npc:13]@$ %%^%^&#..讓我們盛開。讓我們散播我們的種子。我們要持續增長,我們要盛開。,[npc:13]@$%%^%^&#.. Mamukadkad tayo. Magpakalat ng mga binhi. Magpaparami tayo at sama-samang magsisipaglago.,Hãy nở đi nào… Hãy phát tán hạt của chúng ta… Chúng ta sẽ tiếp tục sinh trưởng… Chúng ta sẽ nở… +我们要保持漂亮的成长,我们要绽放。",[npc:13]@$ %%^%^&#..讓我們盛開。讓我們散播我們的種子。我們要持續增長,我們要盛開。,[npc:13]@$%%^%^&#.. Mamukadkad tayo. Magpakalat ng mga binhi. Magpaparami tayo at sama-samang magsisipaglago.,Hãy nở đi nào… Hãy phát tán hạt của chúng ta… Chúng ta sẽ tiếp tục sinh trưởng… Chúng ta sẽ nở… DIALOG_22_1_1,"No matter how hard you to to get rid of us, it won't work. We've already multiplied... How exciting! There are so many pretty flowers!","아무리 우리를 없애려고 해도 소용 없을걸? 우리는 이미 엄청 많아졌거든. 와 신난다!! 예쁜 꽃들이 많아졌어!","Não importa o quão duro você tentar se livrar de nós, não vai funcionar. @@ -511,14 +511,14 @@ Uau, emocionante! Há muitas bonitas flores!","私たちを追い払おうとし Нас уже стало намного больше. Как восхитительно!! Вокруг так много прекрасных цветов!","无论您多么努力地摆脱我们,它都行不通。我们已经有了更多的东西。 哇,令人兴奋!!有很多漂亮的花朵!",無論你多麼努力地試圖擺脫我們,都不會奏效。我們已經得到了更多。多麼令人興奮! !有這麼多漂亮的花!,"Kahit anong gawin nyo na pagsugpo sa amin, hindi kayo magwawagi. Napakadami na namin. Nakakatuwa! Andaming naggagandahang bulaklak!","Cho dù ngươi làm mọi thứ để thoát khỏi chúng ta thì cũng sẽ chẳng có tác dụng gì. -Chúng ta đã nhân lên rồi ... Thật thú vị! Thật nhiều những bông hoa xinh đẹp!" -DIALOG_22_1_2,(The swarm of flowers scatters.),(꽃 무리들은 우르르 사라졌다),(Os bandos de flores me embora),(花の群れは消えていった),(Las enjambres de flores se alejaron rugiendo.),(ฝูงดอกไม้คำรามออกไป),(Segerombolan bunga bertebaran.),(Толпа цветов проревела вдали.),(成群的花朵怒吼了),(一大群花瘋狂地咆哮著。),(At ang pulutong ng mga bulaklak ay nagsipag alisan).,(Đám hoa phân tán.) +Chúng ta đã nhân lên rồi ... Thật thú vị! Thật nhiều những bông hoa xinh đẹp!" +DIALOG_22_1_2,(The swarm of flowers scatters.),(꽃 무리들은 우르르 사라졌다),(Os bandos de flores me embora),(花の群れは消えていった),(Las enjambres de flores se alejaron rugiendo.),(ฝูงดอกไม้คำรามออกไป),(Segerombolan bunga bertebaran.),(Толпа цветов проревела вдали.),(成群的花朵怒吼了),(一大群花瘋狂地咆哮著。),(At ang pulutong ng mga bulaklak ay nagsipag alisan).,(Đám hoa phân tán.) DIALOG_23_1_0,[npc:09]We're in trouble. I think it's already out of control. I almost got stepped on right now!,"[npc:09]큰일났어. 이미 걷잡을 수 없을 만큼 많아진 것 같아. 나 방금 완전히 밟힐 뻔 했어.","[npc:09]Eu estou em apuros. Acho que já está fora de controle. Eu quase pisei em que só agora.","[npc:09]大変、もう手に負えないくらい増えてる。 もう少しで踏んじゃうところだったよ。",[npc:09]Estamos en problemas. Creo que ya se ha descontrolado por completo. Casi me aplastan por completo justo ahora.,[npc:09]เรากำลังเจอปัญหา ฉันคิดว่ามันควบคุมไม่ได้แล้ว ตอนนี้ฉันเกือบจะโดนเหยียบหมดแล้ว,[npc:09]Kita dalam masalah. Aku pikir ini sudah di luar kendali. Aku hampir terinjak sekarang!,"[npc:09]У нас неприятности. Я думаю, все вышло из-под контроля. На меня только что почти не наступили.","[npc:09]我们有麻烦了。我认为它已经失控了。 -我刚才几乎踩了它。",[NPC:09]我們有麻煩了。我想這已經無法控制了。剛才我幾乎被完全踩扁。,[npc:09] Lagot na. Sa palagay ko ay mahihirapan na tayong ayusin ito. Muntik pa akong mapahamak kani-kanina lang.,[npc:09] Chúng ta gặp rắc rối rồi. Ta nghĩ rằng nó đã mất kiểm soát. Suýt nữa thì ta bị đè bẹp! +我刚才几乎踩了它。",[NPC:09]我們有麻煩了。我想這已經無法控制了。剛才我幾乎被完全踩扁。,[npc:09] Lagot na. Sa palagay ko ay mahihirapan na tayong ayusin ito. Muntik pa akong mapahamak kani-kanina lang.,[npc:09] Chúng ta gặp rắc rối rồi. Ta nghĩ rằng nó đã mất kiểm soát. Suýt nữa thì ta bị đè bẹp! DIALOG_24_1_0,"[npc:06]I'll tell you one thing Goddess Freya can help you with... You're going to start needing gold. Of course, there are ways to make and sell items to other cats, but with the power of Freya, you can turn the energy beyond this dimension into gold.","[npc:06]사려깊은 프레이야 여신의 은혜 한 가지를 알려줄게. 이제 슬슬 돈이 필요할거야. 물론 물건을 만들어서 다른 고양이들에게 파는 방법도 있겠지만. @@ -536,7 +536,7 @@ Kamu akan mulai membutuhkan emas. Tentu saja, ada cara untuk membuat dan menjual 当然,有制造并出售给其他猫的方式。 但是,借助女神的力量,您可以更好回复能量。",[NPC:06]我會告訴你女神弗蕾雅可以幫助你的一件事。你開始需要黃金了。當然,有製造東西並賣給其他貓的方法。但是,通過女神的力量,你可以把超越這個維度的能量轉化為黃金。,"[npc:06] May ituturo akong isang bagay sayo. Si Freya ang ating Diyosa ay matutulungan tayo. Kakailanganin nating gumamit ng ginto. May ibat-ibang paraan para makakuha nito tulad ng pagbuo ng mga bagay-bagay at ibenta sa iba. Sa tulong ng kapangyarihan ng ating Diyosa, ay maaari nating gawing ginto ang enerhiyang nakapalibot sa dimensiyong ito.","[npc:06] Nữ thần Freya có thể giúp ngươi một thứ ... Ngươi sẽ bắt đầu cần vàng. Tất nhiên, có nhiều cách để tạo ra và bán các vật phẩm cho những con mèo khác, nhưng với sức mạnh của Freya, -ngươi có thể biến năng lượng vượt quá này thành vàng." +ngươi có thể biến năng lượng vượt quá này thành vàng." DIALOG_24_1_1,"However, once the connection to the world is lost, the energy cannot be returned. The power of the goddess only works if you are connected to this world.","다만, 이 세계와의 연결이 끊어지면 에너지를 환원할 수 없기 때문에 계속 이 세계와 연결되어 있어야만 여신님의 힘이 작용할 수 있어.","No entanto, uma vez que a conexão com este mundo está perdido, a energia não pode ser devolvida. Só se você estiver conectado a esse mundo o poder da Deusa.","ただし、この世界との接続が切れると、エネルギーを還元することができないの。 @@ -544,7 +544,7 @@ Só se você estiver conectado a esse mundo o poder da Deusa.","ただし、こ Kekuatan Dewi hanya berfungsi jika kamu terhubung dengan dunia ini.","Однако, как только связь с этим миром оборвется, энергию нельзя будет вернуть. Таким образом, сила Богини работает, если ты связан с этим миром.","但是,一旦失去与这个世界的联系,就无法回复能量。 只有当您连接到这个世界时,女神的力量才能发挥作用。",然而,一旦失去與這個世界的連接,能量就不能被返回。所以女神的力量只有在你與這個世界連接時才有效。,"Subalit, kapag naputol ang koneksiyon mo sa mundong ito, ay mawawala din ang mahiwagang enerhiya. Samakatuwid, gumagana lang ang kapangyarihan ng Diyosa kapag ikaw ay konektado sa mundong ito.","Tuy nhiên, một khi kết nối với thế giới bị mất, năng lượng không thể được hoàn lại. -Sức mạnh của nữ thần chỉ hoạt động nếu ngươi được kết nối với thế giới này." +Sức mạnh của nữ thần chỉ hoạt động nếu ngươi được kết nối với thế giới này." DIALOG_28_1_0,"[npc:08]Hey. It's easy to overlook. However, one of the virtues of warriors is to stock up on supplies. The higher the nutritional value of the food you equip before combat, the better you will perform in battle.","[npc:08]이봐. 간과하기 쉽지만, 전사의 덕목 중 하나는 보급품을 잘 비축하는 것이다. 양질의 영양분을 섭취할 수록 전투에 유리해지기 때문이지.","[npc:08]Olha. É fácil de passar despercebido. @@ -557,7 +557,7 @@ Semakin tinggi nilai gizi makanan yang diengkapi sebelum bertempur, semakin baik но одно из хороших качеств воина - запастись провизией. Ведь чем лучше питательная ценность еды, которую ты съедаешь, тем лучше ты проявляешь себя в битве.","[npc:08]嘿,众所周知,战士的优点之一是储备用品。 这是因为您的营养素质越高,您在战斗中的表现就会越好。",[NPC:08]嘿,這很容易被忽視,但戰士的一種美德是囤積物資。這是因為你消耗的食物的營養價值越好,你在戰鬥中的表現就會變得更好。,"[npc:08] Minsan ay madaling makalimutan, na ang isang magandang katangian ng isang mandirigma ay ang pag-iimbak ng mga pagkain. Sapagkat kung mas masustansiya ang iyong kinain, ay mas maganda ang iyong maipapamalas sa pakikipaglaban.","[npc:08] Này. Nhiều người xem nhẹ nhưng một trong những phẩm chất của chiến binh là đảm bảo nguồn cung cấp dự trữ. -Giá trị dinh dưỡng của thực phẩm ngươi mang theo càng cao trước khi chiến đấu, ngươi sẽ càng chiến đấu tốt hơn." +Giá trị dinh dưỡng của thực phẩm ngươi mang theo càng cao trước khi chiến đấu, ngươi sẽ càng chiến đấu tốt hơn." DIALOG_28_1_1,There has been a shortage of food ever since this place became chaotic. A good warrior will be rewarded with ingredients after proving their strength in battles with other cats. More ingredients will be rewarded to the most capable warriors.,"이곳이 흉흉해지기 시작한 후로 음식이 많이 부족한 상태. 훌륭한 전사에게는 왕국에 비축된 보급품을 나누어 줄 것이다. 물론 더 유능한 전사에게 많은 보급품을 줄 것이라는 점을 잊지 말도록.","Não foi uma escassez de alimentos, uma vez que este lugar começou a se tornar caótico. @@ -572,7 +572,7 @@ Bahan yang lebih banyak akan diberikan kepada prajurit yang paling cakap.","Се 好战士会获得王国储存的物资。当然, 别忘了我们会为能力更强的战士提供更多物资。",自從這個地方變得如此混亂以來,食物一直供不應求。一個優秀的戰士將會得到儲存在王國的供應。當然,我們會給更有能力的戰士提供更多的物資,別忘了這一點。,"May mga pagkakataon na kinakapos sa supply ng pagkain simula noong ang mundong ito ay naging magulo. Ang isang mabuting mandirigma ay bibigyan ng pagkain ng aming kaharian. Huwag mo din kakalimutan, na mas mabibigyan ang mas mahusay na mandirigma.","Thực phẩm đã trở nên khan hiếm kể từ khi nơi này trở nên hỗn loạn. Một chiến binh xuất sắc sẽ được thưởng các nguyên liệu sau khi chứng minh sức mạnh của mình trong các trận chiến với những con mèo khác. -Chiến binh càng xuất sắc càng nhận được nhiều phần thưởng" +Chiến binh càng xuất sắc càng nhận được nhiều phần thưởng" DIALOG_29_1_0,[npc:14]*sobbing* I didn't ask to be born like this... It's not my fault!,"[npc:14]흑흑.. 나는 이렇게 자라고 싶지 않았어. 내 탓이 아니야!!","[npc:14]eu não queria crescer assim, @@ -581,7 +581,7 @@ não é minha culpa!","[npc:14]シクシク… 私のせいじゃない!",[npc:14]Snif... snif... No quería crecer así. ¡No es culpa mía!,[npc:14]ฮือ.. ฮือ… ฉันไม่ได้อยากโตมาแบบนี้ มันไม่ได้เป็นความผิดของฉัน!!,[npc:14]*terisak* Aku tidak meminta dilahirkan seperti ini... Itu bukan salahku!,"[npc:14]Хнык.. Хнык.. Я не хочу взрослеть таким образом. Это не моя вина!!","[npc:14]嗯 .. 嗯…我不想这样长大。 -这不是我的错!!",[npc:14]嗚嗚...我並不想這樣長大。這不是我的錯! !,[npc:14]Huhu... Ayoko nang lumaki ng ganito. Hindi ko ito kasalanan!,[npc:14]* Nức nở* Ta không muốn được sinh ra như thế này ... đó không phải là lỗi của ta! +这不是我的错!!",[npc:14]嗚嗚...我並不想這樣長大。這不是我的錯! !,[npc:14]Huhu... Ayoko nang lumaki ng ganito. Hindi ko ito kasalanan!,[npc:14]* Nức nở* Ta không muốn được sinh ra như thế này ... đó không phải là lỗi của ta! DIALOG_29_1_1,"Everyone hates me because of these thorns... They get hurt just passing by... If you as much get near me, I'll hurt you too.","모두 다 나를 싫어하잖아. 스치기만 해도 아프니까. 그렇다면 내가 먼저 때려주겠어. 근처에 가까이 오기만 하면 상처를 내줄거야.","Todo mundo me odeia. Dói só para passar por mim. @@ -593,7 +593,7 @@ Jika kamu terlalu sering mendekatiku, aku akan menyakitimu juga.","Все нен Поэтому я ударю тебя первым.. Если ты подойдешь ближе, я причиню тебе боль.","每个人都恨我。 只是让我过去而感到痛苦。 然后我会先打你。如果你靠近我,我会伤害你。",每個人都討厭我,因為只要經過我就會感到疼痛。所以我會先打你.. 如果你靠近我,我會傷害你。,Lahat na lang ay kinamumuhian ako dahil nasasaktan sila kapag nadadaanan nila ako. Kaya ako na ang maunang manakit... kapag sinubukan nyo pang lumapit. Masasaktan ko kayo.,"Mọi người ghét ta vì những cái gai này ... họ bị tổn thương khi đi ngang qua ... -nếu ngươi đến gần ta, ta cũng sẽ làm tổn thương ngươi." +nếu ngươi đến gần ta, ta cũng sẽ làm tổn thương ngươi." DIALOG_30_1_0,"[npc:05]Well, I think you need to be firmly armed to deal with that monster. If they start hitting you with those whip-like vines from a distance, you won't be able to hold out for long!","[npc:05]음.. 저 녀석을 상대하려면 단단히 무장을 해야 할 것 같군. 멀리서 저 채찍같은 덩굴로 때리기 시작하면, 버티기가 쉽지는 않을거야.","[npc:05]Bem, eu acho que precisamos de nos armar para lidar com isso. Se começa a bater com o chicote na distância, ele não vai ser fácil de aguentar.","[npc:05]おい、あいつを相手にするならもっと装備を整えないとな。 @@ -601,7 +601,7 @@ Se começa a bater com o chicote na distância, ele não vai ser fácil de aguen Jika mereka mulai memukulmu dengan tanaman merambat seperti cambuk dari jarak jauh, kamu tidak akan bisa bertahan lama!","[npc:05]Ну, я думаю тебе следует хорошо вооружиться, чтобы справиться с этим монстром. Если они начнут бить тебя лозами, похожими на хлыст, с расстояния, тебе непросто будет продержаться долго.","[npc:05]好吧,我认为您需要武装自己以应对这一问题。 如果它开始在远处用鞭子攻击,就很难控制了。",[NPC:05]嗯,我覺得你需要堅實的武裝來對付那個怪物。如果他們開始用那些鞭子般的藤條從遠處打你,你不會堅持太久的。,[npc:05] Hmm. Kinakailangan mo ng mas matibay na sandata para magapi ang halimaw na yan. Kapag nasimulan na nilang umatake ng kanilang latigo mula sa malayo. Ay mahihirapan ka ng saluhin ang lahat ng atake nila.,"[npc:05] Chà, ta nghĩ rằng ngươi cần được trang bị kỹ càng để đối phó với con quái vật đó. -Nếu nó bắt đầu đánh ngươi bằng những dây leo giống như roi từ xa, ngươi sẽ không thể trụ được lâu!" +Nếu nó bắt đầu đánh ngươi bằng những dây leo giống như roi từ xa, ngươi sẽ không thể trụ được lâu!" DIALOG_31_1_0,"[npc:09](From far away, the earth begins to rumble) What is this sound? Could it be an earthquake... or something else?","[npc:09](먼 곳에서 우르르르 땅이 울리기 시작했다) 이게 무슨 소리지..? 어디서 지진이라도 일어나고 있는 건가?","[npc:09](A Terra começou a trabalhar de longe.) @@ -613,7 +613,7 @@ Mungkinkah itu gempa bumi... atau sesuatu yang lain?","[npc:09](Земля на Что это за звук? Там землятрясение или что?","[npc:09](地面从远处开始咆哮。这是) 什么声音?是地震还是什么??",[NPC:09](遠處的大地開始咆哮。)這是什麼聲音?是地震嗎?,[npc:09](Ang lupa ay nagsimulang tumunog sa malayo.) Ano itong ingay na ito? May lindol ba o ano?,"[npc:09] (Từ xa, Trái đất bắt đầu rung lắc ầm ầm) Âm thanh này là gì? -Có phải là một trận động đất không... Hay là một cái gì đó khác?" +Có phải là một trận động đất không... Hay là một cái gì đó khác?" DIALOG_32_1_0,[npc:15]Let's go! Let's go! Hurry up! Don't push me... it's annoying. Hurry it up! (Rumble Rumble),"[npc:15]빨리 가자 빨리빨리!! 밀치지 마! 짜증나니까 빨리 가자고!! (우르르르르르르)","[npc:15]Vamos, vamos, apresse -se! @@ -624,7 +624,7 @@ Não me empurre! É irritante, vamos! Не толкай меня! Это раздражает, так что поторопимся! (кругом грохочет)","[npc:15]走吧,走吧,快点!别逼我! 很烦人,让我们开始吧! (隆隆的隆隆声)",[NPC:15]走吧,走吧,快點!別推我!真煩人,我們趕快吧! (隆隆聲),"[npc:15] Tara na, tara na, bilisan natin! Huwag mo akong itulak! Nakakairita, kaya bilisan na natin! (Dali Dali)","[npc:15] Đi nào! Đi nào! Nhanh lên! Đừng đẩy ta ... Thật khó chịu. -Nhanh lên nhanh lên! (Ầm ầm)" +Nhanh lên nhanh lên! (Ầm ầm)" DIALOG_33_1_0,[npc:09]Gee... I thought the rock was rolling. They always tackle anything that blocks their way. Take care of yourself!,"[npc:09]어휴.. 바위가 굴러오는 줄 알았어. 쟤들은 앞에 가리는 게 있으면 무조건 박고 보더라고. 너도 몸조심 해야 할거야.","[npc:09]Caramba ... Pensei que a pedra estava rolando. @@ -636,7 +636,7 @@ Mereka selalu mengatasi apa pun yang menghalangi jalan mereka. Jaga dirimu!","[n Они всегда сбивают все, что преграждает им путь. Тебе следует позаботиться о себе тоже.","[npc:09]Gee ...我以为岩石在滚动。 他们会一直盯着挡在他们前面的任何东西。 -您也应该照顾好自己。",[NPC:09] 哎呀...我以為石頭在滾動。他們總是會撞擊任何阻擋他們的東西。你也應該好好照顧自己。,"[npc:09] Naku... Akala ko gumugulong na ang bato. Palaging hinaharap nila ang anumang humaharang sa kanilang daan. Ikaw ,dapat mo rin ingatan ang sarili mo.",[npc:09] Gee ... Ta nghĩ đó là đá lăn. Chúng sẵn sàng san phẳng bất cứ điều gì chặn đường. Cẩn thận! +您也应该照顾好自己。",[NPC:09] 哎呀...我以為石頭在滾動。他們總是會撞擊任何阻擋他們的東西。你也應該好好照顧自己。,"[npc:09] Naku... Akala ko gumugulong na ang bato. Palaging hinaharap nila ang anumang humaharang sa kanilang daan. Ikaw ,dapat mo rin ingatan ang sarili mo.",[npc:09] Gee ... Ta nghĩ đó là đá lăn. Chúng sẵn sàng san phẳng bất cứ điều gì chặn đường. Cẩn thận! DIALOG_34_1_0,[npc:16]Why don't you just give up? We are the manifestation of the many emotions of Yggdrasil in this world. Nothing can stop us.,"[npc:16]이제 그만 하는게 어때? 누구도 우리를 막을 순 없어. 우리는 이그드라실이 느끼는 이 세계의 수많은 감정들이 모두 형상화된 존재들이지.","[npc:16]Por que você não parar agora? @@ -648,7 +648,7 @@ Tidak ada yang bisa menghentikan kita.","[npc:16]Почему бы тебе се Никто нас не остановит. Мы - проявление множества эмоций Иггдрасиля в этом мире.","[npc :16]为什么不现在就停止?没有人可以阻止我们。 我们是伊格德拉西尔这个世界上所有情感都得以体现的存在。",[NPC:16]為什麼你現在不放棄呢?沒人能阻止我們。我們是世界樹在這個世界的許多情感的表現。,[npc:16] Bakit hindi ka na lang sumuko ngayon? Wala ni isa ang makakapigil sa amin. Kami ang manipestasyon ng mga emosyon ng Yggdrasil sa mundong ito.,"[npc:16] Tại sao ngươi không từ bỏ? -Chúng ta là hiện thân từ những cảm xúc của Yggdrasil trong thế giới này. Không có gì có thể ngăn chặn chúng ta." +Chúng ta là hiện thân từ những cảm xúc của Yggdrasil trong thế giới này. Không có gì có thể ngăn chặn chúng ta." DIALOG_34_1_1,"On your way here you've seen all sorts of creatures, right? Some are joyful while others are sad or resentful. They weren't born this way. This is how they've become because they are harboring the hatred, sorrow, and regret of the world.","여기까지 오면서, 즐거워하고 기뻐하고 화가 나있거나 또는 슬퍼하는 애들을 봤지? 이 아이들은 처음부터 난폭하고 흉측한 모습으로 태어난 게 아니야. 이 세계에 점점 화나고 슬퍼하는 이들이 많아지기 때문에 우리도 이렇게 되어가는거야.","No caminho para cá, você viu criaturas que é feliz, feliz, zangado, ou triste, certo? @@ -662,12 +662,12 @@ Mereka menjadi seperti ini karena mereka menyimpan kebencian, kesedihan, dan pen Это то, какими мы стали, потому что все чаще и чаще в мире скрывают ненависть, печаль и сожаление.","在这里的路上,您已经看到了快乐,愤慨的生物他们从一开始就不是天生的丑陋。 这就是我们的由来,因为世界上越来越多的人怀有仇恨,悲伤和遗憾。",在你來這裡的路上,你看到過歡樂、怨恨或沮喪的生物,對吧?他們一開始就不是這樣的。因為世界上越來越多的人懷有仇恨、悲傷和遺憾,所以我們才會變成這樣。,"Sa iyong paglalakbay patungo rito, nakita mo ang mga nilalang na masaya, may hinanakit, o nalulumbay, diba? Hindi sila ipinanganak na ganyan. Ito ang naging kalagayan namin dahil mas dumarami ang mga nagtatago ng galit, kalungkutan, at panghihinayang sa mundong ito.","Trên đường đi tới đây, ngươi hẳn đã thấy rất nhiều các loại sinh vật, phải không? Một số là Niềm vui trong khi những kẻ khác là Buồn chán hoặc Bực bội. Chúng không phải sinh ra đã thế. -Chúng trở thành như thế vì chúng đang mang theo sự thù hận, buồn bã và hối tiếc của thế giới." +Chúng trở thành như thế vì chúng đang mang theo sự thù hận, buồn bã và hối tiếc của thế giới." DIALOG_34_1_2,"There's no use in trying any longer, just go back. Go back. Now.","그러니까 이제 뭘 해도 소용 없어. 이쯤에서 그만 돌아가.","Então não adianta fazer nada agora. Pare de voltar aqui, agora.","だから、もう何をしても無駄だよ。 今すぐ帰れ。",Así que no sirve de nada hacer algo. Detente y regresa ahora mismo.,มันไม่มีประโยชน์ที่จะทำต่อไป หยุดแล้วกลับไป เดี๋ยวนี้,"Tidak ada gunanya mencoba lagi, kembali saja. Kembali. Sekarang.","Так что нет больше смысла что-либо еще делать. -Остановись сейчас же и иди назад.",因此,现在无所作为。现在,不要再回到这里。,所以,做什麼都沒用了。現在就停下來,回去吧。,Wala na tayong magagawa. Tumigil ka na at bumalik ka. Ngayon na,"Không có ích gì nữa, quay lại. Quay lại. Ngay lập tức." +Остановись сейчас же и иди назад.",因此,现在无所作为。现在,不要再回到这里。,所以,做什麼都沒用了。現在就停下來,回去吧。,Wala na tayong magagawa. Tumigil ka na at bumalik ka. Ngayon na,"Không có ích gì nữa, quay lại. Quay lại. Ngay lập tức." DIALOG_35_1_0,"[npc:07]Sigh... We've managed to somewhat cull the breeding of Yggdrasil creatures, but I've exhausted too much of my energy in wait. At this rate, I am not strong enough to stop the rest of the brood.","[npc:07]하아.. 가장 거대하게 증식한 이그드라실의 모종을 어느정도 무력화 시켰습니다. 하지만 당신이 이곳에 오는걸 기다리느라 힘을 너무 많이 써버렸어요. 지금 제 상태로는 이그드라실 무리의 폭주를 모두 막기에 부족합니다.","[npc:07]Prossiga ... estamos um pouco, pois neutralizaram o maior de Yggdrasil. @@ -679,12 +679,12 @@ Kalau terus begini, aku tak cukup kuat untuk menghentikan yang lainnya.","[npc:0 Но я потратил слишком много времени в ожидании твоего прибытия. На данный момент я недостаточно силен, чтобы остановить толпу Иггдрасиля.","[npc:07]唉...我们已经淘汰了最大的伊格德拉西尔品种。但是我花了太多时间等着你来这里。 就像我现在一样,我还不足以阻止伊格德拉西尔暴民。",[NPC:07]嘆...我們在一定程度上中和了世界樹最大的繁殖地。但我等你來這里花了太多時間。現在我已經沒有足夠的力量來阻止世界樹的暴民。,"[npc:07] Hay... medyo napigilan natin ang pinakamalaking pugad ng Yggdrasil. Ngunit madaming na aksyahang oras dahil sa paghihintay sa pag dating mo dito. Sa puntong ito, hindi sapat ang aking lakas upang pigilan ang mga kalaban sa Yggdrasil.","Haizzz... Chúng ta đã ngăn chặn việc sản sinh của những sinh vật từ Yggdrasil đó. -Nhưng ta kiệt sức mất rồi. Với tốc độ này, ta không đủ mạnh để ngăn chặn phần còn lại." +Nhưng ta kiệt sức mất rồi. Với tốc độ này, ta không đủ mạnh để ngăn chặn phần còn lại." DIALOG_35_1_1,The rest is in your hands. Please destroy the root and end this.,"이제 나머지는 당신의 손에 달렸습니다. 부디 그 뿌리를 마지막까지 섬멸해주세요.","O resto está nas tuas mãos agora. Por favor, destrói a raiz até o fim.","あとはあなたの手にかかっています。 どうかその根を最後まで破壊して下さい。","Ahora el resto está en tus manos. Por favor, destruye la raíz hasta el final.",ที่เหลือขึ้นอยู่กับนายแล้ว ได้โปรดกำจัดรากของมันทั้งหมดซะ,Sisanya ada di tanganmu. Tolong hancurkan akarnya dan akhiri ini.,"Остальное в твоих руках. -Пожалуйста, уничтожь источник до конца.",其余的就在您手中。请彻底毁掉。,剩下的事就交給你了。請把根部摧毀到底。,"Nasa iyong mga kamay ang lahat. Pakiusap, puksain mo ang ugat hanggang sa dulo.",Phần còn lại giao cho ngươi. Hãy phá hủy bộ rễ và kết thúc điều này. +Пожалуйста, уничтожь источник до конца.",其余的就在您手中。请彻底毁掉。,剩下的事就交給你了。請把根部摧毀到底。,"Nasa iyong mga kamay ang lahat. Pakiusap, puksain mo ang ugat hanggang sa dulo.",Phần còn lại giao cho ngươi. Hãy phá hủy bộ rễ và kết thúc điều này. DIALOG_36_1_0,"[npc:16]Ha... ha... So, this is how it's going to end... I'm getting weaker, but even if you get rid of me... You won't be able to get rid of us all.","[npc:16]하아… 하아….. 결국.. 이렇게 되어버렸네.. 점점 힘이 빠지고 있어. 하지만 나를 없애도.. 우리를 모두 없애지는 못할 거다..","[npc:16]Ha.. ha.. Então, isso é o que aconteceu. @@ -697,14 +697,14 @@ Kamu tidak akan bisa menyingkirkan kami semua.","[npc:16]Ха... ха... Так но даже если ты избавишься от меня... Ты не сможешь избавиться от всех нас.","[npc:16]哈...哈...所以,这就是要结束的方式。 我越来越虚弱,但是即使你摆脱了我...","[NPC:16] 哈...哈...這就是要結束的方式嗎... 我變得越來越虛弱,但即使你擺脫了我... 你也無法擺脫我們所有人。 但你... 現在還不是你來這個世界的時候…你們這種生物還不應該出現在這裡。為什麼..","[npc:16]Ha... ha... Ganito pala ang magiging katapusan ko... Naghihina na ako, ngunit kahit pa natalo mo ako... Hindi mo kami kayang talunin lahat.","Haha… Vậy ra đây là kết thúc của chúng ta… Ta đang yếu dần, nhưng kể cả khi ngươi có thể tiêu diệt ta… -Ngươi sẽ không bao giờ có thể hoàn toàn tiêu diệt giống loài của ta." +Ngươi sẽ không bao giờ có thể hoàn toàn tiêu diệt giống loài của ta." DIALOG_36_1_1,But you... It's not yet time for you to come to this world… Your kind shouldn't be here yet. Why...,"그런데 너는.. 아직 이 세계로 오기에는… 아직 여기 오면 안될 것 같은 존재인데 어째서……..","Mas você.. Ainda não é hora de vir para este mundo.. Acho que eu não deveria estar aqui ainda. Por que..","でもキミ… キミはまだこの世界に来るときではないはずだけど… ここにいるべきではない存在なのに。どうして…",Pero tú... aún no es el momento de que vengas a este mundo... Tu especie no debería estar aquí todavía. ¿Por qué...?,แต่คุณ ... ยังไม่ถึงเวลาที่คุณจะมาที่โลกนี้ ... คุณยังไม่ควรอยู่ที่นี่ ทำไม..,Tapi kamu... Ini belum waktunya bagimu untuk datang ke dunia ini... Jenismu seharusnya belum ada di sini. Mengapa...,"Но ты... Еще не время для тебя, чтобы прийти в этот мир... Твое рождение не должно было сейчас состояться. Почему..","但是您……现在还不是时候来到这个世界…… 我不认为我应该在这里。为什么..",但你... 現在還不是你來這個世界的時候…你們這種生物還不應該出現在這裡。為什麼..,Ngunit ikaw... Hindi pa oras na pumasok ka sa mundong ito... Hindi dapat nandito ang iyong uri. Pero Bakit?,"Nhưng ngươi ... Vẫn chưa đến lúc ngươi đến thế giới này... -Loài của ngươi lẽ ra chưa thể xuất hiện ở đây. Tại sao…" +Loài của ngươi lẽ ra chưa thể xuất hiện ở đây. Tại sao…" DIALOG_36_1_2,"You said that you wanted to go back to Midgard, right..? But why do you have to go back? Do you remember what you needed to go back for..? (The Yggdrasil seedling left this world behind and took its last breath.)","미드가르드로 돌아가고 싶다고 했지..? 그런데, 왜 돌아가야 하는지.. 뭐 때문에 가야 하는지.. 기억하고 있어..? (이그드라실 모종은 이 말을 남기고 마지막 숨을 내쉬었다)","Você disse que queria ir para Midgard, certo? @@ -719,7 +719,7 @@ Apakah kamu ingat untuk apa kembali..? 但是为什么您必须回去?您还记得到达那里所要做的事情吗?? (伊格德拉西尔幼苗说完最后一句话,停止了呼吸。)",你說你想回到Midgard,對吧..? 但你為什麼要回去?你還記得你為何需要回去嗎..? (世界樹的幼苗留下這句話,然後吐出了最後一口氣。),"Sinabi mo na nais mong bumalik sa Midgard, tama ba? Ngunit bakit kailangan mong bumalik? Naalala mo ba kung bakit kailangan mong bumalik? (Ang binhi ng Yggdrasil ay iniwan ang salitang ito at huminga ng huling paghinga.)","Ngươi nói rằng ngươi muốn quay trở lại Midgard, phải không ..? Nhưng tại sao ngươi phải quay lại? Ngươi có nhớ ngươi cần phải quay lại để làm gì không ..? -(Chồi non Yggdrasil trút hơi thở cuối cùng và rời bỏ thế giới này.)" +(Chồi non Yggdrasil trút hơi thở cuối cùng và rời bỏ thế giới này.)" DIALOG_37_1_0,"[npc:07]You solved the Yggdrasil problem! Many cats gave up, so this is amazing. You really seem determined to go back to Midgard. The future adventure will be even more challenging. But if you're willing, I'll let you know what you need.","[npc:07]이그드라실의 문제를 해결했군요! 생각보다 많은 고양이들이 포기한 길인데, 놀랍습니다. 당신은 진실로 미드가르드로 되돌아가고자 하는 의지가 있어보이는군요. 앞으로의 모험은 더욱 험난할 것입니다. 그래도 감내할 수 있다면, 제가 필요한 것을 알려드리지요.","[npc:07]Você resolveu o problema da Yggdrasil! Muitos gatos desistiram, então isso foi demais. @@ -734,7 +734,7 @@ Petualangan masa depan akan lebih menantang. Jika kamu bersedia, aku akan member 您似乎真的决定回到米德加德,未来的冒险将更具挑战性。 但是,如果您愿意,我会让您知道您需要什么。",[NPC:07]你解決了世界樹的問題!許多貓都放棄了,這真是太了不起了。你真的很決心回到Midgard。未來的冒險會更具挑戰性。但如果你願意,我會告訴你需要的東西。,"[npc:07]Naayos mo ang problema ng Yggdrasil! Maraming pusa ang sumuko, kaya ito ay kamangha-mangha. Tila determinado ka na bumalik sa Midgard. Ang mga susunod na pakikipagsapalaran ay magiging mas mahirap pa. Ngunit kung handa ka, sasabihin ko sa iyo kung ano ang kailangan mo.","[npc:07] Ngươi đã giải quyết vấn đề Yggdrasil trong khi nhiều con mèo khác đã bỏ cuộc, vì vậy ngươi thật tuyệt vời. Ngươi thực sự có vẻ quyết tâm quay trở lại Midgard. Cuộc phiêu lưu trong tương lai sẽ thậm chí còn thách thức hơn. -Nhưng nếu ngươi sẵn sàng, ta sẽ cho ngươi biết những gì ngươi cần." +Nhưng nếu ngươi sẵn sàng, ta sẽ cho ngươi biết những gì ngươi cần." DIALOG_37_1_1,"Nine Essences have existed in the world since the beginning of time. Each Essence possesses significant power, but when brought together, their combined might becomes tremendous. In ancient times, the gods directly oversaw the use of these Essences. However, following the era of peace, they distributed them evenly among the tribes of the world to foster the development of ecosystems across the globe.","이 세계에는 태초부터 존재해왔던 아홉개의 정수가 있습니다. 각각의 정수는 그 자체만으로도 강력하지만, 정수가 모두 한 자리에 모였을 때 엄청난 위력을 갖게 됩니다. 과거에는 신들이 이 정수를 직접 관리했지만, 평화의 시대가 온 후 각 세계의 생태계 발전을 위해 여러 세계의 부족에 고루 분배하였어요.","Há nove Raízes no mundo que existem desde o começo. @@ -751,7 +751,7 @@ Namun, setelah era perdamaian, mereka mendistribusikannya secara merata ke suku- 众神直接管理精髓,但是在和平年代之后, 他们将它们均匀地分布在世界各部落之间,以发展世界各地的生态系统。",世界上存在著九種精華,它們自始至終都在。每一種本身都很強大,但當它們聚集在一起時,力量變得無比強大。過去,神直接管理這些精華,但在和平時代之後,他們為了全世界的生態系統的發展,將它們平均分配給世界上的各個部落。,"Mayroong siyam na Essences sa mundo na umiiral mula pa noong simula. Bawat isa sa kanila ay malakas sa kani-kanilang sarili na, ngunit kapag pinagsama-sama sa iisang lugar, ang kapangyarihan ay nakakagimbal. Noong una, direktang pinangasiwaan ng mga diyos ang mga Essences, ngunit matapos ang panahon ng kapayapaan, kanilang binahagi ang mga ito nang pantay-pantay sa mga tribu sa mundo para sa pag-unlad ng mga ekosistema sa ating buong mundo.","Chín Tinh chất đã tồn tại trên thế giới kể từ thời hồng hoang. Mỗi Tinh chất sở hữu sức mạnh đáng kể, nhưng khi được kết hợp với nhau, chúng sẽ trở nên mạnh mẽ phi thường. Vào thời cổ đại, các vị thần trực tiếp giám sát việc sử dụng các Tinh chất này. -Tuy nhiên, trong thời kỳ hòa bình, họ đã phân chia chúng đồng đều cho các bộ lạc trên thế giới để thúc đẩy sự phát triển của các hệ sinh thái trên toàn cầu." +Tuy nhiên, trong thời kỳ hòa bình, họ đã phân chia chúng đồng đều cho các bộ lạc trên thế giới để thúc đẩy sự phát triển của các hệ sinh thái trên toàn cầu." DIALOG_37_1_2,"Our problem is that we are in dire need of the Essences once more to bring an end to the war of the century. Sadly, we are unable to locate them anywhere. The tribes claim that they have lost the Essences, but the truth is that they have concealed them deeply for their own safety. The gods are eager to reclaim the Essences with minimal disruption, and I need your help in accomplishing that.","문제는 지금, 세기의 전쟁을 잠재우기 위해 정수가 다시 필요하지만, 이제 어디서도 정수를 찾을 수 없게 되었습니다. 부족들은 대외적으로 정수를 소실했다고 주장하지만, 실은 그들의 안위를 위해 깊숙한 어딘가에 숨겨놓았을 거에요. 신들은 가급적 큰 소란 없이 정수를 다시 모아오고 싶어요. 그렇기 위해 당신의 도움이 필요합니다.","O problema é que precisamos das Raízes novamente para por fim à guerra dos séculos, mas não podemos achá-las aqui nesse momento. @@ -768,7 +768,7 @@ Para Dewa sangat ingin mendapatkan kembali Essence dengan gangguan minimal, dan 诸神想要将本质重新带回尽可能减少麻烦。我需要您的帮助。",問題是我們需要再次得到精華以結束這個世紀的戰爭,但現在我們無法找到它們。各個部落聲稱他們失去了精華,但實際上,他們為了自己的安全把它藏在了某個深處。神們希望盡可能地將精華帶回來。我需要你的幫助來做到這一點。,"Ang problema ay kailangan natin muli ang Essence upang tapusin ang digmaan ng siglo, ngunit hindi natin ito mahanap kahit saan ngayon. Sinasabi ng mga tribu na nawawala ang Essence, ngunit sa katotohanan, itinago nila ito ng maigi sa isang lugar para sa kanilang kaligtasan. Nais ng mga diyos na ibalik ang Essence na wala o konting abala, hangga't maaari. At kailangan ko ng tulong mo upang gawin iyon.","Vấn đề là chúng ta đang rất cần tập hợp các Tinh chất một lần nữa để chấm dứt cuộc chiến của thế kỷ. Đáng buồn thay, chúng ta không thể định vị chúng ở bất cứ đâu. Các bộ lạc tuyên bố rằng họ đã đánh mất các Tinh chất, nhưng sự thật là họ đã che giấu chúng kỹ càng vì sự an toàn của chính họ. -Các vị thần rất mong muốn đòi lại toàn bộ các Tinh chất, và ta cần sự giúp đỡ của ngươi trong việc thực hiện điều đó." +Các vị thần rất mong muốn đòi lại toàn bộ các Tinh chất, và ta cần sự giúp đỡ của ngươi trong việc thực hiện điều đó." DIALOG_37_1_3,"The spell required to return to Midgard also relies on the power of the Essences. Therefore, I believe this is a good offer for everyone involved. We already possess a massive quantity of Yggdrasil's Essence. Hence, please search for Alfheim's Essence first. Upon finding it, please alert me at once.","미드가르드로 돌아가기 위한 주문도, 정수의 힘이 필요해요. 그러니, 모두에게 도움이 되는 제안이라 생각합니다. 이그드라실의 정수는 저희가 이미 다량 보유하고 있으니, 알프헤임부터 탐색을 해주시면 합니다. 정수를 찾으면, 저에게 와주세요.","O feitiço para voltar a Midgard também precisa do poder das Raízes. Então, acho que é uma boa oferta para todos. @@ -784,7 +784,7 @@ Setelah menemukannya, harap segera beri tahu aku.","Для заклинания 我们已经有大量的伊格德拉西尔精华,因此请首先搜索阿尔夫海姆的精华。 如果找到它,请来找我。",回到Midgard的咒語也需要精華的力量。所以,我認為這對每個人來說都是一個很好的提議。我們已經擁有了大量的世界樹的精華,所以請首先搜索Alfheim的精華。如果你找到了,就請來找我。,"Ang mahika para bumalik sa Midgard ay nangangailangan rin ng kapangyarihan ng Essence. Kaya't sa tingin ko, ito ay isang matinong alok ito para sa lahat. Mayroon na tayong malaking bilang ng Essence ng Yggdrasil, kaya pakiusap hanapin mo muna ang Essence ng Alfheim. Kapag natagpuan mo ito, Pakiusap balik ka sa akin.","Thần chú để trở về Midgard cũng dựa vào sức mạnh của các Tinh chất. Do đó, ta tin rằng đây là một đề nghị có lợi cho tất cả mọi người. Chúng ta đã sở hữu một lượng lớn Tinh chất Yggdrasil. -Vì vậy, trước tiên hãy tìm kiếm Tinh chất của Alfheim. Khi tìm thấy nó, hãy báo cho ta ngay lập tức." +Vì vậy, trước tiên hãy tìm kiếm Tinh chất của Alfheim. Khi tìm thấy nó, hãy báo cho ta ngay lập tức." DIALOG_38_1_0,"[npc:10]We've already been sacrificing for the victory of Einherjar with the Essence as a reward. No matter how much you poke around, we won't let you have it. With such shabby equipment, you will never be able to cut the flesh of Saehrimnir!","[npc:10]우리들은 이미 에인헤랴르의 승리를 위해 기꺼이 희생해왔다. 정수는 그에 대한 거래라고 생각했는데? 이 곳을 아무리 뒤적거린다 한들 우리가 이를 내주지는 않을 것이다. 그런 허접한 장비를 가지고는 절대 제림니르의 살을 벨 수 없을 것이다!","[npc:10]Já estamos nos sacrificando pela vitória de Einheryar com a Raiz como recompensa. @@ -798,8 +798,8 @@ Dengan peralatan lusuh seperti itu, kamu tidak akan pernah bisa memotong daging С таким захудалым снаряжением ты никогда не одолеешь Джеримнира!","[npc:10]我们已经在牺牲为了赢得艾因哈尔的胜利而获得的奖励。 无论您拨多少钱,我们都不会拥有它。 拥有如此破旧的设备,您将永远无法割断耶里姆尼尔的肉!",[NPC:10]我們已經在以精華為獎勵的勝利中犧牲了。無論你如何打探,我們都不會讓你得到它的。帶著這樣破爛的裝備,你永遠無法割下Saehrimnir的肉!,"[npc:10] Nag sasakripisyo na kami para sa tagumpay ng Einherjar, na ang gantimpla ay ang Essence. Anuman ang iyong hinahanap, Hindi namin ito ibibigay saiyo.Sa gayong kahabag-habag na kagamitan, hindi mo kailanman magagawang putulin ang laman ng Saehrimnir.","[npc:10] Chúng ta đã hy sinh cho chiến thắng của Einherjar và nhận phần thưởng Tinh chất. -Cho dù ngươi có nỗ lực bao nhiêu, chúng ta cũng sẽ không cho phép ngươi có được nó. Với trang bị tồi tàn như vậy, ngươi sẽ không bao giờ có thể chạm được vào da thịt của Saehrimnir!" -DIALOG_39_1_0,(I will need equipment imbued with the blue light of Odin's power to go any further),(이 이상 앞으로 가려면 오딘의 힘이 깃든 푸른 빛의 장비가 필요하다.),(Preciso de equipamento de luz azul com o poder de Odin para ir mais longe.),(ここから先はオーディンの加護を受けた蒼光の装備が必要だ。),(Necesitaré equipo impregnado con la luz azul del poder de Odin para avanzar más),(ฉันต้องการอุปกรณ์แสงสีฟ้าที่มีพลังของโอดินเพื่อไปได้ไกลกว่านี้),(Aku memerlukan peralatan yang dilengkapi dengan cahaya biru kekuatan Odin untuk melangkah lebih jauh),"(Мне нужно светло-голубое снаряжение с силой Одина, чтобы продвинуться дальше.)",(我需要具有奥丁力量的蓝光设备。),(我需要裝備充滿奧丁力量的藍光才能繼續前進),(Kailangan ko ng mga kagamitan na napapalibutan ng asul na liwanag ng kapangyarihan ni Odin upang magpatuloy.),(Ta sẽ cần trang bị được tắm trong lam quang từ sức mạnh của Odin để có thể tiến xa hơn) +Cho dù ngươi có nỗ lực bao nhiêu, chúng ta cũng sẽ không cho phép ngươi có được nó. Với trang bị tồi tàn như vậy, ngươi sẽ không bao giờ có thể chạm được vào da thịt của Saehrimnir!" +DIALOG_39_1_0,(I will need equipment imbued with the blue light of Odin's power to go any further),(이 이상 앞으로 가려면 오딘의 힘이 깃든 푸른 빛의 장비가 필요하다.),(Preciso de equipamento de luz azul com o poder de Odin para ir mais longe.),(ここから先はオーディンの加護を受けた蒼光の装備が必要だ。),(Necesitaré equipo impregnado con la luz azul del poder de Odin para avanzar más),(ฉันต้องการอุปกรณ์แสงสีฟ้าที่มีพลังของโอดินเพื่อไปได้ไกลกว่านี้),(Aku memerlukan peralatan yang dilengkapi dengan cahaya biru kekuatan Odin untuk melangkah lebih jauh),"(Мне нужно светло-голубое снаряжение с силой Одина, чтобы продвинуться дальше.)",(我需要具有奥丁力量的蓝光设备。),(我需要裝備充滿奧丁力量的藍光才能繼續前進),(Kailangan ko ng mga kagamitan na napapalibutan ng asul na liwanag ng kapangyarihan ni Odin upang magpatuloy.),(Ta sẽ cần trang bị được tắm trong lam quang từ sức mạnh của Odin để có thể tiến xa hơn) DIALOG_40_1_0,"[npc:10]Grrr... Your weapon finally gets the best of me. But no matter how strong you are... You will not be able to face Saehrimnir, who has never lost to any of the Einherjar. Saehrimnir...! I'll leave it to you!","[npc:10]크윽.. 그 무기 앞에서는 당해낼 재간이 없다. 하지만 아무리 너라도... 어느 에인헤랴르에게도 진 적 없는 제림니르를 상대할 수는 없을 것이다. 제림니르님...! 뒤를 부탁합니다...!","[npc:10]Grrr ... Sua arma finalmente leva o melhor de mim. @@ -813,8 +813,8 @@ Saehrimnir...! Aku serahkan padamu!","[npc:10]Гррр... Ты все же од Джеримнир...! Я оставляю это тебе!","[npc:10]Grrr ...您的武器终于得到了我的最好。 但是,无论您多么强大,您都无法面对Jerimnir, 从来没有输给过任何Einheryar.Gerimnir ...!我把它留给你!",[NPC:10] Grrr...你的武器終於擊敗了我。但無論你多麼強大...你都無法面對從未輸給過任何Einherjar的Saehrimnir。 Saehrimnir...!我交給你了!,"[npc:10]Grrr... Sa wakas, nagtagumpay ang iyong sandata laban sa akin. Ngunit anuman ang iyong lakas... Hindi mo kayang harapin si Saehrimnir, hindi pa kailanman natalo sa sinuman sa mga Einherjar. Saehrimnir...! Pinapaubaya ko na sa iyo!","[npc:10] GRRR ... Ta không đủ sức mạnh để đối mặt với thứ vũ khí đó. Nhưng dù ngươi có mạnh mẽ đến đâu ... -ngươi sẽ không thể đối mặt với Saehrimnir, kẻ chưa bao giờ thua bất kỳ một Einherjar nào. Saehrimnir ...! Ta sẽ để nó cho ngươi!" -DIALOG_41_1_0,[npc:04]Here comes a puny little cat with an interesting piece of equipment... Come here.,[npc:04]흥미로운 장비를 들고 있는 애송이가 오는구나... 이리 오거라.,[npc:04]Aí vem um gatinho franzino com um equipamento interessante ... Venha aqui.,[npc:04]面白い装備のちっぽけな猫が来たぞ... こっちに来い。,[npc:04] Aquí viene un pequeño gato insignificante con un interesante equipo... Ven aquí.,[npc:04]มาแล้วแมวน้อยตัวเล็กๆ ตัวหนึ่งพร้อมอุปกรณ์ชิ้นหนึ่งที่น่าทึ่ง ... มาเลย,[npc:04]Inilah Kucing kecil mungil dengan peralatan menarik... Kemarilah.,[npc:04]А вот идет ничтожный маленький кот с интересным снаряжением... Подойди сюда.,[npc:04]这是一只带有有趣设备的矮小的小猫……来这里。,[NPC:04]這裡有一個帶著有趣裝備的小貓...過來。,[npc:04] Narito na ang maliliit na pusang may kakaibang kagamitan... Lumapit ka rito.,[npc:04] Một con mèo nhỏ với một mảnh trang bị thú vị ... Đến đây. +ngươi sẽ không thể đối mặt với Saehrimnir, kẻ chưa bao giờ thua bất kỳ một Einherjar nào. Saehrimnir ...! Ta sẽ để nó cho ngươi!" +DIALOG_41_1_0,[npc:04]Here comes a puny little cat with an interesting piece of equipment... Come here.,[npc:04]흥미로운 장비를 들고 있는 애송이가 오는구나... 이리 오거라.,[npc:04]Aí vem um gatinho franzino com um equipamento interessante ... Venha aqui.,[npc:04]面白い装備のちっぽけな猫が来たぞ... こっちに来い。,[npc:04] Aquí viene un pequeño gato insignificante con un interesante equipo... Ven aquí.,[npc:04]มาแล้วแมวน้อยตัวเล็กๆ ตัวหนึ่งพร้อมอุปกรณ์ชิ้นหนึ่งที่น่าทึ่ง ... มาเลย,[npc:04]Inilah Kucing kecil mungil dengan peralatan menarik... Kemarilah.,[npc:04]А вот идет ничтожный маленький кот с интересным снаряжением... Подойди сюда.,[npc:04]这是一只带有有趣设备的矮小的小猫……来这里。,[NPC:04]這裡有一個帶著有趣裝備的小貓...過來。,[npc:04] Narito na ang maliliit na pusang may kakaibang kagamitan... Lumapit ka rito.,[npc:04] Một con mèo nhỏ với một mảnh trang bị thú vị ... Đến đây. DIALOG_42_1_0,"[npc:04]That equipment is... Is this Odin's will, after all? Then I'll accept... But deliver this message! The ecosystem they wanted will never come back as before. How long do you think the meat we've been offering will last without the power of Essence?","[npc:04]그 장비는... 결국 이는 오딘의 뜻이기도 하다는 것인가... 그렇다면 받아들이겠다... 하지만 전해라! 그들이 원했던 생태계는 영원히 이전과 같이 돌아오지 못할 것이다. 우리가 지금껏 제공해온 육류가, 정수의 힘 없이 언제까지 이어질 수 있을 것이라 생각하는가?","[npc:04]Esse equipamento é ... Afinal, esta é a vontade de Odin? @@ -829,7 +829,7 @@ Menurutmu, berapa lama daging yang kami persembahkan akan bertahan tanpa kekuata 他们想要的生态系统再也不会像以前那样回来了。 您认为我们所提供的肉在没有精华的情况下还能持续多久?",[NPC:04]那個裝備是...這到底是奧丁的意志嗎?那我就接受...但要傳達這個信息!他們想要的生態系統再也不會回到以前的狀態。你以為我們提供的肉在沒有精華的力量下會持續多久?,"[npc:04] Ang kagamitang ito... Ito ba ay kalooban ni Odin? Kung gayon, tatanggapin ko... Ngunit ipaabot ang mensaheng ito! Ang sistema ng ekosistema na kanilang ninanais ay hindi na babalik tulad ng dati. Gaano katagal sa tingin mo na magtatagal ang aming karneng iniaalay kung wala ang kapangyarihan ng Essence?","[npc:04] Trang bị đó là ... Ý chí của Odin? Vậy ta hẳn là phải chấp nhận thôi ... nhưng hãy truyền lại thông điệp này! Hệ sinh thái mà họ muốn sẽ không bao giờ quay lại như trước. -Ngươi nghĩ rằng lượng thịt chúng ta đã cung cấp có thể kéo dài trong bao lâu mà không có sức mạnh của Tinh chất?" +Ngươi nghĩ rằng lượng thịt chúng ta đã cung cấp có thể kéo dài trong bao lâu mà không có sức mạnh của Tinh chất?" DIALOG_43_1_0,[npc:07]We now have seven more Essences to collect. The moment you can go back to Midgard is that much closer. The rest of the road will be even tougher. May Odin's protection be with you...,"[npc:07]이제 모아야 하는 정수가 7개가 남았군요. 당신이 미드가르드에 돌아갈 수 있는 때도 그만큼 가까워졌습니다. 앞으로 남은 길은 더욱 험난할 것입니다. @@ -849,7 +849,7 @@ Semoga perlindungan Odin bersamamu ...","[npc:07]Нам осталось соб 回到米德加德更加近了。剩下的路会更加艰难。 愿奥丁的保护与您同在...",[NPC:07]現在我們還有七種本質要收集。你回到Midgard的時刻越來越近了。接下來的路會更艱難。願奧丁的保護與你同在…,"[npc:07] Ngayon, mayroon tayong pitong karagdagang Essences na kokolektahin. Mas pumapalapit ang sandaling maaari ka ng bumalik sa Midgard. Ang natitirang daan ay puno ng pagsubok at magiging mas mahirap pa. Nawa'y sumainyo ang pangangalaga ni Odin...","[npc:07] Bây giờ chúng ta cần thu thập thêm bảy Tinh chất nữa. Khoảnh khắc ngươi có thể trở lại Midgard đang ngày càng gần hơn. Phần còn lại của con đường sẽ còn khó khăn hơn nữa. -Cầu chúc ngươi luôn nhận được sự bảo hộ của Odin..." +Cầu chúc ngươi luôn nhận được sự bảo hộ của Odin..." DIALOG_44_1_0,"[npc:07]We now have six more Essences to collect. You need to gather the remaining Essences before it's too late. The next world is Asgard, where a different ordeal awaits you.","[npc:07]이제 모아야 하는 정수가 6개가 남았군요. 더 늦기 전에 나머지 정수를 모아야 합니다. 다음은 아스가르드입니다. @@ -867,7 +867,7 @@ Dunia berikutnya adalah Asgard, di mana cobaan yang berbeda menantimu.","[npc:07 Там тебя будут ждать суровые испытания.","[npc:07]现在我们还有六个要收集的精华。 您需要收集其余的精华",[NPC:07]現在我們還有六種本質要收集。你需要在時機太遲之前收集剩餘的本質。下一個世界是Asgard。那裡會有不同的考驗等待著你。,"[npc:07] Ngayon, mayroon tayong anim na natitirang pang Essences na hanapin. Kailangan mong kolektahin ang natitirang Essences bago mahuli ang lahat. Ang susunod na mundo ay Asgard. Naghihintay sa iyo ang mga ibang pang pagsubok doon.","[npc:07] Bây giờ chúng ta cần thu thập thêm sáu tinh chất nữa. Ngươi cần thu thập các tinh chất còn lại trước khi quá muộn. -Thế giới tiếp theo là Asgard, nơi một thử thách khác đang chờ đợi ngươi." +Thế giới tiếp theo là Asgard, nơi một thử thách khác đang chờ đợi ngươi." DIALOG_45_1_0,[npc:17]War is our only life and goal. The war must last forever to protect our blood-soaked grounds. Why did you come here? Are you the bringer/harbinger of this war? I assume you came here to entertain us. Then come!,"[npc:17]전쟁은 우리의 유일한 삶이며, 목표다. 피비린내 가득한 우리의 터전을 지키기 위해 전쟁은 영원히 계속 되어야 한다. 너는 어째서 여기에 온거지? 그래. 이것도 일종의 전쟁이겠군. @@ -889,7 +889,7 @@ Apakah Anda pembawa/pertanda perang ini? Aku berasumsi kamu datang ke sini untuk Тогда пойдем!","[npc:17]战争是我们唯一的生命,也是我们的目标。 战争必须永远持续下去,以保护我们的血腥土地。为什么?过来?",[NPC:17]戰爭是我們唯一的生活,也是我們的目標。為了保護我們血腥的土地,戰爭必須永遠持續下去。你為什麼來這裡?你帶來的是這場戰爭嗎?我猜你來這裡是為了給我們帶來娛樂。那就來吧!,[npc:17] Ang digmaan ang aming tanging buhay at layunin. Ang digmaan ay dapat magpatuloy magpakailanman upang ma protektahan ang aming duguang lupa. Bakit ka naparito? Digmaan ba itong dala mo sa amin? Ipininapalagay kong ikaw ay naparito upang aliwin kami. Kaya't halika na!,"[npc:17] Chiến tranh là cuộc sống và mục tiêu duy nhất của chúng ta. Chiến tranh phải tồn tại mãi mãi để bảo vệ mảnh đất đã thấm đẫm máu tươi của chúng ta. Tại sao ngươi đến đây? -Có phải ngươi tới mang theo một trận chiến? Ta đồ rằng ngươi đến đây để giải trí cho chúng ta. Tới đây!" +Có phải ngươi tới mang theo một trận chiến? Ta đồ rằng ngươi đến đây để giải trí cho chúng ta. Tới đây!" DIALOG_46_1_0,"[npc:18]The Essence of the Wind? There is no such thing in Asgard. I don't know what you've heard, but it's a waste of time.","[npc:18]바람의 정수? 아스가르드에는 그런 건 없다. 누구에게 무슨 소리를 듣고 왔는지 모르겠지만, 괜한 헛걸음을 했군.","[npc:18]A Raiz do Vento? @@ -901,7 +901,7 @@ Aku tidak tahu apa yang telah kamu dengar, tapi itu hanya membuang-buang waktu." Такой штуковины в Асгарде нет. Не знаю, что ты слышал, но это пустая трата времени.","[npc:18]风的本质?阿斯加德(Asgard)没有这样的事情。 我不知道您所听到的是什么?",[NPC:18]風的本質?在Asgard沒有這樣的東西。我不知道你聽到了什麼,但這是浪費時間。,"[npc:18] Ang Essence ng Hangin? Walang ganyang bagay sa Asgard. Hindi ko alam kung ano at saan mo narinig ito, ito ay pag aaksaya lamang ng oras.","[npc:18] Tinh chất của Gió? Không có thứ đó ở Asgard. -Ta không biết ngươi đã nghe những gì, nhưng thật lãng phí thời gian." +Ta không biết ngươi đã nghe những gì, nhưng thật lãng phí thời gian." DIALOG_46_1_1,"But this is a place where no living can enter. Still, it doesn't matter how you got in here. You'll soon be dead!","하지만 이곳은 죽지 않은 자는 들어올 수 없는 곳인데. 뭐, 네가 어떻게 여기 들어올 수 있게 되었는지는 중요하지 않다. 곧 죽은 목숨이 될 테니 말이다!","Mas este é um lugar onde nenhum vivente pode entrar. @@ -913,7 +913,7 @@ Tetap saja, tidak masalah bagaimana kamu bisa masuk ke sini. Kamu akan segera ma Ну, неважно, как ты сюда попал. Скоро ты будешь мертв!","但这是浪费时间。但是,这是一个没有人可以进入的地方。 好吧,无论您如何来到这里,都快死了!",但這是一個沒有生物能進入的地方。不過,你是如何進來的並不重要。你很快就會死了!,"Ito ay isang lugar kung saan walang buhay ang makakapasok. Anuman ang paraan kung paano ka napadpad dito, hindi na mahalaga. Malapit ka nang mamatay!","Nhưng đây là nơi không có kẻ nào còn sống có thể bước vào. -Dù vậy, ngươi vào đây bằng cách nào chẳng quan trọng nữa. Vì ngươi sẽ sớm trở thành người chết!" +Dù vậy, ngươi vào đây bằng cách nào chẳng quan trọng nữa. Vì ngươi sẽ sớm trở thành người chết!" DIALOG_47_1_0,"[npc:11]So you're the puppet of Odin and Freya. Yes, I have the Essence of the Wind. But I can't give it to you.","[npc:11]오딘과 프레이야의 앞잡이가 네놈이냐. 그래. 네가 그토록 찾는 바람의 정수는 내가 갖고 있다. 하지만 이걸 네게 줄 수는 없다.","[npc:11]Então você é o fantoche de Odin e Freya. @@ -925,7 +925,7 @@ Ya, aku memiliki Essence Angin. Tapi aku tidak bisa memberikannya padamu.","[npc Да, Сущность Ветра у меня. Но отдать ее тебе я не могу.","[npc:11]所以,您是的,我有风的本质。 但是我不能给你。",[NPC:11]所以你是奧丁和弗雷婭的傀儡。是的,我有風的本質。但我不能給你。你以為我會給你唯一可以擊敗奧丁的方法嗎?胡說。,"[npc:11] Ikaw pala ang tau-tauhan ni Odin at Freya. Oo, Nasa akin ang Essence ng Hangin. Ngunit hindi ko ito maaaring ibigay sa iyo.","[npc:11] Thì ra ngươi là con rối của Odin và Freya. -Đúng thế, ta có Tinh chất của Gió. Nhưng ta không thể đưa nó cho ngươi." +Đúng thế, ta có Tinh chất của Gió. Nhưng ta không thể đưa nó cho ngươi." DIALOG_47_1_1,Do you think I'll give you the only means to bring Odin down? Such nonsense! I'll kill you now and end Freya and Odin's lives!,"오딘을 굴복시킬 수 있는 유일한 수단을 내가 네게 넘길 것 같으냐? 어림 없는 소리. 곧 너를 죽이고 프레이야와 오딘의 목숨도 끊어버리겠다!","Você acha que eu darei a você o único meio de derrubar Odin? @@ -937,7 +937,7 @@ Omong kosong! Aku akan membunuhmu sekarang dan mengakhiri hidup Freya dan Odin!" Чушь. Сейчас я убью тебя, затем - Фрею и Одина!","你认为我会给你唯一的使奥丁失望的方法吗?无稽之谈。 我会杀了您现在杀死弗雷亚和奥丁!",你以為我會給你唯一可以擊敗奧丁的方法嗎?胡說。我現在就殺了你,結束弗雷婭和奧丁的生命!,Sa palagay mo ba ibibigay ko sa iyo ang tanging paraan upang talunin si Odin? Walang kabuluhan. Papatayin kita ngayon at wawakasan ko ang buhay nina Freya at Odin!,"Ngươi nghĩ rằng ta sẽ cho ngươi phương tiện duy nhất để hạ bệ Odin hả? -Thật là vô nghĩa! Ta sẽ giết ngươi ngay bây giờ rồi kết liễu Freya và Odin!" +Thật là vô nghĩa! Ta sẽ giết ngươi ngay bây giờ rồi kết liễu Freya và Odin!" DIALOG_48_1_0,"[npc:11]Still trying to block my way..? You, mere minions of Odin's, how are you going to stop me? This is between my father and my brothers. Step aside now and I will spare your life.","[npc:11]아직까지도 나를 가로막으려 하는 것인가.. 고작 오딘의 하수인일 뿐인 네가 무슨 수로 나를 막겠다는 것이냐 이것은 아버지와 우리 형제 사이의 일. 지금 물러선다면 목숨만은 살려주겠다","[npc:11]Ainda tentando bloquear meu caminho ..? @@ -950,20 +950,20 @@ Ini antara ayahku dan saudara laki-lakiku. Minggir sekarang dan aku akan menyela Это дело между моим отцом и моими братьями. Отойди в сторону сейчас же и я пощажу тебя.","[npc:11]仍在尝试阻止我的路..? 当您只不过是奥丁的仆人时,您将如何阻止我? 这在我父亲和我的兄弟之间。",[NPC:11]還想阻擋我的道路..?你只是奧丁的爪牙,你有什麼辦法阻止我?這是我父親和我的兄弟之間的事。現在就讓開,我會饒你一命。,"[npc:11] Patuloy ka pa ring sumasagabal sa daan ko...? Ikaw na alipin lamang ni Odin, sa anong paraan mo ako haharangin? Ito ay tungkol lamang sa aking ama at mga kapatid. Tumabi ka na ngayon at patatawarin ko ang iyong buhay.","[npc:11] Vẫn cố gắng chặn đường của ta ..? Ngươi, đơn thuần là tay sai của Odin, ngươi sẽ làm thế nào để ngăn ta? -Đây là vấn đề giữa cha và anh em ta. Bước sang một bên ngay bây giờ và ta sẽ tha mạng cho ngươi." +Đây là vấn đề giữa cha và anh em ta. Bước sang một bên ngay bây giờ và ta sẽ tha mạng cho ngươi." DIALOG_49_1_0,"[npc:07]Please, you must follow Odin's will. It is the only way for you, and for all of us to live.","[npc:07]이제 그만 오딘의 뜻을 따르세요 그것만이 당신,그리고 우리 모두가 살 길입니다","[npc:07]Por favor, você deve seguir a vontade de Odin. É a única maneira de você e de todos nós vivermos.","[npc:07]お願いです、オーディンの意志に従ってください。 それがあなたと私たちが生きる唯一の方法なのです。","[npc:07]Por favor, debes seguir la voluntad de Odin. Es la única forma para ti y para todos nosotros de vivir.",[npc:07]ได้โปรดคุณต้องทำตามความประสงค์ของโอดิน เป็นหนทางเดียวสำหรับคุณและพวกเราทุกคนที่จะมีชีวิตอยู่,"[npc:07]Tolong, kamu harus mengikuti keinginan Odin. Ini adalah satu-satunya cara bagimu, dan bagi kita semua untuk hidup.","[npc:07]Прошу тебя, следуй желаниям Одина. Это единственный способ для тебя, да и для всех нас, чтобы выжить.","[npc:07]请,您必须遵守奥丁的遗嘱。 这是您以及我们所有人生活的唯一途径。",[NPC:07]請,你必須遵循奧丁的意志。這是你,對我們所有人來說,唯一的活路。,"[npc:07] Pakiusap sundin mo ang kalooban ni Odin. Ito lamang ang paraan para sa iyo, at para sa ating lahat para mabuhay.","[npc:07] Làm ơn, hãy tuân theo mong muốn của Odin. -Đó là cách duy nhất cho ngươi, cho tất cả chúng ta, có thể sống sót." +Đó là cách duy nhất cho ngươi, cho tất cả chúng ta, có thể sống sót." DIALOG_50_1_0,[npc:11]... Do not utter that name in my presence anymore. My brothers and I will no longer remain still!!,"[npc:11]... 그 이름을 더 이상 내 앞에서 거론하지 마라. 나와 내 형제들은 더 이상 가만히 있지 않을 것이다!!","[npc:11].. Não fale mais desse nome na minha frente. Meus irmãos e eu não ficaremos mais parados !!","[npc:11].. 二度とわしの前でその名を口にするな。 兄弟たちと儂はもう黙っていられない!",[npc:11]... No menciones ese nombre frente a mí nunca más. ¡Mis hermanos y yo ya no nos quedaremos quietos!,[npc:11].. อย่าเอยชื่อนั้นต่อหน้าฉันอีกต่อไป ฉันและพี่น้องจะไม่อยู่นิ่งอีกต่อไป !!,[npc:11]... Jangan ucapkan nama itu di hadapanku lagi. Aku dan saudara-saudaraku tidak akan tinggal diam lagi!!,"[npc:11].. Больше не произноси это имя в моем присутствии. Мои братья и я не станем более сохранять спокойствие!!","[npc:11]..不要不再在我面前说起这个名字了。 -我的兄弟和我将不再保持沉默!",[NPC:11].. 不要再在我面前說那個名字了。我和我的兄弟不會再靜坐不動! !,[npc:11].. Huwag mo nang banggitin ang pangalan na iyan sa harap ko pa. Ako at ang aking mga kapatid ay hindi na mananatiling tahimik!!,[npc:11] Đừng bao giờ nhắc đến cái tên đó trước mặt ta thêm một lần nào nữa! Anh em chúng ta sẽ không im lặng nữa! +我的兄弟和我将不再保持沉默!",[NPC:11].. 不要再在我面前說那個名字了。我和我的兄弟不會再靜坐不動! !,[npc:11].. Huwag mo nang banggitin ang pangalan na iyan sa harap ko pa. Ako at ang aking mga kapatid ay hindi na mananatiling tahimik!!,[npc:11] Đừng bao giờ nhắc đến cái tên đó trước mặt ta thêm một lần nào nữa! Anh em chúng ta sẽ không im lặng nữa! DIALOG_51_1_0,"[npc:07]So be it. If blood must be spilled, this too shall be your destiny... Cat warrior, you must win this battle. I command you in the name of Odin, the king of the gods.","[npc:07]그렇다면 어쩔 수 없군요. 어쩔 수 없이 피를 봐야 한다면, 그 역시 당신의 운명... 고양이 전사, 이 싸움에서 반드시 이기세요. 신들의 왕 오딘의 이름으로 명합니다.","[npc:07]Assim seja. Se sangue deve ser derramado .. este também será o seu destino ... @@ -975,7 +975,7 @@ Eu ordeno em nome de Odin, o rei dos deuses. ","[npc:07]そうですか Воин Кот, победи в этой битве. Я приказываю тебе во имя Одина, короля Богов.","[npc:07]就这样吧。如果必须流血……这也将是您的命运... 猫战士,请务必赢得这场战斗。我以众神之王奥丁的名义命令您。",[NPC:07]那就這樣吧。如果必須流血,這也將是你的命運... 貓戰士,你必須贏得這場戰鬥。我以眾神之王奧丁的名義命令你。,"[npc:07] Ganito na nga. Kung kinakailangang ibuhos ang dugo, ito na ang magiging kapalaran mo... Pusang mandirigma, dapat mong mapanalunan ang laban na ito. Utos ko sa iyo, sa pangalan ni Odin, hari ng mga diyos.","[npc:07] Nếu đã đến nước này, đổ máu chính là số phận của ngươi - Miêu chiến binh, ngươi phải chiến thắng trận đấu này. Nhân danh Odin, vua của các thần, ta ra lệnh cho ngươi. " + Miêu chiến binh, ngươi phải chiến thắng trận đấu này. Nhân danh Odin, vua của các thần, ta ra lệnh cho ngươi. " DIALOG_52_1_0,"[npc:11]Clumsy little boy, you dare to oppose me? I will crush your brittle bones so that you will never be reincarnated. Are you ready for your doom?","[npc:11]어설픈 애송이가 감히 내 앞을 가로막을 수 있을 것 같으냐.. 먼지로도 환생할 수 없도록,뼈까지 산산히 부수어서 가루로 만들어주겠다. 각오는 되어 있겠지?!","[npc:11]Garotinho desajeitado, você se atreve a ficar na minha frente? @@ -989,7 +989,7 @@ Apakah kamu siap menghadapi malapetaka?","[npc:11]Неуклюжий мален Ты приготовился к своей кончине?","[npc:11]笨拙的小男孩,你敢在我面前站起来? 我会压碎你的骨头,使你永远不会转生。你准备好了吗?",[NPC:11]你這個笨拙的小傢伙,敢在我面前擋路?我會粉碎你脆弱的骨頭,讓你永遠不能再轉世。你準備好迎接你的末日了嗎?,"[npc:11] Maliit at walang kwentang bata, may lakas kang harapin ako? Pupulbusin ko ang iyong mahinang mga buto upang hindi ka na maipapanganak muli. Handa ka na ba sa iyong sentensiya?","[npc:11] Mèo con vụng về, ngươi có gan cản đường ta sao? Ta sẽ nghiền nát xương của ngươi thành bột để ngươi không bao giờ được tái sinh. -Chuẩn bị đón nhận số phận của mình đi!" +Chuẩn bị đón nhận số phận của mình đi!" DIALOG_53_1_1,"[npc:11]So you are my downfall after all. Do you think this war will end the way you want it to? Even if I fall here, my brothers won't stay still.","[npc:11]네가 결국 내 앞을 가로막는구나.. 그렇다고 이 전쟁이 네가 원하는대로 끝날 것 같으냐. 내가 여기서 쓰러진다 하더라도 내 형제들이 가만히 있지 않을 것이다.","[npc:11]Então você é minha ruína, afinal. @@ -1004,7 +1004,7 @@ Sekalipun aku terjatuh di sini, saudara-saudaraku tidak akan tinggal diam.","[np 即使我跌倒在这里,我的兄弟也不会停滞不前。 您迫切需要的东西太多了。这会削弱您的愿望。",[NPC:11]所以你終究是我的垮台。你認為這場戰爭會按照你的想法結束嗎?即使我在這裡倒下,我的兄弟們也不會安靜下來。,"[npc:11] Ikaw pala ang aking katapusan sa huli. Iniisip mo ba na matatapos ang digmaan na ito ayon sa iyong nais? Kahit na ako'y bumagsak dito, Mga kapatid ko hindi sila mananatiling tahimik lang.","[npc:11] Vậy nên, ngươi chính là hiện diện cho sự sụp đổ của ta. Nhưng ngươi có nghĩ rằng cuộc chiến này sẽ kết thúc theo cách ngươi muốn? -Ngay cả khi ta ngã xuống ở đây, anh em ta sẽ không đứng yên." +Ngay cả khi ta ngã xuống ở đây, anh em ta sẽ không đứng yên." DIALOG_53_1_2,Even if you collect all nine of them... It appears there are too many things you are desperate for. This will weaken the strength of your wish.,"설령 9개의 정수를 다 모은다 하더라도.. 너희들은 간절히 원하는 것이 너무 많군. 소망이 많으면 염원은 분산된다.","Mesmo se você coletar todos as nove ... @@ -1016,46 +1016,13 @@ Tampaknya ada terlalu banyak hal yang sangat kamu inginkan. Ini akan melemahkan Окажется, что есть еще много вещей, в которых ты нуждаешься. Это ослабит силу твоего желания.","即使收集了全部九个…您似乎迫切需要太多东西。 这将削弱您的意愿。",即使你收集了所有的九個……看來你太過渴望得到太多的東西。這將削弱你願望的力量。,Kahit pa makolektamo lahat na siyam... Mukhang desperado ka masyado sa madami pang bagay. Ito'y magpapahina sa tibay at lakas ng iyong hiling at hangarin.,"Ngay cả khi ngươi thu thập tất cả chín Tinh chất ... -Có vẻ như ngươi đang kỳ vọng vào quá nhiều thứ. Điều này sẽ làm suy yếu sức mạnh của điều mà ngươi mong ước." +Có vẻ như ngươi đang kỳ vọng vào quá nhiều thứ. Điều này sẽ làm suy yếu sức mạnh của điều mà ngươi mong ước." DIALOG_53_1_3,Will you be able to achieve everything you want? (Fenrir no longer moves.),"과연 네들이 원하는 것을 모두 이룰 수 있을까..? (펜리르는 더이상 움직이지 않았다.)","Você será capaz de alcançar tudo o que deseja? (Fenrir não se move mais.)","おまえらは望みを全部叶えることができるのか…? (フェンリルはもう動かない。)",¿Podrás lograr todo lo que deseas? (Fenrir ya no se mueve).,คุณจะสามารถบรรลุทุกสิ่งที่คุณต้องการได้หรือไม่? (เฟนรีร์ไม่เคลื่อนไหวอีกต่อไป),Apakah kamu bisa mencapai semua yang kamu inginkan? (Fenrir tidak lagi bergerak.),"Сможешь ли ты достигнуть всего, что хочешь? (Фенрир больше не двигается.)","您将能够实现自己想要的一切吗? -(芬里尔不再移动)",你能實現你想要的一切嗎? (芬里爾不再動彈。),Makakamit mo ba ang lahat ng iyong ninanais? (Si Fenrir ay hindi na gumagalaw.),Liệu ngươi sẽ có thể đạt được mọi thứ ngươi muốn? (Fenrir không còn di chuyển nữa.) -DIALOG_54_1_0,"[npc:05]You’re about to reach my hometown of Svartalfheim, so I prepared a present for you. I'll open a dimensional rift from which materials that can be used to craft more powerful equipment will emerge.","[npc:05]곧 내 고향인 스바르트알프헤임에 닿는구나. -그래서 내가 너를 위해 선물을 하나 준비했어. -더 강력한 장비를 만들 수 있는 재료가 나오는 차원의 틈을 열어줄게.","[npc:05]Você está prestes a chegar a minha cidade natal, Svartalfheim. -Então eu preparei um presente para você. -Vou abrir uma lacuna dimensão onde os materiais podem ser usados para fazer o equipamento mais forte.","[npc:05]もうすぐ私の故郷、スヴァルトアルフヘイムに着くんだね。 -だからあなたのためにプレゼントを用意したんだ。 -強い装備の材料が得られる次元の隙間を開けてあげるよ。","[npc:05]Estás a punto de llegar a mi ciudad natal, Svartalfheim. Así que te he preparado un regalo. Abriré una grieta dimensional de la cual saldrán materiales que se pueden usar para fabricar equipos más poderosos.",[npc:05]คุณกำลังจะถึงบ้านเกิดของฉันของ Svartalfheim ดังนั้นผมจึงเตรียมของขวัญสำหรับคุณ ฉันจะเปิดช่องว่างมิติที่วัสดุที่สามารถนำมาใช้ในการทำอุปกรณ์แข็งแกร่ง,"[npc:05]Kamu akan mencapai kampung halamanku di Svartalfheim, jadi aku menyiapkan hadiah untukmu. -Aku akan membuka celah dimensional tempat material yang dapat digunakan untuk membuat peralatan yang lebih kuat muncul.","[npc:05]Вы собираетесь достичь своей родной город Swartalfheim. -Поэтому я подготовил для тебя. -Я открою пробел измерения, где материалы могут быть использованы, чтобы сделать сильное оборудование.","[npc:05]你即将到达我Svartalfheim的故乡。 -所以我准备了一个礼物给你。 -我会开一个尺寸差距在哪里材料可以用来制造更强大的设备。",[NPC:05]你即將到達我的家鄉Svartalfheim。所以我為你準備了一個禮物。我將打開一個維度裂縫,從中可以獲得製作更強大裝備的材料。,[npc:05] Malapit mo nang marating ang aking bayan ng Svartalfheim. Kaya't naghanda ako ng regalo para sa iyo. Bubuksan ko ang isang dimensional rift kung saan lalabas ang mga materyales na maaaring gamitin upang gawing mas malakas pa ang mga iyong kagamitan.,"[npc:05] Ngươi có thể đến quê nhà Svartalfheim của ta, vì vậy ta đã chuẩn bị một món quà cho ngươi. -Ta sẽ mở một khe nứt không gian nơi mà các vật liệu có thể được sử dụng để tạo ra các trang bị mạnh mẽ hơn sẽ xuất hiện." -DIALOG_54_1_1,"A place called the Mimisbrunnr. It'll be a great help in future battles. However, because time and space are tangled, you have to fulfil certain conditions to enter. Otherwise, you won't be able to even get in. Good luck!","미미르의 샘이라고 불리는 곳이지. 앞으로의 전투에 많은 도움이 될거야. -하지만 시공간이 엉킨 곳이기 때문에, 들어가기 위해서는 특정한 조건을 맞춰야만 해. -그렇지 않으면 들어가는 것 조차 성공할 수 없을거야. -건투를 빌어!","Um lugar chamado Mimisbrunnr. Vai ser uma grande ajuda para as batalhas futuras. -Mas porque o tempo eo espaço são emaranhados, você tem que entrar em certas condições para entrar. -Caso contrário, você não vai mesmo ter sucesso na obtenção de. -Boa sorte!","ミーミルの泉と呼ばれる場所だ。今後の戦いに大いに役立つだろう。 -だが、時空が絡み合った場所だから、入るためには特定の条件を満たさなければならない。 -そうしないと、入ることすらできないかもしれん。 -健闘を祈るよ!","Un lugar llamado Mimisbrunnr. Será de gran ayuda para futuras batallas. Pero debido a que el tiempo y el espacio están entrelazados, debes cumplir ciertas condiciones para entrar. De lo contrario, no podrás siquiera acceder. ¡Buena suerte!",สถานที่ที่เรียกว่าMimisbrunnr มันจะเป็นความช่วยเหลือที่ดีสำหรับการต่อสู้ในอนาคต แต่เนื่องจากเวลาและพื้นที่ที่มีการพันกันคุณจะต้องป้อนเงื่อนไขบางประการที่จะได้รับใน มิฉะนั้นคุณจะไม่ได้ประสบความสำเร็จในการได้รับใน โชคดี!,"Sebuah tempat bernama Mimisbrunnr. Ini akan sangat membantu dalam pertempuran di masa depan. -Namun karena ruang dan waktu kusut, kamu harus memenuhi syarat tertentu untuk masuk. -Jika tidak, kamu bahkan tidak akan bisa masuk. Semoga berhasil!","Место называется Mimisbrunnr. Это будет большим подспорьем для будущих сражений. -Но так как время и пространство запутаны, вы должны войти в определенные условия, чтобы получить. -В противном случае вам даже не удастся получить в. -Удачи!","叫密米尔之泉的地方。这将是再战有很大的帮助。 -但由于时间和空间的纠结,你必须输入一定的条件进入。 -否则你不会在获得成功连。 -祝好运!",一個被稱為Mimisbrunnr的地方。它將對未來的戰鬥有很大的幫助。但是因為時間和空間是交織的,你必須滿足一定的條件才能進入。否則你甚至無法進入。祝你好運!,"Isang lugar na tinatawag na Mimisbrunnr. Malaki ang maitutulong nito sa mga susunod mong laban. Ngunit dahil ang oras at espasyo ay magkakasalungatan, kailangan mo munang tuparin ang ilang kondisyon upang makapasok. Kung hindi, hindi ka makakapasok. Sana ay palarin ka!","Một nơi được gọi là Mimisbrunnr. Nó sẽ là một sự hỗ trợ tuyệt vời cho các trận chiến trong tương lai. -Tuy nhiên, không thời gian đã bị hỗn loạn, ngươi phải thỏa mãn một số điều kiện nhất định để có thể tiến vào. -Nếu không, ngươi sẽ không thể vào được. Chúc may mắn!" +(芬里尔不再移动)",你能實現你想要的一切嗎? (芬里爾不再動彈。),Makakamit mo ba ang lahat ng iyong ninanais? (Si Fenrir ay hindi na gumagalaw.),Liệu ngươi sẽ có thể đạt được mọi thứ ngươi muốn? (Fenrir không còn di chuyển nữa.) DIALOG_55_1_0,"[npc:07]You fought well. Now the place to go is Musepelheim, the land of fire. Unlike Asgard, which is close to the sky, Musepelheim is far away, at the edge of the land, where lava boils.","[npc:07]잘 싸워줬습니다. 이제 가야 할 곳은 불의 땅 무스펠헤임 이예요. 하늘과 가까운 이곳 아스가르드와 달리, 용암이 끓는 땅 끝 먼 곳 입니다.","[npc:07]Você lutou bem. @@ -1068,7 +1035,7 @@ Berbeda dengan Asgard yang dekat dengan langit, Musepelheim letaknya jauh, di te В отличии от Асгарда, что близко к небу, лава далека от кипения земли.","[npc:07]你奋力拼搏。 现在去的地方是Moosepelheim,火焰之地。 不像阿斯加德,这是接近天空,熔岩远离沸腾地面。",[NPC:07]你戰鬥得很好。現在要去的地方是火之地Moosepelheim。與接近天空的Asgard不同,它位於遠離這裡的地方,那裡的岩漿正在沸騰。,"[npc:07] Lumaban ka nang mabuti. Ang susunod na lugar na pupuntahan mo ay ang Moosepelheim, ang lupain ng apoy. Iba ito sa Asgard na malapit sa langit, ito ay malayo, sa dulo ng lupa, kung saan ang lava ay kumukulo.","[npc:07] Ngươi đã chiến đấu ngoan cường. -Bây giờ nơi cần đến là Musepelheim, vùng đất lửa. Không giống như Asgard, gần bầu trời, Musepelheim ở rất xa, ở rìa đất, nơi nham thạch sôi trào." +Bây giờ nơi cần đến là Musepelheim, vùng đất lửa. Không giống như Asgard, gần bầu trời, Musepelheim ở rất xa, ở rìa đất, nơi nham thạch sôi trào." DIALOG_55_1_1,"There is a fire giant called 'Surt.' His breath is powerful enough to burn the whole realm, and you have to go and stop him.","그곳에는 ‘수르트’라 불리우는, 불의 거인이 있습니다. 그의 숨결은 신계를 모두 불태워버릴 수 있을 정도로 강력하기 때문에, 얼른 가서 그를 저지해야 합니다.","Há um fogo gigante chamado 'Surt.' @@ -1080,7 +1047,7 @@ Temos que ir e impedi-lo.","そこには「スルト」と呼ばれる、火の Мы должны пойти и остановить его.","有一种叫巨型火“苏尔特。” 因为他的呼吸是足够强大的烧毁了所有的肉, 我们必须去阻止他。","這裡有一個名為""Surt""的火巨人。他的呼吸足以燒毀整個國度,你必須去阻止他。",Mayroong isang higanteng apoy na tinatawag na 'Surt.' Ang kanyang hininga ay sapat na upang sunugin ang buong kaharian. Kailangan mong pumunta at pigilan siya.,"Có một người khổng lồ lửa tên là 'Surt.' -Hơi thở của hắn đủ mạnh để đốt cháy toàn bộ cõi giới, và ngươi phải đi ngăn chặn hắn." +Hơi thở của hắn đủ mạnh để đốt cháy toàn bộ cõi giới, và ngươi phải đi ngăn chặn hắn." DIALOG_56_1_0,"[npc:09]The road is very complicated, but don't worry! In Asgard, there is a tower of light that enables instant travel to another world. I'll guide you, so don't be scared and follow me closely!","[npc:09]가는 길이 많이 복잡하지만 걱정마! 아스가르드에는 다른 세계로 순식간에 이동할 수 있는 빛의 탑이 있어. 내가 안내해줄 테니 겁먹지 말고 나를 잘 따라와!","[npc:09]A estrada é muito complicado, mas não se preocupe! @@ -1095,7 +1062,7 @@ Aku akan membimbingmu, jadi jangan takut dan ikuti aku dengan cermat!","[npc:09] 在仙宫,还有光的一个塔,可以到另一个世界在瞬间。 我会引导你,所以不要害怕,跟我好!",[NPC:09]這條路非常複雜,但不用擔心!在Asgard,有一個光之塔,可以在瞬間穿越到另一個世界。我會指導你,所以不要害怕,跟我走吧!,"[npc:09] Ang daan ay napakakumplikado, ngunit huwag mag-alala! Sa Asgard, mayroong isang tore ng liwanag na maaaring gamiting panglakbay patungo sa ibang mundo sa isang iglap. Ituturo ko sa iyo, kaya huwag matakot at sundan mo ako nang mabuti!","[npc:09] Con đường rất phức tạp, nhưng đừng lo lắng! Ở Asgard, có một tòa tháp ánh sáng cho phép di chuyển ngay lập tức đến một thế giới khác. -Ta sẽ hướng dẫn ngươi, vì vậy đừng sợ hãi và theo sát ta!" +Ta sẽ hướng dẫn ngươi, vì vậy đừng sợ hãi và theo sát ta!" DIALOG_57_1_0,"[npc:09] How do you like it here? It's really hot. I feel like my whole body is melting. To meet Surt, you must first fight the lizard tribes who worship him.","[npc:09]와보니까 어때? 정말 후끈후끈하네 여기는. 온 몸이 녹아내릴 것 같아. 수르트를 만나려면, 우선 수르트를 숭배하고 있는 도마뱀 부족들과 싸워야 해.","[npc:09]Como você gosta aqui? @@ -1108,7 +1075,7 @@ Aku merasa seluruh tubuhku meleleh. Untuk bertemu Surt, kamu harus melawan suku Для удовлетворения Сирта, вы должны сначала бороться ящерица племен, обожающих Сирт.","[npc:09]你喜欢这里吗? 这是这里真热。我觉得我的整个身体都融化了。 为了满足苏尔特,必须争第一拜苏尔特的部落蜥蜴。",[NPC:09]你覺得這裡怎麼樣?這裡真的很熱。我感覺我整個身體都在融化。要見到Surt,你必須首先打敗那些崇拜Surt的蜥蜴部落。,"[npc:09] Ano ang pakiramdam mo dito? Talagang mainit dito. Parang natutunaw ang buong katawan ko. Upang makaharap si Surt, kailangan mong unahin kalabanin ang mga tribong butiki na sumasamba kay Surt.","[npc:09] Ngươi thấy ở đây thế nào? Thật là nóng. Ta cảm thấy như toàn bộ cơ thể của ta đang tan chảy. -Để gặp được Surt, trước tiên ngươi phải chiến đấu với các bộ lạc Thằn lằn tôn thờ hắn ta." +Để gặp được Surt, trước tiên ngươi phải chiến đấu với các bộ lạc Thằn lằn tôn thờ hắn ta." DIALOG_57_1_1,"Lizard tribes are characterized by thick, strong skin. That's why we can survive in the lava and flames here. However, it also implies that your skin's strength matches its thickness, so you should prepare well from now on.","도마뱀 부족들은 피부가 두껍고 딱딱한 것이 특징이야. 그래서 이곳의 용암과 불길에서도 살아남을 수 있는 거지. 대신, 피부가 두꺼운 만큼 강하다는 뜻이기도 하니까 앞으로 준비를 잘 해야 할거야.","tribos lagarto são caracterizados pela espessura da pele, difícil. @@ -1122,20 +1089,20 @@ Namun, hal ini juga menyiratkan bahwa kekuatan kulitmu sesuai dengan ketebalanny Вместо этого, это означает, что ваша кожа так сильно, как ваша кожа толстая, так что вы должны хорошо подготовиться теперь.","蜥蜴部落是由厚,坚硬的皮肤特点。 这就是为什么我们能够生存下来的熔岩和这里的火焰。 相反,它意味着你的皮肤是强如你的皮肤比较厚,所以你应该从现在开始做好准备。",蜥蜴部落的特點是皮膚厚重,硬度高。這就是為什麼我們可以在這裡的岩漿和火焰中生存。相反,這意味著你的皮膚和你的皮膚一樣厚,所以從現在開始你應該做好準備。,"Ang mga tribong butiki ay kilala sa kanilang makakapal at matitigas na balat. Iyan ang dahilan kung bakit kaya naming mabuhay sa lava at sa nagbabagang apoy dito. Kung gayon, ang ibig kong sabihin ay dapat iyong balat ay kasing tatag ng iyong determinasyon, kaya't dapat kang umayos at maghanda simula ngayon","Các bộ lạc Thằn lằn có làn da dày và cứng đặc trưng. Đó là lý do tại sao chúng có thể tồn tại trong dung nham và ngọn lửa ở đây. -Tuy nhiên, điều đó cũng có nghĩa rằng làn da của chúng có sức mạnh khủng khiếp, vì vậy ngươi nên chuẩn bị tốt từ sớm." +Tuy nhiên, điều đó cũng có nghĩa rằng làn da của chúng có sức mạnh khủng khiếp, vì vậy ngươi nên chuẩn bị tốt từ sớm." DIALOG_58_1_0,[npc:20]Here comes the noisy one. I have to deal with it quietly before Surt finds out.,"[npc:20]시끄러운 녀석이 등장했군.. 수르트님이 알게 되기 전에 조용히 처리하지 않으면 안 되겠어.","[npc:20]Aqui vem a um barulhento. Eu tenho que lidar com isso tranquilamente antes de Surt descobre.","[npc:20]うるさい奴が現れたぞ。 スルト様に気付かれる前に、静かに始末しないとな。",[npc:20]Aquí viene el ruidoso. Tengo que encargarme de él en silencio antes de que Surt se entere.,[npc:20]ต่อมามีเสียงดังหนึ่ง ฉันต้องจัดการกับมันอย่างเงียบ ๆ ก่อน Surt พบ,[npc:20]Ini dia yang berisik. Aku harus menghadapinya diam-diam sebelum Surt mengetahuinya.,"[npc:20]Здесь идет шумная. Мне приходится иметь дело с ним спокойно, прежде чем Surt узнает.","[npc:20]这里谈到的嘈杂之一。 -我悄悄地对付它苏尔特发现之前。",[NPC:20]吵鬧的傢伙來了。我必須在Surt發現之前靜靜地處理掉它。,"[npc:20] Naririto na ang maingay na isa. Kailangan kong tapusin ito nang tahimik, bago malaman ni Surt.",[npc:20] Kẻ này thật ồn ào. Ta phải đối phó với nó trong im lặng trước khi Surt phát hiện ra. +我悄悄地对付它苏尔特发现之前。",[NPC:20]吵鬧的傢伙來了。我必須在Surt發現之前靜靜地處理掉它。,"[npc:20] Naririto na ang maingay na isa. Kailangan kong tapusin ito nang tahimik, bago malaman ni Surt.",[npc:20] Kẻ này thật ồn ào. Ta phải đối phó với nó trong im lặng trước khi Surt phát hiện ra. DIALOG_59_1_0,"[npc:09]Hmm? I'm sure I just felt a little weird. (Looking around) I'm sure I'm mistaken, right?","[npc:09]음..? 방금 분명 이상한 기운이 느껴졌는데..? (두리번 두리번) 착각이겠지?","[npc:09]Hmm? Tenho certeza de que me senti um pouco estranho. (Olhando em volta) Eu tenho certeza que eu estou enganado, certo?","[npc:09]ん?さっき確かに変な気配を感じたけど...? (きょろきょろ)気のせいでしょう…?","[npc:09]Hmm? ¿Acaso sentí algo extraño? (Mirando alrededor) Seguro que me equivoqué, ¿verdad?",[npc:09]อืม? ฉันแน่ใจว่าฉันแค่รู้สึกแปลก ๆ เล็ก ๆ น้อย ๆ (มองไปรอบ ๆ ) ฉันแน่ใจว่าฉันผิดใช่มั้ย?,"[npc:09]Hmm? Aku yakin aku hanya merasa sedikit aneh. (Melihat sekeliling) Aku yakin aku yang salah, kan?","[npc:09]Хмм? Я уверен, что я просто чувствовал себя немного странно. (Оглядываясь вокруг) Я уверен, что я ошибаюсь, не так ли?","[npc:09]嗯?我敢肯定,我只是觉得有点不可思议。 (环顾四周)我敢肯定,我错了,对不对?",[NPC:09]嗯?我剛剛確實感覺有點奇怪。 (環顧四周)我一定是弄錯了,對吧?,"[npc:09] Hmm? Sigurado akong may naramdaman akong kakaiba. (Tumingin sa paligid) Nagkakamali ako, di ba?","[npc:09] Hmm? Ta cảm thấy hình như có gì đó kì lạ. -(Nhìn xung quanh) Nhưng chắc ta nhầm, nhỉ?" +(Nhìn xung quanh) Nhưng chắc ta nhầm, nhỉ?" DIALOG_60_1_0,"[npc:20]Curse those useless idiots before me. I can't allow this cat to go any further. There's no one else left for you to challenge except a lizard warrior such as I. Come now, fight me!","[npc:20]도움 안되는 녀석들.. 고작 저런 놈 하나를 없애지 못해서 여기까지 오게 하다니. 나, 도마뱀 전사 외에는 너를 상대할 녀석이 없는 것 같군. @@ -1155,7 +1122,7 @@ Tak ada lagi yang bisa kau tantang kecuali prajurit kadal seperti aku. Ayo, lawa 我不认为有反对你,但蜥蜴战士的人。 好啦好啦!",[NPC:20]沒用的傢伙們……我竟然沒能把一個像他這樣的傢伙幹掉,讓他一路走到這裡。我看除了蜥蜴戰士,沒有人能阻止你。來吧,來吧!,"[npc:20] Mga walang silbi... Hindi ko matatanggal ang isang katulad niya at hayaan siyang makarating dito ng ganito kalayo. Wala akong nakikitang iba na kakalabanin ka maliban sa isang mandirigmang butiki. Halika na, halika na!","[npc:20] Ta nguyền rủa những kẻ ngu ngốc vô dụng dám đứng trước mặt ta. Ta sẽ không cho phép con mèo này tiến xa hơn nữa. Ở đây chẳng còn ai để cho ngươi thách đấu ngoài ta cả. -Hãy đến đây, hãy chiến đấu với ta!" +Hãy đến đây, hãy chiến đấu với ta!" DIALOG_61_1_0,[npc:20]Groan… I'm not supposed to fall apart like this here. But don't forget that it won't be easy from this point on...,"[npc:20]크흑… 여기서 이렇게 내가 무너지면 안되는데.. 하지만 앞으로는 쉽지 않을 거라는걸 잊지 마라…","[npc:20]Groan ... @@ -1168,7 +1135,7 @@ Tapi jangan lupa bahwa itu tidak akan mudah mulai saat ini...","[npc:20]Стон Но не стоит забывать, что это не будет легко теперь ...","[npc:20]...呻吟 我不应该土崩瓦解这样在这里。 但不要忘了,它不会从现在开始很容易...",[NPC:20] 咕咕……我不應該在這裡這樣崩潰。但是不要忘記,從現在開始可不會那麼容易……,[npc:20] Ugh... Hindi dapat ako tuluyang masira dito. Ngunit huwag kalimutan na hindi na magiging madali simula ngayon...,"[npc:20] Gruz, ta không nên bị đánh bại như thế này ở đây. -Nhưng đừng quên rằng từ thời điểm này trở đi mọi thứ sẽ không còn dễ dàng …" +Nhưng đừng quên rằng từ thời điểm này trở đi mọi thứ sẽ không còn dễ dàng …" DIALOG_62_1_0,"[npc:09]You'll have to be careful! I heard that among the Muspelheim clan, there is a madman who can't speak at all. However, he is so powerful that even those of the same species are said to be afraid of him. Let's proceed with caution.","[npc:09]조심해야 할거야. 무스펠헤임 부족 중에서는 말이 아예 안 통하는 미치광이가 있다고 들었어. 그런데 힘은 엄청 세서 같은 종족들도 그 도마뱀을 두려워한다고 하더라고. @@ -1187,7 +1154,7 @@ Namun, dia sangat kuat bahkan orang-orang dari spesies yang sama pun dikatakan t 我听说一些Moosepelheim部落都完全没有沟通。 但他们是如此强大,他们害怕的蜥蜴。 让我们小心行事。",[NPC:09]您必須小心。您必須小心,我聽說在Muspelheim氏族中,有一個狂人根本無法說話。但是,它是如此強大,以至於即使是同一物種的人也害怕他。讓我們謹慎行事。,"[npc:09] Dapat kang mag ingat. Narinig ko na sa mga kabilang sa tribo ng Muspelheim ay may isang baliw na hindi makapagsalita. Gayunpaman, ito ay napakalakas at sinasabing takot din ang mga kanyang uri sa kanya. Magpatuloy tayo ng mas may pag-iingat.","[npc:09] Ngươi sẽ phải cẩn thận! Ta nghe nói rằng trong số các gia tộc Muspelheim, có một kẻ điên không thể nói gì cả. -Tuy nhiên, hắn ta mạnh mẽ đến mức ngay cả những kẻ đồng tộc cũng phải e sợ. Hãy thận trọng!" +Tuy nhiên, hắn ta mạnh mẽ đến mức ngay cả những kẻ đồng tộc cũng phải e sợ. Hãy thận trọng!" DIALOG_63_1_0,[npc:21]Ahhhhhhhhhhhhhhhhhhhhhhhhhh!! Run away! There's a crazy chameleon!,"[npc:21]으아아아아아아아아아!! 도망가!! 미치광이 카멜레온이 또 나타났어!!","[npc:21]Ahhhhhhhhhhhhhhhhhhhhhhhhhh !! @@ -1198,7 +1165,7 @@ Há um camaleão louco!","[npc:21]うわあああああああああああああ Убегать! Там сумасшедший хамелеон!","[npc:21]Ahhhhhhhhhhhhhhhhhhhhhhhhhh !! 逃跑! -有一个疯狂的变色龙!",[npc:21] ahhhhhhhhhhhhhhhhhhhhhhhhhhhhh!逃跑!有一個瘋狂的變色龍!,[npc:21]Ahhhhhhhhhhhhhhhhhhhhhhhhhh!! Takbo! May baliw na hunyango!,[npc:21] AHHHHHHHHHHHHHHHHHHHHHHHHHHHH !! Chạy đi! Có một con tắc kè hoa điên! +有一个疯狂的变色龙!",[npc:21] ahhhhhhhhhhhhhhhhhhhhhhhhhhhhh!逃跑!有一個瘋狂的變色龍!,[npc:21]Ahhhhhhhhhhhhhhhhhhhhhhhhhh!! Takbo! May baliw na hunyango!,[npc:21] AHHHHHHHHHHHHHHHHHHHHHHHHHHHH !! Chạy đi! Có một con tắc kè hoa điên! DIALOG_64_1_0,[npc:22]o.O ?? O.o >> o.O ????? O.o >> o.O ????? >:(…. :((((((((((……….. XD!!!!!!!!!!!!!!!!!!!!!!!!!!!!,"[npc:22]o.O ?? O.o >> o.O ????? O.o >> o.O ????? >:(…. :((((((((((……….. XD!!!!!!!!!!!!!!!!!!!!!!!!!!!!","[npc:22]o.O ?? @@ -1211,7 +1178,7 @@ O.o >> o.O ????? O.o >> o.O ????? O.o >> o.O ????? O.o >> o.O ????? >:(…. :((((((((((……….. XD!!!!!!!!!!!!!!!!!!!!!!!!!!!!","[npc:22]o.O ?? O.o >> o.O ????? O.o >> o.O ????? ->:(…. :((((((((((……….. XD!!!!!!!!!!!!!!!!!!!!!!!!!!!!",[NPC:22] O.O ?? O.O >> O.O ?????? O.O >> O.O ?????? > :(…。,[npc:22]o.O ?? O.o >> o.O ????? O.o >> o.O ????? >:(…. :((((((((((……….. XD!!!!!!!!!!!!!!!!!!!!!!!!!!!!,[npc:22] O.O ?? O.O >> O.O ????? O.O >> O.O ????? > :( XD.: ((((((((( +>:(…. :((((((((((……….. XD!!!!!!!!!!!!!!!!!!!!!!!!!!!!",[NPC:22] O.O ?? O.O >> O.O ?????? O.O >> O.O ?????? > :(…。,[npc:22]o.O ?? O.o >> o.O ????? O.o >> o.O ????? >:(…. :((((((((((……….. XD!!!!!!!!!!!!!!!!!!!!!!!!!!!!,[npc:22] O.O ?? O.O >> O.O ????? O.O >> O.O ????? > :( XD.: ((((((((( DIALOG_65_1_0,[npc:09]Hurry up and hide!!!! A chameleon has appeared. Let's try to avoid it as much as we can. It really doesn't look like you'll be able to communicate with it.,"[npc:09]허억 얼른 숨어!!!! 카멜레온이 나타났어. 최대한 피하면서 갈 수 있도록 해보자. 실제로 정말 아무 말이 안 통할 것 처럼 생겼어.","[npc:09]Apresse-se e esconder !!!! @@ -1225,7 +1192,7 @@ Mari kita coba menghindarinya sebisa mungkin. Sepertinya kamu tidak dapat berkom 变色龙已经出现。让我们尽量避免它,就像我们能做到。 这真的不像你要能沟通。",[NPC:09]趕緊躲起來吧!!!!變色龍出現了。讓我們盡量避免它。看起來你們確實無法溝通。,[npc:09]Bilis!!!! May hunyangong nagpakita. Iwasan natin ito sa ating makakaya. Mukhang hindi ito makikipag usap satin.,"[npc:09] Nhanh lên và trốn đi !!!! Một con tắc kè hoa đã xuất hiện. Hãy cố gắng tránh mặt nó nhiều nhất có thể. -Có vẻ như ngươi sẽ không thể nói chuyện được với nó." +Có vẻ như ngươi sẽ không thể nói chuyện được với nó." DIALOG_66_1_0,[npc:22]:3 !! ...... :D............. :O….. o.O ????? ; _;…………>:(…. :((((((((((…. XD!!!!!!!!!!!!!!!!!!!!!!!!!!!!,"[npc:22]:3 !! ...... :D............. :O….. o.O ????? ; _;…………>:(…. :((((((((((…. XD!!!!!!!!!!!!!!!!!!!!!!!!!!!!","[npc:22]:3 !! @@ -1238,7 +1205,7 @@ DIALOG_66_1_0,[npc:22]:3 !! ...... :D............. :O….. o.O ????? ; _;…… ...... :D............. :O….. o.O ????? ; _;…………>:(…. :((((((((((…. XD!!!!!!!!!!!!!!!!!!!!!!!!!!!!","[npc:22]:3 !! ...... :D............. :O….. o.O ????? -; _;…………>:(…. :((((((((((…. XD!!!!!!!!!!!!!!!!!!!!!!!!!!!!",[NPC:22]:3! ........................................................................... O.O ?????? ; _;…………> :(…。 !!!!,[npc:22]:3 !! ...... :D............. :O….. o.O ????? ; _;…………>:(…. :((((((((((…. XD!!!!!!!!!!!!!!!!!!!!!!!!!!!!,[npc:22]: 3 !! ......: D .............: O… .. O.O ????? ; _; !!! !!! +; _;…………>:(…. :((((((((((…. XD!!!!!!!!!!!!!!!!!!!!!!!!!!!!",[NPC:22]:3! ........................................................................... O.O ?????? ; _;…………> :(…。 !!!!,[npc:22]:3 !! ...... :D............. :O….. o.O ????? ; _;…………>:(…. :((((((((((…. XD!!!!!!!!!!!!!!!!!!!!!!!!!!!!,[npc:22]: 3 !! ......: D .............: O… .. O.O ????? ; _; !!! !!! DIALOG_67_1_0,[npc:09]Argh! What do I do? He keeps chasing me!!! Hurry up and run!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! It's been chasing me the entire way.,"[npc:09]으아악!! 어떡하지, 저 녀석이 계속 쫓아와!!! 빨리 도망가!!!!!! @@ -1256,7 +1223,7 @@ Cepat dan lari!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Dia mengejarku sepanjang perjalan 我该怎么做,他一直追我! 赶快跑!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 它一直追着我一路上。",[NPC:09] Argh!我該怎麼辦,他一直在追我!!!快點跑!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!一路上一直在追我。,[npc:09]Argh! Ano ang gagawin ko? Hinahabol nya parin ako!!!. Bilisan mo ang pag takbo!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!.Hinahabol nya parin ako!,"[npc:09] Argh! Làm gì đây? Nó cứ đuổi theo ta !!! -Nhanh lên và chạy đi!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Nó đã theo đuổi ta suốt cả quãng đường." +Nhanh lên và chạy đi!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Nó đã theo đuổi ta suốt cả quãng đường." DIALOG_68_1_0,[npc:22]……………. :((((((((((………. :3 …………. o.O………… -.-…………………….,"[npc:22]……………. :((((((((((………. :3 …………. o.O………… -.-…………………….","[npc:22]……………. :((((((((((………. @@ -1269,7 +1236,7 @@ DIALOG_68_1_0,[npc:22]……………. :((((((((((………. :3 …………. o. :3 …………. o.O………… -.-…………………….","[npc:22]……………. :((((((((((………. :3 …………. o.O………… --.-…………………….",[NPC:22]………………。 :((((((((((((…………。:3…………),,[npc:22]……………. :((((((((((………. :3 …………. o.O………… -.-…………………….,[npc:22] : ((((((((((………. :3 …………. o.O………… -.-……………………. +-.-…………………….",[NPC:22]………………。 :((((((((((((…………。:3…………),,[npc:22]……………. :((((((((((………. :3 …………. o.O………… -.-…………………….,[npc:22] : ((((((((((………. :3 …………. o.O………… -.-……………………. DIALOG_69_1_0,[npc:09] Oh my god! Let's hide here and go somewhere else later. Let's wait for it to pass.,"[npc:09]헉헉 일단은 여기 숨어서 다른곳으로 지나가길 기다려보자","[npc:09] Oh meu Deus @@ -1280,7 +1247,7 @@ Vamos esperar que ela passe","[npc:09]フクフク Давай спрятаться здесь и пойти куда -нибудь еще Давай подождем, пока он пройдет","[NPC:09]哦,我的上帝 让我们躲在这里去别的地方 -让我们等待它通过",[NPC:09]天哪 我們躲在這裡 去別的地方 等它過去,[npc:09] Diyos ko! Tayo muna ay magtago dito bago pumunta sa ibang lugar. Antayin muna nating humupa ito.,[npc:09] Ôi Chúa ơi! Chúng ta hãy trốn ở đây rồi chuồn đi chỗ khác. Hãy đợi nó chạy qua đã. +让我们等待它通过",[NPC:09]天哪 我們躲在這裡 去別的地方 等它過去,[npc:09] Diyos ko! Tayo muna ay magtago dito bago pumunta sa ibang lugar. Antayin muna nating humupa ito.,[npc:09] Ôi Chúa ơi! Chúng ta hãy trốn ở đây rồi chuồn đi chỗ khác. Hãy đợi nó chạy qua đã. DIALOG_70_1_0,[npc:22]……………. ))))))))):………. :3 …………. o.O………… -.-…………………….,"[npc:22]……………. ))))))))):………. :3 …………. o.O………… -.-…………………….","[npc:22] ……………. )))))))): ………. @@ -1293,7 +1260,7 @@ DIALOG_70_1_0,[npc:22]……………. ))))))))):………. :3 …………. o.O : 3 …………. О.О ………… --.- …………………….","[NPC:22]………………。 )))):…………。 :3…………。 O.O………… --.-…………………………。",[NPC:22]………………。 ))))):…………。 :3…………。 o.o………… - 。-…………………………。,[npc:22]……………. ))))))))):………. :3 …………. o.O………… -.-…………………….,[npc:22] ))))))))))): : 3 …………. O.O ………… -.- +-.-…………………………。",[NPC:22]………………。 ))))):…………。 :3…………。 o.o………… - 。-…………………………。,[npc:22]……………. ))))))))):………. :3 …………. o.O………… -.-…………………….,[npc:22] ))))))))))): : 3 …………. O.O ………… -.- DIALOG_71_1_0,"[npc:09] I can't do this. It's no longer possible to hide and escape. Eventually, we'll have no choice but to subdue him!","[npc:09]안돼겠어. 더이상은 도망도 숨는것도 무리야. 결국 제압하는 수밖에!!!","[npc:09] Não posso fazer isso. @@ -1307,7 +1274,7 @@ Pada akhirnya, kita tidak punya pilihan selain menaklukkannya!","[npc:09] Я н 不可能逃脱并隐藏。 最终,我们别无选择,只能征服他!",[NPC:09]我做不到。再也無法逃避和隱藏。最終,我們別無選擇,只能去製服他!,"[npc:09] Hindi ko na kaya. Imposible ng tumakas at magtago pa. Sa bandang huli, wala na tayong magagawa kundi pasukuin siya!","[npc:09] Ta không thể làm được. Không thể trốn và chạy thoát được. -Đến một lúc nào đó, chúng ta vẫn sẽ không có lựa chọn nào khác ngoài việc chiến đấu với nó!" +Đến một lúc nào đó, chúng ta vẫn sẽ không có lựa chọn nào khác ngoài việc chiến đấu với nó!" DIALOG_72_1_0,[npc:24] Did you overpower him? Everything is as it should be...,"[npc:24] 그까지 제압한건가..... 모든 것은 정해진대로......","[npc:24] @@ -1318,7 +1285,7 @@ Tudo é como deveria ser ...","[npc:24] Вы его одолели? Все, как должно быть ...","[NPC:24] 你压倒了他吗? -一切都应该...",[NPC:24]你壓倒了他?一切都如它應該的……,[npc:24] Natalo mo ba siya tulad ng inaasahan?,[npc:24] Ngươi đã chế ngự được nó? Sao có thể như vậy ... +一切都应该...",[NPC:24]你壓倒了他?一切都如它應該的……,[npc:24] Natalo mo ba siya tulad ng inaasahan?,[npc:24] Ngươi đã chế ngự được nó? Sao có thể như vậy ... DIALOG_73_1_0,[npc:09] Argh! You guys can't even communicate! It's endless!,"[npc:09]으아악!! 말도 안통하는 녀석들이 정말 끝도 없이 몰려오네","[npc:09] ARGH! @@ -1329,7 +1296,7 @@ Vocês que nem conseguem se comunicar Вы, ребята, которые даже не можете общаться Это бесконечно","[NPC:09] Argh! 你们甚至无法交流的人 -这是无尽的",[NPC:09] 啊!你們這些甚至無法溝通的傢伙,真是沒完沒了。,[npc:09] Argh! Kayong mga ayaw makipagusap walang katapusan,[npc:09] Argh! Các ngươi thậm chí không thể nói chuyện với nhau! Chuyện này sẽ chẳng bao giờ kết thúc! +这是无尽的",[NPC:09] 啊!你們這些甚至無法溝通的傢伙,真是沒完沒了。,[npc:09] Argh! Kayong mga ayaw makipagusap walang katapusan,[npc:09] Argh! Các ngươi thậm chí không thể nói chuyện với nhau! Chuyện này sẽ chẳng bao giờ kết thúc! DIALOG_74_1_0,"[npc:24] We've come this far in such a short amount of time. Everything is going according to plan and to think, I didn't believe it would come to fruition.","[npc:24] 어느새 여기까지 왔는가. 사실 모든것은 정해진대로 @@ -1347,32 +1314,32 @@ Semuanya berjalan sesuai rencana dan menurutku, aku tidak percaya itu akan membu 我们已经知道了这一点。 实际上,一切都按计划 我曾经认为这不仅会流动。",[NPC:24]在我們知道之前,我們已經走到了這一步。實際上,一切都按照計劃進行,我過去認為它不會僅僅是流動。,"[npc:24] Nakarating tayo dito ng di natin napapansin. Sa totoo lang ,di ko inaasahang lahat ay aayon sa plano.","[npc:24] Chúng ta đã tiến rất xa trong một khoảng thời gian ngắn như vậy. -Mọi thứ đang diễn ra theo kế hoạch và thú thực, ta không thể tin được nó là sự thực." +Mọi thứ đang diễn ra theo kế hoạch và thú thực, ta không thể tin được nó là sự thực." DIALOG_74_1_1,This world moves on the whim of the God's.,"그놈의 신들 마음대로 흘러가는 이 세상따위.....","O que quer que os deuses queiram O mundo que está fluindo ...","あの野郎の神々の思うままに 流れるこの世の中なんて…","Cualquiera que sea la voluntad de los dioses, el mundo que fluye...",สิ่งที่พระเจ้าต้องการ โลกที่ไหลออกมา ...,Dunia ini bergerak atas kehendak Dewa.,"Что бы ни хотели боги Мир, который течет ...","无论众神想要什么 -流动的世界...",無論諸神想要什麼,世界都在流動……,Kung anu man ang gusto ng mga diyos ang mundo ay sumusunod,Thế giới này di chuyển theo ý thích của Thần. +流动的世界...",無論諸神想要什麼,世界都在流動……,Kung anu man ang gusto ng mga diyos ang mundo ay sumusunod,Thế giới này di chuyển theo ý thích của Thần. DIALOG_75_1_0,"[npc:25]So you say, but I won't let it be that way.","[npc:25] 결코 니들이 정한대로 그렇게 흘러가게 그대로 두지 않을 것이다.","[npc:25] Conforme você decide, Não vou deixar fluir assim.","[npc:25]決してお前たちが決めたように そんな風に流されることはない。","[npc:25] Como tú decidas, no permitiré que las cosas sigan así.",[npc:25] ตามที่คุณตัดสินใจ ฉันจะไม่ปล่อยให้มันไหลแบบนั้น,"[npc:25] Begitulah katamu, tapi aku tidak akan membiarkannya seperti itu.","[npc:25] Как вы решаете, Я не позволю этому течь так.","[NPC:25]当您决定时, -我不会那样流动。",[NPC:25]按照你的決定,我不會讓它像那樣流動。,"[npc:25] Habang nagpapasya ka, di ko papayagan ang ganyan.",[npc:25] Ta sẽ không để mọi thứ diễn ra theo ý muốn của ngươi. +我不会那样流动。",[NPC:25]按照你的決定,我不會讓它像那樣流動。,"[npc:25] Habang nagpapasya ka, di ko papayagan ang ganyan.",[npc:25] Ta sẽ không để mọi thứ diễn ra theo ý muốn của ngươi. DIALOG_75_1_1,I'd rather die than have it be like that! I'm going to burn it all to cinders!,"그렇게 흘러가게 놔둘바에는 모든 걸 불태워버리겠다","Eu prefiro deixar isso assim Eu vou queimar tudo","このまま放っておくなら 全てを燃やしてしまおう。",Prefiero dejarlo así. Voy a quemarlo todo.,ฉันอยากจะปล่อยมันไปอย่างนั้น ฉันจะเผาทุกอย่าง,Aku lebih baik mati daripada menjadi seperti itu! Aku akan membakar semuanya menjadi abu!,"Я бы предпочел отпустить это так Я все буду сжигать","我宁愿那样放开 -我要燃烧一切",我寧願讓它像那樣流動,我會燒毀一切。,Mas gusto ko pang hayaan nalang na ganun. Susunugin ko ang lahat.,Ta thà chết còn hơn là như vậy! Ta sẽ đốt tất cả cho thành tro bụi! +我要燃烧一切",我寧願讓它像那樣流動,我會燒毀一切。,Mas gusto ko pang hayaan nalang na ganun. Susunugin ko ang lahat.,Ta thà chết còn hơn là như vậy! Ta sẽ đốt tất cả cho thành tro bụi! DIALOG_76_1_0,"[npc:07] In the end, try as they might, everything must go as its willed.","[npc:07] 결국 어떻게 반항하더라도 정해진대로 흘러가게 되어있죠.","[npc:07] No final, não importa como você se rebelar, Deveria ir pelo livro.","[npc:07]結局どう反抗しても 決められた通りに流れていくのです。","[npc:07] Al final, sin importar cuánto te rebeles, se supone que las cosas sigan el curso normal.",[npc:07] ในท้ายที่สุดไม่ว่าคุณจะกบฏอย่างไร มันควรจะไปตามหนังสือ,"[npc:07] Pada akhirnya, berusaha sekuat tenaga, semuanya harus berjalan sesuai keinginan.","[npc:07] В конце концов, независимо от того, как вы восстаете, Это должно пойти по книге.","[NPC:07]最后,无论您如何反叛, -这本书应该走。",[NPC:07]最終,無論你如何反抗,它都應該按照書本進行。,"[npc:07] Sa huli, kahit gaano ka pa man ka rebelde. Ito dapat ay naayos sa batas.","[npc:07] Cuối cùng, dù có cố gắng thế nào đi nữa, không ai có thể thoát khỏi bàn tay của số phận." -DIALOG_76_1_1,Try not to lose sight of that in the next world.,다음 세상에서도 그 믿음 잃지 마세요,Não perca essa confiança no próximo mundo,次の世界でもその信念を失わないでください。,No pierdas esa confianza en el siguiente mundo.,อย่าสูญเสียความไว้วางใจในโลกหน้า,Cobalah untuk tidak melupakan hal itu di dunia berikutnya.,Не теряйте это доверие в следующем мире,不要失去对下一个世界的信任,在下一個世界中,不要失去對那的信任。,Huwag mong walain ang sigla sa susunod na mundo.,Đừng đánh mất đức tin đó trong thế giới tiếp theo. +这本书应该走。",[NPC:07]最終,無論你如何反抗,它都應該按照書本進行。,"[npc:07] Sa huli, kahit gaano ka pa man ka rebelde. Ito dapat ay naayos sa batas.","[npc:07] Cuối cùng, dù có cố gắng thế nào đi nữa, không ai có thể thoát khỏi bàn tay của số phận." +DIALOG_76_1_1,Try not to lose sight of that in the next world.,다음 세상에서도 그 믿음 잃지 마세요,Não perca essa confiança no próximo mundo,次の世界でもその信念を失わないでください。,No pierdas esa confianza en el siguiente mundo.,อย่าสูญเสียความไว้วางใจในโลกหน้า,Cobalah untuk tidak melupakan hal itu di dunia berikutnya.,Не теряйте это доверие в следующем мире,不要失去对下一个世界的信任,在下一個世界中,不要失去對那的信任。,Huwag mong walain ang sigla sa susunod na mundo.,Đừng đánh mất đức tin đó trong thế giới tiếp theo. DIALOG_77_1_0,"[npc:09] I've been preparing myself for this very moment. You should be used to teleporting by now! Remember, I'm counting on you. Let's go!","[npc:09]자 이제는 내가 준비해주는 순간 이동도 어느정도 익숙해지고 있지? @@ -1390,19 +1357,19 @@ Kamu seharusnya sudah terbiasa berteleportasi sekarang! Ingat, aku mengandalkanm 我准备的那一刻,动作 你有多熟悉? 我很期待这次,todistrict",[NPC:09]現在,我準備的那一刻,這個動作你有多熟悉?這一次,我也很期待。,"[npc:09] Sa ngayon ihanda ko muna ito, gaano ka pamilyar sa paggalaw? Aasahan ko ito ngaun.","[npc:09] Ta đã chuẩn bị từng khắc cho thời điểm này. -Ngươi hiên tại hẳn là đã quen dịch chuyển tức thời! Hãy nhớ rằng, ta đang đặt niềm tin vào ngươi. Đi nào!" +Ngươi hiên tại hẳn là đã quen dịch chuyển tức thời! Hãy nhớ rằng, ta đang đặt niềm tin vào ngươi. Đi nào!" DIALOG_78_1_0,"[npc:26] Laufey said, ""Come find me.""","[npc:26] 라우페이님이 말씀하셨다. 나를 찾아오라","[npc:26] Laufey disse. Venha me encontrar","[npc:26]ラウフェイ様がおっしゃった。 私を訪ねて来い。",[npc:26] Laufey dijo. Ven a encontrarme.,[npc:26] Laufey กล่าว มาหาฉัน,"[npc:26] Laufey berkata, ""Ayo temukan aku.""","[npc:26] сказал Лауфи. Найди меня","[NPC:26] Laufey说。 -来找我",[NPC:26] Laufey說。來找我。,[npc:26] Sinabi ni Laufey na hanapin siya.,"[npc:26] Laufey nói, ""Hãy đến tìm ta.""" +来找我",[NPC:26] Laufey說。來找我。,[npc:26] Sinabi ni Laufey na hanapin siya.,"[npc:26] Laufey nói, ""Hãy đến tìm ta.""" DIALOG_79_1_0,"[npc:27] Laufey said, ""Destroy everything that comes.""","[npc:27] 라우페이님이 말씀하셨다. 찾아오는 모든 것들을 파괴하라고","[npc:27] Laufey disse. Destrua tudo o que vem","[npc:27]ラウフェイ様がおっしゃった。 やってくる全てのものを破壊しろ。",[npc:27] Laufey dijo. Destruye todo lo que se cruce en tu camino.,[npc:27] Laufey กล่าว ทำลายทุกสิ่งที่มา,"[npc:27] Laufey berkata, ""Hancurkan semua yang datang.""","[npc:27] Лауфи сказал. Уничтожить все, что приходит","[NPC:27]劳菲说。 -摧毁一切",[NPC:27]Laufey說。摧毀所有過來的東西。,[npc:27] Sinabi ni Laufey na sirain ang lahat ng darating.,"[npc:27] Laufey nói, ""Phá hủy mọi thứ xuất hiện.""" +摧毁一切",[NPC:27]Laufey說。摧毀所有過來的東西。,[npc:27] Sinabi ni Laufey na sirain ang lahat ng darating.,"[npc:27] Laufey nói, ""Phá hủy mọi thứ xuất hiện.""" DIALOG_80_1_0,"[npc:09] Come to think of it, there's actually a rumor that he was an ice giant. The trolls rebelled against the Æsir gods. There's a rumor that he's done for.","[npc:09]그러고보니 이들은 사실 얼음 거인이었다는 소문이 있어. 애시르 신들에게 반항해서 트롤이 @@ -1420,7 +1387,7 @@ Para troll memberontak melawan dewa Æsir. Ada rumor bahwa dia sudah tamat.","[n 有传言说他是一个冰巨人。 巨魔反对艾sirgogs 这是一个谣言,已经完成了。",[NPC:09]想起來,他們實際上是一個冰巨人的傳言。據說巨魔反抗了阿西爾神。,[npc:09] Kung iicipin mo. May ulat na siya ay isang yelong higante. Ang mga troll ay lumaban sa mga diyos ng Assir. Ngunit hindi lang ito sabi-sabi ito ay nangyari na.,"[npc:09] Nghĩ tới điều đó, hình như có một tin đồn rằng hắn đã từng là một gã khổng lồ băng. -Tin đồn nói rằng hắn phản loạn lại những vị thần Æsir và thực sử trở thành người khổng lồ" +Tin đồn nói rằng hắn phản loạn lại những vị thần Æsir và thực sử trở thành người khổng lồ" DIALOG_81_1_0,[npc:30] It's over. Kindly accept your defeat... so we can attack again!,"[npc:30] 항복이야 항복. 항복한 적은 친절하게 받아주.... 는 사이에 다시 공격!","[npc:30] É rendição. @@ -1431,7 +1398,7 @@ Então, ataque novamente!","[npc:30] 降伏だ、降伏。 Враг, который сдался любезно принимает ... Затем атакуй снова!","[NPC:30]这是投降。 投降的敌人接受... -然后,再次进攻!",[NPC:30]這是投降。善意接受投降的敵人……然後,再次攻擊!,[npc:30] Sumuko na. Ang kalabang madaling tinanggap ang pagkatalo ay atake muli!,[npc:30] Kết thúc rồi. Hãy chấp nhận thất bại của ngươi ... để rồi chúng ta có thể tấn công một lần nữa! +然后,再次进攻!",[NPC:30]這是投降。善意接受投降的敵人……然後,再次攻擊!,[npc:30] Sumuko na. Ang kalabang madaling tinanggap ang pagkatalo ay atake muli!,[npc:30] Kết thúc rồi. Hãy chấp nhận thất bại của ngươi ... để rồi chúng ta có thể tấn công một lần nữa! DIALOG_82_1_0,[npc:28]Laufey told me... She told me... But what did you say? I don't... I don't remember...,"[npc:28] 라우페이님이 말씀하셨다. 과거에도 라우페이님은 말씀하셨지. 그런데 무슨 말씀을 하셨었지..... @@ -1447,7 +1414,7 @@ Eu não ... eu não me lembro ...","[npc:28] ラウフェイ様はおっしゃ Я не ... я не помню ...","[NPC:28]劳菲说。 过去,劳菲说, 但是你说什么? -我不...我不记得了...",[NPC:28]Laufey說過。 Laufey在過去說過,但你說過什麼呢?我不……我不記得了……,[npc:09] May sinabi si Laufey sa nakaraan. Anu nga ba ang sinabi nya? Hindi ko na matandaan,[npc:28] Laufey nói với ta ... cô ấy nói với ta ... nhưng ngươi đã nói gì? Ta không ... ta không nhớ … +我不...我不记得了...",[NPC:28]Laufey說過。 Laufey在過去說過,但你說過什麼呢?我不……我不記得了……,[npc:09] May sinabi si Laufey sa nakaraan. Anu nga ba ang sinabi nya? Hindi ko na matandaan,[npc:28] Laufey nói với ta ... cô ấy nói với ta ... nhưng ngươi đã nói gì? Ta không ... ta không nhớ … DIALOG_83_1_0,"[npc:29] If you're a warrior, I don't think I can fight and win against this wounded man. What's the point? Let's get back together and face him when he's fully recovered, in a fair manner!","[npc:29] 그대도 전사라면 이런 부상자와 싸워서 이기는게 무슨 의미가 있겠는가! 회복후에 정정당당하게 @@ -1465,7 +1432,7 @@ Apa gunanya? Mari kita kembali bersama dan menghadapinya ketika dia sudah pulih 我认为我不能与这个受伤的人打架并赢 重点是什么?恢复后公平的方式 让我们回来吧!",[NPC:29]如果你是一名戰士,我不認為我能夠戰勝這個受傷的人並取得勝利。有什麼意義呢?恢復後以公平的方式讓我們再度聚首!,"[npc:29] Bilang isang mandirigma, hindi ko kayang labanan ang isang duguan tao at manalo. Anu ang punto nito? Pagkatapos mong gumaling ay manlaban ulit tayo. Ngunit ngayon ay bumalik na tayong pareho.","[npc:29] Nếu ngươi là một chiến binh, ta không nghĩ rằng ta có thể chiến đấu và chiến thắng trước người đàn ông bị thương này. -Vấn đề ở đây là gì? Chúng ta hãy quay lại cùng nhau và đối mặt với anh ta khi anh ta hoàn toàn bình phục, một cách công bằng!" +Vấn đề ở đây là gì? Chúng ta hãy quay lại cùng nhau và đối mặt với anh ta khi anh ta hoàn toàn bình phục, một cách công bằng!" DIALOG_84_1_0,[npc:32]Laufey said to be kind to those who can mind their manners... I'll be sure to kindly tear you apart..,"[npc:32] 라우페이님이 말씀하셨죠. 예의를 아는 상대에게는 친절히 대해주라고. 친절히.... 찢어드리죠","[npc:32] Laufey disse isso. @@ -1477,7 +1444,7 @@ Aku pasti akan dengan baik hati memisahkanmu..","[npc:32] Лауфи сказа Будьте добры к тем, кто знает ваши манеры. Пожалуйста ... я разорвул это для тебя","[NPC:32] Laufey这么说。 对那些了解您的举止的人友善。 -请...我为你撕裂",[NPC:32] Laufey這麼說過。對知道你禮儀的人要善良。善良地……我會為你撕裂它。,"[npc:32] Sabi ni Laufey , maging mabait sa mga nakakakilala saiyo. punitin ko para sayo",[npc:32] Laufey nói rằng hãy lịch sự với những người biết lễ nghi… Ta chắc chắn sẽ xé xác ngươi một cách lịch sự +请...我为你撕裂",[NPC:32] Laufey這麼說過。對知道你禮儀的人要善良。善良地……我會為你撕裂它。,"[npc:32] Sabi ni Laufey , maging mabait sa mga nakakakilala saiyo. punitin ko para sayo",[npc:32] Laufey nói rằng hãy lịch sự với những người biết lễ nghi… Ta chắc chắn sẽ xé xác ngươi một cách lịch sự DIALOG_85_1_0,"[npc:31]Laufey said that the cute cat warrior has grown up. Come along, beautiful cat warrior.","[npc:31] 라우페이님이 말씀하셨죠. 귀여운 고양이 전사가 멋지게 성장했다고. 멋지게 성장한 고양이 전사여, 덤벼보시죠.","[npc:31] Laufey disse isso. @@ -1488,7 +1455,7 @@ Vamos, lindamente cultivado guerreiro de gato.","[npc:32]ラウフェイ様が Симпатичный кошачий воин прекрасно вырос. Давай, красиво выращенный воин кошек.","[NPC:31] Laufey这么说。 一个可爱的猫战士长大了。 -来吧,成年的猫战士。",[NPC:31] Laufey說過。一個可愛的貓戰士已經長得很漂亮了。來吧,漂亮的貓戰士。,[npc:31] Sinabi ni Laufey na ang cute na pusang mandirigma ay lumaki ng maganda. Halika na magandang pusang mandirigma,"[npc:31] Laufey nói rằng Miêu chiến binh dễ thương đã lớn. Theo ta, Miêu chiến binh xinh đẹp." +来吧,成年的猫战士。",[NPC:31] Laufey說過。一個可愛的貓戰士已經長得很漂亮了。來吧,漂亮的貓戰士。,[npc:31] Sinabi ni Laufey na ang cute na pusang mandirigma ay lumaki ng maganda. Halika na magandang pusang mandirigma,"[npc:31] Laufey nói rằng Miêu chiến binh dễ thương đã lớn. Theo ta, Miêu chiến binh xinh đẹp." DIALOG_86_1_0,"[npc:33]Ohoho, it appears even in this life you manage to be late. Where are you, beautiful cat warrior? Don't keep a lady waiting!","[npc:33] 이번 생에도 역시 늦었군요. 도대체 언제쯤 당신은 제시간에 오는 걸까요","[npc:33] Nesta vida, @@ -1501,7 +1468,7 @@ Dimana kamu, prajurit Kucing yang cantik? Jangan biarkan seorang wanita menunggu Он вовремя?","[NPC:33]在这一生中, 你迟到了。你什么时候到达? 他准时吗?",[NPC:33]在這一生中,你來晚了。你究竟何時才會準時呢?,[npc:33] Pati sa buhay na ito huli ka padin. Kelan ka ba magiging tama sa oras?,"[npc:33] Ohoho, Ngay cả trong kiếp sống này ngươi cũng vẫn đến muộn. -Ngươi đang ở đâu, Miêu chiến binh xinh đẹp? Đừng để một người phụ nữ phải chờ đợi!" +Ngươi đang ở đâu, Miêu chiến binh xinh đẹp? Đừng để một người phụ nữ phải chờ đợi!" DIALOG_87_1_0,"[npc:33]I just knew you would be a charming little cat warrior, but still... it's not good enough for me. You know that, don't you, darling?","[npc:33] 역시나 매력적인 고양이 전사예요. 그러나 당신만으론 부족한거 알고 있죠?","[npc:33] Como esperado, ele é um charmoso guerreiro de gatos. Mas você sabe que você não é bom o suficiente, certo?","[npc:33]やっぱり魅力的な猫戦士ですね。 @@ -1509,7 +1476,7 @@ Mas você sabe que você não é bom o suficiente, certo?","[npc:33]やっぱり itu belum cukup baik bagiku. Kamu tahu itu kan, sayang?","[npc:33] Как и ожидалось, он очаровательный воин кошек. Но ты знаешь, что ты недостаточно хорош, верно?","[NPC:33]正如预期的那样,他是一个迷人的猫战士。 但是你知道你还不够好,对吗?",[NPC:33]不出所料,你是一個迷人的貓戰士。但你知道你還不夠格,對吧?,"[npc:33] Tulad ng inaasahan, kahanga-hanga siyang pusang mandirigma. Ngunit alam mong hindi ka sapat diba?","[npc:33] Ta chỉ biết ngươi là một Miêu chiến binh nhỏ quyến rũ, nhưng vẫn ... -Điều đó không đủ đối với ta. Ngươi biết điều đó mà, phải không?" +Điều đó không đủ đối với ta. Ngươi biết điều đó mà, phải không?" DIALOG_88_1_0,"[npc:33] Hmph! Here I was thinking nothing short of a miracle could stop me, but you grew far stronger than I could have ever imagined... Yggdrasil remains pure and Baldur continues to endure. It's all because of this cat, Odin...","[npc:33] 이정도까지 성장했을줄이야 그러나 고작 사도로는 나를 막을수 없을 거예요. 이그드라실의 오염도, 발두르의 죽음도 @@ -1528,22 +1495,22 @@ Yggdrasil tetap murni dan Baldur terus bertahan. Itu semua karena Kucing ini, Od 但是只有使徒不会阻止我。 伊格德拉西尔没有污染,鲍德尔没有死亡 这一切都是因为他,奥丁。",[NPC:33]我沒想到你能長到這個地步。但只有一個使徒不能阻止我。 世界樹沒有污染,Baldur沒有死亡,這都是他,奧丁的緣故。,"[npc:33] Hindi ko inaasahan na lumakas kang ganito ngunit ang isang apostol lamang ay hindi ako mapipigilan. Walang polusyon sa Igdrasil, walang namamatay sa Baldur. Lahat ng ito ay dahil sa kanya. Kay Odin.","[npc:33] Hmmm! Ta đã nghĩ rằng không có một phép màu nào có thể ngăn cản được mình, nhưng ngươi ngày càng mạnh mẽ hơn ta có thể tưởng tượng ... -Yggdrasil vẫn thuần khiết và Baldur tiếp tục phải chịu đựng. Tất cả vì con mèo này, Odin ..." -DIALOG_90_1_0,[npc:34]You must be here to disrupt Odin's plan.,[npc:34] 당신은 오딘의 계획을 방해하기 위해 여기에 왔습니다,[npc:34] Você está aqui para interromper o plano de Odin,[npc:34]あなたはオーディンの計画を妨害するためにここに来ました。,[npc:34] Estás aquí para interrumpir el plan de Odin.,[npc:34] คุณมาที่นี่เพื่อขัดจังหวะแผนของโอดิน,[npc:34]Kamu harus berada di sini untuk mengganggu rencana Odin.,"[npc:34] Вы здесь, чтобы прервать план Одина",[NPC:34]您在这里打断Odin的计划,[NPC:34]你來這裡是為了阻止奧丁的計劃。,[npc:34] Ikaw ay naparito para hadlangan ang plano ni Odin.,[npc:34] Ngươi phải ở đây để phá vỡ kế hoạch của Odin. -DIALOG_90_1_1,[npc:09]Why do they keep bringing up Odin's name?,[npc:09] 오딘의 이름은 왜 여기에 나오는 거지?,[npc:09] Por que o nome de Odin chega aqui?,[npc:09]オーディンの名前はここでなぜ出てくるの?,[npc:09] ¿Por qué el nombre de Odin aparece aquí?,[npc:09] ทำไมชื่อของ Odin ถึงมาที่นี่?,[npc:09]Mengapa mereka terus menyebut nama Odin?,[npc:09] Почему имя Одина приходит сюда?,[NPC:09]为什么奥丁的名字出现在这里?,[NPC:09]為什麼奧丁的名字出現在這裡?,[npc:09]Bakit lumabas ang pangalan ni Odin dito?,[npc:09] Tại sao họ liên tục nhắc đến Odin? -DIALOG_91_1_0,"[npc:37] It's just as Odin says, you've come to destroy this place.",[npc:37] 오딘의 말대로 당신은 이곳을 파괴하러 왔습니다,"[npc:37] Como Odin disse, você está aqui para destruir este lugar",[npc:37]オーディンの言葉通り、あなたはここを破壊しに来ました。,"[npc:37] Como dijo Odin, estás aquí para destruir este lugar.",[npc:37] อย่างที่โอดินพูดคุณมาที่นี่เพื่อทำลายสถานที่แห่งนี้,"[npc:37] Seperti yang Odin katakan, kamu datang untuk menghancurkan tempat ini.","[npc:37] Как сказал Один, вы здесь, чтобы уничтожить это место",[NPC:37]正如Odin所说,您在这里摧毁这个地方,[NPC:37]正如奧丁所說,你來這裡是為了摧毀這個地方。,"[npc:37] Gaya ng sabi ni Odin, ikaw ay naparito para sirain ang lugar na ito","[npc:37] Giống như Odin nói, ngươi đến để phá hủy nơi này." -DIALOG_91_1_1,[npc:09]What the heck did Odin say?,[npc:09] 도대체 오딘이 뭐라고 했습니까?,[npc:09] O que diabos Odin disse?,[npc:09]一体オーディンは何と言ったのだの?,[npc:09] ¿Qué diablos dijo Odin?,[npc:09] โอดินพูดอะไร?,[npc:09]Apa yang Odin katakan?,"[npc:09] Что, черт возьми, сказал Один?",[NPC:09]奥丁怎么说?,[NPC:09]奧丁究竟說過什麼?,[npc:09] Anong kalokohan ang sinabi ni Odin?,[npc:09] Odin nói cái quái gì vậy? -DIALOG_92_1_0,"[npc:35]By the will of Odin, I'll end you!",[npc:35] 오딘의 명령대로 파괴합니다.,[npc:35] Destrua conforme ordenado por Odin.,[npc:35]オーディンの命令に従って破壊します。,[npc:35] Destruye como lo ordenó Odin.,[npc:35] ทำลายตามคำสั่งของ Odin,"[npc:35]Atas kehendak Odin, aku akan menghabisimu!",[npc:35] Уничтожьте в соответствии с упорядоченным Одином.,[NPC:35]销毁Odin的命令。,[NPC:35]按照奧丁的命令去摧毀。,[npc:35] Sirain sa kautusan ni Odin.,"[npc:35] Theo ý muốn của Odin, ta sẽ kết liễu ngươi!" -DIALOG_92_1_1,"[npc:36]By the will of Odin, I bind you!",[npc:36] 오딘의 명령대로 당신을 묶습니다.,[npc:36] Eu ligo você conforme encomendado por Odin.,[npc:36]オーディンの命令に従ってあなたを縛ります。,[npc:36] Te ato como lo ordenó Odin.,[npc:36] ฉันผูกคุณตามที่ Odin สั่ง,"[npc:36]Atas kehendak Odin, aku mengikatmu!",[npc:36] Я связываю вас в соответствии с упорядоченным Одином.,[NPC:36]我按照Odin的顺序绑定您。,[NPC:36]我按照奧丁的命令來綁住你。,[npc:36] Ginagapos kita sa kautusan ni Odin.,"[npc:36] Theo ý muốn của Odin, ta sẽ trói buộc ngươi!" -DIALOG_93_1_0,[npc:38] None shall pass without Odin's permission.,[npc:38] 오딘의 허락 없이는 누구도 지나갈 수 없습니다.,[npc:38] Ninguém pode passar sem a permissão de Odin.,[npc:38]オーディンの許可がなければ誰も通れません。,[npc:38] Nadie puede pasar sin el permiso de Odin.,[npc:38] ไม่มีใครสามารถผ่านได้โดยไม่ได้รับอนุญาตจาก Odin,[npc:38] Tidak ada yang boleh lewat tanpa izin Odin.,[npc:38] Никто не может пройти без разрешения Одина.,[NPC:38]未经奥丁许可,没有人可以通过。,[NPC:38]未經奧丁許可,沒有人可以通過。,[npc:38] Walang makadaraan kung walang pahintulot ni Odin.,[npc:38] Không ai có thể thông qua mà không có sự cho phép của Odin. -DIALOG_93_1_1,[npc:38]Your trivial skill power won't overwhelm me!,[npc:38] 나를 압도하기 위해서는 이런 사소한 기술로는 안 될 것입니다.,"[npc:38] Para me sobrecarregar, não funcionará com todas essas habilidades triviais.",[npc:38]私を圧倒するには、こんな些細な技術では無理でしょう。,"[npc:38] Para superarme, no funcionará con todas estas habilidades triviales.",[npc:38] เพื่อครอบงำฉันมันจะไม่ทำงานกับทักษะเล็กน้อยเหล่านี้,[npc:38]Kekuatan keterampilan sepelemu tidak akan membuatku kewalahan!,"[npc:38] Чтобы ошеломить меня, это не будет работать со всеми этими тривиальными навыками.",[NPC:38]让我不知所措,它与所有这些琐碎的技能都无法使用。,[NPC:38]想要壓倒我,這些微不足道的技能是不夠的。,[npc:38] hindi nyo ako magagapi. Hindi gagana ang walang kwenta niyong kakayanan.,[npc:38] Sức mạnh kỹ năng tầm thường của ngươi sẽ không thể áp đảo ta! -DIALOG_94_1_0,[npc:38] Odin warned me about your terrifying power.,[npc:38] 새로운 기술은 무섭습니다. 그래서 오딘이 경고한 겁니다.,[npc:38] A nova habilidade é assustadora. É por isso que Odin me avisou.,[npc:38]新しい技術は怖いです。 だからオーディンが警告したのです。,[npc:38] La nueva habilidad es aterradora. Por eso Odin me advirtió.,[npc:38] ทักษะใหม่นั้นน่ากลัว นั่นเป็นเหตุผลที่โอดินเตือนฉัน,[npc:38] Odin memperingatkanku tentang kekuatan mengerikanmu.,[npc:38] Новый навык страшный. Вот почему Один предупредил меня.,[NPC:38]新技能令人恐惧。这就是为什么奥丁警告我。,[NPC:38]新技能是可怕的。這就是為什麼奧丁警告我。,"[npc:38] Ang bagong kakayanang ito ay nakakatakot, kaya ako binalaan ni Odin.",[npc:38] Odin đã cảnh báo ta về sức mạnh đáng sợ của ngươi. -DIALOG_94_1_1,[npc:09] These are the followers of Odin. Now's the time to put those skills of yours to use!,[npc:09] 이 오딘 추종자들. 마음을 가다듬을 수 있는 어떤 기술이든 가르쳐 드리겠습니다.,[npc:09] Este Odin seguidores. Vamos lhe ensinar alguma habilidade para se unir.,[npc:09]オーディンの信奉者たちだね。キミの技術が必要などころじゃん。,"[npc:09] Como seguidores de Odin, te enseñaremos cualquier habilidad para que te puedas recuperar.",[npc:09] ผู้ติดตาม Odin นี้ เราจะสอนทักษะใด ๆ ให้คุณดึงตัวเองเข้าด้วยกัน,[npc:09] Ini adalah pengikut Odin. Sekaranglah waktunya untuk menggunakan keterampilanmu itu!,"[npc:09] Это последователи Одина. Мы научим вас любому навыку, чтобы собрать себя вместе.",[NPC:09]这个Odin关注者。我们将教您任何技能来团结起来。,[NPC:09]這些奧丁的追隨者。我們會教你任何技能讓你振作起來。,"[npc:09] Kayong mga tagasunod ni Odin, tuturuan namin kayo ng kahit anong kakayanan para mapagbuti ang inyong mga sarili.",[npc:09] Đây là những tùy tùng của Odin. Bây giờ là lúc để sử dụng những kỹ năng đó của ngươi! -DIALOG_95_1_0,"[npc:39] Even if Odin said otherwise, perhaps I should stop you.",[npc:39] 오딘이 뭐라고 하든 말려야겠습니다.,"[npc:39] Devo impedi -lo, independentemente do que Odin disse.",[npc:39]オーディンが何と言われても私はあなたを止めなければなりません。,[npc:39] Debería detenerte sin importar lo que Odin haya dicho.,[npc:39] ฉันควรหยุดคุณโดยไม่คำนึงถึงสิ่งที่โอดินพูด,"[npc:39] Bahkan jika Odin berkata sebaliknya, mungkin aku harus menghentikanmu.","[npc:39] Я должен остановить вас, независимо от того, что сказал Один.",[NPC:39]无论奥丁怎么说,我都应该阻止您。,[NPC:39]無論奧丁怎麼說,我都應該阻止您。,[npc:39] Pipigilan ko kayo kahit anong sinabi ni Odin.,"[npc:39] Ngay cả khi Odin phản đối, có lẽ ta nên ngăn cản ngươi." -DIALOG_95_1_1,[npc:09]Are these powerful beings completely fascinated by Odin?,[npc:09] 이 강력한 존재들이 오딘에게 완전히 매료된 것일까요?,[npc:09] são esses seres poderosos completamente fascinados por Odin,[npc:09]この強力な存在たちがオーディンに完全に魅了されたのかな?,[npc:09] ¿Están completamente fascinados por Odin estos seres poderosos?,[npc:09] สิ่งมีชีวิตที่ทรงพลังเหล่านี้หลงใหลในโอดินอย่างสมบูรณ์,[npc:09]Apakah makhluk kuat ini benar-benar terpesona oleh Odin?,[npc:09] эти мощные существа полностью очарованы Одином,[NPC:09]这些强大的生物是完全被奥丁迷住的,[NPC:09]這些強大的生物是否完全被奧丁迷住了?,[npc:09]Ito ba ang makapangyarihang nilalang na nabibighani kay Odin?,[npc:09] Những thực thể mạnh mẽ này có hoàn toàn bị mê hoặc bởi Odin không? -DIALOG_96_1_0,[npc:38]I'll be blocking that cat!,[npc:38] 제가 그 고양이를 막겠습니다!,[npc:38] Eu estarei bloqueando aquele gato,[npc:38]私がその猫を止めます!,[npc:38] Voy a bloquear a ese gato.,[npc:38] ฉันจะปิดกั้นแมวตัวนั้น,[npc:38]Aku akan memblokir Kucing itu!,[npc:38] Я буду блокировать эту кошку,[NPC:38]我会阻止那只猫,[NPC:38]我會阻止那隻貓,[npc:38]Haharangin ko ang pusang iyan!,[npc:38] Ta sẽ chặn con mèo đó! -DIALOG_96_1_1,[npc:39]I'll smack that cat!,[npc:39] 저 고양이를 치워버리겠어요!,[npc:39] Vou vencer aquele gato,[npc:39]あの猫を倒します!,[npc:39] Voy a vencer a ese gato.,[npc:39] ฉันจะเอาชนะแมวตัวนั้น,[npc:39]Aku akan memukul Kucing itu!,[npc:39] Я буду победить эту кошку,[NPC:39]我会殴打那只猫,[NPC:39]我會毆打那隻貓,[npc:39]Tatalunin ko ang pusang iyan!,[npc:39] Ta sẽ đập nát con mèo đó! -DIALOG_97_1_0,[npc:40]Odin told me to not allow that cat to leave this place.,[npc:40] 오딘이 그 고양이를 여기서 떠나지 말라고 했습니다.,[npc:40] Odin me disse para não deixar esse gato sair daqui.,[npc:40]オーディンはその猫をここから離れないようにとおっしゃりました。,[npc:40] Odin me dijo que no dejara que ese gato se vaya de aquí.,[npc:40] โอดินบอกฉันว่าอย่าปล่อยให้แมวตัวนั้นไปที่นี่,[npc:40]Odin menyuruhku untuk tidak mengizinkan Kucing itu meninggalkan tempat ini.,"[npc:40] Один сказал мне, чтобы я не позволил этой кошке уйти сюда.",[NPC:40]奥丁告诉我不要让那只猫离开这里。,[NPC:40]奧丁告訴我不要讓那隻貓離開這裡。,[npc:40]Sinabi sakin ni Odin na wag pahintulutang makaalis ang pusang yan.,[npc:40] Odin bảo ta không được để con mèo đó rời khỏi nơi này. -DIALOG_97_1_1,[npc:40]Thus I shall force this cat to stay forever more!,[npc:40] 그럼 저 고양이를 조종해서 영원히 여기 있어야겠네요,[npc:40] Então terei que manipular esse gato para ficar aqui para sempre,[npc:40]したがって、この猫を永遠に留まらせることにしよう!,[npc:40] Entonces tendré que manipular a ese gato para que se quede aquí para siempre.,[npc:40] จากนั้นฉันจะต้องจัดการแมวตัวนั้นให้อยู่ที่นี่ตลอดไป,[npc:40]Jadi aku akan memaksa Kucing ini untuk tinggal selamanya!,"[npc:40] Тогда мне придется манипулировать этой кошкой, чтобы остаться здесь навсегда",[NPC:40]然后,我必须操纵那只猫永远留在这里,[NPC:40]那我就必須讓那隻貓永遠留在這裡。,[npc:40]Kaya mamanipulahin ko ang pusang iyan para manatili siya dito magpakailanman.,"[npc:40] Vì vậy, ta sẽ trói buộc con mèo này ở đây mãi mãi!" -DIALOG_98_1_0,"[npc:41]You shouldn't allow them around here. Everyone, Charge!","[npc:41] 그들이 여기 있게 해서는 안됩니다. 전원, 돌격!",[npc:41] Você não deve permitir por aqui. Todos cobram.,[npc:41]彼らをここに居させてはいけません。全員、突撃!,[npc:41] No debes permitirlo por aquí. A la carga,[npc:41] คุณไม่ควรอนุญาตที่นี่ ค่าใช้จ่ายทั้งหมด,"[npc:41]Kamu tidak boleh mengizinkan mereka berada di sini. Semuanya, Serang!",[npc:41] Вы не должны разрешать это здесь. Все заряд.,[NPC:41]您不应该在这里允许它。全部收费。,[NPC:41]你不應該在這附近允許它。全體衝鋒。,[npc:41] Hinda mo dapat pinahintulutan yan dito! Sugod!,"[npc:41] Ngươi không nên cho phép họ ở đây. Mọi người, tính phí!" +Yggdrasil vẫn thuần khiết và Baldur tiếp tục phải chịu đựng. Tất cả vì con mèo này, Odin ..." +DIALOG_90_1_0,[npc:34]You must be here to disrupt Odin's plan.,[npc:34] 당신은 오딘의 계획을 방해하기 위해 여기에 왔습니다,[npc:34] Você está aqui para interromper o plano de Odin,[npc:34]あなたはオーディンの計画を妨害するためにここに来ました。,[npc:34] Estás aquí para interrumpir el plan de Odin.,[npc:34] คุณมาที่นี่เพื่อขัดจังหวะแผนของโอดิน,[npc:34]Kamu harus berada di sini untuk mengganggu rencana Odin.,"[npc:34] Вы здесь, чтобы прервать план Одина",[NPC:34]您在这里打断Odin的计划,[NPC:34]你來這裡是為了阻止奧丁的計劃。,[npc:34] Ikaw ay naparito para hadlangan ang plano ni Odin.,[npc:34] Ngươi phải ở đây để phá vỡ kế hoạch của Odin. +DIALOG_90_1_1,[npc:09]Why do they keep bringing up Odin's name?,[npc:09] 오딘의 이름은 왜 여기에 나오는 거지?,[npc:09] Por que o nome de Odin chega aqui?,[npc:09]オーディンの名前はここでなぜ出てくるの?,[npc:09] ¿Por qué el nombre de Odin aparece aquí?,[npc:09] ทำไมชื่อของ Odin ถึงมาที่นี่?,[npc:09]Mengapa mereka terus menyebut nama Odin?,[npc:09] Почему имя Одина приходит сюда?,[NPC:09]为什么奥丁的名字出现在这里?,[NPC:09]為什麼奧丁的名字出現在這裡?,[npc:09]Bakit lumabas ang pangalan ni Odin dito?,[npc:09] Tại sao họ liên tục nhắc đến Odin? +DIALOG_91_1_0,"[npc:37] It's just as Odin says, you've come to destroy this place.",[npc:37] 오딘의 말대로 당신은 이곳을 파괴하러 왔습니다,"[npc:37] Como Odin disse, você está aqui para destruir este lugar",[npc:37]オーディンの言葉通り、あなたはここを破壊しに来ました。,"[npc:37] Como dijo Odin, estás aquí para destruir este lugar.",[npc:37] อย่างที่โอดินพูดคุณมาที่นี่เพื่อทำลายสถานที่แห่งนี้,"[npc:37] Seperti yang Odin katakan, kamu datang untuk menghancurkan tempat ini.","[npc:37] Как сказал Один, вы здесь, чтобы уничтожить это место",[NPC:37]正如Odin所说,您在这里摧毁这个地方,[NPC:37]正如奧丁所說,你來這裡是為了摧毀這個地方。,"[npc:37] Gaya ng sabi ni Odin, ikaw ay naparito para sirain ang lugar na ito","[npc:37] Giống như Odin nói, ngươi đến để phá hủy nơi này." +DIALOG_91_1_1,[npc:09]What the heck did Odin say?,[npc:09] 도대체 오딘이 뭐라고 했습니까?,[npc:09] O que diabos Odin disse?,[npc:09]一体オーディンは何と言ったのだの?,[npc:09] ¿Qué diablos dijo Odin?,[npc:09] โอดินพูดอะไร?,[npc:09]Apa yang Odin katakan?,"[npc:09] Что, черт возьми, сказал Один?",[NPC:09]奥丁怎么说?,[NPC:09]奧丁究竟說過什麼?,[npc:09] Anong kalokohan ang sinabi ni Odin?,[npc:09] Odin nói cái quái gì vậy? +DIALOG_92_1_0,"[npc:35]By the will of Odin, I'll end you!",[npc:35] 오딘의 명령대로 파괴합니다.,[npc:35] Destrua conforme ordenado por Odin.,[npc:35]オーディンの命令に従って破壊します。,[npc:35] Destruye como lo ordenó Odin.,[npc:35] ทำลายตามคำสั่งของ Odin,"[npc:35]Atas kehendak Odin, aku akan menghabisimu!",[npc:35] Уничтожьте в соответствии с упорядоченным Одином.,[NPC:35]销毁Odin的命令。,[NPC:35]按照奧丁的命令去摧毀。,[npc:35] Sirain sa kautusan ni Odin.,"[npc:35] Theo ý muốn của Odin, ta sẽ kết liễu ngươi!" +DIALOG_92_1_1,"[npc:36]By the will of Odin, I bind you!",[npc:36] 오딘의 명령대로 당신을 묶습니다.,[npc:36] Eu ligo você conforme encomendado por Odin.,[npc:36]オーディンの命令に従ってあなたを縛ります。,[npc:36] Te ato como lo ordenó Odin.,[npc:36] ฉันผูกคุณตามที่ Odin สั่ง,"[npc:36]Atas kehendak Odin, aku mengikatmu!",[npc:36] Я связываю вас в соответствии с упорядоченным Одином.,[NPC:36]我按照Odin的顺序绑定您。,[NPC:36]我按照奧丁的命令來綁住你。,[npc:36] Ginagapos kita sa kautusan ni Odin.,"[npc:36] Theo ý muốn của Odin, ta sẽ trói buộc ngươi!" +DIALOG_93_1_0,[npc:38] None shall pass without Odin's permission.,[npc:38] 오딘의 허락 없이는 누구도 지나갈 수 없습니다.,[npc:38] Ninguém pode passar sem a permissão de Odin.,[npc:38]オーディンの許可がなければ誰も通れません。,[npc:38] Nadie puede pasar sin el permiso de Odin.,[npc:38] ไม่มีใครสามารถผ่านได้โดยไม่ได้รับอนุญาตจาก Odin,[npc:38] Tidak ada yang boleh lewat tanpa izin Odin.,[npc:38] Никто не может пройти без разрешения Одина.,[NPC:38]未经奥丁许可,没有人可以通过。,[NPC:38]未經奧丁許可,沒有人可以通過。,[npc:38] Walang makadaraan kung walang pahintulot ni Odin.,[npc:38] Không ai có thể thông qua mà không có sự cho phép của Odin. +DIALOG_93_1_1,[npc:38]Your trivial skill power won't overwhelm me!,[npc:38] 나를 압도하기 위해서는 이런 사소한 기술로는 안 될 것입니다.,"[npc:38] Para me sobrecarregar, não funcionará com todas essas habilidades triviais.",[npc:38]私を圧倒するには、こんな些細な技術では無理でしょう。,"[npc:38] Para superarme, no funcionará con todas estas habilidades triviales.",[npc:38] เพื่อครอบงำฉันมันจะไม่ทำงานกับทักษะเล็กน้อยเหล่านี้,[npc:38]Kekuatan keterampilan sepelemu tidak akan membuatku kewalahan!,"[npc:38] Чтобы ошеломить меня, это не будет работать со всеми этими тривиальными навыками.",[NPC:38]让我不知所措,它与所有这些琐碎的技能都无法使用。,[NPC:38]想要壓倒我,這些微不足道的技能是不夠的。,[npc:38] hindi nyo ako magagapi. Hindi gagana ang walang kwenta niyong kakayanan.,[npc:38] Sức mạnh kỹ năng tầm thường của ngươi sẽ không thể áp đảo ta! +DIALOG_94_1_0,[npc:38] Odin warned me about your terrifying power.,[npc:38] 새로운 기술은 무섭습니다. 그래서 오딘이 경고한 겁니다.,[npc:38] A nova habilidade é assustadora. É por isso que Odin me avisou.,[npc:38]新しい技術は怖いです。 だからオーディンが警告したのです。,[npc:38] La nueva habilidad es aterradora. Por eso Odin me advirtió.,[npc:38] ทักษะใหม่นั้นน่ากลัว นั่นเป็นเหตุผลที่โอดินเตือนฉัน,[npc:38] Odin memperingatkanku tentang kekuatan mengerikanmu.,[npc:38] Новый навык страшный. Вот почему Один предупредил меня.,[NPC:38]新技能令人恐惧。这就是为什么奥丁警告我。,[NPC:38]新技能是可怕的。這就是為什麼奧丁警告我。,"[npc:38] Ang bagong kakayanang ito ay nakakatakot, kaya ako binalaan ni Odin.",[npc:38] Odin đã cảnh báo ta về sức mạnh đáng sợ của ngươi. +DIALOG_94_1_1,[npc:09] These are the followers of Odin. Now's the time to put those skills of yours to use!,[npc:09] 이 오딘 추종자들. 마음을 가다듬을 수 있는 어떤 기술이든 가르쳐 드리겠습니다.,[npc:09] Este Odin seguidores. Vamos lhe ensinar alguma habilidade para se unir.,[npc:09]オーディンの信奉者たちだね。キミの技術が必要などころじゃん。,"[npc:09] Como seguidores de Odin, te enseñaremos cualquier habilidad para que te puedas recuperar.",[npc:09] ผู้ติดตาม Odin นี้ เราจะสอนทักษะใด ๆ ให้คุณดึงตัวเองเข้าด้วยกัน,[npc:09] Ini adalah pengikut Odin. Sekaranglah waktunya untuk menggunakan keterampilanmu itu!,"[npc:09] Это последователи Одина. Мы научим вас любому навыку, чтобы собрать себя вместе.",[NPC:09]这个Odin关注者。我们将教您任何技能来团结起来。,[NPC:09]這些奧丁的追隨者。我們會教你任何技能讓你振作起來。,"[npc:09] Kayong mga tagasunod ni Odin, tuturuan namin kayo ng kahit anong kakayanan para mapagbuti ang inyong mga sarili.",[npc:09] Đây là những tùy tùng của Odin. Bây giờ là lúc để sử dụng những kỹ năng đó của ngươi! +DIALOG_95_1_0,"[npc:39] Even if Odin said otherwise, perhaps I should stop you.",[npc:39] 오딘이 뭐라고 하든 말려야겠습니다.,"[npc:39] Devo impedi -lo, independentemente do que Odin disse.",[npc:39]オーディンが何と言われても私はあなたを止めなければなりません。,[npc:39] Debería detenerte sin importar lo que Odin haya dicho.,[npc:39] ฉันควรหยุดคุณโดยไม่คำนึงถึงสิ่งที่โอดินพูด,"[npc:39] Bahkan jika Odin berkata sebaliknya, mungkin aku harus menghentikanmu.","[npc:39] Я должен остановить вас, независимо от того, что сказал Один.",[NPC:39]无论奥丁怎么说,我都应该阻止您。,[NPC:39]無論奧丁怎麼說,我都應該阻止您。,[npc:39] Pipigilan ko kayo kahit anong sinabi ni Odin.,"[npc:39] Ngay cả khi Odin phản đối, có lẽ ta nên ngăn cản ngươi." +DIALOG_95_1_1,[npc:09]Are these powerful beings completely fascinated by Odin?,[npc:09] 이 강력한 존재들이 오딘에게 완전히 매료된 것일까요?,[npc:09] são esses seres poderosos completamente fascinados por Odin,[npc:09]この強力な存在たちがオーディンに完全に魅了されたのかな?,[npc:09] ¿Están completamente fascinados por Odin estos seres poderosos?,[npc:09] สิ่งมีชีวิตที่ทรงพลังเหล่านี้หลงใหลในโอดินอย่างสมบูรณ์,[npc:09]Apakah makhluk kuat ini benar-benar terpesona oleh Odin?,[npc:09] эти мощные существа полностью очарованы Одином,[NPC:09]这些强大的生物是完全被奥丁迷住的,[NPC:09]這些強大的生物是否完全被奧丁迷住了?,[npc:09]Ito ba ang makapangyarihang nilalang na nabibighani kay Odin?,[npc:09] Những thực thể mạnh mẽ này có hoàn toàn bị mê hoặc bởi Odin không? +DIALOG_96_1_0,[npc:38]I'll be blocking that cat!,[npc:38] 제가 그 고양이를 막겠습니다!,[npc:38] Eu estarei bloqueando aquele gato,[npc:38]私がその猫を止めます!,[npc:38] Voy a bloquear a ese gato.,[npc:38] ฉันจะปิดกั้นแมวตัวนั้น,[npc:38]Aku akan memblokir Kucing itu!,[npc:38] Я буду блокировать эту кошку,[NPC:38]我会阻止那只猫,[NPC:38]我會阻止那隻貓,[npc:38]Haharangin ko ang pusang iyan!,[npc:38] Ta sẽ chặn con mèo đó! +DIALOG_96_1_1,[npc:39]I'll smack that cat!,[npc:39] 저 고양이를 치워버리겠어요!,[npc:39] Vou vencer aquele gato,[npc:39]あの猫を倒します!,[npc:39] Voy a vencer a ese gato.,[npc:39] ฉันจะเอาชนะแมวตัวนั้น,[npc:39]Aku akan memukul Kucing itu!,[npc:39] Я буду победить эту кошку,[NPC:39]我会殴打那只猫,[NPC:39]我會毆打那隻貓,[npc:39]Tatalunin ko ang pusang iyan!,[npc:39] Ta sẽ đập nát con mèo đó! +DIALOG_97_1_0,[npc:40]Odin told me to not allow that cat to leave this place.,[npc:40] 오딘이 그 고양이를 여기서 떠나지 말라고 했습니다.,[npc:40] Odin me disse para não deixar esse gato sair daqui.,[npc:40]オーディンはその猫をここから離れないようにとおっしゃりました。,[npc:40] Odin me dijo que no dejara que ese gato se vaya de aquí.,[npc:40] โอดินบอกฉันว่าอย่าปล่อยให้แมวตัวนั้นไปที่นี่,[npc:40]Odin menyuruhku untuk tidak mengizinkan Kucing itu meninggalkan tempat ini.,"[npc:40] Один сказал мне, чтобы я не позволил этой кошке уйти сюда.",[NPC:40]奥丁告诉我不要让那只猫离开这里。,[NPC:40]奧丁告訴我不要讓那隻貓離開這裡。,[npc:40]Sinabi sakin ni Odin na wag pahintulutang makaalis ang pusang yan.,[npc:40] Odin bảo ta không được để con mèo đó rời khỏi nơi này. +DIALOG_97_1_1,[npc:40]Thus I shall force this cat to stay forever more!,[npc:40] 그럼 저 고양이를 조종해서 영원히 여기 있어야겠네요,[npc:40] Então terei que manipular esse gato para ficar aqui para sempre,[npc:40]したがって、この猫を永遠に留まらせることにしよう!,[npc:40] Entonces tendré que manipular a ese gato para que se quede aquí para siempre.,[npc:40] จากนั้นฉันจะต้องจัดการแมวตัวนั้นให้อยู่ที่นี่ตลอดไป,[npc:40]Jadi aku akan memaksa Kucing ini untuk tinggal selamanya!,"[npc:40] Тогда мне придется манипулировать этой кошкой, чтобы остаться здесь навсегда",[NPC:40]然后,我必须操纵那只猫永远留在这里,[NPC:40]那我就必須讓那隻貓永遠留在這裡。,[npc:40]Kaya mamanipulahin ko ang pusang iyan para manatili siya dito magpakailanman.,"[npc:40] Vì vậy, ta sẽ trói buộc con mèo này ở đây mãi mãi!" +DIALOG_98_1_0,"[npc:41]You shouldn't allow them around here. Everyone, Charge!","[npc:41] 그들이 여기 있게 해서는 안됩니다. 전원, 돌격!",[npc:41] Você não deve permitir por aqui. Todos cobram.,[npc:41]彼らをここに居させてはいけません。全員、突撃!,[npc:41] No debes permitirlo por aquí. A la carga,[npc:41] คุณไม่ควรอนุญาตที่นี่ ค่าใช้จ่ายทั้งหมด,"[npc:41]Kamu tidak boleh mengizinkan mereka berada di sini. Semuanya, Serang!",[npc:41] Вы не должны разрешать это здесь. Все заряд.,[NPC:41]您不应该在这里允许它。全部收费。,[NPC:41]你不應該在這附近允許它。全體衝鋒。,[npc:41] Hinda mo dapat pinahintulutan yan dito! Sugod!,"[npc:41] Ngươi không nên cho phép họ ở đây. Mọi người, tính phí!" DIALOG_99_1_0,[npc:41]The fact you came all this way must mean you know I possess a weapon powerful enough to subdue Odin himself.,[npc:41] 내가 오딘을 제압할 무기를 가지고 있다는 것을 알고 여기까지 온 것이 틀림없습니다.,[npc:41] O que veio para mim deve ter vindo sabendo que tenho a arma para subjugar Odin.,[npc:41]私がオーディンを制圧する武器を持っていることを知ってここまで来たに違いありません。,[npc:41] Lo que vino hasta mí debe haber venido sabiendo que tengo el arma para someter a Odin.,[npc:41] สิ่งที่มาถึงฉันต้องรู้ว่าฉันมีอาวุธที่จะปราบโอดิน,[npc:41}Fakta bahwa kamu datang sejauh ini berarti kamu tahu aku memiliki senjata yang cukup kuat untuk menaklukkan Odin sendiri.,"[npc:41] То, что пришло ко мне, должно быть, пришло, зная, что у меня есть оружие, чтобы покорить Одина.",[NPC:41]对我来说,一定要知道我有武器来制服奥丁。,[NPC:41]一直來到我面前的,一定是知道我擁有製服奧丁的武器的。,[npc:41]Lahat ng ito ay sa kadahilanang mayroon akong sandatang tatalo kay Odin.,[npc:41] Việc ngươi có thể tới tận đây chứng tỏ ngươi có sức mạnh để đánh bại Odin \ No newline at end of file From 6fd487ee69e4b7110e3745e0587a5a0c9c48184b Mon Sep 17 00:00:00 2001 From: jonny Date: Wed, 22 Nov 2023 16:53:49 +0900 Subject: [PATCH 08/22] check null exception --- .../_Scripts/UI/Module/IAP/IAPShopProductCellView.cs | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/nekoyume/Assets/_Scripts/UI/Module/IAP/IAPShopProductCellView.cs b/nekoyume/Assets/_Scripts/UI/Module/IAP/IAPShopProductCellView.cs index a2a25ab2453..d4b53ae67ca 100644 --- a/nekoyume/Assets/_Scripts/UI/Module/IAP/IAPShopProductCellView.cs +++ b/nekoyume/Assets/_Scripts/UI/Module/IAP/IAPShopProductCellView.cs @@ -125,7 +125,12 @@ public void SetData(ProductSchema data, bool isRecommended) private void Refresh() { var isDiscount = _data.Discount > 0; - _puchasingData = Game.Game.instance.IAPStoreManager.IAPProducts.First(p => p.definition.id == _data.Sku); + _puchasingData = Game.Game.instance.IAPStoreManager.IAPProducts.FirstOrDefault(p => p.definition.id == _data.Sku); + if(_puchasingData == null) + { + gameObject.SetActive(false); + return; + } switch (_data.Size) { From 844141a0e1b5ddbb9a20414866bb40e2227e6d1c Mon Sep 17 00:00:00 2001 From: sonohoshi Date: Wed, 22 Nov 2023 17:18:28 +0900 Subject: [PATCH 09/22] change korean live asset data to eng on mobile platform --- nekoyume/Assets/_Scripts/Game/LiveAsset/LiveAssetManager.cs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/nekoyume/Assets/_Scripts/Game/LiveAsset/LiveAssetManager.cs b/nekoyume/Assets/_Scripts/Game/LiveAsset/LiveAssetManager.cs index 45a4d89c655..9182f553ffa 100644 --- a/nekoyume/Assets/_Scripts/Game/LiveAsset/LiveAssetManager.cs +++ b/nekoyume/Assets/_Scripts/Game/LiveAsset/LiveAssetManager.cs @@ -197,7 +197,9 @@ private async UniTask GetTexture(string textureType, string imageName) { var postfix = L10nManager.CurrentLanguage switch { - LanguageType.Korean => KoreanImagePostfix, + LanguageType.Korean => Platform.IsMobilePlatform() + ? KoreanImagePostfix + : string.Empty, LanguageType.Japanese => JapaneseImagePostfix, _ => string.Empty }; From 5ca8fb7a67ad95dda8980d1425ad16228b0e8c0c Mon Sep 17 00:00:00 2001 From: jonny Date: Wed, 22 Nov 2023 17:29:20 +0900 Subject: [PATCH 10/22] remove ios pushnoti subtitle --- nekoyume/Assets/_Scripts/PushNotifier.cs | 1 - 1 file changed, 1 deletion(-) diff --git a/nekoyume/Assets/_Scripts/PushNotifier.cs b/nekoyume/Assets/_Scripts/PushNotifier.cs index 443482deaec..61001dcea6c 100644 --- a/nekoyume/Assets/_Scripts/PushNotifier.cs +++ b/nekoyume/Assets/_Scripts/PushNotifier.cs @@ -166,7 +166,6 @@ public static string Push(string text, TimeSpan timespan, PushType pushType) Identifier = identifier, Title = title, Body = text, - Subtitle = title, ShowInForeground = true, ForegroundPresentationOption = (PresentationOption.Alert | PresentationOption.Sound | PresentationOption.Badge), From 293e99632b20157179729fccc8ed62fc1bd8db15 Mon Sep 17 00:00:00 2001 From: sonohoshi Date: Wed, 22 Nov 2023 18:50:34 +0900 Subject: [PATCH 11/22] change UnmarshalBlock invoking to thread pool --- .../Assets/_Scripts/Blockchain/RPCAgent.cs | 43 ++++++++++--------- 1 file changed, 23 insertions(+), 20 deletions(-) diff --git a/nekoyume/Assets/_Scripts/Blockchain/RPCAgent.cs b/nekoyume/Assets/_Scripts/Blockchain/RPCAgent.cs index be42f13bedd..6dc7bdccd60 100644 --- a/nekoyume/Assets/_Scripts/Blockchain/RPCAgent.cs +++ b/nekoyume/Assets/_Scripts/Blockchain/RPCAgent.cs @@ -184,14 +184,12 @@ public IEnumerator Initialize( new ClientFilter() }); - IEnumerator GetTip() + var getTipTask = UniTask.RunOnThreadPool(async () => { - var getTipTask = Task.Run(async () => await _service.GetTip()); - yield return new WaitUntil(() => getTipTask.IsCompleted); - OnRenderBlock(null, getTipTask.Result); - } - - var getTipCoroutine = StartCoroutine(GetTip()); + var getTipTaskResult = await _service.GetTip(); + OnRenderBlock(null, getTipTaskResult); + }); + getTipTask.Forget(); if (_genesis == null) { @@ -222,7 +220,7 @@ IEnumerator GetTip() Debug.Log($"[RPCAgent] genesis block imported in {sw.ElapsedMilliseconds}ms.(elapsed)"); } - yield return getTipCoroutine; + yield return getTipTask; RegisterDisconnectEvent(_hub); StartCoroutine(CoTxProcessor()); StartCoroutine(CoJoin(callback)); @@ -792,19 +790,24 @@ public void OnUnrender(byte[] evaluation) public void OnRenderBlock(byte[] oldTip, byte[] newTip) { - var dict = (Bencodex.Types.Dictionary)_codec.Decode(newTip); - var newTipBlock = BlockMarshaler.UnmarshalBlock(dict); - var blockIndex = newTipBlock.Index; - var blockHash = new BlockHash(newTipBlock.Hash.ToByteArray()); - _blockHashCache.Add(blockIndex, blockHash); - BlockIndex = blockIndex; - BlockIndexSubject.OnNext(BlockIndex); - BlockTipHash = blockHash; - BlockTipHashSubject.OnNext(BlockTipHash); - _lastTipChangedAt = DateTimeOffset.UtcNow; + UniTask.RunOnThreadPool<(long, BlockHash)>(() => + { + var dict = (Dictionary) _codec.Decode(newTip); + var newTipBlock = BlockMarshaler.UnmarshalBlock(dict); + return (newTipBlock.Index, new BlockHash(newTipBlock.Hash.ToByteArray())); + }).ToObservable().ObserveOnMainThread().Subscribe(tuple => + { + _blockHashCache.Add(tuple.Item1, tuple.Item2); + BlockIndex = tuple.Item1; + BlockIndexSubject.OnNext(BlockIndex); + BlockTipHash = tuple.Item2; + BlockTipHashSubject.OnNext(BlockTipHash); + _lastTipChangedAt = DateTimeOffset.UtcNow; - Debug.Log($"[{nameof(RPCAgent)}] Render block: {BlockIndex}, {BlockTipHash.ToString()}"); - BlockRenderer.RenderBlock(null, null); + Debug.Log( + $"[{nameof(RPCAgent)}] Render block: {BlockIndex}, {BlockTipHash.ToString()}"); + BlockRenderer.RenderBlock(null, null); + }); } private async void RegisterDisconnectEvent(IActionEvaluationHub hub) From 518ad05a9157377176c5fa3677bb4ea6bf51766e Mon Sep 17 00:00:00 2001 From: tyrosine1153 Date: Wed, 22 Nov 2023 17:08:22 +0900 Subject: [PATCH 12/22] Fix error popup --- nekoyume/Assets/_Scripts/Game/Game.cs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/nekoyume/Assets/_Scripts/Game/Game.cs b/nekoyume/Assets/_Scripts/Game/Game.cs index bd8a04e72ba..852326a1445 100644 --- a/nekoyume/Assets/_Scripts/Game/Game.cs +++ b/nekoyume/Assets/_Scripts/Game/Game.cs @@ -1125,7 +1125,11 @@ IEnumerator SetTimeOut(Func condition) var clickRetry = false; var popup = Widget.Find(); popup.Show("Time Out", "Please try again", "Retry", false); - popup.SubmitCallback = () => clickRetry = true; + popup.SubmitCallback = () => + { + clickRetry = true; + popup.Close(); + }; yield return new WaitUntil(() => clickRetry); } } From cfe20fbe2e86e28f8b23a75bafa755b8ec0c6cfa Mon Sep 17 00:00:00 2001 From: tyrosine1153 Date: Wed, 22 Nov 2023 18:16:35 +0900 Subject: [PATCH 13/22] Fix tooltip prefab bugs --- .../Resources/UI/Prefabs/UI_EquipmentTooltip.prefab | 10 ---------- .../Resources/UI/Prefabs/UI_MaterialTooltip.prefab | 5 +++++ 2 files changed, 5 insertions(+), 10 deletions(-) diff --git a/nekoyume/Assets/Resources/UI/Prefabs/UI_EquipmentTooltip.prefab b/nekoyume/Assets/Resources/UI/Prefabs/UI_EquipmentTooltip.prefab index e961ed8df25..7f8541beb9c 100644 --- a/nekoyume/Assets/Resources/UI/Prefabs/UI_EquipmentTooltip.prefab +++ b/nekoyume/Assets/Resources/UI/Prefabs/UI_EquipmentTooltip.prefab @@ -2327,16 +2327,6 @@ PrefabInstance: propertyPath: m_SizeDelta.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 6517611775038211034, guid: 208eab8c17f4afb41a89eedbfe42f722, - type: 3} - propertyPath: m_SizeDelta.y - value: 4 - objectReference: {fileID: 0} - - target: {fileID: 6517611775038211034, guid: 208eab8c17f4afb41a89eedbfe42f722, - type: 3} - propertyPath: m_AnchoredPosition.y - value: -8 - objectReference: {fileID: 0} - target: {fileID: 6604506049407951967, guid: 208eab8c17f4afb41a89eedbfe42f722, type: 3} propertyPath: m_AnchorMax.y diff --git a/nekoyume/Assets/Resources/UI/Prefabs/UI_MaterialTooltip.prefab b/nekoyume/Assets/Resources/UI/Prefabs/UI_MaterialTooltip.prefab index 8991a80abc6..55d586d909b 100644 --- a/nekoyume/Assets/Resources/UI/Prefabs/UI_MaterialTooltip.prefab +++ b/nekoyume/Assets/Resources/UI/Prefabs/UI_MaterialTooltip.prefab @@ -132,6 +132,11 @@ PrefabInstance: propertyPath: m_AnchoredPosition.y value: 0 objectReference: {fileID: 0} + - target: {fileID: 459633424692359445, guid: 208eab8c17f4afb41a89eedbfe42f722, + type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} - target: {fileID: 662255039898219345, guid: 208eab8c17f4afb41a89eedbfe42f722, type: 3} propertyPath: m_AnchorMax.y From 4308afcd2733f1e7f0f486f8fe8e11554c98b0d6 Mon Sep 17 00:00:00 2001 From: tyrosine1153 Date: Wed, 22 Nov 2023 18:49:13 +0900 Subject: [PATCH 14/22] Fix item tooltip - disable laycast target, set eventtrigger to scroll view, footer --- .../UI/Prefabs/UI_ConsumableTooltip.prefab | 150 ++++++++++++++++++ .../UI/Prefabs/UI_CostumeTooltip.prefab | 150 ++++++++++++++++++ .../UI/Prefabs/UI_EquipmentTooltip.prefab | 150 ++++++++++++++++++ .../UI/Prefabs/UI_ItemTooltip.prefab | 69 +++++++- .../UI/Prefabs/UI_MaterialTooltip.prefab | 150 ++++++++++++++++++ 5 files changed, 663 insertions(+), 6 deletions(-) diff --git a/nekoyume/Assets/Resources/UI/Prefabs/UI_ConsumableTooltip.prefab b/nekoyume/Assets/Resources/UI/Prefabs/UI_ConsumableTooltip.prefab index 3599e28a2d7..dff56d1ade1 100644 --- a/nekoyume/Assets/Resources/UI/Prefabs/UI_ConsumableTooltip.prefab +++ b/nekoyume/Assets/Resources/UI/Prefabs/UI_ConsumableTooltip.prefab @@ -617,6 +617,81 @@ PrefabInstance: propertyPath: m_AnchoredPosition.y value: 0 objectReference: {fileID: 0} + - target: {fileID: 1780549777782881423, guid: 208eab8c17f4afb41a89eedbfe42f722, + type: 3} + propertyPath: m_Delegates.Array.data[0].callback.m_PersistentCalls.m_Calls.Array.size + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 1780549777782881423, guid: 208eab8c17f4afb41a89eedbfe42f722, + type: 3} + propertyPath: m_Delegates.Array.data[1].callback.m_PersistentCalls.m_Calls.Array.size + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 1780549777782881423, guid: 208eab8c17f4afb41a89eedbfe42f722, + type: 3} + propertyPath: m_Delegates.Array.data[0].callback.m_PersistentCalls.m_Calls.Array.data[0].m_Mode + value: 6 + objectReference: {fileID: 0} + - target: {fileID: 1780549777782881423, guid: 208eab8c17f4afb41a89eedbfe42f722, + type: 3} + propertyPath: m_Delegates.Array.data[1].callback.m_PersistentCalls.m_Calls.Array.data[0].m_Mode + value: 6 + objectReference: {fileID: 0} + - target: {fileID: 1780549777782881423, guid: 208eab8c17f4afb41a89eedbfe42f722, + type: 3} + propertyPath: m_Delegates.Array.data[0].callback.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: -2838122723255354076} + - target: {fileID: 1780549777782881423, guid: 208eab8c17f4afb41a89eedbfe42f722, + type: 3} + propertyPath: m_Delegates.Array.data[1].callback.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: -2838122723255354076} + - target: {fileID: 1780549777782881423, guid: 208eab8c17f4afb41a89eedbfe42f722, + type: 3} + propertyPath: m_Delegates.Array.data[0].callback.m_PersistentCalls.m_Calls.Array.data[0].m_CallState + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 1780549777782881423, guid: 208eab8c17f4afb41a89eedbfe42f722, + type: 3} + propertyPath: m_Delegates.Array.data[1].callback.m_PersistentCalls.m_Calls.Array.data[0].m_CallState + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 1780549777782881423, guid: 208eab8c17f4afb41a89eedbfe42f722, + type: 3} + propertyPath: m_Delegates.Array.data[0].callback.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName + value: OnEnterButtonArea + objectReference: {fileID: 0} + - target: {fileID: 1780549777782881423, guid: 208eab8c17f4afb41a89eedbfe42f722, + type: 3} + propertyPath: m_Delegates.Array.data[1].callback.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName + value: OnEnterButtonArea + objectReference: {fileID: 0} + - target: {fileID: 1780549777782881423, guid: 208eab8c17f4afb41a89eedbfe42f722, + type: 3} + propertyPath: m_Delegates.Array.data[0].callback.m_PersistentCalls.m_Calls.Array.data[0].m_TargetAssemblyTypeName + value: Nekoyume.UI.ItemTooltip, Nekoyume + objectReference: {fileID: 0} + - target: {fileID: 1780549777782881423, guid: 208eab8c17f4afb41a89eedbfe42f722, + type: 3} + propertyPath: m_Delegates.Array.data[1].callback.m_PersistentCalls.m_Calls.Array.data[0].m_TargetAssemblyTypeName + value: Nekoyume.UI.ItemTooltip, Nekoyume + objectReference: {fileID: 0} + - target: {fileID: 1780549777782881423, guid: 208eab8c17f4afb41a89eedbfe42f722, + type: 3} + propertyPath: m_Delegates.Array.data[0].callback.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_BoolArgument + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 1780549777782881423, guid: 208eab8c17f4afb41a89eedbfe42f722, + type: 3} + propertyPath: m_Delegates.Array.data[0].callback.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_ObjectArgumentAssemblyTypeName + value: UnityEngine.Object, UnityEngine + objectReference: {fileID: 0} + - target: {fileID: 1780549777782881423, guid: 208eab8c17f4afb41a89eedbfe42f722, + type: 3} + propertyPath: m_Delegates.Array.data[1].callback.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_ObjectArgumentAssemblyTypeName + value: UnityEngine.Object, UnityEngine + objectReference: {fileID: 0} - target: {fileID: 1785787159470936913, guid: 208eab8c17f4afb41a89eedbfe42f722, type: 3} propertyPath: m_AnchorMax.y @@ -727,6 +802,81 @@ PrefabInstance: propertyPath: m_IsActive value: 1 objectReference: {fileID: 0} + - target: {fileID: 2337100688356226806, guid: 208eab8c17f4afb41a89eedbfe42f722, + type: 3} + propertyPath: m_Delegates.Array.data[0].callback.m_PersistentCalls.m_Calls.Array.size + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2337100688356226806, guid: 208eab8c17f4afb41a89eedbfe42f722, + type: 3} + propertyPath: m_Delegates.Array.data[1].callback.m_PersistentCalls.m_Calls.Array.size + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2337100688356226806, guid: 208eab8c17f4afb41a89eedbfe42f722, + type: 3} + propertyPath: m_Delegates.Array.data[0].callback.m_PersistentCalls.m_Calls.Array.data[0].m_Mode + value: 6 + objectReference: {fileID: 0} + - target: {fileID: 2337100688356226806, guid: 208eab8c17f4afb41a89eedbfe42f722, + type: 3} + propertyPath: m_Delegates.Array.data[1].callback.m_PersistentCalls.m_Calls.Array.data[0].m_Mode + value: 6 + objectReference: {fileID: 0} + - target: {fileID: 2337100688356226806, guid: 208eab8c17f4afb41a89eedbfe42f722, + type: 3} + propertyPath: m_Delegates.Array.data[0].callback.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: -2838122723255354076} + - target: {fileID: 2337100688356226806, guid: 208eab8c17f4afb41a89eedbfe42f722, + type: 3} + propertyPath: m_Delegates.Array.data[1].callback.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: -2838122723255354076} + - target: {fileID: 2337100688356226806, guid: 208eab8c17f4afb41a89eedbfe42f722, + type: 3} + propertyPath: m_Delegates.Array.data[0].callback.m_PersistentCalls.m_Calls.Array.data[0].m_CallState + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 2337100688356226806, guid: 208eab8c17f4afb41a89eedbfe42f722, + type: 3} + propertyPath: m_Delegates.Array.data[1].callback.m_PersistentCalls.m_Calls.Array.data[0].m_CallState + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 2337100688356226806, guid: 208eab8c17f4afb41a89eedbfe42f722, + type: 3} + propertyPath: m_Delegates.Array.data[0].callback.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName + value: OnEnterButtonArea + objectReference: {fileID: 0} + - target: {fileID: 2337100688356226806, guid: 208eab8c17f4afb41a89eedbfe42f722, + type: 3} + propertyPath: m_Delegates.Array.data[1].callback.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName + value: OnEnterButtonArea + objectReference: {fileID: 0} + - target: {fileID: 2337100688356226806, guid: 208eab8c17f4afb41a89eedbfe42f722, + type: 3} + propertyPath: m_Delegates.Array.data[0].callback.m_PersistentCalls.m_Calls.Array.data[0].m_TargetAssemblyTypeName + value: Nekoyume.UI.ItemTooltip, Nekoyume + objectReference: {fileID: 0} + - target: {fileID: 2337100688356226806, guid: 208eab8c17f4afb41a89eedbfe42f722, + type: 3} + propertyPath: m_Delegates.Array.data[1].callback.m_PersistentCalls.m_Calls.Array.data[0].m_TargetAssemblyTypeName + value: Nekoyume.UI.ItemTooltip, Nekoyume + objectReference: {fileID: 0} + - target: {fileID: 2337100688356226806, guid: 208eab8c17f4afb41a89eedbfe42f722, + type: 3} + propertyPath: m_Delegates.Array.data[0].callback.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_BoolArgument + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2337100688356226806, guid: 208eab8c17f4afb41a89eedbfe42f722, + type: 3} + propertyPath: m_Delegates.Array.data[0].callback.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_ObjectArgumentAssemblyTypeName + value: UnityEngine.Object, UnityEngine + objectReference: {fileID: 0} + - target: {fileID: 2337100688356226806, guid: 208eab8c17f4afb41a89eedbfe42f722, + type: 3} + propertyPath: m_Delegates.Array.data[1].callback.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_ObjectArgumentAssemblyTypeName + value: UnityEngine.Object, UnityEngine + objectReference: {fileID: 0} - target: {fileID: 2405228427834927448, guid: 208eab8c17f4afb41a89eedbfe42f722, type: 3} propertyPath: m_AnchorMax.y diff --git a/nekoyume/Assets/Resources/UI/Prefabs/UI_CostumeTooltip.prefab b/nekoyume/Assets/Resources/UI/Prefabs/UI_CostumeTooltip.prefab index d561c0c57b4..40cba0ebbe3 100644 --- a/nekoyume/Assets/Resources/UI/Prefabs/UI_CostumeTooltip.prefab +++ b/nekoyume/Assets/Resources/UI/Prefabs/UI_CostumeTooltip.prefab @@ -672,6 +672,81 @@ PrefabInstance: propertyPath: m_AnchoredPosition.y value: -20.51 objectReference: {fileID: 0} + - target: {fileID: 1780549777782881423, guid: 208eab8c17f4afb41a89eedbfe42f722, + type: 3} + propertyPath: m_Delegates.Array.data[0].callback.m_PersistentCalls.m_Calls.Array.size + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 1780549777782881423, guid: 208eab8c17f4afb41a89eedbfe42f722, + type: 3} + propertyPath: m_Delegates.Array.data[1].callback.m_PersistentCalls.m_Calls.Array.size + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 1780549777782881423, guid: 208eab8c17f4afb41a89eedbfe42f722, + type: 3} + propertyPath: m_Delegates.Array.data[0].callback.m_PersistentCalls.m_Calls.Array.data[0].m_Mode + value: 6 + objectReference: {fileID: 0} + - target: {fileID: 1780549777782881423, guid: 208eab8c17f4afb41a89eedbfe42f722, + type: 3} + propertyPath: m_Delegates.Array.data[1].callback.m_PersistentCalls.m_Calls.Array.data[0].m_Mode + value: 6 + objectReference: {fileID: 0} + - target: {fileID: 1780549777782881423, guid: 208eab8c17f4afb41a89eedbfe42f722, + type: 3} + propertyPath: m_Delegates.Array.data[0].callback.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 6657123366891336328} + - target: {fileID: 1780549777782881423, guid: 208eab8c17f4afb41a89eedbfe42f722, + type: 3} + propertyPath: m_Delegates.Array.data[1].callback.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 6657123366891336328} + - target: {fileID: 1780549777782881423, guid: 208eab8c17f4afb41a89eedbfe42f722, + type: 3} + propertyPath: m_Delegates.Array.data[0].callback.m_PersistentCalls.m_Calls.Array.data[0].m_CallState + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 1780549777782881423, guid: 208eab8c17f4afb41a89eedbfe42f722, + type: 3} + propertyPath: m_Delegates.Array.data[1].callback.m_PersistentCalls.m_Calls.Array.data[0].m_CallState + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 1780549777782881423, guid: 208eab8c17f4afb41a89eedbfe42f722, + type: 3} + propertyPath: m_Delegates.Array.data[0].callback.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName + value: OnEnterButtonArea + objectReference: {fileID: 0} + - target: {fileID: 1780549777782881423, guid: 208eab8c17f4afb41a89eedbfe42f722, + type: 3} + propertyPath: m_Delegates.Array.data[1].callback.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName + value: OnEnterButtonArea + objectReference: {fileID: 0} + - target: {fileID: 1780549777782881423, guid: 208eab8c17f4afb41a89eedbfe42f722, + type: 3} + propertyPath: m_Delegates.Array.data[0].callback.m_PersistentCalls.m_Calls.Array.data[0].m_TargetAssemblyTypeName + value: Nekoyume.UI.ItemTooltip, Nekoyume + objectReference: {fileID: 0} + - target: {fileID: 1780549777782881423, guid: 208eab8c17f4afb41a89eedbfe42f722, + type: 3} + propertyPath: m_Delegates.Array.data[1].callback.m_PersistentCalls.m_Calls.Array.data[0].m_TargetAssemblyTypeName + value: Nekoyume.UI.ItemTooltip, Nekoyume + objectReference: {fileID: 0} + - target: {fileID: 1780549777782881423, guid: 208eab8c17f4afb41a89eedbfe42f722, + type: 3} + propertyPath: m_Delegates.Array.data[0].callback.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_BoolArgument + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 1780549777782881423, guid: 208eab8c17f4afb41a89eedbfe42f722, + type: 3} + propertyPath: m_Delegates.Array.data[0].callback.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_ObjectArgumentAssemblyTypeName + value: UnityEngine.Object, UnityEngine + objectReference: {fileID: 0} + - target: {fileID: 1780549777782881423, guid: 208eab8c17f4afb41a89eedbfe42f722, + type: 3} + propertyPath: m_Delegates.Array.data[1].callback.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_ObjectArgumentAssemblyTypeName + value: UnityEngine.Object, UnityEngine + objectReference: {fileID: 0} - target: {fileID: 1785787159470936913, guid: 208eab8c17f4afb41a89eedbfe42f722, type: 3} propertyPath: m_AnchorMax.y @@ -772,6 +847,81 @@ PrefabInstance: propertyPath: m_AnchoredPosition.y value: 0 objectReference: {fileID: 0} + - target: {fileID: 2337100688356226806, guid: 208eab8c17f4afb41a89eedbfe42f722, + type: 3} + propertyPath: m_Delegates.Array.data[0].callback.m_PersistentCalls.m_Calls.Array.size + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2337100688356226806, guid: 208eab8c17f4afb41a89eedbfe42f722, + type: 3} + propertyPath: m_Delegates.Array.data[1].callback.m_PersistentCalls.m_Calls.Array.size + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2337100688356226806, guid: 208eab8c17f4afb41a89eedbfe42f722, + type: 3} + propertyPath: m_Delegates.Array.data[0].callback.m_PersistentCalls.m_Calls.Array.data[0].m_Mode + value: 6 + objectReference: {fileID: 0} + - target: {fileID: 2337100688356226806, guid: 208eab8c17f4afb41a89eedbfe42f722, + type: 3} + propertyPath: m_Delegates.Array.data[1].callback.m_PersistentCalls.m_Calls.Array.data[0].m_Mode + value: 6 + objectReference: {fileID: 0} + - target: {fileID: 2337100688356226806, guid: 208eab8c17f4afb41a89eedbfe42f722, + type: 3} + propertyPath: m_Delegates.Array.data[0].callback.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 6657123366891336328} + - target: {fileID: 2337100688356226806, guid: 208eab8c17f4afb41a89eedbfe42f722, + type: 3} + propertyPath: m_Delegates.Array.data[1].callback.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 6657123366891336328} + - target: {fileID: 2337100688356226806, guid: 208eab8c17f4afb41a89eedbfe42f722, + type: 3} + propertyPath: m_Delegates.Array.data[0].callback.m_PersistentCalls.m_Calls.Array.data[0].m_CallState + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 2337100688356226806, guid: 208eab8c17f4afb41a89eedbfe42f722, + type: 3} + propertyPath: m_Delegates.Array.data[1].callback.m_PersistentCalls.m_Calls.Array.data[0].m_CallState + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 2337100688356226806, guid: 208eab8c17f4afb41a89eedbfe42f722, + type: 3} + propertyPath: m_Delegates.Array.data[0].callback.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName + value: OnEnterButtonArea + objectReference: {fileID: 0} + - target: {fileID: 2337100688356226806, guid: 208eab8c17f4afb41a89eedbfe42f722, + type: 3} + propertyPath: m_Delegates.Array.data[1].callback.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName + value: OnEnterButtonArea + objectReference: {fileID: 0} + - target: {fileID: 2337100688356226806, guid: 208eab8c17f4afb41a89eedbfe42f722, + type: 3} + propertyPath: m_Delegates.Array.data[0].callback.m_PersistentCalls.m_Calls.Array.data[0].m_TargetAssemblyTypeName + value: Nekoyume.UI.ItemTooltip, Nekoyume + objectReference: {fileID: 0} + - target: {fileID: 2337100688356226806, guid: 208eab8c17f4afb41a89eedbfe42f722, + type: 3} + propertyPath: m_Delegates.Array.data[1].callback.m_PersistentCalls.m_Calls.Array.data[0].m_TargetAssemblyTypeName + value: Nekoyume.UI.ItemTooltip, Nekoyume + objectReference: {fileID: 0} + - target: {fileID: 2337100688356226806, guid: 208eab8c17f4afb41a89eedbfe42f722, + type: 3} + propertyPath: m_Delegates.Array.data[0].callback.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_BoolArgument + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2337100688356226806, guid: 208eab8c17f4afb41a89eedbfe42f722, + type: 3} + propertyPath: m_Delegates.Array.data[0].callback.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_ObjectArgumentAssemblyTypeName + value: UnityEngine.Object, UnityEngine + objectReference: {fileID: 0} + - target: {fileID: 2337100688356226806, guid: 208eab8c17f4afb41a89eedbfe42f722, + type: 3} + propertyPath: m_Delegates.Array.data[1].callback.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_ObjectArgumentAssemblyTypeName + value: UnityEngine.Object, UnityEngine + objectReference: {fileID: 0} - target: {fileID: 2405228427834927448, guid: 208eab8c17f4afb41a89eedbfe42f722, type: 3} propertyPath: m_AnchorMax.y diff --git a/nekoyume/Assets/Resources/UI/Prefabs/UI_EquipmentTooltip.prefab b/nekoyume/Assets/Resources/UI/Prefabs/UI_EquipmentTooltip.prefab index 7f8541beb9c..f14d6ed1fa3 100644 --- a/nekoyume/Assets/Resources/UI/Prefabs/UI_EquipmentTooltip.prefab +++ b/nekoyume/Assets/Resources/UI/Prefabs/UI_EquipmentTooltip.prefab @@ -612,6 +612,81 @@ PrefabInstance: propertyPath: m_AnchoredPosition.y value: 0 objectReference: {fileID: 0} + - target: {fileID: 1780549777782881423, guid: 208eab8c17f4afb41a89eedbfe42f722, + type: 3} + propertyPath: m_Delegates.Array.data[0].callback.m_PersistentCalls.m_Calls.Array.size + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 1780549777782881423, guid: 208eab8c17f4afb41a89eedbfe42f722, + type: 3} + propertyPath: m_Delegates.Array.data[1].callback.m_PersistentCalls.m_Calls.Array.size + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 1780549777782881423, guid: 208eab8c17f4afb41a89eedbfe42f722, + type: 3} + propertyPath: m_Delegates.Array.data[0].callback.m_PersistentCalls.m_Calls.Array.data[0].m_Mode + value: 6 + objectReference: {fileID: 0} + - target: {fileID: 1780549777782881423, guid: 208eab8c17f4afb41a89eedbfe42f722, + type: 3} + propertyPath: m_Delegates.Array.data[1].callback.m_PersistentCalls.m_Calls.Array.data[0].m_Mode + value: 6 + objectReference: {fileID: 0} + - target: {fileID: 1780549777782881423, guid: 208eab8c17f4afb41a89eedbfe42f722, + type: 3} + propertyPath: m_Delegates.Array.data[0].callback.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 2642951696811351690} + - target: {fileID: 1780549777782881423, guid: 208eab8c17f4afb41a89eedbfe42f722, + type: 3} + propertyPath: m_Delegates.Array.data[1].callback.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 2642951696811351690} + - target: {fileID: 1780549777782881423, guid: 208eab8c17f4afb41a89eedbfe42f722, + type: 3} + propertyPath: m_Delegates.Array.data[0].callback.m_PersistentCalls.m_Calls.Array.data[0].m_CallState + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 1780549777782881423, guid: 208eab8c17f4afb41a89eedbfe42f722, + type: 3} + propertyPath: m_Delegates.Array.data[1].callback.m_PersistentCalls.m_Calls.Array.data[0].m_CallState + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 1780549777782881423, guid: 208eab8c17f4afb41a89eedbfe42f722, + type: 3} + propertyPath: m_Delegates.Array.data[0].callback.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName + value: OnEnterButtonArea + objectReference: {fileID: 0} + - target: {fileID: 1780549777782881423, guid: 208eab8c17f4afb41a89eedbfe42f722, + type: 3} + propertyPath: m_Delegates.Array.data[1].callback.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName + value: OnEnterButtonArea + objectReference: {fileID: 0} + - target: {fileID: 1780549777782881423, guid: 208eab8c17f4afb41a89eedbfe42f722, + type: 3} + propertyPath: m_Delegates.Array.data[0].callback.m_PersistentCalls.m_Calls.Array.data[0].m_TargetAssemblyTypeName + value: Nekoyume.UI.ItemTooltip, Nekoyume + objectReference: {fileID: 0} + - target: {fileID: 1780549777782881423, guid: 208eab8c17f4afb41a89eedbfe42f722, + type: 3} + propertyPath: m_Delegates.Array.data[1].callback.m_PersistentCalls.m_Calls.Array.data[0].m_TargetAssemblyTypeName + value: Nekoyume.UI.ItemTooltip, Nekoyume + objectReference: {fileID: 0} + - target: {fileID: 1780549777782881423, guid: 208eab8c17f4afb41a89eedbfe42f722, + type: 3} + propertyPath: m_Delegates.Array.data[0].callback.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_BoolArgument + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 1780549777782881423, guid: 208eab8c17f4afb41a89eedbfe42f722, + type: 3} + propertyPath: m_Delegates.Array.data[0].callback.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_ObjectArgumentAssemblyTypeName + value: UnityEngine.Object, UnityEngine + objectReference: {fileID: 0} + - target: {fileID: 1780549777782881423, guid: 208eab8c17f4afb41a89eedbfe42f722, + type: 3} + propertyPath: m_Delegates.Array.data[1].callback.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_ObjectArgumentAssemblyTypeName + value: UnityEngine.Object, UnityEngine + objectReference: {fileID: 0} - target: {fileID: 1785787159470936913, guid: 208eab8c17f4afb41a89eedbfe42f722, type: 3} propertyPath: m_AnchorMax.y @@ -707,6 +782,81 @@ PrefabInstance: propertyPath: m_AnchoredPosition.y value: 0 objectReference: {fileID: 0} + - target: {fileID: 2337100688356226806, guid: 208eab8c17f4afb41a89eedbfe42f722, + type: 3} + propertyPath: m_Delegates.Array.data[0].callback.m_PersistentCalls.m_Calls.Array.size + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2337100688356226806, guid: 208eab8c17f4afb41a89eedbfe42f722, + type: 3} + propertyPath: m_Delegates.Array.data[1].callback.m_PersistentCalls.m_Calls.Array.size + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2337100688356226806, guid: 208eab8c17f4afb41a89eedbfe42f722, + type: 3} + propertyPath: m_Delegates.Array.data[0].callback.m_PersistentCalls.m_Calls.Array.data[0].m_Mode + value: 6 + objectReference: {fileID: 0} + - target: {fileID: 2337100688356226806, guid: 208eab8c17f4afb41a89eedbfe42f722, + type: 3} + propertyPath: m_Delegates.Array.data[1].callback.m_PersistentCalls.m_Calls.Array.data[0].m_Mode + value: 6 + objectReference: {fileID: 0} + - target: {fileID: 2337100688356226806, guid: 208eab8c17f4afb41a89eedbfe42f722, + type: 3} + propertyPath: m_Delegates.Array.data[0].callback.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 2642951696811351690} + - target: {fileID: 2337100688356226806, guid: 208eab8c17f4afb41a89eedbfe42f722, + type: 3} + propertyPath: m_Delegates.Array.data[1].callback.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 2642951696811351690} + - target: {fileID: 2337100688356226806, guid: 208eab8c17f4afb41a89eedbfe42f722, + type: 3} + propertyPath: m_Delegates.Array.data[0].callback.m_PersistentCalls.m_Calls.Array.data[0].m_CallState + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 2337100688356226806, guid: 208eab8c17f4afb41a89eedbfe42f722, + type: 3} + propertyPath: m_Delegates.Array.data[1].callback.m_PersistentCalls.m_Calls.Array.data[0].m_CallState + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 2337100688356226806, guid: 208eab8c17f4afb41a89eedbfe42f722, + type: 3} + propertyPath: m_Delegates.Array.data[0].callback.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName + value: OnEnterButtonArea + objectReference: {fileID: 0} + - target: {fileID: 2337100688356226806, guid: 208eab8c17f4afb41a89eedbfe42f722, + type: 3} + propertyPath: m_Delegates.Array.data[1].callback.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName + value: OnEnterButtonArea + objectReference: {fileID: 0} + - target: {fileID: 2337100688356226806, guid: 208eab8c17f4afb41a89eedbfe42f722, + type: 3} + propertyPath: m_Delegates.Array.data[0].callback.m_PersistentCalls.m_Calls.Array.data[0].m_TargetAssemblyTypeName + value: Nekoyume.UI.ItemTooltip, Nekoyume + objectReference: {fileID: 0} + - target: {fileID: 2337100688356226806, guid: 208eab8c17f4afb41a89eedbfe42f722, + type: 3} + propertyPath: m_Delegates.Array.data[1].callback.m_PersistentCalls.m_Calls.Array.data[0].m_TargetAssemblyTypeName + value: Nekoyume.UI.ItemTooltip, Nekoyume + objectReference: {fileID: 0} + - target: {fileID: 2337100688356226806, guid: 208eab8c17f4afb41a89eedbfe42f722, + type: 3} + propertyPath: m_Delegates.Array.data[0].callback.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_BoolArgument + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2337100688356226806, guid: 208eab8c17f4afb41a89eedbfe42f722, + type: 3} + propertyPath: m_Delegates.Array.data[0].callback.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_ObjectArgumentAssemblyTypeName + value: UnityEngine.Object, UnityEngine + objectReference: {fileID: 0} + - target: {fileID: 2337100688356226806, guid: 208eab8c17f4afb41a89eedbfe42f722, + type: 3} + propertyPath: m_Delegates.Array.data[1].callback.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_ObjectArgumentAssemblyTypeName + value: UnityEngine.Object, UnityEngine + objectReference: {fileID: 0} - target: {fileID: 2405228427834927448, guid: 208eab8c17f4afb41a89eedbfe42f722, type: 3} propertyPath: m_AnchorMax.y diff --git a/nekoyume/Assets/Resources/UI/Prefabs/UI_ItemTooltip.prefab b/nekoyume/Assets/Resources/UI/Prefabs/UI_ItemTooltip.prefab index 7aeccfc3d64..ed63399ac22 100644 --- a/nekoyume/Assets/Resources/UI/Prefabs/UI_ItemTooltip.prefab +++ b/nekoyume/Assets/Resources/UI/Prefabs/UI_ItemTooltip.prefab @@ -2543,6 +2543,7 @@ GameObject: - component: {fileID: 7132723727655539264} - component: {fileID: 1358722767018694956} - component: {fileID: 1128599176101970828} + - component: {fileID: 2337100688356226806} m_Layer: 5 m_Name: ScrollArea m_TagString: Untagged @@ -2611,6 +2612,27 @@ CanvasGroup: m_Interactable: 1 m_BlocksRaycasts: 1 m_IgnoreParentGroups: 0 +--- !u!114 &2337100688356226806 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 746859167471078090} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d0b148fe25e99eb48b9724523833bab1, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Delegates: + - eventID: 0 + callback: + m_PersistentCalls: + m_Calls: [] + - eventID: 1 + callback: + m_PersistentCalls: + m_Calls: [] --- !u!1 &783462841990799818 GameObject: m_ObjectHideFlags: 0 @@ -6139,6 +6161,7 @@ GameObject: - component: {fileID: 1284097101345363522} - component: {fileID: 5332038087690342819} - component: {fileID: 6200444448127092426} + - component: {fileID: 7864582710439135287} m_Layer: 5 m_Name: Top m_TagString: Untagged @@ -6227,6 +6250,18 @@ MonoBehaviour: m_FlexibleWidth: -1 m_FlexibleHeight: -1 m_LayoutPriority: 1 +--- !u!225 &7864582710439135287 +CanvasGroup: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1692370679464240416} + m_Enabled: 1 + m_Alpha: 1 + m_Interactable: 0 + m_BlocksRaycasts: 0 + m_IgnoreParentGroups: 0 --- !u!1 &1790319793317888799 GameObject: m_ObjectHideFlags: 0 @@ -6574,7 +6609,7 @@ MonoBehaviour: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 + m_RaycastTarget: 0 m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: @@ -7597,6 +7632,7 @@ GameObject: - component: {fileID: 3485201730566377189} - component: {fileID: 3535412359804596979} - component: {fileID: 2198234649963356238} + - component: {fileID: 1780549777782881423} m_Layer: 5 m_Name: Footer m_TagString: Untagged @@ -7668,6 +7704,27 @@ MonoBehaviour: m_ChildScaleWidth: 0 m_ChildScaleHeight: 0 m_ReverseArrangement: 0 +--- !u!114 &1780549777782881423 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2241884043661766845} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d0b148fe25e99eb48b9724523833bab1, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Delegates: + - eventID: 0 + callback: + m_PersistentCalls: + m_Calls: [] + - eventID: 1 + callback: + m_PersistentCalls: + m_Calls: [] --- !u!1 &2271117393585238873 GameObject: m_ObjectHideFlags: 0 @@ -11751,7 +11808,7 @@ MonoBehaviour: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 + m_RaycastTarget: 0 m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: @@ -15141,7 +15198,7 @@ MonoBehaviour: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 0.2264151, g: 0.2264151, b: 0.2264151, a: 1} - m_RaycastTarget: 1 + m_RaycastTarget: 0 m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: @@ -17998,7 +18055,7 @@ MonoBehaviour: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 + m_RaycastTarget: 0 m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: @@ -25291,7 +25348,7 @@ MonoBehaviour: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 0 + m_RaycastTarget: 1 m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: @@ -31496,7 +31553,7 @@ MonoBehaviour: m_TargetGraphic: {fileID: 1691207599003355518} m_HandleRect: {fileID: 4119769666421683849} m_Direction: 2 - m_Value: 1.0000006 + m_Value: 1.0000004 m_Size: 0.4732784 m_NumberOfSteps: 0 m_OnValueChanged: diff --git a/nekoyume/Assets/Resources/UI/Prefabs/UI_MaterialTooltip.prefab b/nekoyume/Assets/Resources/UI/Prefabs/UI_MaterialTooltip.prefab index 55d586d909b..5841d9aaf42 100644 --- a/nekoyume/Assets/Resources/UI/Prefabs/UI_MaterialTooltip.prefab +++ b/nekoyume/Assets/Resources/UI/Prefabs/UI_MaterialTooltip.prefab @@ -482,6 +482,81 @@ PrefabInstance: propertyPath: m_AnchoredPosition.y value: 0 objectReference: {fileID: 0} + - target: {fileID: 1780549777782881423, guid: 208eab8c17f4afb41a89eedbfe42f722, + type: 3} + propertyPath: m_Delegates.Array.data[0].callback.m_PersistentCalls.m_Calls.Array.size + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 1780549777782881423, guid: 208eab8c17f4afb41a89eedbfe42f722, + type: 3} + propertyPath: m_Delegates.Array.data[1].callback.m_PersistentCalls.m_Calls.Array.size + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 1780549777782881423, guid: 208eab8c17f4afb41a89eedbfe42f722, + type: 3} + propertyPath: m_Delegates.Array.data[0].callback.m_PersistentCalls.m_Calls.Array.data[0].m_Mode + value: 6 + objectReference: {fileID: 0} + - target: {fileID: 1780549777782881423, guid: 208eab8c17f4afb41a89eedbfe42f722, + type: 3} + propertyPath: m_Delegates.Array.data[1].callback.m_PersistentCalls.m_Calls.Array.data[0].m_Mode + value: 6 + objectReference: {fileID: 0} + - target: {fileID: 1780549777782881423, guid: 208eab8c17f4afb41a89eedbfe42f722, + type: 3} + propertyPath: m_Delegates.Array.data[0].callback.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 2002028391089964197} + - target: {fileID: 1780549777782881423, guid: 208eab8c17f4afb41a89eedbfe42f722, + type: 3} + propertyPath: m_Delegates.Array.data[1].callback.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 2002028391089964197} + - target: {fileID: 1780549777782881423, guid: 208eab8c17f4afb41a89eedbfe42f722, + type: 3} + propertyPath: m_Delegates.Array.data[0].callback.m_PersistentCalls.m_Calls.Array.data[0].m_CallState + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 1780549777782881423, guid: 208eab8c17f4afb41a89eedbfe42f722, + type: 3} + propertyPath: m_Delegates.Array.data[1].callback.m_PersistentCalls.m_Calls.Array.data[0].m_CallState + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 1780549777782881423, guid: 208eab8c17f4afb41a89eedbfe42f722, + type: 3} + propertyPath: m_Delegates.Array.data[0].callback.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName + value: OnEnterButtonArea + objectReference: {fileID: 0} + - target: {fileID: 1780549777782881423, guid: 208eab8c17f4afb41a89eedbfe42f722, + type: 3} + propertyPath: m_Delegates.Array.data[1].callback.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName + value: OnEnterButtonArea + objectReference: {fileID: 0} + - target: {fileID: 1780549777782881423, guid: 208eab8c17f4afb41a89eedbfe42f722, + type: 3} + propertyPath: m_Delegates.Array.data[0].callback.m_PersistentCalls.m_Calls.Array.data[0].m_TargetAssemblyTypeName + value: Nekoyume.UI.ItemTooltip, Nekoyume + objectReference: {fileID: 0} + - target: {fileID: 1780549777782881423, guid: 208eab8c17f4afb41a89eedbfe42f722, + type: 3} + propertyPath: m_Delegates.Array.data[1].callback.m_PersistentCalls.m_Calls.Array.data[0].m_TargetAssemblyTypeName + value: Nekoyume.UI.ItemTooltip, Nekoyume + objectReference: {fileID: 0} + - target: {fileID: 1780549777782881423, guid: 208eab8c17f4afb41a89eedbfe42f722, + type: 3} + propertyPath: m_Delegates.Array.data[0].callback.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_BoolArgument + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 1780549777782881423, guid: 208eab8c17f4afb41a89eedbfe42f722, + type: 3} + propertyPath: m_Delegates.Array.data[0].callback.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_ObjectArgumentAssemblyTypeName + value: UnityEngine.Object, UnityEngine + objectReference: {fileID: 0} + - target: {fileID: 1780549777782881423, guid: 208eab8c17f4afb41a89eedbfe42f722, + type: 3} + propertyPath: m_Delegates.Array.data[1].callback.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_ObjectArgumentAssemblyTypeName + value: UnityEngine.Object, UnityEngine + objectReference: {fileID: 0} - target: {fileID: 1927420267364873128, guid: 208eab8c17f4afb41a89eedbfe42f722, type: 3} propertyPath: m_AnchorMax.y @@ -582,6 +657,81 @@ PrefabInstance: propertyPath: m_AnchoredPosition.y value: 0 objectReference: {fileID: 0} + - target: {fileID: 2337100688356226806, guid: 208eab8c17f4afb41a89eedbfe42f722, + type: 3} + propertyPath: m_Delegates.Array.data[0].callback.m_PersistentCalls.m_Calls.Array.size + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2337100688356226806, guid: 208eab8c17f4afb41a89eedbfe42f722, + type: 3} + propertyPath: m_Delegates.Array.data[1].callback.m_PersistentCalls.m_Calls.Array.size + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2337100688356226806, guid: 208eab8c17f4afb41a89eedbfe42f722, + type: 3} + propertyPath: m_Delegates.Array.data[0].callback.m_PersistentCalls.m_Calls.Array.data[0].m_Mode + value: 6 + objectReference: {fileID: 0} + - target: {fileID: 2337100688356226806, guid: 208eab8c17f4afb41a89eedbfe42f722, + type: 3} + propertyPath: m_Delegates.Array.data[1].callback.m_PersistentCalls.m_Calls.Array.data[0].m_Mode + value: 6 + objectReference: {fileID: 0} + - target: {fileID: 2337100688356226806, guid: 208eab8c17f4afb41a89eedbfe42f722, + type: 3} + propertyPath: m_Delegates.Array.data[0].callback.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 2002028391089964197} + - target: {fileID: 2337100688356226806, guid: 208eab8c17f4afb41a89eedbfe42f722, + type: 3} + propertyPath: m_Delegates.Array.data[1].callback.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 2002028391089964197} + - target: {fileID: 2337100688356226806, guid: 208eab8c17f4afb41a89eedbfe42f722, + type: 3} + propertyPath: m_Delegates.Array.data[0].callback.m_PersistentCalls.m_Calls.Array.data[0].m_CallState + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 2337100688356226806, guid: 208eab8c17f4afb41a89eedbfe42f722, + type: 3} + propertyPath: m_Delegates.Array.data[1].callback.m_PersistentCalls.m_Calls.Array.data[0].m_CallState + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 2337100688356226806, guid: 208eab8c17f4afb41a89eedbfe42f722, + type: 3} + propertyPath: m_Delegates.Array.data[0].callback.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName + value: OnEnterButtonArea + objectReference: {fileID: 0} + - target: {fileID: 2337100688356226806, guid: 208eab8c17f4afb41a89eedbfe42f722, + type: 3} + propertyPath: m_Delegates.Array.data[1].callback.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName + value: OnEnterButtonArea + objectReference: {fileID: 0} + - target: {fileID: 2337100688356226806, guid: 208eab8c17f4afb41a89eedbfe42f722, + type: 3} + propertyPath: m_Delegates.Array.data[0].callback.m_PersistentCalls.m_Calls.Array.data[0].m_TargetAssemblyTypeName + value: Nekoyume.UI.ItemTooltip, Nekoyume + objectReference: {fileID: 0} + - target: {fileID: 2337100688356226806, guid: 208eab8c17f4afb41a89eedbfe42f722, + type: 3} + propertyPath: m_Delegates.Array.data[1].callback.m_PersistentCalls.m_Calls.Array.data[0].m_TargetAssemblyTypeName + value: Nekoyume.UI.ItemTooltip, Nekoyume + objectReference: {fileID: 0} + - target: {fileID: 2337100688356226806, guid: 208eab8c17f4afb41a89eedbfe42f722, + type: 3} + propertyPath: m_Delegates.Array.data[0].callback.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_BoolArgument + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2337100688356226806, guid: 208eab8c17f4afb41a89eedbfe42f722, + type: 3} + propertyPath: m_Delegates.Array.data[0].callback.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_ObjectArgumentAssemblyTypeName + value: UnityEngine.Object, UnityEngine + objectReference: {fileID: 0} + - target: {fileID: 2337100688356226806, guid: 208eab8c17f4afb41a89eedbfe42f722, + type: 3} + propertyPath: m_Delegates.Array.data[1].callback.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_ObjectArgumentAssemblyTypeName + value: UnityEngine.Object, UnityEngine + objectReference: {fileID: 0} - target: {fileID: 2539670040256056072, guid: 208eab8c17f4afb41a89eedbfe42f722, type: 3} propertyPath: m_AnchorMax.y From 7355f86d663653d86aaa25a4b57dc03093ed7702 Mon Sep 17 00:00:00 2001 From: tyrosine1153 Date: Wed, 22 Nov 2023 19:04:49 +0900 Subject: [PATCH 15/22] Fix FungibleAssetTooltip, RuneTooltip point event trigger --- .../UI/Prefabs/UI_FungibleAssetTooltip.prefab | 61 +++++++++++++++++- .../UI/Prefabs/UI_RuneTooltip.prefab | 63 ++++++++++++++++++- 2 files changed, 121 insertions(+), 3 deletions(-) diff --git a/nekoyume/Assets/Resources/UI/Prefabs/UI_FungibleAssetTooltip.prefab b/nekoyume/Assets/Resources/UI/Prefabs/UI_FungibleAssetTooltip.prefab index 811ac50a6e2..218ef04570c 100644 --- a/nekoyume/Assets/Resources/UI/Prefabs/UI_FungibleAssetTooltip.prefab +++ b/nekoyume/Assets/Resources/UI/Prefabs/UI_FungibleAssetTooltip.prefab @@ -4743,6 +4743,7 @@ GameObject: - component: {fileID: 8345192229530743519} - component: {fileID: 2201705437051731774} - component: {fileID: 3367752127855427622} + - component: {fileID: 9979499077861398} m_Layer: 5 m_Name: Detail m_TagString: Untagged @@ -4794,7 +4795,7 @@ MonoBehaviour: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 0 + m_RaycastTarget: 1 m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: @@ -4912,6 +4913,51 @@ MonoBehaviour: - {fileID: 0} - {fileID: 0} skillTooltip: {fileID: 0} +--- !u!114 &9979499077861398 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3367752127855427621} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d0b148fe25e99eb48b9724523833bab1, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Delegates: + - eventID: 0 + callback: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 4693993570970967307} + m_TargetAssemblyTypeName: Nekoyume.UI.FungibleAssetTooltip, Nekoyume + m_MethodName: OnEnterButtonArea + m_Mode: 6 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 1 + m_CallState: 2 + - eventID: 1 + callback: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 4693993570970967307} + m_TargetAssemblyTypeName: Nekoyume.UI.FungibleAssetTooltip, Nekoyume + m_MethodName: OnEnterButtonArea + m_Mode: 6 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 --- !u!1 &3551271071411875570 GameObject: m_ObjectHideFlags: 0 @@ -8952,6 +8998,7 @@ GameObject: - component: {fileID: 6057431571035361701} - component: {fileID: 881968901378987588} - component: {fileID: 1427132243144900909} + - component: {fileID: 5449568285220463293} m_Layer: 5 m_Name: Top m_TagString: Untagged @@ -9039,6 +9086,18 @@ MonoBehaviour: m_FlexibleWidth: -1 m_FlexibleHeight: -1 m_LayoutPriority: 1 +--- !u!225 &5449568285220463293 +CanvasGroup: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5962436343425442503} + m_Enabled: 1 + m_Alpha: 1 + m_Interactable: 0 + m_BlocksRaycasts: 0 + m_IgnoreParentGroups: 0 --- !u!1 &6044140462574067477 GameObject: m_ObjectHideFlags: 0 diff --git a/nekoyume/Assets/Resources/UI/Prefabs/UI_RuneTooltip.prefab b/nekoyume/Assets/Resources/UI/Prefabs/UI_RuneTooltip.prefab index e9a7f41453f..a8fbd73d1f0 100644 --- a/nekoyume/Assets/Resources/UI/Prefabs/UI_RuneTooltip.prefab +++ b/nekoyume/Assets/Resources/UI/Prefabs/UI_RuneTooltip.prefab @@ -2156,7 +2156,7 @@ MonoBehaviour: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 + m_RaycastTarget: 0 m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: @@ -4159,6 +4159,7 @@ GameObject: - component: {fileID: 5312942395551629411} - component: {fileID: 1840337709965686503} - component: {fileID: 4730752703329530118} + - component: {fileID: 8204914498817891460} m_Layer: 5 m_Name: Top m_TagString: Untagged @@ -4227,6 +4228,18 @@ MonoBehaviour: m_FillOrigin: 0 m_UseSpriteMesh: 0 m_PixelsPerUnitMultiplier: 1 +--- !u!225 &8204914498817891460 +CanvasGroup: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2244117309219046789} + m_Enabled: 1 + m_Alpha: 1 + m_Interactable: 0 + m_BlocksRaycasts: 0 + m_IgnoreParentGroups: 0 --- !u!1 &2344745693508580853 GameObject: m_ObjectHideFlags: 0 @@ -18187,6 +18200,7 @@ GameObject: - component: {fileID: 809503376454329747} - component: {fileID: 4488528141123949981} - component: {fileID: 5986524016789002364} + - component: {fileID: 57876145140963390} m_Layer: 5 m_Name: Detail m_TagString: Untagged @@ -18238,7 +18252,7 @@ MonoBehaviour: m_EditorClassIdentifier: m_Material: {fileID: 0} m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 0 + m_RaycastTarget: 1 m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: @@ -18294,6 +18308,51 @@ MonoBehaviour: m_EditorClassIdentifier: m_HorizontalFit: 0 m_VerticalFit: 2 +--- !u!114 &57876145140963390 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7144618008289060711} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d0b148fe25e99eb48b9724523833bab1, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Delegates: + - eventID: 0 + callback: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 836228864728598928} + m_TargetAssemblyTypeName: Nekoyume.UI.RuneTooltip, Nekoyume + m_MethodName: OnEnterButtonArea + m_Mode: 6 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 1 + m_CallState: 2 + - eventID: 1 + callback: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 836228864728598928} + m_TargetAssemblyTypeName: Nekoyume.UI.RuneTooltip, Nekoyume + m_MethodName: OnEnterButtonArea + m_Mode: 6 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 --- !u!1 &7153467487710132124 GameObject: m_ObjectHideFlags: 0 From 0275df21cdfd0a2feed1da8b772c0bbcd6c8567b Mon Sep 17 00:00:00 2001 From: jonny Date: Wed, 22 Nov 2023 19:45:38 +0900 Subject: [PATCH 16/22] chore 90.1.0 --- nekoyume/ProjectSettings/ProjectSettings.asset | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/nekoyume/ProjectSettings/ProjectSettings.asset b/nekoyume/ProjectSettings/ProjectSettings.asset index a3d65b02d87..acafd33ca51 100644 --- a/nekoyume/ProjectSettings/ProjectSettings.asset +++ b/nekoyume/ProjectSettings/ProjectSettings.asset @@ -136,7 +136,7 @@ PlayerSettings: 16:10: 0 16:9: 1 Others: 0 - bundleVersion: 90.0.24 + bundleVersion: 90.1.0 preloadedAssets: [] metroInputSource: 0 wsaTransparentSwapchain: 0 @@ -165,7 +165,7 @@ PlayerSettings: iPhone: 0 tvOS: 0 overrideDefaultApplicationIdentifier: 1 - AndroidBundleVersionCode: 112 + AndroidBundleVersionCode: 113 AndroidMinSdkVersion: 22 AndroidTargetSdkVersion: 33 AndroidPreferredInstallLocation: 2 From e8027242d5d02403d46bdfd90b5cfe8405673400 Mon Sep 17 00:00:00 2001 From: jonny Date: Wed, 22 Nov 2023 21:21:10 +0900 Subject: [PATCH 17/22] add pending purchase --- nekoyume/Assets/_Scripts/IAPStore/IAPStoreManager.cs | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/nekoyume/Assets/_Scripts/IAPStore/IAPStoreManager.cs b/nekoyume/Assets/_Scripts/IAPStore/IAPStoreManager.cs index 5a6add34766..1083cf2b258 100644 --- a/nekoyume/Assets/_Scripts/IAPStore/IAPStoreManager.cs +++ b/nekoyume/Assets/_Scripts/IAPStore/IAPStoreManager.cs @@ -132,18 +132,14 @@ void IStoreListener.OnInitializeFailed(InitializationFailureReason error, string /// PurchaseProcessingResult IStoreListener.ProcessPurchase(PurchaseEventArgs e) { - _controller.ConfirmPendingPurchase(e.purchasedProduct); if (e.purchasedProduct.availableToPurchase) { OnPurchaseRequestAsync(e); - return PurchaseProcessingResult.Pending; } - Widget.Find().PurchaseButtonLoadingEnd(); Widget.Find().PurchaseButtonLoadingEnd(); - Debug.LogWarning($"not availableToPurchase. e.purchasedProduct.availableToPurchase: {e.purchasedProduct.availableToPurchase}"); - return PurchaseProcessingResult.Complete; + return PurchaseProcessingResult.Pending; } /// @@ -231,6 +227,7 @@ private async void OnPurchaseRequestAsync(PurchaseEventArgs e) "UI_OK", true, IconAndButtonSystem.SystemType.Information); + popup.ConfirmCallback = () => { if (LoginSystem.GetPassPhrase(states.AgentState.address.ToString()).Equals(string.Empty)) @@ -238,6 +235,7 @@ private async void OnPurchaseRequestAsync(PurchaseEventArgs e) Widget.Find().ShowResetPassword(); } }; + Widget.Find().PurchaseComplete(e.purchasedProduct.definition.id); Widget.Find().RefreshGrid(); Widget.Find().Close(); From 3483ce35b405ebbbe553a67352f79b07fc0719a6 Mon Sep 17 00:00:00 2001 From: Hyun Seungmin Date: Wed, 22 Nov 2023 21:16:44 +0900 Subject: [PATCH 18/22] do not recreate Keystore in LoginSystem --- .../_Scripts/UI/Widget/System/LoginSystem.cs | 47 +++++++++++-------- 1 file changed, 27 insertions(+), 20 deletions(-) diff --git a/nekoyume/Assets/_Scripts/UI/Widget/System/LoginSystem.cs b/nekoyume/Assets/_Scripts/UI/Widget/System/LoginSystem.cs index c11e9c4909f..c1ab9b4973d 100644 --- a/nekoyume/Assets/_Scripts/UI/Widget/System/LoginSystem.cs +++ b/nekoyume/Assets/_Scripts/UI/Widget/System/LoginSystem.cs @@ -106,16 +106,7 @@ public static void Reset() protected override void Awake() { - // Default KeyStore in android is invalid, we should redefine it. - if (Platform.IsMobilePlatform()) - { - string dataPath = Platform.PersistentDataPath; - KeyStore = new Web3KeyStore(dataPath + "/keystore"); - } - else - { - KeyStore = Web3KeyStore.DefaultKeyStore; - } + InitializeKeyStore(null); State.Value = States.Show; State.Subscribe(SubscribeState).AddTo(gameObject); @@ -464,15 +455,7 @@ public void Show(string path, string privateKeyString) $", privateKeyString is null or empty({string.IsNullOrEmpty(privateKeyString)})"); AnalyzeCache.Reset(); - if (Platform.IsMobilePlatform()) - { - var dataPath = Platform.GetPersistentDataPath("keystore"); - KeyStore ??= path is null ? new Web3KeyStore(dataPath) : new Web3KeyStore(path); - } - else - { - KeyStore ??= path is null ? Web3KeyStore.DefaultKeyStore : new Web3KeyStore(path); - } + InitializeKeyStore(path); _privateKeyString = privateKeyString; //Auto login for miner, seed, launcher @@ -557,7 +540,7 @@ public void Show(Address? connectedAddress) var evt = new AirbridgeEvent("Login_2"); AirbridgeUnity.TrackEvent(evt); - KeyStore = new Web3KeyStore(Platform.GetPersistentDataPath("keystore")); + InitializeKeyStore(null); _privateKey = new PrivateKey(); CreateProtectedPrivateKey(_privateKey); Login = _privateKey is not null; @@ -777,5 +760,29 @@ private void SetImage(Address address) accountAddressText.gameObject.SetActive(true); } } + + private void InitializeKeyStore(string path) + { + Debug.Log($"[LoginSystem] InitializeKeyStore invoked: path({path})"); + + if (KeyStore is not null) + { + Debug.Log("[LoginSystem] InitializeKeyStore: KeyStore is not null"); + return; + } + + if (Platform.IsMobilePlatform()) + { + KeyStore = path is null + ? new Web3KeyStore(Platform.GetPersistentDataPath("keystore")) + : new Web3KeyStore(path); + } + else + { + KeyStore = path is null + ? Web3KeyStore.DefaultKeyStore + : new Web3KeyStore(path); + } + } } } From 3cde9a3ea1ce871307a2d4704227b3fea292fee1 Mon Sep 17 00:00:00 2001 From: jonny Date: Wed, 22 Nov 2023 21:48:20 +0900 Subject: [PATCH 19/22] chore 90.1.1 --- nekoyume/ProjectSettings/ProjectSettings.asset | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/nekoyume/ProjectSettings/ProjectSettings.asset b/nekoyume/ProjectSettings/ProjectSettings.asset index acafd33ca51..07bed86e9e3 100644 --- a/nekoyume/ProjectSettings/ProjectSettings.asset +++ b/nekoyume/ProjectSettings/ProjectSettings.asset @@ -136,7 +136,7 @@ PlayerSettings: 16:10: 0 16:9: 1 Others: 0 - bundleVersion: 90.1.0 + bundleVersion: 90.1.1 preloadedAssets: [] metroInputSource: 0 wsaTransparentSwapchain: 0 @@ -165,7 +165,7 @@ PlayerSettings: iPhone: 0 tvOS: 0 overrideDefaultApplicationIdentifier: 1 - AndroidBundleVersionCode: 113 + AndroidBundleVersionCode: 114 AndroidMinSdkVersion: 22 AndroidTargetSdkVersion: 33 AndroidPreferredInstallLocation: 2 From f2ca0274159de1ee29b46e5e48eeee3439ae9e16 Mon Sep 17 00:00:00 2001 From: sonohoshi Date: Thu, 23 Nov 2023 16:55:54 +0900 Subject: [PATCH 20/22] fix notice json url at korean and pc --- nekoyume/Assets/_Scripts/Game/LiveAsset/LiveAssetManager.cs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/nekoyume/Assets/_Scripts/Game/LiveAsset/LiveAssetManager.cs b/nekoyume/Assets/_Scripts/Game/LiveAsset/LiveAssetManager.cs index 9182f553ffa..adf7c01fd85 100644 --- a/nekoyume/Assets/_Scripts/Game/LiveAsset/LiveAssetManager.cs +++ b/nekoyume/Assets/_Scripts/Game/LiveAsset/LiveAssetManager.cs @@ -61,7 +61,9 @@ public void InitializeData() _endpoint = Resources.Load("ScriptableObject/LiveAssetEndpoint"); var noticeUrl = L10nManager.CurrentLanguage switch { - LanguageType.Korean => _endpoint.NoticeJsonKoreanUrl, + LanguageType.Korean => Platform.IsMobilePlatform() + ? _endpoint.NoticeJsonKoreanUrl + : _endpoint.NoticeJsonUrl, LanguageType.Japanese => _endpoint.NoticeJsonJapaneseUrl, _ => _endpoint.NoticeJsonUrl }; From bd3f3f182bf40eb73f23b20358ca57806205a4d2 Mon Sep 17 00:00:00 2001 From: jonny Date: Thu, 23 Nov 2023 18:29:12 +0900 Subject: [PATCH 21/22] add iap pending and repurchase flow --- .../IAPService/Runtime/IAPServiceClient.cs | 22 ++- .../IAPService/Runtime/IAPServiceManager.cs | 12 +- .../_Scripts/IAPStore/IAPStoreManager.cs | 185 ++++++++++++++++-- .../SeasonPassServiceManager.cs | 14 ++ 4 files changed, 211 insertions(+), 22 deletions(-) diff --git a/nekoyume/Assets/NineChronicles/ExternalServices/IAPService/Runtime/IAPServiceClient.cs b/nekoyume/Assets/NineChronicles/ExternalServices/IAPService/Runtime/IAPServiceClient.cs index 72b65aedfc6..fac3beec2a6 100644 --- a/nekoyume/Assets/NineChronicles/ExternalServices/IAPService/Runtime/IAPServiceClient.cs +++ b/nekoyume/Assets/NineChronicles/ExternalServices/IAPService/Runtime/IAPServiceClient.cs @@ -63,19 +63,21 @@ public async PurchaseRequestAsync( Store store, string receipt, - Address agentAddr, - Address avatarAddr, - string planetId) + string agentAddr, + string avatarAddr, + string planetId, + string transactionId, + string appleOriginalTransactionID) { var receiptJson = JsonNode.Parse(receipt); var reqJson = new JsonObject { { "store", (int)store }, + { "agentAddress", agentAddr }, + { "avatarAddress", avatarAddr}, + { "planetId", planetId}, { "data", receiptJson }, - { "agentAddress", agentAddr.ToHex() }, - { "avatarAddress", avatarAddr.ToHex() }, - { "planetId", planetId} }; Debug.Log($"PurchaseRequestAsync : {reqJson}"); @@ -84,6 +86,14 @@ public async reqJson.ToJsonString(JsonSerializerOptions), System.Text.Encoding.UTF8, "application/json"); + + reqContent.Headers.Add("agentAddress", agentAddr); + reqContent.Headers.Add("orderId", transactionId); + if (!string.IsNullOrEmpty(appleOriginalTransactionID)) + { + reqContent.Headers.Add("appleOriginalTransactionID", appleOriginalTransactionID); + } + using var res = await _client.PostAsync(_endpoints.PurchaseRequest, reqContent); return await ProcessResponseAsync(res); } diff --git a/nekoyume/Assets/NineChronicles/ExternalServices/IAPService/Runtime/IAPServiceManager.cs b/nekoyume/Assets/NineChronicles/ExternalServices/IAPService/Runtime/IAPServiceManager.cs index 0fe920cf9ab..6cd45d1150b 100644 --- a/nekoyume/Assets/NineChronicles/ExternalServices/IAPService/Runtime/IAPServiceManager.cs +++ b/nekoyume/Assets/NineChronicles/ExternalServices/IAPService/Runtime/IAPServiceManager.cs @@ -147,9 +147,11 @@ public void Dispose() public async Task PurchaseRequestAsync( string receipt, - Address agentAddr, - Address avatarAddr, - string planetId) + string agentAddr, + string avatarAddr, + string planetId, + string transactionId, + string appleOriginalTransactionID) { if (!IsInitialized) { @@ -163,7 +165,9 @@ await _client.PurchaseRequestAsync( receipt, agentAddr, avatarAddr, - planetId); + planetId, + transactionId, + appleOriginalTransactionID); if (code != HttpStatusCode.OK || !string.IsNullOrEmpty(error)) { diff --git a/nekoyume/Assets/_Scripts/IAPStore/IAPStoreManager.cs b/nekoyume/Assets/_Scripts/IAPStore/IAPStoreManager.cs index 1083cf2b258..ecd3ef542e8 100644 --- a/nekoyume/Assets/_Scripts/IAPStore/IAPStoreManager.cs +++ b/nekoyume/Assets/_Scripts/IAPStore/IAPStoreManager.cs @@ -6,6 +6,8 @@ using System; using System.Collections.Generic; using System.Linq; +using System.Threading.Tasks; +using Libplanet.Crypto; using Nekoyume.L10n; using Nekoyume.State; using Nekoyume.UI; @@ -126,20 +128,156 @@ void IStoreListener.OnInitializeFailed(InitializationFailureReason error, string Debug.LogError($"Initializing failed for the specified reason: {error}\n{message}"); } + + [Serializable] + struct PurchaseReciept + { + public string Receipt; + public string AgentAddressHex; + public string AvatarAddressHex; + public string PlanetId; + } + + [System.Serializable] + public class LocalTransactionsWrapper + { + public List data; + } + + private const string LOCAL_TRANSACTIONS = "LOCAL_TRANSACTIONS"; + List GetLocalTransactions() + { + var listString = PlayerPrefs.GetString(LOCAL_TRANSACTIONS, string.Empty); + if (string.IsNullOrEmpty(listString)) + { + return new List(); + } + return JsonUtility.FromJson(listString).data; + } + + void AddLocalTransactions(string transaction) + { + var transactionList = GetLocalTransactions(); + if (transactionList.Contains(transaction)) + { + Debug.LogWarning($"[AddLocalTransactions] duplicate Transaction {transaction}"); + } + else + { + transactionList.Add(transaction); + PlayerPrefs.SetString(LOCAL_TRANSACTIONS, JsonUtility.ToJson(new LocalTransactionsWrapper { data = transactionList })); + } + } + + void RemoveLocalTransactions(string transaction) + { + var transactionList = GetLocalTransactions(); + if (transactionList.Remove(transaction)) + { + PlayerPrefs.SetString(LOCAL_TRANSACTIONS, JsonUtility.ToJson(new LocalTransactionsWrapper { data = transactionList })); + } + } + + async void RePurchaseTryAsync(Product product) + { + var purchaseData = PlayerPrefs.GetString("PURCHASE_TX_" + product.transactionID, string.Empty); + PurchaseReciept pData; + if (string.IsNullOrEmpty(purchaseData)) + { + var states = States.Instance; + pData = new PurchaseReciept + { + Receipt = product.receipt, + AgentAddressHex = states.AgentState.address.ToHex(), + AvatarAddressHex = states.CurrentAvatarState.address.ToHex(), + PlanetId = Game.Game.instance.CurrentPlanetId.ToString(), + }; + } + else + { + pData = JsonUtility.FromJson(purchaseData); + } + + var result = await Game.Game.instance.IAPServiceManager + .PurchaseRequestAsync( + product.receipt, + pData.AgentAddressHex, + pData.AvatarAddressHex, + pData.PlanetId, + product.transactionID, + product.appleOriginalTransactionID); + + if (result is null) + { + Debug.LogError($"[RePurchaseTryAsync] Failed {pData.Receipt} AgentAddressHex: {pData.AgentAddressHex} AvatarAddressHex: {pData.AvatarAddressHex} PlanetId: {pData.PlanetId}"); + } + else + { + _controller.ConfirmPendingPurchase(product); + RemoveLocalTransactions(product.transactionID); + } + } + /// /// Called when a purchase completes. /// May be called at any time after OnInitialized(). /// PurchaseProcessingResult IStoreListener.ProcessPurchase(PurchaseEventArgs e) { - if (e.purchasedProduct.availableToPurchase) + if(e == null) { - OnPurchaseRequestAsync(e); + Debug.Log("[ProcessPurchase] PurchaseEventArgs is null"); + return PurchaseProcessingResult.Pending; + } + + try + { + var states = States.Instance; + PurchaseReciept purchaseReciepe = new PurchaseReciept + { + Receipt = e.purchasedProduct.receipt, + AgentAddressHex = states.AgentState.address.ToHex(), + AvatarAddressHex = states.CurrentAvatarState.address.ToHex(), + PlanetId = Game.Game.instance.CurrentPlanetId.ToString(), + }; + PlayerPrefs.SetString("PURCHASE_TX_"+e.purchasedProduct.transactionID, JsonUtility.ToJson(purchaseReciepe)); + AddLocalTransactions(e.purchasedProduct.transactionID); + } + catch (Exception error) + { + Debug.LogError("[ProcessPurchase] AddLocalTransactions Error " + error); + } + + try + { + if (!Widget.Find().isActiveAndEnabled && !Widget.Find().isActiveAndEnabled) + { + Debug.Log("[ProcessPurchase] Is not PurchasePage"); + RePurchaseTryAsync(e.purchasedProduct); + return PurchaseProcessingResult.Pending; + } + } + catch (Exception error) + { + Debug.LogError("[ProcessPurchase] RePurchaseTryAsync Error " + error); + } + + try + { + if (e.purchasedProduct.availableToPurchase) + { + OnPurchaseRequestAsync(e); + } + Widget.Find().PurchaseButtonLoadingEnd(); + Widget.Find().PurchaseButtonLoadingEnd(); + Debug.LogWarning($"not availableToPurchase. e.purchasedProduct.availableToPurchase: {e.purchasedProduct.availableToPurchase}"); + return PurchaseProcessingResult.Pending; + } + catch(Exception error) + { + Debug.LogError("[ProcessPurchase] " + error); + return PurchaseProcessingResult.Pending; } - Widget.Find().PurchaseButtonLoadingEnd(); - Widget.Find().PurchaseButtonLoadingEnd(); - Debug.LogWarning($"not availableToPurchase. e.purchasedProduct.availableToPurchase: {e.purchasedProduct.availableToPurchase}"); - return PurchaseProcessingResult.Pending; } /// @@ -161,7 +299,7 @@ void IStoreListener.OnPurchaseFailed(Product i, PurchaseFailureReason p) /// void IDetailedStoreListener.OnPurchaseFailed(Product i, PurchaseFailureDescription p) { - Debug.LogError($"PurchaseFail. reason: {p}, Product: {i}"); + Debug.LogError($"PurchaseFail. reason: {p.reason}, Product: {i}"); Analyzer.Instance.Track( "Unity/Shop/IAP/PurchaseResult", ("product-id", p.productId), @@ -173,9 +311,29 @@ void IDetailedStoreListener.OnPurchaseFailed(Product i, PurchaseFailureDescripti evt.AddCustomAttribute("product-id", p.productId); AirbridgeUnity.TrackEvent(evt); - if (p.reason == PurchaseFailureReason.PurchasingUnavailable) + Widget.Find().PurchaseButtonLoadingEnd(); + Widget.Find().PurchaseButtonLoadingEnd(); + + switch (p.reason) { - // IAP may be disabled in device settings. + case PurchaseFailureReason.PurchasingUnavailable: + break; + case PurchaseFailureReason.ExistingPurchasePending: + break; + case PurchaseFailureReason.ProductUnavailable: + break; + case PurchaseFailureReason.SignatureInvalid: + break; + case PurchaseFailureReason.UserCancelled: + break; + case PurchaseFailureReason.PaymentDeclined: + break; + case PurchaseFailureReason.DuplicateTransaction: + break; + case PurchaseFailureReason.Unknown: + break; + default: + break; } } @@ -189,9 +347,11 @@ private async void OnPurchaseRequestAsync(PurchaseEventArgs e) var result = await Game.Game.instance.IAPServiceManager .PurchaseRequestAsync( e.purchasedProduct.receipt, - states.AgentState.address, - states.CurrentAvatarState.address, - Game.Game.instance.CurrentPlanetId.ToString()); + states.AgentState.address.ToHex(), + states.CurrentAvatarState.address.ToHex(), + Game.Game.instance.CurrentPlanetId.ToString(), + e.purchasedProduct.transactionID, + e.purchasedProduct.appleOriginalTransactionID); Widget.Find().PurchaseButtonLoadingEnd(); Widget.Find().PurchaseButtonLoadingEnd(); @@ -240,6 +400,7 @@ private async void OnPurchaseRequestAsync(PurchaseEventArgs e) Widget.Find().RefreshGrid(); Widget.Find().Close(); _controller.ConfirmPendingPurchase(e.purchasedProduct); + RemoveLocalTransactions(e.purchasedProduct.transactionID); } } catch (Exception exc) diff --git a/nekoyume/Assets/_Scripts/SeasonPassService/SeasonPassServiceManager.cs b/nekoyume/Assets/_Scripts/SeasonPassService/SeasonPassServiceManager.cs index f7eadeeb05a..50225b4d0f1 100644 --- a/nekoyume/Assets/_Scripts/SeasonPassService/SeasonPassServiceManager.cs +++ b/nekoyume/Assets/_Scripts/SeasonPassService/SeasonPassServiceManager.cs @@ -119,7 +119,21 @@ public async Task AvatarStateRefreshAsync() return; } + if(Game.Game.instance.States == null || Game.Game.instance.States.CurrentAvatarState == null) + { + AvatarInfo.SetValueAndForceNotify(null); + Debug.LogError("$SeasonPassServiceManager [AvatarStateRefreshAsync] States or CurrentAvatarState is null"); + return; + } + var avatarAddress = Game.Game.instance.States.CurrentAvatarState.address; + + if(Client == null) + { + AvatarInfo.SetValueAndForceNotify(null); + Debug.LogError("$SeasonPassServiceManager [AvatarStateRefreshAsync] Client is null"); + return; + } await Client.GetUserStatusAsync(CurrentSeasonPassData.Id, avatarAddress.ToString(), Game.Game.instance.CurrentPlanetId.ToString(), (result) => From adb19bc783f1fb591ac02f1f8d6716b8b71c0728 Mon Sep 17 00:00:00 2001 From: jonny Date: Thu, 23 Nov 2023 18:37:55 +0900 Subject: [PATCH 22/22] chore 90.1.2 --- nekoyume/ProjectSettings/ProjectSettings.asset | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/nekoyume/ProjectSettings/ProjectSettings.asset b/nekoyume/ProjectSettings/ProjectSettings.asset index 07bed86e9e3..e0aef18199d 100644 --- a/nekoyume/ProjectSettings/ProjectSettings.asset +++ b/nekoyume/ProjectSettings/ProjectSettings.asset @@ -136,7 +136,7 @@ PlayerSettings: 16:10: 0 16:9: 1 Others: 0 - bundleVersion: 90.1.1 + bundleVersion: 90.1.2 preloadedAssets: [] metroInputSource: 0 wsaTransparentSwapchain: 0 @@ -165,7 +165,7 @@ PlayerSettings: iPhone: 0 tvOS: 0 overrideDefaultApplicationIdentifier: 1 - AndroidBundleVersionCode: 114 + AndroidBundleVersionCode: 115 AndroidMinSdkVersion: 22 AndroidTargetSdkVersion: 33 AndroidPreferredInstallLocation: 2