Jump to content

Game Language


NaikonReTaiL

Recommended Posts

I am playing in One Interlude Russian Server And all the game play is in Russian ,how can change it to English?

well first of all is incorrect section adn second you can mod your system but is not a easy process or change your system for 1 english, ofc you need add lines they have armors there example.
Link to comment
Share on other sites

You can translate the htmls an use the folder "lang" to redirect it, and also you need a "language voicecommand handler".

/*
* 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 handlers.voicedcommandhandlers;

import java.util.StringTokenizer;

import com.l2jserver.Config;
import com.l2jserver.gameserver.handler.IVoicedCommandHandler;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
import com.l2jserver.gameserver.network.serverpackets.NpcHtmlMessage;
import com.l2jserver.util.StringUtil;

public class Lang implements IVoicedCommandHandler
{
private static final String[] VOICED_COMMANDS =
{
	"lang"
};

/**
 * 
 * @see com.l2jserver.gameserver.handler.IVoicedCommandHandler#useVoicedCommand(java.lang.String, com.l2jserver.gameserver.model.actor.instance.L2PcInstance, java.lang.String)
 */
public boolean useVoicedCommand(String command, L2PcInstance activeChar, String params)
{
	if (!Config.L2JMOD_MULTILANG_ENABLE
			|| !Config.L2JMOD_MULTILANG_VOICED_ALLOW)
		return false;

	NpcHtmlMessage msg = new NpcHtmlMessage(1);

	if (params == null)
	{
		final StringBuilder html = StringUtil.startAppend(100);
		for (String lang : Config.L2JMOD_MULTILANG_ALLOWED)
		{
			StringUtil.append(html,
					"<button value=\"",
					lang.toUpperCase(),
					"\" action=\"bypass -h voice .lang ",
					lang,
					"\" width=60 height=21 back=\"L2UI_ct1.button_df\" fore=\"L2UI_ct1.button_df\"><br>"
			);
		}

		msg.setFile(activeChar.getHtmlPrefix(), "data/html/mods/Lang/LanguageSelect.htm");
		msg.replace("%list%", html.toString());
		activeChar.sendPacket(msg);
		return true;
	}

	StringTokenizer st = new StringTokenizer(params);
	if (st.hasMoreTokens())
	{
		final String lang = st.nextToken().trim();
		if (activeChar.setLang(lang))
		{
			msg.setFile(activeChar.getHtmlPrefix(), "data/html/mods/Lang/Ok.htm");
			activeChar.sendPacket(msg);
			return true;
		}
		else
		{
			msg.setFile(activeChar.getHtmlPrefix(), "data/html/mods/Lang/Error.htm");
			activeChar.sendPacket(msg);
		}
	}

	return false;
}

/**
 * 
 * @see com.l2jserver.gameserver.handler.IVoicedCommandHandler#getVoicedCommandList()
 */
public String[] getVoicedCommandList()
{
	return VOICED_COMMANDS;
}
}

 

If you wanna to change de skills,  npc, quests... information you must to edit skillname-e.dat, npcname-e... It's a hard work, maybe there is a translated system somewhere.

 

The rest (annoucment...) you can change it from the core.

Link to comment
Share on other sites

Sorry about wrong section..You Can tell me More How to Do it Cause i Cant play.Ty

