Мы уже некоторое время готовим новый движок для Виртономики. Основная концепция этого механизма - разделение предоставления данных и их представления. То есть, реализуется некоторый интерфейс (API) который позволяет получать данные из игры, не зависимо от их представления в разметке HTML в вашем браузере.
Я пока не готов дать доступ ко всем функциям нового движка, но могу его предоставить к наиболее необходимым методам, для того, чтобы вы могли разрабатывать скрипты, которые не чувствительны к изменениям дизайна Виртономики. Все данные будут предоставляются в формате JSON.
В этой теме вы можете оставлять свои пожелания: какие функции необходимы в первую очередь для реализации полезных скриптов для нашей игры.
Я не гарантирую, что своевременно буду удовлетворять желания наших уважаемых разработчиков скриптов, так как наши ресурсы для разработки весьма ограничены.
- список категорий продуктов product/categories
- список продуктов product/browse
- список розничных продуктов product/goods
два последних метода могут принимать параметр category_id в качестве фильтра
Наверное, самый ожидаемый метод.
Если вы авторизованы в игре, то можно просматривать информацию о своих предприятиях запросом:
unit/summary?id=<unit_id> - где unit_id это id предприятия
- информация о компании my/company
список предприятий своей компании:
company/units?id=<company_id>
можно передавать параметры pagesize и pagenum для постраничного получения данных
Во всех методах, которые возвращают списки, можно передавать в параметрах к этому запросу, необходимые значения полей в качестве фильтров. Например, запрос: company/units?id=<company_id>&unit_type_id=1817 вернет только офисы.
список контрактов:
по поставщикам unit/sale/contracts?id=<unit_id>
по закупкам unit/supply/contracts?id=<unit_id>
можно передавать product_id в качестве фильтра
финансовый отчет по компании:
company/report/finance/byitem?id=<company_id>
Если вы изменили данные предприятия в виртономике через интерфейс пользователя, то необходимо актуализировать данные предприятия, которые вы получали через API, так как для получения данных в самой виртономике и в новом движке используются разные механизмы кэширования.
Чтобы актуализировать данные предприятия, надо выполнить POST запрос: unit/refresh
в POST данных надо передать id=<unit id> и token=<post token>.
Post token нужно получить с помощью GET запроса token
- информация по зарплатам в городах geo/salary
- информация по трудовым ресурсам geo/labors
Оба запроса могут принимать фильтр geo=<country_id>[/<region_id>[/<city_id>]]. Например, geo=7060 - Казахстан, geo=7060/7063 или geo=0/7063 - регион: Южный Казахстан, geo=0/0/422189 - город Гавана.
- транспорт и стоимость доставки geo/transport
Запрос должен принимать параметры city_id - город отправки или назначения, product_id - товар и geo (аналогично параметру geo для запроса geo/salary) - пункт назначения или отправки.
- различные бонусы в странах geo/country/bonus
- таможенные, экспортные и импортные пошлины geo/country/duty Принимает параметр country_id.
- значения ЕНВД для региона geo/region/envd
- стоимость энергии для региона geo/region/energy
Запросы должны принимать параметр region_id
Спасибо. Еще появился вопрос. Как можно по API получить список необходимого сырья для юнитов услуг ?
Рыл список, на глаза ничего нужного не попалось (
Вот такое
Кто подскажет правильный формат параметра "units_ids" в запросе company/equipment/repair?
Часто видел в полях xxxx_ids идентификатор в фигурных скобках, но сам по себе метод очень странный: не указаны никакие другие параметры, кроме идентификаторов. Подразумевается, что он отремонтирует всё без лишних вопросов или что? Лучше использовать unit/equipment/update для этих целей.
Когда ремонт производим через интерфейс, то в запросе получается строка типа unit[111111]=1515&unit[222222]=1515
где в скобках передаются id ремонтируемых юнитов (в данном случае офисы), а 1515 это id компьтеров. А как это в API передавать непонятно
Можно гадать до бесконечности, но лучше не тратить на это время, если есть альтернатива. Но метод интересный, может быть, sergo нам подскажет.
company/employee/*, company/equipment/* - это для группового управления. Интерфейсы еще не готовы (почти готовы) unit_ids передается в формате unit_ids[]=1&unit_ids[]=2&unit_ids[]=3...
А еще подскажите, если кто знает, значения кодов ошибок, которые в теле ответа возвращаются. Там бывают "1", "-1", "-3" и т.п. Единица, как я уже понял, означает, что запрос выполнен успешно.
Сорри за нубский вопрос, а через api можно сейчас вытащить дату сервера, интересует
"22 января 03 г."
Сейчас считываю через питон и дальше разбираю на дату и месяц (надо для ферм)
Сорри за нубский вопрос, а через api можно сейчас вытащить дату сервера, интересует
"22 января 03 г."
Сейчас считываю через питон и дальше разбираю на дату и месяц (надо для ферм)