Jump to content
Korean Random
Lemaxho

[Автопосадка экипажа / Crew loader]

Recommended Posts

Вопрос по алгоритму.

1. PutOwn - если есть, допустим, 2 командира на один и тот же танк, кого посадит?

2. PutOwn - если премиумный танк, посадит ли с другого танка того же класса?

 

1. Если есть несколько родных танкистов для одного и того же поста, будет выбран первый по списку, не находящийся в этом танке и не выбранный для другого поста этого же танка (например два радиста или заряжающих)

Начнётся поиск танкиста для следующего поста.

 

2. Нет, сажает только родной экипаж, без исключения. Нету подходящих танкистов, ни кого не посадит.

Share this post


Link to post

Short link
Share on other sites

А если скажем есть целый экипаж с 1 перком - 100% ББ и один танкист с 2 перками, PutBest посадит команду с ББ или разбавит её танкистом без ББ?

Share this post


Link to post

Short link
Share on other sites

1. Если есть несколько родных танкистов для одного и того же поста, будет выбран первый по списку, не находящийся в этом танке и не выбранный для другого поста этого же танка (например два радиста или заряжающих)

Начнётся поиск танкиста для следующего поста.

По идее нужно садить лучшего.

 

2. Нет, сажает только родной экипаж, без исключения. Нету подходящих танкистов, ни кого не посадит.

Надо эти алгоритмы расписать обычным текстом.

Share this post


Link to post

Short link
Share on other sites

"Родной экипаж" и "Лучший экипаж".

"Родной экипаж" и "Подходящий экипаж".

Про "Лучший экипаж" можно подумать, что он лучше родного.

Share this post


Link to post

Short link
Share on other sites

А вот не чего было оптимизорповать рабочий алгоритм)

Он  был проверен на большом количестве алёшек.

 

Проверка перков должна идти только в случае

if (best > current)

{

     return false;

}

else if (best == current)...

 

В нынешнем же варианте, она просто идёт ИФом после первичных критериев отбора, изза чего и неправильные результаты выбора.

Насчет этого - твой вариант идентичен тому что было.

 

Вот твой вариант:

 

// CASE 1 : bestTankman is better than actual
        // conserve the bestTankman
        if (best > current)
            return false;
        // CASE 2 : bestTankman's capacity is equal with the actualTankman's skill
        // Need deeper analysis
        else if (best == current)
        {
            //CASE 2.1 : bestTankman has more skills than actualTankman
            //conserve the bestTankman
            if (bestTankman["skills"].length > actualTankman["skills"].length)
                return false;
           
            //CASE 2.2 : bestTankman has less skills than actualTankman
            //select the actualTankman
            if (bestTankman["skills"].length < actualTankman["skills"].length)
                return true;
           
            //CASE 2.3 : bestTankman has the same number of skills that the actualTankman
            //if the bestTankman's lastskilllevel is < that actualTankman's
            //select the actualTankman
            if (bestTankman["lastSkillLevel"] < actualTankman["lastSkillLevel"])
                return true;
           
        }
        //CASE 3 : actual tankman is better than bestTankman
        //select the actualTankman
        else if (best < current)
            return true;
        return false;

 

вот мой:

 

// CASE 1 : bestTankman is better than actual
        // conserve the bestTankman
        if (best > current)
            return false;
        //CASE 3 : actual tankman is better than bestTankman
        //select the actualTankman
        if (best < current)
            return true;
        // CASE 2 : bestTankman's capacity is equal with the actualTankman's skill
        // Need deeper analysis
        //CASE 2.1 : bestTankman has more skills than actualTankman
        //conserve the bestTankman
        if (bestTankman["skills"].length > actualTankman["skills"].length)
            return false;
       
        //CASE 2.2 : bestTankman has less skills than actualTankman
        //select the actualTankman
        if (bestTankman["skills"].length < actualTankman["skills"].length)
            return true;
       
        //CASE 2.3 : bestTankman has the same number of skills that the actualTankman
        //if the bestTankman's lastskilllevel is < that actualTankman's
        //select the actualTankman
        if (bestTankman["lastSkillLevel"] < actualTankman["lastSkillLevel"])
            return true;
       
        return false;

 

так что ошибка в алгоритме, а не в оптимизации

неправильно выразился, проблема в оптимизации, но не в этом месте. Сейчас поищу в чем дело.

Edited by sirmax

Share this post


Link to post

Short link
Share on other sites
Про "Лучший экипаж" можно подумать, что он лучше родного.

Не вижу противоречия.

Share this post


Link to post

Short link
Share on other sites

Так, перечитал сообщение о баге, не там искал проблему. Если посадил в ТТ танкиста от СТ, заместо родного с тт, Значит неправильно посчитало штраф от пересадки, сравнение уровня перков вообще не участвует.

 

Проблема появилась в  функции подсчёта штрафа.

Edited by Lemaxho

Share this post


Link to post

Short link
Share on other sites

1. Если есть несколько родных танкистов для одного и того же поста, будет выбран первый по списку, не находящийся в этом танке и не выбранный для другого поста этого же танка (например два радиста или заряжающих)

Начнётся поиск танкиста для следующего поста.

Сделал так, что сажает лучшего если есть несколько "родных".

 

2. Нет, сажает только родной экипаж, без исключения. Нету подходящих танкистов, ни кого не посадит.

может стоит для премиума сделать посадку подходящих того же класса? В принципе, как вариант, можно расширить меню, типа:

 

Тетрарх:

-----------------------

Основной экипаж

Лучший экипаж

----------------------

Т-50

МС-1

-----------------------

 

То есть смотреть для каких танков того же класса есть экипаж в казарме, и динамически строить меню. Думаю, будет удобно для прокачки экипажа на премиумном танке.

 

 

