Перейти к содержимому
Для публикации в этом разделе необходимо провести 1 боёв.
MedvedevTD

ModAPI (документация)

В этой теме 9 комментариев

Рекомендуемые комментарии

10 808
[WG] MedvedevTD
6 365 публикаций
5 932 боя

Здравствуйте, уважаемые!

Вам предоставляется возможность попробовать кусочек от альфа-версии ModsAPI. Основная идея ModsAPI состоит в том, что единожды созданные моды будут работать из версии в версию без изменений.
 
Это кусочек от альфа версии ModsAPI. Нестабильное поведение и некоторые тормоза вполне возможны.
Также в логе будет много сообщений о постоянном обращении к диску при чтении файлов моделей. В полной версии это будет исправлено.

Папку PnFMods положить в /res_mods/0.5.x.x/
Файл PnFModsLoader.py положить в /res_mods/0.5.x.x/
Сохранить оригинальный архив scripts.zip из /res/
Заменить scripts.zip в /res/


Обсуждение данной альфа-версии тут: ModAPI (обсуждение)


ModsAPI (Ссылка на обновленные архивы).


PythonAPI - Battle

PythonAPI - Callbacks

PythonAPI - CustomPorts

PythonAPI - Events

PythonAPI - Flash

PythonAPI - Utils

PythonAPI - Web

  • Плюс 3

Рассказать о публикации


Ссылка на публикацию
Поделиться на других сайтах
10 808
[WG] MedvedevTD
6 365 публикаций
5 932 боя

 

PythonAPI - Battle 

Доступные методы:

battle

  • getPlayersInfo()
  • getPlayerInfo(playerId)
  • getSelfPlayerInfo()
  • getPlayerInfoByName(name)
  • getPlayerShipInfo(playerId)
  • getDistanceInMeters(start, end) 


getPlayersInfo

Данная функция возвращает dict, состоящий из объектов с информацией об игроке. Вид: { <playerId>: <PlayerInfo> } 

Возвращаемое значение: dict { <playerId>: <PlayerInfo> }


getPlayerInfo

Данная функция возвращает объект с информацией об игроке. Входные параметры: playerId - идентификатор игрока. Возвращаемое значение: PlayerInfo


getSelfPlayerInfo

Данная функция возвращает объект с информацией о нашем игроке. Возвращаемое значение: PlayerInfo


getPlayerInfoByName

Данная функция возвращает объект с информацией об игроке. Входные параметры: name - имя игрока. Возвращаемое значение: PlayerInfo


getPlayerShipInfo

Данная функция возвращает объект с информацией о корабле игрока. Входные параметры: playerId - идентификатор игрока. Возвращаемое значение: ShipInfo


getDistanceInMeters

Данная функция возвращает расстояние в метрах между двумя точками в 3D пространстве. Входные параметры:

start - начальная точка. tuple(x, y, z)

start - начальная точка. tuple(x, y, z) end - конечная точка. tuple(x, y, z). Возвращаемое значение: Расстояние в метрах

 

Рассказать о публикации


Ссылка на публикацию
Поделиться на других сайтах
10 808
[WG] MedvedevTD
6 365 публикаций
5 932 боя

 

PythonAPI - Callbacks

Доступные методы: 

callbacks

  • callbacks.perTick(func)
  • callbacks.callback(dt, func, *args, **kw)
  • callbacks.cancel(handle) 


callbacks perTick

Данная функция вызывает функцию, переданную в качестве параметра каждый тик.

Входные параметры:

  • func - Python-функция

Возвращаемое значение: handle - уникальный идентификатор, используемый для остановки вызова функции по тику.


callback

Данная функция позволяет вызвать другую функцию с определенной задержкой и параметрами.

Входные параметры:

  • dt - время в миллисекундах, через которое вызовется функция func
  • func - функция, которая вызовется
  • *args - все non-keyword параметры, которые передадутся в функцию func
  • **kw - все keyword параметры, которые передадутся в функцию func

Возвращаемое значение: handle - уникальный идентификатор, используемый для остановки вызова функции по тику.


cancel

Данная функция отменяет действие, которые должны будут выполнить функции выше (вызов функции каждый тик или вызов функции с задержкой).

Входные параметры:

  • handle - уникальный идентификатор, полученный от функций perTick или callback.

 

Рассказать о публикации


Ссылка на публикацию
Поделиться на других сайтах
10 808
[WG] MedvedevTD
6 365 публикаций
5 932 боя

 

PythonAPI - CustomPorts

Доступные методы:

  • customPorts.addCustomPort(portName, portDisplayName = DEFAULT_NAME, isPremium = False, peculiarities = None)
  • customPorts.removeCustomPort(portName)


