Как получить скорость prop_physics*

tonline_kms65_1

Участник
Сообщения
565
Реакции
225
Ты читать будешь какие нибудь мои ответы? Я уже писал что вектор этот и еше один всегда по нулям, зачем ты еше раз пишешь
И я тебе сколько раз говорил что просто хочу машину сделать, какой блин спидометр
Управление самое простое - жмешь вперед машина должна разгонятся вперед как обычная машина в жизни понимаешь? Ауди там или бмв

Так проблема в том и заключается, я читаю-перечитываю. Них.... понять не могу.
Вот сейчас я наконец-то тебя понял, управление у тебя идет с клавиатуры, это намного проще:

1. все делаешь в updater (OnPlayerRunCmd или похожей ф-ии)
2. трассировкой получаешь точку, куда твоя машина смотрит,
3. создаешь вектор от позиции машины до полученной точки(это будет вектор направления),
4. нормализуешь этот вектор(обязательно!),
5. Делаешь из вектора направления вектор скорости, грубо говоря задаешь ему длину(она-же скорость), задаешь вектору скорости скорость (у тебя это vel ) для плавного разгона сделай таймер и увеличивай глобальную переменную скорости(vel[ent]), до определенного порога.
достиг порога - увеличение переменной прекратил. Пока жмешь клавишу вперед:
HTML:
if (buttons & IN_FORWARD) EntForward(client, id_ent, buttons);
будет выполняться функция EntForward. из неё запускаешь таймер скорости.
Вот это (vel[ent]) у тебя и будет твоя скорость. Ты получить сможешь её в любой момент.
Если нужно ускориться - еще проще:
C-подобный:
if(buttons & IN_SPEED){     // клавиша - ускорение
ScaleVector(speed, vel[ent]*2); // удвоение скорости, простейший вариант, для примера.
Acceleration[client] = true;  // пригодится
  }
Клавишу отпустил - таймер, так-же плавно на уменьшение, до нуля.
Тоже самое и назад, сложного ничего. А так ты сам себе головняк устроил.
Еще у меня остается вопрос, как ты повороты делаешь? Как сама модель машины у тебя поворачивает на поворотах? Сам алгоритм на словах хотя-бы.

Хотя есть от этой темы и польза - возможно скоро появится урок как делать вызовы к SDK и получать оффсеты. Вот только одно НО - набежит банда "монстров-строителей читов", с разинутыми ртами. Халявная информация по хакам. Но всегда приходится чем-то жертвовать.
 
Последнее редактирование:

Черная вдова

Участник
Сообщения
2,795
Реакции
670
Так проблема в том и заключается, я читаю-перечитываю. Них.... понять не могу.
Вот сейчас я наконец-то тебя понял, управление у тебя идет с клавиатуры, это намного проще:

1. все делаешь в updater (OnPlayerRunCmd или похожей ф-ии)
2. трассировкой получаешь точку, куда твоя машина смотрит,
3. создаешь вектор от позиции машины до полученной точки,
4. нормализуешь этот вектор(обязательно!),
5. задаешь вектору скорости скорость (у тебя это vel ) для плавного разгона сделай таймер и увеличивай глобальную переменную скорости(vel[ent]), до определенного порога.
достиг порога - увеличение переменной прекратил. Пока жмешь клавишу вперед:
HTML:
if (buttons & IN_FORWARD) EntForward(client, id_ent, buttons);
будет выполняться функция EntForward. из неё запускаешь таймер скорости.
Вот это (vel[ent]) у тебя и будет твоя скорость. Ты получить сможешь её в любой момент.
Если нужно ускориться - еще проще:
C-подобный:
if(buttons & IN_SPEED){     // клавиша - ускорение
ScaleVector(speed, vel[ent]*2); // удвоение скорости, простейший вариант, для примера.
Acceleration[client] = true;  // пригодится
  }
Клавишу отпустил - таймер, так-же плавно на уменьшение, до нуля.
Тоже самое и назад, сложного ничего. А так ты сам себе головняк устроил.
Еще у меня остается вопрос, как ты повороты делаешь? Как сама модель машины у тебя поворачивает на поворотах? Сам алгоритм на словах хотя-бы.

Хотя есть от этой темы и польза - возможно скоро появится урок как делать вызовы к SDK и получать оффсеты. Вот только одно НО - набежит банда "монстров-строителей читов", с разинутыми ртами. Халявная информация по хакам. Но всегда приходится чем-то жертвовать.
Я это уже сделал месяц назад, всмысле то что ты щас написал - управление с клавиатуры
Я вот говорил про другое про то что я скорость задал, машина поехала а скорость потом определить ее нельзя, че ты такой невменяемый
До поворотов я еще не дошел
 

