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

Нужна помощь, кто шарит в PW Soft

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

Привет всем. Решил я прикрутить bypass класс менеджера в другую html. Сборка PW Soft.

Задумка была такая: стартует новичок, устанавливает ключ в игре, затем после установки ключа появляется html окно с самим ключом и предложением взять профессию:

 

c55b2-clip-16kb.jpg?nocache=1

 

Затем я жму "получить профессию" и после этого никаких действий не происходит. Хотя bypass строчку с класс менеджера я полностью вытянул и вставил в данный html. В чем может быть проблема, подскажите пожалуйста.

 

 

  • Upvote 1

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


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

Привязка скрипта к ид нпц скорей всего проффника

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


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

Привет всем. Решил я прикрутить bypass класс менеджера в другую html. Сборка PW Soft.

Задумка была такая: стартует новичок, устанавливает ключ в игре, затем после установки ключа появляется html окно с самим ключом и предложением взять профессию:

 

c55b2-clip-16kb.jpg?nocache=1

 

Затем я жму "получить профессию" и после этого никаких действий не происходит. Хотя bypass строчку с класс менеджера я полностью вытянул и вставил в данный html. В чем может быть проблема, подскажите пожалуйста.

Не реализированно использование комманды через htm.   Либо функция другая.

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

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


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

Не реализированно использование комманды через htm.   Либо функция другая.

Так я этот bypass и вытянул из htm класс менеджера. По сути должно работать. Как сказали выше, возможно привязка в скрипте по айди npc. Можно ли на PW Soft сделать как я написал в 1 посте? Знаю, что на pain-team такое работает. Если да, то как найти в сборке этот скрипт и что дописать?

  • Upvote 1

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


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

Так я этот bypass и вытянул из htm класс менеджера. По сути должно работать. Как сказали выше, возможно привязка в скрипте по айди npc. Можно ли на PW Soft сделать как я написал в 1 посте? Знаю, что на pain-team такое работает. Если да, то как найти в сборке этот скрипт и что дописать?

Глянь RequestBypassToServer.java  Какие у тебя запросы.

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


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

Так я этот bypass и вытянул из htm класс менеджера. По сути должно работать. Как сказали выше, возможно привязка в скрипте по айди npc. Можно ли на PW Soft сделать как я написал в 1 посте? Знаю, что на pain-team такое работает. Если да, то как найти в сборке этот скрипт и что дописать?

Тоже было интересно как сделать пытался не вышло так же и с тп на квесте, как понял стоит sql запрос на нпц 31227 там по моему стоит класс classmaster если не ошибаюсь а в вашем html нету нпц с которого оно его открывает,

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


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

Тоже было интересно как сделать пытался не вышло так же и с тп на квесте, как понял стоит sql запрос на нпц 31227 там по моему стоит класс classmaster если не ошибаюсь а в вашем html нету нпц с которого оно его открывает,

 

Данное окно не как не связано с каким либо нпц.

 

Глянь RequestBypassToServer.java  Какие у тебя запросы.

 

С чего ты взял что оно у него вообще есть?

  • Upvote 1

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


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

Данное окно не как не связано с каким либо нпц.

 

 

С чего ты взял что оно у него вообще есть?

Если ты не знаешь,то я просвещу.Это пакетный файл.Без него ты вообще не сможешь , не ток у нпц смотреть, и некоторые функции не будут работать .

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


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

Если ты не знаешь,то я просвещу.Это пакетный файл.Без него ты вообще не сможешь , не ток у нпц смотреть, и некоторые функции не будут работать .

 

Я дал ответ выше, с чего ты взял, что он у него есть в открытом доступе?

Его у него нет, тру стори.

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

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


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

lacosta2, on 10 May 2015 - 7:58 PM, said:snapback.png

Тоже было интересно как сделать пытался не вышло так же и с тп на квесте, как понял стоит sql запрос на нпц 31227 там по моему стоит класс classmaster если не ошибаюсь а в вашем html нету нпц с которого оно его открывает,

 

Данное окно не как не связано с каким либо нпц.

 

2terege, on 10 May 2015 - 7:46 PM, said:snapback.png

Глянь RequestBypassToServer.java  Какие у тебя запросы.

 

С чего ты взял что оно у него вообще есть?

  • rep_up.png
  •  
  • 0

