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

Gaikotsu

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

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

  • Посещение

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

    61
  • Отзывы

    0%

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

  1. Вариантов то много. Обычно для вычисления хэшей в пароле юзается библиотека jacksum, а она поддерживает очень даже дофига разных алгоритмов. Но все же чаще всего народ граничивается варинтами DES, SHA1, whirlpool2, иногда еще md5
  2. Да уж... реально на скорую руку
  3. А какая разница, если из них один фиг чисто читают.
  4. Ну это уж точно логичней и проще, чем заниматься бредом в виде явного перечисления в скрипте координат кучи боссов.
  5. Мусье знают толк в извращениях... Что мешает по необходимости брать список всех боссов из менеджера спавнов, отфильтровывать из него живых в данный момент, далее рандомно брать одного босса из полученного списка, брать из его свойств текущие координаты и делать телепорт рядом с ним?
  6. Возможно он подразумевает пакет SendStatus, который можно запросить каким нибудь скриптом, постучавшись на порт гейма и запросив этот пакет. Но опять же данным из этого пакета нельзя верить на 100%, т.к. там можно хоть какой онлайн отдавать.
  7. Он его там не найдет - данное окно на флэше сделано, а не стандартными методами и лежит где-то в одном из ugx-файлов скорее всего.
  8. ну по идее самое простое выше уже озвучили - убрать сами скрипты квестов но если они где-то еще вызываются - придется и там еще убирать вызовы/проверки. другой вариант, не настолько кардинальный - просто в скриптах квестов закомментить/удалить регистрацию стартовых нпс (а в случае взятия не у нпс - поменять услвоия взятия на неосуществимые). в итоге и квесты на месте и при этом взять их нельзя. ну а если есть исходники ядра и имеется хоть сколько-то прямые руки - можно вобще универсальный способ сделать. ввести в конфиги новый параметр, в котором можно перечислять ид запретных квестов (или наоборот только разрешенных), а в методе, формирующем список квестов для выдачи его в хтмл диалоге, сверяться с этим списком-параметром и убирать лишнее из вывода.
  9. А ничего что эти самые нпс могут выполнять и еще какие нибудь нужные функции? к примеру это могут быть торговцы и т.п.
  10. пример проверки по группе if (targetSlot == ItemTemplate.SLOT_TALISMAN) { int count = player.getTalismanCount(); if (count <= 0) return new SystemMessage(SystemMsg.YOU_CANNOT_WEAR_S1_BECAUSE_YOU_ARE_NOT_WEARING_A_BRACELET).addItemName(itemId); ItemInstance deco; int groupId = item.getTemplate().getGroupId(); for (int slot = Inventory.PAPERDOLL_TALISMAN_1; slot <= Inventory.PAPERDOLL_TALISMAN_6; slot++) { deco = player.getInventory().getPaperdollItem(slot); if (deco != null) { if (deco == item) return null; // талисман уже одет и количество слотов больше нуля // Проверяем на количество слотов и одинаковые/похожие талисманы (находящиеся в одной группе) if (--count <= 0 || deco.getTemplate().getGroupId() == groupId) return new SystemMessage(SystemMsg.YOU_CANNOT_EQUIP_S1_BECAUSE_YOU_DO_NOT_HAVE_ANY_AVAILABLE_SLOTS).addItemName(itemId); } } } else if (targetSlot == ItemTemplate.SLOT_JEWEL) { int count = player.getJewelsCount(); if (count <= 0) return new SystemMessage(SystemMsg.S1_CANNOT_BE_USED_DUE_TO_UNSUITABLE_TERMS).addItemName(itemId); ItemInstance jewel; int groupId = item.getTemplate().getGroupId(); for (int slot = Inventory.PAPERDOLL_JEWEL_1; slot <= Inventory.PAPERDOLL_JEWEL_6; slot++) { jewel = player.getInventory().getPaperdollItem(slot); if (jewel != null) { if (jewel == item) return null; // камень уже одет и количество слотов больше нуля // Проверяем на количество слотов и одинаковые/похожие камни (находящиеся в одной группе) if (--count <= 0 || jewel.getTemplate().getGroupId() == groupId) return SystemMsg.NO_EQUIPMENT_SLOT_AVAILABLE; } } } проверка эта находится в методе checkIfCanEquip класса ItemFunctions (для овероподобных сборок) группа предмета, если явно не задана - равна ид предмета _groupId = set.getInteger("group_id", _itemId); это из ItemTemplate Hide
  11. я тебе уже на другом форуме ответил
  12. 1. использовать один и тот же скилл для всех вариантов, просто разных уровней - тогда сколько бы не надел - скилл от них один фиг будет только один, максимального уровня из тех что одеты. из минусов - придется доработать листенеры equip/unequp, чтобы корректно обрабатывало ситуацию "одето несколько талисманов семени, сняли один - пассивка от них убрана". 2. добавить всем таким талисманам кондишн, проверящий одетые предметы и запрещающий использование талисмана, если уже одет какой-то из других талисманов семени. 3. разновидность 2-го варианта - ввести параметр "группы" для предметов и при попытке одевания талисманов проверять - не в одной ли группе надеваемый талисман и какой-то из уже одетых талисманов и соотвественно запрещать одевание при совпадении группы. Я к примеру у себя именно этот вариант использую для талисманов семени, богатства, а так же для драгоценных камней.
  13. а куда ты его еще поместишь то в клиенте, если в нем этой инфы и нет и не должно быть изначально?
  14. спасибо кэп, но думаю автор темы о таком варианте и так знает но ему то как раз хочется чтобы возможность телепорта была вне зависимости от статуса онлайна перса
  15. да вроде никаких особых условий работы нет
  16. Вобще, при желании, через телнет можно сделать почти полный аналог кэшеда в птс
  17. ну и простенький класс на пхп для работы с телнетом делал класс, т.к. в планах было расширение функционала в виде поддержки не одной команды для телнета, но чет так и не потребовалось это в админке у себя чисто кик юзаю и все. telnet <? define('KickCharacter', 1); class L2Telnet { var $socket; var $connected; function __construct($host='127.0.0.1', $port=2012, $pass, $timeout=2) { $this->connected = false; $this->socket = @fsockopen($host, $port, $errno, $errstr, $timeout); if ($this->socket) { if ($pass != "") { fputs($this->socket, $pass); fputs($this->socket, "\r\n"); $this->connected = ($this->socket) ? true : false; } $this->connected = true; } else $this->error("<br />Ошибка соединения с telnet-сервером (host: $host, port: $port)."); return $this->connected; } function __destruct() { if ($this->connected) fputs($this->socket, "\r\nexit\r\n"); } function error($str) { die($str); } function sendPacket($packet) { $result = false; if ($this->connected) { $param = func_get_args(); switch ($param[0]): case KickCharacter: fputs($this->socket, "kick ".iconv("Windows-1251", "UTF-8", $param[1])."\r\n"); $result = ($this->socket) ? true : false; if (empty($param[2])) sleep(1); break; default: $result = false; $this->error("<br />Неизвестная команда '{$param[0]}'."); break; endswitch; } return $result; } } ?> Hide
  18. конечно от сборки зависит, но почти в любой из них есть команда kick для телнета на худой конец не проблема ее реализовать так что банально коннектимся к серверу через телнет и шлем команду kick <имя>, после чего делаем что хочется с данными только советую после кика ставить паузу к примеру в секунду и уже после этого менять данные в бд, чтобы все что надо при выходе успело сохраниться
  19. Там же ясным и понятным английским языком написана причина ошибки...
  20. ну для умножения к примеру использовать 0x110, для прибавления 0x120
  21. В ядре, в классе StatFunctions - это конечно если сборка на базе овера/лоста если исходников нет и нет возможности исправить - можно обходить лимит давая прибавки к хп с ордером выше чем у функции лимитирования, т.е. с ордером выше 0x100
  22. это просто сохраненный в файл HashMap, в который были запиханы хтмлки. обратно загрузить в мапу и сохранить каждый диалог раздельно, используя в качестве имен файлов ключи мапы, не составляет труда, но вот только пользы от этого будет ноль - ключами в мапе служат не имена оригинальных файлов с диалогами, а их хэши. https://code-examples.net/ru/q/c284aa - пример чтения/записи мапы
  23. ну сколько бы не прошло, но многие формулы расчета разных стат из этого гайда все еще актуальны.
  24. это не совсем верно - когда-то инфа была более доступной. к примеру есть prima guide по C1, в котором было детально расписано очень многое что существовало на тот момент в игре, в частности и разные формулы.
  25. а что, обновить свой комп до нормального даже не рассматривается? я вобще хз насколько допотопным комп должен быть, чтобы на нем линейка тормозила, даже самые последние ее части...
×
×
  • Создать...