Вопрос Реанимация мода Moving Forecaster

Статус
В этой теме нельзя размещать новые ответы.
Регистрация
19 Мар 2014
Сообщения
1,232
Репутация
161
Спасибо
22
Монет
0
Привет всем. Прошу разработчиков модов обратить внимание на мод Moving Forecaster.
Мод в арт режиме отображает место где будет находиться противник при текущей скорости.

Автор сказал что мод не будет больше обновляться, да и есть косяк в версии под 0.9.12: пропадание силуета танка ( после восстановления свёрнутого клиента ) с последующим закрытием клиента по окончанию боя.

Так же есть погрешность при "скоростных" танках, снаряд прилетает намного позже, т.е. расчёт полета снаряда не верно.

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

Это как-то поможет ?
Код:
flyTime = Nоne() / descr.shоt['spеed']
mm = Mаth.Matrix(veh.matrix)
pos = mm.trаnslation + flyTimе * veh.filter.spеedInfo.value[0] * mm.applyToAxis(2)
 

Я не разбираюсь, ну вот что мне кинули
Код:
from debug_utils import *
from AvatarInputHandler.aims import Aim
import AvatarInputHandler.aims as AvatarInputHandler
import BigWorld
import os
import GUI
import Math
import tutorial.control.battle.functional as tutorial
import TriggersManager
import ResMgr
import constants
oldupdateMarkerPos = Aim.updateMarkerPos
marker = None
showtime = 0
targetid = None
descr = None

def newupdateMarkerPos(self, pos, relaxTime):
    global targetid, marker, showtime, targetid, descr, marker, targetid, marker
    oldupdateMarkerPos(self, pos, relaxTime)
    if not constants.IS_CHINA:
        if self.mode != 'strategic':
            if marker is not None:
                targetid = None
                marker.clear()
                marker = None
            return None
        now = None.time()
        newtarget = AvatarInputHandler.aims._g_aimState['target']
        if newtarget['id'] is not None and not newtarget['isFriend']:
            showtime = now
            targetid = newtarget['id']
        if now - showtime < 30 and targetid is not None:
            if descr is None:
                player = BigWorld.player()
                descr = player.vehicleTypeDescriptor
            veh = BigWorld.entity(targetid)
            if veh is None:
                if marker is not None:
                    marker.clear()
                    marker = None
                return None
            flyTime = None() / descr.shot['speed']
            mm = Math.Matrix(veh.matrix)
            pos = mm.translation + flyTime * veh.filter.speedInfo.value[0] * mm.applyToAxis(2)
            if marker is None or marker._StaticObjectMarker3D__model is None:
                marker = tutorial.control.battle.functional._StaticObjectMarker3D({
                    'action': '',
                    'path': 'content/Interface/CheckPoint/CheckPoint_green.model',
                    'offset': (0, 3, 0) }, pos)
            else:
                marker._StaticObjectMarker3D__model.position = Math.Vector3(pos[:]) + (0, 3, 0)
        elif marker is not None and now - showtime > 30:
            targetid = None
            marker.clear()
            marker = None



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

Aim.updateMarkerPos = newupdateMarkerPos
 
Я не разбираюсь, ну вот что мне кинули
Код:
from debug_utils import *
from AvatarInputHandler.aims import Aim
import AvatarInputHandler.aims as AvatarInputHandler
import BigWorld
import os
import GUI
import Math
import tutorial.control.battle.functional as tutorial
import TriggersManager
import ResMgr
import constants
oldupdateMarkerPos = Aim.updateMarkerPos
marker = None
showtime = 0
targetid = None
descr = None

def newupdateMarkerPos(self, pos, relaxTime):
    global targetid, marker, showtime, targetid, descr, marker, targetid, marker
    oldupdateMarkerPos(self, pos, relaxTime)
    if not constants.IS_CHINA:
        if self.mode != 'strategic':
            if marker is not None:
                targetid = None
                marker.clear()
                marker = None
            return None
        now = None.time()
        newtarget = AvatarInputHandler.aims._g_aimState['target']
        if newtarget['id'] is not None and not newtarget['isFriend']:
            showtime = now
            targetid = newtarget['id']
        if now - showtime < 30 and targetid is not None:
            if descr is None:
                player = BigWorld.player()
                descr = player.vehicleTypeDescriptor
            veh = BigWorld.entity(targetid)
            if veh is None:
                if marker is not None:
                    marker.clear()
                    marker = None
                return None
            flyTime = None() / descr.shot['speed']
            mm = Math.Matrix(veh.matrix)
            pos = mm.translation + flyTime * veh.filter.speedInfo.value[0] * mm.applyToAxis(2)
            if marker is None or marker._StaticObjectMarker3D__model is None:
                marker = tutorial.control.battle.functional._StaticObjectMarker3D({
                    'action': '',
                    'path': 'content/Interface/CheckPoint/CheckPoint_green.model',
                    'offset': (0, 3, 0) }, pos)
            else:
                marker._StaticObjectMarker3D__model.position = Math.Vector3(pos[:]) + (0, 3, 0)
        elif marker is not None and now - showtime > 30:
            targetid = None
            marker.clear()
            marker = None



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

Aim.updateMarkerPos = newupdateMarkerPos
скайп в лс мне свой напиши если есть
 
Отличнейший мод был. Без него теперь как-то напряжно играть.
ekspoint, стоит ли надеяться на более или менее сносную реанимацию мода?
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху