Заказать игровой сервер Контакты (заказать плагин/исправить ошибки/другое) Пожертвовать Поиск

[ вход ]
[ последние сообщения ]

  • Страница 1 из 1
  • 1
Наложение sprite/entity на игрока
Loco Дата: Воскресенье, 27.07.2014, 22:54:46 | Сообщение # 1
Сообщений: 42
Репутация: 0 [ +/- ]
Всем доброго времени суток!

Не подскажет кто - как наложить на спину, туловище игрока спрайт? Причем чтобы этот спрайт можно было двигать, например, по телу, влево - вправо, вверх - вниз.

Нашел такие энтити
- env_glow (двигать нельзя)
- env_sprite (тоже нельзя)
- env_sprite_oriented - вот это меня больше всего заинтересовало, там есть специальный keyvalues, позволяющий определить положение (X,Y,Z) спрайта.
https://developer.valvesoftware.com/wiki/Env_sprite_oriented (не реклама)

Подскажите, как наложить этот спрайт и как двигать его по телу?
Заранее спасибо.
 
horr0r Дата: Понедельник, 28.07.2014, 02:49:38 | Сообщение # 2
Сообщений: 149
Репутация: 40 [ +/- ]
Loco, все энтити можно двигать.
Просто создаешь энтити рядом с позицией игрока. Двигаешь на нужную позицию.
Ставишь родителем игрока и все.
 
BarD Дата: Понедельник, 28.07.2014, 04:58:23 | Сообщение # 3
Сообщений: 943
Репутация: 137 [ +/- ]
Двигать можно через
Код
TeleportEntity(entity, pos, ang, vel);


entity - индекс энтити (Целое число)
pos - позиция, куда переместить(Float массив из 3 элементов. X,Y,Z. Например new Float:pos[3];)
ang - на какой угол повернуть(Тоже Float массив из 3)
vel - это если тебе надо толкать объект. Это сила толчка (Float число)

Простое перемещение без вращения и толчка будет выглядеть так:

Код
TeleportEntity(entity, pos, NULL_VECTOR, NULL_VECTOR);


NULL_VECTOR - это значит не задействовать этот параметр.

Тебе нужно поиграться с координатами, по перемещать энтити и найти нужную позицию. Сегодня попробую это сделать)


Сообщение отредактировал BarD - Понедельник, 28.07.2014, 05:02:55
 
Loco Дата: Понедельник, 28.07.2014, 19:52:09 | Сообщение # 4
Сообщений: 42
Репутация: 0 [ +/- ]
BarD, Спасибо, посмотрю.

Надо и вправду похимичить немного с координатами (на ногу, на руки, туловище и т.д.)

А когда игрок будет бегать, эти энтити не будут сдвигаться с места?
 
BarD Дата: Вторник, 29.07.2014, 06:23:26 | Сообщение # 5
Сообщений: 943
Репутация: 137 [ +/- ]
Если привяжешь к игроку, то они за игроком гонять будут)
 
BarD Дата: Вторник, 29.07.2014, 13:21:02 | Сообщение # 6
Сообщений: 943
Репутация: 137 [ +/- ]
Loco, специально для тебя сделал небольшой плагин по перемещению спрайта.

Команда: !sc
Для удобного просмотра установи плагин Third Person.

Скриншот



P.S. Этот плагин показательный. Управляет всего одним спрайтом, и двигает его на 1 единицу. Думаю, как сменить текстуру, разберешься) Желаю удачи!

Гости не могут скачивать файлы


Сообщение отредактировал BarD - Вторник, 29.07.2014, 13:29:25
 
Loco Дата: Вторник, 29.07.2014, 19:06:12 | Сообщение # 7
Сообщений: 42
Репутация: 0 [ +/- ]
BarD, Вай, спасибо! Лови в репу + )
 
BarD Дата: Вторник, 29.07.2014, 19:23:42 | Сообщение # 8
Сообщений: 943
Репутация: 137 [ +/- ]
Loco, не за что :)
 
PlaN4ik Дата: Вторник, 29.07.2014, 22:05:34 | Сообщение # 9
Сообщений: 33
Репутация: -7 [ +/- ]
BarD, напишите пожалуйста ваши контакты в лс. Есть предложение..
 
«SeReGa»☆ Дата: Среда, 30.07.2014, 15:10:25 | Сообщение # 10
Сообщений: 395
Репутация: 37 [ +/- ]
BarD, как сделать так чтобы спрайт видели все кроме того человека кому он принадлежыт?
 
BarD Дата: Среда, 30.07.2014, 16:20:28 | Сообщение # 11
Сообщений: 943
Репутация: 137 [ +/- ]
«SeReGa»☆, Не помню, как делается видимость для одного игрока. Как узнаешь функцию, используй этот алгоритм:

Код
stock CreateSprite(client)
{
    //Создаем спрайт
    //И после всех функций создания спрайта создаем цикл по всем игрокам

   for (new i=1;i<=MaxClients;i++)
   {
      if (IsClientInGame(i) && i && i != client) // Для всех игроков, чей индекс не равен индексу клиента, на котором спрайт
      {
          // Функция показа спрайта для одного клиента
      }
   }
}


Таким образом цикл проходит по всем игрокам, и если индекс текущего игрока в цикле НЕ равен индексу игрока, на котором спрайт, то для него делается видимым спрайт. И в результате этого цикла спрайт станет видимым для всех, кроме игрока, на котором спрайт.
 
«SeReGa»☆ Дата: Среда, 30.07.2014, 19:30:27 | Сообщение # 12
Сообщений: 395
Репутация: 37 [ +/- ]
BarD, ничего не могу понять .. данная тема здесь поможет?
 
BarD Дата: Среда, 30.07.2014, 19:46:13 | Сообщение # 13
Сообщений: 943
Репутация: 137 [ +/- ]
«SeReGa»☆, да, подойдёт. Последний пост Darkneez'а. Условие надо изменить на такое:
Код
if (owner != -1 && owner == client)


И, соответственно, не spritetrail, а под env_sprite все настроишь)


Сообщение отредактировал BarD - Среда, 30.07.2014, 19:47:00
 
«SeReGa»☆ Дата: Среда, 30.07.2014, 19:55:17 | Сообщение # 14
Сообщений: 395
Репутация: 37 [ +/- ]
Спасибо попробую..
 
  • Страница 1 из 1
  • 1
Поиск: