Перейти к содержанию
Авторизация  
0000

CLASSMASTER!

Рекомендуемые сообщения

Всем привет! Добавил себе в ядро PW фишку которой не хватает .classmaster, все прекрасно при достижении 20/40/80 лвл появляется окно, выбираешь профу ничего не происходит, вообще никаких ошибок не показывает! Даже через кота не хочет братся профа. Извлек скрипт из ядра другого pw, полностью то есть конфиги и тд. успешно скомпил без ошибок! Уже неделю ищу, но никаких зацепок даже.

 Кто может хоть чем то помочь, зацепку хотя бы ?

Спойлер

package scripts.commands.voicedcommandhandlers;

import java.util.List;
import net.sf.l2j.Config;
import net.sf.l2j.Config.EventReward;
import net.sf.l2j.gameserver.cache.HtmCache;
import net.sf.l2j.gameserver.cache.Static;
import net.sf.l2j.gameserver.datatables.CharTemplateTable;
import net.sf.l2j.gameserver.datatables.ClassRewardsData;
import net.sf.l2j.gameserver.datatables.ItemTable;
import net.sf.l2j.gameserver.model.L2ItemInstance;
import net.sf.l2j.gameserver.model.L2Object;
import net.sf.l2j.gameserver.model.PcInventory;
import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance;
import net.sf.l2j.gameserver.model.base.ClassId;
import net.sf.l2j.gameserver.model.base.ClassLevel;
import net.sf.l2j.gameserver.model.base.PlayerClass;
import net.sf.l2j.gameserver.model.base.SubClass;
import net.sf.l2j.gameserver.network.serverpackets.L2GameServerPacket;
import net.sf.l2j.gameserver.network.serverpackets.NpcHtmlMessage;
import scripts.commands.IVoicedCommandHandler;

public class ClassMaster implements IVoicedCommandHandler {
  private static final String[] VOICED_COMMANDS = new String[] { "classmaster" };
  
  public boolean useVoicedCommand(String command, L2PcInstance player, String target) {
    if (command.equalsIgnoreCase("classmaster")) {
      showWelcome(player);
    } else if (command.startsWith("classmaster_")) {
      String classmaster = command.substring(12).trim();
      if (classmaster.startsWith("changeclass")) {
        int class_id = Integer.parseInt(classmaster.substring(11).trim());
        profList(player, class_id);
      } else if (classmaster.startsWith("reward")) {
        int set_id = Integer.parseInt(classmaster.substring(6).trim());
        giveReward(player, set_id);
      } 
    } 
    return true;
  }
  
  private void giveReward(L2PcInstance player, int set_id) {
    if (!player.getShadeItems())
      return; 
    player.setShadeItems(false);
    PcInventory pcInventory = player.getInventory();
    List<ClassRewardsData.ClassReward> classreward = (List<ClassRewardsData.ClassReward>)ClassRewardsData.getInstance().getClassRewards().get(set_id);
    if (classreward == null) {
      player.sendCritMessage("Ошибка, набора не существует");
      return;
    } 
    for (ClassRewardsData.ClassReward value : classreward) {
      L2ItemInstance item = ItemTable.getInstance().createItem("ClassReward", value.id, value.count, player);
      player.addItem("ClassReward", item, null, true);
      if (value.equip && item.isEquipable())
        pcInventory.equipItem(item); 
      if (value.enchant > 0 && item.canBeEnchanted())
        item.setEnchantLevel(value.enchant); 
    } 
    player.sendChanges();
    player.sendItems(true);
    ClassLevel classLevel = PlayerClass.values()[player.getClassId().getId()].getLevel();
    if ((classLevel == ClassLevel.Second && player.getLevel() >= 40) || (classLevel == ClassLevel.Third && player.getLevel() >= 76))
      useVoicedCommand("classmaster", player, null); 
  }
  
