Jump to content
Korean Random
CyToTV

Контекстное меню

Recommended Posts

Как добавить в контекстное меню (когда нажимаешь на игрока в лс пкм) пункт "123" и чтоб когда нажимаешь создавалось новое окно с браузером и ссылкой http://сайт/profile.php?name=и тут ник этого игрока... помогите.... прошу 

Share this post


Link to post

Short link
Share on other sites

Как добавить в контекстное меню (когда нажимаешь на игрока в лс пкм) пункт "123" и чтоб когда нажимаешь создавалось новое окно с браузером и ссылкой http://сайт/profile.php?name=и тут ник этого игрока... помогите.... прошу

Где именно? В контактах или чатике?

Скорее всего нужно ковырять питон.

Например в файле https://bitbucket.org/XVM/xvm/src/42edc723050215de4e83be57edc7ebc048edf28c/src/xpm/xvm_contacts/__init__.py?at=default

Edited by ShadowHunterRUS

Share this post


Link to post

Short link
Share on other sites

 

 

from gui import game_control from adisp import process @process def openBrowserWindow(playerNickName, playerId): _url = 'http://www.noobmeter.com/player/ru/{0}/{1}/='.format(playerNickName,playerId) _title = 'Статистика товарища ({0})'.format(playerNickName) _width = 800 _height = 600 _browserSize = [_width, _height] yield game_control.g_instance.browser.load(_url, \ _title, \ showActionBtn=False, \ browserSize=_browserSize) class MENU(object): XVM_EDIT_CONTACT_DATA = 'XvmEditContactData' OPEN_PLAYER_WEBBROWSER = 'OpenPlayerWebBrowser' def PlayerContactsCMHandler_getHandlers(base, self): handlers = base(self) handlers.update({MENU.XVM_EDIT_CONTACT_DATA: '_XvmEditContactData'}) handlers.update({MENU.OPEN_PLAYER_WEBBROWSER: '_OpenPlayerWebBrowser'}) return handlers def _OpenPlayerWebBrowser(self): openBrowserWindow(self.userName, self.databaseID) def PlayerContactsCMHandler_generateOptions(base, self): options = base(self) options.append(self._makeItem(MENU.XVM_EDIT_CONTACT_DATA, l10n('Edit data'), optInitData={'enabled': contacts.isAvailable()})) options.append(self._makeItem(MENU.OPEN_PLAYER_WEBBROWSER, 'Открыть мое окошко', optInitData={'enabled': True})) return options def _RegisterEvents(): start() from messenger.gui.Scaleform.view.ContactsListPopover import ContactsListPopover RegisterEvent(ContactsListPopover, '_populate', ContactsListPopover_populate) from messenger.gui.Scaleform.data.contacts_vo_converter import ContactConverter OverrideMethod(ContactConverter, 'makeVO', ContactConverter_makeVO) from messenger.gui.Scaleform.data.contacts_cm_handlers import PlayerContactsCMHandler OverrideMethod(PlayerContactsCMHandler, '_getHandlers', PlayerContactsCMHandler_getHandlers) OverrideMethod(PlayerContactsCMHandler, '_generateOptions', PlayerContactsCMHandler_generateOptions) PlayerContactsCMHandler._XvmEditContactData = _XvmEditContactData PlayerContactsCMHandler._OpenPlayerWebBrowser = _OpenPlayerWebBrowser

слушай, а куда это вставлять то, отдельным модом или куда, я прост новичек =) 

Share this post


Link to post

Short link
Share on other sites

Умоляю, помоги.....

Где именно? В контактах или чатике?

Скорее всего нужно ковырять swf.

Например в файле https://bitbucket.org/XVM/xvm/src/42edc723050215de4e83be57edc7ebc048edf28c/src/xpm/xvm_contacts/__init__.py?at=default

заменить оригинальные на такие функции

 

from gui import game_control
from adisp import process

