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
TestTestovich

Настройка панели быстрого доступа для DM

Всем привет!

Прошу помочь настроить панель быстрого доступа для игроков (нижняя часть экрана с цифрами), чтобы при респауне сразу же вместо пустых слотов я мог прописать бинты, оружие и прочее

 

Все гайды перерыл ничего не нашел(((

 

Возможно кто-то подскажет.

Share this post


Link to post
Share on other sites

9 answers to this question

Recommended Posts

  • 2

сначала спавним нужный предмет и записываем его в переменную. Затем для игрока выполняем функцию:

EntityAI createdItem = player.GetHumanInventory().CreateInInventory("ClassName"); // спавним предмет указанного класснейма
if (createdItem != NULL) // проверяем, создался ли предмет
{
	int number_in_quickbar = 0; // может быть от 0 включительно по 9 включительно. это номер клетьки в ячейке снизу
	player.SetQuickBarEntityShortcut(createdItem, number_in_quickbar, true); // если он создался, добавляем его на квикбар вниз 
	Print("[QuickBarEntityShortcut] Setup on QuickBar item " + ItemBase.Cast(createdItem).GetType() + " as number " + number_in_quickbar.ToString());
}

при этом учитывайте, что номер элемента в квикбаре зависит от количества свободных клеток у игрока (игра это сама регулирует от веса на игроке, как я понял). Т.е. если вы поставите 8 слотом бинт, а у игрока 4 слота всего то он не увидит бинта

номер в квикбаре от 0, т.е. 0 это первый элемент, 1 - второй и т.п.

Share this post


Link to post
Share on other sites



  • 1
11 минут назад, Balcoz сказал:

А есть, пример как вписать ?

 

Что с верху написано не понятно для меня ( начинающего )

 

пример выше дан уже, куда ж более примерно. Больше тока носом тыкать, как кота в то самое.

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

Вот например, где логика?
611255912_.png.c68c692a7b76b4cc8be5942a75d8ad45.png

т.е. мы создаем предмет, проверяем создался ли, выводим его на квикбар, а потом хренак, и очищаем все у игрока. Логика зашкаливает.

Вот еще нюанс:

если вы в одной функции 2 переменные вот так один в один зададите будет ошибка

369835636_.png.394a1fda23c897efce8db527f4c3cbb9.png

почему?  Потому что кое-кто прогулял основы скриптинга и не читал хотя бы минимальный пакет знаний по языку игры, но уже пытается скриптить. Где они? Ну хотя б вот:

И еще нюанс у вас заметил, вот эта строка

1702161932_.png.2e9b94215540da2b947f3ea9118c65f0.png

в одной из последних обнов скрипта изменена. Она и текущая ваша работает, только срет крашлогами при каждом использовании. По сему вывод - скрипт у вас не обновлен до актуальной версии.

Share this post


Link to post
Share on other sites
  • 0

@TestTestovich такое есть, кстати, только у ультимы в скрипте, на стартовый спаун игроков. Два рублях вечно деревянных тут, на площадке.

Share this post


Link to post
Share on other sites
  • 0

@123new огромное спасибо! Все заработало как часы!

 

Мне надо бы функции посмотреть более подробно на будущее)

Share this post


Link to post
Share on other sites
  • 0
17 часов назад, 123new сказал:

сначала спавним нужный предмет и записываем его в переменную. Затем для игрока выполняем функцию:

EntityAI createdItem = player.GetHumanInventory().CreateInInventory("ClassName"); // спавним предмет указанного класснейма if (createdItem != NULL) // проверяем, создался ли предмет { int number_in_quickbar = 0; // может быть от 0 включительно по 9 включительно. это номер клетьки в ячейке снизу player.SetQuickBarEntityShortcut(createdItem, number_in_quickbar, true); // если он создался, добавляем его на квикбар вниз Print("[QuickBarEntityShortcut] Setup on QuickBar item " + ItemBase.Cast(createdItem).GetType() + " as number " + number_in_quickbar.ToString()); }


EntityAI createdItem = player.GetHumanInventory().CreateInInventory("ClassName"); // спавним предмет указанного класснейма
if (createdItem != NULL) // проверяем, создался ли предмет
{
	int number_in_quickbar = 0; // может быть от 0 включительно по 9 включительно. это номер клетьки в ячейке снизу
	player.SetQuickBarEntityShortcut(createdItem, number_in_quickbar, true); // если он создался, добавляем его на квикбар вниз 
	Print("[QuickBarEntityShortcut] Setup on QuickBar item " + ItemBase.Cast(createdItem).GetType() + " as number " + number_in_quickbar.ToString());
}

при этом учитывайте, что номер элемента в квикбаре зависит от количества свободных клеток у игрока (игра это сама регулирует от веса на игроке, как я понял). Т.е. если вы поставите 8 слотом бинт, а у игрока 4 слота всего то он не увидит бинта

номер в квикбаре от 0, т.е. 0 это первый элемент, 1 - второй и т.п.

 

EntityAI createdItem = player.GetHumanInventory().CreateInInventory("Epinephrine"); // спавним предмет указанного класснейма
if (createdItem != NULL) // проверяем, создался ли предмет
{
	int number_in_quickbar = 5; // может быть от 0 включительно по 9 включительно. это номер клетьки в ячейке снизу
	player.SetQuickBarEntityShortcut(createdItem, number_in_quickbar, true); // если он создался, добавляем его на квикбар вниз 
	Print("[QuickBarEntityShortcut] Setup on QuickBar item " + ItemBase.Cast(createdItem).GetType() + " as number " + number_in_quickbar.ToString());
}

Например морфин на 5ку так должен быть?

 

	//Бинты на 3 слот квик бара
	EntityAI createdItem = player.GetHumanInventory().CreateInInventory("BandageDressing"); // спавним предмет указанного класснейма
    if (createdItem != NULL) // проверяем, создался ли предмет
	{
	    int number_in_quickbar = 2; // может быть от 0 включительно по 9 включительно. это номер клетьки в ячейке снизу
	player.SetQuickBarEntityShortcut(createdItem, number_in_quickbar, true); // если он создался, добавляем его на квикбар вниз 
	Print("[QuickBarEntityShortcut] Setup on QuickBar item " + ItemBase.Cast(createdItem).GetType() + " as number " + number_in_quickbar.ToString());
	}		
    //Морфин на 4 слот квик бара
	EntityAI createdItem = player.GetHumanInventory().CreateInInventory("Morphine"); // спавним предмет указанного класснейма
    if (createdItem != NULL) // проверяем, создался ли предмет
	{
	    int number_in_quickbar = 3; // может быть от 0 включительно по 9 включительно. это номер клетьки в ячейке снизу
	player.SetQuickBarEntityShortcut(createdItem, number_in_quickbar, true); // если он создался, добавляем его на квикбар вниз 
	Print("[QuickBarEntityShortcut] Setup on QuickBar item " + ItemBase.Cast(createdItem).GetType() + " as number " + number_in_quickbar.ToString());
	}

Почемуто при 2м разе начинает ругаться((

Edited by MAXILIVE (see edit history)

Share this post


Link to post
Share on other sites
  • 0
41 минуту назад, MAXILIVE сказал:

 

EntityAI createdItem = player.GetHumanInventory().CreateInInventory("Epinephrine"); // спавним предмет указанного класснейма if (createdItem != NULL) // проверяем, создался ли предмет { int number_in_quickbar = 5; // может быть от 0 включительно по 9 включительно. это номер клетьки в ячейке снизу player.SetQuickBarEntityShortcut(createdItem, number_in_quickbar, true); // если он создался, добавляем его на квикбар вниз Print("[QuickBarEntityShortcut] Setup on QuickBar item " + ItemBase.Cast(createdItem).GetType() + " as number " + number_in_quickbar.ToString()); }


EntityAI createdItem = player.GetHumanInventory().CreateInInventory("Epinephrine"); // спавним предмет указанного класснейма
if (createdItem != NULL) // проверяем, создался ли предмет
{
	int number_in_quickbar = 5; // может быть от 0 включительно по 9 включительно. это номер клетьки в ячейке снизу
	player.SetQuickBarEntityShortcut(createdItem, number_in_quickbar, true); // если он создался, добавляем его на квикбар вниз 
	Print("[QuickBarEntityShortcut] Setup on QuickBar item " + ItemBase.Cast(createdItem).GetType() + " as number " + number_in_quickbar.ToString());
}

Например морфин на 5ку так должен быть?

 

на 6, массив элементов начинается от 0, писал же. т.е
указываемая цифра  -  номер клавиши у игрока:
0 - 1
1 - 2
2 - 3
 3 - 4
4 - 5
5 - 6
т.е. указывая 5 мы биндим на кнопку с номером 6

44 минуты назад, MAXILIVE сказал:

 

EntityAI createdItem = player.GetHumanInventory().CreateInInventory("Epinephrine"); // спавним предмет указанного класснейма if (createdItem != NULL) // проверяем, создался ли предмет { int number_in_quickbar = 5; // может быть от 0 включительно по 9 включительно. это номер клетьки в ячейке снизу player.SetQuickBarEntityShortcut(createdItem, number_in_quickbar, true); // если он создался, добавляем его на квикбар вниз Print("[QuickBarEntityShortcut] Setup on QuickBar item " + ItemBase.Cast(createdItem).GetType() + " as number " + number_in_quickbar.ToString()); }

 

//Бинты на 3 слот квик бара EntityAI createdItem = player.GetHumanInventory().CreateInInventory("BandageDressing"); // спавним предмет указанного класснейма if (createdItem != NULL) // проверяем, создался ли предмет { int number_in_quickbar = 2; // может быть от 0 включительно по 9 включительно. это номер клетьки в ячейке снизу player.SetQuickBarEntityShortcut(createdItem, number_in_quickbar, true); // если он создался, добавляем его на квикбар вниз Print("[QuickBarEntityShortcut] Setup on QuickBar item " + ItemBase.Cast(createdItem).GetType() + " as number " + number_in_quickbar.ToString()); } //Морфин на 4 слот квик бара EntityAI createdItem = player.GetHumanInventory().CreateInInventory("Morphine"); // спавним предмет указанного класснейма if (createdItem != NULL) // проверяем, создался ли предмет { int number_in_quickbar = 3; // может быть от 0 включительно по 9 включительно. это номер клетьки в ячейке снизу player.SetQuickBarEntityShortcut(createdItem, number_in_quickbar, true); // если он создался, добавляем его на квикбар вниз Print("[QuickBarEntityShortcut] Setup on QuickBar item " + ItemBase.Cast(createdItem).GetType() + " as number " + number_in_quickbar.ToString()); }


	//Бинты на 3 слот квик бара
	EntityAI createdItem = player.GetHumanInventory().CreateInInventory("BandageDressing"); // спавним предмет указанного класснейма
    if (createdItem != NULL) // проверяем, создался ли предмет
	{
	    int number_in_quickbar = 2; // может быть от 0 включительно по 9 включительно. это номер клетьки в ячейке снизу
	player.SetQuickBarEntityShortcut(createdItem, number_in_quickbar, true); // если он создался, добавляем его на квикбар вниз 
	Print("[QuickBarEntityShortcut] Setup on QuickBar item " + ItemBase.Cast(createdItem).GetType() + " as number " + number_in_quickbar.ToString());
	}		
    //Морфин на 4 слот квик бара
	EntityAI createdItem = player.GetHumanInventory().CreateInInventory("Morphine"); // спавним предмет указанного класснейма
    if (createdItem != NULL) // проверяем, создался ли предмет
	{
	    int number_in_quickbar = 3; // может быть от 0 включительно по 9 включительно. это номер клетьки в ячейке снизу
	player.SetQuickBarEntityShortcut(createdItem, number_in_quickbar, true); // если он создался, добавляем его на квикбар вниз 
	Print("[QuickBarEntityShortcut] Setup on QuickBar item " + ItemBase.Cast(createdItem).GetType() + " as number " + number_in_quickbar.ToString());
	}

Почемуто при 2м разе начинает ругаться((

потому как переменная класса EntityAI с именем createdItem уже существует и объявлена в памяти данной функции. Т.е. либо мы ее повторно уже не объявляем, а просто используем:

	//Бинты на 3 слот квик бара
	EntityAI createdItem = player.GetHumanInventory().CreateInInventory("BandageDressing"); // спавним предмет указанного класснейма
    if (createdItem != NULL) // проверяем, создался ли предмет
	{
	    int number_in_quickbar = 2; // может быть от 0 включительно по 9 включительно. это номер клетьки в ячейке снизу
		player.SetQuickBarEntityShortcut(createdItem, number_in_quickbar, true); // если он создался, добавляем его на квикбар вниз 
		Print("[QuickBarEntityShortcut] Setup on QuickBar item " + ItemBase.Cast(createdItem).GetType() + " as number " + number_in_quickbar.ToString());
	}		
    //Морфин на 4 слот квик бара
	createdItem = player.GetHumanInventory().CreateInInventory("Morphine"); // спавним предмет указанного класснейма
    if (createdItem != NULL) // проверяем, создался ли предмет
	{
	    number_in_quickbar = 3; // может быть от 0 включительно по 9 включительно. это номер клетьки в ячейке снизу
		player.SetQuickBarEntityShortcut(createdItem, number_in_quickbar, true); // если он создался, добавляем его на квикбар вниз 
		Print("[QuickBarEntityShortcut] Setup on QuickBar item " + ItemBase.Cast(createdItem).GetType() + " as number " + number_in_quickbar.ToString());
	}

или мы ей имя другое задаем

	//Бинты на 3 слот квик бара
	EntityAI createdItem = player.GetHumanInventory().CreateInInventory("BandageDressing"); // спавним предмет указанного класснейма
    if (createdItem != NULL) // проверяем, создался ли предмет
	{
	    int number_in_quickbar = 2; // может быть от 0 включительно по 9 включительно. это номер клетьки в ячейке снизу
		player.SetQuickBarEntityShortcut(createdItem, number_in_quickbar, true); // если он создался, добавляем его на квикбар вниз 
		Print("[QuickBarEntityShortcut] Setup on QuickBar item " + ItemBase.Cast(createdItem).GetType() + " as number " + number_in_quickbar.ToString());
	}		
    //Морфин на 4 слот квик бара
	EntityAI createdItemMorfine = player.GetHumanInventory().CreateInInventory("Morphine"); // спавним предмет указанного класснейма
    if (createdItemMorfine != NULL) // проверяем, создался ли предмет
	{
	    int number_in_quickbarMorfine = 3; // может быть от 0 включительно по 9 включительно. это номер клетьки в ячейке снизу
		player.SetQuickBarEntityShortcut(createdItemMorfine, number_in_quickbarMorfine, true); // если он создался, добавляем его на квикбар вниз 
		Print("[QuickBarEntityShortcut] Setup on QuickBar item " + ItemBase.Cast(createdItemMorfine).GetType() + " as number " + number_in_quickbarMorfine.ToString());
	}

аналогично поступаем и с переменной number_in_quickbar так как с ней то же самое получается.

Код выше что дан просто набран, не проверялся, но в теории должен быть правильным

Share this post


Link to post
Share on other sites
  • 0
25.01.2021 в 14:31, 123new сказал:

на 6, массив элементов начинается от 0, писал же. т.е
указываемая цифра  -  номер клавиши у игрока:
0 - 1
1 - 2
2 - 3
 3 - 4
4 - 5
5 - 6
т.е. указывая 5 мы биндим на кнопку с номером 6

потому как переменная класса EntityAI с именем createdItem уже существует и объявлена в памяти данной функции. Т.е. либо мы ее повторно уже не объявляем, а просто используем:

//Бинты на 3 слот квик бара EntityAI createdItem = player.GetHumanInventory().CreateInInventory("BandageDressing"); // спавним предмет указанного класснейма if (createdItem != NULL) // проверяем, создался ли предмет { int number_in_quickbar = 2; // может быть от 0 включительно по 9 включительно. это номер клетьки в ячейке снизу player.SetQuickBarEntityShortcut(createdItem, number_in_quickbar, true); // если он создался, добавляем его на квикбар вниз Print("[QuickBarEntityShortcut] Setup on QuickBar item " + ItemBase.Cast(createdItem).GetType() + " as number " + number_in_quickbar.ToString()); } //Морфин на 4 слот квик бара createdItem = player.GetHumanInventory().CreateInInventory("Morphine"); // спавним предмет указанного класснейма if (createdItem != NULL) // проверяем, создался ли предмет { number_in_quickbar = 3; // может быть от 0 включительно по 9 включительно. это номер клетьки в ячейке снизу player.SetQuickBarEntityShortcut(createdItem, number_in_quickbar, true); // если он создался, добавляем его на квикбар вниз Print("[QuickBarEntityShortcut] Setup on QuickBar item " + ItemBase.Cast(createdItem).GetType() + " as number " + number_in_quickbar.ToString()); }


	//Бинты на 3 слот квик бара
	EntityAI createdItem = player.GetHumanInventory().CreateInInventory("BandageDressing"); // спавним предмет указанного класснейма
    if (createdItem != NULL) // проверяем, создался ли предмет
	{
	    int number_in_quickbar = 2; // может быть от 0 включительно по 9 включительно. это номер клетьки в ячейке снизу
		player.SetQuickBarEntityShortcut(createdItem, number_in_quickbar, true); // если он создался, добавляем его на квикбар вниз 
		Print("[QuickBarEntityShortcut] Setup on QuickBar item " + ItemBase.Cast(createdItem).GetType() + " as number " + number_in_quickbar.ToString());
	}		
    //Морфин на 4 слот квик бара
	createdItem = player.GetHumanInventory().CreateInInventory("Morphine"); // спавним предмет указанного класснейма
    if (createdItem != NULL) // проверяем, создался ли предмет
	{
	    number_in_quickbar = 3; // может быть от 0 включительно по 9 включительно. это номер клетьки в ячейке снизу
		player.SetQuickBarEntityShortcut(createdItem, number_in_quickbar, true); // если он создался, добавляем его на квикбар вниз 
		Print("[QuickBarEntityShortcut] Setup on QuickBar item " + ItemBase.Cast(createdItem).GetType() + " as number " + number_in_quickbar.ToString());
	}

или мы ей имя другое задаем

//Бинты на 3 слот квик бара EntityAI createdItem = player.GetHumanInventory().CreateInInventory("BandageDressing"); // спавним предмет указанного класснейма if (createdItem != NULL) // проверяем, создался ли предмет { int number_in_quickbar = 2; // может быть от 0 включительно по 9 включительно. это номер клетьки в ячейке снизу player.SetQuickBarEntityShortcut(createdItem, number_in_quickbar, true); // если он создался, добавляем его на квикбар вниз Print("[QuickBarEntityShortcut] Setup on QuickBar item " + ItemBase.Cast(createdItem).GetType() + " as number " + number_in_quickbar.ToString()); } //Морфин на 4 слот квик бара EntityAI createdItemMorfine = player.GetHumanInventory().CreateInInventory("Morphine"); // спавним предмет указанного класснейма if (createdItemMorfine != NULL) // проверяем, создался ли предмет { int number_in_quickbarMorfine = 3; // может быть от 0 включительно по 9 включительно. это номер клетьки в ячейке снизу player.SetQuickBarEntityShortcut(createdItemMorfine, number_in_quickbarMorfine, true); // если он создался, добавляем его на квикбар вниз Print("[QuickBarEntityShortcut] Setup on QuickBar item " + ItemBase.Cast(createdItemMorfine).GetType() + " as number " + number_in_quickbarMorfine.ToString()); }


	//Бинты на 3 слот квик бара
	EntityAI createdItem = player.GetHumanInventory().CreateInInventory("BandageDressing"); // спавним предмет указанного класснейма
    if (createdItem != NULL) // проверяем, создался ли предмет
	{
	    int number_in_quickbar = 2; // может быть от 0 включительно по 9 включительно. это номер клетьки в ячейке снизу
		player.SetQuickBarEntityShortcut(createdItem, number_in_quickbar, true); // если он создался, добавляем его на квикбар вниз 
		Print("[QuickBarEntityShortcut] Setup on QuickBar item " + ItemBase.Cast(createdItem).GetType() + " as number " + number_in_quickbar.ToString());
	}		
    //Морфин на 4 слот квик бара
	EntityAI createdItemMorfine = player.GetHumanInventory().CreateInInventory("Morphine"); // спавним предмет указанного класснейма
    if (createdItemMorfine != NULL) // проверяем, создался ли предмет
	{
	    int number_in_quickbarMorfine = 3; // может быть от 0 включительно по 9 включительно. это номер клетьки в ячейке снизу
		player.SetQuickBarEntityShortcut(createdItemMorfine, number_in_quickbarMorfine, true); // если он создался, добавляем его на квикбар вниз 
		Print("[QuickBarEntityShortcut] Setup on QuickBar item " + ItemBase.Cast(createdItemMorfine).GetType() + " as number " + number_in_quickbarMorfine.ToString());
	}

аналогично поступаем и с переменной number_in_quickbar так как с ней то же самое получается.

Код выше что дан просто набран, не проверялся, но в теории должен быть правильным

2021-04-24_09-53-28.png.6a2291a4be490851df3746090c333573.png

Что тут не так?
 ругается сервер.

Share this post


Link to post
Share on other sites
  • 0
11 часов назад, Balcoz сказал:

2021-04-24_09-53-28.png.6a2291a4be490851df3746090c333573.png

Что тут не так?
 ругается сервер.

а бог его знает. Скрин ошибки + актуальный файл на момент ошибки в студию

Share this post


Link to post
Share on other sites
  • 0
3 минуты назад, 123new сказал:

а бог его знает. Скрин ошибки + актуальный файл на момент ошибки в студию

А есть, пример как вписать ?

 

Что с верху написано не понятно для меня ( начинающего )

 

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.