Рейтинг темы:
  • 0 Голос(ов) - 0 в среднем
  • 1
  • 2
  • 3
  • 4
  • 5
NuibieGuid баф с 1 lvl
#1
Не судите строго. только начал ковырять линеевский сервер
Сервер HF LRServ
(сборку даже не знаю где посмотреть)

в общем хотел изменить Нубо бафера чтобы она бафал с 1 лвл. единственный скрипт где я нашел подобное это SuppurtMagic
поменял условия и сделал с 1 по 76 лвл. компильнул, вбросил.
запускаю сервер, коннектюсь. никакой реакции , как бафал с 6 так и бафает. перезапуск не помогает. потом просто чтоб без условий чтонибудь бафнул ... тоже никакой реакции. перерыл ядро поиском по содержимому, SuppurtMagic единственный класс который содержит то что надо, но при изменении реакции никакой, будто гдето в другом месте нужный класс, или закэширован старый код (хотя в яве такого вроде нет).
прилагаю класс
Код:
package services;

import java.util.ArrayList;
import java.util.List;
import l2p.gameserver.model.Player;
import l2p.gameserver.model.base.ClassId;
import l2p.gameserver.model.base.Race;
import l2p.gameserver.model.instances.NpcInstance;
import l2p.gameserver.serverpackets.L2GameServerPacket;
import l2p.gameserver.serverpackets.MagicSkillUse;
import l2p.gameserver.tables.SkillTable;
import l2p.gameserver.templates.PlayerTemplate;

public class SupportMagic extends l2p.gameserver.scripts.Functions
{
  private static final int[][] _mageBuff = { { 1, 76, 4322, 1 }, { 1, 76, 4323, 1 }, { 1, 76, 5637, 1 }, { 1, 76, 4328, 1 }, { 1, 76, 4329, 1 }, { 1, 76, 4330, 1 }, { 1, 76, 4331, 1 }, { 16, 34, 4338, 1 } , { 1, 34, 1323, 1 }, { 1, 76, 5103, 1 }, { 1, 40, 1217, 1 }};
  

  private static final int[][] _warrBuff = { { 1, 76, 4322, 1 }, { 1, 76, 4323, 1 }, { 1, 76, 5637, 1 }, { 1, 76, 4324, 1 }, { 1, 76, 4325, 1 }, { 1, 76, 4326, 1 }, { 1, 39, 4327, 1 }, { 40, 76, 5632, 1 }, { 16, 34, 4338, 1 } , { 1, 34, 1323, 1 }, { 1, 76, 5103, 1 }, { 1, 40, 1217, 1 }};
  
  private static final int[][] _summonBuff = { { 1, 76, 4322, 1 }, { 1, 76, 4323, 1 }, { 1, 76, 5637, 1 }, { 1, 76, 4324, 1 }, { 1, 76, 4325, 1 }, { 1, 76, 4326, 1 }, { 1, 76, 4328, 1 }, { 1, 76, 4329, 1 }, { 1, 76, 4330, 1 }, { 1, 76, 4331, 1 }, { 1, 39, 4327, 1 }, { 40, 76, 5632, 1 } , { 1, 34, 1323, 1 }, { 1, 76, 5103, 1 }, { 1, 40, 1217, 1 }};
  
  private static final int minSupLvl = 1;
  
  private static final int maxSupLvl = 76;
  

  public SupportMagic() {}
  
  public void getSupportMagic()
  {
    Player player = getSelf();
    NpcInstance npc = getNpc();
    
    doSupportMagic(npc, player, false);
  }
  
  public void getSupportServitorMagic() {
    Player player = getSelf();
    NpcInstance npc = getNpc();
    
    doSupportMagic(npc, player, true);
  }
  
  public void getProtectionBlessing() {
    Player player = getSelf();
    NpcInstance npc = getNpc();
    

    if (player.getKarma() > 0) {
      return;
    }
    if ((player.getLevel() > 39) || (player.getClassId().getLevel() >= 3)) {
      show("default/newbie_blessing_no.htm", player, npc, new Object[0]);
      return;
    }
    npc.doCast(SkillTable.getInstance().getInfo(5182, 1), player, true);
  }
  
