XGM Forum
Сайт - Статьи - Проекты - Ресурсы - Блоги

Форуме в режиме ТОЛЬКО ЧТЕНИЕ. Вы можете задать вопросы в Q/A на сайте, либо создать свой проект или ресурс.
Вернуться   XGM Forum > Warcraft> Барахолка
Ник
Пароль
Войти через VK в один клик
Сайт использует только имя.

Ответ
 
Elf_Stratigo

offline
Опыт: 4,599
Активность:
[Script] Поиск неиспользуемых абилок
!!!Не для хомячков!!!
» JAVA
	public static void main(String[] args) throws IOException
	{
		String toWork;
		//reading "AbilityData.slk"
		BufferedReader input = new BufferedReader(new InputStreamReader(new BufferedInputStream(new FileInputStream("AbilityData.slk"))));
		LinkedList<String> abilities = new LinkedList<String>();
		while(input.ready()){
			toWork=input.readLine();
			//check that this is dataline and if new line...
			if(toWork.contains(";X1;")){
				String[] splitted=toWork.split(";");
				splitted=splitted[splitted.length-1].split("\"");
				abilities.add(splitted[splitted.length-1]);
			}
		}
		input.close();
		//removing header of column
		abilities.remove("alias");
		//excluding abilities that contains in UnitAbilities.slk
		input = new BufferedReader(new InputStreamReader(new BufferedInputStream(new FileInputStream("UnitAbilities.slk"))));
		while(input.ready()){
			toWork=input.readLine();
			//check that this is dataline and if new line...
			if(toWork.contains(";X6;")||toWork.contains(";X5;")){
				String[] splitted=toWork.split(";");
				splitted=splitted[splitted.length-1].split("\"");
				splitted=splitted[splitted.length-1].split(",");
				for(int i=0;i<splitted.length;i++){abilities.remove(splitted[i]);}
			}
		}
		input.close();
		//excluding abilities that contains in ItemData.slk
		input = new BufferedReader(new InputStreamReader(new BufferedInputStream(new FileInputStream("ItemData.slk"))));
		while(input.ready()){
			toWork=input.readLine();
			//check that this is dataline and if new line...
			if(toWork.contains(";X6;")||toWork.contains(";X5;")){
				String[] splitted=toWork.split(";");
				splitted=splitted[splitted.length-1].split("\"");
				splitted=splitted[splitted.length-1].split(",");
				for(int i=0;i<splitted.length;i++){abilities.remove(splitted[i]);}
			}
		}
		input.close();
		//excluding abilities that contains in other abilities
		input = new BufferedReader(new InputStreamReader(new BufferedInputStream(new FileInputStream("AbilityData.slk"))));
		while(input.ready()){
			toWork=input.readLine();
			//if ability ID contains not in Name column
			if(!toWork.contains(";X1;")){
				String[] splitted=toWork.split("\"");
				splitted=splitted[splitted.length-1].split(",");
				for(int i=0;i<splitted.length;i++){
					if(splitted[i].length()==4)
						abilities.remove(splitted[i]);
				}
			}
		}
		input.close();
		//parsing war3map.j to exclude abilities (not hexed please)
		input = new BufferedReader(new InputStreamReader(new BufferedInputStream(new FileInputStream("war3map.j"))));
		while(input.ready()){
			toWork=input.readLine();
			String[] splitted=toWork.split("'");
			for(int i=0;i<splitted.length;i++){
				if(splitted[i].length()==4)
					abilities.remove(splitted[i]);
			}
		}
		input.close();
		//printing to console unused abilities
		Iterator<String> it=abilities.iterator();
		while(it.hasNext()){
			System.out.println(it.next());
		}
	}
считывает все иды из"AbilityData.slk" потом ищет совпадения в "UnitAbilities.slk" для колонок abilList(5) и heroAbilList(6), ну и соответственно так же с ItemData.slk, после тупо смотрит содержимое всех колонок опять из "AbilityData.slk" и выкидывает, если чтото похожее в raw и не ид, ну и подконец выкидывает совпадения по war3map.j
Что осталось - мусор - выкидывает в консоль
Код ужасен и это да, но работает и ладно

Отредактировано Elf_Stratigo, 06.03.2011 в 21:11.
Старый 06.03.2011, 20:33
Doc

offline
Опыт: 63,163
Активность:
Elf_Stratigo, зачем оно?
Старый 06.03.2011, 21:59
kalm09ds05
Ввысь...
offline
Опыт: 5,169
Активность:
Doc, ответ в теме академии, как
мусор - выкидыва ет ть
Старый 06.03.2011, 22:01
Hanabishi
COOL STATUS
offline
Опыт: отключен
Elf_Stratigo, а оно удаляет оптимизированные равкоды типа 0х12345 ?
в коде рыться лень
Старый 06.03.2011, 22:11
Elf_Stratigo

offline
Опыт: 4,599
Активность:
Hanabishi, нет
когда тулу векса применяешь, он приобразовывает хекс обратно в 256-ричную систему, такчто не проблема
Старый 07.03.2011, 00:19
Sansaney
Что??
offline
Опыт: 20,876
Активность:
Elf_Stratigo, прости нуба, но что с ним делать, с этим кодом?
Старый 07.03.2011, 19:41
Elf_Stratigo

offline
Опыт: 4,599
Активность:
если хочется узнать иды неиспользуемых абилок - вытаскиваешь из карты AbilityData.slk UnitAbilities.slk ItemData.slk war3map.j
выполняешь скрипт - в консоле то, что можно удалить
Старый 07.03.2011, 20:57
Ответ

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

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

BB-коды Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход



Часовой пояс GMT +3, время: 02:42.