  private void showWelcome(L2PcInstance player) {
    ClassId class_id = player.getClassId();
    int class_level = class_id.level();
    int new_class_level = class_level + 1;
    int p_level = player.getLevel();
    if (((p_level >= 20 && class_level == 0) || (p_level >= 40 && class_level == 1) || (p_level >= 76 && class_level == 2)) && class_id.getId() < 88) {
      NpcHtmlMessage htm = new NpcHtmlMessage(0);
      htm.setFile("data/html/classmaster/ClassList.htm");
      StringBuilder html = new StringBuilder();
      for (ClassId child : ClassId.values()) {
        if (child.childOf(class_id) && child.level() == new_class_level)
          html.append("<tr><td align=center><a action=\"bypass -h vch_classmaster_changeclass ").append(child.getId()).append("\">").append(CharTemplateTable.getClassNameById(child.getId())).append("</a></td></tr>"); 
      } 
      htm.replace("%classname%", CharTemplateTable.getClassNameById(class_id.getId()));
      htm.replace("%classlist%", html.toString());
      player.sendPacket((L2GameServerPacket)htm);
    } else {
      switch (class_level) {
        case 0:
          player.sendCritMessage("Попробуйте, когда получите 20 уровень.");
          break;
        case 1:
          player.sendCritMessage("Попробуйте, когда получите 40 уровень.");
          break;
        case 2:
          player.sendCritMessage("Попробуйте, когда получите 76 уровень.");
          break;
        case 3:
          player.sendCritMessage("Нет доступных профессий.");
          break;
      } 
    } 
  }
  
  private void profList(L2PcInstance player, int class_id) {
    int class_level = player.getClassId().level();
    int new_class_level = class_level + 1;
    int p_level = player.getLevel();
    EventReward pay = (EventReward)Config.CLASS_MASTERS_PRICES.get(Integer.valueOf(new_class_level));
    if (pay != null) {
      if (player.getItemCount(pay.id) < pay.count) {
        player.sendCritMessage("C" + pay.count + " " + ItemTable.getInstance().getTemplate(pay.id).getName());
        return;
      } 
      player.destroyItemByItemId("clasmaster", pay.id, pay.count, (L2Object)player, true);
    } 
    changeClass(player, class_id);
    player.checkAllowedSkills();
    if (class_id >= 88) {
      player.sendPacket((L2GameServerPacket)Static.THIRD_CLASS_TRANSFER);
    } else {
      player.sendPacket((L2GameServerPacket)Static.CLASS_TRANSFER);
    } 
    if (Config.REWARD_CLASS)
      if ((Config.REWARD_FIRST_CLASS && class_level == 0) || (Config.REWARD_SECOND_CLASS && class_level == 1) || (Config.REWARD_THIRD_CLASS && class_level == 2)) {
        player.setShadeItems(true);
        NpcHtmlMessage html = NpcHtmlMessage.id(0);
        String htm = HtmCache.getInstance().getHtm("data/html/classmaster/Up_" + new_class_level + ".htm");
        html.setHtml(htm);
        html.replace("%ClassName%", CharTemplateTable.getClassNameById(player.getClassId().getId()));
        player.sendPacket((L2GameServerPacket)html);
      }  
    if ((!Config.REWARD_CLASS && ((new_class_level == 1 && p_level >= 40) || (new_class_level == 2 && p_level >= 76))) || (!Config.REWARD_FIRST_CLASS && class_level == 0) || (!Config.REWARD_SECOND_CLASS && class_level == 1))
      showWelcome(player); 
  }
  
  private void changeClass(L2PcInstance player, int val) {
    player.abortAttack();
    player.abortCast();
    player.setIsParalyzed(true);
    player.setClassId(val);
    if (player.isSubClassActive()) {
      ((SubClass)player.getSubClasses().get(Integer.valueOf(player.getClassIndex()))).setClassId(player.getActiveClass());
    } else {
      player.setBaseClass(player.getActiveClass());
    } 
    player.rewardSkills();
    player.store();
    player.broadcastUserInfo();
    player.setIsParalyzed(false);
  }
  
  public String[] getVoicedCommandList() {
    return VOICED_COMMANDS;
  }
}
Спойлер


<html><title>Class Master</title><body><center><br>
	
	<font color="e15800">Смена професси для %classname%</font>
	<img src="l2ui.squaregray" width="295" height="1">
	<table width=295>
		%classlist%
	</table>
<img src="l2ui.squaregray" width="295" height="1"><br>
</center></body></html>

 

 

 

Изменено пользователем 0000

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
25 минут назад, 0000 сказал:

