В логах ошибках assert failed:"msg.content_length == header_size + _cur_tag_counter.size()*sizeof(int)*3 + sizeof(int64_t)" in file player.cpp:1057 Резко скачет активность apache2 после чего падает мир. Похоже на ддос. Кто может подсказать в чем причина.
Если кто сталкивался и может подсказать - как убрать мигание кнопок интерфейса Пример кнопка календаря или кнопка сдачи квестов (свиток) В xml это не указывается, где то в другом файле или в elemenclient.exe как я понимаю, но найти не получается. Подскажите кто может, бесит (angry)
В пв есть встроенный браузер. Страница в нем выводится по классу/типу (не знаю как правильно) WINDOWPICTURE Name="WPic" Вопрос (если кто сталкивался): Можно ли его редактировать, само окно вывода страницы? И если можно то где? Меня в первую очередь интересует возможность убрать скролы
Собственно есть замечательный файл в каждой папке с картой с расширением *.ecbsd В нем указаны все литмодели которые расположены на карте, заодно там же указаны их координаты и поворот. Но при изменении координат объект (строение/здание/стена и т.д) не сдвигаются. Убрать полностью можно (подставив другую модель), но передвинуть не получается. Вопрос - как правильно передвинуть объект на карте?
В 1.5.1 появился новый тип ресурса. Он не копается, а поглощается Используется для получения фиговин для прокачки слотов карт Но это не суть важно, условно это обычный ресурс с флагом поглощение, а не выкапывание Так вот есть маленькая китайская гадость, которую они сделали. Максимум таких ресурсов поглощаемых в неделю. Если использовать данные типы ресурсов в квестах то быстро выработаешь максимум и квесты не сделать. А это грустно Собственно вопрос: Может кто уже задавался подобным вопросом и изучал его Где прячется это ограничение на количество поглощений в неделю На 95% уверен что в ядре, но никак не могу найти нужную функцию. Если кто то уже искал и нашел, подскажите если не жалко :)
Если это вообще возможно, куплю модели из World of Tanks адаптированные под PW 1.5.1 Конкретно нужны модели САУ (9шт) Предложения в ЛС на форуме или в теме (если заинтересует тогда уже скайп)
Сразу говорю - вопрос для тех кто копался в 1.5.1 и конкретно в новой системе карточек. Собственно по теме: Все карточки делятся на типы, и предназначены для определенных ячеек в окне аватар. Разрушение, Битва и т.д. Если карточку положить в ячейку другого типа то она, по идее, не должна давать бонусов. Это видно на примере карт Класс С. Если их класть к неправильную ячейку они просто не работают Все карты выше класса с дают бонусы в неправильной ячейке, но тут есть хитрость. Пример возьмем карту S+ дающую атаку +340 Если ее поместить в слот дающий здоровье она будет давать бонус к хп и защите аналогичный карте S+ на хп и защиту. Это еще было бы можно терпеть, но тут возникает проблема если вы изменяете параметры карт. Пример: мне кажется что 340 атаки на карте это слишком много, и я решаю ее уменьшить, допустим в два раза до 170. Что получается в итоге: Карта разрушения - параметры +170 атака (написано на карте) Кладем карту в слот разрушения и получаем наши 170 атаки. НО кладем эту же карту в слот битву (следующий) и получаем 340 атаки как и было раньше! И так со всеми картами и слотами! То есть где то есть дополнительная таблица с характеристиками карт "по умолчанию" и если вы изменили карты в элементах, то положив карту в неправильный слот вы будете очень неприятно удивлены. Если кто сталкивался с подобным - подскажите где находятся эти дополнительные настройки по умолчанию, которые применяются если карта лежит в неправильной ячейке. Ковырялся в ядре (правда недолго), там есть упоминание неправильной ячейки, но нужных значений так и не нашел. Возможно кто-то смотрел и нашел и не будет слишком жаден, чтобы поделиться информацией) Ну или хотя бы дать пинок в правильном направлении.
В логе вижу такое: GetRole failed. roleid=65027 status=3 После этого уровень персонажа ставится в 0 и далее: test gamedbd: debug : TimeoutRoleQuery, roleid=65027 test gdeliveryd: debug : delroleannounce::Try to delrole 65027 test gamedbd: debug : DBDeleteRole, roleid=65027 Ошибка получения персонажа - удаление персонажа по таймеру. Так периодически просто удаляются персы dbtool не помогает. Я понимаю, что видимо ошибка получения персонажа базой при очередной проверке, но как это можно вылечить? Вариант вайп в настоящее время не рассматривается, подозреваю, что он и не поможет. Может кто сталкивался с подобным и знает пути решения П.С. Еще одна странность, процессов gamedbd при запуске всего 1, хотя на предыдущих версиях было 22. У кого 1.5.1 на тесте есть сколько процессов gamedbd у вас? Хочу понять это изменения в версиях 1.5.0+ или проблемы с модулем базы/настройками Решение: В общем суточный тест прошел успешно. Отпишу на всякий случай, что было сделано. Предыстория: В один далеко не прекрасный момент было замечено массовое удаление персонажей. Началось это примерно через неделю начала тестов с перенесенной базой старого сервера. Никаких ошибок при этом в world2.err лог не писалось! В логе world2.trace наблюдалась такая картина: test gamedbd: debug : TimeoutRoleQuery, roleid=65027 test gdeliveryd: debug : delroleannounce::Try to delrole 65027 test gamedbd: debug : DBDeleteRole, roleid=65027 Просто За секунду происходило удаление от 5 до 30 персонажей. Выборка удаленных персонажей совершенно случайная. Удаление происходило с определенными равными промежутками. Время между ударениями после рестарта базы менялось. Восстановление с помощью dbtool никакого эффекта не давало, более того, после восстановления все персонажи уже удаленные ранее (если брать базу из бекапа) удалялись сразу при старте сервера. Причем все это носит лавинообразный характер. Чем дольше это длится, тем чаще и больше удаляется. В конце концов было обращено внимание на странные ошибки при запуске сервера, причем ругался не модуль gamedbd, а модуль gdeliveryd. Ругался он на лоты в системе WеbTrade (кто не знает новая фишка в офлайновой торговле на версиях 1.5.0+) При всем том, система WebTrade отключена в конфиге gdeliveryd! При очередном восстановлении базы, замечены непонятные items в таблицах: playershop weborderitem webtrade webtradesold Решение: Сделан частичный вайп, удалены перечисленные таблицы + удалена таблица waitdel содержащая записи о персонажах подлежащих удалению (чтобы не потерять исправных персонажей) При запуске сервера не должно быть ошибок gdeliveryd, ругающихся на систему WеbTrade. Если они появляются значит пора восстанавливать базу, иначе вы рискуете потерять персонажей. П.С. да я нуб, можно кидать в меня тапочками и ругать нехорошими словами. Но отписал решение, для тех кто может столкнуться с подобным. И ему не придется "грызть ногти" в попытках понять и исправить все это :D П.П.С модераторам просьба, если можно, добавьте этот пост к первому, чтобы было сразу видно.
Небольшой офф топ: Занялся настройкой БД и обнаружил, что информации по ней практически нет. Пришлось долго и упорно ковыряться в гделиверед для понимания процесса БД и возможности настройки. Возможно люди, которые хотели бы сделать на этом деньги (настраивая другим пару байт) будут очень на меня сердиты... но все таки напишу )) И еще не ждите от меня готовых оффсетов - я пишу где искать для возможности редактирования на других версиях сервера! Важно! Для работы вам понадобятся: - ida (скачать можно тут) - хекс редактор - немного соображалки, чтобы понять как этим всем пользоваться :D Собственно настройка: Начнем мы мы с разбора конфига гделиверед - gamesys.conf Интересует нас в нем вот что: [IMG] По пунктам: 1) настройки выдачи наград для каждого класса (жрец, син и т.д). Подробно пока не разбирал, но с уверенностью в 90% могу сказать, что первое число в строке это коэфициент при подсчете количества монет выдаваемых в конце битвы 2) максимальное количество смертей на поле боя, после которого выкинет на карту 3) общее количество монет для всех фракций (или другого предмета, если вы перенастроили награду) 4) собственно вкл/выкл БД 5) (не проверял) вкл/выкл выбор короля династии, или (вероятно) день недели выборов. 6) ТОЛЬКО для версий 1.5.0+, настройка дня недели битвы. 0 - вск, 1 - пнд и так далее. Можно ставить хоть каждый день (как на примере). Для версии 1.4.8 и ниже эта строка работать не будет, настройка производится вручную редактированием службы гделиверед. Где именно - простите не скажу. Нет времени ковырять неактуальный для меня предмет :) На всякий случай добавлю (вдруг попадутся нубики вроде меня), для работы обычной (не межсерверной) БД, у вас в конфиге должно быть это: [CentralDeliveryServer] type = tcp port = 29101 address = 127.0.0.1 so_sndbuf = 16384 so_rcvbuf = 16384 ibuffermax = 1048576 obuffermax = 1048576 tcp_nodelay = 0 listen_backlog = 10 accumulate = 268435456 Все что касается - [CentralDeliveryClient] необходимо закоменнтировать! Это настройка межсерверной БД. С конфигом мы разобрались, двигаем дальше. Все изза чего я вообще полез в гделиверед - изменение времени проведения БД, но попутно нашел еще несколько полезных значений. Изменение ВРЕМЕНИ НАЧАЛА и ДЛИТЕЛЬНОСТИ Битвы династии Вот оно самое вкусное, запускаем иду и загружаем в нее наш gdeliveryd, ждем ждем ждем (если это первый раз) пока она его прожует. Дождались - в окне функций ищем следующее значение: CountryBattleMan::Update Попадаем сюда: [IMG] Жмем F5 и видим такой код (могут быть вариации в зависимости от версии): [IMG] Битва династий делится на несколько фаз: 1) настройка времени начала и окончания битвы. Время в секундах начиная с 00-00-00 серверного времени. (73199 это 20-20 серверного времени) Ставим оба значения такие как нам нужно - получаем время начала и окончания (то есть длительность) Битвы династий. 2) Время в течение которого идет подсчет наград и отправка почты, начинается сразу по окончании БД и его длительность зависит от вашей настройки 3) Проверка правильности отправки почты и начисления бонусов игрокам, если обнаружена не отправленная почта - делается попытка ее отправить 4) Остановка бд с ошибкой (если обнаружены не отправленные бонусы). Почта больше не отправляется, битва отключается. Запись в лог ошибки. ВАЖНО! При настройке времени необходимо корректировать все временные интервалы! Не должно получиться так, что вы выдаете награду, когда битва еще идет! Также НЕ РЕКОМЕНДУЮ ставить время больше 86300, (не проверял) скорее всего работать ваша Битва корректно не будет, так как 86400 это полные сутки, а сравнение идет с текущим временем. Изменение ОТОБРАЖЕНИЯ времени БД в клиенте Как это не смешно, но это разные функции. Для правильного отображения времени БД в клиенте (на карте Битвы Династий) необходимо редактировать следующие функции: CountryBattleMan::GetCountryBattleStartTime - время начала CountryBattleMan::GetCountryBattleEndTime - время окончания CountryBattleMan::GetCountryBattleFinishTime - завершение? [IMG] В данном случае наши значения записаны в формате Час (первое число), Минута (второе число) Редактируем в соответствии с нашими настройками Коротко: как изменять значения для чайников (хотя пишу коротко и не уверен, что все поймут :D) Нашли значение - поставили курсор на него (нажали) - далее жмем кнопку таб и попадаем в окно IDA-view Ставим курсор на наше значение и переходим в окно HEX-view, ставим курсор на наше значение (не забываем, что оно перевернуто на китайский манер) и смотрим внизу оффсет. Далее открыв гделиверед в любом хекс редакторе переходим по найденному оффсету и меняем значение на нужное нам. Примерная схема: [IMG] Учиться пользоваться хекс редактором не буду, сами научитесь :) На мои художества не ругаться - писал для чайников, вот и картинка от чайника :D Далее позволю себе (да не накажут меня строгие модераторы) немного скопипастить и приведу вам как изменять награду за Битву династий, дабы собрать все в одну тему. Взято отсюда: https://mmorpg-devs.ru/threads/Награда-за-Битву-Династий.14414/ Автор Roymike [IMG] Изменение максимального количества монет в награду 1 путь: просто изменить максимальное количество монет в стеке. Дешево и сердито. + ненадо ничего редактировать, просто изменить 1 параметр у предмета в элементах - на почту может прийти к примеру 10000 монет, а у вас максимум в пачке 5000 и ваш игрок забирая предмет с почты получит только 5000. сразу начнутся вопли и разборки куда делось остальное. Так что лучше немного потратить время и изменить верхнуюю планку награды. Максимум меняется в функции: CountryBattleMan::CalcPlayerBonus (для игроков) и CountryBattleMan::CalcKingBonus (для короля) [IMG] Как работает: При начислении игроку больше 10к монет будет выдано 10к монет. Меняем оба числа на нужные нам. Изменение максимальной длительности боя (не проверено) По умолчанию любая битва в БД длится 25 минут. Изменить это можно тут: CountryBattleMan::StartBattle [IMG] П.С. возможно позже еще будут добавления П.П.С. Да я не написал, что для входа на БД в нестандартный день нужно еще и нпс включать - но вы же люди не глупые сами знаете что и как и умеете пользоваться редактором npcgen.data ;) И совсем уж П.П.П.С за мой русский не ругать :( у мну по нему всегда был трояк. Хотя техникум и вышку окончил с красным дипломом :D Ну и конечно настрою вашу БД (если вы сами не сможете) за небольшое вознаграждение :D (надеюсь не потрут нафиг за наглую рекламу :D)
Кто может сталкивался уже с изменением времени начала и окончания Битвы династий. Подскажите название функции gdeliveryd в которой менять. Нашел только это GNET__CountryBattleGetConfig__Process но то время что там изменяется влияет только на отображение времени начала и окончания БД на карте БД. На время старта и окончания самой БД не влияет.
Tasks.data (108v) http://yadi.sk/d/w9hdAfyjHPCYW Aipolicy.data http://yadi.sk/d/tkS37pWnHPCZF В архиве айполиси 2 файла, второй с пустыми элементами для облегченного переноса в дальнейшем.
Надежда на помощь слабая, но всегда есть шанс)) Необходимо изменить данные в базе у персонажей. Считываю данные из конкретной таблицы по персонажу, вопрос как потом записать обратно? Может есть какой то универсальный пакет для записи в базу. Пробовал раскопать в iweb, но так как в яве не силен заблудился на 3 include. Если говорить конкретно интересует в первую очередь запись в таблицу "userstore" и в таблицу "task"
Уже как то поднималась подобная тема, но ответа в ней не было. Нужно добавить новую кнопку интерфейса, вызывающую стандартное окно. При добавлении на окно кнопка может открыть только те окна, что уже есть на этом же окне. Пример: миникарта можно добавить хоть 100500 кнопок открывающих шоп, но при замене команды на (к примеру) открыть инвентарь кнопка перестает работать. Ощущение, что где то есть еще запись о том какое окно интерфейса какие команды может использовать. П.С. сразу скажу, если одной из кнопок, что уже есть задать другую команду (с другого окна), она также не открывает. Кто сталкивался, может подскажет.
Собственно хочу увеличить дальность камеры, для лучшего обзора. Как понимаю копать elementclient.exe Может кто сталкивался и подскажет где именно?
Есть у кого модель пушки (не оружие) для пв? Типа как "Ряд огромных пушек" на Острове рваных облаков, но нормального вида.
Кто подскажет какой запрос (или хотя бы куда стучать) чтобы узнать какие персонажи онлайн? Базу mysql не предлагать - там логины аккаунтов. Мне нужно именно персонажей.
Может кто подскажет. Хочу увеличить дальность прорисовки ресурсов/дин объектов. (настройки клиента копать не посылать, от этого дальность именно динамических объектов не изменяется) Как я понимаю надо править elementclient.exe, может кто уже сталкивался с подобным и подскажет где именно. Самое лучшее конечно, это ставить как объект карты, но в этом направлении материалов нет совсем, приходится методом тыка все потихоньку пробовать. И это еще долгий процесс.
Если переносе базы (gamedbd) не перенести uniquenamed - то при попытке создать нового персонажа выдаст ошибку LINK - имя уже занято. Это можно пофиксить без вайпа персонажей?
Кто подскажет адрес где указано время разрушения привязанного предмета? Насколько понимаю копать gs. Или хотя бы подскажите какое именно число искать при стандартном разрушении предмета 3 суток. 259200 или 259199?
Поискал и не нашел, возможно плохо искал. Подскажите какие файлы (и в каком паке) отвечают за освещение в локации. Идея сделать свет дневной в инее более тусклым, что бы не было все так ярко. Или, как вариант, можно ли установить в локации вечную ночь?
Имена участников (разделяйте запятой).