addCustomPort

Данный метод добавляет в меню выбора порта новый порт.

Параметры функции:

  • portName - имя, идентификатор порта, должен совпадать с именем space'a и png-иконки порта
  • portDisplayName = 'Персональный' - отображаемое имя порта
  • isPremium = False - премиумность порта
  • peculiarities = None - массив особенностей порта (напр. "peculiarities = [ 'arpeggio' ]")


removeCustomPort

Данный метод удаляет из меню выбора порта новый порт.

Параметры функции:

  • portName - имя, идентификатор загруженного порта

 

Рассказать о публикации


Ссылка на публикацию
Поделиться на других сайтах
10 808
[WG] MedvedevTD
6 365 публикаций
5 932 боя

 

PythonAPI - Events

Доступные методы:

  • events.onFlashReady
  • events.onSFMEvent
  • events.onReceiveShellInfo
  • events.onBattleStarted
  • events.onBattleQuit
  • events.onKeyEvent
  • events.onMouseEvent


Эвенты вызываются извне и передают различные параметры в функции, которые на данные эвенты подписаны. Пример подписи на эвент: events.eventName(myEventHandlerFunc)

 

onFlashReady

Данный эвент срабатывает сразу после загрузки и инициализации Flash-части мода (при её наличии).

Параметры эвента:

  • modName - имя мода, Flash-часть которого была загружена


onSFMEvent

Данный эвент срабатывает при возникновении различных событий в SFM-машине. Например показ и скрытие различных окон, нажатия на некоторые кнопки и т.д и т.п.

Параметры эвента:

  • eventName - имя SFM эвента
  • eventData - параметры SFM эвента


onReceiveShellInfo

Данный эвент срабатывает при получении игроком информации о попадании (снарядом/торпедой) в чужой корабль.

Параметры эвента:

  • victimID - идентификатор атакованного
  • shooterID - идентификатор атакующего
  • ammoId - тип снаряда
  • matId - тип материала, в который было попадание
  • shotID - идентификатор выстрела
  • booleans - if(booleans & 1) урон получил наш корабль
  • damage - кол-во нанесенного урона
  • shotPosition - точка попадания
  • yaw - yaw снаряда
  • hlinfo - ***


onBattleStarted

Данный эвент срабатывает при начале боя, после 30-секундного отсчета.


onBattleQuit

Данный эвент срабатывает после окончания боя.

Параметры эвента:

  • arg - зарезервированный аргумент. На данный момент равен True


events.onKeyEvent

Данный эвент срабатывает при нажатии на кнопку.

Параметры эвента:

  • event - KeyEvent


events.onMouseEvent

Данный эвент срабатывает при изменении параметров курсора мыши.

Параметры эвента:

  • event - MouseEvent 

 

Рассказать о публикации


Ссылка на публикацию
Поделиться на других сайтах
10 808
[WG] MedvedevTD
6 365 публикаций
5 932 боя

 

PythonAPI - Flash

Доступные методы:

  • flash.call(methodName, args = None)
  • flash.addExternalCallback(command, function)
  • flash.removeExternalCallback(command = None, function = None)
  • flash.loadFlashMod(modName)
  • flash.loadPyMod(modName)
  • flash.reloadMod(modName, needToReloadPy = False)
  • flash.unloadMod(modName, needToUnloadPy = False)
  • flash.getModsStatus()


call

Данный метод вызывает коллбек, на который должны быть подписаны функции во Flash.

Параметры функции:

  • methodName - имя, ключ коллбека
  • args = None - массив аргументов


addExternalCallback

Данный метод добавляет функцию обработчик для указанного коллбека.

Параметры функции:

  • methodName - имя, ключ коллбека
  • function - функция-обработчик коллбека


removeExternalCallback

Данный метод прекращает работу функции-обработчика коллбека.

Параметры функции:

  • methodName = None - имя, ключ коллбека
  • function = None - функция-обработчик коллбека

Примечание: При вызове данной функции без параметров будет полностью очищен список функций-обработчиков для текущего мода.


loadFlashMod

Данный метод загружает Flash-часть мода, если она не была загружена ранее, либо была выгружена.

Параметры функции:

  • modName - имя, идентификатор мода


loadPyMod

Данный метод загружает Python-часть мода, если она не была загружена ранее, либо была выгружена. Данный метод так же загрузит Flash-часть мода.

Параметры функции:

  • modName - имя, идентификатор мода


reloadMod

Данный метод перезагружает мод.

Параметры функции:

  • modName - имя, идентификатор мода
  • needToReloadPy = False - нужно ли перезагрузить Python-часть мода


unloadMod

