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

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

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

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

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

Incompatible parameter в setInput()

 

Делаю свой пак гранатомётов для своего сервера, в целом - моя первая модификация сложнее ретекстура. Поскольку некоторые из них одноразки и раскладываются (в данном случае РПГ-18), захотелось сделать скрипт на замену в руках сложенного на разложенный граник при нажатии кнопки. Но с Action`ами никак подружиться не могу, не понимаю их логики и который час пытаюсь что то сделать. Что в данном случае ему не нравиться? Inputs.xml прописан, экшен создан. Направьте пожалуйста маслёнка в правильное русло
 

image.png.f89171cfac159e5bf264f990b8c0a2be.png

Основной скрипт:

class ActionSwapLauncher: ActionBase

{

    void ActionSwapLauncher(PlayerBase player)

    {  

        SetInput("UASwapLauncherRPG18");

        m_Text = "Разложить РПГ";

    }



    void OnStartServer(ActionData action_data)

    {

        super.OnStartServer(action_data);



        PlayerBase player = PlayerBase.Cast(action_data.m_Player);

        if (!player)

            return;



        Weapon_Base weapon = Weapon_Base.Cast(player.GetHumanInventory().GetEntityInHands());

        if (weapon && weapon.GetType() == "RPG18_Unloaded")

        {

            ReplaceWeapon(player, "RPG18");

        }

    }



    void ReplaceWeapon(PlayerBase player, string weaponType)

    {



        EntityAI newWeaponEntity = player.GetHumanInventory().CreateInHands(weaponType);

        if (newWeaponEntity)

        {

            Weapon_Base weapon = Weapon_Base.Cast(player.GetHumanInventory().GetEntityInHands());

            weapon.Delete();

            newWeaponEntity.GetInventory().CreateInInventory("RPG18_Ammo");

        }

    }



    bool CanUse(ActionData action_data)

    {

        PlayerBase player = PlayerBase.Cast(action_data.m_Player);

        Weapon_Base weapon = Weapon_Base.Cast(player.GetHumanInventory().GetEntityInHands());

        if (weapon && weapon.GetType() == "RPG18_Unloaded")

        {

            return true;

        }



        return false;

    }



    bool CanBeUsedInVehicle()

    {

        return false;

    }

    // override void OnStartClient(ActionData action_data)

    // {

    //     super.OnStartClient(action_data);

    //

    //    

    //     PlayActionSound(action_data.m_Player, "");

    // }



    // override void OnExecuteClient(ActionData action_data)

    // {

    //     super.OnExecuteClient(action_data);

    //     PlayActionSound(action_data.m_Player, "");

    // }



    // protected void PlayActionSound(PlayerBase player, string soundSetName)

    // {

    //     if (player)

    //     {

    //         EffectSound sound = SEffectManager.PlaySoundOnObject(soundSetName, player, 0, false);

    //         if (sound)

    //         {

    //             sound.SetAutodestroy(true);

    //         }

    //     }

    // }

}

ActionConstructor.c

 


modded class ActionConstructor

{

    override void RegisterActions(TTypenameArray actions)

    {

        super.RegisterActions(actions);

       

        actions.Insert(ActionSwapLauncher);

    }

};
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>

<modded_inputs>

    <inputs>

        <actions>

            <input name="UASwapLauncherRPG18" loc="Разложить РПГ-18" />

        </actions>

        <sorting name="TACTICS" loc="TCTS">

            <input name="UASwapLauncherRPG18"/>

        </sorting>

        <preset>

        <input name="UASwapLauncherRPG18">

            <btn name="Разложить РПГ-18"/>

        </input>

    </preset>

</modded_inputs>

 

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


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

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

Нет ответов на вопрос

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

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

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

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

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

Войти

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

Войти сейчас

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

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

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

Поддержка