Так, перечитал сообщение о баге, не там искал проблему. Если посадил в ТТ танкиста от СТ, заместо родного с тт, Значит неправильно посчитало штраф от пересадки, сравнение уровня перков вообще не участвует.

 

Проблема появилась в  функции подсчёта штрафа.

 

 

Да, похоже на то. Я разберусь.

 

 

А виноват был break в 50 строке. :)

 

 

Вот исправленный swf, пока нет test3

crew.swf.zip

Edited by sirmax

Share this post


Link to post

Short link
Share on other sites

Когда я писал мод, то взял две базовых функции, посадка только родного экипажа, и посадка лучшего. Родной экипаж специально ограничил, на случай если надо посадить свой родной нубский экипаж с 50% в танк, в этом случае реальное умение после штрафа у 100% танкиста с одинаковым типом танка будет всё равно меньше и родной экипаж не будет выбран.

Для посадки скилованного экипажа была вторая функция.

Эту логику можно изменить, например убрав ограничение родного экипажа у прем танков.


Раньше получал разные предложения для мода, например создание пользователем пресетов танкистов (посадили экипаж --> сохранили пресет для этого танка кнопкой. Появляется возможность сажать экипаж по пресету)
Проблем с этим несколько, нужно писать пресет локально в папку (есть ли тейническая возможность?) , далее, при выборе пресета нужно парсить будет высаживать некоторых танкистов из танков, если они в пресете но находятся в других машинах. То есть перерыть нужно и другие калссы отвечающие за все танки в ангаре.
Работы много, пользы мало.

Ещё было предложение добавить опцию отключения кнопки "демобилизировать танкиста" из ангара. Некоторые по ошибке тыкают... Возможность останется в казарме.

Динамически строить меню...

Сейчас экипаж можно посадить вызовом с любого пустого поста в танке.
Если добавляем дин. кнопку "посадить в тэтрарха именно экипаж с эмэс-1" то что будет делать эта кнопка? по нынешней логике, должна полностью сажать доступнуй экипаж с эмэски на все посты танка.
А если танкист с эмэски есть только для поста командира, а второй сидит в другом танке?

Share this post


Link to post

Short link
Share on other sites

Если честно, я бы не усложнял, если текущего функционала достаточно.

 

Если добавляем дин. кнопку "посадить в тэтрарха именно экипаж с эмэс-1" то что будет делать эта кнопка? по нынешней логике, должна полностью сажать доступнуй экипаж с эмэски на все посты танка.

А если танкист с эмэски есть только для поста командира, а второй сидит в другом танке?

1. Динамическое меню строится только для премиумных танков, для которых в казарме есть танкисты с других танков того же типа и нации.

2. Сажаем всех подходящих танкистов, остальные слоты останутся пустыми.

3. Естественно, сажаем только тех кто есть в казарме.

Share this post


Link to post

Short link
Share on other sites
может стоит для премиума сделать посадку подходящих того же класса? В принципе, как вариант, можно расширить меню, типа: Тетрарх: ----------------------- Основной экипаж Лучший экипаж ---------------------- Т-50 МС-1 ----------------------- То есть смотреть для каких танков того же класса есть экипаж в казарме, и динамически строить меню. Думаю, будет удобно для прокачки экипажа на премиумном танке.

Было бы супер.




Сажаем всех подходящих танкистов, остальные слоты останутся пустыми.

ну тогда нужен пункт "забить пустые слоты подходящими танкистами"

Share this post


Link to post

Short link
Share on other sites

Было бы супер.

 

 

ну тогда нужен пункт "забить пустые слоты подходящими танкистами"

Думаю, стоит сразу забивать подходящими.

Share this post


Link to post

Short link
Share on other sites

Объясните, как вы играете что вам нужен этот мод.

У меня на все танки свой экипаж.

Иначе будут шрафы и экипаж будет 80% или 90%

Вам лучше 90% и скилы чем 100%

????

Share this post


Link to post

Short link
Share on other sites

Для прем-танков не нужны свои экипажи.

Share this post


Link to post

Short link
Share on other sites

Объясните, как вы играете что вам нужен этот мод. У меня на все танки свой экипаж. Иначе будут шрафы и экипаж будет 80% или 90% Вам лучше 90% и скилы чем 100% ????

Для прем-танков не нужны свои экипажи.

правильно вам сказали насчёт прем танков, у них нет штрафа, т.е. пересаживая прокачанный экипаж вы можете срубить 2 раза по двойному опыту для экипажа, собственно прокачка быстрее

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

post-7128-0-89073200-1363955562_thumb.png

  • Upvote 1

Share this post


Link to post

Short link
Share on other sites

Что то не корректно работает мод. Он считает что вот этот экипаж 03e28dda9e6e2cb8f18d89ad982a2c0e.jpeg лучше чем этот: eaacad89c704240fa0743ae9a58f0488.jpeg

В первом случае был выбран "Лучший экипаж", во втором руками.

Share this post


Link to post

Short link
Share on other sites
Что то не корректно работает мод

А свободного опыта не на 86% ли у экипажа с плюсами?

Share this post


Link to post

Short link
Share on other sites

Мод работает правильно... в данном случае необходимо проверить состояние объектов танкистов, тут должно сравнивать уровень последнего перка, скорее всего не распределённый уровень игрой знахцится как уровень последнего перка.

 

Если и править, то необходимо проводить точный анализ самого типа перка, а не только его уровня как сейчас. Если перк не распределён, предпочитать танкиста с назначенным перком.

Share this post


Link to post

Short link
Share on other sites
А свободного опыта не на 86% ли у экипажа с плюсами?

Проверил, у 3х по 5 у одного 20%

Share this post


Link to post

Short link
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...