tonline_kms65_1

Участник
Сообщения
565
Реакции
225
Я это уже сделал месяц назад, всмысле то что ты щас написал - управление с клавиатуры
Я вот говорил про другое про то что я скорость задал, машина поехала а скорость потом определить ее нельзя, че ты такой невменяемый
До поворотов я еще не дошел

Опять 25.
Я же тебе объяснил, скорость только ты можешь задать.
Для кого пишу - не пойму.
Повороты не сделал, а как она у тебя двигается?! Боком? Если боком то точку для вектора ты не получишь => все остальное ничтожно.

Скорость задается длинной вектора, обновление идет каждый тик (таймер, updater, и т.д.)
Вот на ту длину вектора которую ты указал, модель и будет отрисовываться (перемещаться) каждый тик.
Что ты там мутишь, не пойму.
 
Последнее редактирование:

Черная вдова

Участник
Сообщения
2,795
Реакции
670
Опять 25.
Я же тебе объяснил, скорость только ты можешь задать.
Для кого пишу - не пойму.
Повороты не сделал, а как она у тебя двигается?! Боком? Если боком то точку для вектора ты не получишь => все остальное ничтожно.

Скорость задается длинной вектора, обновление идет каждый тик (таймер, updater, и т.д.)
Вот на ту длину вектора которую ты указал, модель и будет отрисовываться (перемещаться) каждый тик.
Что ты там мутишь, не пойму.
Аахахах блин, все приятель я на твои сообщения больше не отвечаю, ты наверно пьяный
 

Kruzya

Участник
Сообщения
12,970
Реакции
10,924
  • Команда форума
  • #45
@Черная вдова, а пробовали через проп?
PHP:
float fVelocity[3];
GetEntPropVector(client, Prop_Data, "m_vecVelocity", fVelocity);

В TF2 работает. Этот проп есть у всех энтити.
 

tonline_kms65_1

Участник
Сообщения
565
Реакции
225
@Черная вдова,
Ты, конечно, можешь не отвечать. Я же тебя не заставляю.
Я сейчас пойду на работу, когда приду, мне эта тема будет уже не интересна. Все что я хотел узнать о этой теме - я узнал.
А вот тебе... Посоветоваться будет не с кем. Работающих по такому направлению здесь ой как немного.
Мне одному скучно, иногда хочется с кем нибудь посоветоваться, а не с кем. Админки, раскраска цвета в чате и т.д.
Твой косяк, я тебе скажу, ты свою машину, видимо, просто пинаешь по вектору и всё. Естественно она не управляемая.
Для управляемости и нужно обновление каждый тик. И вектор нормализуется к единичному для правильного задания скорости. У тебя явно ничего этого нет.
А понять ты это не можешь, потому что, видимо, код чужой, а как он работает ты не знаешь. Тебе подсказывают - ты не слушаешь. Что за человек такой.
Да, и еще, это уже для всех:
движение модели зависит не только от кода, очень много дает расположение костей, (красный вперед, зеленый вбок, синий вверх), центр тяжести модели, физбоксы, хитбоксы. Я сам делаю модели, и уже не раз с этим сталкивался. Вроде и модельки одинаковые, но одна устойчивая, другая нет. Проигрывание анимаций - это вообще отдельная тема.


Ладно, мне на работу. Тема не интересна больше. Прочитай еще раз внимательно, ничего нового я не написал, все так же как и во всех языках.
 
Последнее редактирование:

Черная вдова

Участник
Сообщения
2,795
Реакции
670
@Черная вдова,
Ты, конечно, можешь не отвечать. Я же тебя не заставляю.
Я сейчас пойду на работу, когда приду, мне эта тема будет уже не интересна. Все что я хотел узнать о этой теме - я узнал.
А вот тебе... Посоветоваться будет не с кем. Работающих по такому направлению здесь ой как немного.
Мне одному скучно, иногда хочется с кем нибудь посоветоваться, а не с кем. Админки, раскраска цвета в чате и т.д.
Твой косяк, я тебе скажу, ты свою машину, видимо, просто пинаешь по вектору и всё. Естественно она не управляемая.
Для управляемости и нужно обновление каждый тик. И вектор нормализуется к единичному для правильного задания скорости. У тебя явно ничего этого нет.
А понять ты это не можешь, потому что, видимо, код чужой, а как он работает ты не знаешь. Тебе подсказывают - ты не слушаешь. Что за человек такой.
Да, и еще, это уже для всех:
движение модели зависит не только от кода, очень много дает расположение костей, (красный вперед, зеленый вбок, синий вверх), центр тяжести модели, физбоксы, хитбоксы. Я сам делаю модели, и уже не раз с этим сталкивался. Вроде и модельки одинаковые, но одна устойчивая, другая нет. Проигрывание анимаций - это вообще отдельная тема.