@process
def openBrowserWindow(playerNickName, playerId):
    _url = 'http://www.noobmeter.com/player/ru/{0}/{1}/='.format(playerNickName, playerId)
    _title = 'Статистика товарища ({0})'.format(playerNickName)
    _width = 800
    _height = 600
    _browserSize = [_width, _height]
    yield game_control.g_instance.browser.load(_url,  \
    _title,  \
    showActionBtn=False,  \
    browserSize=_browserSize)

class MENU(object):
    XVM_EDIT_CONTACT_DATA = 'XvmEditContactData'
    OPEN_PLAYER_WEBBROWSER = 'OpenPlayerWebBrowser'

def PlayerContactsCMHandler_getHandlers(base, self):
    handlers = base(self)
    handlers.update({MENU.XVM_EDIT_CONTACT_DATA: '_XvmEditContactData'})
    handlers.update({MENU.OPEN_PLAYER_WEBBROWSER: '_OpenPlayerWebBrowser'})
    return handlers

def _OpenPlayerWebBrowser(self):
    openBrowserWindow(self.userName, self.databaseID)

def PlayerContactsCMHandler_generateOptions(base, self):
    options = base(self)
    options.append(self._makeItem(MENU.XVM_EDIT_CONTACT_DATA, l10n('Edit data'), optInitData={'enabled': contacts.isAvailable()}))
    options.append(self._makeItem(MENU.OPEN_PLAYER_WEBBROWSER, 'Открыть мое окошко', optInitData={'enabled': True}))
    return options

def _RegisterEvents():
    start()

    from messenger.gui.Scaleform.view.ContactsListPopover import ContactsListPopover
    RegisterEvent(ContactsListPopover, '_populate', ContactsListPopover_populate)

    from messenger.gui.Scaleform.data.contacts_vo_converter import ContactConverter
    OverrideMethod(ContactConverter, 'makeVO', ContactConverter_makeVO)

    from messenger.gui.Scaleform.data.contacts_cm_handlers import PlayerContactsCMHandler
    OverrideMethod(PlayerContactsCMHandler, '_getHandlers', PlayerContactsCMHandler_getHandlers)
    OverrideMethod(PlayerContactsCMHandler, '_generateOptions', PlayerContactsCMHandler_generateOptions)
    PlayerContactsCMHandler._XvmEditContactData = _XvmEditContactData
    PlayerContactsCMHandler._OpenPlayerWebBrowser = _OpenPlayerWebBrowser 
Я этот код не проверял.
Слушай, может в команду пойдёшь? Нам спеца по питону не хватает) мы сейчас делаем оч интересный проект, вот скайп: stepan_wifi

Share this post


Link to post

Short link
Share on other sites

слушай, а куда это вставлять то

res_mods\mods\packages\xvm_contacts\python\__init__.pyc

XFW_MOD_INFO = {
    'VERSION':       '3.1.0',
    'URL':           'http://www.modxvm.com/',
    'UPDATE_URL':    'http://www.modxvm.com/en/download-xvm/',
    'GAME_VERSIONS': ['0.9.9'],
}

class COMMANDS(object):
    AS_EDIT_CONTACT_DATA = "xvm_contacts.as_edit_contact_data"

class MENU(object):
    XVM_EDIT_CONTACT_DATA = 'XvmEditContactData'
    OPEN_PLAYER_WEBBROWSER = 'OpenPlayerWebBrowser'

class VIEW(object):
    XVM_EDIT_CONTACT_DATA_ALIAS = 'XvmEditContactDataView'

import traceback
import BigWorld
from xfw import *
from xvm_main.python.logger import *
from xvm_main.python.xvm import l10n
import contacts

from adisp import process

@process
def openBrowserWindow(playerNickName, playerId):
    from gui import game_control
    _url = 'http://www.noobmeter.com/player/ru/{0}/{1}/'.format(playerNickName, playerId)
    _title = 'Статистика товарища ({0})'.format(playerNickName)
    _width = 800
    _height = 600
    _browserSize = [_width, _height]
    yield game_control.g_instance.browser.load(_url,  \
    _title,  \
    showActionBtn=False,  \
    browserSize=_browserSize)

