Форум администраторов игровых серверов

Форум администраторов игровых серверов (https://forum.zone-game.info/TT.php)
-   Игровой клиент (https://forum.zone-game.info/forumdisplay.php?f=54)
-   -   int To Double(В Окне Статов Персонажа) (https://forum.zone-game.info/showthread.php?t=37270)

bigbastard 01.01.2015 23:14

int To Double(В Окне Статов Персонажа)
 
http://oi57.tinypic.com/20z1f9w.jpg
Необходимо изменить вывод(отображение) параметров статы персонажа из Int в double Формат.
То есть к примеру PDef 450 выводить как 45.0, MDef 175 как 17.5


Я так понимаю для этого нужно менять Native class(Вывода статов перса) в NWindow.dll ?

Либо можно ограничится .xdat .u ?

Donatte 02.01.2015 00:16

Re: int To Double(В Окне Статов Персонажа)
 
Вау. Вы сидите на форуме ацис и репостите всё что там пишут? :redlol:

bigbastard 02.01.2015 00:37

Re: int To Double(В Окне Статов Персонажа)
 
Цитата:

Сообщение от Donatte (Сообщение 382706)
Вау. Вы сидите на форуме ацис и репостите всё что там пишут? :redlol:

Разве там пишут про то какой файл отвечает за вывод ?

Donatte 02.01.2015 00:51

Re: int To Double(В Окне Статов Персонажа)
 
Да тут к гадалке не ходи и так известно какой. Интерфейсом заведует interface.u

Daan Raven 02.01.2015 00:58

Re: int To Double(В Окне Статов Персонажа)
 
Потребуется всего лишь исходник Engine.dll. Попроси у корейцев, в честь нг.
А там дальше не составит труда поменять тип получаемых данных в пакете UserInfo. В серверной части еще проще.

Donatte 02.01.2015 01:02

Re: int To Double(В Окне Статов Персонажа)
 
Цитата:

Сообщение от Warencense (Сообщение 382740)
Потребуется всего лишь исходник Engine.dll. Попроси у корейцев, в честь нг.
А там дальше не составит труда поменять тип получаемых данных в пакете UserInfo. В серверной части еще проще.

Действительно. А зачем исходники Emgine.dll то?

bigbastard 02.01.2015 04:15

Re: int To Double(В Окне Статов Персонажа)
 
Всем спасибо!
Пока вот такой результат
http://i.imgur.com/BzJa1cs.jpg?1

В Float в клиенте перевел, осталось перевести на сервере.


P.S.
А вот как было и то без сервера.
http://i.imgur.com/gPqY0Pp.png?1

Daan Raven 03.01.2015 11:05

Re: int To Double(В Окне Статов Персонажа)
 
Цитата:

Сообщение от Donatte (Сообщение 382754)
Действительно. А зачем исходники Engine.dll то?

Дело в том, что там хранится инфа о всех пакетах. За отображение статов отвечает пакет UserInfo. За отображение основной части статов (или проще говоря, за отображение всех статов в окне Статуса Персонажа) отвечают блоки флагов пакета UserInfo, каждый флаг которых имеет целочисленный тип данных. То есть, для того, что бы флоат-значение нормально отображалось, нужно его изменить и в пакете UserInfo.

Donatte 03.01.2015 13:42

Re: int To Double(В Окне Статов Персонажа)
 
Цитата:

Сообщение от Warencense (Сообщение 382926)
Дело в том, что там хранится инфа о всех пакетах. За отображение статов отвечает пакет UserInfo. За отображение основной части статов (или проще говоря, за отображение всех статов в окне Статуса Персонажа) отвечают блоки флагов пакета UserInfo, каждый флаг которых имеет целочисленный тип данных. То есть, для того, что бы флоат-значение нормально отображалось, нужно его изменить и в пакете UserInfo.

А что вам мешает его сделать результатом деления? Например int / 10 = float.

Daan Raven 03.01.2015 15:38

Re: int To Double(В Окне Статов Персонажа)
 
Цитата:

Сообщение от Donatte (Сообщение 382948)
А что вам мешает его сделать результатом деления? Например int / 10 = float.

writeD(pdef); - DWORD (целочисленное 4-байтовое значение), то есть на стороне сервера даже если мы поставим writeD(pdef/10), то оно будет выглядеть как writeD(Math.round(pdef/10)). А если мы поставим putFloat(pdef/10) - Float (вещественное 4-байтовое значение), то при получении этого пакета он будет считаться как неправильный из-за несовпадения типов (так как в клиенте, а именно в engine.dll, он указан как DWORD), либо же будет выводить ересь в виде заоблачного значения. Отсюда делаем выводы.


Текущее время: 01:03. Часовой пояс GMT +3.

Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot