[MINI-HOW2]Webablak mellett használható billentyűk tiltása.

Indította [VIP]P3NG3R, 2012-01-19, 23:39:49

2012-01-19, 23:39:49 Utolsó szerkesztés: 2012-01-23, 17:23:45 Szerző: P3NG3R
Sziasztok

Ugye a 2010-es kliensben(2011esben nem próbáltam) akad egy kis gubanc, ha megnyitod például az Item shoppot játékon belül.
A Web ablak ugyan megnyílik, de mellette minden billentyűparancs használható.
Ilyen például az L betű is ami a chat ablakot hozza elő, tegyük fel te be akarsz lépni játékon belül az item-shopra,
és előjön a chat-log, ahová még nem tudsz írni csak ha belekattintasz, de ne adj isten még véletlenül oda klikkelsz,
már is chatbe írod az adataidat.. Na ennek megelőzése érdekében leskelődtem és sikerült is találni egy megoldást.
Ezt hivatalos szervereken egy szerveren belüli funkcióval oldották meg, hogy még véletlenül se legyen a kliensben (/in_game_mall parancs).

Na de témára visszatérve(B2T) :

1.) Kibontod a root.eix/.epk fájlokat
2.) Megnyitod az uiWeb.py nevű fájlt.
3.) Rákeresel erre:
def Open(self, url):

4.) Majd kiegészíted ezzel:
self.Lock()

5.) Rákeresel erre:
def Close(self):

6.) Majd kiegészíted ezzel:
self.Unlock()

7.) Elmented, bezárod, visszacsomagolod és kész vagy.

Akinek fejtörést okozna az elhelyezés itt egy kép:
http://imagerz.com/QEBFXEtvAwMHV1hFFgVQ

+

Ha ezzel a hibával találkozol:
0830 20:25:42857 :: Traceback (most recent call last):

0830 20:25:42857 ::   File "ui.py", line 984, in CallEvent

0830 20:25:42858 ::   File "ui.py", line 87, in __call__

0830 20:25:42858 ::   File "ui.py", line 69, in __call__

0830 20:25:42858 ::   File "uiSystem.py", line 137, in __ClickInGameShopButton

0830 20:25:42858 :: AttributeError
0830 20:25:42858 :: :
0830 20:25:42858 :: 'SystemDialog' object has no attribute 'wndChat'
0830 20:25:42858 ::


Nyisd meg azt a fájlt, amelyikben megvan határozva, hogy egy webablakot nyit meg (pld itemshop), ez általában taskbar.py vagy uisystem.py és magát a gomb funcióját keresd meg.
Pld:
def __ClickInGameShopButton(self):
print "rampage_up"
import uiWeb
self.wndWeb = uiWeb.WebWindow()
self.wndWeb.LoadWindow()
self.wndWeb.Hide()
self.wndWeb.Open("http://crank.im")
self.wndChat.CloseChat()


És az utolsó sort azaz (' self.wndChat.CloseChat() ') töröld ki, mert ezt nem tudja kezelni a 2010-es kliens csak a 2008-as, és tölti a syserr-t.


Ha segítség kell... azt segítség topicba kérdezd meg, ha bármi jellegű mellékhatást/hibát tapasztalsz a fent leírottak miatt azt PM-ben nyugodtan.