Перейти к содержанию
Авторизация  
nickerder

Убрать ограничения

Рекомендуемые сообщения

Сборка: Lucera 1.7

Хроники: Interlude.

Как убрать ограничения адены и ресурсов, стандартно счетчик останавливается на 2,147.. как то так)

Изменено пользователем nickerder

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Сборка: Lucera 1.7

Хроники: Interlude.

Как убрать ограничения адены и ресурсов, стандартно счетчик останавливается на 2,147.. как то так)

никак, это в клиенте заложено. Если хочешь больше то сделай свою валюту которая хранится в sql и отображается в html.

Изменено пользователем Evolution

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Мне кажется вся инфа хронится в .dll
это я имею ввиду про макс значение адены и т.д
в ит клиенте максимальное значение стоит 2.147 и т.д

А если быть точнее ковыряйте Engine.dll

Изменено пользователем ioioioii
  • Upvote 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Мне кажется вся инфа хронится в .dll

это я имею ввиду про макс значение адены и т.д

в ит клиенте максимальное значение стоит 2.147 и т.д

 

А если быть точнее ковыряйте Engine.dll

Спасибо) Отпишу если докопаюсь)

 

Но на стороне сервера, тоже что-то за это отвечает.

Я пока что докопался до проверки Адены в инвентаре. там проверка на == int.MAX_VALUE

Изменено пользователем nickerder

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо) Отпишу если докопаюсь)

 

Но на стороне сервера, тоже что-то за это отвечает.

Я пока что докопался до проверки Адены в инвентаре. там проверка на == int.MAX_VALUE

Это вы со стороны клиента копаете сейчас или же со стороны сервера??

Просто скажу одно если поменять со стороны сервера, адена мб и будет, но в игре адена будет писаться что у вас в инвентаре 2.147......

Изменено пользователем ioioioii

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В клиенте ограничение на 2.147 ккк?)))) Не, не верю.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Это вы со стороны клиента копаете сейчас или же со стороны сервера??

Просто скажу одно если поменять со стороны сервера, адена мб и будет, но в игре адена будет писаться что у вас в инвентаре 2.147......

Для начала мне нужно сделать это на стороне сервера. И это я копаю на стороне сервера.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

да нужно искать на стороне клиента и сервера. Я бы начинал с сервера, 2.147.... это ограничения самой переменной integer, попробовать заменить ее на лонг переменную. ну и так же в клиенте что то есть такое думаю. А чем вы engine.dll ковыряете?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

да нужно искать на стороне клиента и сервера. Я бы начинал с сервера, 2.147.... это ограничения самой переменной integer, попробовать заменить ее на лонг переменную. ну и так же в клиенте что то есть такое думаю. А чем вы engine.dll ковыряете?

Я еще не ковыряю Dll, буду ковырять как разберусь с серверной частью)

 

Мне вот интересно, что будет если отключить просто проверку эту)

Изменено пользователем nickerder

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Не надо клиент мучать, в PcInventory создать параметр long MAX_ADENA, вписать значение в клиент пакетах.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В клиенте ограничение на 2.147 ккк?)))) Не, не верю.

вполне

просто все эти значения хранятся в клиенте в 32-битных переменных (со знаком) - это единственное логичное объяснение.

 

и если что, правкой пары байт в дллках тут фиг обойдешся - придется править все места, в которых производятся любые действия с количеством предметов.

Изменено пользователем Gaikotsu

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Не надо клиент мучать, в PcInventory создать параметр long MAX_ADENA, вписать значение в клиент пакетах.

вот мне так же кажется. проблема в том что испльзуется int переменная.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

вполне

просто все эти значения хранятся в клиенте в 32-битных переменных (со знаком) - это единственное логичное объяснение.

 

и если что, правкой пары байт в дллках тут фиг обойдешся - придется править все места, в которых производятся любые действия с количеством предметов.

Ты меня пугаешь :DD

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

вот мне так же кажется. проблема в том что испльзуется int переменная.

Переменная в проверке, а если убрать эту проверку)))

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

вот мне так же кажется. проблема в том что испльзуется int переменная.

это точно - не поможет.

 

в интерлюде, в самих серверных пакетах для передачи количества используется поле d типа, т.е. int 32bit signed

и взять и поменять на Q (long) не получится - это испортит структуру пакета и клиент его просто не поймет.

 

с каких хроник стал использоваться long я уже не помню - в ХФ уже он точно есть, в фреее вроде тоже был, а вот насчет грации и ниже уже не помню.

 

таким образом, если вобще ни в жисть но надо сделать, то кроме всех мест где производятся действия с количеством еще и придется в клиенте всю работу с пакетами, в которых задействовано количество вещей, переделывать - править их структуру.

 

оно вам надо, такой гемморой на свою задницу? результат просто не стоит тех усилий, какие придется на это затратить.

Изменено пользователем Gaikotsu

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

это точно - не поможет.

 

в интерлюде, в самих серверных пакетах для передачи количества используется поле d типа, т.е. int 32bit signed