Всем привет! Добавил себе в ядро PW фишку которой не хватает .classmaster, все прекрасно при достижении 20/40/80 лвл появляется окно, выбираешь профу ничего не происходит, вообще никаких ошибок не показывает! Даже через кота не хочет братся профа. Извлек скрипт из ядра другого pw, полностью то есть конфиги и тд. успешно скомпил без ошибок! Уже неделю ищу, но никаких зацепок даже.

 Кто может хоть чем то помочь, зацепку хотя бы ?

  classmaster (Показать контент)


package scripts.commands.voicedcommandhandlers;

import java.util.List;
import net.sf.l2j.Config;
import net.sf.l2j.Config.EventReward;
import net.sf.l2j.gameserver.cache.HtmCache;
import net.sf.l2j.gameserver.cache.Static;
import net.sf.l2j.gameserver.datatables.CharTemplateTable;
import net.sf.l2j.gameserver.datatables.ClassRewardsData;
import net.sf.l2j.gameserver.datatables.ItemTable;
import net.sf.l2j.gameserver.model.L2ItemInstance;
import net.sf.l2j.gameserver.model.L2Object;
import net.sf.l2j.gameserver.model.PcInventory;
import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance;
import net.sf.l2j.gameserver.model.base.ClassId;
import net.sf.l2j.gameserver.model.base.ClassLevel;
import net.sf.l2j.gameserver.model.base.PlayerClass;
import net.sf.l2j.gameserver.model.base.SubClass;
import net.sf.l2j.gameserver.network.serverpackets.L2GameServerPacket;
import net.sf.l2j.gameserver.network.serverpackets.NpcHtmlMessage;
import scripts.commands.IVoicedCommandHandler;

public class ClassMaster implements IVoicedCommandHandler {
  private static final String[] VOICED_COMMANDS = new String[] { "classmaster" };
  
  public boolean useVoicedCommand(String command, L2PcInstance player, String target) {
    if (command.equalsIgnoreCase("classmaster")) {
      showWelcome(player);
    } else if (command.startsWith("classmaster_")) {
      String classmaster = command.substring(12).trim();
      if (classmaster.startsWith("changeclass")) {
        int class_id = Integer.parseInt(classmaster.substring(11).trim());
        profList(player, class_id);
      } else if (classmaster.startsWith("reward")) {
        int set_id = Integer.parseInt(classmaster.substring(6).trim());
        giveReward(player, set_id);
      } 
    } 
    return true;
  }
  
  private void giveReward(L2PcInstance player, int set_id) {
    if (!player.getShadeItems())
      return; 
    player.setShadeItems(false);
    PcInventory pcInventory = player.getInventory();
    List<ClassRewardsData.ClassReward> classreward = (List<ClassRewardsData.ClassReward>)ClassRewardsData.getInstance().getClassRewards().get(set_id);
    if (classreward == null) {
      player.sendCritMessage("Ошибка, набора не существует");
      return;
    } 
    for (ClassRewardsData.ClassReward value : classreward) {
      L2ItemInstance item = ItemTable.getInstance().createItem("ClassReward", value.id, value.count, player);
      player.addItem("ClassReward", item, null, true);
      if (value.equip && item.isEquipable())
        pcInventory.equipItem(item); 
      if (value.enchant > 0 && item.canBeEnchanted())
        item.setEnchantLevel(value.enchant); 
    } 
    player.sendChanges();
    player.sendItems(true);
    ClassLevel classLevel = PlayerClass.values()[player.getClassId().getId()].getLevel();
    if ((classLevel == ClassLevel.Second && player.getLevel() >= 40) || (classLevel == ClassLevel.Third && player.getLevel() >= 76))
      useVoicedCommand("classmaster", player, null); 
  }
  