def start():
    import view
    from gui.Scaleform.framework import g_entitiesFactories, ViewSettings, ViewTypes, ScopeTemplates
    from gui.Scaleform.framework.entities.View import View
    g_entitiesFactories.addSettings(ViewSettings(
        VIEW.XVM_EDIT_CONTACT_DATA_ALIAS,
        view.XvmEditContactDataView,
        None,
        ViewTypes.COMPONENT,
        None,
        ScopeTemplates.DEFAULT_SCOPE))

def ContactsListPopover_populate(self):
    contacts.initialize()

def ContactConverter_makeVO(base, self, contact, includeIcons = True):
    res = base(self, contact, includeIcons)
    if contacts.isAvailable():
        res.update({'xvm_contact_data':contacts.getXvmContactData(contact.getID())})
    return res

def PlayerContactsCMHandler_getHandlers(base, self):
    handlers = base(self)
    handlers.update({MENU.XVM_EDIT_CONTACT_DATA: '_XvmEditContactData'})
    handlers.update({MENU.OPEN_PLAYER_WEBBROWSER: '_OpenPlayerWebBrowser'})
    return handlers

def _OpenPlayerWebBrowser(self):
    openBrowserWindow(self.userName, self.databaseID)

def PlayerContactsCMHandler_generateOptions(base, self):
    options = base(self)
    options.append(self._makeItem(MENU.XVM_EDIT_CONTACT_DATA, l10n('Edit data'), optInitData={'enabled': contacts.isAvailable()}))
    options.append(self._makeItem(MENU.OPEN_PLAYER_WEBBROWSER, 'Открыть мое окошко', optInitData={'enabled': True}))
    return options

def _XvmEditContactData(self):
    as_xfw_cmd(COMMANDS.AS_EDIT_CONTACT_DATA, self.userName, self.databaseID)

def _RegisterEvents():
    start()
    from messenger.gui.Scaleform.view.ContactsListPopover import ContactsListPopover
    RegisterEvent(ContactsListPopover, '_populate', ContactsListPopover_populate)
    from messenger.gui.Scaleform.data.contacts_vo_converter import ContactConverter
    OverrideMethod(ContactConverter, 'makeVO', ContactConverter_makeVO)
    from messenger.gui.Scaleform.data.contacts_cm_handlers import PlayerContactsCMHandler
    OverrideMethod(PlayerContactsCMHandler, '_getHandlers', PlayerContactsCMHandler_getHandlers)
    OverrideMethod(PlayerContactsCMHandler, '_generateOptions', PlayerContactsCMHandler_generateOptions)
    PlayerContactsCMHandler._XvmEditContactData = _XvmEditContactData
    PlayerContactsCMHandler._OpenPlayerWebBrowser = _OpenPlayerWebBrowser 

BigWorld.callback(0, _RegisterEvents)

Edited by ShadowHunterRUS

Share this post


Link to post

Short link
Share on other sites

res_mods\mods\packages\xvm_contacts\python\__init__.pyc

XFW_MOD_INFO = {
    'VERSION':       '3.1.0',
    'URL':           'http://www.modxvm.com/',
    'UPDATE_URL':    'http://www.modxvm.com/en/download-xvm/',
    'GAME_VERSIONS': ['0.9.9'],
}

class COMMANDS(object):
    AS_EDIT_CONTACT_DATA = "xvm_contacts.as_edit_contact_data"

class MENU(object):
    XVM_EDIT_CONTACT_DATA = 'XvmEditContactData'
    OPEN_PLAYER_WEBBROWSER = 'OpenPlayerWebBrowser'

class VIEW(object):
    XVM_EDIT_CONTACT_DATA_ALIAS = 'XvmEditContactDataView'

import traceback
import BigWorld
from xfw import *
from xvm_main.python.logger import *
from xvm_main.python.xvm import l10n
import contacts
from gui import game_control
from adisp import process

@process
def openBrowserWindow(playerNickName, playerId):
    _url = 'http://www.noobmeter.com/player/ru/{0}/{1}/='.format(playerNickName, playerId)
    _title = 'Статистика товарища ({0})'.format(playerNickName)
    _width = 800
    _height = 600
    _browserSize = [_width, _height]
    yield game_control.g_instance.browser.load(_url,  \
    _title,  \
    showActionBtn=False,  \
    browserSize=_browserSize)

