-
Публикаций
1028 -
Зарегистрирован
-
Посещение
-
Победитель дней
16 -
Отзывы
100%
Тип контента
Профили
Форумы
Загрузки
Магазин
Инструкции
Весь контент CalypsoToolz
-
Берешь/Создаешь какой нибудь итем Для этого итема Реализовываешь итем-хендлер с выдачей ПА при использовании Новосозданным чарам выдаешь этот самый итем Профит
-
В ядре вообще присутствует данная защита? Или просто конфиги натянул?
-
Это предупреждение, о том, что для указанного итема, в указанном бай-листе, установлена цена дешевле, чем игрок может продать этот предмет в магазин.
-
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; } }
-
private static enum Commands { admin_oly_save, admin_add_oly_points, admin_oly_start, admin_add_hero, admin_oly_stop }
-
Переименуй файл, например на имя чара.
-
if(player.isSubClassActive() && player.getLevel() >= 75) { // выдача итема } else player.sendMessage("Only for sub-class 75+ lvl!");
-
В общем для люси и пв имеется скрипт, правлю по вашим желаниям, отдам за 400. Дорого - пишите сами.
-
Если в логе guard.log или чет типа этого, "setHook failed", то скорее всего патч не верного протокола.
-
Этот скрипт не будет работать на пв, если только хукать ядро. Могу сделать телепорт в указанную зону со всевозможными проверками для pw, за ценой в лс.
-
Всего то лишь нужно было файл example.cfg переименовать, например на имя чара.
-
Как реализует - не мои проблемы, я подобное делал и ничего не "ломалось", просто в таймер, например передаешь 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);
-
Можно поробовать так: создаем временный итем (как создать - зависит от сборки, но это я упущу) пишем скрипт(кв), например чтобы при разговоре с нпц выдавался наш итем запускаем таймер (поток) с какой либо периодичностью на проверку предмета в сумке игрока ну а дальше уже делаем с игроком что угодно
-
UPDATE `droplist` SET `min`=`min`/100 * 150, `max`=`max`/100 * 150 WHERE itemId=57 Установит мин/макс дроп на 150%, т.е. дроп увеличится на 50%
-
<edit var="sendedString" width=110 height=19> <button value="Отправить" action="bypass -h Quest ScriptName readString $sendedString" width=55 height=19> Ну а в скрипте считываешь 2ой аргумент
- 1 ответ
-
- 1
-
Если хочешь чтобы зависило от конфига, то его нужно сначала реализовать, а не писать в код что попало. и {} (фигурные скобки) тут не нужны
-
Добавить в 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());
-
@Override protected void onEvtDead(Creature killer) { getActor().getSpawn().setRespawnDelay(getActor().getSpawn().getRespawnDelay() + 7200); }
-
*Мастер рекламы*
-
Компилированные файлы классов удалить попробуй