diff --git a/src/main/java/emu/grasscutter/command/commands/TalentCommand.java b/src/main/java/emu/grasscutter/command/commands/TalentCommand.java index 908ba5979..59fc89ddb 100644 --- a/src/main/java/emu/grasscutter/command/commands/TalentCommand.java +++ b/src/main/java/emu/grasscutter/command/commands/TalentCommand.java @@ -2,9 +2,11 @@ package emu.grasscutter.command.commands; import emu.grasscutter.command.Command; import emu.grasscutter.command.CommandHandler; +import emu.grasscutter.data.GameData; import emu.grasscutter.data.excels.AvatarSkillDepotData; import emu.grasscutter.game.avatar.Avatar; import emu.grasscutter.game.player.Player; +import emu.grasscutter.utils.Language; import java.util.List; @@ -14,6 +16,16 @@ import java.util.List; permission = "player.settalent", permissionTargeted = "player.settalent.others") public final class TalentCommand implements CommandHandler { + private void setTalentLevel(Player sender, Avatar avatar, int skillId, int newLevel) { + if (avatar.setSkillLevel(skillId, newLevel)) { + long nameHash = GameData.getAvatarSkillDataMap().get(skillId).getNameTextMapHash(); + var name = Language.getTextMapKey(nameHash); + CommandHandler.sendTranslatedMessage(sender, "commands.talent.set_id", skillId, name, newLevel); + } else { + CommandHandler.sendTranslatedMessage(sender, "commands.talent.lower_16"); + } + } + @Override public void execute(Player sender, Player targetPlayer, List args) { if (args.size() < 1){ @@ -27,9 +39,6 @@ public final class TalentCommand implements CommandHandler { CommandHandler.sendTranslatedMessage(sender, "commands.talent.invalid_skill_id"); return; } - int skillIdNorAtk = skillDepot.getSkills().get(0); - int skillIdE = skillDepot.getSkills().get(1); - int skillIdQ = skillDepot.getEnergySkill(); int skillId = 0; int newLevel = -1; @@ -57,11 +66,7 @@ public final class TalentCommand implements CommandHandler { return; } - if (avatar.setSkillLevel(skillId, newLevel)) { - CommandHandler.sendTranslatedMessage(sender, "commands.talent.set_id", newLevel); - } else { - CommandHandler.sendTranslatedMessage(sender, "commands.talent.lower_16"); - } + setTalentLevel(sender, avatar, skillId, newLevel); } case "n", "e", "q" -> { if (args.size() < 2) { @@ -76,24 +81,21 @@ public final class TalentCommand implements CommandHandler { } skillId = switch (cmdSwitch) { - default -> skillIdNorAtk; - case "e" -> skillIdE; - case "q" -> skillIdQ; + default -> skillDepot.getSkills().get(0); + case "e" -> skillDepot.getSkills().get(1); + case "q" -> skillDepot.getEnergySkill(); }; - if (avatar.setSkillLevel(skillId, newLevel)) { - switch (cmdSwitch) { - default -> CommandHandler.sendTranslatedMessage(sender, "commands.talent.set_atk", newLevel); - case "e" -> CommandHandler.sendTranslatedMessage(sender, "commands.talent.set_e", newLevel); - case "q" -> CommandHandler.sendTranslatedMessage(sender, "commands.talent.set_q", newLevel); - } - } else { - CommandHandler.sendTranslatedMessage(sender, "commands.talent.lower_16"); - } + setTalentLevel(sender, avatar, skillId, newLevel); } case "getid" -> { - CommandHandler.sendTranslatedMessage(sender, "commands.talent.normal_attack_id", skillIdNorAtk); - CommandHandler.sendTranslatedMessage(sender, "commands.talent.e_skill_id", skillIdE); - CommandHandler.sendTranslatedMessage(sender, "commands.talent.q_skill_id", skillIdQ); + var map = GameData.getAvatarSkillDataMap(); + skillDepot.getSkillsAndEnergySkill().forEach(id -> { + var talent = map.get(id); + if (talent == null) return; + var talentName = Language.getTextMapKey(talent.getNameTextMapHash()); + var talentDesc = Language.getTextMapKey(talent.getDescTextMapHash()); + CommandHandler.sendTranslatedMessage(sender, "commands.talent.id_desc", id, talentName, talentDesc); + }); } } } diff --git a/src/main/java/emu/grasscutter/data/excels/AvatarSkillData.java b/src/main/java/emu/grasscutter/data/excels/AvatarSkillData.java index ffdb93bbf..b6e852642 100644 --- a/src/main/java/emu/grasscutter/data/excels/AvatarSkillData.java +++ b/src/main/java/emu/grasscutter/data/excels/AvatarSkillData.java @@ -1,65 +1,29 @@ package emu.grasscutter.data.excels; -import java.util.List; - import emu.grasscutter.data.GameResource; import emu.grasscutter.data.ResourceType; import emu.grasscutter.data.ResourceType.LoadPriority; import emu.grasscutter.game.props.ElementType; +import lombok.Getter; @ResourceType(name = "AvatarSkillExcelConfigData.json", loadPriority = LoadPriority.HIGHEST) public class AvatarSkillData extends GameResource { - private int id; - private float cdTime; - private int costElemVal; - private int maxChargeNum; - private int triggerID; - private boolean isAttackCameraLock; - private int proudSkillGroupId; - private ElementType costElemType; - private long nameTextMapHash; - private String abilityName; + private int id; + @Getter private float cdTime; + @Getter private int costElemVal; + @Getter private int maxChargeNum; + @Getter private int triggerID; + @Getter private boolean isAttackCameraLock; + @Getter private int proudSkillGroupId; + @Getter private ElementType costElemType; + @Getter private long nameTextMapHash; + @Getter private long descTextMapHash; + @Getter private String abilityName; @Override public int getId(){ return this.id; } - - public float getCdTime() { - return cdTime; - } - - public int getCostElemVal() { - return costElemVal; - } - - public int getMaxChargeNum() { - return maxChargeNum; - } - - public int getTriggerID() { - return triggerID; - } - - public boolean isIsAttackCameraLock() { - return isAttackCameraLock; - } - - public int getProudSkillGroupId() { - return proudSkillGroupId; - } - - public ElementType getCostElemType() { - return costElemType; - } - - public long getNameTextMapHash() { - return nameTextMapHash; - } - - public String getAbilityName() { - return abilityName; - } @Override public void onLoad() { diff --git a/src/main/java/emu/grasscutter/utils/Language.java b/src/main/java/emu/grasscutter/utils/Language.java index 3f34b955b..1ee3f4378 100644 --- a/src/main/java/emu/grasscutter/utils/Language.java +++ b/src/main/java/emu/grasscutter/utils/Language.java @@ -253,7 +253,7 @@ public final class Language { } } - private static final int TEXTMAP_CACHE_VERSION = 0x9CCACE02; + private static final int TEXTMAP_CACHE_VERSION = 0x9CCACE03; @EqualsAndHashCode public static class TextStrings implements Serializable { public static final String[] ARR_LANGUAGES = {"EN", "CHS", "CHT", "JP", "KR", "DE", "ES", "FR", "ID", "PT", "RU", "TH", "VI"}; public static final String[] ARR_GC_LANGUAGES = {"en-US", "zh-CN", "zh-TW", "en-US", "ko-KR", "en-US", "es-ES", "fr-FR", "en-US", "en-US", "ru-RU", "en-US", "en-US"}; // TODO: Update the placeholder en-US entries if we ever add GC translations for the missing client languages @@ -437,6 +437,7 @@ public final class Language { GameData.getAvatarDataMap().forEach((k, v) -> usedHashes.add((int) v.getNameTextMapHash())); GameData.getAvatarSkillDataMap().forEach((k, v) -> { usedHashes.add((int) v.getNameTextMapHash()); + usedHashes.add((int) v.getDescTextMapHash()); }); GameData.getItemDataMap().forEach((k, v) -> usedHashes.add((int) v.getNameTextMapHash())); GameData.getMonsterDataMap().forEach((k, v) -> usedHashes.add((int) v.getNameTextMapHash())); diff --git a/src/main/resources/languages/en-US.json b/src/main/resources/languages/en-US.json index 87296bfdf..7352ec929 100644 --- a/src/main/resources/languages/en-US.json +++ b/src/main/resources/languages/en-US.json @@ -291,10 +291,8 @@ }, "talent": { "lower_16": "Invalid talent level. Level should be lower than 16.", - "set_id": "Set talent to %s.", - "set_atk": "Set talent Normal ATK to %s.", - "set_e": "Set talent E to %s.", - "set_q": "Set talent Q to %s.", + "set_id": "Set talent %s - \"%s\" to %s.", + "id_desc": "Talent %s - \"%s\" - \"%s\"", "invalid_skill_id": "Invalid skill ID.", "invalid_level": "Invalid talent level.", "normal_attack_id": "Normal Attack ID %s.", diff --git a/src/main/resources/languages/es-ES.json b/src/main/resources/languages/es-ES.json index 7cf91618f..8ad0f515e 100644 --- a/src/main/resources/languages/es-ES.json +++ b/src/main/resources/languages/es-ES.json @@ -291,10 +291,8 @@ }, "talent": { "lower_16": "Nivel de talento invรกlido. El nivel debe ser menor que 16.", - "set_id": "Establecido el talento a %s.", - "set_atk": "Establecido el talento del ataque normal a %s.", - "set_e": "Establecido el talento E a %s.", - "set_q": "Establecido el talento Q a %s.", + "set_id": "๐Ÿ‡บ๐Ÿ‡ธSet talent %s - \"%s\" to %s.", + "id_desc": "๐Ÿ‡บ๐Ÿ‡ธTalent %s - \"%s\" - \"%s\"", "invalid_skill_id": "ID de habilidad invรกlido.", "invalid_level": "Nivel de talento invรกlido.", "normal_attack_id": "ID del ataque normal %s.", @@ -363,23 +361,23 @@ }, "documentation": { "handbook": { - "title": "GM Handbook", + "title": "๐Ÿ‡บ๐Ÿ‡ธGM Handbook", "title_commands": "Comandos", "title_avatars": "Avatares", "title_items": "Objetos", "title_scenes": "Escenario", "title_monsters": "Monstruos", - "header_id": "Id", + "header_id": "๐Ÿ‡บ๐Ÿ‡ธId", "header_command": "Comando", "header_description": "Descripciรณn", - "header_avatar": "Avatar", + "header_avatar": "๐Ÿ‡บ๐Ÿ‡ธAvatar", "header_item": "Objeto", "header_scene": "Escenario", "header_monster": "Monstruo" }, "index": { "title": "Documentaciรณn", - "handbook": "GM Handbook", + "handbook": "๐Ÿ‡บ๐Ÿ‡ธGM Handbook", "gacha_mapping": "JSON de mapeo del Gacha" } } diff --git a/src/main/resources/languages/fr-FR.json b/src/main/resources/languages/fr-FR.json index f50cc7617..a468dd2c6 100644 --- a/src/main/resources/languages/fr-FR.json +++ b/src/main/resources/languages/fr-FR.json @@ -291,10 +291,8 @@ }, "talent": { "lower_16": "Niveau de talent invalide. Le niveau doit รชtre infรฉrieur a 16.", - "set_id": "Talent dรฉfini ร  %s.", - "set_atk": "Le talent ATK normale a รฉtรฉ dรฉfini ร  %s.", - "set_e": "Le talent E a รฉtรฉ dรฉfini a %s.", - "set_q": "Le talent A/Q a รฉtรฉ dรฉfini ร  %s.", + "set_id": "๐Ÿ‡บ๐Ÿ‡ธSet talent %s - \"%s\" to %s.", + "id_desc": "๐Ÿ‡บ๐Ÿ‡ธTalent %s - \"%s\" - \"%s\"", "invalid_skill_id": "ID de talent invalide.", "invalid_level": "Niveau de talent invalide.", "normal_attack_id": "ID de l'attaque normale ID %s.", @@ -383,4 +381,4 @@ "gacha_mapping": "๐Ÿ‡บ๐Ÿ‡ธGacha mapping JSON" } } -} \ No newline at end of file +} diff --git a/src/main/resources/languages/ko-KR.json b/src/main/resources/languages/ko-KR.json index e946e83a4..e41669baf 100644 --- a/src/main/resources/languages/ko-KR.json +++ b/src/main/resources/languages/ko-KR.json @@ -9,7 +9,7 @@ }, "dispatch": { "port_bind": "[Dispatch] ๋””์ŠคํŒจ์น˜ ์„œ๋ฒ„๊ฐ€ ํฌํŠธ %s์—์„œ ์—ด๋ ธ์Šต๋‹ˆ๋‹ค.", - "request": "[Dispatch] Client %s %s request: %s", + "request": "๐Ÿ‡บ๐Ÿ‡ธ[Dispatch] Client %s %s request: %s", "keystore": { "general_error": "[Dispatch] ํ‚ค์Šคํ† ์–ด ๋กœ๋”ฉ์ค‘ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค!", "password_error": "[Dispatch] ํ‚ค์Šคํ† ์–ด๋ฅผ ๋กœ๋”ฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ณธ ํ‚ค์Šคํ† ์–ด ์•”ํ˜ธ๋กœ ์‹œ๋„ ์ค‘...", @@ -17,10 +17,10 @@ "default_password": "[Dispatch] ๊ธฐ๋ณธ ํ‚ค์Šคํ† ์–ด ์•”ํ˜ธ๊ฐ€ ์„ฑ๊ณต์ ์œผ๋กœ ๋กœ๋”ฉ๋์Šต๋‹ˆ๋‹ค. config.json์—์„œ ์•”ํ˜ธ๋ฅผ 123456์œผ๋กœ ์„ค์ •ํ•ด ๋ณด์‹ญ์‹œ์˜ค." }, "authentication": { - "default_unable_to_verify": "[Authentication] Something called the verifyUser method which is unavailable in the default authentication handler." + "default_unable_to_verify": "๐Ÿ‡บ๐Ÿ‡ธ[Authentication] Something called the verifyUser method which is unavailable in the default authentication handler." }, "no_commands_error": "๋””์ŠคํŒจ์น˜ ์ „์šฉ ๋ชจ๋“œ์—์„œ๋Š” ๋ช…๋ น์–ด๊ฐ€ ์ง€์›๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.", - "unhandled_request_error": "[Dispatch] Potential unhandled %s request: %s.", + "unhandled_request_error": "๐Ÿ‡บ๐Ÿ‡ธ[Dispatch] Potential unhandled %s request: %s.", "account": { "login_attempt": "[Dispatch] %s ํด๋ผ์ด์–ธํŠธ์—์„œ ๋กœ๊ทธ์ธ์„ ์‹œ๋„ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.", "login_success": "[Dispatch] %s ํด๋ผ์ด์–ธํŠธ๊ฐ€ %s๋กœ ๋กœ๊ทธ์ธ ํ–ˆ์Šต๋‹ˆ๋‹ค.", @@ -111,11 +111,10 @@ "status": { "enabled": "ํ™œ์„ฑํ™”๋จ", "disabled": "๋น„ํ™œ์„ฑํ™”๋จ", - "help": "Help", + "help": "๐Ÿ‡บ๐Ÿ‡ธHelp", "success": "์„ฑ๊ณต" }, "account": { - "command_usage": "์‚ฌ์šฉ๋ฒ•: account <์•„์ด๋””> [UID]", "invalid": "์ž˜๋ชป๋œ UID.", "exists": "์ด ์•„์ด๋”” ๋˜๋Š” UID๋ฅผ ๊ฐ€์ง„ ๊ณ„์ •์ด ์ด๋ฏธ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค.", "create": "UID %s๋กœ ๊ณ„์ •์ด ์ƒ์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.", @@ -124,7 +123,6 @@ "description": "์‚ฌ์šฉ์ž ๊ณ„์ •์„ ์ˆ˜์ •ํ•ฉ๋‹ˆ๋‹ค" }, "announce": { - "command_usage": "์‚ฌ์šฉ๋ฒ•: announce|a <\"tpl\" templateId|\"refresh\"|\"revoke\" templateId|content>", "send_success": "๊ณต์ง€ ๋ฐœ์†ก์— ์„ฑ๊ณตํ–ˆ์Šต๋‹ˆ๋‹ค, ์ทจ์†Œํ•˜๊ณ  ์‹ถ์œผ๋ฉด /a revoke %s๋ฅผ ์ž…๋ ฅํ•˜์„ธ์š”.", "refresh_success": "๊ณต์ง€ ๊ตฌ์„ฑํŒŒ์ผ์„ ์ƒˆ๋กœ ๊ณ ์ณค์Šต๋‹ˆ๋‹ค. [Total %s]", "revoke_done": "%s๊ณต์ง€ ์ทจ์†Œ ์‹œ๋„์ค‘.", @@ -132,36 +130,32 @@ "description": "๋ชจ๋“  ์˜จ๋ผ์ธ ํ”Œ๋ ˆ์ด์–ด๋กœ๋ถ€ํ„ฐ ๊ณต์ง€์‚ฌํ•ญ ๋ฐœํ‘œํ•˜๊ฑฐ๋‚˜, ์„œ๋ฒ„ ๊ณต์ง€์‚ฌํ•ญ์„ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค." }, "clear": { - "command_usage": "์‚ฌ์šฉ๋ฒ•: clear [lv<์ตœ๊ณ ๋ ˆ๋ฒจ>] [r<์ตœ๊ณ  ์ œ๋ จ๋ ˆ๋ฒจ>] [<์ตœ๊ณ  ํฌ๊ท€๋„>*]", "weapons": "%s์˜ ๋ฌด๊ธฐ๋ฅผ ์ดˆ๊ธฐํ™”ํ–ˆ์Šต๋‹ˆ๋‹ค.", "artifacts": "%s์˜ ์„ฑ์œ ๋ฌผ์„ ์ดˆ๊ธฐํ™”ํ–ˆ์Šต๋‹ˆ๋‹ค.", "materials": "%s์˜ ์žฌ๋ฃŒ๋ฅผ ์ดˆ๊ธฐํ™”ํ–ˆ์Šต๋‹ˆ๋‹ค.", "furniture": "%s์˜ ๊ฐ€๊ตฌ๋ฅผ ์ดˆ๊ธฐํ™”ํ–ˆ์Šต๋‹ˆ๋‹ค.", - "displays": "Cleared displays for %s.", - "virtuals": "Cleared virtuals for %s.", + "displays": "๐Ÿ‡บ๐Ÿ‡ธCleared displays for %s.", + "virtuals": "๐Ÿ‡บ๐Ÿ‡ธCleared virtuals for %s.", "everything": "%s์˜ ๋ชจ๋“  ์•„์ดํ…œ์„ ์ดˆ๊ธฐํ™”ํ–ˆ์Šต๋‹ˆ๋‹ค.", "description": "์ธ๋ฒคํ† ๋ ˆ์—์„œ ์ž ๊ธˆ๋œ ๋ฌผ๊ฑด์„ ์ œ์™ธํ•œ ํ•ญ๋ชฉ์„ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ 4์„ฑ, 1๋ ˆ๋ฒจ, 1์žฌ๋ จ๋ณด๋‹ค ๋‚ฎ์€๊ฒƒ๋งŒ์„ ๊ธฐ์ค€์œผ๋กœ ํ•˜์ง€๋งŒ, ๋” ๋†’๊ฒŒ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค." }, "coop": { - "usage": "์‚ฌ์šฉ๋ฒ•: coop [ํ˜ธ์ŠคํŠธ UID]", "success": "%s๊ฐ€ %s์˜ ์›”๋“œ์— ์†Œํ™˜๋˜์—ˆ์Šต๋‹ˆ๋‹ค.", "description": "๋ˆ„๊ตฐ๊ฐ€๋ฅผ ๋‹ค๋ฅธ ์‚ฌ๋žŒ์˜ ์›”๋“œ์— ์ฐธ์—ฌํ•˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค. ๋ชฉํ‘œ๊ฐ€ ์ง€์ •๋˜์ง€ ์•Š์œผ๋ฉด ๋‹น์‹ ์„ ๋‹ค์ธ ๋ชจ๋“œ๋กœ ์ง„์ž…์‹œํ‚ต๋‹ˆ๋‹ค." }, "enter_dungeon": { - "usage": "์‚ฌ์šฉ๋ฒ•: enterdungeon <๋˜์ „ID>", "changed": "%s๋˜์ „์œผ๋กœ ์ „ํ™˜๋˜์—ˆ์Šต๋‹ˆ๋‹ค.", "not_found_error": "๋˜์ „์ด ์กด์žฌํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.", "in_dungeon_error": "์ด๋ฏธ ๋‹น์‹ ์€ ๊ทธ ๋˜์ „์— ์žˆ์Šต๋‹ˆ๋‹ค.", "description": "๋˜์ „์— ์ง„์ž…ํ•ฉ๋‹ˆ๋‹ค." }, "give": { - "usage": "์‚ฌ์šฉ๋ฒ•: give <์•„์ดํ…œID|์บ๋ฆญํ„ฐID|\"all\"|\"weapons\"|\"mats\"|\"avatars\"> [x<๊ฐœ์ˆ˜>] [lv<๋ ˆ๋ฒจ>] [r<์ œ๋ จ๋ ˆ๋ฒจ>]", "usage_relic": "์‚ฌ์šฉ๋ฒ•: give <์„ฑ์œ ๋ฌผID> [mainPropID] [[,]]... [lv<๋ ˆ๋ฒจ 0-20>]", "illegal_relic": "์ด ์„ฑ์œ ๋ฌผID๋Š” ๋ธ”๋ž™๋ฆฌ์ŠคํŠธ ๋ฒ”์œ„์— ์žˆ์Šต๋‹ˆ๋‹ค. ์›ํ•˜๋Š” ID๊ฐ€ ์•„๋‹ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.", "given": "%s๊ฐœ์˜ %s๋ฅผ %s์—๊ฒŒ ์ง€๊ธ‰ํ–ˆ์Šต๋‹ˆ๋‹ค.", "given_with_level_and_refinement": "Give %s with level %s, refinement %s %s times to %s.", - "given_level": "Given %s with level %s %s times to %s.", - "given_avatar": "Given %s with level %s to %s.", + "given_level": "๐Ÿ‡บ๐Ÿ‡ธGiven %s with level %s %s times to %s.", + "given_avatar": "๐Ÿ‡บ๐Ÿ‡ธGiven %s with level %s to %s.", "giveall_success": "๋ชจ๋“  ์•„์ดํ…œ์ด ์„ฑ๊ณต์ ์œผ๋กœ ์ง€๊ธ‰๋˜์—ˆ์Šต๋‹ˆ๋‹ค.", "description": "์ง€์ •๋œ ํ”Œ๋ ˆ์ด์–ด๊ฐ€ ์•„์ดํ…œ์„ ํš๋“ํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋“  ๋ฌด๊ธฐ, ์บ๋ฆญํ„ฐ, ์žฌ๋ฃŒ๋ฅผ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๋งž์ถค ์„ฑ์œ ๋ฌผ์„ ์ œ๊ณตํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค." }, @@ -170,7 +164,6 @@ "description": "ํŒŒํ‹ฐ ๋‚ด ๋ชจ๋“  ์บ๋ฆญํ„ฐ๋ฅผ ์น˜์œ ํ•ฉ๋‹ˆ๋‹ค." }, "help": { - "usage": "์‚ฌ์šฉ๋ฒ•: ", "aliases": "๋ณ„์นญ: ", "available_commands": "์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋ช…๋ น์–ด: ", "tip_need_permission": "๊ถŒํ•œ: ", @@ -185,13 +178,11 @@ "description": "์ง€์ •๋œ ํ”Œ๋ ˆ์ด์–ด๋ฅผ ์„œ๋ฒ„์—์„œ ๊ฐ•์ œํ‡ด์žฅํ•ฉ๋‹ˆ๋‹ค (WIP)" }, "killall": { - "usage": "์‚ฌ์šฉ๋ฒ•: killall [ํ”Œ๋ ˆ์ด์–ดUID] [sceneID]", "scene_not_found_in_player_world": "ํ•ด๋‹น scene์— ํ”Œ๋ ˆ์ด์–ด๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.", "kill_monsters_in_scene": "%s๋งˆ๋ฆฌ์˜ ๋ชฌ์Šคํ„ฐ๊ฐ€ scene %s์—์„œ ๋ชจ๋‘ ์ฃฝ์—ˆ์Šต๋‹ˆ๋‹ค.", "description": "๋ชจ๋“  ์—”ํ‹ฐํ‹ฐ๋ฅผ ์ฃฝ์ž…๋‹ˆ๋‹ค." }, "killCharacter": { - "usage": "์‚ฌ์šฉ๋ฒ•: killcharacter [ํ”Œ๋ ˆ์ด์–ดID]", "success": "%s์˜ ์บ๋ฆญํ„ฐ๋ฅผ ์ฃฝ์˜€์Šต๋‹ˆ๋‹ค.", "description": "ํ”Œ๋ ˆ์ด์–ด์˜ ํ˜„์žฌ ์บ๋ฆญํ„ฐ๋ฅผ ์ฃฝ์ž…๋‹ˆ๋‹ค" }, @@ -206,7 +197,6 @@ "description": "์˜จ๋ผ์ธ ์ƒํƒœ์˜ ํ”Œ๋ ˆ์ด์–ด๋ฅผ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค." }, "permission": { - "usage": "์‚ฌ์šฉ๋ฒ•: permission <์•„์ด๋””> ", "add": "๊ถŒํ•œ์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.", "has_error": "์ด๋ฏธ ํ•ด๋‹น ๊ถŒํ•œ์ด ์žˆ์Šต๋‹ˆ๋‹ค!", "remove": "๊ถŒํ•œ์ด ์‚ญ์ œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.", @@ -219,7 +209,6 @@ "description": "์ขŒํ‘œ๋ฅผ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค" }, "quest": { - "usage": "์‚ฌ์šฉ๋ฒ•: quest [questID]", "added": "%s ํ€˜์ŠคํŠธ๊ฐ€ ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.", "finished": "%s ํ€˜์ŠคํŠธ๋ฅผ ๋งˆ์ณค์Šต๋‹ˆ๋‹ค.", "not_found": "ํ€˜์ŠคํŠธ๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.", @@ -237,15 +226,14 @@ "description": "ํ˜„์žฌ ์บ๋ฆญํ„ฐ์˜ ๋ณ„์ž๋ฆฌ๋ฅผ ์ดˆ๊ธฐํ™”ํ•ฉ๋‹ˆ๋‹ค, ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ๋ณด๋ ค๋ฉด ๋ช…๋ น์„ ์‚ฌ์šฉํ•œ ํ›„ ๋‹ค์‹œ ๋กœ๊ทธ์ธ ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค." }, "resetShopLimit": { - "usage": "์‚ฌ์šฉ๋ฒ•: resetshop ", "success": "๋ฆฌ์…‹ ์™„๋ฃŒ๋จ.", "description": "๋Œ€์ƒ ํ”Œ๋ ˆ์ด์–ด์˜ ์ƒ์ ์˜ ์ƒˆ๋กœ๊ณ ์นจ ์‹œ๊ฐ„์„ ์ดˆ๊ธฐํ™”ํ•ฉ๋‹ˆ๋‹ค" }, "sendMail": { - "usage": "์‚ฌ์šฉ๋ฒ•: sendmail [templateID]", + "give_usage": "๐Ÿ‡บ๐Ÿ‡ธUsage: give [amount] [level] [refinement]", "user_not_exist": "์•„์ด๋””๊ฐ€ '%s'์ธ ์‚ฌ์šฉ์ž๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.", "start_composition": "๋ฉ”์„ธ์ง€ ์ž‘์„ฑ ์‹œ์ž‘์ค‘.\n๊ณ„์†ํ•˜๋ ค๋ฉด '/sendmail '์„ ์ž…๋ ฅํ•˜์‹ญ์‹œ์˜ค.\n'/sendmail stop'๋„ ์–ธ์ œ๋“ ์ง€ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.", - "templates": "Mail templates coming soon implemented...", + "templates": "๐Ÿ‡บ๐Ÿ‡ธMail templates coming soon implemented...", "invalid_arguments": "์ž˜๋ชป๋œ ์ธ์ˆ˜์ž…๋‹ˆ๋‹ค.", "send_cancel": "๋ฉ”์„ธ์ง€ ์ „์†ก์ด ์ทจ์†Œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค", "send_done": "%s์—๊ฒŒ ๋ฉ”์„ธ์ง€๊ฐ€ ์ „์†ก๋˜์—ˆ์Šต๋‹ˆ๋‹ค!", @@ -257,35 +245,42 @@ "set_message_sender": "๋ฉ”์„ธ์ง€ ๋ฐœ์†ก์ž๊ฐ€ '%s'์œผ๋กœ ์„ค์ •๋˜์—ˆ์Šต๋‹ˆ๋‹ค.\n๊ณ„์†ํ•˜๋ ค๋ฉด '/sendmail <itemID|itemName|finish> [amount] [level]'์„ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค.", "send": "%s ์˜ %s์„ (๋ ˆ๋ฒจ %s)์„ ๋ฉ”์„ธ์ง€์— ์ฒจ๋ถ€ํ–ˆ์Šต๋‹ˆ๋‹ค.\n๊ณ„์† ํ•ญ๋ชฉ์„ ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜, '/sendmail finish'์„ ์‚ฌ์šฉํ•ด ๋ฉ”์„ธ์ง€๋ฅผ ๋ณด๋‚ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค..", "invalid_arguments_please_use": "์ž˜๋ชป๋œ ์ธ์ˆ˜์ž…๋‹ˆ๋‹ค.\n '/sendmail %s'์„ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค", - "title": "<title>", - "message": "<message>", - "sender": "<sender>", - "arguments": "<itemID|itemName|finish> [amount] [level]", + "title": "๐Ÿ‡บ๐Ÿ‡ธ<title>", + "message": "๐Ÿ‡บ๐Ÿ‡ธ<message>", + "sender": "๐Ÿ‡บ๐Ÿ‡ธ<sender>", + "arguments": "๐Ÿ‡บ๐Ÿ‡ธ<itemID|itemName|finish> [amount] [level]", "error": "์˜ค๋ฅ˜: Invalid construction stage %s. Check console for stacktrace.", "description": "์ง€์ •๋œ ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ฉ”์„ธ์ง€๋ฅผ ๋ณด๋ƒ…๋‹ˆ๋‹ค. ์ด ๋ช…๋ น์–ด์˜ ์‚ฌ์šฉ๋ฒ•์€ ์„ธ๋ถ€ ๋‚ด์šฉ์— ๋”ฐ๋ผ ๋‹ฌ๋ผ์ง‘๋‹ˆ๋‹ค." }, "sendMessage": { - "usage": "์‚ฌ์šฉ๋ฒ•: sendmessage <๋ฉ”์„ธ์ง€>", "success": "๋ฉ”์„ธ์ง€ ์ „์†ก ์„ฑ๊ณต.", "description": "์„œ๋ฒ„๊ฐ€ ํ”Œ๋ ˆ์ด์–ด์—๊ฒŒ ๋ฉ”์„ธ์ง€๋ฅผ ์ „์†กํ•ฉ๋‹ˆ๋‹ค. ๋ชฉํ‘œ๋ฅผ ์ง€์ •ํ•˜์ง€ ์•Š๊ณ  ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ, ์„œ๋ฒ„์˜ ๋ชจ๋“  ์ธ์›์—๊ฒŒ ๋ฉ”์„ธ์ง€๊ฐ€ ๋ฐœ์†ก๋ฉ๋‹ˆ๋‹ค." }, + "setConst": { + "range_error": "๐Ÿ‡บ๐Ÿ‡ธConstellation level must be between 0 and 6.", + "level_error": "๐Ÿ‡บ๐Ÿ‡ธInvalid constellation level.", + "fail": "๐Ÿ‡บ๐Ÿ‡ธFailed to set constellation.", + "failed_success": "๐Ÿ‡บ๐Ÿ‡ธConstellations for %s have been set to %s. Please reload scene to see changes.", + "success": "๐Ÿ‡บ๐Ÿ‡ธConstellations for %s have been set to %s.", + "description": "๐Ÿ‡บ๐Ÿ‡ธSets constellation level for your current active character" + }, "setFetterLevel": { - "usage": "์‚ฌ์šฉ๋ฒ•: setfetterlevel <๋ ˆ๋ฒจ>", "range_error": "ํ˜ธ๊ฐ๋„ ์ง€์ˆ˜๋Š” 0 ๊ณผ 10 ์‚ฌ์ด์— ์œ„์น˜ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.", "success": "ํ˜ธ๊ฐ๋„ ์ง€์ˆ˜๊ฐ€ %s๋กœ ์„ค์ •๋˜์—ˆ์Šต๋‹ˆ๋‹ค.", "level_error": "์ž˜๋ชป๋œ ํ˜ธ๊ฐ๋„ ์ง€์ˆ˜", "description": "ํŒŒํ‹ฐ ๋‚ด ์ž์‹ ์˜ ์บ๋ฆญํ„ฐ์˜ ํ˜ธ๊ฐ๋„๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค." }, "setProp": { - "usage": "์‚ฌ์šฉ๋ฒ•: setprop|prop <prop> <๊ฐ’>\n\t์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” <prop> ์ข…๋ฅ˜: godmode | nostamina | unlimitedenergy | abyss | worldlevel | bplevel\n\t(cont.) see PlayerProperty enum for other possible values, of form PROP_MAX_SPRING_VOLUME -> max_spring_volume", "description": "๊ณ„์ •์˜ ์†์„ฑ์„ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค. godmode๋“ฑ์ด ์ด๋ฅผ ํ†ตํ•ด ํ™œ์„ฑํ™” ๋  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๋‚˜์„ ๋น„๊ฒฝ์„ ์ž ๊ธˆํ•ด์ œํ•˜๊ฑฐ๋‚˜, ๊ธฐํ–‰์˜ ๋ ˆ๋ฒจ์„ ์กฐ์ •ํ•˜๋Š” ๋“ฑ์˜ ๋ช…๋ น๋˜ํ•œ ์ด๋ฅผ ํ†ตํ•ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค." }, "setStats": { - "usage": "์‚ฌ์šฉ๋ฒ•: setstats|stats <stat> <๊ฐ’>\n\t์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” <stat> ์ข…๋ฅ˜: hp | maxhp | def | atk | em | er | crate | cdmg | cdr | heal | heali | shield | defi\n\t(cont.) Elemental DMG Bonus: epyro | ecryo | ehydro | egeo | edendro | eelectro | ephys\n\t(cont.) Elemental RES: respyro | rescryo | reshydro | resgeo | resdendro | reselectro | resphys\n", - "description": "๋‹น์‹ ์˜ ํ˜„์žฌ ์บ๋ฆญํ„ฐ์˜ ์Šคํ…Ÿ๋“ค์„ ์กฐ์ ˆํ•ฉ๋‹ˆ๋‹ค." + "description": "๋‹น์‹ ์˜ ํ˜„์žฌ ์บ๋ฆญํ„ฐ์˜ ์Šคํ…Ÿ๋“ค์„ ์กฐ์ ˆํ•ฉ๋‹ˆ๋‹ค.", + "locked_to": "๐Ÿ‡บ๐Ÿ‡ธ%s locked to %s.", + "locked_for_to": "๐Ÿ‡บ๐Ÿ‡ธ%s for %s locked to %s.", + "unlocked": "๐Ÿ‡บ๐Ÿ‡ธ%s unlocked.", + "unlocked_for": "๐Ÿ‡บ๐Ÿ‡ธ%s for %s unlocked." }, "spawn": { - "usage": "์‚ฌ์šฉ๋ฒ•: spawn <์—”ํ‹ฐํ‹ฐID> [๊ฐœ์ฒด ์ˆ˜] [level(๋ชฌ์Šคํ„ฐ๋งŒ)] [<x> <y> <z>(๋ชฌ์Šคํ„ฐ๋งŒ ๊ฐ€๋Šฅ, ์„ ํƒํ˜•)]", "success": " %s ๊ฐœ์˜ %s ๋ฅผ ์†Œํ™˜ํ•˜๋Š”๋ฐ ์„ฑ๊ณตํ–ˆ์Šต๋‹ˆ๋‹ค.", "limit_reached": "scene๋‹น ์†Œํ™˜ ์—”ํ‹ฐํ‹ฐ ํ•œ๊ณ„์ž…๋‹ˆ๋‹ค. ๋Œ€์‹  %s ๊ฐœ์˜ ์—”ํ‹ฐํ‹ฐ๋ฅผ ์†Œํ™˜ํ•ฉ๋‹ˆ๋‹ค.", "description": "์—”ํ‹ฐํ‹ฐ๋ฅผ ๋‹น์‹  ๊ทผ์ฒ˜์— ์†Œํ™˜ํ•ฉ๋‹ˆ๋‹ค" @@ -295,16 +290,10 @@ "description": "์„œ๋ฒ„๋ฅผ ์ค‘์ง€ํ•ฉ๋‹ˆ๋‹ค" }, "talent": { - "usage_1": "ํŠน์„ฑ ๋ ˆ๋ฒจ์„ ์ €์ž˜ํ•˜๊ธฐ์œ„ํ•œ ๋ฐฉ๋ฒ•์œผ๋กœ๋Š”: /talent set <ํŠน์„ฑID> <๊ฐ’>", - "usage_2": "ํŠน์„ฑ ๋ ˆ๋ฒจ์„ ์กฐ์ ˆํ•˜๋Š” ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์œผ๋กœ๋Š”: /talent <n ๋˜๋Š” e ๋˜๋Š” q> <๊ฐ’>", - "usage_3": "ํŠน์„ฑ ID๋ฅผ ๊ฐ€์ง€๊ธฐ ์œ„ํ•ด์„œ๋Š”: /talent getid", "lower_16": "๋ถˆ๋ถ„๋ช…ํ•œ ํŠน์„ฑ ๋ ˆ๋ฒจ. ํŠน์„ฑ์˜ ๋ ˆ๋ฒจ์€ 16 ๋ฏธ๋งŒ์ด์—ฌ์•ผํ•ฉ๋‹ˆ๋‹ค.", - "set_id": "ํ‹€์„ฑ์„ %s ๋กœ ์กฐ์ •ํ•ฉ๋‹ˆ๋‹ค.", - "set_atk": "์ผ๋ฐ˜ ๊ณต๊ฒฉ ํŠน์„ฑ์„ %s ๋กœ ์กฐ์ •ํ•ฉ๋‹ˆ๋‹ค.", - "set_e": "ํŠน์„ฑ E๋ฅผ %s ๋กœ ์กฐ์ •ํ•ฉ๋‹ˆ๋‹ค.", - "set_q": "ํŠน์„ฑ Q๋ฅผ %s ๋กœ ์กฐ์ •ํ•ฉ๋‹ˆ๋‹ค.", + "set_id": "๐Ÿ‡บ๐Ÿ‡ธSet talent %s - \"%s\" to %s.", + "id_desc": "๐Ÿ‡บ๐Ÿ‡ธTalent %s - \"%s\" - \"%s\"", "invalid_skill_id": "์ž˜๋ชป๋œ ์Šคํ‚ฌID.", - "set_this": "์ด ์Šคํ‚ฌ์˜ ๋ ˆ๋ฒจ์„ %s๋กœ ์กฐ์ •ํ•ฉ๋‹ˆ๋‹ค.", "invalid_level": "๋ถˆ๋ถ„๋ช…ํ•œ ์Šคํ‚ฌ ๋ ˆ๋ฒจ.", "normal_attack_id": "๊ธฐ๋ณธ๊ณต๊ฒฉ ID %s.", "e_skill_id": "E ์Šคํ‚ฌ ID %s.", @@ -312,17 +301,13 @@ "description": "ํ˜„์žฌ ์บ๋ฆญํ„ฐ์˜ ํŠน์„ฑ ๋ ˆ๋ฒจ์„ ์กฐ์ •ํ•ฉ๋‹ˆ๋‹ค" }, "team": { - "usage": "์‚ฌ์šฉ๋ฒ•: team <add|remove|set> [์บ๋ฆญํ„ฐID,...] [index|first|last|index-index,...]", "invalid_usage": "์ž˜๋ชป๋œ ์‚ฌ์šฉ.", - "add_usage": "Usage (add): team add <์บ๋ฆญํ„ฐID,...> [index]", "invalid_index": "์ž˜๋ชป๋œ ๋ชฉ์ฐจ.", "add_too_much": "ํŒ€์— ๋„ฃ์„ ์ˆ˜ ์žˆ๋Š” ์บ๋ฆญํ„ฐ ์ˆ˜์˜ ์ตœ๋Œ€๋Š” %d ๋ช… ์ž…๋‹ˆ๋‹ค.", "failed_to_add_avatar": "์ถ”๊ฐ€ํ•˜๋Š”๋ฐ ์‹คํŒจํ–ˆ์Šต๋‹ˆ๋‹ค ์บ๋ฆญํ„ฐ ID %s.", - "remove_usage": "Usage (remove): team remove <index|first|last|index-index,...>", "failed_to_parse_index": "๋ถ„์„์— ์‹คํŒจํ•จ index: %s", "remove_too_much": "ํŒ€์—๋Š” ์ตœ์†Œ 1๋ช…์˜ ์บ๋ฆญํ„ฐ๊ฐ€ ํŽธ์„ฑ ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.", - "ignore_index": "Ignored index(es): %s", - "set_usage": "Usage (set): team set <index> <์บ๋ฆญํ„ฐID>", + "ignore_index": "๐Ÿ‡บ๐Ÿ‡ธIgnored index(es): %s", "index_out_of_range": "์ง€์ •๋œ ๋ชฉ์ฐจ๋Š” ๋ฒ”์œ„ ๋ฐ–์— ์žˆ์Šต๋‹ˆ๋‹ค.", "failed_parse_avatar_id": "๋ถ„์„์— ์‹คํŒจํ•œ ์บ๋ฆญํ„ฐ ID: %s", "avatar_already_in_team": "ํ•ด๋‹น ์บ๋ฆญํ„ฐ๋Š” ์ด๋ฏธ ํŒ€์— ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.", @@ -335,9 +320,6 @@ "description": "๋‹น์‹ ์˜ ์›”๋“œ์— ์žˆ๋Š” ๋ชจ๋“  ํ”Œ๋ ˆ์ด์–ด๋“ค์„ ๋‹น์‹ ์˜ ์œ„์น˜๋กœ ์ด๋™์‹œํ‚ต๋‹ˆ๋‹ค." }, "teleport": { - "usage_server": "์‚ฌ์šฉ๋ฒ•: tp @<ํ”Œ๋ ˆ์ด์–ดID> <x> <y> <z> [sceneID]", - "usage": "์‚ฌ์šฉ๋ฒ•: tp [@<ํ”Œ๋ ˆ์ด์–ดID>] <x> <y> <z> [sceneID]", - "specify_player_id": "ํ”Œ๋ ˆ์ด์–ด ID๋ฅผ ์ธก์ •ํ•˜์‹ญ์‹œ์˜ค.", "invalid_position": "์œ„์น˜๊ฐ€ ์ž˜๋ชป๋˜์—ˆ์Šต๋‹ˆ๋‹ค.", "exists_error": "scene๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค..", "success": " %s ์„(๋ฅผ) %s, %s, %s ๋กœ ์ด๋™์‹œ์ผฐ์Šต๋‹ˆ๋‹ค. scene %s.", @@ -349,7 +331,6 @@ "description": "๋‚ ์”จ ID์™€ ๊ธฐํ›„๋ฅผ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค. ๋‚ ์”จ ID๋“ค์€ ./Resources/ExcelBinOutput/WeatherExcelConfigData.json์—์„œ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.\n๋‚ ์”จ ํƒ€์ž…: sunny, cloudy, rain, thunderstorm, snow, mist" }, "ban": { - "command_usage": "์‚ฌ์šฉ๋ฒ•: ban <@ํ”Œ๋ ˆ์ด์–ดID> [timestamp] [reason]", "success": "์„ฑ๊ณต.", "failure": "์‹คํŒจ, ํ”Œ๋ ˆ์ด์–ด๊ฐ€ ๋ฐœ๊ฒฌ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.", "invalid_time": "timestamp๋ฅผ ๋ถ„์„ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.", @@ -360,7 +341,6 @@ "description": "ํ”Œ๋ ˆ์ด์–ด์˜ ๋ชจ๋“  ์˜คํ”ˆ ์Šคํƒฏ์„ ์ž ๊ธˆ ํ•ด์ œํ•ฉ๋‹ˆ๋‹ค." }, "unban": { - "command_usage": "์‚ฌ์šฉ๋ฒ•: unban <@ํ”Œ๋ ˆ์ด์–ดID>", "success": "์„ฑ๊ณต.", "failure": "์‹คํŒจ, ํ”Œ๋ ˆ์ด์–ด๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.", "description": "ํ”Œ๋ ˆ์ด์–ด์— ๋Œ€ํ•œ ๋ฐด์„ ํ•ด์ œํ•ฉ๋‹ˆ๋‹ค" @@ -387,7 +367,7 @@ "title_items": "์•„์ดํ…œ", "title_scenes": "์žฅ๋ฉด", "title_monsters": "๋ชฌ์Šคํ„ฐ", - "header_id": "Id", + "header_id": "๐Ÿ‡บ๐Ÿ‡ธId", "header_command": "๋ช…๋ น๋Ÿฌ", "header_description": "์„ค๋ช…", "header_avatar": "์บ๋ฆญํ„ฐ", @@ -396,9 +376,9 @@ "header_monster": "๋ชฌ์Šคํ„ฐ" }, "index": { - "title": "Documentation", - "handbook": "GM Handbook", - "gacha_mapping": "Gacha mapping JSON" + "title": "๐Ÿ‡บ๐Ÿ‡ธDocumentation", + "handbook": "๐Ÿ‡บ๐Ÿ‡ธGM Handbook", + "gacha_mapping": "๐Ÿ‡บ๐Ÿ‡ธGacha mapping JSON" } } } diff --git a/src/main/resources/languages/pl-PL.json b/src/main/resources/languages/pl-PL.json index d313045f7..0b3c5e153 100644 --- a/src/main/resources/languages/pl-PL.json +++ b/src/main/resources/languages/pl-PL.json @@ -291,10 +291,8 @@ }, "talent": { "lower_16": "Bล‚ฤ™dny poziom talentu. Poziom ten powinien byฤ‡ mniejszy niลผ 16.", - "set_id": "Ustawiono poziom talentu na %s.", - "set_atk": "Ustawiono poziom talentu Atak Podstawowy na %s.", - "set_e": "Ustawiono poziom talentu E na %s.", - "set_q": "Ustawiono poziom talentu Q na %s.", + "set_id": "๐Ÿ‡บ๐Ÿ‡ธSet talent %s - \"%s\" to %s.", + "id_desc": "๐Ÿ‡บ๐Ÿ‡ธTalent %s - \"%s\" - \"%s\"", "invalid_skill_id": "Bล‚ฤ™dne ID umiejฤ™tnoล›ci.", "invalid_level": "Bล‚ฤ™dny poziom talentu.", "normal_attack_id": "ID podstawowego ataku: %s.", @@ -363,7 +361,7 @@ }, "documentation": { "handbook": { - "title": "GM Handbook", + "title": "๐Ÿ‡บ๐Ÿ‡ธGM Handbook", "title_commands": "Komendy", "title_avatars": "Awatary", "title_items": "Przedmioty", @@ -379,7 +377,7 @@ }, "index": { "title": "Dokumentacja", - "handbook": "GM Handbook", + "handbook": "๐Ÿ‡บ๐Ÿ‡ธGM Handbook", "gacha_mapping": "Losowanie w formacie JSON" } } diff --git a/src/main/resources/languages/ro-RO.json b/src/main/resources/languages/ro-RO.json index b83a3f2da..5792f78f6 100644 --- a/src/main/resources/languages/ro-RO.json +++ b/src/main/resources/languages/ro-RO.json @@ -291,10 +291,8 @@ }, "talent": { "lower_16": "Nivel de talent nevalabil. Nivelul trebuie sฤƒ fie mai mic ca 16.", - "set_id": "Setat nivelul ca %s.", - "set_atk": "Setat talentul Normal Attack ca %s.", - "set_e": "Setat talentul E ca %s.", - "set_q": "Setat talentul Q ca %s.", + "set_id": "๐Ÿ‡บ๐Ÿ‡ธSet talent %s - \"%s\" to %s.", + "id_desc": "๐Ÿ‡บ๐Ÿ‡ธTalent %s - \"%s\" - \"%s\"", "invalid_skill_id": "Skill ID nevalabil.", "invalid_level": "Nivel de talent nevalabil.", "normal_attack_id": "๐Ÿ‡บ๐Ÿ‡ธNormal Attack ID %s.", @@ -383,4 +381,4 @@ "gacha_mapping": "๐Ÿ‡บ๐Ÿ‡ธGacha mapping JSON" } } -} \ No newline at end of file +} diff --git a/src/main/resources/languages/ru-RU.json b/src/main/resources/languages/ru-RU.json index 62fa966cc..0e7a7495f 100644 --- a/src/main/resources/languages/ru-RU.json +++ b/src/main/resources/languages/ru-RU.json @@ -291,10 +291,8 @@ }, "talent": { "lower_16": "ะะตะบะพั€ั€ะตะบั‚ะฝั‹ะน ัƒั€ะพะฒะตะฝัŒ ั‚ะฐะปะฐะฝั‚ะฐ. ะฃั€ะพะฒะตะฝัŒ ะดะพะปะถะตะฝ ะฑั‹ั‚ัŒ ะฝะธะถะต 16.", - "set_id": "ะฃั€ะพะฒะตะฝัŒ ั‚ะฐะปะฐะฝั‚ะฐ ัั‚ะฐะป ั€ะฐะฒะตะฝ %s.", - "set_atk": "ะฃั€ะพะฒะตะฝัŒ ั‚ะฐะปะฐะฝั‚ะฐ ัั‚ะฐะฝะดะฐั€ั‚ะฝะพะน ะฐั‚ะฐะบะธ ัั‚ะฐะป ั€ะฐะฒะตะฝ %s.", - "set_e": "ะฃั€ะพะฒะตะฝัŒ ั‚ะฐะปะฐะฝั‚ะฐ ัะฟะพัะพะฑะฝะพัั‚ะธ ะฝะฐ E ัั‚ะฐะป ั€ะฐะฒะตะฝ %s.", - "set_q": "ะฃั€ะพะฒะตะฝัŒ ั‚ะฐะปะฐะฝั‚ะฐ ัะฟะพัะพะฑะฝะพัั‚ะธ ะฝะฐ Q ัั‚ะฐะป ั€ะฐะฒะตะฝ %s.", + "set_id": "๐Ÿ‡บ๐Ÿ‡ธSet talent %s - \"%s\" to %s.", + "id_desc": "๐Ÿ‡บ๐Ÿ‡ธTalent %s - \"%s\" - \"%s\"", "invalid_skill_id": "ะะตะบะพั€ั€ะตะบั‚ะฝั‹ะน ID ัะฟะพัะพะฑะฝะพัั‚ะธ.", "invalid_level": "ะะตะบะพั€ั€ะตะบั‚ะฝั‹ะน ัƒั€ะพะฒะตะฝัŒ ั‚ะฐะปะฐะฝั‚ะฐ.", "normal_attack_id": "ID ัั‚ะฐะฝะดะฐั€ั‚ะฝะพะน ะฐั‚ะฐะบะธ: %s.", diff --git a/src/main/resources/languages/zh-CN.json b/src/main/resources/languages/zh-CN.json index 7590e1dcd..7548d7f70 100644 --- a/src/main/resources/languages/zh-CN.json +++ b/src/main/resources/languages/zh-CN.json @@ -291,10 +291,8 @@ }, "talent": { "lower_16": "ๆ— ๆ•ˆ็š„ๅคฉ่ต‹็ญ‰็บง๏ผŒๅคฉ่ต‹็ญ‰็บงๅบ”ๅฐไบŽ็ญ‰ไบŽ15ใ€‚", - "set_id": "ๅฐ†ๅคฉ่ต‹็ญ‰็บง่ฎพไธบ %sใ€‚", - "set_atk": "ๅฐ†ๆ™ฎ้€šๆ”ปๅ‡ป็ญ‰็บง่ฎพไธบ %sใ€‚", - "set_e": "ๅฐ†ๅ…ƒ็ด ๆˆ˜ๆŠ€็ญ‰็บง่ฎพไธบ %sใ€‚", - "set_q": "ๅฐ†ๅ…ƒ็ด ็ˆ†ๅ‘็ญ‰็บง่ฎพไธบ %sใ€‚", + "set_id": "๐Ÿ‡บ๐Ÿ‡ธSet talent %s - \"%s\" to %s.", + "id_desc": "๐Ÿ‡บ๐Ÿ‡ธTalent %s - \"%s\" - \"%s\"", "invalid_skill_id": "ๆ— ๆ•ˆ็š„ๆŠ€่ƒฝIDใ€‚", "invalid_level": "ๆ— ๆ•ˆ็š„ๅคฉ่ต‹็ญ‰็บงใ€‚", "normal_attack_id": "ๆ™ฎ้€šๆ”ปๅ‡ป็š„ ID ไธบ %sใ€‚", diff --git a/src/main/resources/languages/zh-TW.json b/src/main/resources/languages/zh-TW.json index ccfd1fc92..c5d830039 100644 --- a/src/main/resources/languages/zh-TW.json +++ b/src/main/resources/languages/zh-TW.json @@ -291,10 +291,8 @@ }, "talent": { "lower_16": "็„กๆ•ˆ็š„ๅคฉ่ณฆ็ญ‰็ดš๏ผŒๆŠ€่ƒฝ็ญ‰็ดšๆ‡‰ไฝŽๆ–ผ 16ใ€‚", - "set_id": "ๅฐ‡ๅคฉ่ณฆ็ญ‰็ดš่จญ็‚บ%sใ€‚", - "set_atk": "ๅฐ‡ๆ™ฎ้€šๆ”ปๆ“Š็ญ‰็ดš่จญ็‚บ %sใ€‚", - "set_e": "่จญๅฎšๅ…ƒ็ด ๆˆฐๆŠ€็š„ๅคฉ่ณฆ็ญ‰็ดš่‡ณ %sใ€‚", - "set_q": "่จญๅฎšๅ…ƒ็ด ็ˆ†็™ผ็š„ๅคฉ่ณฆ็ญ‰็ดš่‡ณ %sใ€‚", + "set_id": "๐Ÿ‡บ๐Ÿ‡ธSet talent %s - \"%s\" to %s.", + "id_desc": "๐Ÿ‡บ๐Ÿ‡ธTalent %s - \"%s\" - \"%s\"", "invalid_skill_id": "็„กๆ•ˆ็š„ๆŠ€่ƒฝIDใ€‚", "invalid_level": "็„กๆ•ˆ็š„ๅคฉ่ณฆ็ญ‰็ดšใ€‚", "normal_attack_id": "ๆ™ฎ้€šๆ”ปๆ“Š็š„ ID ็‚บ %sใ€‚", @@ -383,4 +381,4 @@ "gacha_mapping": "็ฅˆ้ก˜็‰ฉๅ“ๆ˜ ๅฐ„ๅˆฐJSONไธŠ" } } -} \ No newline at end of file +}