-
Публикаций
1028 -
Зарегистрирован
-
Посещение
-
Победитель дней
16 -
Отзывы
100%
Тип контента
Профили
Форумы
Загрузки
Магазин
Инструкции
Весь контент CalypsoToolz
-
Что-то мне кажется что запретить использование именно клиент-команды /target - не получится, так как это действие отправляет тот же пакет, как и клик мышкой, можно только вообще запретить брать нпц в таргет. Если не так - поправьте.
-
Ошибка скорее всего возникает при попытке получить таргет игрока (вероятно не удачный копипаст, ибо не логично что делевел идёт не на используемого игрока) А вообще, ответ на 101 строке скрипта
-
Именно исходы самой игры - не получить, если только есть связи в отделе гейм-дева мелкософт, а так - ответили выше - есть api на все случаи.
-
В скрипте ивента вызввается Rnd.get() с аргументом равным нулю(0). А так, в ошибке всё написано, почему и как.
-
ты сам то проверил свой пример? или рандомный файл из дп скинул? Инстанс и зона - вещи разные. а по теме, вот набросок скрипта, импорты сам сменишь: package events.PvpRewardZone; import org.mmocore.gameserver.listener.actor.OnDeathListener; import org.mmocore.gameserver.listener.script.OnInitScriptListener; import org.mmocore.gameserver.model.Creature; import org.mmocore.gameserver.model.Zone; import org.mmocore.gameserver.model.actor.listener.CharListenerList; import org.mmocore.gameserver.utils.ItemFunctions; import org.mmocore.gameserver.utils.ReflectionUtils; public class PvpRewardZone implements OnInitScriptListener { // Здесь указывается зона ([colosseum_battle] - имя зоны из /data/zone) private static final Zone zone = ReflectionUtils.getZone("[colosseum_battle]"); private class OnDeathListenerImpl implements OnDeathListener { @Override public void onDeath(Creature actor, Creature killer) { if(killer.isPlayer() && actor.isPlayer()) { if(zone.getInsidePlayers().contains(killer.getPlayer()) && zone.getInsidePlayers().contains(actor.getPlayer())) { // выдача итема (ид, кол-во) ItemFunctions.addItem(killer.getPlayer(), 57, 1000); } } } } @Override public void onInit() { CharListenerList.addGlobal(new OnDeathListenerImpl()); } }
-
Костыли те еще, но думаю проблема была в том, что переменную i нужно обнулять.
-
Пару Конфигов И Гильдии Для Сборки Pw Софта.
тема ответил CalypsoToolz в теме Дополнения для сервера
Нет такой фунции, нужно самому дописывать, аки: else if (command.startsWith("exit")) { if(player.isInGuild()) { int id = player.getGuildSide(); player.setGuildSide(0); player.setGuildPenalty(0); GuildManager.Guild g = GuildManager.getInstance().getGuild(id); if(g != null) g.takeExitItems(player); Connect con = null; PreparedStatement st = null; try { con = L2DatabaseFactory.get(); st = con.prepareStatement("DELETE FROM `z_guild_mod` WHERE `char_id`=?"); st.setInt(1, player.getObjectId()); st.execute(); } catch (SQLException e) { _log.severe("Could not delete z_guild_mod: " + e); } finally { Close.CS(con, st); } player.sendMessage("Вы успешно покинули гильдию " + g.name + "!"); } else player.sendMessage("Вы не состоите в гильдии!"); } Конечно не тупо копипастить куда угодно -
нет, открываешь ядро, например через JD-GUI, ищешь файл(пакет) NpcInfo, и смотришь, какими данными заполняется пакет (обращаешь внимание на строки, содержащие "color")
-
Смотри что отправляет сервер пакетом NpcInfo (открой декомпилом ядро, если что)
-
в ядре или в скриптах
-
не диалоги, а сам обработчик
-
Ищи хендлер админ-команды admin_edit_npc и там уже "колупай"
-
Замени class-файл "NpcHtmlMessage" в ядре по пути /net/sf/l2j/gameserver/network/serverpackets/ на этот https://yadi.sk/d/Mj91NFt03RsUBv В логе будет указан путь до проблемной htm
-
options.cfg -> LazyCache
-
google -> no-ip l2j
-
Можно дать мобу пассивный скилл паралич
-
Показать контент package ai; import net.sf.l2j.gameserver.ThreadPoolManager; import net.sf.l2j.gameserver.ai.CtrlIntention; import net.sf.l2j.gameserver.model.actor.instance.L2NpcInstance; import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance; import net.sf.l2j.gameserver.model.quest.jython.QuestJython; public class PolymorphingAngel extends QuestJython { private static final int[][] keypairs = { {20830, 20859}, {21067, 21068}, {21062, 21063}, {20831, 20860}, {100109, 18265}, {10095, 10078}, {21070, 21071} }; public PolymorphingAngel(int questId, String name, String descr, int ex) { super(questId, name, descr, ex); for(int[] i : keypairs) addKillId(i[0]); } @Override public String onKill(final L2NpcInstance npc, final L2PcInstance killer, boolean isPet) { ThreadPoolManager.getInstance().scheduleGeneral(new Runnable() { @Override public void run() { L2NpcInstance sp = addSpawn(getSpawnId(npc.getNpcId()), npc); sp.setRunning(); sp.addDamageHate(killer, 0, 999); sp.getAI().setIntention(CtrlIntention.AI_INTENTION_ATTACK, killer); } }, 1000); // задержка в МС return null; } private static int getSpawnId(int from) { for(int[] i : keypairs) if(i[0] == from) return i[1]; return 0; } public static void main(String[] args) { new PolymorphingAngel(-1, "PolymorphingAngel", "by CalypsoToolz", 0); } } Hide
-
@Override public String onKill(L2NpcInstance npc, L2PcInstance killer, boolean isPet) { L2Weapon weapon = killer.getActiveWeaponItem(); if(weapon == null) return null; if(weapon.getItemId() == 11111 || weapon.getItemType() == L2WeaponType.SWORD) // проверяем ид оружия или его тип { // your stuff... } }
-
окончания строк в скриптах запуска проверь, возможно стоит CR/LF (должно быть LF)
-
потому что скорее всего права админа выдаются не в бд, а в конфигах /gmaccess/*.xml
- 3 ответа
-
- 1
-
-
Я хз как ты пытался решить по старым темам и у тебя ничего не вышло, но верный ответ уже есть тут