nickerder 21 Опубликовано 7 мая, 2016 (изменено) Сборка: Lucera 1.7 Хроники: Interlude. Как убрать ограничения адены и ресурсов, стандартно счетчик останавливается на 2,147.. как то так) Изменено 7 мая, 2016 пользователем nickerder Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Evolution 243 Опубликовано 7 мая, 2016 (изменено) Сборка: Lucera 1.7 Хроники: Interlude. Как убрать ограничения адены и ресурсов, стандартно счетчик останавливается на 2,147.. как то так) никак, это в клиенте заложено. Если хочешь больше то сделай свою валюту которая хранится в sql и отображается в html. Изменено 7 мая, 2016 пользователем Evolution Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
ioioioii 549 Опубликовано 7 мая, 2016 (изменено) Мне кажется вся инфа хронится в .dllэто я имею ввиду про макс значение адены и т.дв ит клиенте максимальное значение стоит 2.147 и т.дА если быть точнее ковыряйте Engine.dll Изменено 7 мая, 2016 пользователем ioioioii 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
nickerder 21 Опубликовано 7 мая, 2016 (изменено) Мне кажется вся инфа хронится в .dll это я имею ввиду про макс значение адены и т.д в ит клиенте максимальное значение стоит 2.147 и т.д А если быть точнее ковыряйте Engine.dll Спасибо) Отпишу если докопаюсь) Но на стороне сервера, тоже что-то за это отвечает. Я пока что докопался до проверки Адены в инвентаре. там проверка на == int.MAX_VALUE Изменено 7 мая, 2016 пользователем nickerder Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
ioioioii 549 Опубликовано 7 мая, 2016 (изменено) Спасибо) Отпишу если докопаюсь) Но на стороне сервера, тоже что-то за это отвечает. Я пока что докопался до проверки Адены в инвентаре. там проверка на == int.MAX_VALUE Это вы со стороны клиента копаете сейчас или же со стороны сервера?? Просто скажу одно если поменять со стороны сервера, адена мб и будет, но в игре адена будет писаться что у вас в инвентаре 2.147...... Изменено 7 мая, 2016 пользователем ioioioii Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Releaser 17 Опубликовано 7 мая, 2016 В клиенте ограничение на 2.147 ккк?)))) Не, не верю. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
nickerder 21 Опубликовано 7 мая, 2016 Это вы со стороны клиента копаете сейчас или же со стороны сервера?? Просто скажу одно если поменять со стороны сервера, адена мб и будет, но в игре адена будет писаться что у вас в инвентаре 2.147...... Для начала мне нужно сделать это на стороне сервера. И это я копаю на стороне сервера. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
FarmA 29 Опубликовано 7 мая, 2016 да нужно искать на стороне клиента и сервера. Я бы начинал с сервера, 2.147.... это ограничения самой переменной integer, попробовать заменить ее на лонг переменную. ну и так же в клиенте что то есть такое думаю. А чем вы engine.dll ковыряете? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
nickerder 21 Опубликовано 7 мая, 2016 (изменено) да нужно искать на стороне клиента и сервера. Я бы начинал с сервера, 2.147.... это ограничения самой переменной integer, попробовать заменить ее на лонг переменную. ну и так же в клиенте что то есть такое думаю. А чем вы engine.dll ковыряете? Я еще не ковыряю Dll, буду ковырять как разберусь с серверной частью) Мне вот интересно, что будет если отключить просто проверку эту) Изменено 7 мая, 2016 пользователем nickerder Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Jumper 551 Опубликовано 7 мая, 2016 Не надо клиент мучать, в PcInventory создать параметр long MAX_ADENA, вписать значение в клиент пакетах. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Gaikotsu 620 Опубликовано 7 мая, 2016 (изменено) В клиенте ограничение на 2.147 ккк?)))) Не, не верю.вполне просто все эти значения хранятся в клиенте в 32-битных переменных (со знаком) - это единственное логичное объяснение. и если что, правкой пары байт в дллках тут фиг обойдешся - придется править все места, в которых производятся любые действия с количеством предметов. Изменено 7 мая, 2016 пользователем Gaikotsu Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
FarmA 29 Опубликовано 7 мая, 2016 Не надо клиент мучать, в PcInventory создать параметр long MAX_ADENA, вписать значение в клиент пакетах. вот мне так же кажется. проблема в том что испльзуется int переменная. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
nickerder 21 Опубликовано 7 мая, 2016 вполне просто все эти значения хранятся в клиенте в 32-битных переменных (со знаком) - это единственное логичное объяснение. и если что, правкой пары байт в дллках тут фиг обойдешся - придется править все места, в которых производятся любые действия с количеством предметов. Ты меня пугаешь :DD Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
nickerder 21 Опубликовано 7 мая, 2016 вот мне так же кажется. проблема в том что испльзуется int переменная. Переменная в проверке, а если убрать эту проверку))) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Gaikotsu 620 Опубликовано 7 мая, 2016 (изменено) вот мне так же кажется. проблема в том что испльзуется int переменная.это точно - не поможет. в интерлюде, в самих серверных пакетах для передачи количества используется поле d типа, т.е. int 32bit signed и взять и поменять на Q (long) не получится - это испортит структуру пакета и клиент его просто не поймет. с каких хроник стал использоваться long я уже не помню - в ХФ уже он точно есть, в фреее вроде тоже был, а вот насчет грации и ниже уже не помню. таким образом, если вобще ни в жисть но надо сделать, то кроме всех мест где производятся действия с количеством еще и придется в клиенте всю работу с пакетами, в которых задействовано количество вещей, переделывать - править их структуру. оно вам надо, такой гемморой на свою задницу? результат просто не стоит тех усилий, какие придется на это затратить. Изменено 7 мая, 2016 пользователем Gaikotsu Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
FarmA 29 Опубликовано 7 мая, 2016 это точно - не поможет. в интерлюде, в самих серверных пакетах для передачи количества используется поле d типа, т.е. int 32bit signed и взять и поменять на Q (long) не получится - это испортит структуру пакета и клиент его просто не поймет. с каких хроник стал использоваться long я уже не помню - в ХФ уже он точно есть, в фреее вроде тоже был, а вот насчет грации и ниже уже не помню. таким образом, если вобще ни в жисть но надо сделать, то кроме всех мест где производятся действия с количеством еще и придется в клиенте всю работу с пакетами, в которых задействовано количество вещей, переделывать - править их структуру. оно вам надо, такой гемморой на свою задницу? результат просто не стоит тех усилий, какие придется на это затратить. ну как бы я написал то же) только ты расписал) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
nickerder 21 Опубликовано 7 мая, 2016 ну как бы я написал то же) только ты расписал) это точно - не поможет. в интерлюде, в самих серверных пакетах для передачи количества используется поле d типа, т.е. int 32bit signed и взять и поменять на Q (long) не получится - это испортит структуру пакета и клиент его просто не поймет. с каких хроник стал использоваться long я уже не помню - в ХФ уже он точно есть, в фреее вроде тоже был, а вот насчет грации и ниже уже не помню. таким образом, если вобще ни в жисть но надо сделать, то кроме всех мест где производятся действия с количеством еще и придется в клиенте всю работу с пакетами, в которых задействовано количество вещей, переделывать - править их структуру. оно вам надо, такой гемморой на свою задницу? результат просто не стоит тех усилий, какие придется на это затратить. Прежде всего это интересно) + опыт, и часто бывает, пока ищешь одно найдешь и другое, случайно) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
FarmA 29 Опубликовано 7 мая, 2016 Прежде всего это интересно) + опыт, и часто бывает, пока ищешь одно найдешь и другое, случайно) это даа) всегда как что то учишь так бывает) искал как сделать одно а по пути нашел много другого не менее полезного) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Evolution 243 Опубликовано 7 мая, 2016 выше дал ответ, проще будет Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
nickerder 21 Опубликовано 7 мая, 2016 никак, это в клиенте заложено. Если хочешь больше то сделай свою валюту которая хранится в sql и отображается в html. Ну это я сейчас адну прорываю, но мне не только адена, я за все ресурсы даже. у их всех одинаковое ограничение. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Evolution 243 Опубликовано 7 мая, 2016 Ну это я сейчас адну прорываю, но мне не только адена, я за все ресурсы даже. у их всех одинаковое ограничение. могу ток поделать удачи тебе =) 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
nickerder 21 Опубликовано 8 мая, 2016 Не надо клиент мучать, в PcInventory создать параметр long MAX_ADENA, вписать значение в клиент пакетах. Ты оказался ближе всех, как выяснилось в следствии максимальное int32 = 2147483647. В базе таблица Item там столб type его значение меняя на long или int64(что куда удобнее вроде бы). то навикат начинает принимать значение и поболее чем мы привыкли. Соответственно нужно поколдовать в ядре Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Gaikotsu 620 Опубликовано 9 мая, 2016 (изменено) и чем тебе поможет "колдовство" в ядре, если ты в серверных пакетах не сможешь отослать клиенту long-значение по банальнейшей причине - в интерлюде поле с количеством в пакетах имеет тип int32 и нет, смена его типа на стороне сервера не поможет - в итоге у тебя клиенту придут искаженные данные, т.к. все поля в пакете, что идут после количества, изменят свою позицию. Изменено 9 мая, 2016 пользователем Gaikotsu Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Rogue 248 Опубликовано 14 марта, 2020 Некропост конечно, но тема интересная. Я думаю со стороны сервера вполне реально сделать long адену на интерлюде. Надо просто перед отправкой пакетов на апдейт адены делать проверку, если адены больше 2,147ккк, то форсом на клиент высылать интовое число 2,147ккк. Лишняя адена не будет отображаться на клиенте, но фактически на сервере она будет. Можно даже допилить костыли типа отображения реального количества в кб или по команде. Ну и в трейде больше 2 лярдов тоже не сбросишь, но в 2 и более заходов - вполне. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
unknown22 1 Опубликовано 27 марта, 2020 В 14.03.2020 в 10:06, Rogue сказал: Некропост конечно, но тема интересная. Я думаю со стороны сервера вполне реально сделать long адену на интерлюде. Надо просто перед отправкой пакетов на апдейт адены делать проверку, если адены больше 2,147ккк, то форсом на клиент высылать интовое число 2,147ккк. Лишняя адена не будет отображаться на клиенте, но фактически на сервере она будет. Можно даже допилить костыли типа отображения реального количества в кб или по команде. Ну и в трейде больше 2 лярдов тоже не сбросишь, но в 2 и более заходов - вполне. откуда вы такие темы откапываете? вы как будьто видите чем я занимаюсь..... ибо как раз с парт2 на финал адену сделали лонг.) перевод инт в лонг на сервере - это очень просто, но заморочек довольно много. и лишний повод допустить критическую ошибку. в интерлюде и т.п. хрониках, гораздо удобнее делать не так как вы написали. т.к. игрок не будет знать сколько у него адены. просто при превышении порога можно делить на 1000 или даже на миллион и отсылать это значение клиенту. предварительно уведомив игроков разумеется =) тогда можно делать любые суммы и игрок будет в курсе сколько у него адены. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты