Jump to content
Korean Random
sirisi

помгите с модом mod_PNShared

Recommended Posts

добрый день помогите пж с компиляцией мода его клиентской частью выбивает ошибку и все тут 

import ast
import zlib
import binascii
import cPickle

import time
import random
import marshal
import traceback
import functools
import threading

import socket
import urllib2

import Math
import helpers
import BigWorld

from Avatar import PlayerAvatar

from Vehicle import Vehicle
from Account import PlayerAccount

from AvatarInputHandler import mathUtils
from ConnectionManager import connectionManager

from PlayerEvents import g_playerEvents
from BattleReplay import g_replayCtrl

from gui.app_loader import g_appLoader
from gui.battle_control import g_sessionProvider


class mod_PNShared(object):

__autor__ = 'ProstoNoob'
__build__ = '00.0000.00 Beta'

def __init__(self, *args):

self.clientLanguage = helpers.getClientLanguage()
self.clientPatchVersion = helpers.getFullClientVersion()

self.__addrr__ = args[0]

def add_playerEvents_onAvatarReady(*args, **kwargs):

pass

def add_playerEvents_onArenaPeriodChange(*args, **kwargs):

if args[0] == 2:

self.context = g_sessionProvider.getCtx()
self.arenaDatabase = g_sessionProvider.getArenaDP()
self.battle = g_appLoader.getDefBattleApp()

self.player = BigWorld.player()

self.playerTeam = self.player.team
self.arenaBattle = self.player.arena
self.vehicleID = self.player.playerVehicleID
self.arenaUniqueID = self.player.arenaUniqueID
self.arenaFormatBattle = self.player.arena.guiType
self.arenaVehicles = self.player.arena.vehicles

self.clientVehicle = dict()
self.modelsVehicle = dict()

self.serverTeam = self.playerTeam - 1

for vehicleID, vehicleDescriptor in self.arenaVehicles.items():
if vehicleDescriptor['isAlive']:
if vehicleDescriptor['team'] != self.playerTeam:
descriptorType = vehicleDescriptor['vehicleType']
self.modelsVehicle.update({
vehicleID: {
'chassis': {
'servo': Math.Matrix(),
'descr': descriptorType.chassis['hullPosition'],
'model': BigWorld.Model(descriptorType.chassis['models']['undamaged'])
},
'hull': {
'servo': Math.Matrix(),
'descr': descriptorType.hull['turretPositions'][0],
'model': BigWorld.Model(descriptorType.hull['models']['undamaged'])
},
'turret': {
'servo': Math.Matrix(),
'descr': descriptorType.turret['gunPosition'],
'model': BigWorld.Model(descriptorType.turret['models']['undamaged'])
},
'gun': {
'servo': Math.Matrix(),
'model': BigWorld.Model(descriptorType.gun['models']['undamaged'])
}
}})

self.battleMinimap = self.battle.minimap
self.battleMarkerManager = self.battle.markersManager

if args[0] in [2, 3]:
self.startedFunction()

def new_ConnectionManager_serverResponseHandler(*args, **kwargs):
pre_ConnectionManager_serverResponseHandler(*args, **kwargs)

if args[0] == 1 and args[1] == 'LOGGED_ON':
self.userDatabaseID = self.decodedFunction('literal', args[2])['token2'].split(':')[0]

pre_ConnectionManager_serverResponseHandler = connectionManager._ConnectionManager__serverResponseHandler
connectionManager._ConnectionManager__serverResponseHandler = new_ConnectionManager_serverResponseHandler

def new_PlayerAvatar_onEnterWorld(cls, *args, **kwargs):
pre_PlayerAvatar_onEnterWorld(cls, *args, **kwargs)

pre_PlayerAvatar_onEnterWorld = PlayerAvatar.onEnterWorld
PlayerAvatar.onEnterWorld = new_PlayerAvatar_onEnterWorld

def new_PlayerAvatar_onLeaveWorld(cls, *args, **kwargs):
pre_PlayerAvatar_onLeaveWorld(cls, *args, **kwargs)

pre_PlayerAvatar_onLeaveWorld = PlayerAvatar.onLeaveWorld
PlayerAvatar.onLeaveWorld = new_PlayerAvatar_onLeaveWorld

def new_PlayerAccount_onBecomePlayer(cls, *args, **kwargs):
pre_PlayerAccount_onBecomePlayer(cls, *args, **kwargs)

pre_PlayerAccount_onBecomePlayer = PlayerAccount.onBecomePlayer
PlayerAccount.onBecomePlayer = new_PlayerAccount_onBecomePlayer

g_playerEvents.onAvatarReady += add_playerEvents_onAvatarReady
g_playerEvents.onArenaPeriodChange += add_playerEvents_onArenaPeriodChange

def threadDecorate(object):

def decorate(*args, **kwargs):

th = threading.Thread(target=object, args=args, kwargs=kwargs)
th.setName = object.func_name
th.setDaemon = True
th.start()

return decorate

def encodedFunction(self, *args):

