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

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

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

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

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

Как проверить какой предмет в руках?

Подскажите пожалуйста

например

if (в руках молоток)  - вот эту команду не могу найти ))

{

}

else

{

}

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


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

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

  • 1
44 минуты назад, Ewgen сказал:

@123new 

private EntityAI itemInHands_pl = player.GetHumanInventory().GetEntityInHands()

 

if  EntityAI itemInHands_pl = "Hammer"

 

так?

 

нет.

получаем предмет в руках и записываем в переменную класса EntityAI

private EntityAI itemInHands_pl = player.GetHumanInventory().GetEntityInHands();

проверяем его, если он есть, переменная будет отличной от пустого значения NULL, и проверка вернет true (истина)
Если его нет, переменная будет иметь пустое значение NULL и вернет false (ложь)

if (itemInHands_pl)
{	
	// предмет есть
} else
{
	// предмета нет
}

Это нужно для того, чтобы исключить шанс ошибки в коде. Так как если после получения предмета мы сразу выполним проверку типа:

if(itemInHands_pl.GetType() == "id предмета")

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

Поэтому далее если вам надо проверить тип предмета в руках, делаем так:

if(itemInHands_pl.GetType() == "id предмета")
{
	// Тип совпал											
} else {
	// Тип не совпал
}

все в рамках элементарного, учимся скриптить и читать код ;)

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

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


Ссылка на сообщение
Поделиться на других сайтах
MagicByte MagicByte MagicByte
  • 0
private EntityAI itemInHands_pl = player.GetHumanInventory().GetEntityInHands();

 

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


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

@123new 

private EntityAI itemInHands_pl = player.GetHumanInventory().GetEntityInHands()

 

if  EntityAI itemInHands_pl = "Hammer"

 

так?

 

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

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


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

Спасибо.

И так учусь, просто си и делфи наю поверхностно, умом понимаю как надо а вот синтаксис хромает

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


Ссылка на сообщение
Поделиться на других сайтах
  • 0
Только что, Ewgen сказал:

Спасибо.

И так учусь, просто си и делфи наю поверхностно, умом понимаю как надо а вот синтаксис хромает

тут больше логика и причинно-следственная связь с теорией вероятности на уровне кода ;)

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


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

@123new 

проблема в том что не знаю где запросить private EntityAI itemInHands_pl = player.GetHumanInventory().GetEntityInHands();

пытаюсь в действии строительство в OnFinishProgressServer проверить каким инструментом было действие и соответственно ему поставить износ 

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


Ссылка на сообщение
Поделиться на других сайтах
  • 0
3 часа назад, Ewgen сказал:

@123new 

проблема в том что не знаю где запросить private EntityAI itemInHands_pl = player.GetHumanInventory().GetEntityInHands();

пытаюсь в действии строительство в OnFinishProgressServer проверить каким инструментом было действие и соответственно ему поставить износ 

ищи родную базовую функцию и в ней экземпляр игрока в виде переменной или функции-коде для получения. Подругому никак.

Универсального способа тут быть не может. Чтобы получить вещь в руках игрока - нужен сам игрок, а чтобы получить самого игрока - наверно нужно определить его с одной из переменных, вызывающих событие само. Как и с каких - только поиск по оригинальным скриптам и похожим работам с модов мастерской поможет.

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


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

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

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

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

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

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

Войти

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

Войти сейчас

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

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

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

Поддержка