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

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

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

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

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

Как проверить карго?

Мучаю тут мод с самогонным аппаратом, там к сожалению водка и простой воды делается

            ItemBase distillery = ItemBase.Cast( gasstove.GetAttachmentByType(CopperStill) );
            if (bottle.GetQuantity() < 1 && distillery.GetQuantity() >= 400) {
                return true;
            }

проверка аттача и проверка наполненности

а как бы добавить проверку карго у CopperStill чтобы например 2-3 яблока лежало?

или проще у него сделать аттачи для тех же яблок?

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

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


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

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

  • 1

Например,

ItemBase distillery = ItemBase.Cast( gasstove.GetAttachmentByType(CopperStill) );

ItemBase apple = ItemBase.Cast( distillery.GetAttachmentByType(Apple) );

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


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





  • 1
10 часов назад, Ewgen сказал:

 

Спасибо, а как проверить все аттачи? они как нибудь подразделяются? если они однотипные например 3 штуки и в каждую вставляется яблоко

 

//Не тестировалось!

EntityAI e_distillery = EntityAI.Cast( gasstove.GetAttachmentByType(CopperStill) );
int apple_count = 0;

if (e_distillery.GetInventory().AttachmentCount() > 0) {
	for( int y = 0; y < e_distillery.GetInventory().AttachmentCount(); y++ )
	{
		EntityAI attachment = e_distillery.GetInventory().GetAttachmentFromIndex( y );
		if( attachment )
		{
			//Возможно, полученный результат нужно перевести в ItemBase и уже использовать эту переменную ниже
			//ItemBase i_attachment = ItemBase.Cast( attachment );

			if (attachment.IsKindOf("Apple"))
				apple_count++;
		}
	}
}

if (apple_count == 3) return true;

return false;

Пробуйте. Я всегда путаюсь, где ItemBase используется, где EntityAI. Например, вполне вероятно, что можно использовать изначальный ItemBase distillery и не создавать EntityAI e_distillery. Но GetAttachmentFromIndex возвращает EntityAI

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

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


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

ИМХО, бегемоты всё на аттачи переделывают. Проще и надёжней. (только не три яблока,а три аттача под "фрукты")

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


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

эьл понятно что три аттача и в каждом по яблоку, проще конечно в карго те же яблоки положить :)

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


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

ИМХО, бегемоты всё на аттачи переделывают. Проще и надёжней. (только не три яблока,а три аттача под "фрукты")

 

теперь бы еще знать как проверить аттачмент у аттачмента )))

gasstove.GetAttachmentByType(CopperStill) это проверяет стоит ли на газовой плитке аппарат

а как проверить наличие у аппарата аттачментов яблок

или сделать через условие вначале

CopperStill.FindAttachmentBySlotName("Apple")

будет так работать?

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


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

Например,

ItemBase distillery = ItemBase.Cast( gasstove.GetAttachmentByType(CopperStill) );

ItemBase apple = ItemBase.Cast( distillery.GetAttachmentByType(Apple) );

 

Спасибо, а как проверить все аттачи? они как нибудь подразделяются? если они однотипные например 3 штуки и в каждую вставляется яблоко

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


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

 

//Не тестировалось! EntityAI e_distillery = EntityAI.Cast( gasstove.GetAttachmentByType(CopperStill) ); int apple_count = 0; if (e_distillery.GetInventory().AttachmentCount() > 0) { for( int y = 0; y < e_distillery.GetInventory().AttachmentCount(); y++ ) { EntityAI attachment = e_distillery.GetInventory().GetAttachmentFromIndex( y ); if( attachment ) { //Возможно, полученный результат нужно перевести в ItemBase и уже использовать эту переменную ниже //ItemBase i_attachment = ItemBase.Cast( attachment ); if (attachment.IsKindOf("Apple")) apple_count++; } } } if (apple_count == 3) return true; return false;


//Не тестировалось!

EntityAI e_distillery = EntityAI.Cast( gasstove.GetAttachmentByType(CopperStill) );
int apple_count = 0;

if (e_distillery.GetInventory().AttachmentCount() > 0) {
	for( int y = 0; y < e_distillery.GetInventory().AttachmentCount(); y++ )
	{
		EntityAI attachment = e_distillery.GetInventory().GetAttachmentFromIndex( y );
		if( attachment )
		{
			//Возможно, полученный результат нужно перевести в ItemBase и уже использовать эту переменную ниже
			//ItemBase i_attachment = ItemBase.Cast( attachment );

			if (attachment.IsKindOf("Apple"))
				apple_count++;
		}
	}
}

if (apple_count == 3) return true;

return false;

Пробуйте. Я всегда путаюсь, где ItemBase используется, где EntityAI. Например, вполне вероятно, что можно использовать изначальный ItemBase distillery и не создавать EntityAI e_distillery. Но GetAttachmentFromIndex возвращает EntityAI

Да  EntityAI  работает

ну и по такому же принципу сделал удаление яблок после перегонки )))

Спасибо еще раз огромное

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


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

Да  EntityAI  работает

ну и по такому же принципу сделал удаление яблок после перегонки )))

Спасибо еще раз огромное

Привет. Если не сложно, то можешь показать как сделал удаление яблок?

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


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

                if (attachment.IsKindOf("Apple"))
                apple_count++;
                i_attachment.AddQuantity(-500);

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


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

Спасибо 

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


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

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

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

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

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

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

Войти

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

Войти сейчас

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

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

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