
Formatter
-
Публикаций
94 -
Зарегистрирован
-
Посещение
-
Победитель дней
7 -
Отзывы
0%
Сообщения, опубликованные Formatter
-
-
Можно и через датапак (скрипт) в принципе, если есть нужные листенеры, ну или через квест (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 на хостинг от юкоз
А знаю сейчас вы начнете срать за юкоз и т.д) Но срочно надо) Может есть у кого то
тебе не скрипт нужен, а дизайн. Вместо скрипта можно использовать "доску объявлений" или как там оно называется.
-
abnormal="poison" замени, либо убери
-
1
-
1
-
-
Что там не получается то? Если не получится - пиши в лс завтра ближе к обеду
-
1 hour ago, JohnyDap said:и как это сделать?)
подменить значения в пакетах charinfo и userinfo, если не сможешь, пиши в личку. не за бесплатно естественно
-
Цепляешь новое AI, либо же в уже имеющемся делаешь проверку на нужного пета, и в thinkActive() ищешь предметы рядом, проверяешь овнера и лутаешь
-
1
-
-
Если есть знания - бери то, что советуют выше. А так для побаловаться - emurt
-
i
YourScript script = new YourScript(id, name, desc, 0); State CREATED = new State("Start", script); script.setInitialState(CREATED); // тут же твои script.addStartNpc(NPC); script.addTalkId(NPC);
-
18 minutes ago, ammy said:в этом и проблема ) он не видет БД
может с названием ошибся, или у указанного пользователя нет прав доступа к этой бд
-
Нет базы данных с именем "auth", что указана в конфиге
-
14 minutes ago, inact1ve said:Побегал на локалке, вылетает с ошибкой
ERROR Could not store char data: cirex[268485223]!
com.mysql.jdbc.MysqlDataTruncation: Data truncation: Out of range value for column 'onlinetime' at row 1
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4224)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4158)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2615)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2776)
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2840)
at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:2082)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2334)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2262)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2246)
at com.zaxxer.hikari.pool.ProxyPreparedStatement.executeUpdate(ProxyPreparedStatement.java:61)
at com.zaxxer.hikari.pool.HikariProxyPreparedStatement.executeUpdate(HikariProxyPreparedStatement.java)
at org.mmocore.gameserver.model.Player.store(Player.java:4980)
at org.mmocore.gameserver.model.Player.prepareToLogout(Player.java:949)
at org.mmocore.gameserver.model.Player.access$800(Player.java:181)
at org.mmocore.gameserver.model.Player$1.runImpl(Player.java:3984)
at org.mmocore.commons.threading.RunnableImpl.run(RunnableImpl.java:21)
at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
at java.util.concurrent.FutureTask.run(Unknown Source)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(Unknown Source)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
at org.mmocore.commons.threading.PriorityThreadFactory$1.run(PriorityThreadFactory.java:35)увеличь макс длину значения для поля onlinetime в таблице characters
-
Just now, imek said:Прога для школоты
куда смеяться?
-
Как вариант - после запуска сервера, изменять дату осаду на нужную, скриптом.
цикл замков aka castle:
castle.getSiegeDate().setTimeInMillis(время в мс);
ну естественно, высчитать время осады юзая календарь или что то типа этого
сalendarNext.set(Calendar.HOUR_OF_DAY, день);
calendarNext.set(Calendar.MINUTE, 0);calendarNext.set(Calendar.SECOND, 0);
calendarNext.set(Calendar.MILLISECOND, 0);
ps:
жаль твоих будущих, возможных, игроков
-
На 9 версии явы собирал чтоль? Или запускаешь не на той версии, такая ошибка может быть, если запускать на 9 и выше версии явы
А если быть еще точнее, то проблема в измененном методе новых версий:
public ByteBuffer position (int newPosition)
в 8 версии и ниже:
public final int position()
-
либо айди "большой", либо накосячил в патче
-
добавить keepenchanted true или что-то подобное, хз что за сборка у тебя
-
Отключи "вторичную авторизацию", либо правь код скрипта - наводка - isParalyzed
Ошибка при загрузке скрипта .bot
в Датапак
Опубликовано
Это не в скрипте править нужно, а добавлять поддержку в ядре, или же в скрипте, но убрать вызов отсутствующих методов/заменить на аналогичные, но вероятно это повлечёт за собой дальнейшие проблемы