-
Публикации
6 959 -
Зарегистрирован
-
Посещение
-
Бои
8249
Тип публикации
Профили
Форум
Календарь
Все публикации пользователя MedvedevTD
-
Если кто то в команде не может, значит это шанс набить больше дамажки (за себя и за того парня), фраги, кракены медалей вагон!!! Красота жеж
-
Когда уже этот бардак закончиться - А судьи кто?
MedvedevTD ответил в тему anonym_LYj6teQQZl95 в Флудилка
Я проверил ваши логи. Маты и оскорбления... Бан чата был выдан вам абсолютно справедливо. В ЛС я вышлю вам логи. Далее тему закрываю, для того чтобы уберечь вас от РО за клевету.- 41 ответ
-
- 13
-
-
Удаление японских эсминцев из игры в новом апдейте
MedvedevTD ответил в тему anonym_ooFtdVcgXFSO в Обсуждение Мира Кораблей
В заявлении ТС сплошные эмоции, все заряды молний мимо Японцы как были эсминцами со своим характером, так ими в общем то и остались. Более того, альтернативная ветка японцев даст понять арт эсиинцам, что у них появились достойные конкуренты! Ну а любители покидать торпеды из инвиза, продолжат свои диверсионные покатушки. Удачи в бою -
Мне кажется это в раздел юмора надо
-
вы всерьёз считает что нерф или ап параметров того или иного корабля, зависит от топика на форуме? В таком случае, вчера на Марсе нашли новый вид кактуса
-
Присоединяюсь к приветам!Итого: Лисы, Ёжики и Медвед - желают удачи Куницам!
-
Куда дели сравнение кораблей перед боем?
MedvedevTD ответил в тему anonym_IDzQk3KodtKy в Обсуждение Мира Кораблей
Закрыто ППА -
PythonAPI - Web Методы "Web" позволяют работать с web ресурсами. Доступные методы: web web.getAllowedUrls() web.addAllowedUrl(encodedUrl) web.openUrl(url) web.urlEncode(query, doseq=0) web.urlQuote(s, safe='/') web.openUrlAsync(url, callback, data = None) web.getAllowedUrls() Данная функция возвращает list, список разрешенных к использованию URL-ов. web.addAllowedUrl(encodedUrl) Данная функция добавляет специально закодированный URL в список разрешенных URL'ов. Запросить специально подготовленный URL можно у @MatroseFuchs обратившись к нему в ЛС на официальном форуме игры. Входной аргумент: encodedUrl - специально закодированный URL. web.openUrl(url) Метод аналогичен "urllib2.urlopen(url, data=None)", позволяет открыть URL из списка разрешенных URL-ов. Входной аргумент - разрешенный URL. Полная документация по данной функции доступна на официальном сайте Python здесь: https://docs.python....urllib2.urlopen web.urlEncode(query) Метод аналогичен "urllib.urlencode(query, doseq=0)", используется для кодирования строки в вид, удовлетворяющий правилам данных в запросах. Полная документация по данной функции доступна на официальном сайте Python здесь: https://docs.python....rllib.urlencode web.urlQuote(s, safe='/') Метод анологичен "urllib.quote(string, safe)", заменяет все специальные симолы последовательностями "%nn". Цифры, английские буквы и символы подчеркивания, точки и дефис не кодируются. Пробелы преобразуются в последовательность "%20". Входной аргумент - "s" строка в которой производятся замены, "safe" - символы, которые преобразовывать нельзя. Полная документация по данной функции доступна на официальном сайте Python здесь: https://docs.python....ml#urllib.quote web.openUrlAsync(url, callback, data=None) Метод аналогичен "threading.Thread(url, callback, data = None).start()", используется для запуска нескольких процессов одновременно .
-
PythonAPI - Utils Методы "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) utils.logInfo(message='', *args, **kwargs) utils.getGameVersion() Данная функция возвращает версию игры. Возвращаемое значение: версия игры, строка: 0, 5, 15, 123456 utils.getModDir() Данная функция возвращает абсолютный путь до папки с текущим модом. utils.stat(path) Метод возвращает объект, атрибуты которого соответствуют атрибутам "os.stat(path)". Входной аргумент - "path" путь к файлу. Полная документация по данной функции доступна на официальном сайте Python здесь: https://docs.python....os.html#os.stat utils.walk(top, topdown=True, followlinks=False) Метод аналогичен "os.walk(top, topdown=True, onerror=None, followlinks=False)", где: - "top" - директроия в папке с модом (если такая существует), в которой метод будет делать проход (прим. "C:\Games\Korabli\res_mods\0.7.9.1\PnFMods\TestMod\testDir"), - "topdown" - способ прохождения "True" сверху вниз (базовое значение), "False" - снизу вверх генерирует имена файлов, находящиеся в дереве каталогов, проходя по дереву сверху вниз или наоборот; для каждого каталога в дереве, закрепляется в верхней часте каталога включая сам верх и возвращает следующие параметры: - "dirpath" - string, путь к каталогу - "dirnames" - list, список имен подкаталогов в этом каталоге "dirpath" - "filenames" - list, список имен файлов в этом каталоге Полная документация по данной функции доступна на официальном сайте Python здесь: https://docs.python....os.html#os.walk utils.isFile(path) Метод идентичен "os.path.isfile(path)", возвращает "True", если файл по указанному пути "path" существует. Входной аргумент - "path" путь к файлу. Полная документация по данной функции доступна на официальном сайте Python здесь: https://docs.python....#os.path.isfile utils.isDir(path) Метод идентичен "os.path.isDir(path)", возвращает "True", если каталог по указанному пути "path" существует. Входной аргумент - "path" путь к каталогу. Полная документация по данной функции доступна на официальном сайте Python здесь: https://docs.python....l#os.path.isdir utils.isPathExists(path) Метод идентичен "os.path.exists(path)", возвращает "True", если существует указанный путь "path". Входной аргумент - "path" путь к файлу/директории. Полная документация по данной функции доступна на официальном сайте Python здесь: https://docs.python....#os.path.exists utils.timeNowUTC() Метод идентичен "datetime.datetime.utcnow()", возвращает текущее универсальное время и дату UTC. Полная документация по данной функции доступна на официальном сайте Python здесь: https://docs.python....datetime.utcnow utils.timeNow() Метод идентичен "datetime.datetime.now()", возвращает текущее время и дату. Полная документация по данной функции доступна на официальном сайте Python здесь: https://docs.python....me.datetime.now utils.jsonEncode(obj) Метод аналогичен "json.dumps(obj, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, cls=None, indent=None, separators=None, encoding="utf-8", default=None, sort_keys=False)" с соответствующими базовыми значениями. Метод сериализует объект "obj" в строку формата "JSON". Полная документация по данной функции доступна на официальном сайте Python здесь: https://docs.python....html#json.dumps utils.jsonDncode(s) Метод аналогичен "json.loads(s)", десериализует строку формата "JSON" в объект Python. Полная документация по данной функции доступна на официальном сайте Python здесь: https://docs.python....html#json.loads utils.logInfo(message='', *args, **kwargs) Метод выводит ниформацию в файл "python.log", где: - "message" - сообщение в лог файл - " *args" - позиционные аргументы - " **kwargs" - именнованные аргументы
-
PythonAPI - Flash Методы "Flash" предназначены для работы с Flash-частью мода (Main.swf файлом) Доступные методы: 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() flash.setUbMarkup( xml_url, swf_url, rootElement ) flash.setUbData(data) flash.call(name, args) Данный метод вызывает коллбек, который позволяет вызвать функцию в Flash файле мода. Принимает аргументы: name - имя, ключ коллбека, на который должна быть подписана функция во Flash части args - list содержащий передаваемые параметры (или пустой, без параметров), который будет передан вызываемой функции для дальнейшей обработки falsh.addExternalCallback(name, func) Данный метод добавляет коллбэк, который подписывает и вызывает функцию обработчик "func" в Python части мода, эта функция принимает вызов из Flash части мода аналогично предыдущему методу. Входные аргументы: name - имя, ключ коллбека func - функция-обработчик коллбека flash.removeExternalCallback(name, func) Данный метод удаляет коллбэк с идентификатором "name" для функции-обработчика "func". Входные параметры функции: name - имя, ключ коллбека func - функция-обработчик коллбека Примечание: При вызове данной функции без параметров будет полностью очищен список функций-обработчиков для текущего мода. flash.loadFlashMod(modName) Данный метод загружает Flash-часть мода, если она не была загружена ранее, либо была выгружена. Входной аргумент "modName" - название мода (название папки с модом). flash.loadPyMod(modName) Данный метод загружает Python-часть мода, если она не была загружена ранее, либо была выгружена. Данный метод так же загрузит Flash-часть мода. Входной аргумент modName - название мода. flash.reloadMod(modName, needToReloadPy) Данный метод перезагружает мод. Входные аргументы: modName - имя, идентификатор мода needToReloadPy - требуется ли перезагружать Python-часть мода (False - предустановленное базовое значение аргумента) flash.unloadMod(modName, needToUnloadPy) Данный метод выгружает (отключает) мод. Входные аргументы функции: modName - имя, название мода needToUnloadPy - требуется ли выгрузить Python-часть мода (False - базовое значение аргумента) flash.getModsStatus() Данный метод возвращает dict, в котором ключи - названия модов, значения - их статусы загрузки (True/False) flash.setUbMarkup(xml_url, swf_url, rootElement) Данный метод загружает пользовательский *.xml файл с разметкой unbound. Входные аргументы метода: xml_url <type 'str'> - пуьт к *.xml файлу с разметкой swf_url <type 'str'> - пуьт к *.swf файлу с скомпилированными выражениями rootElement <type 'str'> - название root элемента для загрузки flash.detUbData(data) Данный метод передает данные в скоуп элемента. Входные аргументы метода: data <type 'dict'> - словарь, в котором ключ - название переменной, значение - значение переменной Для получения данных в scoup необходимо объявить контроллер "lesta.api.UbModController" в *.xml файле с разметкой
-
как раз разбираюсь - навожу порядок. подождите немного, если вас не затруднит.
-
PythonAPI - Events Методы "events" позволяют работать с различными событиями в клиенте игры (открытие окна, нажатие на кнопку меню, нажатие кнопки на клавиатуре, вход в бой и др.). Доступные методы: events events.onFlashReady(func) events.onSFMEvent(func) events.onReceiveShellInfo(func) events.onBattleStart(func) events.onBattleEnd(func) events.onBattleQuit(func) events.onKeyEvent(func) events.onMouseEvent(func) events.onGotRibbon(func) events.onAchievementEarned(func) events.onBattleStatsReceived(func) Эвенты вызываются извне и передают различные параметры в функции, которые на данные эвенты подписаны. Пример подписи на эвент: events.eventName(myEventHandlerFunc) events.onFlashReady(func) Данный эвент срабатывает сразу после загрузки и инициализации Flash-части мода "Main.swf" (при её наличии). Входной параметр: func - функция-обработчик события (def func(modName):), получает в качестве входного аргумента modName - имя мода, Flash-часть которого была загружена. events.onSFMEvent(func) Данный метод позволяет работать с различными событиями SFM-машины, такими как: показ и скрытие различных окон, нажатия на некоторые кнопки, нажатие кнопки на клавиатуре или мышке, вход в бой и т.д и т.п. Входной параметр "func" - функция-обработчик событий, которая принимает от SFM-машины два параметра: eventName - название события, eventData - dict с параметрами события. events.onReceiveShellInfo(func) Данный эвент срабатывает при нанесении/получении урона противнику/от противника снарядами/торпедами. Функция-обработчик события "func(*args, **kwargs)", обрабатывающая событие, получает следующие параметры: victimID - идентификатор shipID атакованного shooterID - идентификатор shipID атакующего ammoId - тип снаряда matID - тип материала, в который было попадание shotID - идентификатор ID выстрела booleans - тип повреждений после попадания (это значение имеет битовую маску): урон получил наш корабль пробитие брони повреждение под водой корабль уничтожен снаряд прошел сквозь корабль рикошет от брони урон от сплэша орудия главного калибра уничтожены торпедные установки уничтожены ПМК уничтожены damage - количество нанесенного урона shotPosition - tuple с координатами точки попадания yaw - yaw снаряда, угол попадания снаряда hlinfo - tuple с информацией о выстреле (list с информацией о повреждениях, ID залпового выстрела или № залпа) events.onBattleStart(func) Данный эвент срабатывает при начале боя, после окончания отсчета таймера перед боем. events.onBattleEnd(func) Данный эвент срабатывает при окончании боя. events.onBattleQuit(func) Данный эвент срабатывает при выходе из боя и/или выходе из игры. Принимает в качестве аргумента - "func" функцию-обработчик, функция получает при обработке события один аргумент - "True". events.onKeyEvent(func) Данный метод срабатывает при нажатии кнопок на клавиатуре или мышке после входа в игру (загрузке порта). Принимает в качестве аргумента - "func" функцию-обработчик события, функция получает объект события с различной информацией о нажатии на клавиатуре/мышке. Прим.: def func(event), где "event" - объект события, имеет следующие свойства: - event.key - код нажатой клавиши на клавиатуре (import Keys - дает доступ к константам клавиатуры: Keys.KEY_F1 - клавиша "F1", Keys.KEY_Q - клавиша Q и т.д.) - event.isKeyDown() - функция проверяет нажата ли какая нибудь клавиша и возвращает "True" или "False" - event.isKeyUp() - функция проверяет была ли отжата клавиша после нажатия и возвращает "True" или "False" - event.isShiftDown() - проверяет нажат ли "Shift", возвращает "True" или "False" - event.isCtrlDown() - проверяет нажат ли "Ctrl", возвращает "True" или "False" - event.isAltDown() - проверяет нажат ли "Alt", возвращает "True" или "False" events.onMouseEvent(func) Данный метод обрабатывает перемещение курсора мышки. Принимает в качестве аргумента - "func" функцию-обработчик события, функция получает объект события "event" с различной информацией для обработки. "event" - объект события, имеет следующие свойства: - event.dx - delta изменение хоординаты по оси "X" - event.dy - delta изменение хоординаты по оси "Y" - event.dz - значение всегда 0 events.onGotRibbon(func) Данный эвент срабатывает при получении боевой ленты (Ribbon). Принимает в качестве аргумента - "func" функцию-обработчик, входные параметры функции: *args, **kwargs. Аргумент "args" получает значение константы боевой ленты. events.onAchievementEarned(func) Данный эвент срабатывает при получении достижения (ачивки) Принимает в качестве аргумента - "func" функцию обработчик, входные параметры функции: *args, **kwargs. events.onBattleStatsRecived(func) Данный эвент срабатывает при получении пост боевой информации Принимает в качестве аргумента - "func" функцию обработчик, входные параметры функции: arg.
-
PythonAPI - CustomPorts Методы "customPorts" позволяют добавить собственный порт. Доступные методы: customPorts customPorts.addCustomPort(portName, portDisplayName = DEFAULT_NAME, bargePos = None, shipPosition = None) customPorts.removeCustomPort(portName) customPorts.addCustomPort(portName, portDisplayName = DEFAULT_NAME, bargePos = None, shipPosition = None) Данный метод добавляет в меню выбора порта новый порт. Параметры функции: portName - имя, идентификатор порта, должен совпадать с именем space'a и png-иконки порта portDisplayName = 'Персональный' - отображаемое имя порта bargePos - расположение баржи в порту shipPosition - расположение коробля в порту customPorts.removeCustomPort(portName) Данный метод удаляет из меню выбора порта новый порт. Входной аргумент: portName - имя, идентификатор загруженного порта.
-
PythonAPI - Callbacks Методы "callbacks" предназначены для многократного вызова функций. Доступные методы: callbacks callbacks.perTick(func) callbacks.callback(dt, func, *args, **kw) callbacks.cancel(handle) callbacks.perTick(func) Данная функция вызывает пользовательскую функцию, переданную в качестве параметра каждый тик игры (несколько раз в секунду!)*. Входной параметр: пользовательская функция "func", которая будет вызываться этим методом каждый тик игры. Возвращаемое значение: handle - уникальный идентификатор метода, используемый для остановки вызова функции по тику. *Предупреждение!!! Т.к. данный метод вызывает функцию несколько раз в секунду, то это может приводить к снижению производительности клиента игры. Будьте внимательны при использовании данного метода. callbacks.callback(delaytime, func, *args, **kwargs) Данная функция так же принимает в качестве параметра пользовательскую функцию "func", которая будет вызываться каждый раз (повторно, снова и снова) с установленной задержкой (интервалом в секундах). Входные параметры: delaytime - задержка в секундах, через которое вызовется функция func func - функция, которая вызовется *args - позиционные аргументы, которые передадутся в функцию func **kwargs - именованные аргументы, которые передадутся в функцию func Возвращаемое значение: handle - уникальный идентификатор, используемый для остановки вызова функции по тику. callbacks.cancel(handle) Данная функция завершает работу метода, ранее вызывавшего функцию каждый тик или с установленным интервалом. Входной аргумент - уникальный идентификатор метода handle, возвращаемый функциями perTick и callback.
-
PythonAPI - Battle Работа с методами "battle" возможна только после входа в бой (срабатывания события, см. методы "events"), в противном случае методы ничего не возвращают, т.к. информация которую они обрабатывают есть только в бою. Для обработки событий необходимо использовать "events.onSFMEvent" (см. описание ниже в методах "events"), возвращаемые параметры этого события: "eventName" - название события, "eventData" - dict с параметрами события. Доступные методы: battle getPlayersInfo() getPlayerInfo(playerId) getSelfPlayerInfo() getPlayerInfoByName(name) getPlayerShipInfo(playerId) getPlayerByVehicleId(shipID) getAmmoParams(ammoID) isVehicleBurning(shipID) isVehicleFlooding(shipID) isBattleStarted() battle.getPlayersInfo() Данная функция возвращает dict, где ключами являются "playerID", а значениями - dict "PlayerInfo" с различной информацией об игроке. Для просмотра результата можно вывести через "print" в "Korabli\profile\python.log" файл, либо записать в отдельный файл "open('filename', 'w')". battle.getPlayerInfo(playerID) Данная функция возвращает объект с информацией об игроке. Входной параметр: playerId - идентификатор игрока. Возвращаемое значение: PlayerInfo. battle.getSelfPlayerInfo() Данная функция возвращает объект с информацией о нашем игроке. Возвращаемое значение: PlayerInfo. battle.getPlayerInfoByName(name) Данная функция возвращает объект с информацией об игроке. Входной параметр: name - никнэйм игрока. Возвращаемое значение: PlayerInfo. battle.getPlayerShipInfo(playerID) Данная функция возвращает объект с информацией о корабле игрока. Входной параметр: playerId - идентификатор игрока. Возвращаемое значение: ShipInfo. battle.getPlayerByVehicleId(shipID) Данная функция возвращает объект с информацией об игроке. Входной параметр: shipId - идентификатор корабля. Возвращаемое значение: PlayerInfo. battle.getAmmoParams(ammoID) Данная функция возвращает объект с информацией о снаряде. Входной параметр: ammoId - идентификатор снаряда, этот параметр можно получить в функции-обработчике события "events.onReceiveShellInfo(func)" (см. описание в методах "events"). battle.isVehicleBurning(shipID) Данная функция возвращает True если корабль горит, или False если нет, например можно использовать в функции-обработчике события "events.onReceiveShellInfo(func)" (см. описание в методах "events"). Входной параметр - ID идентификатор корабля. battle.isVehicleFlooding(shipID) Данная функция возвращает True если попадание снаряда в корабль вызвало затопление, или False если нет, рекомендация к использованию аналогично "isVehicleBurning". Входной параметр - ID идентификатор корабля. battle.isBattleStarted() Данная функция возвращает True если бой начался.
-
Чуть позже, добавлю и описание классов.
-
Запрет на тестирование кораблей в случайных\ранговых боях.
MedvedevTD ответил в тему yook в Обсуждение Мира Кораблей
Уважаемый yook. Ваше заявление рассмотрено и отклонено. Ваш топик, не соответствует истине - поэтому он будет закрыт, а вам выдано предупреждение, за распространение заведомо ложной информации.- 17 ответов
-
- 13
-
-
Ранги в Ранговых боях. Вопрос к разработчикам.."А вдруг..?!"
MedvedevTD ответил в тему KB005 в Флудилка
Корабли 7 уровня, в этом ранговом сезоне не участвуют. Есть регламент для рангового сезона. Подробнее о ранговом сезоне, вы можете прочитать здесь: http://worldofwarships.ru/ru/news/big_news/rank_battles_season5/ Спасибо! -
Супертест. Когда обработают заявки?
MedvedevTD ответил в тему NeNemezNien в Обсуждение Мира Кораблей
Даже добавить нечего -
ну интересно жеж
-
где скачать арп, а то задачу выполнил а корабль в порту не наблюдаю
MedvedevTD ответил в тему mixailmak в Обсуждение Мира Кораблей
ответ дан. Закрываем -
А Лисичка то, хороша
-
Кому выдают корабли на тест
MedvedevTD ответил в тему anonym_ryNPZ33zjcVs в Обсуждение Мира Кораблей
Давайте я поставлю точку на данном обсуждении, пока тут не повесили на супертестеров все грехи планеты 1. Тестовые корабли, начисляются не только супертестерам, но и разработчикам и другим специальным группам (когда это требуется). 2. Как часто люди на тестовой технике находятся в режиме афк? Если у вас есть конкретные претензии по действиям или бездействиям игроков на тестовой технике, вы всегда можете написать мне в ЛС. 3. Тестеры не боты! Люди. Точно вам говорю! 4. Случается всякое. Иногда у людей возникают проблемы технического характера и они не в состоянии вести бой, в который они зашли. Такие случаи крайне редкие, но очень заманчивые для любителей остреньких топиков И так. Тест кораблей на основном клиенте игры, не равно "супертестер". Поэтому предлагаю поставить точку на этой дискуссии, а те кто желает сам понять, что же такое супертест - добро пожаловать сюда: Все о супертесте