def start():
    import view
    from gui.Scaleform.framework import g_entitiesFactories, ViewSettings, ViewTypes, ScopeTemplates
    from gui.Scaleform.framework.entities.View import View
    g_entitiesFactories.addSettings(ViewSettings(
        VIEW.XVM_EDIT_CONTACT_DATA_ALIAS,
        view.XvmEditContactDataView,
        None,
        ViewTypes.COMPONENT,
        None,
        ScopeTemplates.DEFAULT_SCOPE))

def ContactsListPopover_populate(self):
    contacts.initialize()

def ContactConverter_makeVO(base, self, contact, includeIcons = True):
    res = base(self, contact, includeIcons)
    if contacts.isAvailable():
        res.update({'xvm_contact_data':contacts.getXvmContactData(contact.getID())})
    return res

def PlayerContactsCMHandler_getHandlers(base, self):
    handlers = base(self)
    handlers.update({MENU.XVM_EDIT_CONTACT_DATA: '_XvmEditContactData'})
    handlers.update({MENU.OPEN_PLAYER_WEBBROWSER: '_OpenPlayerWebBrowser'})
    return handlers

def _OpenPlayerWebBrowser(self):
    openBrowserWindow(self.userName, self.databaseID)

def PlayerContactsCMHandler_generateOptions(base, self):
    options = base(self)
    options.append(self._makeItem(MENU.XVM_EDIT_CONTACT_DATA, l10n('Edit data'), optInitData={'enabled': contacts.isAvailable()}))
    options.append(self._makeItem(MENU.OPEN_PLAYER_WEBBROWSER, 'Открыть мое окошко', optInitData={'enabled': True}))
    return options

def _XvmEditContactData(self):
    as_xfw_cmd(COMMANDS.AS_EDIT_CONTACT_DATA, self.userName, self.databaseID)

def _RegisterEvents():
    start()
    from messenger.gui.Scaleform.view.ContactsListPopover import ContactsListPopover
    RegisterEvent(ContactsListPopover, '_populate', ContactsListPopover_populate)
    from messenger.gui.Scaleform.data.contacts_vo_converter import ContactConverter
    OverrideMethod(ContactConverter, 'makeVO', ContactConverter_makeVO)
    from messenger.gui.Scaleform.data.contacts_cm_handlers import PlayerContactsCMHandler
    OverrideMethod(PlayerContactsCMHandler, '_getHandlers', PlayerContactsCMHandler_getHandlers)
    OverrideMethod(PlayerContactsCMHandler, '_generateOptions', PlayerContactsCMHandler_generateOptions)
    PlayerContactsCMHandler._XvmEditContactData = _XvmEditContactData
    PlayerContactsCMHandler._OpenPlayerWebBrowser = _OpenPlayerWebBrowser 

BigWorld.callback(0, _RegisterEvents)

 