  private void showWelcome(L2PcInstance player) {
    ClassId class_id = player.getClassId();
    int class_level = class_id.level();
    int new_class_level = class_level + 1;
    int p_level = player.getLevel();
    if (((p_level >= 20 && class_level == 0) || (p_level >= 40 && class_level == 1) || (p_level >= 76 && class_level == 2)) && class_id.getId() < 88) {
      NpcHtmlMessage htm = new NpcHtmlMessage(0);
      htm.setFile("data/html/classmaster/ClassList.htm");
      StringBuilder html = new StringBuilder();
      for (ClassId child : ClassId.values()) {
        if (child.childOf(class_id) && child.level() == new_class_level)
          html.append("<tr><td align=center><a action=\"bypass -h vch_classmaster_changeclass ").append(child.getId()).append("\">").append(CharTemplateTable.getClassNameById(child.getId())).append("</a></td></tr>"); 
      } 
      htm.replace("%classname%", CharTemplateTable.getClassNameById(class_id.getId()));
      htm.replace("%classlist%", html.toString());
      player.sendPacket((L2GameServerPacket)htm);
    } else {
      switch (class_level) {
        case 0:
          player.sendCritMessage("Попробуйте, когда получите 20 уровень.");
          break;
        case 1:
          player.sendCritMessage("Попробуйте, когда получите 40 уровень.");
          break;
        case 2:
          player.sendCritMessage("Попробуйте, когда получите 76 уровень.");
          break;
        case 3:
          player.sendCritMessage("Нет доступных профессий.");
          break;
      } 
    } 
  }
  
  private void profList(L2PcInstance player, int class_id) {
    int class_level = player.getClassId().level();
    int new_class_level = class_level + 1;
    int p_level = player.getLevel();
    EventReward pay = (EventReward)Config.CLASS_MASTERS_PRICES.get(Integer.valueOf(new_class_level));
    if (pay != null) {
      if (player.getItemCount(pay.id) < pay.count) {
        player.sendCritMessage("C" + pay.count + " " + ItemTable.getInstance().getTemplate(pay.id).getName());
        return;
      } 
      player.destroyItemByItemId("clasmaster", pay.id, pay.count, (L2Object)player, true);
    } 
    changeClass(player, class_id);
    player.checkAllowedSkills();
    if (class_id >= 88) {
      player.sendPacket((L2GameServerPacket)Static.THIRD_CLASS_TRANSFER);
    } else {
      player.sendPacket((L2GameServerPacket)Static.CLASS_TRANSFER);
    } 
    if (Config.REWARD_CLASS)
      if ((Config.REWARD_FIRST_CLASS && class_level == 0) || (Config.REWARD_SECOND_CLASS && class_level == 1) || (Config.REWARD_THIRD_CLASS && class_level == 2)) {
        player.setShadeItems(true);
        NpcHtmlMessage html = NpcHtmlMessage.id(0);
        String htm = HtmCache.getInstance().getHtm("data/html/classmaster/Up_" + new_class_level + ".htm");
        html.setHtml(htm);
        html.replace("%ClassName%", CharTemplateTable.getClassNameById(player.getClassId().getId()));
        player.sendPacket((L2GameServerPacket)html);
      }  
    if ((!Config.REWARD_CLASS && ((new_class_level == 1 && p_level >= 40) || (new_class_level == 2 && p_level >= 76))) || (!Config.REWARD_FIRST_CLASS && class_level == 0) || (!Config.REWARD_SECOND_CLASS && class_level == 1))
      showWelcome(player); 
  }
  
  private void changeClass(L2PcInstance player, int val) {
    player.abortAttack();
    player.abortCast();
    player.setIsParalyzed(true);
    player.setClassId(val);
    if (player.isSubClassActive()) {
      ((SubClass)player.getSubClasses().get(Integer.valueOf(player.getClassIndex()))).setClassId(player.getActiveClass());
    } else {
      player.setBaseClass(player.getActiveClass());
    } 
    player.rewardSkills();
    player.store();
    player.broadcastUserInfo();
    player.setIsParalyzed(false);
  }
  
  public String[] getVoicedCommandList() {
    return VOICED_COMMANDS;
  }
}
  окно проф (Скрыть контент)



<html><title>Class Master</title><body><center><br>
	
	<font color="e15800">Смена професси для %classname%</font>
	<img src="l2ui.squaregray" width="295" height="1">
	<table width=295>
		%classlist%
	</table>
<img src="l2ui.squaregray" width="295" height="1"><br>
</center></body></html>

 

 

 

а этот хендлер зарегистрирован?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Полностью, вытащил и закинул(не тупо, а именно вникая что куда). Думаю что зарегистрирован(в игре .classmaster появляется окно) Честно не совсем понял о чем именно речь, в каком файле регистрируется ? 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
7 минут назад, 0000 сказал:

