Русское сообщество по скриптингу

Движение энтити за игроком  [Решено]

Все вопросы по скриптингу для AMXX, помощь в редактировании плагинов.

Модераторы: Subb98, liFe iS GoOD

Правила форума
1. Запрещено материться и оскорблять других участников форума.
2. Запрещен флуд, оффтоп, дабл постинг во всех разделах форума, кроме раздела "Болтовня".
3. Запрещено взламывать сайт/форум или наносить любой вред проекту.
4. Запрещено рекламировать другие ресурсы.
5. Запрещено создавать темы без информативного названия. Название темы должно отображать ее смысл.

В данном разделе форума разрешено создавать темы, касающие только скриптинга для AMX Mod X.

Правила при создании новой темы:
1. При вставке кода плагина необходимо использовать тег [code=php].
2. Любые изображения должны быть загружены, как вложения к вашему сообщению.
3. При описании проблемы или запросе на помощь в редактировании плагина обязательно выкладывайте исходник sma плагина.

Движение энтити за игроком

Сообщение izumi4 » 04 янв 2022, 23:21

Всем привет!

Как сделать так чтобы энтитя двигалась за игроком, то бишь за овнером?

Попробовал вот такие варианты:

Код: Выделить всё

      new iOwner = pev(iEntity, pev_owner);
      new Float: vecEntOrigin[3]; pev(iEntity, pev_origin, vecEntOrigin);
      new Float: originF[3]; pev(iOwner, pev_origin, originF);

      new Float:fl_Velocity[3];
      
      new Float:distance = get_distance_f(vecEntOrigin, originF);

      if(distance > 1.0)
      {
         new Float:Speed = distance / 2000.0

         fl_Velocity[0] = (vecEntOrigin[0] - originF[0]) / Speed;
         fl_Velocity[1] = (vecEntOrigin[1] - originF[1]) / Speed;
         fl_Velocity[2] = (vecEntOrigin[2] - originF[2]) / Speed;
      }
      else
      {
         fl_Velocity[0] = 0.0;
         fl_Velocity[1] = 0.0;
         fl_Velocity[2] = 0.0;
      }
      set_pev(iEntity, pev_velocity, fl_Velocity);
   }



Код: Выделить всё

   new iOwner = pev(iEntity, pev_owner);
   new Float: vecEntOrigin[3]; pev(iEntity, pev_origin, vecEntOrigin);
   new Float: originF[3]; pev(iOwner, pev_origin, originF);
   new Float: vecVelocity[3], Float: vecAngles[3]; pev(iOwner, pev_angles, vecAngles);

   get_speed_vector(vecEntOrigin, originF, 1500.0, vecVelocity);
   set_pev(iEntity, pev_velocity, vecVelocity);
   set_pev(iEntity, pev_angles, vecAngles);
   set_pev(iEntity, pev_nextthink, get_gametime() + 0.1);


Но ничего не вышло
Аватара пользователя
izumi4
 
Сообщения: 82
Зарегистрирован: 03 ноя 2019, 12:25
Благодарил (а): 9 раз.
Поблагодарили: 9 раз.
Опыт программирования: Больше трех лет
Языки программирования: Pawn

Re: Движение энтити за игроком

Сообщение Dart_Begep » 05 янв 2022, 21:13

А точнее? Что ты имел ввиду? Энтити, "пристегнутая" к игроку ( по типу, как в плагине Backweaps, когда неактивное в данный момент оружие визуально находится за спиной игрока), или именно движущаяся за игроком на каком-то пусть не фиксированном расстоянии?
Аватара пользователя
Dart_Begep
 
Сообщения: 131
Зарегистрирован: 19 апр 2017, 22:29
Благодарил (а): 11 раз.
Поблагодарили: 27 раз.
Опыт программирования: Больше трех лет
Языки программирования: Pawn
Php
JavaScript

Re: Движение энтити за игроком

Сообщение izumi4 » 08 янв 2022, 08:12

Dart_Begep писал(а):А точнее? Что ты имел ввиду? Энтити, "пристегнутая" к игроку


Да, именно пристегнутая
Аватара пользователя
izumi4
 
Сообщения: 82
Зарегистрирован: 03 ноя 2019, 12:25
Благодарил (а): 9 раз.
Поблагодарили: 9 раз.
Опыт программирования: Больше трех лет
Языки программирования: Pawn

Re: Движение энтити за игроком  [Решено]

Сообщение Dart_Begep » 08 янв 2022, 11:09

Тогда все просто
Код: Выделить всё
            entity_set_int(entityEV_INT_movetypeMOVETYPE_FOLLOW)
            
entity_set_edict(entityEV_ENT_aimentid

Выполняешь это, когда нужно "пристегнуть" энтити к игроку. А когда нужно без удаления энтити "отстегнуть", меняешь movetype на нужный, а aiment устанавливаешь в 0.
Аватара пользователя
Dart_Begep
 
Сообщения: 131
Зарегистрирован: 19 апр 2017, 22:29
Благодарил (а): 11 раз.
Поблагодарили: 27 раз.
Опыт программирования: Больше трех лет
Языки программирования: Pawn
Php
JavaScript


Вернуться в Скриптинг

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5

cron