Ладно, мне на работу. Тема не интересна больше. Прочитай еще раз внимательно, ничего нового я не написал, все так же как и во всех языках.
Ты просто не по теме пишешь, ты это можешь понять нет ?
У тебя какая то своя тема в голове и ты просто чето пишешь и пишешь о своем
Я тебе это уже 3 раз повторяю, ты все равно не осознаешь, ты же не приходишь в военкомат торговать арбузами понимаешь ?
Ты потерялся, это все последнее больше не пиши умоляю :D
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,569
Реакции
5,071
@Черная вдова, ты хоть пробовал использовать хоть что-то из предложенного?
Или просто количество сообщений набиваешь?
 

Черная вдова

Участник
Сообщения
2,795
Реакции
670
@Черная вдова, ты хоть пробовал использовать хоть что-то из предложенного?
Или просто количество сообщений набиваешь?
hlmod.ru/threads/kak-poluchit-skorost-prop_physics.47305/page-2#post-394004
Мне только это предложили, мне кажется будет работать, даже не знаю зачем нужно набивать сообщения
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,569
Реакции
5,071
@Черная вдова, тебе ещё много чего предлагали, кроме этого
Я даже дампы netprops и datamaps от ксго скидывал
 

Черная вдова

Участник
Сообщения
2,795
Реакции
670
@Черная вдова, чтобы ты глянул сам доступные параметры у нужных тебе пропов
Обновление CS:GO от 25.01.2019 (24.01.2019 по времени Valve)
CzYUml7WEAA_bk6.jpg
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,569
Реакции
5,071
@Черная вдова, а ты дампы хоть смотрел, что я скидывал?
Я обновил файлы сервака КСГО вчера и создал дампы со вчерашней версии.
:dash2:

Где bljad смайлик фейспалма?!
 

Черная вдова

Участник
Сообщения
2,795
Реакции
670
@Черная вдова, а ты дампы хоть смотрел, что я скидывал?
Я обновил файлы сервака КСГО вчера и создал дампы со вчерашней версии.
:dash2:
Где bljad смайлик фейспалма?!
Там разве что то добавили с того время? И почему ты считаешь что я сам не могу их сделать
То что я даль ссылку я имел ввиду что я тоже так умею
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,569
Реакции
5,071
попробуй получить m_flGroundSpeed, m_flSpeed, m_vecBaseVelocity, m_vecAbsVelocity, m_vecAngVelocity, m_vecVelocity
PHP:
public void OnPluginStart()
{
    RegAdminCmd("sm_speed", Cmd_ShowInfo, ADMFLAG_ROOT);
}

public Action Cmd_ShowInfo(int client, int args)
{
    static char temp[PLATFORM_MAX_PATH];
    for(int i = MaxClients+1, max = GetMaxEntities(); i < max; i++) if(IsValidEntity(i) && GetEntityClassname(i, temp, sizeof(temp)) && !StrContains(temp, "prop_physics"))
    {
        PrintToConsole(client, "\nEntity #%i '%s':", i, temp);
        if(HasEntProp(i, Prop_Data, "m_flGroundSpeed"))
            PrintToConsole(client, "m_flGroundSpeed = %.2f", GetEntPropFloat(i, Prop_Data, "m_flGroundSpeed"));
        if(HasEntProp(i, Prop_Data, "m_flSpeed"))
            PrintToConsole(client, "m_flSpeed = %.2f", GetEntPropFloat(i, Prop_Data, "m_flSpeed"));
        static float vec[3];
        if(HasEntProp(i, Prop_Data, "m_vecBaseVelocity"))
        {
            GetEntPropVector(i, Prop_Data, "m_vecBaseVelocity", vec);
            PrintToConsole(client, "m_vecBaseVelocity = %.2f %.2f %.2f", vec[0], vec[1], vec[2]);
        }
        if(HasEntProp(i, Prop_Data, "m_vecAbsVelocity"))
        {
            GetEntPropVector(i, Prop_Data, "m_vecAbsVelocity", vec);
            PrintToConsole(client, "m_vecAbsVelocity = %.2f %.2f %.2f", vec[0], vec[1], vec[2]);
        }
        if(HasEntProp(i, Prop_Data, "m_vecAngVelocity"))
        {
            GetEntPropVector(i, Prop_Data, "m_vecAngVelocity", vec);
            PrintToConsole(client, "m_vecAngVelocity = %.2f %.2f %.2f", vec[0], vec[1], vec[2]);
        }
        if(HasEntProp(i, Prop_Data, "m_vecVelocity"))
        {
            GetEntPropVector(i, Prop_Data, "m_vecVelocity", vec);
            PrintToConsole(client, "m_vecVelocity = %.2f %.2f %.2f", vec[0], vec[1], vec[2]);
        }
        if(HasEntProp(i, Prop_Data, "m_ModelName"))
        {
            GetEntPropString(i, Prop_Data, "m_ModelName", temp, sizeof(temp));
            PrintToConsole(client, "Model: %s\n", temp);
        }
    }
    return Plugin_Handled;
}
Если есть как опознать нужную модель, то можно добавить в проверку этот параметр
 

