Рейтинг темы:
  • 0 Голос(ов) - 0 в среднем
  • 1
  • 2
  • 3
  • 4
  • 5
Скорость перемещения НПЦ
#21
pokan81 Написал:я уже нашел, базовая скорость хранится в классе нпц, там же где и колижн хейт и радиус. Непонятно тока какие модификаторы на скорость в воде и в воздухе.

[Изображение: cYVFxg.jpg]

Я решил просто обновлять координаты из каждого пакета в котором они приходят. А если приходит
пакет MoveToLocation то тупо брать целевые координаты за акутальные. Потому что мобы обычно далеко за раз не бегают. И свежие координаты довольно часто прилетают. А координаты самого игрока посчитать не сложно - в пакете ЮзерИнфо шлется акутальное значение скорости. Спасибо за дискуссию.
В тех же самых клиентских скриптах, в базовом классе на котором основывается класс нпц(там где extends lineagepawn)
Ответ
#22
luslighter Написал:В тех же самых клиентских скриптах, в базовом классе на котором основывается класс нпц(там где extends lineagepawn)

спасиб, может когда-нибудь вытяну эти данные
Ответ
#23
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, для сервера и не учитывается.
Тебе нужно основываться на тех данных что отсылает сервак, если ты хочешь чтобы отображалось то что реально происходит с движением мобов.
Ответ
#24
luslighter, это понятно что все реальные действия происходят на сервере, просто щас не шлеццо скорость от сервера клиенту, видимо это сделано в целях оптимизации траффика. Хотя странно как-то - что слать инт (хотя для скорости хватит и шорта), что слать один флоат 4 байта... непонятно....
Ответ
#25
pokan81 Написал:luslighter, это понятно что все реальные действия происходят на сервере, просто щас не шлеццо скорость от сервера клиенту, видимо это сделано в целях оптимизации траффика. Хотя странно как-то - что слать инт (хотя для скорости хватит и шорта), что слать один флоат 4 байта... непонятно....
У тебя по-моему тупо не хватает знаний по движку игры, на сколько я знаю моб передвигается не совсем через MoveToLocation(xyz), у него есть обработчик событий типа if(!Destination)MoveToLoc; else(sleep( ;; );
Смысл которого в том, что пока моб двигается происходит событие(по идее в потоке, которое можно отловить и замутить там таймер), когда событие сбылось, соответственно - моб больше не двигается - значит он на месте.
На кой черт вам клиентский скриптовый бред не пойму, знаний не хватает ?

P.S.
Помоему сам вопрос изначально был задан не корректно, нужно сразу было сказать для чего вам надо и что вы собственно делайте.
Ответ
#26
luslighter;417165 Написал:Помоему сам вопрос изначально был задан не корректно, нужно сразу было сказать для чего вам надо и что вы собственно делайте.

в каком пакете прилетает сама скорость, абсолютное значение?

ну хз хз Big Grin

Добавлено через 4 минуты
luslighter;417165 Написал:У тебя по-моему тупо не хватает знаний по движку игры, на сколько я знаю моб передвигается не совсем через MoveToLocation(xyz), у него есть обработчик событий типа if(!Destination)MoveToLoc; else(sleep( ;; );
Смысл которого в том, что пока моб двигается происходит событие(по идее в потоке, которое можно отловить и замутить там таймер), когда событие сбылось, соответственно - моб больше не двигается - значит он на месте.
На кой черт вам клиентский скриптовый бред не пойму, знаний не хватает ?

Сорян братишь, ваще не по теме понесло тебя. Мне не важно как он передвигается на сервере или еще где. У меня есть 'из пункта А в пункт Б.... найдите координаты в момент времени t'. Без абсолютной скорости никак не решается задача. Ну мы уже выснили как бы, где в новомодных хрониках брать скорость.
Ответ
#27
pokan81 Написал:в каком пакете прилетает сама скорость, абсолютное значение?

ну хз хз Big Grin

Добавлено через 4 минуты

Сорян братишь, ваще не по теме понесло тебя. Мне не важно как он передвигается на сервере или еще где. У меня есть 'из пункта А в пункт Б.... найдите координаты в момент времени t'. Без абсолютной скорости никак не решается задача. Ну мы уже выснили как бы, где в новомодных хрониках брать скорость.

По-моему тебе вообще не нужна скорость, для отрисовки, достаточно только времени от X1(координат ) до X2 рисуем точку в GUI, объясни как ты скорость представляешь в GUI ?Если ты через sprite рисуешь
Когда моб двигается происходит событие , тебе нужно найти где конкретно и добавить таймер(а можно и сам эвент использовать) , и использовать значение таймера в прорисовке спрайта, если корейцы не юзают базовую скорость, и все работает нормально, и я тебе уже объяснял что от изменения скорости в скриптах моб быстрее или медленнеее не прибегает, ибо там другое используется, но дело твоё.
Ответ
#28
luslighter Написал:По-моему тебе вообще не нужна скорость, для отрисовки, достаточно только времени от X1(координат ) до X2 рисуем точку в GUI, объясни как ты скорость представляешь в GUI ?Если ты через sprite рисуешь
Когда моб двигается происходит событие , тебе нужно найти где конкретно и добавить таймер(а можно и сам эвент использовать) , и использовать значение таймера в прорисовке спрайта, если корейцы не юзают базовую скорость, и все работает нормально, и я тебе уже объяснял что от изменения скорости в скриптах моб быстрее или медленнеее не прибегает, ибо там другое используется, но дело твоё.
может я чего то не понимаю, но что может другое использоваться кроме скорости?? не зная скорость НЕвозможно определить deltaLoc в момент времени

Добавлено через 2 минуты
а по делу я бы посоветовал забить на плавное передвижение и обновлять позицию моба на радаре когда он достиг места назначения.
Ответ
#29
krisadr Написал:может я чего то не понимаю, но что может другое использоваться кроме скорости?? не зная скорость НЕвозможно определить deltaLoc в момент времени

Добавлено через 2 минуты
а по делу я бы посоветовал забить на плавное передвижение и обновлять позицию моба на радаре когда он достиг места назначения.
Корейцы не отсылают скорость, и моб всеравно замечательно передвигается, что из этого следует ?
Ответ
#30
krisadr Написал:может я чего то не понимаю, но что может другое использоваться кроме скорости?? не зная скорость НЕвозможно определить deltaLoc в момент времени

Добавлено через 2 минуты
а по делу я бы посоветовал забить на плавное передвижение и обновлять позицию моба на радаре когда он достиг места назначения.

Совершенно верно. И да, я уже забил на плавность. Беру сразу конечные координаты. Можно также предположить что у всех мобов скорость допустим ходьбы 90, а бега 150. Тогда будет точнее.

luslighter Написал:Корейцы не отсылают скорость, и моб всеравно замечательно передвигается, что из этого следует ?

Из этого следует что скорость хранится в клиенте. Корейцы пересылают только модификатор скорости. Клиент берет свои данные и умножает на этот модификатор, так получается реальная скорость моба в этот момент.
Ответ


Возможно похожие темы ...
Тема Автор Ответы Просмотры Последний пост
  Haste potion(увеличивает скорость бега) Allene 6 1,819 09-28-2015, 10:48 PM
Последний пост: Donatte
  Скорость Интернета Для Сервера. Алмаз 25 8,671 07-22-2013, 09:26 PM
Последний пост: Алмаз
  Скорость каста ralex 7 2,619 09-04-2011, 10:37 PM
Последний пост: ralex
  Скорость интернета для онлайн 50-100 JFS 8 3,103 04-14-2011, 05:35 AM
Последний пост: NotSpecified
  Скорость каста UFODriverr 5 2,668 04-27-2010, 12:16 AM
Последний пост: Devilop
  Скорость SVKoT 1 1,988 11-03-2008, 02:16 AM
Последний пост: JoJo
  Помогите подобрать скорость для создания сервера qinka 43 11,093 07-19-2008, 01:48 AM
Последний пост: hattko

Перейти к форуму:


Пользователи, просматривающие эту тему: 4 Гость(ей)