Jump to content
Korean Random

Recommended Posts

del

спс тому оленю! за минусы

Edited by angelsoft
  • Upvote 20
  • Downvote 4

Share this post


Link to post

Short link
Share on other sites

Улучшенный таймер сведения орудия, для прицелов WoT 0.9.6.

 

источник

 

Автор: ?

 

 

Обновлено: 16.02.2015 23:05

 

attachicon.gifpp (1).jpgattachicon.gifpp (2).jpg

Главная особенность таймера сведения орудия - отображение информации в любом,используемом вами,прицеле.Выводиться информация о времени сведения,полете с наряда и разбросе.

В файле конфигурации можете настроить цвет надписей и положение на экране.

Установка:

папку scripts  в res_mods/версия клиента.

 

attachicon.gifextra_aiminfo-timer_svedeniya.zip

 

 

 

modpack.gif

мод супер!только как уменьшить шрифт ?чтоб был как на картинке по размеру как слово ready?

Share this post


Link to post

Short link
Share on other sites

мод супер!только как уменьшить шрифт ?чтоб был как на картинке по размеру как слово ready?

обновил шапку, тему

Edited by angelsoft

Share this post


Link to post

Short link
Share on other sites

обновил шапку, тему

это я уже видела!ширина высота выравнивание по центру всё делала но не уменьшается шрифт

Share this post


Link to post

Short link
Share on other sites

это я уже видела!ширина высота выравнивание по центру всё делала но не уменьшается шрифт

 

default_medium.font

default_smaller.font

default_small.font

hpmp_panel.font

system_large.font

system_medium.font

system_small.font

system_tiny.font

verdana_medium.font

verdana_small.font

Share this post


Link to post

Short link
Share on other sites

кто с питонов на ты где код кривой



from debug_utils import *
from PlayerEvents import g_playerEvents
from constants import ARENA_PERIOD
from gui.WindowsManager import g_windowsManager
from AvatarInputHandler.aims import Aim
import AvatarInputHandler.aims
import BigWorld
import ResMgr
import json
import os
import math
import Math
import GUI
from gui import g_guiResetters
oldupdateMarkerPos = Aim.updateMarkerPos
config = None
infoArea = None
playerVehicleID = None
aimTimeRemain = None
aimTimeAll = None
aimFactorNow = None
flyTime = None
startFactor = None
startTime = None
deviation = None
aimTimeRemaintest = None

def newupdateMarkerPos(self, pos, relaxTime):
    global deviation
    global startFactor
    global flyTime
    global aimTimeRemain
    global aimFactorNow
    global infoArea
    global startTime
    global playerVehicleID
    global aimTimeAll
    global config
    oldupdateMarkerPos(self, pos, relaxTime)
    player = BigWorld.player()
    if config is None:
        return
    else:
        descr = player.vehicleTypeDescriptor
        if playerVehicleID is None:
            arena = player.arena
            playerVehicleID = player.playerVehicleID
            arena.onVehicleKilled += myOnVehicleKilled
            try:
                infoArea = TextLabel(config.get('TextArea_Style', {}))
            except:
                LOG_CURRENT_EXCEPTION()

        aimingStartTime, aimingStartFactor, multFactor, gunShotDispersionFactorsTurretRotation, chassisShotDispersionFactorsMovement, chassisShotDispersionFactorsRotation, aimingTime = player._PlayerAvatar__aimingInfo
        currTime = BigWorld.time()
        startFactor = aimingStartFactor
        startTime = aimingStartTime
        if currTime - aimingStartTime < 0.01 and startFactor < multFactor + 0.2:
            aimFactorNow = descr.gun['shotDispersionAngle'] * aimingStartFactor
            aimTimeAll = 0
            aimTimeRemain = 0
        else:
            aimFactorNow = descr.gun['shotDispersionAngle'] * aimingStartFactor * math.exp((aimingStartTime - currTime) / aimingTime)
            finishtime = math.log(aimingStartFactor / multFactor) * aimingTime + aimingStartTime
            aimTimeAll = math.log(aimingStartFactor / multFactor) * aimingTime
            aimTimeRemain = finishtime - currTime
        deviation = aimFactorNow * getAimDistance()
        flyTime = getAimDistance() / descr.shot['speed']
        infoArea.setText(getFormatText())
        return
        return


Aim.updateMarkerPos = newupdateMarkerPos