Полностью, вытащил и закинул(не тупо, а именно вникая что куда). Думаю что зарегистрирован(в игре .classmaster появляется окно) Честно не совсем понял о чем именно речь, в каком файле регистрируется ? 

в VoicedCommandHandler

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Да, вот скрин в игре, выбарешь дальше никакой реакции или ошибок в гс

 

Спойлер

/*
 * 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 2, 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, write to the Free Software
 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
 * 02111-1307, USA.
 *
 * http://www.gnu.org/copyleft/gpl.html
 */
package scripts.commands;

import java.util.Map;
import java.util.logging.Logger;

import javolution.util.FastMap;
import net.sf.l2j.Config;
import scripts.commands.voicedcommandhandlers.*;
import net.sf.l2j.util.log.AbstractLogger;

/**
 * This class ...
 *
 * @version $Revision: 1.1.4.5 $ $Date: 2005/03/27 15:30:09 $
 */
public class VoicedCommandHandler {

    private static Logger _log = AbstractLogger.getLogger(VoicedCommandHandler.class.getName());
    private static VoicedCommandHandler _instance;
    private Map<String, IVoicedCommandHandler> _datatable;

    public static VoicedCommandHandler getInstance() {
        if (_instance == null) {
            _instance = new VoicedCommandHandler();
        }
        return _instance;
    }

    private VoicedCommandHandler() {
        _datatable = new FastMap<String, IVoicedCommandHandler>();
        if (Config.CMD_ADENA_COL) {
            registerVoicedCommandHandler(new AdenaCol());
        }
        if (Config.CMD_EVENTS) {
            registerVoicedCommandHandler(new Events());
        }
        if (Config.CMD_MENU) {
            registerVoicedCommandHandler(new Menu());
        }
        if (Config.ALT_ALLOW_OFFLINE_TRADE) {
            registerVoicedCommandHandler(new Offline());
        }
        if (Config.L2JMOD_ALLOW_WEDDING) {
            registerVoicedCommandHandler(new Wedding());
        }
        registerVoicedCommandHandler(new Silence());

        registerVoicedCommandHandler(new BlockBuff());
        registerVoicedCommandHandler(new Security());
        //модераторы
        registerVoicedCommandHandler(new ModBanChat());
        registerVoicedCommandHandler(new ModKick());
        registerVoicedCommandHandler(new ModTitle());
        registerVoicedCommandHandler(new ModHelp());
        registerVoicedCommandHandler(new ModSpecial());
		    if (Config.ALLOW_CLASS_MASTERS)
      registerVoicedCommandHandler((IVoicedCommandHandler)new ClassMaster()); 

        _log.config("VoicedCommandHandler: Loaded " + _datatable.size() + " handlers.");
    }

    public void registerVoicedCommandHandler(IVoicedCommandHandler handler) {
        String[] ids = handler.getVoicedCommandList();
        for (int i = 0; i < ids.length; i++) {
            //if (Config.DEBUG) _log.fine("Adding handler for command "+ids[i]);
            _datatable.put(ids[i], handler);
        }
    }

    public IVoicedCommandHandler getVoicedCommandHandler(String voicedCommand) {
        String command = voicedCommand;
        if (voicedCommand.indexOf(" ") != -1) {
            command = voicedCommand.substring(0, voicedCommand.indexOf(" "));
        }
        //if (Config.DEBUG)
        //_log.fine("getting handler for command: "+command+" -> "+(_datatable.get(command) != null));
        return _datatable.get(command);
    }

    /**
     * @return
     */
    public int size() {
        return _datatable.size();
    }
}

 

 

Безымянный.jpg

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

ну тогда только добавить логирование/дебаг и смотреть на каком моменте останавливается выполнение

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
7 минут назад, CalypsoToolz сказал:

ну тогда только добавить логирование/дебаг и смотреть на каком моменте останавливается выполнение

Спойлер