  public static void doSupportMagic(NpcInstance npc, Player player, boolean servitor)
  {
    if (player.isCursedWeaponEquipped()) {
      return;
    }
    
    int lvl = player.getLevel();
    List<l2p.gameserver.model.Creature> target = new ArrayList();
    
    if ((servitor) && ((player.getPet() == null) || (!player.getPet().isSummon()))) {
      show("default/newbie_nosupport_servitor.htm", player, npc, new Object[0]);
      return;
    }
    
    if (lvl < 1) {
      show("default/newbie_nosupport_min.htm", player, npc, new Object[0]);
       target.add(player);
       npc.broadcastPacket(new L2GameServerPacket[] { new MagicSkillUse(npc, player, 1217, 1, 1, 0L) });
       npc.callSkill(SkillTable.getInstance().getInfo(1217, 1), target, true);
      return;
    }
    if (lvl > 76) {
      show("default/newbie_nosupport_max.htm", player, npc, new Object[0]);
      return;
    }
    

    
    
    if (servitor) {
      target.add(player.getPet());
      
      for (int[] buff : _summonBuff) {
        if ((lvl >= buff[0]) && (lvl <= buff[1])) {
          npc.broadcastPacket(new L2GameServerPacket[] { new MagicSkillUse(npc, player.getPet(), buff[2], buff[3], 1, 0L) });
          npc.callSkill(SkillTable.getInstance().getInfo(buff[2], buff[3]), target, true);
        }
      }
    } else {
      target.add(player);
      
      if ((!player.isMageClass()) || (player.getTemplate().race == Race.orc)) {
        for (int[] buff : _warrBuff) {
          if ((lvl >= buff[0]) && (lvl <= buff[1])) {
            npc.broadcastPacket(new L2GameServerPacket[] { new MagicSkillUse(npc, player, buff[2], buff[3], 1, 0L) });
            npc.callSkill(SkillTable.getInstance().getInfo(buff[2], buff[3]), target, true);
          }
        }
      } else {
        for (int[] buff : _mageBuff) {
          if ((lvl >= buff[0]) && (lvl <= buff[1])) {
            npc.broadcastPacket(new L2GameServerPacket[] { new MagicSkillUse(npc, player, buff[2], buff[3], 1, 0L) });
            npc.callSkill(SkillTable.getInstance().getInfo(buff[2], buff[3]), target, true);
          }
        }
      }
    }
  }
}
/* Location:              D:\Server l2 NEXT\LRServ(YourGame.su)\LRServ\L2J\serverslibs\scripts.jar!\services\SupportMagic.class
* Java compiler version: 7 (51.0)
* JD-Core Version:       0.7.1
*/

кто подскажет в чем может быть дело?
Ответ
#2
у вас декомпил, как вы собрались обратно заливать в скрипты?
Ответ
#3
исходники не шли вместе с этой сборкой. смотрел исходники от другой сборки сверял, декомпил коректный. все вроде как в исходнике получился. я конечно не сильно разбираюсь в этом, но изменение этого файла вообще никак не влияют. никаких ошибок ничего.
делал я как гдето было описано в инете. отдекомпиленный клас редактировал, компиллил с помощью jdk. потом открывал jar винраром, удалял старый класс и добавлял новый.
Ответ
#4
Думаю понял в чем дело. но я не думал что в сервере классы както криво ссылаются по имени.
в папке с либами (jar файлами) я оставлял копию jаr где был этот скрипт
(scripts-копия.jar) в итоге похоже ява сервер загружал именно его. после перемешения копии в другую диру все заработало как надо. глупая трабла прям)))
Ответ
#5
если исходников нет, то лучше меняй сборку, пока не стало мучительно больно за зря потерянное на возню с ней время.
ибо декомпилом/компилом ты разве что только всякую мелочевку в небольших классах выправишь.
а вот когда потребуется что-то править в сложных классах типа Player и т.п. - вот тогда ты взвоешь. Ибо ты уже только самим фактом декомпила можешь внести искажения в класс, которые внешне себя сразу не проявят и обратному компилу мешать не будут, но вполне могут выйти боком при каких нибудь определенных условиях в дальнейшем.

кстати не слышал даже ранее о такой сборке.
почему бы не взять банально тот же чистый оверворлд/лостворлд и не возиться с ним? все исходники есть - что-то поправить в сервере не составит труда, главное иметь голову на плечах.
Ответ
#6
ну это да. щас сам попробовал Player сбилдить. 39 различных ошибок.
да и декомпиляторы по разному декомпилять. проверил на трех разных. все 3 класса разные.
беда.
блин а как можно посмотреть версию сборки сервера. может куда записывают эту информацию сборщики. чтобы в инете поискать исходники

LRserv как я понял сделан на базе emurt.
lineager.info вот там сборка сервера. тока какая ревизия даже не знаю((
исходников чтото тоже не особо видно хотя сборка уже больше года существует
Ответ
#7
Можешь взять исходы опен-тим, они тоже не плохие, ну код не плохой.
Ответ
#8
блин вроде она платная вроде как. по крайней мере я не нашел исходников.
конечно офтоп уже пошел, но не затруднит скинуть ссыль на нормальную сборку, с исходниками. более менее стабильную,
чтоб им нормальный был (с оплатой в рублях а не за всякие коины)
чтоб над ним уже работать можно было. (мне LRserv этим всем и понравился, кроме клиента, в клиенте нубо баферы скрыты были))
господа помогите
Ответ
#9
LRServ вроде же на сорцах EmuRT стоит, не? EmuRT точно в шаре валяется.
Можно и ОпенТим, тоже нормальные.
Ответ
#10
Да совершенно верно . но хрен знает что конкретно в lRserv подправили в скриптах... исходы от эмурта могут не подойти. да и разные они. щас скачал эмурт. отбилдил. настроил. в итоге клиент висит после выбора персонажа на лоадинг скрине. (точнее игра идет, но поверх всего в интерфейсе эта картинка остается)
в итоге полная попа. (стоят если что interface.u/xdat измененные в клиенте.)
нужно искать исходы какойнибудь сборочки хорошей, лучше с клиентом и патчем
Ответ


Перейти к форуму:


Пользователи, просматривающие эту тему: 2 Гость(ей)