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

Форум администраторов игровых серверов (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), либо же будет выводить ересь в виде заоблачного значения. Отсюда делаем выводы.

flopix 03.01.2015 16:01

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

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

Выше имели ввиду что уже на стороне клиента это целочисленное значение делить на 10 или сколько нужно непосредственно при выводе на панель. Только зачем это?

Donatte 03.01.2015 17:01

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

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

Очень плохо быть шаблонным программистом. С виду нелогичные вещи сразу ставят в ступор.

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

Вот оно как бывает Михалыч.

Цитата:

Сообщение от flopix (Сообщение 382968)
Выше имели ввиду что уже на стороне клиента это целочисленное значение делить на 10 или сколько нужно непосредственно при выводе на панель. Только я зачем это?

Оригинал тут.

Daan Raven 03.01.2015 23:19

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

Сообщение от Donatte (Сообщение 382970)
Очень плохо быть шаблонным программистом. С виду нелогичные вещи сразу ставят в ступор.

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

Вот оно как бывает Михалыч.



Оригинал тут.

Хм, что-то я сам себя запутал :D Разговор шел об интерфейсе, а я о нем и забыл. :Olen': В принципе отобразить флоат можно, но вряд ли тсу по зубам скомпилировать. То есть, пусть обращается к профи в этом деле.

Donatte 03.01.2015 23:19

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

Сообщение от Warencense (Сообщение 383010)
Хм, что-то я сам себя запутал :D Разговор шел об интерфейсе, а я о нем и забыл. :Olen': В принципе отобразить флоат можно, но вряд ли тсу по зубам скомпилировать. То есть, пусть обращается к профи в этом деле.

В это всё и упёрлось. Хотя ТС сказал что у него получилось. :redlol:

Daan Raven 04.01.2015 01:31

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

Сообщение от Donatte (Сообщение 383011)
В это всё и упёрлось. Хотя ТС сказал что у него получилось. :redlol:

img:
Свернуть ↑Развернуть ↓

Та норм все :redlol:


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

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