Данный метод выгружает мод.

Параметры функции:

  • modName - имя, идентификатор мода
  • needToUnloadPy = False - нужно ли выгружать Python-часть мода


getModsStatus

Данный метод возвращает список модов и их статус.

Возвращаемое значение

Словарь (dict) следующего вида:


{

 'modName': isLoaded #  

}

 

 

 

 

  • Плюс 2

Рассказать о публикации


Ссылка на публикацию
Поделиться на других сайтах
10 808
[WG] MedvedevTD
6 365 публикаций
5 932 боя

 

PythonAPI - Utils

Доступные методы:

  • utils
  • utils.getGameVersion()
  • utils.getModDir()
  • utils.stat(path)
  • utils.walk(top, topdown, followlinks)
  • utils.isFile(path)
  • utils.isDir(path)
  • utils.isPathExists(path)
  • utils.timeNowUTC()
  • utils.timeNow()
  • utils.jsonEncode(obj, skipkeys, ensure_ascii, check_circular, allow_nan, indent, separators, encoding, default, sort_keys)
  • utils.jsonDecode(s, encoding, parse_float, parse_int, parse_constant) 


getGameVersion

Данная функция возвращает версию игры

Возвращаемое значение: версия игры, tuple(0, 5, 15, 123456)


getModDir

Данная функция возвращает абсолютный путь до папки с текущим модом.

Возвращаемое значение: абсолютный путь до папки с текущим модом


stat

Документация по данной функции доступна здесь: https://docs.python....os.html#os.stat


walk

Документация по данной функции доступна здесь: https://docs.python....os.html#os.walk


isFile

Документация по данной функции доступна здесь: https://docs.python....#os.path.isfile


isDir

Документация по данной функции доступна здесь: https://docs.python....l#os.path.isdir


isPathExists

Документация по данной функции доступна здесь: https://docs.python....#os.path.exists


timeNowUTC

Документация по данной функции доступна здесь: https://docs.python....datetime.utcnow


timeNow

Документация по данной функции доступна здесь: https://docs.python....me.datetime.now


jsonEncode

Документация по данной функции доступна здесь: https://docs.python....html#json.dumps


jsonDecode

Документация по данной функции доступна здесь: https://docs.python....html#json.loads

 

Рассказать о публикации


Ссылка на публикацию
Поделиться на других сайтах
10 808
[WG] MedvedevTD
6 365 публикаций
5 932 боя

 

PythonAPI - Web

Доступные методы:

  • web web.getAllowedUrls()
  • web.addAllowedUrl(encodedUrl)
  • web.openUrl(url)
  • web.urlEncode(query, doseq=0)
  • web.urlQuote(s, safe='/') 


getAllowedUrls

Данная функция возвращает list, список разрешенных к использованию URL.

Возвращаемое значение: list, список разрешенных к использованию URL


addAllowedUrl

Данная функция добавляет специально закодированный URL в список разрешенных URL'ов. Запросить специально подготовленный URL можно у MedvedevTD обратившись к нему в ЛС на официальном форуме игры.

Входные параметры:

  • encodedUrl - специально закодированный URL


openUrl

Документация по данной функции доступна здесь: https://docs.python....urllib2.urlopen


urlEncode

Документация по данной функции доступна здесь: https://docs.python....rllib.urlencode


urlQuote

Документация по данной функции доступна здесь: https://docs.python....ml#urllib.quote       

 

Рассказать о публикации


Ссылка на публикацию
Поделиться на других сайтах
10 808
[WG] MedvedevTD
6 365 публикаций
5 932 боя

 

PythonAPI - CustomPorts

Доступные методы:

  • customPorts.addCustomPort(portName, portDisplayName = DEFAULT_NAME, bargePos = None)
  • customPorts.removeCustomPort(portName)


addCustomPort

Данный метод добавляет в меню выбора порта новый порт.

 

Параметры функции:

  • portName - имя, идентификатор порта, должен совпадать с именем space'a и png-иконки порта
  • portDisplayName = 'Персональный' - отображаемое имя порта
  • bargePos = False - настройка отображения баржи с коробочками. tuple( tuple(bargeX, bargeY, bargeZ), yaw, tuple(waypointX, waypointY, waypointZ) )


removeCustomPort

Данный метод удаляет из меню выбора порта новый порт.

Параметры функции:

  • portName - имя, идентификатор загруженного порта

 

Изменено пользователем MedvedevTD
  • Плюс 2

Рассказать о публикации


Ссылка на публикацию
Поделиться на других сайтах
Гость
Эта тема закрыта для публикации новых ответов.

  • Сейчас на странице   0 пользователей

    Эту страницу никто не просматривает.

×