利用者:Chirimen/Mod/CameraNode.pyc

提供: MTM-Gaming
移動先:案内検索

概要

CameraNode.pyc は WoT 0.9.10 以前に用いられた Mod ローダです。 現在は使用が推奨されません。

解説

WoT 0.9.10 までは Mod をロードする仕組みはなく、 リソースを置き換える仕組みのみが提供されていました。 そこでオリジナルの CameraNode.pyc を Mod ローダと置き換えるという手法が取られます。 ちなみにオリジナルの CameraNode.pyc はほぼ何もしないモジュールです。

具体的には res_mods/XXX/scripts/client/CameraNode.pyc (XXXは WoT クライアントのバージョン) を設置します。 この CameraNode.pyc は、scripts/client/mods 内の拡張子 .pyc のファイルをすべて Mod として組み込む機能を持っており、 これによって複数の Mod を共存させることが可能になりました。

CameraNode.pyc は Mod に同梱されることが多く、 通常は干渉しても上書きして問題ないのですが、 たまに品質の低い CameraNode.pyc が動作不良の原因となることがありました。

現在 (WoT 0.9.10 以降) は、 WoT クライアント自身が Mod ローダ res/scripts/client/gui/mods/__init__.pyc を持つようになったので、CameraNode.pyc は不要になりました。

CameraNode.pyc が組み込もうとする Mod フォルダと、 WoT クライアントが組み込もうとする Mod フォルダは場所が異なるので注意してください。


CameraNode.py (WoT 付属):

import BigWorld

class CameraNode(BigWorld.UserDataObject):
    def __init__(self):
        BigWorld.UserDataObject.__init__(self)


CameraNode.py (Mod 同梱版の例):

import BigWorld

class CameraNode(BigWorld.UserDataObject):
    def __init__(self):
        BigWorld.UserDataObject.__init__(self)

def load_mods():
    import ResMgr, os, glob
    res = ResMgr.openSection('../paths.xml')
    sb = res['Paths']
    vals = sb.values()[0:2]
    for vl in vals:
        mp = vl.asString + '/scripts/client/mods/*.pyc'
        for fp in glob.iglob(mp):
            _, hn = os.path.split(fp)
            zn, _ = hn.split('.')
            if zn != '__init__':
                print 'Load mods: ' + zn
                try:
                    exec 'import mods.' + zn
                except Exception as err:
                    print 'Load mods Error:' + err

load_mods()