Unhardcoding Custom Messages
Forum rules
READ NOW: L2j Forums Rules of Conduct
READ NOW: L2j Forums Rules of Conduct
- UnAfraid
- L2j Veteran
- Posts: 4199
- Joined: Mon Jul 23, 2007 4:25 pm
- Location: Bulgaria
- Contact:
Re: Unhardcoding Custom Messages
Good idea actualy ^^
You can found easly hardcoded msgs via eclipse ctrl + h .sendMessage(" filter *.java and u'll get em all ^^
also i suggest u to use the way of SystemMessageId instead of using only an some primitive int ^^
You can found easly hardcoded msgs via eclipse ctrl + h .sendMessage(" filter *.java and u'll get em all ^^
also i suggest u to use the way of SystemMessageId instead of using only an some primitive int ^^
- tukune
- Posts: 533
- Joined: Sun Mar 29, 2009 2:35 pm
- Location: Japan
Re: Unhardcoding Custom Messages
I'm sad. Are you trying to kill us Asian ppl? 

-
- Posts: 89
- Joined: Mon Sep 15, 2008 8:51 am
Re: Unhardcoding Custom Messages
Seriously, none of your posts in this thread make any bloody sense. So please stop postingtukune wrote:I'm sad. Are you trying to kill us Asian ppl?

- LaraCroft
- Posts: 360
- Joined: Sat Aug 08, 2009 1:37 am
Re: Unhardcoding Custom Messages
Very nice idea...
I'll try to translate to pt-br
Anyone can share this??

I'll try to translate to pt-br

Anyone can share this??

!!!knowledge and intelligence must be shared!!!
- UnAfraid
- L2j Veteran
- Posts: 4199
- Joined: Mon Jul 23, 2007 4:25 pm
- Location: Bulgaria
- Contact:
Re: Unhardcoding Custom Messages
This is my idea but not tested and not fully completed..
Cuz i got lazy to do Enums and i did it like Zoey76 began with ids xD
Core:
[diff]Index: java/com/l2jserver/gameserver/instancemanager/CustomMessages.java===================================================================--- java/com/l2jserver/gameserver/instancemanager/CustomMessages.java (revision 0)+++ java/com/l2jserver/gameserver/instancemanager/CustomMessages.java (revision 0)@@ -0,0 +1,121 @@+/*+ * This program is free software: you can redistribute it and/or modify it under+ * the terms of the GNU General Public License as published by the Free Software+ * Foundation, either version 3 of the License, or (at your option) any later+ * version.+ * + * This program is distributed in the hope that it will be useful, but WITHOUT+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS+ * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more+ * details.+ * + * You should have received a copy of the GNU General Public License along with+ * this program. If not, see <http://www.gnu.org/licenses/>.+ */+package com.l2jserver.gameserver.instancemanager;++import java.io.File;+import java.util.List;+import java.util.Map;+import java.util.logging.Level;+import java.util.logging.Logger;++import javolution.util.FastList;+import javolution.util.FastMap;++import com.l2jserver.Config;+import com.l2jserver.gameserver.model.CustomLanguage;+++/**+ * @author UnAfraid+ *+ */+public class CustomMessages+{+ private final Logger _log = Logger.getLogger(getClass().getName());+ private Map<String, CustomLanguage> _languages;+ + public CustomMessages()+ {+ _languages = new FastMap<String, CustomLanguage>();+ load();+ }+ + public void load()+ {+ List<File> files = new FastList<File>();+ hashFiles("lang", files);+ for (File file : files)+ {+ try+ {+ String name = file.getName().replaceAll(".xml", "");+ _languages.put(name, new CustomLanguage(file));+ _log.log(Level.INFO, getClass().getSimpleName() + ": Loading Custom language file: " + name);+ }+ catch (Exception e)+ {+ _log.log(Level.SEVERE, "Error loading file " + file, e);+ continue;+ }+ }+ + _log.log(Level.SEVERE, getClass().getSimpleName() + ": Loaded " + _languages.size() + " Custom languages");+ }+ + public String getMessage(int id, String language)+ {+ String msg = null;+ if (_languages.containsKey(language))+ {+ CustomLanguage lang = _languages.get(language);+ msg = lang.getMessage(id);+ if (msg == null)+ {+ _log.log(Level.SEVERE, getClass().getSimpleName() + ": Missing custom language id: " + id + " for language: " + language);+ if (Config.DEBUG)+ new Throwable().printStackTrace();+ + if (_languages.containsKey(Config.L2JMOD_MULTILANG_DEFAULT))+ msg = _languages.get(Config.L2JMOD_MULTILANG_DEFAULT).getMessage(id);+ }+ }+ else+ {+ _log.log(Level.SEVERE, getClass().getSimpleName() + ": Missing custom language: " + language);+ if (Config.DEBUG)+ new Throwable().printStackTrace();+ msg = "";+ }+ return msg;+ }+ + private final void hashFiles(String dirname, List<File> hash)+ {+ File dir = new File(Config.DATAPACK_ROOT, "data/" + dirname);+ if (!dir.exists())+ {+ _log.config("Dir " + dir.getAbsolutePath() + " not exists");+ return;+ }+ + File[] files = dir.listFiles();+ for (File f : files)+ {+ if (f.getName().endsWith(".xml"))+ hash.add(f);+ }+ }+ + public static CustomMessages getInstance()+ {+ return SingletonHolder._instance;+ }+ + @SuppressWarnings("synthetic-access")+ private static class SingletonHolder+ {+ protected static final CustomMessages _instance = new CustomMessages();+ }+}Index: java/com/l2jserver/gameserver/GameServer.java===================================================================--- java/com/l2jserver/gameserver/GameServer.java (revision 4488)+++ java/com/l2jserver/gameserver/GameServer.java (working copy)@@ -92,6 +92,7 @@ import com.l2jserver.gameserver.instancemanager.ClanHallManager; import com.l2jserver.gameserver.instancemanager.CoupleManager; import com.l2jserver.gameserver.instancemanager.CursedWeaponsManager;+import com.l2jserver.gameserver.instancemanager.CustomMessages; import com.l2jserver.gameserver.instancemanager.DayNightSpawnManager; import com.l2jserver.gameserver.instancemanager.DimensionalRiftManager; import com.l2jserver.gameserver.instancemanager.FortManager;@@ -307,6 +308,7 @@ HelperBuffTable.getInstance(); AugmentationData.getInstance(); CursedWeaponsManager.getInstance();+ CustomMessages.getInstance(); printSection("Scripts"); QuestManager.getInstance();Index: java/com/l2jserver/gameserver/model/CustomLanguage.java===================================================================--- java/com/l2jserver/gameserver/model/CustomLanguage.java (revision 0)+++ java/com/l2jserver/gameserver/model/CustomLanguage.java (revision 0)@@ -0,0 +1,108 @@+/*+ * This program is free software: you can redistribute it and/or modify it under+ * the terms of the GNU General Public License as published by the Free Software+ * Foundation, either version 3 of the License, or (at your option) any later+ * version.+ * + * This program is distributed in the hope that it will be useful, but WITHOUT+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS+ * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more+ * details.+ * + * You should have received a copy of the GNU General Public License along with+ * this program. If not, see <http://www.gnu.org/licenses/>.+ */+package com.l2jserver.gameserver.model;++import java.io.File;+import java.util.Map;+import java.util.logging.Level;+import java.util.logging.Logger;++import javax.xml.parsers.DocumentBuilderFactory;++import javolution.util.FastMap;++import org.w3c.dom.Document;+import org.w3c.dom.NamedNodeMap;+import org.w3c.dom.Node;++/**+ * @author UnAfraid+ *+ */+public class CustomLanguage+{+ private final Logger _log = Logger.getLogger(getClass().getName());+ Map<Integer, String> _messages;+ + public CustomLanguage(File file)+ {+ _messages = new FastMap<Integer, String>();+ load(file);+ }+ + public String getMessage(int id)+ {+ if (_messages.containsKey(id))+ return _messages.get(id);+ else+ return null;+ }+ + public void load(File file)+ {+ _messages.clear();+ DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();+ factory.setValidating(false);+ factory.setIgnoringComments(true);+ Document doc = null;+ if (file.exists())+ {+ try+ {+ doc = factory.newDocumentBuilder().parse(file);+ }+ catch (Exception e)+ {+ _log.log(Level.WARNING, "Could not parse " + file.getName() + " file: " + e.getMessage(), e);+ }+ + for (Node n = doc.getFirstChild(); n != null; n = n.getNextSibling())+ {+ if ("list".equalsIgnoreCase(n.getNodeName()))+ {+ for (Node d = n.getFirstChild(); d != null; d = d.getNextSibling())+ {+ if ("msg".equalsIgnoreCase(d.getNodeName()))+ {+ NamedNodeMap attrs = d.getAttributes();+ Node att;+ int id = 0;+ String text = null;+ + att = attrs.getNamedItem("id");+ if (att == null)+ {+ _log.severe(getClass().getSimpleName() + " Missing id, skipping");+ continue;+ }+ id = Integer.parseInt(att.getNodeValue());+ + att = attrs.getNamedItem("text");+ if (att == null)+ {+ _log.severe(getClass().getSimpleName() + " Missing text, skipping");+ continue;+ }+ text = att.getNodeValue();+ + _messages.put(id, text);+ }+ }+ }+ }+ }+ _log.log(Level.SEVERE, getClass().getSimpleName() + ": Loaded: [" + file.getName().replaceAll(".xml", "") + "] " + _messages.size() + " Custom Messages");+ }+}Index: java/com/l2jserver/gameserver/model/actor/instance/L2PcInstance.java===================================================================--- java/com/l2jserver/gameserver/model/actor/instance/L2PcInstance.java (revision 4488)+++ java/com/l2jserver/gameserver/model/actor/instance/L2PcInstance.java (working copy)@@ -79,6 +79,7 @@ import com.l2jserver.gameserver.instancemanager.CastleManager; import com.l2jserver.gameserver.instancemanager.CoupleManager; import com.l2jserver.gameserver.instancemanager.CursedWeaponsManager;+import com.l2jserver.gameserver.instancemanager.CustomMessages; import com.l2jserver.gameserver.instancemanager.DimensionalRiftManager; import com.l2jserver.gameserver.instancemanager.DuelManager; import com.l2jserver.gameserver.instancemanager.FortManager;@@ -5263,10 +5264,10 @@ if (answer == 1) { CoupleManager.getInstance().createCouple(ptarget, L2PcInstance.this);- ptarget.sendMessage("Request to Engage has been >ACCEPTED<");+ ptarget.sendMessage(CustomMessages.getInstance().getMessage(5, ptarget.getHtmlPrefix())); // Request to Engage has been >ACCEPTED< } else- ptarget.sendMessage("Request to Engage has been >DENIED<!");+ ptarget.sendMessage(CustomMessages.getInstance().getMessage(6, ptarget.getHtmlPrefix())); // Request to Engage has been >DENIED<! } } }Index: java/com/l2jserver/gameserver/communitybbs/Manager/RegionBBSManager.java===================================================================--- java/com/l2jserver/gameserver/communitybbs/Manager/RegionBBSManager.java (revision 4488)+++ java/com/l2jserver/gameserver/communitybbs/Manager/RegionBBSManager.java (working copy)@@ -26,6 +26,7 @@ import com.l2jserver.Config; import com.l2jserver.gameserver.GameServer;+import com.l2jserver.gameserver.instancemanager.CustomMessages; import com.l2jserver.gameserver.model.BlockList; import com.l2jserver.gameserver.model.L2World; import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;@@ -192,7 +193,7 @@ try {- + CustomMessages msgs = CustomMessages.getInstance(); L2PcInstance receiver = L2World.getInstance().getPlayer(ar2); if (receiver == null) {@@ -203,7 +204,7 @@ } if (Config.JAIL_DISABLE_CHAT && receiver.isInJail()) {- activeChar.sendMessage("Player is in jail.");+ activeChar.sendMessage(msgs.getMessage(1, activeChar.getHtmlPrefix())); // Player is in jail. return; } if (receiver.isChatBanned())@@ -208,7 +209,7 @@ } if (receiver.isChatBanned()) {- activeChar.sendMessage("Player is chat banned.");+ activeChar.sendMessage(msgs.getMessage(2, activeChar.getHtmlPrefix())); // Player is chat banned. return; } if (activeChar.isInJail() && Config.JAIL_DISABLE_CHAT)@@ -213,7 +214,7 @@ } if (activeChar.isInJail() && Config.JAIL_DISABLE_CHAT) {- activeChar.sendMessage("You can not chat while in jail.");+ activeChar.sendMessage(msgs.getMessage(3, activeChar.getHtmlPrefix())); // You can not chat while in jail. return; } if (activeChar.isChatBanned())@@ -218,7 +219,7 @@ } if (activeChar.isChatBanned()) {- activeChar.sendMessage("You are banned from using chat");+ activeChar.sendMessage(msgs.getMessage(4, activeChar.getHtmlPrefix())); // You are banned from using chat return; } [/diff]
DP:
[diff]Index: data/lang/en.xml===================================================================--- data/lang/en.xml (revision 0)+++ data/lang/en.xml (revision 0)@@ -0,0 +1,7 @@+<?xml version="1.0" encoding="UTF-8"?>+<list>+ <msg id="1" text="Player is in jail." />+ <msg id="2" text="Player is chat banned." />+ <msg id="3" text="You can not chat while in jail." />+ <msg id="4" text="You are banned from using chat." />+</list>\ No newline at end of fileIndex: data/lang/ru.xml===================================================================--- data/lang/ru.xml (revision 0)+++ data/lang/ru.xml (revision 0)@@ -0,0 +1,9 @@+<?xml version="1.0" encoding="UTF-8"?>+<list>+ <msg id="1" text="Игрок находится в тюрьме." />+ <msg id="2" text="Чат игрока заблокирован." />+ <msg id="3" text="Вы не можете общаться, когда находитесь в тюрьме." />+ <msg id="4" text="Использование чата запрещено." />+ <msg id="5" text="Запрос на помолвку принят!" />+ <msg id="6" text="Запрос на помолвку отклонен!" />+</list>\ No newline at end of file [/diff]
Cuz i got lazy to do Enums and i did it like Zoey76 began with ids xD
Core:
[diff]Index: java/com/l2jserver/gameserver/instancemanager/CustomMessages.java===================================================================--- java/com/l2jserver/gameserver/instancemanager/CustomMessages.java (revision 0)+++ java/com/l2jserver/gameserver/instancemanager/CustomMessages.java (revision 0)@@ -0,0 +1,121 @@+/*+ * This program is free software: you can redistribute it and/or modify it under+ * the terms of the GNU General Public License as published by the Free Software+ * Foundation, either version 3 of the License, or (at your option) any later+ * version.+ * + * This program is distributed in the hope that it will be useful, but WITHOUT+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS+ * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more+ * details.+ * + * You should have received a copy of the GNU General Public License along with+ * this program. If not, see <http://www.gnu.org/licenses/>.+ */+package com.l2jserver.gameserver.instancemanager;++import java.io.File;+import java.util.List;+import java.util.Map;+import java.util.logging.Level;+import java.util.logging.Logger;++import javolution.util.FastList;+import javolution.util.FastMap;++import com.l2jserver.Config;+import com.l2jserver.gameserver.model.CustomLanguage;+++/**+ * @author UnAfraid+ *+ */+public class CustomMessages+{+ private final Logger _log = Logger.getLogger(getClass().getName());+ private Map<String, CustomLanguage> _languages;+ + public CustomMessages()+ {+ _languages = new FastMap<String, CustomLanguage>();+ load();+ }+ + public void load()+ {+ List<File> files = new FastList<File>();+ hashFiles("lang", files);+ for (File file : files)+ {+ try+ {+ String name = file.getName().replaceAll(".xml", "");+ _languages.put(name, new CustomLanguage(file));+ _log.log(Level.INFO, getClass().getSimpleName() + ": Loading Custom language file: " + name);+ }+ catch (Exception e)+ {+ _log.log(Level.SEVERE, "Error loading file " + file, e);+ continue;+ }+ }+ + _log.log(Level.SEVERE, getClass().getSimpleName() + ": Loaded " + _languages.size() + " Custom languages");+ }+ + public String getMessage(int id, String language)+ {+ String msg = null;+ if (_languages.containsKey(language))+ {+ CustomLanguage lang = _languages.get(language);+ msg = lang.getMessage(id);+ if (msg == null)+ {+ _log.log(Level.SEVERE, getClass().getSimpleName() + ": Missing custom language id: " + id + " for language: " + language);+ if (Config.DEBUG)+ new Throwable().printStackTrace();+ + if (_languages.containsKey(Config.L2JMOD_MULTILANG_DEFAULT))+ msg = _languages.get(Config.L2JMOD_MULTILANG_DEFAULT).getMessage(id);+ }+ }+ else+ {+ _log.log(Level.SEVERE, getClass().getSimpleName() + ": Missing custom language: " + language);+ if (Config.DEBUG)+ new Throwable().printStackTrace();+ msg = "";+ }+ return msg;+ }+ + private final void hashFiles(String dirname, List<File> hash)+ {+ File dir = new File(Config.DATAPACK_ROOT, "data/" + dirname);+ if (!dir.exists())+ {+ _log.config("Dir " + dir.getAbsolutePath() + " not exists");+ return;+ }+ + File[] files = dir.listFiles();+ for (File f : files)+ {+ if (f.getName().endsWith(".xml"))+ hash.add(f);+ }+ }+ + public static CustomMessages getInstance()+ {+ return SingletonHolder._instance;+ }+ + @SuppressWarnings("synthetic-access")+ private static class SingletonHolder+ {+ protected static final CustomMessages _instance = new CustomMessages();+ }+}Index: java/com/l2jserver/gameserver/GameServer.java===================================================================--- java/com/l2jserver/gameserver/GameServer.java (revision 4488)+++ java/com/l2jserver/gameserver/GameServer.java (working copy)@@ -92,6 +92,7 @@ import com.l2jserver.gameserver.instancemanager.ClanHallManager; import com.l2jserver.gameserver.instancemanager.CoupleManager; import com.l2jserver.gameserver.instancemanager.CursedWeaponsManager;+import com.l2jserver.gameserver.instancemanager.CustomMessages; import com.l2jserver.gameserver.instancemanager.DayNightSpawnManager; import com.l2jserver.gameserver.instancemanager.DimensionalRiftManager; import com.l2jserver.gameserver.instancemanager.FortManager;@@ -307,6 +308,7 @@ HelperBuffTable.getInstance(); AugmentationData.getInstance(); CursedWeaponsManager.getInstance();+ CustomMessages.getInstance(); printSection("Scripts"); QuestManager.getInstance();Index: java/com/l2jserver/gameserver/model/CustomLanguage.java===================================================================--- java/com/l2jserver/gameserver/model/CustomLanguage.java (revision 0)+++ java/com/l2jserver/gameserver/model/CustomLanguage.java (revision 0)@@ -0,0 +1,108 @@+/*+ * This program is free software: you can redistribute it and/or modify it under+ * the terms of the GNU General Public License as published by the Free Software+ * Foundation, either version 3 of the License, or (at your option) any later+ * version.+ * + * This program is distributed in the hope that it will be useful, but WITHOUT+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS+ * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more+ * details.+ * + * You should have received a copy of the GNU General Public License along with+ * this program. If not, see <http://www.gnu.org/licenses/>.+ */+package com.l2jserver.gameserver.model;++import java.io.File;+import java.util.Map;+import java.util.logging.Level;+import java.util.logging.Logger;++import javax.xml.parsers.DocumentBuilderFactory;++import javolution.util.FastMap;++import org.w3c.dom.Document;+import org.w3c.dom.NamedNodeMap;+import org.w3c.dom.Node;++/**+ * @author UnAfraid+ *+ */+public class CustomLanguage+{+ private final Logger _log = Logger.getLogger(getClass().getName());+ Map<Integer, String> _messages;+ + public CustomLanguage(File file)+ {+ _messages = new FastMap<Integer, String>();+ load(file);+ }+ + public String getMessage(int id)+ {+ if (_messages.containsKey(id))+ return _messages.get(id);+ else+ return null;+ }+ + public void load(File file)+ {+ _messages.clear();+ DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();+ factory.setValidating(false);+ factory.setIgnoringComments(true);+ Document doc = null;+ if (file.exists())+ {+ try+ {+ doc = factory.newDocumentBuilder().parse(file);+ }+ catch (Exception e)+ {+ _log.log(Level.WARNING, "Could not parse " + file.getName() + " file: " + e.getMessage(), e);+ }+ + for (Node n = doc.getFirstChild(); n != null; n = n.getNextSibling())+ {+ if ("list".equalsIgnoreCase(n.getNodeName()))+ {+ for (Node d = n.getFirstChild(); d != null; d = d.getNextSibling())+ {+ if ("msg".equalsIgnoreCase(d.getNodeName()))+ {+ NamedNodeMap attrs = d.getAttributes();+ Node att;+ int id = 0;+ String text = null;+ + att = attrs.getNamedItem("id");+ if (att == null)+ {+ _log.severe(getClass().getSimpleName() + " Missing id, skipping");+ continue;+ }+ id = Integer.parseInt(att.getNodeValue());+ + att = attrs.getNamedItem("text");+ if (att == null)+ {+ _log.severe(getClass().getSimpleName() + " Missing text, skipping");+ continue;+ }+ text = att.getNodeValue();+ + _messages.put(id, text);+ }+ }+ }+ }+ }+ _log.log(Level.SEVERE, getClass().getSimpleName() + ": Loaded: [" + file.getName().replaceAll(".xml", "") + "] " + _messages.size() + " Custom Messages");+ }+}Index: java/com/l2jserver/gameserver/model/actor/instance/L2PcInstance.java===================================================================--- java/com/l2jserver/gameserver/model/actor/instance/L2PcInstance.java (revision 4488)+++ java/com/l2jserver/gameserver/model/actor/instance/L2PcInstance.java (working copy)@@ -79,6 +79,7 @@ import com.l2jserver.gameserver.instancemanager.CastleManager; import com.l2jserver.gameserver.instancemanager.CoupleManager; import com.l2jserver.gameserver.instancemanager.CursedWeaponsManager;+import com.l2jserver.gameserver.instancemanager.CustomMessages; import com.l2jserver.gameserver.instancemanager.DimensionalRiftManager; import com.l2jserver.gameserver.instancemanager.DuelManager; import com.l2jserver.gameserver.instancemanager.FortManager;@@ -5263,10 +5264,10 @@ if (answer == 1) { CoupleManager.getInstance().createCouple(ptarget, L2PcInstance.this);- ptarget.sendMessage("Request to Engage has been >ACCEPTED<");+ ptarget.sendMessage(CustomMessages.getInstance().getMessage(5, ptarget.getHtmlPrefix())); // Request to Engage has been >ACCEPTED< } else- ptarget.sendMessage("Request to Engage has been >DENIED<!");+ ptarget.sendMessage(CustomMessages.getInstance().getMessage(6, ptarget.getHtmlPrefix())); // Request to Engage has been >DENIED<! } } }Index: java/com/l2jserver/gameserver/communitybbs/Manager/RegionBBSManager.java===================================================================--- java/com/l2jserver/gameserver/communitybbs/Manager/RegionBBSManager.java (revision 4488)+++ java/com/l2jserver/gameserver/communitybbs/Manager/RegionBBSManager.java (working copy)@@ -26,6 +26,7 @@ import com.l2jserver.Config; import com.l2jserver.gameserver.GameServer;+import com.l2jserver.gameserver.instancemanager.CustomMessages; import com.l2jserver.gameserver.model.BlockList; import com.l2jserver.gameserver.model.L2World; import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;@@ -192,7 +193,7 @@ try {- + CustomMessages msgs = CustomMessages.getInstance(); L2PcInstance receiver = L2World.getInstance().getPlayer(ar2); if (receiver == null) {@@ -203,7 +204,7 @@ } if (Config.JAIL_DISABLE_CHAT && receiver.isInJail()) {- activeChar.sendMessage("Player is in jail.");+ activeChar.sendMessage(msgs.getMessage(1, activeChar.getHtmlPrefix())); // Player is in jail. return; } if (receiver.isChatBanned())@@ -208,7 +209,7 @@ } if (receiver.isChatBanned()) {- activeChar.sendMessage("Player is chat banned.");+ activeChar.sendMessage(msgs.getMessage(2, activeChar.getHtmlPrefix())); // Player is chat banned. return; } if (activeChar.isInJail() && Config.JAIL_DISABLE_CHAT)@@ -213,7 +214,7 @@ } if (activeChar.isInJail() && Config.JAIL_DISABLE_CHAT) {- activeChar.sendMessage("You can not chat while in jail.");+ activeChar.sendMessage(msgs.getMessage(3, activeChar.getHtmlPrefix())); // You can not chat while in jail. return; } if (activeChar.isChatBanned())@@ -218,7 +219,7 @@ } if (activeChar.isChatBanned()) {- activeChar.sendMessage("You are banned from using chat");+ activeChar.sendMessage(msgs.getMessage(4, activeChar.getHtmlPrefix())); // You are banned from using chat return; } [/diff]
DP:
[diff]Index: data/lang/en.xml===================================================================--- data/lang/en.xml (revision 0)+++ data/lang/en.xml (revision 0)@@ -0,0 +1,7 @@+<?xml version="1.0" encoding="UTF-8"?>+<list>+ <msg id="1" text="Player is in jail." />+ <msg id="2" text="Player is chat banned." />+ <msg id="3" text="You can not chat while in jail." />+ <msg id="4" text="You are banned from using chat." />+</list>\ No newline at end of fileIndex: data/lang/ru.xml===================================================================--- data/lang/ru.xml (revision 0)+++ data/lang/ru.xml (revision 0)@@ -0,0 +1,9 @@+<?xml version="1.0" encoding="UTF-8"?>+<list>+ <msg id="1" text="Игрок находится в тюрьме." />+ <msg id="2" text="Чат игрока заблокирован." />+ <msg id="3" text="Вы не можете общаться, когда находитесь в тюрьме." />+ <msg id="4" text="Использование чата запрещено." />+ <msg id="5" text="Запрос на помолвку принят!" />+ <msg id="6" text="Запрос на помолвку отклонен!" />+</list>\ No newline at end of file [/diff]
- SolidSnake
- Posts: 865
- Joined: Wed Jan 20, 2010 6:54 pm
- Location: Italy
Re: Unhardcoding Custom Messages
First 300 system messages translated from english to italian.
Code: Select all
<?xml version="1.0" encoding="UTF-8"?><list> <msg id="0" text="Sei stato disconnesso dal server." /> <msg id="1" text="Il server andrà down in $1 secondi. Per favore trovate un posto sicuro per disconnettersi." /> <msg id="2" text="$s1 non esiste." /> <msg id="3" text="$s1 attualmente non è connesso." /> <msg id="4" text="Non puoi chiedere a te stesso di aggiungerti a un clan." /> <msg id="5" text="$s1 già esiste." /> <msg id="6" text="$s1 non esiste." /> <msg id="7" text="Sei già un membro di $s1." /> <msg id="8" text="Stai lavorando con un altro clan." /> <msg id="9" text="$s1 non è un capo clan." /> <msg id="10" text="$s1 sta lavorando con un altro clan." /> <msg id="11" text="Non ci sono richiedenti per questo clan." /> <msg id="12" text="L'informazione relativa al richiedente non è corretta." /> <msg id="13" text="Impossibile da disperdere: il tuo clan ha richiesto di partecipare all'assedio di un castello." /> <msg id="14" text="Impossibile da disperdere: il tuo clan possiede uno o più castelli o nascondigli." /> <msg id="15" text="Sei in un assedio." /> <msg id="16" text="Non sei in un assedio." /> <msg id="17" text="L'assedio del castello è iniziato." /> <msg id="18" text="L'assedio del castello è finito." /> <msg id="19" text="C'è un nuovo Signore del castello!" /> <msg id="20" text="Il cancello è stato aperto." /> <msg id="21" text="Il cancello è stato distrutto." /> <msg id="22" text="Il tuo bersaglio è fuori portata." /> <msg id="23" text="Non hai abbastanza HP." /> <msg id="24" text="Non hai abbastanza MP." /> <msg id="25" text="Ringiovanimento HP." /> <msg id="26" text="Ringiovanimento MP." /> <msg id="27" text="Il tuo casting è stato interrotto." /> <msg id="28" text="Hai ottenuto $s1 adena." /> <msg id="29" text="Hai ottenuto $s2 $s1." /> <msg id="30" text="Hai ottenuto $s1. <msg id="31" text="Non puoi muoverti da seduto." /> <msg id="32" text="Sei impossibilitato ad impegnarti in un combattimento. Per favore vai al più vicino punto di riavvio." /> <msg id="33" text="Non puoi muoverti durante il casting." /> <msg id="34" text="Benvenuto nel Mondo di Lineage II." /> <msg id="35" text="Hai colpito per $s1 danno(i)." /> <msg id="36" text="$c1 ti ha colpito per $s2 danno(i)." /> <msg id="37" text="$c1 ti ha colpito per $s2 danno(i)." /> <msg id="41" text="Hai scoccato una freccia con attenzione." /> <msg id="42" text="Hai evitato l'attacco di $c1." /> <msg id="43" text="Lo hai mancato." /> <msg id="44" text="Colpo critico!" /> <msg id="45" text="Hai acquisito $s1 esperienza." /> <msg id="46" text="Hai usato $s1." /> <msg id="47" text="Hai iniziato ad usare un(a) $s1." /> <msg id="48" text="$s1 non è disponibile ora: in fase di preparazione per il riutilizzo." /> <msg id="49" text="Hai indossato il tuo $s1." /> <msg id="50" text="Il tuo bersaglio non può essere trovato." /> <msg id="51" text="Non puoi usare questo su te stesso." /> <msg id="52" text="Hai trovato $s1 adena." /> <msg id="53" text="Hai trovato $s2 $s1(s)." /> <msg id="54" text="Hai trovato $s1." /> <msg id="55" text="Non sei riuscito a raccogliere $s1 adena." /> <msg id="56" text="Non sei riuscito a raccogliere $s1." /> <msg id="57" text="Non sei riuscito a raccogliere $s2 $s1(s)." /> <msg id="58" text="Non sei riuscito a trovare $s1 adena." /> <msg id="59" text="Non sei riuscito a trovare $s1." /> <msg id="60" text="Non sei riuscito a trovare $s2 $s1(s)." /> <msg id="61" text="Non è successo niente." /> <msg id="62" text="Il tuo $s1 è stato incantato con successo." /> <msg id="63" text="Il tuo +$S1 $S2 è stato incantato con successo." /> <msg id="64" text="L'incantamento è fallito! Il tuo $s1 è stato cristallizzato." /> <msg id="65" text="L'incantamento è fallito! Il tuo +$s1 $s2 è stato cristallizato." /> <msg id="66" text="$c1 ti sta invitando ad unirti in un party. Accetti?" /> <msg id="67" text="$s1 ti ha invitato ad unirti nel clan, $s2. Desideri unirti?" /> <msg id="68" text="Ti piacerebbe uscire dal clan $s1? Se esci, dovrai aspettare almeno un giorno prima di unirti ad un altro clan." /> <msg id="69" text="Ti piacerebbe dimettere $s1 dal clan? Se lo fai, dovrai aspettare almeno un giorno prima di accettare un nuovo membro." /> <msg id="70" text="Desideri disperdere il clan, $s1?" /> <msg id="71" text="Quanti dei tuoi $s1(s) desideri scartare?" /> <msg id="72" text="Quanti dei tuoi $s1(s) desideri spostare?" /> <msg id="73" text="Quanti dei tuoi $s1(s) desideri distruggere?" /> <msg id="74" text="Desideri distruggere il tuo $s1?" /> <msg id="75" text="ID non esistente." /> <msg id="76" text="Password scorretta." /> <msg id="77" text="Non puoi creare un altro personaggio. Per favore cancella il personaggio esistente e prova di nuovo." /> <msg id="78" text="Quando cancelli un personaggio, ogni oggetto in suo possesso sarà anch'esso cancellato. Davvero desideri cancellare $s1%?" /> <msg id="79" text="Questo nome esiste già." /> <msg id="80" text="I nomi devono essere tra 1-16 caratteri, escludendo spazi o caratteri speciali." /> <msg id="81" text="Per favore seleziona la tua razza." /> <msg id="82" text="Per favore seleziona la tua occupazione." /> <msg id="83" text="Per favore seleziona il tuo sesso." /> <msg id="84" text="Non puoi attaccare in una zona pacifica." /> <msg id="85" text="Non puoi attaccare questo bersaglio in una zona pacifica." /> <msg id="86" text="Per favore inserisci il tuo ID." /> <msg id="87" text="Per favore inserisci la tua password." /> <msg id="88" text="La tua versione protocollo è differente, per favore riavvia il tuo client e fai una verifica completa." /> <msg id="89" text="La tua versione protocollo è differente, per favore prosegui." /> <msg id="90" text="Sei impossibilitato a connetterti al server." /> <msg id="91" text="Per favore seleziona la tua acconciatura." /> <msg id="92" text="$s1 si è esaurito." /> <msg id="93" text="Non hai abbastanza SP per questo." /> <msg id="94" text="2004-2009 (c) Copyright NCZ0ft Corporation. Tutti i Diritti Riservati." /> <msg id="95" text="Hai acquisito $s1 esperienza e $s2 SP." /> <msg id="96" text="Il tuo livello è aumentato!" /> <msg id="97" text="Questo oggetto non può essere spostato." /> <msg id="98" text="Questo oggetto non può essere scartato." /> <msg id="99" text="Questo oggetto non può essere scambiato o venduto." /> <msg id="100" text="$c1 sta chiedendo di commerciare. Desideri proseguire?" /> <msg id="101" text="Non puoi uscire durante un combattimento." /> <msg id="102" text="Non puoi riavviare durante un combattimento." /> <msg id="103" text="Questo ID è attualmente connesso." /> <msg id="104" text="Non puoi indossare oggetti durante il casting o l'esecuzione di una skill." /> <msg id="105" text="$c1 è stato invitato al party." /> <msg id="106" text="Ti sei unito al party di $s1." /> <msg id="107" text="$c1 si è unito al party." /> <msg id="108" text="$c1 è uscito dal party." /> <msg id="109" text="Bersaglio non valido." /> <msg id="110" text="L'effetto di $s1 $s2 può essere sentito." /> <msg id="111" text="La difesa del tuo scudo è riuscita." /> <msg id="112" text="Non puoi più sistemare oggetti nello scambio poichè il commercio è stato confermato." /> <msg id="113" text="$s1 non può essere usato a causa di termini non idonei." /> <msg id="114" text="Sei entrato nell'ombra del Mother Tree." /> <msg id="115" text="Hai lasciato l'ombra del Mother Tree." /> <msg id="116" text="Sei entrato in una zona pacifica." /> <msg id="117" text="Sei uscito dalla zona pacifica." /> <msg id="118" text="Hai richiesto uno scambio con $c1." /> <msg id="119" text="$c1 ha declinato la tua richiesta di commercio." /> <msg id="120" text="Hai iniziato uno scambio con $c1." /> <msg id="121" text="$c1 ha confermato lo scambio." /> <msg id="122" text="Non puoi più sistemare oggetti nello scambio poichè il commercio è stato confermato." /> <msg id="123" text="Il tuo scambio è riuscito." /> <msg id="124" text="$c1 ha annullato lo scambio." /> <msg id="125" text="Desideri uscire dal gioco?" /> <msg id="126" text="Desideri tornare alla schermata di selezione del personaggio?" /> <msg id="127" text="Sei stato disconnesso dal server. Per favore connettiti di nuovo." /> <msg id="128" text="La creazione del tuo personaggio è fallita." /> <msg id="129" text="Il tuo inventario è pieno." /> <msg id="130" text="Il tuo deposito è pieno." /> <msg id="131" text="$s1 si è connesso." /> <msg id="132" text="$s1 è stato aggiunto alla tua lista di amici." /> <msg id="133" text="$s1 è stato rimosso dalla tua lista di amici." /> <msg id="134" text="Per favore controlla la tua lista di amici di nuovo." /> <msg id="135" text="$c1 non ha risposto al tuo invito. Il tuo invito è stato annullato." /> <msg id="136" text="Non hai risposto all'invito di $c1. L'offerta è stata annullata." /> <msg id="137" text="Non ci sono più oggetti nella barra di scelta rapida." /> <msg id="138" text="Designare la barra di scelta rapida." /> <msg id="139" text="$c1 ha resistito il tuo $s2." /> <msg id="140" text="La tua skill è stata rimossa a causa della mancanza di MP." /> <msg id="141" text="Una volta che lo scambio è confermato, l'oggetto non può essere spostato di nuovo." /> <msg id="142" text="Stai già commerciando con qualcuno." /> <msg id="143" text="$c1 sta già commerciando con un'altra persona. Per favore riprova più tardi." /> <msg id="144" text="Questo è un bersaglio scorretto." /> <msg id="145" text="Questo giocatore non è online." /> <msg id="146" text="Parlare è ora permesso." /> <msg id="147" text="Parlare è attualmente proibito." /> <msg id="148" text="Non puoi usare oggetti di quest." /> <msg id="149" text="Non puoi raccogliere o usare oggetti mentre commerci." /> <msg id="150" text="Non puoi scartare o distruggere un oggetto mentre commerci in un negozio privato." /> <msg id="151" text="Questo punto è troppo lontano da te per scartare." /> <msg id="152" text="Hai invitato un bersaglio errato." /> <msg id="153" text="$c1 è già impegnato. Per favore prova più tardi." /> <msg id="154" text="Solo il leader può mandare inviti." /> <msg id="155" text="Il party è al completo." /> <msg id="156" text="Il drain è riuscito solo al 50 percento." /> <msg id="157" text="Hai resistito al drain di $c1." /> <msg id="158" text="Il tuo attacco è fallito." /> <msg id="159" text="Hai resistito alla magia di $c1." /> <msg id="160" text="$c1 è un membro di un altro party e non può essere invitato." /> <msg id="161" text="Il giocatore non è attualmente online." /> <msg id="162" text="Il deposito è troppo lontano." /> <msg id="163" text="Non puoi distruggerlo poichè il numero è scorretto." /> <msg id="164" text="In attesa di un'altra risposta." /> <msg id="165" text="Non puoi aggiungere te stesso alla tua lista di amici." /> <msg id="166" text="La lista di amici non è ancora pronta. Per favore registrati di nuovo più tardi." /> <msg id="167" text="$c1 è già nella tua lista di amici." /> <msg id="168" text="$c1 ha mandato una richiesta di amicizia." /> <msg id="169" text="Accetta l'amicizia 0/1 (1 per accettare, 0 per rifiutare)." /> <msg id="170" text="L'utente che ha richiesto di diventare amici non si trova nel gioco." /> <msg id="171" text="$c1 non è sulla tua lista di amici." /> <msg id="172" text="Non hai i fondi necessari per pagare questa transazione." /> <msg id="173" text="Non hai i fondi necessari per pagare questa transazione." /> <msg id="174" text="L'inventario di questa persona è pieno." /> <msg id="175" text="Questa skill è stata disattivata poichè gli HP erano stati completamente recuperati." /> <msg id="176" text="Questa persona è in modalità negazione messaggi." /> <msg id="177" text="Modalità negazione messaggi." /> <msg id="178" text="Modalità accettazione messaggi." /> <msg id="179" text="Non puoi scartare quegli oggetti qui." /> <msg id="180" text="Hai $s1 giorno(i) rimanente(i) fino alla cancellazione. Desideri rimuovere questa azione?" /> <msg id="181" text="Non puoi vedere il bersaglio." /> <msg id="182" text="Vuoi interrompere la quest attuale?" /> <msg id="183" text="Ci sono troppi utenti sul server. Per favore riprova di nuovo più tardi." /> <msg id="184" text="Per favore riprova di nuovo più tardi." /> <msg id="185" text="Devi prima selezionare un utente per invitarlo nel tuo party." /> <msg id="186" text="Devi prima selezionare un utente per invitarlo nel tuo clan." /> <msg id="187" text="Seleziona un utente per espellerlo." /> <msg id="188" text="Per favore crea il tuo nome clan." /> <msg id="189" text="Il tuo clan è stato creato." /> <msg id="190" text="Non sei riuscito a creare un clan." /> <msg id="191" text="Il membro del clan $s1 è stato espulso." /> <msg id="192" text="Non sei riuscito ad espellere $s1 dal clan." /> <msg id="193" text="Il clan è stato disperso." /> <msg id="194" text="Non sei riuscito a disperdere il clan." /> <msg id="195" text="Sei entrato nel clan." /> <msg id="196" text="$s1 ha rifiutato il tuo invito di clan." /> <msg id="197" text="Ti sei rimosso dal clan." /> <msg id="198" text="Non sei riuscito a rimuoverti dal clan $s1." /> <msg id="199" text="Sei stato recentemente dimesso da un clan. Non ti è concesso entrare in un altro clan per 24-ore." /> <msg id="200" text="Ti sei rimosso dal party." /> <msg id="201" text="$c1 è stato espulso dal party." /> <msg id="202" text="Sei stato espulso dal party." /> <msg id="203" text="Il party è stato disperso." /> <msg id="204" text="Nome scorretto. Per favore prova di nuovo." /> <msg id="205" text="Nome scorretto del personaggio. Per favore prova di nuovo." /> <msg id="206" text="Per favore inserisci il nome del clan al quale desideri dichiarare guerra." /> <msg id="207" text="$s2 del clan $s1 richiede una dichiarazione di guerra. Accetti?" /> <msg id="212" text="Non sei un membro di un clan e non puoi eseguire questa azione." /> <msg id="213" text="Non funziona. Per favore prova di nuovo più tardi." /> <msg id="214" text="Il tuo titolo è stato cambiato." /> <msg id="215" text="La guerra con il clan $s1 è iniziata." /> <msg id="216" text="La guerra con il clan $s1 è finita." /> <msg id="217" text="Hai vinto la guerra contro il clan $s1!" /> <msg id="218" text="Ti sei arreso al clan $s1." /> <msg id="219" text="Il tuo capo clan è morto. Sei stato sconfitto dal clan $s1." /> <msg id="220" text="Hai $s1 minuti rimanenti prima che la guerra tra clan finisca." /> <msg id="221" text="Il tempo massimo per la guerra tra clan è stato raggiunto. La guerra con il clan $s1 è finita." /> <msg id="222" text="$s1 è entrato nel clan." /> <msg id="223" text="$s1 è uscito dal clan." /> <msg id="224" text="$s1 non ha risposto: L'invito di clan è stato annullato." /> <msg id="225" text="Non hai risposto all'invito di $s1: l'adesione è stata annullata." /> <msg id="226" text="Il clan $s1 non ti ha risposto: la proclamazione di guerra è stata rifiutata." /> <msg id="227" text="La guerra tra clan è stata rifiutata poichè non hai risposto alla proclamazione di guerra del clan $s1." /> <msg id="228" text="La richiesta di termine alla guerra è sta respinta." /> <msg id="229" text="Non soddisfi i criteri necessari per creare un clan." /> <msg id="230" text="Devi aspettare 10 giorni prima di creare un nuovo clan." /> <msg id="231" text="Dopo che un membro del clan è stato dimesso dal clan, il clan deve aspettare almeno un giorno prima di accettare un nuovo membro." /> <msg id="232" text="Dopo aver lasciato o esser stato dimesso da un clan, devi aspettare almeno un giorno prima di entrare in un altro clan." /> <msg id="233" text="" /> <msg id="234" text="Il bersaglio deve essere membro di un clan." /> <msg id="235" text="Non sei autorizzato a concedere questi diritti." /> <msg id="236" text="Solo il capo clan è attivato." /> <msg id="237" text="Il capo clan potrebbe non essere trovato." /> <msg id="238" text="Non iscritto in nessun clan." /> <msg id="239" text="Il capo clan non può dimettersi." /> <msg id="240" text="Attualmente impegnato in una guerra tra clan." /> <msg id="241" text="Il capo del Clan $s1 non è connesso." /> <msg id="242" text="Seleziona un bersaglio." /> <msg id="243" text="Non puoi dichiarare guerra a un clan alleato." /> <msg id="244" text="Non ti è concesso iniziare questa sfida." /> <msg id="245" text="Non sono passati 5 giorni da quando è stata rifiutata la guerra. Desideri continuare?" /> <msg id="246" text="Questo clan è attualmente in guerra." /> <msg id="247" text="Sei stato già in guerra con il clan $s1: devono passare 5 giorni prima di poter sfidare questo clan di nuovo." /> <msg id="248" text="Non puoi proclamare guerra: il clan $s1 non ha abbastanza membri." /> <msg id="249" text="Desideri arrenderti al clan $s1?" /> <msg id="250" text="Ti sei personalmente arreso al clan $s1. Non stai più partecipando a questa guerra tra clan." /> <msg id="251" text="Non puoi proclamare guerra: sei in guerra con un altro clan." /> <msg id="252" text="Inserisci il nome del clan alla quale ti arrendi." /> <msg id="253" text="Inserisci il nome del clan con il quale desideri terminare la guerra." /> <msg id="254" text="Un capo clan non può arrendersi personalmente." /> <msg id="255" text="Il clan $s1 ha chiesto di terminare la guerra. Accetti?" /> <msg id="256" text="Inserisci il titolo." /> <msg id="257" text="Offri al clan $s1 una proposta di fine guerra?" /> <msg id="258" text="Non sei coinvolto in una guerra tra clan." /> <msg id="259" text="Seleziona i membri del clan dalla lista." /> <msg id="260" text="Il livello di fama è stato diminuito: non sono passati 5 giorni da quando è stata rifiutata la guerra." /> <msg id="261" text="Il nome del clan non è valido." /> <msg id="262" text="La lunghezza del nome del clan non è valida." /> <msg id="263" text="Hai già richiesto lo scioglimento del tuo clan." /> <msg id="264" text="Non puoi sciogliere un clan mentre è impegnato in una guerra." /> <msg id="265" text="Non puoi sciogliere un clan durante un assalto o mentre sta proteggendo un castello." /> <msg id="266" text="Non puoi sciogliere un clan mentre sta possedendo una clan hall o un castello." /> <msg id="267" text="Non ci sono richieste di dispersione." /> <msg id="268" text="Questo giocatore già appartiene a un altro clan." /> <msg id="269" text="Non puoi dimetterti da solo." /> <msg id="270" text="Ti sei già arreso." /> <msg id="271" text="Ad un giocatore può essere concesso un titolo solo se il clan è livello 3 o maggiore." /> <msg id="272" text="Una crest di clan può essere registrata solo quando il livello skill del clan è 3 o maggiore." /> <msg id="273" text="Una guerra tra clan può essere dichiarata solo quando il livello skill del clan è 3 o maggiore." /> <msg id="274" text="Il tuo livello skill di clan è aumentato." /> <msg id="275" text="Il clan non è riuscito ad aumentare il livello skill." /> <msg id="276" text="Non hai i materiali necessari o i prerequisiti per imparare questa skill." /> <msg id="277" text="Hai ottenuto $s1." /> <msg id="278" text="Non hai abbastanza SP per imparare questa skill." /> <msg id="279" text="Non hai abbastanza adena." /> <msg id="280" text="Non hai nessun oggetto da vendere." /> <msg id="281" text="Non hai abbastanza adena per pagare la tassa." /> <msg id="282" text="Non hai depositato nessun oggetto nel tuo magazzino." /> <msg id="283" text="Sei entrato in una zona di combattimento." /> <msg id="284" text="Sei uscito da una zona di combattimento." /> <msg id="285" text="Il clan %s1 è riuscito ad incidere il dominatore!" /> <msg id="286" text="La tua base viene attaccata." /> <msg id="287" text="Il clan nemico ha iniziato ad incidere il monumento!" /> <msg id="288" text="Il cancello del castello è stato distrutto." /> <msg id="289" text="Non può essere costruito un avamposto o una sede poichè ne esiste già almeno uno/a." /> <msg id="290" text="Non puoi creare una base qui." /> <msg id="291" text="Il clan $s1 è il vincitore dell'assalto del castello di $s2!" /> <msg id="292" text="$s1 ha annunciato il tempo dell'assalto del castello." /> <msg id="293" text="Il termine di registrazione per $s1 è finito." /> <msg id="294" text="Poichè il tuo clan non è attualmente sull'offensiva in una guerra d'assalto di una Clan Hall, non può creare il suo campo base." /> <msg id="295" text="Il siege di $s1 è stato cancellato poichè non c'erano clans che partecipavano." /> <msg id="296" text="Hai ricevuto $s1 danno(i) da una caduta alta." /> <msg id="297" text="Hai preso $s1 danno(i) poichè eri impossibilitato a respirare." /> <msg id="298" text="Hai scartato $s1." /> <msg id="299" text="$c1 ha ottenuto $s3 $s2." /> <msg id="300" text="$c1 ha ottenuto $s2." /></list>

- jurchiks
- Posts: 6769
- Joined: Sat Sep 19, 2009 4:16 pm
- Location: Eastern Europe
Re: Unhardcoding Custom Messages
umm... this topic is about custom messages, not the retail systemmessage-e.dat content. You know, the kind that goes in your custom scripts/handlers.
If you have problems, FIRST TRY SOLVING THEM YOURSELF, and if you get errors, TRY TO ANALYZE THEM, and ONLY if you can't help it, THEN ask here.
Otherwise you will never learn anything if all you do is copy-paste!
Discussion breeds innovation.
Otherwise you will never learn anything if all you do is copy-paste!
Discussion breeds innovation.
- SolidSnake
- Posts: 865
- Joined: Wed Jan 20, 2010 6:54 pm
- Location: Italy
- jurchiks
- Posts: 6769
- Joined: Sat Sep 19, 2009 4:16 pm
- Location: Eastern Europe
Re: Unhardcoding Custom Messages
you should still be able to use them as the original systemmessages, but remember to put slashes before apostrophes (notepad++ replace all> ' with \'), cuz it breaks the xml syntax.
If you have problems, FIRST TRY SOLVING THEM YOURSELF, and if you get errors, TRY TO ANALYZE THEM, and ONLY if you can't help it, THEN ask here.
Otherwise you will never learn anything if all you do is copy-paste!
Discussion breeds innovation.
Otherwise you will never learn anything if all you do is copy-paste!
Discussion breeds innovation.
- LaraCroft
- Posts: 360
- Joined: Sat Aug 08, 2009 1:37 am
Re: Unhardcoding Custom Messages
Hi guys...
Here all english messages

Here all english messages

You do not have the required permissions to view the files attached to this post.
!!!knowledge and intelligence must be shared!!!
- LaraCroft
- Posts: 360
- Joined: Sat Aug 08, 2009 1:37 am
Re: Unhardcoding Custom Messages
Here pt-br translation...
But... Needs some correction... couse im using google translate...

But... Needs some correction... couse im using google translate...

You do not have the required permissions to view the files attached to this post.
!!!knowledge and intelligence must be shared!!!
- Zoey76
- L2j Inner Circle
- Posts: 7008
- Joined: Tue Aug 11, 2009 3:36 am
Re: Unhardcoding Custom Messages
First post updated.
Thanks ThE_PuNiSheR I already have that done in a different way (even when most code match
)
Thanks SolidSnake & LaraCroft that is going to be useful for the second part of my little project
Thanks ThE_PuNiSheR I already have that done in a different way (even when most code match

Thanks SolidSnake & LaraCroft that is going to be useful for the second part of my little project

Powered by Eclipse 4.34
| Eclipse Temurin 21
| MariaDB 11.3.2
| L2J Server 2.6.3.0 - High Five 
Join our Discord! 

- LaraCroft
- Posts: 360
- Joined: Sat Aug 08, 2009 1:37 am
Re: Unhardcoding Custom Messages
Zoey76... please share your diff/patch file for eclipse... I want to test this...


!!!knowledge and intelligence must be shared!!!
- Zoey76
- L2j Inner Circle
- Posts: 7008
- Joined: Tue Aug 11, 2009 3:36 am
Re: Unhardcoding Custom Messages
I finished it and I'll test in live next days.
There are some things to fix, but soon I'll share this
There are some things to fix, but soon I'll share this

Powered by Eclipse 4.34
| Eclipse Temurin 21
| MariaDB 11.3.2
| L2J Server 2.6.3.0 - High Five 
Join our Discord! 

- LaraCroft
- Posts: 360
- Joined: Sat Aug 08, 2009 1:37 am
Re: Unhardcoding Custom Messages
Zoey76 wrote:I finished it and I'll test in live next days.
There are some things to fix, but soon I'll share this

!!!knowledge and intelligence must be shared!!!