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

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

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

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

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

Автобилдинг строения при спавне

Привет всем!
Пытался сделать спавн флагштока на сервере чтобы он забилдился сам, но никак не получается сделать. Раскопал все скрипты дейза, но так и ничего не получилось.
Возможно, кто подскажет ?

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


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

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

  • 0
	vector flagPos = oPlayer.GetPosition() + "5 0 5";
	flagPos[1] = GetGame().SurfaceY(flagPos[0],flagPos[2]);
	vector flagOrient = GetGame().GetSurfaceOrientation(flagPos[0],flagPos[2]);
	TerritoryFlag totem = TerritoryFlag.Cast( GetGame().CreateObjectEx( "TerritoryFlag", flagPos, ECE_PLACE_ON_SURFACE ) );
	totem.SetPosition( flagPos );
	totem.SetOrientation( flagOrient );
	totem.OnDebugSpawn();
	totem.SetSynchDirty();
	totem.UpdateVisuals();

 

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


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

Спасибо, добрейший тебе человек. Заспавнился. Но работает это только если хотя бы 1 игрок на сервере, причем не важно где. 
Немного переделал и вот:
В main():
GetGame().GetCallQueue(CALL_CATEGORY_SYSTEM).CallLater(SpawnFlag, 1000, true);

Где то в другом месте:
void SpawnFlag()
{
    ref array<Man> players = new array<Man>;
    GetGame().GetPlayers( players );
    if(players.Count() >= 1){
        vector flagPos = "11525.962891 69.510117 6598.496582";
        flagPos[1] = GetGame().SurfaceY(flagPos[0],flagPos[2]);
        vector flagOrient = GetGame().GetSurfaceOrientation(flagPos[0],flagPos[2]);
        HWDM_CaptureFlag = TerritoryFlag.Cast( GetGame().CreateObjectEx( "TerritoryFlag", flagPos, ECE_PLACE_ON_SURFACE ) );
        HWDM_CaptureFlag.SetPosition( flagPos );
        HWDM_CaptureFlag.SetOrientation( flagOrient );
        HWDM_CaptureFlag.OnDebugSpawn();
        HWDM_CaptureFlag.SetSynchDirty();
        HWDM_CaptureFlag.UpdateVisuals();
        GetGame().GetCallQueue(CALL_CATEGORY_SYSTEM).Remove(SpawnFlag)
    }
}

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

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


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

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

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

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

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

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

Войти

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

Войти сейчас

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

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

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

Поддержка