Массовый набор javascript

DeletedUser

Гость
Кто нибудь знает, как отредактировать скрипт таким образом, чтобы КД не забивался под завязку, а оставалось еще место - например, на 200 юнитов?
 

DeletedUser

Гость
Просто поставь определённое количество юнитов.
 

DeletedUser

Гость
Скрипт тестировался на браузере Mozilla Firefox. в 10- мире (С лучниками).

Офф набор: 3500топорников ; 500Лазутчиков ; 3500Лёгкой кавалерии ; 100Тяжёлой кавалерии ; 350 таранов

Отредактировать количество юнитов можно в этом месте: configuration=[0,0,3500,0,500,3500,0,100,350,0]

Дефф набор: 6000копейшиков ; 6000мечников ; 3000Лучников ; 500Лазутчиков ; 1000Тяжёлой кавалерии

Отредактировать количество юнитов можно можно в этом месте: configuration=[6000,6000,0,3000,500,0,0,1000,0,0]

В другое место не лезть!! Всё сломаете..=)

Офф набор.
PHP:
javascript:var archers=true;var  configuration=[0,0,3500,0,500,3500,0,100,350,0];var  units;var unitsNET;var  costs;function arrayMin(array){var value=array[0];for(var   t=1;t<array.length;t++){if(array[t]<value){value=array[t];}}return   value;}function linearDivideArray(array1,array2){var   value=[];if(array1.length==array2.length){for(var   t=0;t<array1.length;t++){if(array2[t]!=0){value[t]=array1[t]*1.0/array2[t];}else{value[t]=0;}}}return   value;}function linearAddArray(array1,array2){var   value=[];if(array1.length==array2.length){for(var   t=0;t<array1.length;t++){value[t]=array1[t]+array2[t];}}return   value;}function getUnitId(unit){for(var   t=0;t<units.length;t++){if(unit==unitsNET[t]){return   t;}}return-1;}function getQueue(record){var  value=[0,0,0,0,0,0,0,0,0,0];for(var   u=3;u<record.cells.length;u++){try{value[u-3]=parseInt(record.cells[u].childNodes[1].childNodes[1].firstChild.title,10);}catch(e){}if(isNaN(value[u-3])){value[u-3]=0;}}return   value;}function getResources(record){var  value=[0,0,0,0];var  res=record.cells[1].textContent.split("\n");var   farm=record.cells[2].innerHTML.split('/');value[0]=parseInt(res[1].replace(".",""),10);value[1]=parseInt(res[2].replace(".",""),10);value[2]=parseInt(res[3].replace(".",""),10);value[3]=farm[1]-farm[0];return   value;}function getProduced(record){var   value=[0,0,0,0,0,0,0,0,0,0];for(var   u=3;u<record.cells.length;u++){try{value[u-3]=parseInt(record.cells[u].childNodes[1].textContent.split("\n")[2],10);}catch(e){}if(isNaN(value[u-3])){value[u-3]=0;}}return    value;}if(document.URL.match('screen=train')&&document.URL.match('mode=mass')){var    records=document.getElementById('mass_train_table').rows;if(archers){units=['spear','sword','axe','archer','spy','light','marcher','heavy','ram','catapult'];unitsNET=['Spear  Fighter','Swordsman','Axeman','Archer','Scout','Light Cavalry','Mounted  Archer','Heavy  Cavalry','Ram','Catapult'];costs=[[50,30,10,1],[30,30,70,1],[60,30,40,1],[100,30,60,1],[50,50,20,2],[125,100,250,4],[250,100,150,5],[200,150,600,6],[300,200,200,5],[320,400,100,8]];}else{units=['spear','sword','axe','spy','light','heavy','ram','catapult'];unitsNET=['Spear  Fighter','Swordsman','Axeman','Scout','Light Cavalry','Heavy  Cavalry','Ram','Catapult'];costs=[[50,30,10,1],[30,30,70,1],[60,30,40,1],[50,50,20,2],[125,100,250,4],[200,150,600,6],[300,200,200,5],[320,400,100,8]];}for(r=1;r<records.length;r++){var   subconf=[];var total_costs=[0,0,0,0];var  i;var  resources=getResources(records[r]);var  queue=getQueue(records[r]);var   produced=getProduced(records[r]);for(i=0;i<units.length;i++){subconf[i]=configuration[i]-(queue[i]+produced[i]);if(subconf[i]<0){subconf[i]=0;}for(var   j=0;j<4;j++){total_costs[j]+=costs[i][j]*subconf[i];}};var   factor=arrayMin(linearDivideArray(resources,total_costs));if(factor>1.0){factor=1.0;}for(i=0;i<units.length;i++){var    number=subconf[i]*factor;if(number<0){number=0;}if(number!=0){if(records[r].cells[3+i].childNodes[3]&&records[r].cells[3+i].childNodes[3].disabled==false){var    ibox=records[r].cells[3+i].childNodes[3];try{ibox.value=parseInt(number,10);}catch(e){alert(e);}}}}}stop();}else{alert('Офф набор)');}

