Formatter
-
Публикаций
84 -
Зарегистрирован
-
Посещение
-
Победитель дней
5 -
Отзывы
0%
Сообщения, опубликованные Formatter
-
-
Возможно есть слушатель на подобии OnClassChangeListener - тогда скрипт/расширение
-
5 минут назад, KpunToHuT сказал:Это где посмотреть?
В конфигурации логина
-
1 час назад, KpunToHuT сказал:Скинь пожалуйста ссылку, хотя бы на 1 пример. заранее спасибо))
package blabla; import net.sf.l2j.gameserver.model.L2ItemInstance; import net.sf.l2j.gameserver.model.actor.instance.L2PlayableInstance; import scripts.items.IItemHandler; import scripts.items.ItemHandler; public class BlaBla implements IItemHandler { // ид итема(ов) private static final int[] ITEM = { 1111 }; @Override public int[] getItemIds() { return ITEM; } @Override public void useItem(L2PlayableInstance user, L2ItemInstance item, boolean ctrl) { // действие при юзе итема } public static void main(String[] args) { ItemHandler.getInstance().registerItemHandler(new BlaBla()); } }
-
Реализовывай скрипт через IItemHandler, не понятно - примеров куча
-
3 часа назад, Saltfire сказал:Это дело не в шифрации паролей, а в том, что поле password, имеет меньшую длину, чем вы пытаетесь в нее засунуть.
Это легко проверить, учитывая тип данных varchar и соответственно его длину.
Эта ошибка будет тут-же, когда я сделаю varchar(10) к примеру, а буду писать строку с 11 символами.
Бесполезно объяснять
- 1
-
Там же в коде нужно смотреть как сделан спаун этих фонтанов, вероятно там явно указано время, а не переменная TRAPS_SPAWN_INTERVAL, что то вроде этого:
actor.getReflection().addSpawnWithRespawn(TRAP_NPC_ID, TRAP_LOCS, 0, тут время);
-
Ну да, точно не в БД дело, раз тебе веб пишет: Ошибка MySQL и её номер.
-
Перевести анриал?
Увеличить размер колонки, либо поменяй метод шифрования пароля
-
19 минут назад, SamsungGracia сказал:Вероятно запрос не подходит
-
Какой ответ тебе нужен? "Зачем и для чего"? - Захотелось вывести некоторую доп. информацию на окно клиента. Да и в общем интересно стало. Глупый не глупый текст: уж извини, но видя твои посты во всех темах - могу то же самое сказать.
-
Ладно, своими силами разобрался, вывод текста/фигур получился, но при сворачивании/разворачивании окна - крит тот же.
Может еще что-то хукать нужно помимо endScene? Как отследить это событие?
Возможно кто-то рисовал в клиенте через Engine.Canvas? Нашел пример только для хроник выше - нашел аналогичную функцию (вроде как), но не знаю какие аргументы передать в функцию -
-
Кто-нибудь занимался хуком directx с клиентом игры (Interlude)?
Пытался и после инициализации окна, и непосредственно при загрузке библиотеки - один и тот же крит.
Быть может у кого-то есть готовый вариант.
часть кода (C++):
cMemory* MemHack; typedef HRESULT(WINAPI* oEndScene)(LPDIRECT3DDEVICE9 pDevice); oEndScene pEndScene = NULL; HRESULT APIENTRY myEndScene(LPDIRECT3DDEVICE9 pDevice) { return pEndScene(pDevice); } int D3d9_Hook(void) { printf("D3D hook"); DWORD* vtbl = 0; DWORD hD3D9 = (DWORD)LoadLibraryA("d3d9.dll"); DWORD table = MemHack->FindPattern(hD3D9, 0x128000, (PBYTE)"\xC7\x06\x00\x00\x00\x00\x89\x86\x00\x00\x00\x00\x89\x86", "xx????xx????xx"); memcpy(&vtbl, (void*)(table + 2), 4); pEndScene = (oEndScene)MemHack->Create_Hook((PBYTE)vtbl[42], (PBYTE)myEndScene, 5); printf(" OK\n"); return 0; }
Ошибка клиента
-
Юзай яву 9 или выше
-
Это не в скрипте править нужно, а добавлять поддержку в ядре, или же в скрипте, но убрать вызов отсутствующих методов/заменить на аналогичные, но вероятно это повлечёт за собой дальнейшие проблемы
-
Можно и через датапак (скрипт) в принципе, если есть нужные листенеры, ну или через квест (onEnter), смотреть onlineTime
-
<?php class TopPvp { const PREFIX = 'top_pvp_'; function getPrefix() { return self::PREFIX; } function getPath() { return "./cache"; } private function getOrSave() { $path = $this->getPath(); $files = glob($path.'/'. $this->getPrefix() . '*'); if(count($files) > 0 && file_exists($files[0])) { $a = explode("_", $files[0]); $time = intval($a[count($a) - 1]); //echo "diff: " . (time() - $time); if(time() - $time >= 180) { unlink( $files[0] ); return $this->loadDb(); } else { return file_get_contents($files[0]); } } else { return $this->loadDb(); } } private function loadDb() { require "db.php"; $sql = 'SELECT characters.char_name, characters.pvpkills, characters.pkkills, characters.onlinetime, clan_subpledges.name, char_templates.ClassName, character_subclasses.class_id, clan_data.crest, ally_data.crest as ally_crest, clan_data.ally_id, clan_data.clan_id '. 'FROM characters '. 'LEFT JOIN `clan_subpledges` ON characters.clanid = clan_subpledges.clan_id AND clan_subpledges.type = 0 '. 'LEFT JOIN character_subclasses ON character_subclasses.char_obj_id = characters.obj_Id AND character_subclasses.active = 1 '. 'LEFT JOIN `char_templates` ON char_templates.ClassId = character_subclasses.class_id '. 'LEFT JOIN `clan_data` ON clan_data.clan_id = characters.clanid '. 'LEFT JOIN `ally_data` ON ally_data.ally_id = clan_data.ally_id '. 'ORDER BY pvpkills DESC LIMIT 10;'; $result = mysqli_query($db, $sql); $content = ""; if(mysqli_num_rows($result) > 0) { foreach($result as $row) { //var_dump($row); $content .= "<tr>"; $content .= '<td>' . $row['char_name'] . '</td>'; $content .= '<td style="font-weight: bold;">' . $row['pvpkills'] . '</td>'; $content .= '<td>' . $row['pkkills'] . '</td>'; if(empty($row['name'])) { $content .= '<td>-</td>'; } else { $crest1 = base64_encode($row['crest']); $crest2 = base64_encode($row['ally_crest']); $content .= '<td><img src="/php/dds.php?data=' . $crest2 . '&id=' . $row['ally_id'] . '"><img src="/php/dds.php?data=' . $crest1 . '&id=' . $row['clan_id'] . '"> ' . $row['name'] . '</td>'; } $content .= '<td>' . $row['ClassName'] . '</td>'; $online = intval($row['onlinetime']); $content .= '<td>'; $hours = floor($online / 3600); $minutes = floor(($online / 60) % 60); $seconds = $online % 60; $content .= "$hours ч. $minutes мин. $seconds сек."; $content .= '</td>'; $content .= "</tr>"; //$content .= '<div class="quote">' . $row['char_name'] . ' - ' . $row['pvpkills'] . ' PVP</div>' . "\n"; } } else { $content .= "<tr><td>-</td><td>-</td><td>-</td><td>-</td></tr>"; } $result->close(); file_put_contents($this->getPath() . "/" . $this->getPrefix() . "" . time(), $content); return $content; } function get() { $data = $this->getOrSave(); //foreach (explode("\n", $data) as $s) { // echo $s; //} return $data; } } ?>
- 1
-
1 hour ago, Solt said:Для особо одаренных:
<drops> <category id="1"> <drop itemid="848" min="1" max="1" chance="204"/> <drop itemid="879" min="1" max="1" chance="321"/> <drop itemid="911" min="1" max="1" chance="409"/> </category> <category id="2"> <drop itemid="1829" min="1" max="1" chance="15873"/> <drop itemid="1832" min="1" max="1" chance="55556"/> <drop itemid="1875" min="1" max="1" chance="4762"/> <drop itemid="1879" min="1" max="1" chance="7353"/> <drop itemid="1885" min="1" max="1" chance="5000"/> <drop itemid="1900" min="1" max="1" chance="7092"/> <drop itemid="5549" min="1" max="1" chance="4525"/> <drop itemid="5550" min="1" max="1" chance="238"/> </category> <category id="0"> <drop itemid="57" min="226" max="451" chance="700000"/> </category> <category id="-1"> <drop itemid="1832" min="1" max="2" chance="25641"/> <drop itemid="1936" min="1" max="1" chance="6882"/> <drop itemid="2184" min="1" max="1" chance="58192"/> </category> </drops>
Чтобы больше не кричали, что 1 категория = 1 итем.
... иди дропни с моба больше одного итема с группы
- 1
-
Это только парсинг, а не механизм дропа, а так: 1 группа - 1 итем
- 1
-
4 hours ago, Acer said:Пожалуйста вспомните какая именно таблица! Никак не могу решить эту проблему! Бэкап перезаливаю не помогает!
server_variables или что-то подобное
-
Ну во-первых, делается это немного по-другому, судя по коду выше (как я понял onElapsed - это перемещение из зоны в зону (а зная как оно работает на таких сборках...)) - это вообще бубуйня какая то xD, но, если нет исходника, то вроде как только reflection (именно для pw) , либо же при входе чара (а это есть в пв) - запускаем задачу выдачи итемов(task), ну и кнч выключаем её при отключении/оффлайне
-
Нужно обновить библиотеку ecj, как минимум на эту версию - ecj-4.6.1.jar
-
если что - пиши в лс, помогу
-
On 4/14/2020 at 7:13 AM, lvipl said:Подскажите Скрипт Анонса Для Серверов Lineage 2 на хостинг от юкоз
А знаю сейчас вы начнете срать за юкоз и т.д) Но срочно надо) Может есть у кого то
тебе не скрипт нужен, а дизайн. Вместо скрипта можно использовать "доску объявлений" или как там оно называется.
Диалог с нпс нужна помощь
в Прочее
Опубликовано
Вероятнее всего - тип нового нпц не понимает эти байпасы, либо дописать логику для этих байпасов в новом/нужном типе нпц, либо же изменить тип на тот, что у нпц Bathis