2020.08.20 00:54:09,817	INFO	1	net.sf.l2j.gameserver.AutoRestart	#Auto Restart: scheduled at 5 hour. (1685 minutes remaining.)
2020.08.20 00:54:09,840	SEVERE	264	net.sf.l2j.gameserver.datatables.CustomServerData	GameServer [ERROR]: Failed to restore offline traders. Reason: null
2020.08.20 00:54:09,883	INFO	263	net.sf.l2j.gameserver.datatables.FakePlayersTablePlus	FakePlayersTablePlus: Cached 6000 players.
2020.08.20 00:54:11,496	WARNING	98	net.sf.l2j.gameserver.ai.AbstractAI	Wrong Delay Set in Npc Walker Functions = 0 secs, using default delay: 0 secs instead.
2020.08.20 00:54:12,480	WARNING	41	net.sf.l2j.gameserver.ai.AbstractAI	Wrong Delay Set in Npc Walker Functions = 0 secs, using default delay: 0 secs instead.
2020.08.20 00:54:17,778	CONFIG	266	net.sf.l2j.gameserver.datatables.SpawnTable	SpawnTable [XML]: spawned 4 territories.
2020.08.20 00:54:23,011	WARNING	45	net.sf.l2j.gameserver.ai.AbstractAI	Wrong Delay Set in Npc Walker Functions = 0 secs, using default delay: 0 secs instead.
2020.08.20 00:54:28,594	WARNING	118	net.sf.l2j.gameserver.ai.AbstractAI	Wrong Delay Set in Npc Walker Functions = 0 secs, using default delay: 0 secs instead.
2020.08.20 00:54:30,139	WARNING	98	net.sf.l2j.gameserver.ai.AbstractAI	Wrong Delay Set in Npc Walker Functions = 0 secs, using default delay: 0 secs instead.
2020.08.20 00:54:33,273	WARNING	88	net.sf.l2j.gameserver.ai.AbstractAI	Wrong Delay Set in Npc Walker Functions = 0 secs, using default delay: 0 secs instead.
2020.08.20 00:54:51,963	WARNING	77	net.sf.l2j.gameserver.ai.AbstractAI	Wrong Delay Set in Npc Walker Functions = 0 secs, using default delay: 0 secs instead.
2020.08.20 00:55:00,044	WARNING	135	net.sf.l2j.gameserver.ai.AbstractAI	Wrong Delay Set in Npc Walker Functions = 0 secs, using default delay: 0 secs instead.
2020.08.20 00:55:01,558	WARNING	48	net.sf.l2j.gameserver.ai.AbstractAI	Wrong Delay Set in Npc Walker Functions = 0 secs, using default delay: 0 secs instead.
2020.08.20 00:55:08,532	WARNING	128	net.sf.l2j.gameserver.ai.AbstractAI	Wrong Delay Set in Npc Walker Functions = 0 secs, using default delay: 0 secs instead.
2020.08.20 00:55:14,795	WARNING	31	net.sf.l2j.gameserver.ai.AbstractAI	Wrong Delay Set in Npc Walker Functions = 0 secs, using default delay: 0 secs instead.
2020.08.20 00:55:16,914	WARNING	97	net.sf.l2j.gameserver.ai.AbstractAI	Wrong Delay Set in Npc Walker Functions = 0 secs, using default delay: 0 secs instead.

 