def getFormatText():
    format = config.get('format', '')
    if format == '':
        return None
    else:
        format = str(round(aimTimeRemain, 1)).join(format.split('{{aimTimeRemain}}'))
        format = str(round(aimTimeAll, 1)).join(format.split('{{aimTimeAll}}'))
        format = str(round(aimFactorNow * 100, 2)).join(format.split('{{aimFactorNow}}'))
        format = str(round(deviation, 1)).join(format.split('{{deviation}}'))
        format = str(round(flyTime, 1)).join(format.split('{{flyTime}}'))
        return format
        return None


def MYLOGLIVE(message):
    from messenger import MessengerEntry
    MessengerEntry.g_instance.gui.addClientMessage('<font color="#FF0000">' + message + '</font>')
    LOG_NOTE(message)


def MYLOG(message, *args):
    LOG_NOTE(message, *args)


def cleanUp():
    global playerVehicleID
    global infoArea
    playerVehicleID = None
    player = BigWorld.player()
    arena = player.arena
    player.arena.onVehicleKilled -= myOnVehicleKilled
    if infoArea is not None:
        GUI.delRoot(infoArea.window)
        infoArea = None
    return


def myOnVehicleKilled(vehicleID, *args):
    global playerVehicleID
    global infoArea
    if vehicleID == playerVehicleID:
        playerVehicleID = None
        GUI.delRoot(infoArea.window)
        infoArea = None
        cleanUp()
    return


def getAimDistance():
    x, y, z = BigWorld.player().gunRotator.markerInfo[0]
    v = BigWorld.player().getOwnVehiclePosition() - Math.Vector3(x, y, z)
    return int(v.length)


class TextLabel(object):
    label = None
    shadow = None
    window = None
    color = '\\cFFFFFFFF;'
    visible = True
    x = 0
    y = 0
    hcentered = False
    vcentered = False
    mainCaliberValue = 0

    def __init__(self, config):
        if config.get('color', False):
            self.color = '\\c' + config.get('color')[1:] + 'FF;'
        self.visible = config.get('visible', True)
        self.x = config.get('x', 100)
        self.y = config.get('y', 100)
        self.hcentered = config.get('hcentered', False)
        self.vcentered = config.get('vcentered', False)
        background = os.path.join('scripts', 'client', 'mods', config.get('background')) if config.get('background', '') else ''
        self.window = GUI.Window(background)
        self.window.materialFX = 'BLEND'
        self.window.verticalAnchor = 'TOP'
        self.window.horizontalAnchor = 'LEFT'
        self.window.horizontalPositionMode = 'PIXEL'
        self.window.verticalPositionMode = 'PIXEL'
        self.window.heightMode = 'PIXEL'
        self.window.widthMode = 'PIXEL'
        self.window.width = config.get('width', 186)
        self.window.height = config.get('height', 32)
        GUI.addRoot(self.window)
        self.shadow = GUI.Text('')
        font = config.get('font', 'default_medium.font')
        self.installItem(self.shadow, font)
        self.label = GUI.Text('')
        self.installItem(self.label, font)
        self.setText('')
        self.setVisible(self.visible)

    def installItem(self, item, font):
        item.font = font
        self.window.addChild(item)
        item.verticalAnchor = 'TOP'
        item.horizontalAnchor = 'CENTER'
        item.horizontalPositionMode = 'PIXEL'
        item.verticalPositionMode = 'PIXEL'
        item.position = (self.window.width / 2, 0, 1)
        item.colourFormatting = True
        item.multiline = True

    def setVisible(self, flag):
        flag = flag and self.visible
        self.window.visible = flag
        self.shadow.visible = flag
        self.label.visible = flag

    def setText(self, text, color = None):
        if text is None:
            return
        else:
            shadowText = text.replace('\\c60FF00FF;', '')
            self.shadow.text = '\\c000000FF;' + shadowText
            color = '\\c' + color + 'FF;' if color else self.color
            self.label.text = color + text
            return
            return


def onChangeScreenResolution():
    sr = GUI.screenResolution()
    for panel in [infoArea]:
        if panel is None:
            continue
        x = sr[0] / 2 - panel.window.width / 2 + panel.x if panel.hcentered else panel.x
        y = sr[1] / 2 - panel.window.height / 2 + panel.y if panel.vcentered else panel.y
        panel.window.position = (x, y, 1)

    return