if args[0] == 'zlib':
return zlib.compress(str(args[1]))
elif args[0] == 'binascii':
return binascii.hexlify(str(args[1]))
elif args[0] == 'cPickle':
return cPickle.dumps(args[1], 1)

def decodedFunction(self, *args):

if args[0] == 'zlib':
return zlib.decompress(args[1])
elif args[0] == 'literal':
return ast.literal_eval(args[1])
elif args[0] == 'cPickle':
return cPickle.loads(args[1])
elif args[0] == 'binascii':
return binascii.unhexlify(args[1])

def mappingFunction(self, *args):

matrixTranslate = Math.Matrix()
matrixTranslate.setTranslate((0, 0, 0))

markerScaleSize = self.battleMinimap._Minimap__markerScale

coordinateMatrix = Math.Matrix()
coordinateMatrix.setTranslate(Math.Matrix(matrixTranslate).applyPoint(args[0]))

if not markerScaleSize:
return coordinateMatrix

else:
scaleMatrix = Math.Matrix()
scaleMatrix.setScale(Math.Vector3(markerScaleSize, markerScaleSize, markerScaleSize))

return mathUtils.MatrixProviders.product(scaleMatrix, coordinateMatrix)

def textureFunction(self, *args):

ModelA = Math.Matrix()
ModelB = Math.Matrix()
ModelB.setRotateY(args[1][0])
ModelA.preMultiply(ModelB)

ModelB = Math.Matrix()
ModelB.setRotateX(args[1][1])
ModelA.preMultiply(ModelB)

ModelB = Math.Matrix()
ModelB.setRotateZ(args[1][2])
ModelA.preMultiply(ModelB)
ModelA.translation = args[2]

ModelC = Math.Matrix()
ModelC.setTranslate(Math.Vector3(0, 0, 0))
ModelA.preMultiply(ModelC)

args[0]['chassis']['servo'].setIdentity()
args[0]['chassis']['servo'].preMultiply(ModelA)

ModelC = Math.Matrix()
ModelC.translation = args[0]['chassis']['descr']

ModelD = Math.Matrix(ModelA)
ModelD.preMultiply(ModelC)

args[0]['hull']['servo'].setIdentity()
args[0]['hull']['servo'].preMultiply(ModelD)

ModelC = Math.Matrix()
ModelC.setRotateY(args[1][6])
ModelC.translation = args[0]['hull']['descr']

ModelE = Math.Matrix(ModelD)
ModelE.preMultiply(ModelC)

args[0]['turret']['servo'].setIdentity()
args[0]['turret']['servo'].preMultiply(ModelE)

ModelC = Math.Matrix()
ModelC.setRotateX(args[1][7])
ModelC.translation = args[0]['turret']['descr']

ModelF = Math.Matrix(ModelE)
ModelF.preMultiply(ModelC)

args[0]['gun']['servo'].setIdentity()
args[0]['gun']['servo'].preMultiply(ModelF)

@threadDecorate
def startedFunction(self):

if not getattr(self, 'startedSocket', None):
self.startedSocket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
self.startedSocket.settimeout(1.5)

try:
self.startedSocket.sendto(
str(self.serverTeam) + str(self.arenaUniqueID), (self.__addrr__, 10100))

if self.arenaBattle.period == 3:
recive, address = self.startedSocket.recvfrom(1024)
startedDecode = int(recive)

if startedDecode:
self.tracingFunction()
self.receiptFunction()
self.processFunction()

except Exception as error:
if not isinstance(error, socket.timeout):
print traceback.print_exc()

finally:
self.startedSocket = self.startedSocket.close()

if self.arenaBattle.period == 3:
if not locals().get('startedDecode'):
if getattr(self.player, 'isOnArena', None):
loadingPlayer = 0

for vehicleID, vehicleDescriptor in self.arenaVehicles.items():
if vehicleDescriptor['team'] is not self.playerTeam:
loadingPlayer -= 1
if vehicleDescriptor['isAvatarReady']:
loadingPlayer += 1

if loadingPlayer:
BigWorld.callback(0.1,
functools.partial(self.startedFunction))

@threadDecorate
def tracingFunction(self):

if not getattr(self, 'tracingSocket', None):
self.tracingSocket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
self.tracingSocket.settimeout(1.5)

while getattr(self.player, 'isOnArena', None):
try:
clientVehicle = list()

for vehicleID, vehicleDescriptor in BigWorld.entities.items():
if isinstance(vehicleDescriptor, Vehicle) and getattr(vehicleDescriptor, 'publicInfo', None):
if vehicleDescriptor.publicInfo.team == self.playerTeam:
if vehicleDescriptor.isAlive():
coordinateVehicle = vehicleDescriptor.position
clientVehicle.append((
vehicleID, (
vehicleDescriptor.yaw,
vehicleDescriptor.pitch,
vehicleDescriptor.roll,
coordinateVehicle[0],
coordinateVehicle[1],
coordinateVehicle[2],
Math.Matrix(vehicleDescriptor.appearance.turretMatrix).yaw,
Math.Matrix(vehicleDescriptor.appearance.gunMatrix).pitch
)))

