Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
  • Need help?

    Create a topic in the appropriate section
    Don't write everything in the chat!
  • Take a look at the marketplace

    There you can buy
    everything related to game servers
  • Don't want a ban?

    Please read our rules
    Don't disturb the order!
  • Sell or buy?

    Use services of the guarantor
    We will make your deal safe
  • 0
russianmafiaextra

Спавн персонажа в воде при кастом точках

Всем привет.
Ситуация следующая - делаю DM сервер, все практически готово, но проблема заключается в спавнах.
Спавнить игроков, в моем случае, нужно только через файл cfgplayerspawnpoints.xml (ниже расскажу почему)
Сеты настроены через CustomSpawnPlayer. В новом патче богемия изменила скрипт спавна, добавила группы и другие непонятные параметры. Что имеется:

1) Если использую фулл ванильный код, подменив только координаты - игрок спавнится всегда в первой точке первого массива. Как я выяснил, спустя некоторое время начинает спавнить в первой точке второго массива.
ВОЗМОЖНО на это влияет параметр <lifetime>1</lifetime> , по дефолту стоит 240 или 360

2) Отключение групп вроде как ни на что не влияет.
Перед сном я отключил группы, timelife выставил 1, потестил - спавнит нормально, почти всегда в новых точках.
Сейчас запустил и спавнит в воде 😞  Хотя вчера все было идеально

Не использую спавн с 
CustomSpawnPlayer так как он некорректно работает - сразу после респавна персонаж падает с небольшой высоты и в течение 5-10 сек как будто-бы "прогружается" лут, после чего добавляется в быстрые слоты. При спавне через cfgplayerspawnpoints все идеально выдается (я в курсе, если спавн прописывается через CustomSpawnPlayer , в cfgplayerspawnpoints  надо удалить точки, для того чтобы игрок не тепался два раза )

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

Share this post


Link to post
Share on other sites

4 answers to this question

Recommended Posts

  • 0

Я особо не парился. Вот так сделал в init.c:
 

    override PlayerBase CreateCharacter(PlayerIdentity identity, vector pos, ParamsReadContext ctx, string characterName)

    {

        array<vector> spawn_points = {

            "16085.076172 197.290375 846.946411",

            "16077.014648 197.033127 827.109802",

            "16072.505859 197.102432 833.183472",

            "16079.861328 197.360519 854.004578",

            "16079.597656 197.396973 861.432678",

            "16075.906250 197.606537 872.012817",

            "16105.824219 197.639893 856.452393",

            "16102.947266 197.423508 842.710510",

            "16096.923828 197.107635 822.568176"

        };

       

        int pos_index = Math.RandomInt(0, 8);

 

        Entity playerEnt;

        // playerEnt = GetGame().CreatePlayer( identity, characterName, pos, 0, "NONE" );

        playerEnt = GetGame().CreatePlayer( identity, characterName, spawn_points[pos_index], 0, "NONE" );

        Class.CastTo( m_player, playerEnt );

 

        GetGame().SelectPlayer( identity, m_player );

 

        return m_player;

    }

Edited by blackpanda (see edit history)

Share this post


Link to post
Share on other sites



  • 0
14.04.2024 в 19:03, blackpanda сказал:

Я особо не парился. Вот так сделал в init.c:
 

    override PlayerBase CreateCharacter(PlayerIdentity identity, vector pos, ParamsReadContext ctx, string characterName)

    {

        array<vector> spawn_points = {

            "16085.076172 197.290375 846.946411",

            "16077.014648 197.033127 827.109802",

            "16072.505859 197.102432 833.183472",

            "16079.861328 197.360519 854.004578",

            "16079.597656 197.396973 861.432678",

            "16075.906250 197.606537 872.012817",

            "16105.824219 197.639893 856.452393",

            "16102.947266 197.423508 842.710510",

            "16096.923828 197.107635 822.568176"

        };

       

        int pos_index = Math.RandomInt(0, 8);

 

        Entity playerEnt;

        // playerEnt = GetGame().CreatePlayer( identity, characterName, pos, 0, "NONE" );

        playerEnt = GetGame().CreatePlayer( identity, characterName, spawn_points[pos_index], 0, "NONE" );

        Class.CastTo( m_player, playerEnt );

 

        GetGame().SelectPlayer( identity, m_player );

 

        return m_player;

    }

привет!
по итогу не разобрался. скрипт попросту не работает. 
заколхозил через grid (строится "сетка" на точке спавна, челик спавнится в радиусе 200м от этой точки)

Share this post


Link to post
Share on other sites
  • 0
06.05.2024 в 14:22, blackpanda сказал:

@russianmafiaextra 
Что именно не работает? Там все банально просто сделано
Или ты его как есть вставляешь?

я додик, все работает
отдуши

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site, you automaticly agree to our Guidelines and Privacy Policy.
We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.