def onAfterBattle(period = ARENA_PERIOD.BATTLE, *args):
    if period is ARENA_PERIOD.AFTERBATTLE:
        cleanUp()


res = ResMgr.openSection('../paths.xml')
sb = res['Paths']
vals = sb.values()[0:2]
for vl in vals:
    path = vl.asString + '/scripts/client/mods/'
    if os.path.isdir(path):
        conf_file = path + 'extra_aiminfo.json'
        if os.path.isfile(conf_file):
            with open(conf_file) as data_file:
                try:
                    config = json.load(data_file)
                except:
                    LOG_ERROR('Error while loading extra_aiminfo.json: %s' % sys.exc_info()[0])
                finally:
                    break

g_playerEvents.onArenaPeriodChange += onAfterBattle
g_guiResetters.add(onChangeScreenResolution)

  Edited by angelsoft

Share this post


Link to post

Short link
Share on other sites

ток у меня координаты не меняются? 

Я тоже не могу его никуда подвинуть)) не хочет))

Share this post


Link to post

Short link
Share on other sites

меняю координаты надписей, сохраняю. эти три строчки положение не изменили.
зато удалось поменять цвет и надписи сохранить с маленькой буквы.

 

передвинуть можно только по горизонтали,править нужно "width": 600, а не как в большенстве конфигов координаты по оси "X" и "Y"!большее число сдвигает в право,меньшее соответственно в лево!а вот по вертикали никак не хочет двигаться!

Share this post


Link to post

Short link
Share on other sites

меняю координаты надписей, сохраняю. эти три строчки положение не изменили.

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

 

передвинуть можно только по горизонтали,править нужно "width": 600, а не как в большенстве конфигов координаты по оси "X" и "Y"!большее число сдвигает в право,меньшее соответственно в лево!а вот по вертикали никак не хочет двигаться!

А "hcentered": true,

        "vcentered": true, не пробовал?

Да,еще бы кто то прикрутил отключалку по видам прицела(аркада,срайпер,арта),жаль в питоне ноль:(

Edited by Slava7572

Share this post


Link to post

Short link
Share on other sites

А "hcentered": true,

        "vcentered": true, не пробовал?

я отключал их и не чего ? нужен тот кто в питоне силен выше код мода

Share this post


Link to post

Short link
Share on other sites

Как оставить видимым только на арте ?

не как, нужно найти автора данного чуда или попросить  всем известного P0LIR0ID pmod пусть добавит такой функционал

Share this post


Link to post

Short link
Share on other sites

Думаю у этого мода есть будущие, только просто необходим конфиг.

  • Upvote 1

Share this post


Link to post

Short link
Share on other sites

Думаю у этого мода есть будущие, только просто необходим конфиг.

Разберусь с артоснайпингом, м.б. напишу что-то подобное модулем для AASMX.
  • Upvote 3

Share this post


Link to post

Short link
Share on other sites

Интересный мод, но что-то конфиг не особо работает. Вправо-влево не смещает. Надо добавить тип прицела. В аркадном он не особо нужен. А в снайперском и для арты вполне сгодится.

Share this post


Link to post

Short link
Share on other sites

Обновлено \ Добавлено \ Исправлено:

Обновлено 02.03.2015

Share this post


Link to post

Short link
Share on other sites

Обновлено \ Добавлено \ Исправлено:

Обновлено 02.03.2015

В шапке мод без "StrategicOnly",или можно просто в конфиг добавить?Хотя я скачал на wotsite:)

Share this post


Link to post

Short link
Share on other sites

В шапке мод без "StrategicOnly",или можно просто в конфиг добавить?Хотя я скачал на wotsite:)

 

1 extra_aiminfo2 исправлена и работает, нету StrategicOnly

2 улучшенная и не всегда работает сведения, в ней есть StrategicOnly, но нету background

Share this post


Link to post

Short link
Share on other sites

1 extra_aiminfo2 исправлена и работает, нету StrategicOnly

2 улучшенная и не всегда работает сведения, в ней есть StrategicOnly, но нету background

Ясн,мне подложка и не нужна в общем то.Правда и в снайпере оставил бы эту фишку,жаль что нет по типу прицела настройки :sob0:

Share this post


Link to post

Short link
Share on other sites
Guest
This topic is now closed to further replies.

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...