Сообщений: 57
Тем: 0
Зарегистрирован: May 2016
pokan81 Написал:я уже нашел, базовая скорость хранится в классе нпц, там же где и колижн хейт и радиус. Непонятно тока какие модификаторы на скорость в воде и в воздухе.
Я решил просто обновлять координаты из каждого пакета в котором они приходят. А если приходит
пакет MoveToLocation то тупо брать целевые координаты за акутальные. Потому что мобы обычно далеко за раз не бегают. И свежие координаты довольно часто прилетают. А координаты самого игрока посчитать не сложно - в пакете ЮзерИнфо шлется акутальное значение скорости. Спасибо за дискуссию. В тех же самых клиентских скриптах, в базовом классе на котором основывается класс нпц(там где extends lineagepawn)
Сообщений: 38
Тем: 4
Зарегистрирован: Mar 2016
Репутация:
-14
luslighter Написал:В тех же самых клиентских скриптах, в базовом классе на котором основывается класс нпц(там где extends lineagepawn)
спасиб, может когда-нибудь вытяну эти данные
Сообщений: 57
Тем: 0
Зарегистрирован: May 2016
pokan81 Написал:спасиб, может когда-нибудь вытяну эти данные Код: function SetMovementPhysics()
{
if (Physics == PHYS_Falling)
return;
if ( PhysicsVolume.bWaterVolume )
SetPhysics(PHYS_Swimming);
else
SetPhysics(PHYS_Walking);
}
simulated function PlayWaiting()
{
if ( KVehicle(Base) != None )
AnimateRiding();
else if ( Physics == PHYS_Swimming )
AnimateTreading();
}
simulated function PlayMoving()
{
if ( (Physics == PHYS_None)
|| ((Controller != None) && Controller.bPreparingMove) )
else if ( (Physics == PHYS_Swimming)
|| ((Physics == PHYS_Falling) && IsPlayingSwimming() && TouchingWaterVolume()) )
AnimateSwimming();
}
simulated function bool IsPlayingSwimming()
{
return AnimIsInGroup(0,'SWIMMING');
}
/* AnimateSwimming()
Moving through water - check acceleration for direction
*/
simulated function AnimateSwimming()
{
MovementAnims[0] = 'Swim';
MovementAnims[1] = 'Swim';
MovementAnims[2] = 'Swim';
MovementAnims[3] = 'Swim';
}
/* AnimateTreading()
Still in water
*/
simulated function AnimateTreading()
{
MovementAnims[0] = 'Swim';
MovementAnims[1] = 'Swim';
MovementAnims[2] = 'Swim';
MovementAnims[3] = 'Swim';
}
Это все ерунда, все что идет с клиента это лишь визуально, реальная скорость любых объектов задается через сервер(ибо я пробовал менять эти самые Дефолтные/базовые Значения, визуально нпц бежал быстрее, но в реальности он добегал как обычно(выставлено в сервере) .
Все что отсылается клиент всегда равно 0, для сервера и не учитывается.
Тебе нужно основываться на тех данных что отсылает сервак, если ты хочешь чтобы отображалось то что реально происходит с движением мобов.
Сообщений: 38
Тем: 4
Зарегистрирован: Mar 2016
Репутация:
-14
luslighter, это понятно что все реальные действия происходят на сервере, просто щас не шлеццо скорость от сервера клиенту, видимо это сделано в целях оптимизации траффика. Хотя странно как-то - что слать инт (хотя для скорости хватит и шорта), что слать один флоат 4 байта... непонятно....
Сообщений: 57
Тем: 0
Зарегистрирован: May 2016
pokan81 Написал:luslighter, это понятно что все реальные действия происходят на сервере, просто щас не шлеццо скорость от сервера клиенту, видимо это сделано в целях оптимизации траффика. Хотя странно как-то - что слать инт (хотя для скорости хватит и шорта), что слать один флоат 4 байта... непонятно.... У тебя по-моему тупо не хватает знаний по движку игры, на сколько я знаю моб передвигается не совсем через MoveToLocation(xyz), у него есть обработчик событий типа if(!Destination)MoveToLoc; else(sleep( ;; );
Смысл которого в том, что пока моб двигается происходит событие(по идее в потоке, которое можно отловить и замутить там таймер), когда событие сбылось, соответственно - моб больше не двигается - значит он на месте.
На кой черт вам клиентский скриптовый бред не пойму, знаний не хватает ?
P.S.
Помоему сам вопрос изначально был задан не корректно, нужно сразу было сказать для чего вам надо и что вы собственно делайте.
Сообщений: 38
Тем: 4
Зарегистрирован: Mar 2016
Репутация:
-14
08-17-2016, 02:21 AM
(Сообщение последний раз редактировалось: 08-17-2016, 02:27 AM pokan81.)
luslighter;417165 Написал:Помоему сам вопрос изначально был задан не корректно, нужно сразу было сказать для чего вам надо и что вы собственно делайте.
в каком пакете прилетает сама скорость, абсолютное значение?
ну хз хз
Добавлено через 4 минуты
luslighter;417165 Написал:У тебя по-моему тупо не хватает знаний по движку игры, на сколько я знаю моб передвигается не совсем через MoveToLocation(xyz), у него есть обработчик событий типа if(!Destination)MoveToLoc; else(sleep( ;; );
Смысл которого в том, что пока моб двигается происходит событие(по идее в потоке, которое можно отловить и замутить там таймер), когда событие сбылось, соответственно - моб больше не двигается - значит он на месте.
На кой черт вам клиентский скриптовый бред не пойму, знаний не хватает ?
Сорян братишь, ваще не по теме понесло тебя. Мне не важно как он передвигается на сервере или еще где. У меня есть 'из пункта А в пункт Б.... найдите координаты в момент времени t'. Без абсолютной скорости никак не решается задача. Ну мы уже выснили как бы, где в новомодных хрониках брать скорость.
Сообщений: 57
Тем: 0
Зарегистрирован: May 2016
pokan81 Написал:в каком пакете прилетает сама скорость, абсолютное значение?
ну хз хз
Добавлено через 4 минуты
Сорян братишь, ваще не по теме понесло тебя. Мне не важно как он передвигается на сервере или еще где. У меня есть 'из пункта А в пункт Б.... найдите координаты в момент времени t'. Без абсолютной скорости никак не решается задача. Ну мы уже выснили как бы, где в новомодных хрониках брать скорость.
По-моему тебе вообще не нужна скорость, для отрисовки, достаточно только времени от X1(координат ) до X2 рисуем точку в GUI, объясни как ты скорость представляешь в GUI ?Если ты через sprite рисуешь
Когда моб двигается происходит событие , тебе нужно найти где конкретно и добавить таймер(а можно и сам эвент использовать) , и использовать значение таймера в прорисовке спрайта, если корейцы не юзают базовую скорость, и все работает нормально, и я тебе уже объяснял что от изменения скорости в скриптах моб быстрее или медленнеее не прибегает, ибо там другое используется, но дело твоё.
Сообщений: 832
Тем: 125
Зарегистрирован: Jan 2009
Репутация:
404
08-17-2016, 11:16 AM
(Сообщение последний раз редактировалось: 08-17-2016, 11:18 AM krisadr.)
luslighter Написал:По-моему тебе вообще не нужна скорость, для отрисовки, достаточно только времени от X1(координат ) до X2 рисуем точку в GUI, объясни как ты скорость представляешь в GUI ?Если ты через sprite рисуешь
Когда моб двигается происходит событие , тебе нужно найти где конкретно и добавить таймер(а можно и сам эвент использовать) , и использовать значение таймера в прорисовке спрайта, если корейцы не юзают базовую скорость, и все работает нормально, и я тебе уже объяснял что от изменения скорости в скриптах моб быстрее или медленнеее не прибегает, ибо там другое используется, но дело твоё. может я чего то не понимаю, но что может другое использоваться кроме скорости?? не зная скорость НЕвозможно определить deltaLoc в момент времени
Добавлено через 2 минуты
а по делу я бы посоветовал забить на плавное передвижение и обновлять позицию моба на радаре когда он достиг места назначения.
Сообщений: 57
Тем: 0
Зарегистрирован: May 2016
krisadr Написал:может я чего то не понимаю, но что может другое использоваться кроме скорости?? не зная скорость НЕвозможно определить deltaLoc в момент времени
Добавлено через 2 минуты
а по делу я бы посоветовал забить на плавное передвижение и обновлять позицию моба на радаре когда он достиг места назначения. Корейцы не отсылают скорость, и моб всеравно замечательно передвигается, что из этого следует ?
Сообщений: 38
Тем: 4
Зарегистрирован: Mar 2016
Репутация:
-14
krisadr Написал:может я чего то не понимаю, но что может другое использоваться кроме скорости?? не зная скорость НЕвозможно определить deltaLoc в момент времени
Добавлено через 2 минуты
а по делу я бы посоветовал забить на плавное передвижение и обновлять позицию моба на радаре когда он достиг места назначения.
Совершенно верно. И да, я уже забил на плавность. Беру сразу конечные координаты. Можно также предположить что у всех мобов скорость допустим ходьбы 90, а бега 150. Тогда будет точнее.
luslighter Написал:Корейцы не отсылают скорость, и моб всеравно замечательно передвигается, что из этого следует ?
Из этого следует что скорость хранится в клиенте. Корейцы пересылают только модификатор скорости. Клиент берет свои данные и умножает на этот модификатор, так получается реальная скорость моба в этот момент.
|