Перейти к публикации
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...
  • Нужна помощь?

    Создайте тему в соответствующем разделе
    Не нужно писать всё в чат!
  • Загляните на торговую площадку

    Там вы можете купить
    всё что касается игровых серверов
  • Не хотите бан?

    Пожалуйста, ознакомьтесь с нашими правилами
    Не нарушайте порядок!
  • Продаёте или покупаете?

    Пользуйтесь услугами гаранта
    Мы сделаем вашу сделку безопасной
Torlan

Спавн гранаты без кольца

Рекомендованные сообщения

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

EntityAI entity = EntityAI.Cast(GetGame().CreateObject("RGD5Grenade", m_Position)); // где-то выше m_Position = player.GetPosition();
Grenade_Base grenade = Grenade_Base.Cast(entity);
grenade.Unpin();

Граната появляется, кольцо выдёргивается, но граната просто лежит на земле. Можно её подобрать, в руках видно, что кольцо уже выдернуто (можно бросить, или положить в инвентарь и взорваться).

А нужно, чтобы она вела себя как будто уже брошенная, и после спавна взорвалась через стандартную задержку.

Изменено пользователем Torlan (история изменений)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах



так вопрос в том, она спавнится будет по триггеру?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Можно сказать и так) Крутится функция:
GetGame().GetCallQueue(CALL_CATEGORY_SYSTEM).CallLater(MyFunctionName, 60000, true);
Она через периоды времени проверяет определённые условия, и выполняет тот код, который в первом сообщении.

 

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

Изменено пользователем Torlan (история изменений)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
8 часов назад, Torlan сказал:

Можно сказать и так) Крутится функция:
GetGame().GetCallQueue(CALL_CATEGORY_SYSTEM).CallLater(MyFunctionName, 60000, true);
Она через периоды времени проверяет определённые условия, и выполняет тот код, который в первом сообщении.

 

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

можешь просто через DT explosion сделать, ну как вариант. Допустим запустить взрыв через таймер, таймер допустим там идёт 10 секунд

Изменено пользователем DrZiLLo (история изменений)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
31.08.2021 в 16:15, 123new сказал:

 


grenade.Unpin();
grenade.Activate();

так попробуй

 

Can't compile "World" script module!

WebGate/scripts/4_World/gren_spawn.c(74): Method 'Activate' is protected

 

Сработало .ActivateImmediate(); правда взрыв происходит сразу. Но ничего, решение вполне подойдёт, спасибо)

Изменено пользователем Torlan (история изменений)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
2 часа назад, Torlan сказал:

 

Can't compile "World" script module!

WebGate/scripts/4_World/gren_spawn.c(74): Method 'Activate' is protected

 

Сработало .ActivateImmediate(); правда взрыв происходит сразу. Но ничего, решение вполне подойдёт, спасибо)

можно отмоддить класс и вставить свою функцию, которая будет активейт запускать)) Варианта лучше не встречал, мб и есть))

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Посмотрел код, попробуй так:

 

if (GetGame().IsServer())
{
	SetSynchDirty();
}
grenade.Unpin();

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

×
×
  • Создать...

Важная информация

Используя этот сайт, вы автоматически обязуетесь соблюдать наши Правила и Политика конфиденциальности.
Чтобы сделать этот веб-сайт лучше, мы разместили cookies на вашем устройстве. Вы можете изменить свои настройки cookies, в противном случае мы будем считать, что вы согласны с этим.