Ничего не показывает ( 

вот у меня есть догадка, но это так мысль 

старое окно профы имеет вид  

<td><center><a action="bypass -h npc_%objectId%_class_master">Получить профессию</a></center></td>

новое такой 

 

<td><center><a action="bypass -h vch_classmaster">Получить профессию</a></center></td>

Может в этом есть что то куда можно ковырнуть, на другом ядре то пашет все :mellow:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
6 минут назад, 0000 сказал:
  Скрыть контент


2020.08.20 00:54:09,817	INFO	1	net.sf.l2j.gameserver.AutoRestart	#Auto Restart: scheduled at 5 hour. (1685 minutes remaining.)
2020.08.20 00:54:09,840	SEVERE	264	net.sf.l2j.gameserver.datatables.CustomServerData	GameServer [ERROR]: Failed to restore offline traders. Reason: null
2020.08.20 00:54:09,883	INFO	263	net.sf.l2j.gameserver.datatables.FakePlayersTablePlus	FakePlayersTablePlus: Cached 6000 players.
2020.08.20 00:54:11,496	WARNING	98	net.sf.l2j.gameserver.ai.AbstractAI	Wrong Delay Set in Npc Walker Functions = 0 secs, using default delay: 0 secs instead.
2020.08.20 00:54:12,480	WARNING	41	net.sf.l2j.gameserver.ai.AbstractAI	Wrong Delay Set in Npc Walker Functions = 0 secs, using default delay: 0 secs instead.
2020.08.20 00:54:17,778	CONFIG	266	net.sf.l2j.gameserver.datatables.SpawnTable	SpawnTable [XML]: spawned 4 territories.
2020.08.20 00:54:23,011	WARNING	45	net.sf.l2j.gameserver.ai.AbstractAI	Wrong Delay Set in Npc Walker Functions = 0 secs, using default delay: 0 secs instead.
2020.08.20 00:54:28,594	WARNING	118	net.sf.l2j.gameserver.ai.AbstractAI	Wrong Delay Set in Npc Walker Functions = 0 secs, using default delay: 0 secs instead.
2020.08.20 00:54:30,139	WARNING	98	net.sf.l2j.gameserver.ai.AbstractAI	Wrong Delay Set in Npc Walker Functions = 0 secs, using default delay: 0 secs instead.
2020.08.20 00:54:33,273	WARNING	88	net.sf.l2j.gameserver.ai.AbstractAI	Wrong Delay Set in Npc Walker Functions = 0 secs, using default delay: 0 secs instead.
2020.08.20 00:54:51,963	WARNING	77	net.sf.l2j.gameserver.ai.AbstractAI	Wrong Delay Set in Npc Walker Functions = 0 secs, using default delay: 0 secs instead.
2020.08.20 00:55:00,044	WARNING	135	net.sf.l2j.gameserver.ai.AbstractAI	Wrong Delay Set in Npc Walker Functions = 0 secs, using default delay: 0 secs instead.
2020.08.20 00:55:01,558	WARNING	48	net.sf.l2j.gameserver.ai.AbstractAI	Wrong Delay Set in Npc Walker Functions = 0 secs, using default delay: 0 secs instead.
2020.08.20 00:55:08,532	WARNING	128	net.sf.l2j.gameserver.ai.AbstractAI	Wrong Delay Set in Npc Walker Functions = 0 secs, using default delay: 0 secs instead.
2020.08.20 00:55:14,795	WARNING	31	net.sf.l2j.gameserver.ai.AbstractAI	Wrong Delay Set in Npc Walker Functions = 0 secs, using default delay: 0 secs instead.
2020.08.20 00:55:16,914	WARNING	97	net.sf.l2j.gameserver.ai.AbstractAI	Wrong Delay Set in Npc Walker Functions = 0 secs, using default delay: 0 secs instead.

 

Ничего не показывает ( 

вот у меня есть догадка, но это так мысль 

старое окно профы имеет вид  


<td><center><a action="bypass -h npc_%objectId%_class_master">Получить профессию</a></center></td>

новое такой 

 


<td><center><a action="bypass -h vch_classmaster">Получить профессию</a></center></td>

Может в этом есть что то куда можно ковырнуть, на другом ядре то пашет все :mellow:

Нет всплывающего окна ?     %class_master_list%  

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
21 час назад, ammy сказал:

Нет всплывающего окна ?     %class_master_list%  

Спойлер

<html><title>Class Master</title><body><center><br>
	
	<font color="e15800">Смена професси для %classname%</font>
	<img src="l2ui.squaregray" width="295" height="1">
	<table width=295>
		%classlist%
	</table>
<img src="l2ui.squaregray" width="295" height="1"><br>
</center></body></html>

 

Когда всплывает(команда .classmaster или уровень нужный), то выскакивает это окно.

Ну вообще по идее почти полностью изменен файл L2ClassMasterInstance.java так что окна те что должны по идее

 

А может кто-то знает про эту функцию в PW SOFT, в конфигах есть во многих шаровых ядрах и в исхонике так же, но она не пашет и вот мучаюсь с этим окном...

JOB_WINDOW = Boolean.parseBoolean(altSettings.getProperty("JobWindow", "False"));

 

 

Есть какие то мануалы или pw ядро с этим проф окном у кого нибудь, хотя бы через alt+b, поделитесь пожалуйста или ссылку скиньте!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация  

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×
×
  • Создать...