ВНИМАНИЕ! Наша конференция посвящена космической тематике и компьютерным играм. Политические вопросы и происходящие в мире события в данный момент на нашем сайте не обсуждаются!
 
  |  
|   » Новое производство или "Как это считать?" | страница 1 |  
 
  
	     | 
	Страница 1 из 1   | 
       	
   
 
	
		 | 
		 | 
		 | 
	 
	| 
Канал EVE Online: «Новое производство или "Как это считать?"» |  
	| 
	 |  
	 |  
	
		Варсик
   547 EGP
      Рейтинг канала: 3(42) Репутация: 117 Сообщения: 4041  Откуда: Москва Зарегистрирован: 22.12.2002
       | 
         | 
		Чуть больше года назад CCP выпустило обновление Crius, где переделали индустрию. Где-то пол года эту систему шатало, потом вроде устаканилось. Сегодня я поделюсь информацией о том, как сейчас с этим работать и как считать.
 
 
Вместо предисловия
 
 
Для начала отвечу на основной вопрос: А почему не использовать готовое. Ответ на это - потому-что. Потому что нет уверенности что оно все работает, потому что нет уверенности что работает правильно. И как это вообще должно работать правильно.
 
 
Итак, что вам надо знать прежде чем вообще с этим разбираться...
 
 
1) Есть такая штука как Static Data Export (SDE). Это архивчик на 100-200Mb, где лежит вообще вся информация, которую ЦЦП решает дать капуслерам. SDE делится на 2 большие части: MS SQL ([неадекватно]) базы, SQLite базы (O_o) и кучи YAML файлов. Нас сейчас интересует MS SQL база. По этому все дружно качаем MSSQL Express (я пользую 2012), разбираемся как загружать туда базы... У меня сейчас 4 SDE базы там.
 
 
2) Есть дополнительная информация, доступная в онлайне. Сейчас это 2 большие части: EVE-Central / EVE-MarketData и CREST.
 
 
Для кого я это все пишу
 
 
Ну для 2 целей: Закрепить пройденное и добавлять инфу.
 
 
Если вы хотите с этим играться, то вам надо знать SQL, понимать что такое Электронные таблицы (Google SpreadSheets) и знать что такое JavaScript. Всего по немножку, а потому с гуглем прокатит если энергии много.
 
 
Во всем виноват Fozzie. Всегда
 
 
Сначала о грустном. ССП опять решили что-то переделать, в результате чего SDE переходит в YAML. YAML - это [структурированный текстовый формат], но его используют. Я лично пользую SDE от Phoebe и потом проверяю что они ничего не поменяли. "маркер", который можно использовать для понимания - какой SDE использовать: таблица invTypes не должна быть пустой.
 
 
Готовимся
 
 
Итак, я считаю что у вас есть развернутая SDE и Гуглевский эксель. Оригинальный тут не подойдет, так как будем лепить макросы.
 
 
Понеслось. MS SQL ([неадекватно])
 
 
Для начала разберемся с тем как вытаскивать необходимую информацию из SQL части (ее мы будем засовывать в [таблицы]).
 
 
Вообще конкретно по SDE я рекомендую этот сайт. Он содержит почти все информацию по SDE в почти актуальном состоянии. Но на данный момент нас интересует тут всего 2 таблицы: invTypes и invTypeMaterials.
 
 
1) invTypes - Справочник вещей, которые есть или планируются в игре.
 
нас тут интересуют 2 основных поля:
 
 - typeID: Идентификатор вещи. По нему работают вообще все API.
 
 - typeName: Название вещи (Английское). Чтобы было понятно что это.
 
 
Иногда еще удобно использовать groupID. Надо это для внутренних связей, но обычно схожие вещи сгруппированы в одну группу. Не путайте с группой на рынке. Для этого есть merketGroupID.
 
 
2) invTypeMaterials - Материалы, необходимые для производства того или иного typeID. Состав:
 
 - typeID: Что получится.
 
 - materialTypeID: Из чего делается.
 
 - quantity: Сколько надо при нулевых навыках.
 
 