for what I know, in some rusian servers you need change regional language to russian for play, in this case you want change it to english, just edit l2.ini of English system with IP of rusian server, they installed armor,weapons,etc just open files and check id have there and add into EU system is all.
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Posts

    • well i didnt used to had that issue u reffering , u can always lower the page value that would show on each page . keep in mind it was taken  from h5 that it can handle more html length than interlude .   package handlers.admincommandhandlers; import org.l2jmobius.gameserver.handler.IAdminCommandHandler; import org.l2jmobius.gameserver.model.WorldObject; import org.l2jmobius.gameserver.model.actor.Player; import org.l2jmobius.gameserver.model.item.instance.Item; import org.l2jmobius.gameserver.network.SystemMessageId; import org.l2jmobius.gameserver.network.serverpackets.NpcHtmlMessage; import org.l2jmobius.gameserver.util.Util; public class AdminInventory implements IAdminCommandHandler { private static final String[] ADMIN_COMMANDS = { "admin_showinv", "admin_delete_item" }; @Override public boolean useAdminCommand(String command, Player activeChar) { WorldObject target = activeChar.getTarget(); if (target == null || !target.isPlayer()) { activeChar.sendPacket(SystemMessageId.INVALID_TARGET); return false; } if (command.startsWith(ADMIN_COMMANDS[0])) { if (command.length() > ADMIN_COMMANDS[0].length()) { String com = command.substring(ADMIN_COMMANDS[0].length() + 1); if (Util.isDigit(com)) { showItemsPage(activeChar, Integer.parseInt(com)); } } else { showItemsPage(activeChar, 0); } } int count = 1; if (command.contains(ADMIN_COMMANDS[1])) { String[] parts = command.split(" "); if (parts.length == 3) { try { count = Integer.parseInt(parts[2]); } catch (NumberFormatException e) { activeChar.sendMessage("Invalid quantity format."); return false; } } if (count == 0) { activeChar.sendMessage("Quantity must be 1 or above, or left blank for default."); showItemsPage(activeChar, 0); return false; } String val = parts[1]; target.getActingPlayer().destroyItem("GM Destroy", Integer.parseInt(val), count, null, true); showItemsPage(activeChar, 0); } return true; } private void showItemsPage(Player activeChar, int page) { final WorldObject target = activeChar.getTarget(); final Player player = target.getActingPlayer(); final Item[] items = player.getInventory().getItems().toArray(new Item[0]); int maxItemsPerPage = 13; int maxPages = items.length / maxItemsPerPage; if (items.length > (maxItemsPerPage * maxPages)) { maxPages++; } if (page > maxPages) { page = maxPages; } int itemsStart = maxItemsPerPage * page; int itemsEnd = items.length; if ((itemsEnd - itemsStart) > maxItemsPerPage) { itemsEnd = itemsStart + maxItemsPerPage; } final NpcHtmlMessage adminReply = new NpcHtmlMessage(0); adminReply.setFile(activeChar, "data/html/admin/inventory.htm"); adminReply.replace("%PLAYER_NAME%", activeChar.getName()); StringBuilder sbPages = new StringBuilder(); for (int x = 0; x < maxPages; x++) { int pagenr = x + 1; sbPages.append("<td><button value=\"" + pagenr + "\" action=\"bypass -h admin_showinv " + x + "\" width=20 height=20 back=\"L2UI_ct1.button_df\" fore=\"L2UI_ct1.button_df\"></td>"); } adminReply.replace("%PAGES%", sbPages.toString()); StringBuilder sbItems = getStringBuilder(itemsStart, itemsEnd, items); adminReply.replace("%ITEMS%", sbItems.toString()); activeChar.sendPacket(adminReply); } private static StringBuilder getStringBuilder(int itemsStart, int itemsEnd, Item[] items) { StringBuilder sbItems = new StringBuilder(); sbItems.append("<table width=270>"); sbItems.append("<tr>"); sbItems.append("<td width=24><b> </b></td>"); sbItems.append("<td width=120><b> </b></td>"); sbItems.append("<td width=90><b>Count</b></td>"); sbItems.append("<td width=65><b>Quantity</b></td>"); sbItems.append("</tr>"); for (int i = itemsStart; i < itemsEnd; i++) { Item item = items[i]; sbItems.append("<tr>"); sbItems.append("<td><img src=").append(item.getTemplate().getIcon()).append(" width=24 height=24></td>"); sbItems.append("<td>").append(item.getName()).append("</td>"); sbItems.append("<td>").append(item.getCount()).append("</td>"); sbItems.append("<td>"); sbItems.append("<edit var=\"itemCount_").append(i).append("\" width=40>"); sbItems.append("</td>"); sbItems.append("<td><button action=\"bypass -h admin_delete_item ").append(item.getObjectId()).append(" $itemCount_").append(i).append("\" width=16 height=16 back=\"L2UI_ct1.Button_DF_Delete\" fore=\"L2UI_ct1.Button_DF_Delete\"></button></td>"); sbItems.append("</tr>"); } sbItems.append("</table>"); return sbItems; } @Override public String[] getAdminCommandList() { return ADMIN_COMMANDS; } } Since i did jumped to mobius here the mobius one with quantity field aswell .  feel free to adapt it back to acis or wherever    <html><body><title>Inventory : %PLAYER_NAME%</title> <center> <table width=270> <tr> %PAGES% </tr> </table> </center> <br> %ITEMS% </body> </html>
    • ~ DISCORD SERVER: 2MVCtXHvbH  DISCORD SERVER: 2MVCtXHvbH
  • Topics

×
×
  • Create New...