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
Ewgen

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

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

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

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

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

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

Edited by Ewgen (see edit history)

Share this post


Link to post
Share on other sites

10 answers to this question

Recommended Posts

  • 1

Например,

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

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

Share this post


Link to post
Share on other sites



  • 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

Edited by SinSin (see edit history)

Share this post


Link to post
Share on other sites
  • 0

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

Share this post


Link to post
Share on other sites
  • 0

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

Share this post


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

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

 

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

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

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

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

CopperStill.FindAttachmentBySlotName("Apple")

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

Share this post


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

Например,

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

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

 

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

Share this post


Link to post
Share on other sites
  • 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  работает

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

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

Share this post


Link to post
Share on other sites
  • 0
06.11.2020 в 23:13, Ewgen сказал:

Да  EntityAI  работает

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

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

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

Share this post


Link to post
Share on other sites
  • 0

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

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.