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

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

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

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

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

Как считывать смерти в 5_Mission

Вопрос такой. Как считывать смерти в 5_Mission. Ибо как я понял я не могу вызывать функции 5_Mission из 4_World, значит я не могу считывать через EEKilled. 

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

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


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

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

  • 0

@LUGU 

Используйте RPC с клиента (4_World) в сервер (5_Mission)

1) в 4_World, в OnPlayerKilled вызывайте SendRPC

2) в 5_Mission, в OnRPC ловите этот вызов

 

4_World, например в SurvivorBase.c или PlayerBase.c

Добавляем вызов RPC в момент смерти игрока

void EEOnDeath(EntityAI killer)
{
    super.EEOnDeath(killer);

    if (GetGame().IsServer()) return; // Отправляем только с клиента

    PlayerBase player = PlayerBase.Cast(this);
    if (!player || !player.GetIdentity()) return;

    string steamID = player.GetIdentity().GetId(); // Получаем SteamID
    
    // Отправляем RPC на сервер
    GetRPCManager().SendRPC("CustomDeath", "OnPlayerDeath", new Param1<string>(steamID), true, NULL);
}

5_Mission, например в MissionServer.c

Принимаем этот RPC и проверяем умер ли нужный игрок

void OnRPC(PlayerIdentity sender, Object target, int rpc_type, ParamsReadContext ctx)
{
    super.OnRPC(sender, target, rpc_type, ctx);

    if (rpc_type == "OnPlayerDeath") 
    {
        Param1<string> data;
        if (ctx.Read(data))
        {
            string steamID = data.param1;

            // Указываем ID игрока, за которым следим
            string targetSteamID = "76561198012345678"; // <-- заменить на нужный SteamID

            if (steamID == targetSteamID)
            {
                Print("[DeathTracker] Умер игрок: " + steamID);
                // Здесь можно выполнить нужную логику
            }
        }
    }
}

 

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


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

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

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

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

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

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

Войти

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

Войти сейчас

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

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

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

Поддержка