слушай, а мод не работает =(

слушай, а мод не работает =(

вот тебе лог

/------------------------------------------------------------------------------------------\

BigWorld worldoftanks 2.8.0 (compiled at 12:49:28 Jun 15 2015) starting on 07/28/15 13:05:21

INFO: [Config] Default encoding set to utf-8

INFO: [PY_DEBUG] BigWorld Release Client - Content Type: sd

INFO: [PY_DEBUG] Checking ./res_mods/0.9.9: mods found

INFO: [XFW] Version: 3.1.0

INFO: [XFW] Working dir: D:\World_of_Tanks\res_mods\mods

INFO: [XFW] Loading mod: xvm_main 3.1.0 (http://www.modxvm.com/)

INFO: [XFW] Loading mod: xvm_autologin 3.1.0 (http://www.modxvm.com/)

INFO: [XFW] Loading mod: xvm_battle 3.1.0 (http://www.modxvm.com/)

INFO: [XFW] Loading mod: xvm_battleloading 3.1.0 (http://www.modxvm.com/)

INFO: [XFW] Loading mod: xvm_battleresults 3.1.0 (http://www.modxvm.com/)

INFO: [XFW] Loading mod: xvm_contacts =============================

INFO: [XFW][xvm_contacts] Error loading mod:

ERROR: Traceback (most recent call last):

ERROR:   File "mods/xfw/python/xfw_loader.py", line 68, in load_mods

ERROR:   File "sc", line 24, in <module>

ERROR:   File "scripts/client/gui/game_control/__init__.py", line 2, in <module>

ERROR:   File "scripts/client/gui/game_control/BoostersController.py", line 5, in <module>

ERROR:   File "scripts/client/gui/goodies/GoodiesCache.py", line 6, in <module>

ERROR: ImportError: cannot import name g_itemsCache

INFO: =============================

INFO: [XFW] Loading mod: xvm_crew 3.1.0 (http://www.modxvm.com/)

INFO: [XFW] Loading mod: xvm_equip 3.1.0 (http://www.modxvm.com/)

INFO: [XFW] Loading mod: xvm_export 3.1.0 (http://www.modxvm.com/)

INFO: [XFW] Loading mod: xvm_hangar 3.1.0 (http://www.modxvm.com/)

INFO: [XFW] Loading mod: xvm_hotfix 3.1.0 (http://www.modxvm.com/)

INFO: [XFW] Loading mod: xvm_integrity 3.1.0 (http://www.modxvm.com/)

INFO: [XFW] Loading mod: xvm_limits 3.1.0 (http://www.modxvm.com/)

INFO: [XFW] Loading mod: xvm_online 3.1.0 (http://www.modxvm.com/)

INFO: [XFW] Loading mod: xvm_ping 3.1.0 (http://www.modxvm.com/)

INFO: [XFW] Loading mod: xvm_profile 3.1.0 (http://www.modxvm.com/)

INFO: [XFW] Loading mod: xvm_profiler 3.1.0 (http://www.modxvm.com/)

INFO: [XFW] Loading mod: xvm_quests 3.1.0 (http://www.modxvm.com/)

INFO: [XFW] Loading mod: xvm_sounds 3.1.0 (http://www.modxvm.com/)

INFO: [XFW] Loading mod: xvm_tcarousel 3.1.0 (http://www.modxvm.com/)

INFO: [XFW] Loading mod: xvm_techtree 3.1.0 (http://www.modxvm.com/)

INFO: [XFW] Loading mod: xvm_tooltips 3.1.0 (http://www.modxvm.com/)

INFO: ~~~Mod loader by S0me0ne~~~

INFO: Executing: socialwot

NOTICE: [NOTE] (scripts/common/fortified_regions.py, 208): fortified_regions.init()

NOTICE: [NOTE] (scripts/common/clubs_settings.py, 34): clubs.init()

NOTICE: [NOTE] (scripts/client/post_processing/__init__.py, 267): The quality = 4 was selected.

NOTICE: [NOTE] (scripts/client/post_processing/__init__.py, 267): The quality = 3 was selected.

NOTICE: [NOTE] (scripts/client/ConnectionManager.py, 151): User authentication method: token2

NOTICE: [NOTE] (scripts/client/account_helpers/settings_core/options.py, 721): Change state of voip: (True,)

NOTICE: [NOTE] (scripts/client/game.py, 425): [sPACE] Loading space: spaces/hangar_v2

WARNING: [WARNING] (scripts/client/gui/clubs/requests.py, 72): Club request error ((GetCompletedSeasonsCtx(confirmID = , waitingID = , requestType = 37), []), _Response(code=-5, errStr='COOLDOWN', data=None))

Share this post


Link to post

Short link
Share on other sites

слушай, а мод не работает =(

а вы скомпилировали __init__.pyc?

я что-то не уверен...

Edited by ShadowHunterRUS

Share this post


Link to post

Short link
Share on other sites

а вы скомпилировали __init__.pyc?

я что-то не уверен...

Да

Скомпилировал

а вы скомпилировали __init__.pyc?

я что-то не уверен...

Новый лог:

INFO: [XFW] Loading mod: xvm_contacts =============================

INFO: [XFW][xvm_contacts] Error loading mod:

ERROR: Traceback (most recent call last):

ERROR:   File "mods/xfw/python/xfw_loader.py", line 68, in load_mods

ERROR:   File "D:\World_of_Tanks\res_mods\mods/packages\xvm_contacts\python\__init__.py", line 24, in <module>

ERROR:     from gui import game_control

ERROR:   File "scripts/client/gui/game_control/__init__.py", line 2, in <module>

ERROR:   File "scripts/client/gui/game_control/BoostersController.py", line 5, in <module>

ERROR:   File "scripts/client/gui/goodies/GoodiesCache.py", line 6, in <module>

ERROR: ImportError: cannot import name g_itemsCache

INFO: =============================

Да

Скомпилировал

Новый лог:

INFO: [XFW] Loading mod: xvm_contacts =============================

INFO: [XFW][xvm_contacts] Error loading mod:

ERROR: Traceback (most recent call last):

ERROR:   File "mods/xfw/python/xfw_loader.py", line 68, in load_mods

ERROR:   File "D:\World_of_Tanks\res_mods\mods/packages\xvm_contacts\python\__init__.py", line 24, in <module>

ERROR:     from gui import game_control

ERROR:   File "scripts/client/gui/game_control/__init__.py", line 2, in <module>

ERROR:   File "scripts/client/gui/game_control/BoostersController.py", line 5, in <module>

ERROR:   File "scripts/client/gui/goodies/GoodiesCache.py", line 6, in <module>

ERROR: ImportError: cannot import name g_itemsCache

INFO: =============================

 

пожешь скинуть папку с __init__.pyc уже готовую, плз

Share this post


Link to post

Short link
Share on other sites

Посмотрим. Это опять клиент танков нужно устанавливать...

 

 

Edited by ShadowHunterRUS

Share this post


Link to post

Short link
Share on other sites

Посмотрим. Это опять клиент танков нужно устанавливать...

 

попробуй это attachicon.gif__init__.zip

Я конечно же еще даже не проверял...

только после боя в контактах это отображается =(

Посмотрим. Это опять клиент танков нужно устанавливать...

 

попробуй это attachicon.gif__init__.zip

Я конечно же еще даже не проверял...

го скайп?

Share this post


Link to post

Short link
Share on other sites

только после боя в контактах это отображается =(

Скриншот нужен

Клиент еще не скоро загрузится...

post-16296-0-68362400-1438100183_thumb.png

го скайп?

Гарнитуры нет Edited by ShadowHunterRUS

Share this post


Link to post

Short link
Share on other sites

И что происходит, если нажать Open?

браузер открывается

браузер открывается

я прост название поменял

Share this post


Link to post

Short link
Share on other sites

а проблема в чем?

Не знаю пока

а проблема в чем?

Почисти папку %AppData%\Wargaming.net\WorldOfTanks

Только preferences.xml не трогай

Edited by ShadowHunterRUS

Share this post


Link to post

Short link
Share on other sites

а у меня его нет =)


Только properties.xml не трогай


Не знаю пока
Почисти папку %AppData%\Wargaming.net\WorldOfTanks
Только properties.xml не трогай

все также =(

Share this post


Link to post

Short link
Share on other sites
def PlayerContactsCMHandler_generateOptions(base, self):
    options = base(self)
    options.append(self._makeItem(MENU.XVM_EDIT_CONTACT_DATA, l10n('Edit data'), optInitData={'enabled': contacts.isAvailable()}))
    options.append(self._makeItem(MENU.OPEN_PLAYER_WEBBROWSER, 'Открыть мое окошко', optInitData={'enabled': True}))
    return options

замени на 

def PlayerContactsCMHandler_generateOptions(base, self):
    options = base(self)
    #options.append(self._makeItem(MENU.XVM_EDIT_CONTACT_DATA, l10n('Edit data'), optInitData={'enabled': contacts.isAvailable()}))
    options.append(self._makeItem(MENU.OPEN_PLAYER_WEBBROWSER, 'Открыть мое окошко', optInitData={'enabled': True}))
    return options

не робит

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...