Черная вдова

Участник
Сообщения
2,795
Реакции
670
попробуй получить m_flGroundSpeed, m_flSpeed, m_vecBaseVelocity, m_vecAbsVelocity, m_vecAngVelocity, m_vecVelocity
PHP:
public void OnPluginStart()
{
    RegAdminCmd("sm_speed", Cmd_ShowInfo, ADMFLAG_ROOT);
}

public Action Cmd_ShowInfo(int client, int args)
{
    static char temp[PLATFORM_MAX_PATH];
    for(int i = MaxClients+1, max = GetMaxEntities(); i < max; i++) if(IsValidEntity(i) && GetEntityClassname(i, temp, sizeof(temp)) && !StrContains(temp, "prop_physics"))
    {
        PrintToConsole(client, "\nEntity #%i '%s':", i, temp);
        if(HasEntProp(i, Prop_Data, "m_flGroundSpeed"))
            PrintToConsole(client, "m_flGroundSpeed = %.2f", GetEntPropFloat(i, Prop_Data, "m_flGroundSpeed"));
        if(HasEntProp(i, Prop_Data, "m_flSpeed"))
            PrintToConsole(client, "m_flSpeed = %.2f", GetEntPropFloat(i, Prop_Data, "m_flSpeed"));
        static float vec[3];
        if(HasEntProp(i, Prop_Data, "m_vecBaseVelocity"))
        {
            GetEntPropVector(i, Prop_Data, "m_vecBaseVelocity", vec);
            PrintToConsole(client, "m_vecBaseVelocity = %.2f %.2f %.2f", vec[0], vec[1], vec[2]);
        }
        if(HasEntProp(i, Prop_Data, "m_vecAbsVelocity"))
        {
            GetEntPropVector(i, Prop_Data, "m_vecAbsVelocity", vec);
            PrintToConsole(client, "m_vecAbsVelocity = %.2f %.2f %.2f", vec[0], vec[1], vec[2]);
        }
        if(HasEntProp(i, Prop_Data, "m_vecAngVelocity"))
        {
            GetEntPropVector(i, Prop_Data, "m_vecAngVelocity", vec);
            PrintToConsole(client, "m_vecAngVelocity = %.2f %.2f %.2f", vec[0], vec[1], vec[2]);
        }
        if(HasEntProp(i, Prop_Data, "m_vecVelocity"))
        {
            GetEntPropVector(i, Prop_Data, "m_vecVelocity", vec);
            PrintToConsole(client, "m_vecVelocity = %.2f %.2f %.2f", vec[0], vec[1], vec[2]);
        }
        if(HasEntProp(i, Prop_Data, "m_ModelName"))
        {
            GetEntPropString(i, Prop_Data, "m_ModelName", temp, sizeof(temp));
            PrintToConsole(client, "Model: %s\n", temp);
        }
    }
    return Plugin_Handled;
}
Если есть как опознать нужную модель, то можно добавить в проверку этот параметр
Все по 0
А вот это работает
hlmod.ru/threads/kak-poluchit-skorost-prop_physics.47305/page-2#post-394004
 
Последнее редактирование:

Banana

Участник
Сообщения
892
Реакции
113
В ролике видно что модель prop_physics_override, разве модель такого типа может обладать анимацией? Подскажите как вы сделаил анимацию корабля в воздухе?
 
Сверху Снизу