Дефф набор.
PHP:
javascript:var archers=true;var  configuration=[6000,6000,0,3000,500,0,0,1000,0,0];var  units;var unitsNET;var  costs;function arrayMin(array){var value=array[0];for(var   t=1;t<array.length;t++){if(array[t]<value){value=array[t];}}return   value;}function linearDivideArray(array1,array2){var   value=[];if(array1.length==array2.length){for(var   t=0;t<array1.length;t++){if(array2[t]!=0){value[t]=array1[t]*1.0/array2[t];}else{value[t]=0;}}}return   value;}function linearAddArray(array1,array2){var   value=[];if(array1.length==array2.length){for(var   t=0;t<array1.length;t++){value[t]=array1[t]+array2[t];}}return   value;}function getUnitId(unit){for(var   t=0;t<units.length;t++){if(unit==unitsNET[t]){return   t;}}return-1;}function getQueue(record){var  value=[0,0,0,0,0,0,0,0,0,0];for(var   u=3;u<record.cells.length;u++){try{value[u-3]=parseInt(record.cells[u].childNodes[1].childNodes[1].firstChild.title,10);}catch(e){}if(isNaN(value[u-3])){value[u-3]=0;}}return   value;}function getResources(record){var  value=[0,0,0,0];var  res=record.cells[1].textContent.split("\n");var   farm=record.cells[2].innerHTML.split('/');value[0]=parseInt(res[1].replace(".",""),10);value[1]=parseInt(res[2].replace(".",""),10);value[2]=parseInt(res[3].replace(".",""),10);value[3]=farm[1]-farm[0];return   value;}function getProduced(record){var   value=[0,0,0,0,0,0,0,0,0,0];for(var   u=3;u<record.cells.length;u++){try{value[u-3]=parseInt(record.cells[u].childNodes[1].textContent.split("\n")[2],10);}catch(e){}if(isNaN(value[u-3])){value[u-3]=0;}}return    value;}if(document.URL.match('screen=train')&&document.URL.match('mode=mass')){var    records=document.getElementById('mass_train_table').rows;if(archers){units=['spear','sword','axe','archer','spy','light','marcher','heavy','ram','catapult'];unitsNET=['Spear  Fighter','Swordsman','Axeman','Archer','Scout','Light Cavalry','Mounted  Archer','Heavy  Cavalry','Ram','Catapult'];costs=[[50,30,10,1],[30,30,70,1],[60,30,40,1],[100,30,60,1],[50,50,20,2],[125,100,250,4],[250,100,150,5],[200,150,600,6],[300,200,200,5],[320,400,100,8]];}else{units=['spear','sword','axe','spy','light','heavy','ram','catapult'];unitsNET=['Spear  Fighter','Swordsman','Axeman','Scout','Light Cavalry','Heavy  Cavalry','Ram','Catapult'];costs=[[50,30,10,1],[30,30,70,1],[60,30,40,1],[50,50,20,2],[125,100,250,4],[200,150,600,6],[300,200,200,5],[320,400,100,8]];}for(r=1;r<records.length;r++){var   subconf=[];var total_costs=[0,0,0,0];var  i;var  resources=getResources(records[r]);var  queue=getQueue(records[r]);var   produced=getProduced(records[r]);for(i=0;i<units.length;i++){subconf[i]=configuration[i]-(queue[i]+produced[i]);if(subconf[i]<0){subconf[i]=0;}for(var   j=0;j<4;j++){total_costs[j]+=costs[i][j]*subconf[i];}};var   factor=arrayMin(linearDivideArray(resources,total_costs));if(factor>1.0){factor=1.0;}for(i=0;i<units.length;i++){var    number=subconf[i]*factor;if(number<0){number=0;}if(number!=0){if(records[r].cells[3+i].childNodes[3]&&records[r].cells[3+i].childNodes[3].disabled==false){var    ibox=records[r].cells[3+i].childNodes[3];try{ibox.value=parseInt(number,10);}catch(e){alert(e);}}}}}stop();}else{alert('Дефф набор)');}

