Перейти к содержанию

CalypsoToolz

Постоялец
  • Публикаций

    1028
  • Зарегистрирован

  • Посещение

  • Победитель дней

    16
  • Отзывы

    100%

Весь контент CalypsoToolz

  1. CalypsoToolz

    Па при старте

    Берешь/Создаешь какой нибудь итем Для этого итема Реализовываешь итем-хендлер с выдачей ПА при использовании Новосозданным чарам выдаешь этот самый итем Профит
  2. В ядре вообще присутствует данная защита? Или просто конфиги натянул?
  3. Это предупреждение, о том, что для указанного итема, в указанном бай-листе, установлена цена дешевле, чем игрок может продать этот предмет в магазин.
  4. package ro0tt; /* * @author Ro0TT * @date 25.04.2014 */ import org.apache.commons.lang3.ArrayUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import ru.catssoftware.gameserver.listener.actor.OnDeathListener; import ru.catssoftware.gameserver.model.L2Character; import ru.catssoftware.gameserver.model.actor.instance.L2PcInstance; import ru.catssoftware.gameserver.model.listeners.CharListenerList; public class DropItemNooblRb { private static int CUSTOM_RB[] = { 25325 }; private static int[] ITEM = { 7679, 1 }; private static Logger _log = LoggerFactory.getLogger(DropItemNooblRb.class); public static void main(String... arg) { CharListenerList.addGlobal(new OnDeathListenerImpl()); _log.info("Mass drop from custom RB loaded."); } private static class OnDeathListenerImpl implements OnDeathListener { @Override public void onDeath(L2Character actor, L2Character killer) { if (!actor.isNpc() || !ArrayUtils.contains(CUSTOM_RB, actor.getNpc().getNpcId())) return; if (killer == null || killer.getPlayer() == null) return; L2PcInstance player = killer.getPlayer(); if (player.isInParty()) { for (L2PcInstance member : player.getParty().getPartyMembers()) { if(checkEpta(member)) member.addItem("DropItemNooblRb", ITEM[0], ITEM[1], actor, true); } } else if(checkEpta(player)) player.addItem("DropItemNooblRb", ITEM[0], ITEM[1], actor, true); } } private static boolean checkEpta(L2PcInstance player) { if(!player.isSubClassActive()) { player.sendMessage("Только для саб-класса!"); return false; } if(player.getLevel() < 75) { player.sendMessage("Только для 75+ уровней!"); return false; } return true; } }
  5. CalypsoToolz

    Олимпиада

    private static enum Commands { admin_oly_save, admin_add_oly_points, admin_oly_start, admin_add_hero, admin_oly_stop }
  6. Переименуй файл, например на имя чара.
  7. if(player.isSubClassActive() && player.getLevel() >= 75) { // выдача итема } else player.sendMessage("Only for sub-class 75+ lvl!");
  8. В общем для люси и пв имеется скрипт, правлю по вашим желаниям, отдам за 400. Дорого - пишите сами.
  9. Если в логе guard.log или чет типа этого, "setHook failed", то скорее всего патч не верного протокола.
  10. Этот скрипт не будет работать на пв, если только хукать ядро. Могу сделать телепорт в указанную зону со всевозможными проверками для pw, за ценой в лс.
  11. CalypsoToolz

    gm/lucera 2

    Всего то лишь нужно было файл example.cfg переименовать, например на имя чара.
  12. Как реализует - не мои проблемы, я подобное делал и ничего не "ломалось", просто в таймер, например передаешь objID игрока, а затем уже ищем игрока по ид, если не нашли, то меняем данные в базе, делов то. Пример L2PcInstance player = L2World.getInstance().getPlayer(_playerId); if(player != null) { if(player.isOnline() != 0) player.teleToLocation(back_loc); else player.setLoc(back_loc); } else methodForChangeInDB(back_loc, _playerId);
  13. Можно поробовать так: создаем временный итем (как создать - зависит от сборки, но это я упущу) пишем скрипт(кв), например чтобы при разговоре с нпц выдавался наш итем запускаем таймер (поток) с какой либо периодичностью на проверку предмета в сумке игрока ну а дальше уже делаем с игроком что угодно
  14. UPDATE `droplist` SET `min`=`min`/100 * 150, `max`=`max`/100 * 150 WHERE itemId=57 Установит мин/макс дроп на 150%, т.е. дроп увеличится на 50%
  15. <edit var="sendedString" width=110 height=19> <button value="Отправить" action="bypass -h Quest ScriptName readString $sendedString" width=55 height=19> Ну а в скрипте считываешь 2ой аргумент
  16. CalypsoToolz

    .menu

    Если хочешь чтобы зависило от конфига, то его нужно сначала реализовать, а не писать в код что попало. и {} (фигурные скобки) тут не нужны
  17. CalypsoToolz

    .menu

    в VoicedCommandHandler
  18. CalypsoToolz

    .menu

    Конфиг как бы сам не реализуется
  19. CalypsoToolz

    .menu

    Добавить в com.l2jfrozen.gameserver.handler.voicedcommandhandlers этот скрипт: package com.l2jfrozen.gameserver.handler.voicedcommandhandlers; import com.l2jfrozen.gameserver.handler.IVoicedCommandHandler; import com.l2jfrozen.gameserver.model.actor.instance.L2PcInstance; import com.l2jfrozen.gameserver.cache.HtmCache; import com.l2jfrozen.gameserver.network.serverpackets.NpcHtmlMessage; /** * @author Calypso */ public class Menu implements IVoicedCommandHandler { private static String[] _voicedCommands = { "menu" }; @Override public boolean useVoicedCommand(final String command, final L2PcInstance activeChar, final String target) { if (command.equalsIgnoreCase("menu")) { final String htmContent = HtmCache.getInstance().getHtm("data/html/menu.htm"); final NpcHtmlMessage npcHtmlMessage = new NpcHtmlMessage(5); npcHtmlMessage.setHtml(htmContent); activeChar.sendPacket(npcHtmlMessage); return true; } return true; } @Override public String[] getVoicedCommandList() { return _voicedCommands; } } Затем в com.l2jfrozen.gameserver.handler.VoicedCommandHandler добавить импорт: import com.l2jfrozen.gameserver.handler.voicedcommandhandlers.Menu; Ну и зарегистрировать хендлер: registerVoicedCommandHandler(new Menu());
  20. @Override protected void onEvtDead(Creature killer) { getActor().getSpawn().setRespawnDelay(getActor().getSpawn().getRespawnDelay() + 7200); }
  21. Компилированные файлы классов удалить попробуй
×
×
  • Создать...