Сообщений: 87
Тем: 15
Зарегистрирован: Jun 2011
Хочу перевести класс мастера на Англ.
Подскажите где находяться его ХТМЛки
Или где его скрипт дабы перевести его.
(Сборка l2wt Грация Финла но я не думаю что это важно так как класс мастер везде одинаковый )
Сообщений: 5,670
Тем: 145
Зарегистрирован: Nov 2008
Репутация:
33,771
Поиск по содержимому в файлах рулит.
Web программист\разработчик
— Есть только один способ проделать большую работу — полюбить ее. Если вы к этому не пришли, подождите. Не беритесь за дело.
Сообщений: 87
Тем: 15
Зарегистрирован: Jun 2011
07-28-2011, 08:58 PM
(Сообщение последний раз редактировалось: 07-29-2011, 01:56 PM Trololoshka.)
И снова таки Ололо.
По тому что я юзал ПОИСК на компе.
Но то что надо не находил.
Я просто не могу понять как назыв файл отвечающий за ГМ класс мастера.
Находил обычный мастеров/ находил АДМ Меню смена профессии , а ГМ Класс Мастера найти не могу Т_Т.
Добавлено через 16 часов 54 минуты
И снова таки никто не помог.
На этом форуме вообще есть люди которые помогают другим а не тупо тыкают на поиск и т.д.?
Уже 3 моя тема в которой никто так и не помог.
Помогли мне только 1 раз и это были Array, ANZO, Azagthtot
И все. Остальные только тыкают в поиск и т.д.
Сообщений: 1,416
Тем: 44
Зарегистрирован: Mar 2010
Репутация:
2,310
Сообщений: 87
Тем: 15
Зарегистрирован: Jun 2011
Credo,
Благодарю.
Нашел.
Вот только я ***
Код
Код: package com.l2emu.gameserver.model.actor.instance;
import com.l2emu.Config;
import com.l2emu.Config.ClassMasterSettings;
import com.l2emu.gameserver.ai.CtrlIntention;
import com.l2emu.gameserver.ai.L2CharacterAI;
import com.l2emu.gameserver.datatables.CharTemplateTable;
import com.l2emu.gameserver.datatables.ItemTable;
import com.l2emu.gameserver.model.L2ItemInstance;
import com.l2emu.gameserver.model.actor.L2Summon;
import com.l2emu.gameserver.model.base.ClassId;
import com.l2emu.gameserver.model.base.SubClass;
import com.l2emu.gameserver.model.itemcontainer.PcInventory;
import com.l2emu.gameserver.model.quest.Quest;
import com.l2emu.gameserver.network.SystemMessageId;
import com.l2emu.gameserver.network.serverpackets.ActionFailed;
import com.l2emu.gameserver.network.serverpackets.MyTargetSelected;
import com.l2emu.gameserver.network.serverpackets.NpcHtmlMessage;
import com.l2emu.gameserver.network.serverpackets.SystemMessage;
import com.l2emu.gameserver.network.serverpackets.ValidateLocation;
import com.l2emu.gameserver.templates.chars.L2NpcTemplate;
import com.l2emu.gameserver.templates.item.L2Item;
import com.l2emu.tools.util.StringUtil;
import java.util.Map;
import javolution.text.TextBuilder;
import javolution.util.FastMap;
import org.apache.commons.logging.Log;
public final class L2ClassMasterInstance extends L2NpcInstance
{
private static final int[] BASE_CLASS_IDS = { 0, 10, 18, 25, 31, 38, 44, 49, 53, 123, 124 };
private static final int[] FIRST_CLASS_IDS = { 1, 4, 7, 11, 15, 19, 22, 26, 29, 32, 35, 39, 42, 45, 47, 50, 54, 56, 125, 126 };
private static final int[] SECOND_CLASS_IDS = { 2, 3, 5, 6, 9, 8, 12, 13, 14, 16, 17, 20, 21, 23, 24, 27, 28, 30, 33, 34, 36, 37, 40, 41, 43, 46, 48, 51, 52, 55, 57, 127, 128, 129, 130, 135 };
private static final int[] THIRD_CLASS_IDS = { 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 131, 132, 133, 134, 136 };
public L2ClassMasterInstance(int objectId, L2NpcTemplate template)
{
super(objectId, template);
}
public void onAction(L2PcInstance player, boolean interact)
{
if (!canTarget(player))
return;
player.setLastFolkNPC(this);
if (getObjectId() != player.getTargetId())
{
player.setTarget(this);
player.sendPacket(new MyTargetSelected(getObjectId(), 0));
player.sendPacket(new ValidateLocation(this));
}
else if (interact)
{
if (!canInteract(player))
{
player.getAI().setIntention(CtrlIntention.AI_INTENTION_INTERACT, this);
return;
}
if (player.isGM())
{
showChatWindowChooseClass(player);
return;
}
NpcHtmlMessage html = new NpcHtmlMessage(getObjectId());
TextBuilder sb = new TextBuilder();
sb.append("<html><body>");
sb.append(new StringBuilder().append(getName()).append(":<br>").toString());
sb.append("<br>");
ClassId classId = player.getClassId();
int level = player.getLevel();
int jobLevel = classId.level();
int newJobLevel = jobLevel + 1;
if (((level >= 20) && (jobLevel == 0)) || ((level >= 40) && (jobLevel == 1)) || (((level >= 76) && (jobLevel == 2) && (Config.ALT_CLASS_MASTER_SETTINGS.isAllowed(newJobLevel))) || (Config.ALT_CLASS_MASTER_STRIDER_UPDATE)))
{
if (((level >= 20) && (jobLevel == 0)) || ((level >= 40) && (jobLevel == 1)) || ((level >= 76) && (jobLevel == 2) && (Config.ALT_CLASS_MASTER_SETTINGS.isAllowed(newJobLevel))))
{
sb.append("Выберите будущую профессию:<br>");
for (ClassId child : ClassId.values()) {
if ((child.childOf(classId)) && (child.level() == newJobLevel))
sb.append(new StringBuilder().append("<br><a action=\"bypass -h npc_").append(getObjectId()).append("_change_class ").append(child.getId()).append("\"> ").append(CharTemplateTable.getInstance().getClassNameById(child.getId())).append("</a>").toString());
}
if ((Config.ALT_CLASS_MASTER_SETTINGS.getRequireItems(newJobLevel) != null) && (!Config.ALT_CLASS_MASTER_SETTINGS.getRequireItems(newJobLevel).isEmpty()))
{
sb.append("<br><br>Предметы, необходимые для смены профессии:");
sb.append("<table width=270>");
for (Integer _itemId : Config.ALT_CLASS_MASTER_SETTINGS.getRequireItems(newJobLevel).keySet())
{
int _count = ((Integer)Config.ALT_CLASS_MASTER_SETTINGS.getRequireItems(newJobLevel).get(_itemId)).intValue();
sb.append(new StringBuilder().append("<tr><td><font color=\"LEVEL\">").append(_count).append("</font></td><td>").append(ItemTable.getInstance().getTemplate(_itemId.intValue()).getName()).append("</td></tr>").toString());
}
sb.append("</table>");
}
}
if (Config.ALT_CLASS_MASTER_STRIDER_UPDATE)
{
sb.append("<table width=270>");
sb.append("<tr><td><br></td></tr>");
sb.append(new StringBuilder().append("<tr><td><a action=\"bypass -h npc_").append(getObjectId()).append("_upgrade_hatchling\">Upgrade Hatchling to Strider</a></td></tr>").toString());
sb.append("</table>");
}
sb.append("<br>");
}
else
{
switch (jobLevel)
{
case 0:
if (Config.ALT_CLASS_MASTER_SETTINGS.isAllowed(1))
sb.append("Возвращайтесь когда достигнете <font color=\"LEVEL\">20</font> уровня, чтобы получить новую профессию!<br>");
else if (Config.ALT_CLASS_MASTER_SETTINGS.isAllowed(2))
sb.append("Come back after your first occupation change.<br>");
else if (Config.ALT_CLASS_MASTER_SETTINGS.isAllowed(3))
sb.append("Come back after your second occupation change.<br>");
else
sb.append("Смена профессии отключена Администрацией.<br>");
break;
case 1:
if (Config.ALT_CLASS_MASTER_SETTINGS.isAllowed(2))
sb.append("Возвращайтесь когда достигнете <font color=\"LEVEL\">40</font> уровня, чтобы получить новую профессию!<br>");
else if (Config.ALT_CLASS_MASTER_SETTINGS.isAllowed(3))
sb.append("Come back after your second occupation change.<br>");
else
sb.append("Смена профессии отключена Администрацией.<br>");
break;
case 2:
if (Config.ALT_CLASS_MASTER_SETTINGS.isAllowed(3))
sb.append("Возвращайтесь когда достигнете <font color=\"LEVEL\">76</font> уровня, чтобы получить новую профессию!<br>");
else
sb.append("Смена профессии отключена Администрацией.<br>");
break;
case 3:
sb.append("Извините, для вас больше нет доступных профессий!.<br>");
}
if (Config.ALT_CLASS_MASTER_STRIDER_UPDATE)
{
sb.append("<table width=270>");
sb.append("<tr><td><br></td></tr>");
sb.append(new StringBuilder().append("<tr><td><a action=\"bypass -h npc_").append(getObjectId()).append("_upgrade_hatchling\">Upgrade Hatchling to Strider</a></td></tr>").toString());
sb.append("</table>");
}
sb.append("<br>");
}
for (Quest q : Quest.findAllEvents())
sb.append(new StringBuilder().append("Event: <a action=\"bypass -h Quest ").append(q.getName()).append("\">").append(q.getDescr()).append("</a><br>").toString());
sb.append("</body></html>");
html.setHtml(sb.toString());
player.sendPacket(html);
}
player.sendPacket(ActionFailed.STATIC_PACKET);
}
public void onBypassFeedback(L2PcInstance player, String command)
{
if (command.startsWith("change_class"))
{
int val = Integer.parseInt(command.substring(13));
if (player.isGM())
{
changeClass(player, val);
if (player.getClassId().level() == 3) {
player.sendPacket(new SystemMessage(SystemMessageId.THIRD_CLASS_TRANSFER));
}
else
{
player.sendPacket(new SystemMessage(SystemMessageId.CLASS_TRANSFER));
}
NpcHtmlMessage html = new NpcHtmlMessage(getObjectId());
String sb = StringUtil.concat(new String[] { "<html><body>Поздравляю! Ваша новая профессия <font color=\"LEVEL\">", CharTemplateTable.getInstance().getClassNameById(player.getClassId().getId()), "</font>.</body></html>" });
html.setHtml(sb);
player.sendPacket(html);
return;
}
ClassId classId = player.getClassId();
ClassId newClassId = ClassId.values()[val];
int level = player.getLevel();
int jobLevel = classId.level();
int newJobLevel = newClassId.level();
if (!Config.ALT_CLASS_MASTER_SETTINGS.isAllowed(newJobLevel)) {
return;
}
if (!newClassId.childOf(classId)) {
return;
}
if (newJobLevel != jobLevel + 1) {
return;
}
if ((level < 20) && (newJobLevel > 1))
return;
if ((level < 40) && (newJobLevel > 2))
return;
if ((level < 76) && (newJobLevel > 3)) {
return;
}
for (Integer _itemId : Config.ALT_CLASS_MASTER_SETTINGS.getRequireItems(newJobLevel).keySet())
{
int _count = ((Integer)Config.ALT_CLASS_MASTER_SETTINGS.getRequireItems(newJobLevel).get(_itemId)).intValue();
if (player.getInventory().getInventoryItemCount(_itemId.intValue(), -1) < _count)
{
player.sendPacket(new SystemMessage(SystemMessageId.NOT_ENOUGH_ITEMS));
return;
}
}
for (Integer _itemId : Config.ALT_CLASS_MASTER_SETTINGS.getRequireItems(newJobLevel).keySet())
{
int _count = ((Integer)Config.ALT_CLASS_MASTER_SETTINGS.getRequireItems(newJobLevel).get(_itemId)).intValue();
player.destroyItemByItemId("ClassMaster", _itemId.intValue(), _count, player, true);
}
for (Integer _itemId : Config.ALT_CLASS_MASTER_SETTINGS.getRewardItems(newJobLevel).keySet())
{
int _count = ((Integer)Config.ALT_CLASS_MASTER_SETTINGS.getRewardItems(newJobLevel).get(_itemId)).intValue();
player.addItem("ClassMaster", _itemId.intValue(), _count, player, true);
}
changeClass(player, val);
NpcHtmlMessage html = new NpcHtmlMessage(getObjectId());
TextBuilder sb = new TextBuilder();
sb.append("<html><body>");
sb.append(new StringBuilder().append(getName()).append(":<br>").toString());
sb.append("<br>");
sb.append(new StringBuilder().append("Поздравляю! Ваша новая профессия <font color=\"LEVEL\">").append(CharTemplateTable.getInstance().getClassNameById(player.getClassId().getId())).append("</font>.").toString());
sb.append("</body></html>");
html.setHtml(sb.toString());
player.sendPacket(html);
player.refreshOverloaded();
player.refreshExpertisePenalty();
}
else if ((command.startsWith("upgrade_hatchling")) && (Config.ALT_CLASS_MASTER_STRIDER_UPDATE))
{
boolean canUpgrade = false;
if (player.getPet() != null)
{
if ((player.getPet().getNpcId() == 12311) || (player.getPet().getNpcId() == 12312) || (player.getPet().getNpcId() == 12313))
{
if (player.getPet().getLevel() >= 55)
canUpgrade = true;
else
player.sendMessage("Уровень вашего детёшыша слишком мал для улучшения.");
}
else
player.sendMessage("Вы должны вызвать вашего детёныша.");
}
else
player.sendMessage("Вы должны вызвать вашего детёныша, если хотите улучшить его.");
if (!canUpgrade)
return;
int[] hatchCollar = { 3500, 3501, 3502 };
int[] striderCollar = { 4422, 4423, 4424 };
for (int i = 0; i < 3; i++)
{
L2ItemInstance collar = player.getInventory().getItemByItemId(hatchCollar[i]);
if (collar == null) {
continue;
}
player.getPet().unSummon(player);
player.destroyItem("ClassMaster", collar, player, true);
player.getInventory().addItem("ClassMaster", striderCollar[i], 1L, player, null);
return;
}
}
else if (command.startsWith("1stClass"))
{
if (player.isGM())
showChatWindow1st(player);
}
else if (command.startsWith("2ndClass"))
{
if (player.isGM())
showChatWindow2nd(player);
}
else if (command.startsWith("3rdClass"))
{
if (player.isGM())
showChatWindow3rd(player);
}
else if (command.startsWith("baseClass"))
{
if (player.isGM())
showChatWindowBase(player);
}
else {
super.onBypassFeedback(player, command);
}
}
private void showChatWindow1st(L2PcInstance player) {
NpcHtmlMessage html = new NpcHtmlMessage(getObjectId());
html.setHtml(createGMClassMasterHtml(FIRST_CLASS_IDS));
player.sendPacket(html);
}
private void showChatWindow2nd(L2PcInstance player)
{
NpcHtmlMessage html = new NpcHtmlMessage(getObjectId());
html.setHtml(createGMClassMasterHtml(SECOND_CLASS_IDS));
player.sendPacket(html);
}
private void showChatWindow3rd(L2PcInstance player)
{
NpcHtmlMessage html = new NpcHtmlMessage(getObjectId());
html.setHtml(createGMClassMasterHtml(THIRD_CLASS_IDS));
player.sendPacket(html);
}
private void showChatWindowBase(L2PcInstance player)
{
NpcHtmlMessage html = new NpcHtmlMessage(getObjectId());
html.setHtml(createGMClassMasterHtml(BASE_CLASS_IDS));
player.sendPacket(html);
}
private void changeClass(L2PcInstance player, int val)
{
if (Config.DEBUG)
_log.info(new StringBuilder().append("Changing class to ClassId: ").append(val).toString());
player.setClassId(val);
if (player.isSubClassActive())
((SubClass)player.getSubClasses().get(Integer.valueOf(player.getClassIndex()))).setClassId(player.getActiveClass());
else
player.setBaseClass(player.getActiveClass());
player.broadcastUserInfo();
}
private String createGMClassMasterHtml(int[] classIds)
{
String objectIdString = String.valueOf(getObjectId());
CharTemplateTable charTemplateTable = CharTemplateTable.getInstance();
StringBuilder sbString = new StringBuilder(100 + classIds.length * 100);
sbString.append("<html><body><table width=200><tr><td><center>GM Class Master:</center></td></tr><tr><td><br></td></tr>");
for (int classId : classIds)
{
StringUtil.append(sbString, new String[] { "<tr><td><a action=\"bypass -h npc_", objectIdString, "_change_class ", String.valueOf(classId), "\">Advance to ", charTemplateTable.getClassNameById(classId), "</a></td></tr>" });
}
sbString.append("</table></body></html>");
return sbString.toString();
}
private void showChatWindowChooseClass(L2PcInstance player)
{
NpcHtmlMessage html = new NpcHtmlMessage(getObjectId());
String objectIdString = String.valueOf(getObjectId());
String sb = StringUtil.concat(new String[] { "<html><body><table width=200><tr><td><center>GM Class Master:</center></td></tr><tr><td><br></td></tr><tr><td><a action=\"bypass -h npc_", objectIdString, "_baseClass\">Базовый класс.</a></td></tr><tr><td><a action=\"bypass -h npc_", objectIdString, "_1stClass\">1-я профессия.</a></td></tr><tr><td><a action=\"bypass -h npc_", objectIdString, "_2ndClass\">2-я профессия.</a></td></tr><tr><td><a action=\"bypass -h npc_", objectIdString, "_3rdClass\">3-я профессия.</a></td></tr><tr><td><br></td></tr></table><br><font color=\"LEVEL\">Обратите внимание, это меню доступно только для ГМ'ов, а не для обычных игроков;)</font></body></html>" });
html.setHtml(sb);
player.sendPacket(html);
player.sendPacket(ActionFailed.STATIC_PACKET);
}
}
Тут нету перевода названия профессий Т_Т
К примеру Monk у меня подписан как монах. Где поменять это?
Сообщений: 5,670
Тем: 145
Зарегистрирован: Nov 2008
Репутация:
33,771
Trololoshka, фраза в коде Код: sb.append("Выберите будущую профессию:<br>");
вы 100% видели у вашего класс мастера, я не зря вас посылал на поиск по файлам.
Web программист\разработчик
— Есть только один способ проделать большую работу — полюбить ее. Если вы к этому не пришли, подождите. Не беритесь за дело.
Сообщений: 87
Тем: 15
Зарегистрирован: Jun 2011
07-29-2011, 08:04 PM
(Сообщение последний раз редактировалось: 07-29-2011, 08:17 PM Trololoshka.)
Не не не. Не то.
Тепреь мне надо понять как сменить названия классов. (Монах сменить на Monk и т.д.)
Добавлено через 43 секунды
Ту фразу и т.д. Я видел.
Я ж ниже написал что мне надо.
Цитата:К примеру Monk у меня подписан как монах. Где поменять это?
Добавлено через 13 минут
Прошу прощения за мое имбицыльство.
Почитав код я понял где это поменять)
Благодряю за помощ
|