Lemaxho Posted March 18, 2013 Author Share Posted March 18, 2013 Вопрос по алгоритму. 1. PutOwn - если есть, допустим, 2 командира на один и тот же танк, кого посадит? 2. PutOwn - если премиумный танк, посадит ли с другого танка того же класса? 1. Если есть несколько родных танкистов для одного и того же поста, будет выбран первый по списку, не находящийся в этом танке и не выбранный для другого поста этого же танка (например два радиста или заряжающих) Начнётся поиск танкиста для следующего поста. 2. Нет, сажает только родной экипаж, без исключения. Нету подходящих танкистов, ни кого не посадит. @ Quote Link to comment Short link Share on other sites More sharing options...
nemoW Posted March 18, 2013 Share Posted March 18, 2013 А если скажем есть целый экипаж с 1 перком - 100% ББ и один танкист с 2 перками, PutBest посадит команду с ББ или разбавит её танкистом без ББ? @ Quote Link to comment Short link Share on other sites More sharing options...
sirmax Posted March 18, 2013 Share Posted March 18, 2013 1. Если есть несколько родных танкистов для одного и того же поста, будет выбран первый по списку, не находящийся в этом танке и не выбранный для другого поста этого же танка (например два радиста или заряжающих) Начнётся поиск танкиста для следующего поста. По идее нужно садить лучшего. 2. Нет, сажает только родной экипаж, без исключения. Нету подходящих танкистов, ни кого не посадит. Надо эти алгоритмы расписать обычным текстом. @ Quote Link to comment Short link Share on other sites More sharing options...
darsigon Posted March 18, 2013 Share Posted March 18, 2013 "Родной экипаж" и "Лучший экипаж". "Родной экипаж" и "Подходящий экипаж". Про "Лучший экипаж" можно подумать, что он лучше родного. @ Quote Link to comment Short link Share on other sites More sharing options...
sirmax Posted March 18, 2013 Share Posted March 18, 2013 (edited) А вот не чего было оптимизорповать рабочий алгоритм) Он был проверен на большом количестве алёшек. Проверка перков должна идти только в случае 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 March 18, 2013 by sirmax @ Quote Link to comment Short link Share on other sites More sharing options...
nemoW Posted March 18, 2013 Share Posted March 18, 2013 Про "Лучший экипаж" можно подумать, что он лучше родного. Не вижу противоречия. @ Quote Link to comment Short link Share on other sites More sharing options...
Lemaxho Posted March 18, 2013 Author Share Posted March 18, 2013 (edited) Так, перечитал сообщение о баге, не там искал проблему. Если посадил в ТТ танкиста от СТ, заместо родного с тт, Значит неправильно посчитало штраф от пересадки, сравнение уровня перков вообще не участвует. Проблема появилась в функции подсчёта штрафа. Edited March 18, 2013 by Lemaxho @ Quote Link to comment Short link Share on other sites More sharing options...
sirmax Posted March 18, 2013 Share Posted March 18, 2013 (edited) 1. Если есть несколько родных танкистов для одного и того же поста, будет выбран первый по списку, не находящийся в этом танке и не выбранный для другого поста этого же танка (например два радиста или заряжающих) Начнётся поиск танкиста для следующего поста. Сделал так, что сажает лучшего если есть несколько "родных". 2. Нет, сажает только родной экипаж, без исключения. Нету подходящих танкистов, ни кого не посадит. может стоит для премиума сделать посадку подходящих того же класса? В принципе, как вариант, можно расширить меню, типа: Тетрарх: ----------------------- Основной экипаж Лучший экипаж ---------------------- Т-50 МС-1 ----------------------- То есть смотреть для каких танков того же класса есть экипаж в казарме, и динамически строить меню. Думаю, будет удобно для прокачки экипажа на премиумном танке. Так, перечитал сообщение о баге, не там искал проблему. Если посадил в ТТ танкиста от СТ, заместо родного с тт, Значит неправильно посчитало штраф от пересадки, сравнение уровня перков вообще не участвует. Проблема появилась в функции подсчёта штрафа. Да, похоже на то. Я разберусь. А виноват был break в 50 строке. :) Вот исправленный swf, пока нет test3 crew.swf.zip Edited March 18, 2013 by sirmax @ Quote Link to comment Short link Share on other sites More sharing options...
Lemaxho Posted March 18, 2013 Author Share Posted March 18, 2013 Когда я писал мод, то взял две базовых функции, посадка только родного экипажа, и посадка лучшего. Родной экипаж специально ограничил, на случай если надо посадить свой родной нубский экипаж с 50% в танк, в этом случае реальное умение после штрафа у 100% танкиста с одинаковым типом танка будет всё равно меньше и родной экипаж не будет выбран. Для посадки скилованного экипажа была вторая функция. Эту логику можно изменить, например убрав ограничение родного экипажа у прем танков. Раньше получал разные предложения для мода, например создание пользователем пресетов танкистов (посадили экипаж --> сохранили пресет для этого танка кнопкой. Появляется возможность сажать экипаж по пресету)Проблем с этим несколько, нужно писать пресет локально в папку (есть ли тейническая возможность?) , далее, при выборе пресета нужно парсить будет высаживать некоторых танкистов из танков, если они в пресете но находятся в других машинах. То есть перерыть нужно и другие калссы отвечающие за все танки в ангаре.Работы много, пользы мало. Ещё было предложение добавить опцию отключения кнопки "демобилизировать танкиста" из ангара. Некоторые по ошибке тыкают... Возможность останется в казарме. Динамически строить меню... Сейчас экипаж можно посадить вызовом с любого пустого поста в танке.Если добавляем дин. кнопку "посадить в тэтрарха именно экипаж с эмэс-1" то что будет делать эта кнопка? по нынешней логике, должна полностью сажать доступнуй экипаж с эмэски на все посты танка.А если танкист с эмэски есть только для поста командира, а второй сидит в другом танке? @ Quote Link to comment Short link Share on other sites More sharing options...
sirmax Posted March 18, 2013 Share Posted March 18, 2013 Если честно, я бы не усложнял, если текущего функционала достаточно. Если добавляем дин. кнопку "посадить в тэтрарха именно экипаж с эмэс-1" то что будет делать эта кнопка? по нынешней логике, должна полностью сажать доступнуй экипаж с эмэски на все посты танка. А если танкист с эмэски есть только для поста командира, а второй сидит в другом танке? 1. Динамическое меню строится только для премиумных танков, для которых в казарме есть танкисты с других танков того же типа и нации. 2. Сажаем всех подходящих танкистов, остальные слоты останутся пустыми. 3. Естественно, сажаем только тех кто есть в казарме. @ Quote Link to comment Short link Share on other sites More sharing options...
nemoW Posted March 18, 2013 Share Posted March 18, 2013 может стоит для премиума сделать посадку подходящих того же класса? В принципе, как вариант, можно расширить меню, типа: Тетрарх: ----------------------- Основной экипаж Лучший экипаж ---------------------- Т-50 МС-1 ----------------------- То есть смотреть для каких танков того же класса есть экипаж в казарме, и динамически строить меню. Думаю, будет удобно для прокачки экипажа на премиумном танке. Было бы супер. Сажаем всех подходящих танкистов, остальные слоты останутся пустыми. ну тогда нужен пункт "забить пустые слоты подходящими танкистами" @ Quote Link to comment Short link Share on other sites More sharing options...
sirmax Posted March 18, 2013 Share Posted March 18, 2013 Было бы супер. ну тогда нужен пункт "забить пустые слоты подходящими танкистами" Думаю, стоит сразу забивать подходящими. @ Quote Link to comment Short link Share on other sites More sharing options...
exBR0NIK Posted March 22, 2013 Share Posted March 22, 2013 Объясните, как вы играете что вам нужен этот мод. У меня на все танки свой экипаж. Иначе будут шрафы и экипаж будет 80% или 90% Вам лучше 90% и скилы чем 100% ???? @ Quote Link to comment Short link Share on other sites More sharing options...
nemoW Posted March 22, 2013 Share Posted March 22, 2013 Для прем-танков не нужны свои экипажи. @ Quote Link to comment Short link Share on other sites More sharing options...
VicKing Posted March 22, 2013 Share Posted March 22, 2013 Объясните, как вы играете что вам нужен этот мод. У меня на все танки свой экипаж. Иначе будут шрафы и экипаж будет 80% или 90% Вам лучше 90% и скилы чем 100% ???? Для прем-танков не нужны свои экипажи. правильно вам сказали насчёт прем танков, у них нет штрафа, т.е. пересаживая прокачанный экипаж вы можете срубить 2 раза по двойному опыту для экипажа, собственно прокачка быстрее вот глянь, сидят без штрафа, на то он и нужен прем.танк (по акции взял за 85 голды :) ) 1 @ Quote Link to comment Short link Share on other sites More sharing options...
exBR0NIK Posted March 22, 2013 Share Posted March 22, 2013 спасибо @ Quote Link to comment Short link Share on other sites More sharing options...
vankuzu Posted March 22, 2013 Share Posted March 22, 2013 Что то не корректно работает мод. Он считает что вот этот экипаж лучше чем этот: В первом случае был выбран "Лучший экипаж", во втором руками. @ Quote Link to comment Short link Share on other sites More sharing options...
Mr A Posted March 22, 2013 Share Posted March 22, 2013 Что то не корректно работает мод А свободного опыта не на 86% ли у экипажа с плюсами? @ Quote Link to comment Short link Share on other sites More sharing options...
Lemaxho Posted March 22, 2013 Author Share Posted March 22, 2013 Мод работает правильно... в данном случае необходимо проверить состояние объектов танкистов, тут должно сравнивать уровень последнего перка, скорее всего не распределённый уровень игрой знахцится как уровень последнего перка. Если и править, то необходимо проводить точный анализ самого типа перка, а не только его уровня как сейчас. Если перк не распределён, предпочитать танкиста с назначенным перком. @ Quote Link to comment Short link Share on other sites More sharing options...
vankuzu Posted March 22, 2013 Share Posted March 22, 2013 А свободного опыта не на 86% ли у экипажа с плюсами? Проверил, у 3х по 5 у одного 20% @ Quote Link to comment Short link Share on other sites More sharing options...
Recommended Posts
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.