/**

не обращайте внимания на автора предыдущего поста, он в каждой теме отвечает, бывает даже то что впервые слышит...

так что это просто флуд для набиваниия постов

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


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

Тоже было интересно как сделать пытался не вышло так же и с тп на квесте, как понял стоит sql запрос на нпц 31227 там по моему стоит класс classmaster если не ошибаюсь а в вашем html нету нпц с которого оно его открывает,

В том и дело, что есть, я взял и вытянул именно с кота htm 

 

 

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

  • Upvote 1

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


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

Глянь RequestBypassToServer.java  Какие у тебя запросы.

Такого нету в сборке.

  • Upvote 1

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


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

Такого нету в сборке.

Напиши в скайп. я посмотрю.А тут пусть кричат что я незнайка.

  • Upvote 1

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


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

Такого нету в сборке.

если сделаешь отпиши

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


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

:rofl:  давно сделали сидели в скайпе угорали как 2terege несет не понятно что :D под конец не сдержался заржал в слух.

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


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

:rofl:  давно сделали сидели в скайпе угорали как 2terege несет не понятно что :D под конец не сдержался заржал в слух.

ну дело в том что это его всё равно не останавливает писать в каждой теме, с поводом и без)), даже с его супер знаниями...

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


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

если сделаешь отпиши

Остальное сами правьте  под себя 

 

 

package scripts.commands.voicedcommandhandlers;

import net.sf.l2j.Config;

import net.sf.l2j.gameserver.datatables.SkillTable;

import net.sf.l2j.gameserver.model.L2Skill;

import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance;

import net.sf.l2j.gameserver.datatables.xml.CharTemplateData;

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.quest.Quest;

import net.sf.l2j.gameserver.network.SystemMessageId;

import net.sf.l2j.gameserver.network.serverpackets.ActionFailed;

import net.sf.l2j.gameserver.network.serverpackets.MagicSkillUse;

import net.sf.l2j.gameserver.network.serverpackets.NpcHtmlMessage;

public class ClassMass  implements IVoicedCommandHandler

{

  private static final String[] VOICED_COMMANDS = { "classmaster","change_class"};

 

  public boolean useVoicedCommand(String command, L2PcInstance player, String target)

  {

  if (command.equalsIgnoreCase("classmaster"))

  {

    ClassId classId = player.getClassId();

    int jobLevel = 0;

    int level = player.getLevel();

    ClassLevel lvl = PlayerClass.values()[classId.getId()].getLevel();

    switch (lvl)

    {

     case First:jobLevel = 1;break;

     case Second:jobLevel = 2;break;

     case Third:jobLevel = 3;break;

     default:jobLevel = 4;

    }

    if (player.isGM()) showChatWindowChooseClass(player);

    else if (((level >= 20 && jobLevel == 1) || (level >= 40 && jobLevel == 2)) && Config.ALLOW_CLASS_MASTER)

     showChatWindow(player, classId.getId());

    else if (level >= 76 && Config.ALLOW_CLASS_MASTER && classId.getId() < 88)

    {

     for (int i = 0; i < SECONDN_CLASS_IDS.length; i++)

     {

      if (classId.getId() == SECONDN_CLASS_IDS)

      {

       NpcHtmlMessage html = new NpcHtmlMessage(getObjectId());

       StringBuilder sb = new StringBuilder();

       sb.append("<html><body<table width=200>");

       sb.append("<tr><td><center>" + CharTemplateData.getInstance().getClassNameById(player.getClassId().getId()) + " Class Master:</center></td></tr>");

       sb.append("<tr><td><br></td></tr>");

       sb.append("<tr><td><a action=\"bypass -h npc_" + getObjectId() + "_change_class " + (88 + i) + "\">Advance to " + CharTemplateData.getInstance().getClassNameById(88 + i) + "</a></td></tr>");

       sb.append("<tr><td><br></td></tr>");

       sb.append("</table></body></html>");

       html.setHtml(sb.toString());

       player.sendPacket(html);

       break;

      }

     }

    }

    else

    {

     NpcHtmlMessage html = new NpcHtmlMessage(getObjectId());

     StringBuilder sb = new StringBuilder();

     sb.append("<html><body>");

     switch (jobLevel)

     {

      case 1:

       sb.append("Come back here when you reach level 20 to change your class.<br>");

      break;

      case 2:

       sb.append("Come back here when you reach level 40 to change your class.<br>");

      break;

      case 3:

       sb.append("There are no more class changes for you.<br>");

      break;

     }

     for (Quest q : Quest.findAllEvents())

      sb.append("Event: <a action=\"bypass -h Quest " + q.getName() + "\">" + q.getDescr() + "</a><br>");

     sb.append("</body></html>");

     html.setHtml(sb.toString());

     player.sendPacket(html);

    }

    player.sendPacket(ActionFailed.STATIC_PACKET);

  }

  else if (command.startsWith("change_class"))

  {

   int val = Integer.parseInt(command.substring(13));

   ClassId classId = player.getClassId();

   int level = player.getLevel();

   int jobLevel = 0;

   int newJobLevel = 0;

   ClassLevel lvlnow = PlayerClass.values()[classId.getId()].getLevel();

   if (player.isGM())

   {

    changeClass(player, val);

    player.rewardSkills();

    if (val >= 88)

     player.sendPacket(SystemMessageId.THIRD_CLASS_TRANSFER);

    else

     player.sendPacket(SystemMessageId.CLASS_TRANSFER);

    NpcHtmlMessage html = new NpcHtmlMessage(getObjectId());

    StringBuilder sb = new StringBuilder();

    sb.append("<html><body>");

    sb.append("You have now become a <font color=\"LEVEL\">" + CharTemplateData.getInstance().getClassNameById(player.getClassId().getId()) + "</font>.");

    sb.append("</body></html>");

    html.setHtml(sb.toString());

    player.sendPacket(html);

    return;

   }

   switch (lvlnow)

   {

    case First:

     jobLevel = 1;

    break;

    case Second:

     jobLevel = 2;

    break;

    case Third:

     jobLevel = 3;

    break;

    default:

     jobLevel = 4;

   }

   if (jobLevel == 4)

    return; // no more job changes

   ClassLevel lvlnext = PlayerClass.values()[val].getLevel();

   switch (lvlnext)

   {

    case First:

     newJobLevel = 1;

    break;

    case Second:

     newJobLevel = 2;

    break;

    case Third:

     newJobLevel = 3;

    break;

    default:

     newJobLevel = 4;

   }

   // prevents changing between same level jobs

   if (newJobLevel != jobLevel + 1)

    return;

   if (level < 20 && newJobLevel > 1)

    return;

   if (level < 40 && newJobLevel > 2)

    return;

   if (level < 75 && newJobLevel > 3)

    return;

   changeClass(player, val);

   player.rewardSkills();

   if (val >= 88)

    player.sendPacket(SystemMessageId.THIRD_CLASS_TRANSFER); // system sound 3rd occupation

   else

    player.sendPacket(SystemMessageId.CLASS_TRANSFER); // system sound for 1st and 2nd occupation

   player.broadcastPacket(new MagicSkillUse(player, player, 5103, 1, 1000, 0));

   HtmlShow(player);

   checks(player);

   checkAutoEq(player,newJobLevel);

  }

    return true;

  }

private void changeClass(L2PcInstance player, int val)

{

  final ClassId currentClassId = player.getClassId();

  if (getMinLevel(currentClassId.level()) > player.getLevel())

   return;

  if (!validateClassId(currentClassId, val))

   return;

  player.setClassId(val);

  if (player.isSubClassActive()){player.getSubClasses().get(player.getClassIndex()).setClassId(player.getActiveClass());}

  else

  {

   ClassId classId = ClassId.getClassIdByOrdinal(player.getActiveClass());

            if (classId.getParent() != null){while (classId.level() == 0){classId = classId.getParent();}}

            player.setBaseClass(classId);

  }

  player.broadcastUserInfo();

  public String[] getVoicedCommandList(){return VOICED_COMMANDS;}

}

  • Upvote 1

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


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

:rofl:  давно сделали сидели в скайпе угорали как 2terege несет не понятно что :D под конец не сдержался заржал в слух.

Можно узнать вы сделали??

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


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

Спасибо большое 2terege за помощь и уделенное время. Помог всё сделать и реализовать данную функцию с 0! 

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


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

Спасибо большое 2terege за помощь и уделенное время. Помог всё сделать и реализовать данную функцию с 0! 

сможешь поделится ???

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


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

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

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

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

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

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

Войти

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

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

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

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

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