Сферический запрос в вакууме у нас будет такой:
	  | Код: | 
	 
	
	  SELECT
 
        m.*, t.typeName, mt.typeName
 
    FROM invTypeMaterials m
 
    LEFT JOIN invTypes t ON
 
        t.typeID = m.typeID
 
    LEFT JOIN invTypes mt ON
 
        mt.typeID = m.materialTypeID
 
    WHERE
 
        t.typeName LIKE 'Survey S%'
 
    ORDER BY
 
        m.typeID, m.materialTypeID | 
	 
 
 
В нем мы спрашиваем из чего делаются все вещи, который начинаются с SurveyS.
 
Результатом будет что-то типа:
	  | Код: | 
	 
	
	  444     34      1111    Survey Scanner I       Tritanium
 
2333    34      1111    Survey Scanner II      Tritanium
 
2333    9840    3       Survey Scanner II      Transmitter
 
2333    9842    5       Survey Scanner II      Miniature Electronics
 
2333    11399   1       Survey Scanner II      Morphite
 
2333    11539   5       Survey Scanner II      Nanoelectrical Microprocessor
 
 | 
	 
 
 
Итак, мы знаем что и из чего делается. Если вы хотите считать более сложные цепочки, то просто вытягивайте промежуточные компоненты последовательно
 
 
Google таблицы
 
 
Полученные данные надо занести в таблицы (далее в шиты, ибо так короче). Заводим новую книгу и добавляем туда шит "BPMaterialInfo". Это будет информация о том из чего что делается. Сейчас у нас там 5 колонок. Различные ID'шники, количество и названия. Названия там вообще говоря не нужны, но пусть будут. Все отсортировано по ID получаемой вещи. Нам надо там еще как минимум 2 колонки: 
 
- Количество материалов с учетом навыков (derivedAmount)
 
- Общая стоимость материала (totalCost)
 
 
Информация с чертежа
 
 
Добавляем новый шит, где у нас будут настройки и статистика по чертежу (BPInfo). Вообще нам там надо 2 показателя: Material Efficiency(ME) и Time Efficiency(TE). ME - для понимания прибыльности. TE - для понимания ISK/месяц.
 
Итак, там будет следующая структура: typeID, typeName, ME, PE, bpTime, derivedTime, totalCost, jitaBuyCost, jitaSellCost, deltaBuy, deltaSell, ISK/mon. Как вы видите - вся интересующая информация будет тут. Я рекомендую оставить в шапке сторчек до, для всяких настроек (Нам точно понадобятся Industry Advanced Industry, количество линий).
 
 
Общая формула для BPMaterialInfo.derivedAmount такова: 
	  | Код: | 
	 
	
	  | derivedAmount = amount * (1 - ME) * ( 1 - facilityProductionModifier) | 
	 
 
, где facilityProductionModifier - для станций 0, для большинства ПОС построек - 2%.
 
 
Цены. Здравствуй Eve-Central
 
 
Теперь нам желательно знать сколько стоит тот или иной товар в Жите (или где вы будете торговать). Тут нам на помощь приходит EVE-Central. Вообще они предоставляют свое API в формате XML и можно использовать ImportXML. не делайте этого. Причина в том, что Гугль перезапрашивает эти цены на каждый чих, таким образом DOS'я Централ. В результате чего вас банят. Правильный подход сделать перезапрос цен по кнопке. Его мы и будем делать.
 
 
... Продолжения не будет. Се-ля-ви ... 
        	 _________________ WARNING: By reading this post you accept that this post is genius. 
  Последний раз редактировалось: AnrDaemon (23:56 20-08-2015), всего редактировалось 1 раз Последний раз редактировалось: Варсик (20:20 19-08-2015), всего редактировалось 4 раз(а) | 
		 
		
		| 
		
		 | 
         
     |  
	
		Dimaxx
   1025 EGP
        Рейтинг канала: 3(49) Репутация: 204 Сообщения: 5828  Откуда: Северодвинск Зарегистрирован: 26.06.2002
      | 
         | 
		Все уже украдено сделано до нас.
 
https://www.fuzzwork.co.uk/dump/
 
 
Я, честно признаться, оттуда давно ничего не качал, но когда использовал - там было все в любом формате. 
        	 _________________ "Если мы не покончим с войной, война покончит с нами." Г. Г. Уэллс  | 
		 
		
		| 
		
		 | 
         
     |  
	 |  
	
		| 
		
		 | 
	 
     |  
	| 
	  Канал EVE Online: «Новое производство или "Как это считать?"» |  
	
		| 
		
		 | 
	 
 
      
      
 |