HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > ПРОГРАММИРОВАНИЕ > С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #1  
Старый 28.05.2017, 19:45
Dark_Knight
Флудер
Регистрация: 18.03.2013
Сообщений: 4,080
С нами: 6921957

Репутация: 183


По умолчанию

Ты хочешь сделать бегущую строку с указанием количества символов для отображения и со скоростью смещения отображения символа в милисекундах?
 
Ответить с цитированием

  #2  
Старый 28.05.2017, 19:48
ishi
Постоянный
Регистрация: 17.01.2014
Сообщений: 493
С нами: 6483143

Репутация: 93
По умолчанию

Цитата:
Сообщение от Dark_Knight  

Ты хочешь сделать бегущую строку с указанием количества символов для отображения и со скоростью смещения отображения символа в милисекундах?
Примерно так. То что ты видишь на примере: попытка сделать именно бегающий текст, который основан был бы на двух рендерах, но поскольку я лишь начал создавать широкую строку, ещё не изменил принцип работы - так что да, я буду переделывать так, чтобы символы раз в какое-то время (или не обязательно время, что-нибудь ещё может возьму за систему исчисления), символы приближались к концу строки, а последний символ перемещался в начало
 
Ответить с цитированием

  #3  
Старый 28.05.2017, 21:48
Jack_Savage
Участник форума
Регистрация: 06.11.2016
Сообщений: 150
С нами: 5008255

Репутация: 18
По умолчанию

Передача float через ракнет (не samp).

Внимание вопрос: Почему RakNet передает вместо флоат какой то бред ?



C++:





Код:
enum
GameMessages
{
ID_DATA
=
ID_USER_PACKET_ENUM
+
1
,
OUT_SEND_SYNC
,
}
;
client
float
*
position
=
(
*
(
DWORD
*
)
0xB6F5F0
)
?
(
float
*
)
(
*
(
DWORD
*
)
(
*
(
DWORD
*
)
0xB6F5F0
+
0x14
)
+
0x30
)
:
NULL
;
RakNet
::
BitStream bsOut
;
bsOut
.
Write
(
(
RakNet
::
MessageID
)
OUT_SEND_SYNC
)
;
bsOut
.
Write
(
position
[
0
]
)
;
bsOut
.
Write
(
position
[
1
]
)
;
bsOut
.
Write
(
position
[
2
]
)
;
peerInterface
->
Send
(
&
bsOut
,
HIGH_PRIORITY
,
RELIABLE_ORDERED
,
0
,
server
,
false
)
;
Debug
(
"sendPacket"
)
;
server
void
PlayerSync
(
RakNet
::
Packet
*
packet
)
{
Player
*
p
=
players
->
FindByNetID
(
packet
->
systemAddress
)
;
if
(
p
!=
NULL
)
{
RakNet
::
BitStream
bsIn
(
packet
->
data
,
packet
->
length
,
false
)
;
float
x
,
y
,
z
;
bsIn
.
Read
(
x
)
;
bsIn
.
Read
(
y
)
;
bsIn
.
Read
(
z
)
;
printf
(
"MAIN::PlayerSync %f, %f, %f\n"
,
x
,
y
,
z
)
;
}
}


Что за фигня ?
 
Ответить с цитированием

  #4  
Старый 28.05.2017, 22:17
SR_team
Флудер
Регистрация: 26.10.2013
Сообщений: 4,924
С нами: 6603505

Репутация: 183


По умолчанию

Цитата:
Сообщение от Jack_Savage  

float *position = (*(DWORD *)0xB6F5F0) ? (float *)(*(DWORD *)(*(DWORD *)0xB6F5F0 + 0x14) + 0x30) : NULL;
это чтение данных из памяти, ты использщуешь адреса для игры. В RakNet другие адреса. Да и вообще в RakNet они не нужны
 
Ответить с цитированием

  #5  
Старый 28.05.2017, 22:21
Jack_Savage
Участник форума
Регистрация: 06.11.2016
Сообщений: 150
С нами: 5008255

Репутация: 18
По умолчанию

Цитата:
Сообщение от SR_team  

это чтение данных из памяти, ты использщуешь адреса для игры. В RakNet другие адреса. Да и вообще в RakNet они не нужны
Я это приложыл чтобы ясно было что за position...

Мне координаты из воздуха брать что ли...

Я отправляю float, принимаю float уже какой то не такой как надо...
 
Ответить с цитированием

  #6  
Старый 28.05.2017, 21:53
ishi
Постоянный
Регистрация: 17.01.2014
Сообщений: 493
С нами: 6483143

Репутация: 93
По умолчанию

ты уверен что там всё правильно?

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

  #7  
Старый 28.05.2017, 22:06
Jack_Savage
Участник форума
Регистрация: 06.11.2016
Сообщений: 150
С нами: 5008255

Репутация: 18
По умолчанию

Цитата:
Сообщение от Снежок  

ты уверен что там всё правильно?
у меня так бывало, когда я ошибался с адресом на пару байт. и считывал по кускам два значения, которые в итоге выдавали какую-то ересь
float *position = (*(DWORD *)0xB6F5F0) ? (float *)(*(DWORD *)(*(DWORD *)0xB6F5F0 + 0x14) + 0x30) : NULL;

Если ты про это то оно работает и если на клиенте выводить его значение то все нормально
 
Ответить с цитированием

  #8  
Старый 28.05.2017, 22:08
ishi
Постоянный
Регистрация: 17.01.2014
Сообщений: 493
С нами: 6483143

Репутация: 93
По умолчанию

Цитата:
Сообщение от Jack_Savage  

float *position = (*(DWORD *)0xB6F5F0) ? (float *)(*(DWORD *)(*(DWORD *)0xB6F5F0 + 0x14) + 0x30) : NULL;
Если ты про это то оно работает и если на клиенте выводить его значение то все нормально
не могу ничем помочь, отбой. :scratch:
 
Ответить с цитированием

  #9  
Старый 28.05.2017, 22:25
itsLegend
Флудер
Регистрация: 23.03.2013
Сообщений: 2,696
С нами: 6915558

Репутация: 183


По умолчанию

Ты уверен, что в packet->data хранится только 12 байт, а не 13?
 
Ответить с цитированием

  #10  
Старый 28.05.2017, 22:33
Jack_Savage
Участник форума
Регистрация: 06.11.2016
Сообщений: 150
С нами: 5008255

Репутация: 18
По умолчанию

Цитата:
Сообщение от legend2360  

Ты уверен, что в packet->data хранится только 12 байт, а не 13?
А это при чем тут?
 
Ответить с цитированием
Ответ





Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.