Пиктограмма для оффа:
unit_axe.png
- {graphic}/unit/unit_axe.png
Пиктограмма для деффа;
unit_spear.png
- {graphic}/unit_map/spear.png


Войска поместятся в усадьбу при условие:

(Это там где особняк)
Тематика построения.№1
Строения
Ратуша(Уровень 20)
Казарма (Уровень 25)
Конюшня (Уровень 20)
Мастерская (Уровень 15)
Собор (Уровень 1)
Особняк (Уровень 1)
Кузница (Уровень 20)
Площадь (Уровень 1)
Статуя (Уровень 1)
Базар (Уровень 20)
Лесопилка (Уровень 30)
Глиняный карьер (Уровень 30)
Железная шахта (Уровень 30)
Усадьба (Уровень 30)
Склад (Уровень 30)
Тайник (Уровень 10) Хоть что-то да останется. И можно обламывать нападавшего :)
Стены (Уровень 20)

(А это там где особняка нет)
Тематика построения.№2
Строения
Ратуша(Уровень 20)
Казарма (Уровень 25)
Конюшня (Уровень 20)
Мастерская (Уровень 15)
Церковь (Уровень 1) (или Уровень 2)
Кузница (Уровень 15)
Площадь (Уровень 1)
Статуя (Уровень 1)
Базар (Уровень 20)
Лесопилка (Уровень 30)
Глиняный карьер (Уровень 30)
Железная шахта (Уровень 30)
Усадьба (Уровень 30)
Склад (Уровень 30)
Тайник (Уровень 10) Хоть что-то да останется. И можно обламывать нападавшего :)
Стены (Уровень 20)
 
Последнее редактирование модератором:

DeletedUser

Гость
У меня вопрос по этому скрипту: возможно там что-то сделать, чтоб он оставлял 110 душ в усадьбе?
 

DeletedUser

Гость
У меня вопрос по этому скрипту: возможно там что-то сделать, чтоб он оставлял 110 душ в усадьбе?

Возможно, но нужно напрячь мозги и посчитать сколько у тебя здания хавают усадьбы.
Далее получившееся число вычти из 24000.(полного объёма усадьбы) Получишь свободное место в усадьбе.
Далее отними 110 и остаток распредели на все войска. Тут узнаешь сколько хавают твои войска.

Вот и всё;)
 

DeletedUser24843

Гость
Был дурацкий вопрос:
 
Последнее редактирование модератором:

DeletedUser25391

Гость
у меня такая ситуация: офф набор работает нормально, а вот с дефф набором проблема - не хочет работать в группе дефф деревень. хотя в группе офф деревень работает. Может кто сталкивался. подскажите решение. Мир без лучников.
Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13 ( .NET CLR 3.5.30729)


в общем поэкспериментировал скрипт стал работать при наборе деффа. удалось определить, при малых кол-вах войск - скрипт не работает. вводил 2000коп и 3000меч - нанимал в какой-то странной пропорции. ввел 20000коп и 30000меч - вроде пропорции верные стали. Где там собака зарыта?
 
Последнее редактирование модератором:
Верх