и взять и поменять на Q (long) не получится - это испортит структуру пакета и клиент его просто не поймет.

 

с каких хроник стал использоваться long я уже не помню - в ХФ уже он точно есть, в фреее вроде тоже был, а вот насчет грации и ниже уже не помню.

 

таким образом, если вобще ни в жисть но надо сделать, то кроме всех мест где производятся действия с количеством еще и придется в клиенте всю работу с пакетами, в которых задействовано количество вещей, переделывать - править их структуру.

 

оно вам надо, такой гемморой на свою задницу? результат просто не стоит тех усилий, какие придется на это затратить.

ну как бы я написал то же) только ты расписал)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

ну как бы я написал то же) только ты расписал)

 

это точно - не поможет.

 

в интерлюде, в самих серверных пакетах для передачи количества используется поле d типа, т.е. int 32bit signed

и взять и поменять на Q (long) не получится - это испортит структуру пакета и клиент его просто не поймет.

 

с каких хроник стал использоваться long я уже не помню - в ХФ уже он точно есть, в фреее вроде тоже был, а вот насчет грации и ниже уже не помню.

 

таким образом, если вобще ни в жисть но надо сделать, то кроме всех мест где производятся действия с количеством еще и придется в клиенте всю работу с пакетами, в которых задействовано количество вещей, переделывать - править их структуру.

 

оно вам надо, такой гемморой на свою задницу? результат просто не стоит тех усилий, какие придется на это затратить.

Прежде всего это интересно) + опыт, и часто бывает, пока ищешь одно найдешь и другое, случайно)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Прежде всего это интересно) + опыт, и часто бывает, пока ищешь одно найдешь и другое, случайно)

это даа) всегда как что то учишь так бывает) искал как сделать одно а по пути нашел много другого не менее полезного)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

:friends:  выше дал ответ, проще будет

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

никак, это в клиенте заложено. Если хочешь больше то сделай свою валюту которая хранится в sql и отображается в html.

Ну это я сейчас адну прорываю, но мне не только адена, я за все ресурсы даже. у их всех одинаковое ограничение.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ну это я сейчас адну прорываю, но мне не только адена, я за все ресурсы даже. у их всех одинаковое ограничение.

могу ток поделать удачи тебе =)

  • Upvote 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Не надо клиент мучать, в PcInventory создать параметр long MAX_ADENA, вписать значение в клиент пакетах.

Ты оказался ближе всех, как выяснилось в следствии максимальное int32 = 2147483647.

В базе таблица Item там столб type его значение меняя на long или int64(что куда удобнее вроде бы). то навикат начинает принимать значение и поболее чем мы привыкли. Соответственно нужно поколдовать в ядре :D

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

и чем тебе поможет "колдовство" в ядре, если ты в серверных пакетах не сможешь отослать клиенту long-значение по банальнейшей причине - в интерлюде поле с количеством в пакетах имеет тип int32

и нет, смена его типа на стороне сервера не поможет - в итоге у тебя клиенту придут искаженные данные, т.к. все поля в пакете, что идут после количества, изменят свою позицию.

Изменено пользователем Gaikotsu

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Некропост конечно, но тема интересная. Я думаю со стороны сервера вполне реально сделать long адену на интерлюде. Надо просто перед отправкой пакетов на апдейт адены делать проверку, если адены больше 2,147ккк, то форсом на клиент высылать интовое число 2,147ккк. Лишняя адена не будет отображаться на клиенте, но фактически на сервере она будет. Можно даже допилить костыли типа отображения реального количества в кб или по команде. Ну и в трейде больше 2 лярдов тоже не сбросишь, но в 2 и более заходов - вполне.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
В 14.03.2020 в 10:06, Rogue сказал:

Некропост конечно, но тема интересная. Я думаю со стороны сервера вполне реально сделать long адену на интерлюде. Надо просто перед отправкой пакетов на апдейт адены делать проверку, если адены больше 2,147ккк, то форсом на клиент высылать интовое число 2,147ккк. Лишняя адена не будет отображаться на клиенте, но фактически на сервере она будет. Можно даже допилить костыли типа отображения реального количества в кб или по команде. Ну и в трейде больше 2 лярдов тоже не сбросишь, но в 2 и более заходов - вполне.

откуда вы такие темы откапываете? :)

вы как будьто видите чем я занимаюсь..... ибо как раз с парт2 на финал адену сделали лонг.)
перевод инт в лонг на сервере - это очень просто, но заморочек довольно много. и лишний повод допустить критическую ошибку.
в интерлюде и т.п. хрониках, гораздо удобнее делать не так как вы написали. т.к. игрок не будет знать сколько у него адены.
просто при превышении порога можно делить на 1000 или даже на миллион и отсылать это значение клиенту. предварительно уведомив игроков разумеется =)
тогда можно делать любые суммы и игрок будет в курсе сколько у него адены.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация  

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×
×
  • Создать...