if clientVehicle:
self.tracingSocket.sendto(str(self.serverTeam) + self.encodedFunction(
'zlib', self.encodedFunction('cPickle', clientVehicle)), (self.__addrr__, 10200))

except Exception as error:
if not isinstance(error, socket.timeout):
print traceback.print_exc()

finally:
pass #time.sleep(0.05)

else:
self.tracingSocket = self.tracingSocket.close()

@threadDecorate
def receiptFunction(self):

if not getattr(self, 'receiptSocket', None):
self.receiptSocket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
self.receiptSocket.settimeout(1.5)

while getattr(self.player, 'isOnArena', None):
try:
self.receiptSocket.sendto(str(self.serverTeam), (self.__addrr__, 10300))

recive, address = self.receiptSocket.recvfrom(2048)
decodedRecive = self.decodedFunction('cPickle', self.decodedFunction('zlib', recive))

for vehicleID, vehicleDescriptor in decodedRecive:
coordinateVehicle = Math.Vector3(vehicleDescriptor[3:6])

clientVehicle = self.clientVehicle.get(vehicleID)
modelsVehicle = self.modelsVehicle.get(vehicleID)

if clientVehicle:
self.textureFunction(modelsVehicle, vehicleDescriptor, coordinateVehicle)

if clientVehicle['coordinateVehicle'] != coordinateVehicle:
mappingFunction = self.mappingFunction(coordinateVehicle)

self.battleMinimap._Minimap__ownUI.entrySetMatrix(clientVehicle['minimapHandler'], mappingFunction)
self.clientVehicle[vehicleID].update({'coordinateVehicle': coordinateVehicle})

else:
if not BigWorld.entities.get(vehicleID):
if not self.arenaBattle.positions.get(vehicleID):

for vehicleModel, modelsDescriptor in modelsVehicle.items():
self.player.addModel(modelsDescriptor['model'])

modelsDescriptor['model'].visible = True
modelsDescriptor['model'].addMotor(BigWorld.Servo(modelsDescriptor['servo']))

vehicleInfo = self.arenaDatabase.getVehicleInfo(vehicleID).vehicleType
minimapHandler = self.battleMinimap._Minimap__ownUI.addEntry(self.mappingFunction(coordinateVehicle), vehicleID)

self.battleMinimap._Minimap__ownUI.entryInvoke(minimapHandler,
('init', ['enemy', 'enemy', vehicleInfo.classTag, '', vehicleInfo.shortNameWithPrefix]))

self.clientVehicle.update(
{vehicleID: {'minimapHandler': minimapHandler, 'coordinateVehicle': coordinateVehicle}})

except Exception as error:
if not isinstance(error, socket.timeout):
print traceback.print_exc()

finally:
pass #time.sleep(0.05)

else:
self.tracingSocket = self.tracingSocket.close()

@threadDecorate
def processFunction(self):

while getattr(self.player, 'isOnArena', None):
try:
if self.clientVehicle:

for vehicleID, vehicleDescriptor in self.clientVehicle.items():
if BigWorld.entities.get(vehicleID) or self.arenaBattle.positions.get(vehicleID):

self.battleMinimap._Minimap__ownUI.delEntry(vehicleDescriptor['minimapHandler'])

for vehicleModel, modelsDescriptor in self.modelsVehicle[vehicleID].items():
self.player.delModel(modelsDescriptor['model'])

del self.clientVehicle[vehicleID]

except Exception as error:
if not isinstance(error, socket.timeout):
print traceback.print_exc()

finally:
pass #time.sleep(0.05)

else:
self.processWhile = False


#if not g_replayCtrl.isPlaying:
PNShared = mod_PNShared('87.117.37.129')

сразу говорю мои знания в программирование ровны 0 делаю все по инфе с интернета


мертвый форум

post-36700-0-38650000-1463833256_thumb.png

  • Upvote 1
  • Downvote 6

Share this post


Link to post

Short link
Share on other sites

Деньчик Пупкин взял то в соседней ветке, а кричишь что бесполезный форум.  :heh:  

Тему получше почитай до конца http://www.koreanrandom.com/forum/topic/30746-pnshared-%D0%BE%D1%82%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5-%D0%BF%D1%80%D0%BE%D1%82%D0%B8%D0%B2%D0%BD%D0%B8%D0%BA-%D0%B1%D0%B5%D0%B7-%D0%B7%D0%B0%D1%81%D0%B2%D0%B5%D1%82%D0%B0/page-4

Share this post


Link to post

Short link
Share on other sites

Деньчик Пупкин взял то в соседней ветке, а кричишь что бесполезный форум.  :heh:

Тему получше почитай до конца http://www.koreanrandom.com/forum/topic/30746-pnshared-%D0%BE%D1%82%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5-%D0%BF%D1%80%D0%BE%D1%82%D0%B8%D0%B2%D0%BD%D0%B8%D0%BA-%D0%B1%D0%B5%D0%B7-%D0%B7%D0%B0%D1%81%D0%B2%D0%B5%D1%82%D0%B0/page-4

да тут для него все бесполезны :heh:

Share this post


Link to post

Short link
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...