Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

Podpięcie pod button


Betters

Rekomendowane odpowiedzi

Opublikowano

Witam, chciałbym zapytać jak zrobić, żeby w bocznym panelu

 

BS6cMQi.png

 

klikając na ikonę pierścienia tp otwierał mi się quest teleportacji (ten z pierścienia), a na ikonkę tobołka handlarka różności. Za jakąkolwiek pomoc odwdzięczę się lajkami, gwiazdkami w profilu. ;)

Opublikowano

Otwierasz uiinventory.py (root)

Dodajesz:

import constInfo
import event 

Szukasz: 

self.mallButton = self.GetChild2("MallButton")

Dodajesz pod tym: 

self.teleButton = self.GetChild2("teleButton")

Szukasz:

# MallButton
if self.mallButton:
	self.mallButton.SetEvent(ui.__mem_func__(self.ClickMallButton))

Dodajesz pod tym:

# TeleButton
if self.teleButton:
	self.teleButton.SetEvent(ui.__mem_func__(self.ClickTeleButton))

Szukasz:

self.mallButton = None

Dodajesz pod tym:

self.teleButton = None

Szukasz:

def ClickMallButton(self):
	print "click_mall_button"
	net.SendChatPacket("/click_mall")

Dodajesz pod tym:

def ClickTeleButton(self):
	qid7 = constInfo.TELEPORTACJA
	event.QuestButtonClick(qid7)

Otwierasz game.py (root)

Szukasz:

serverCommandList={

Dodajesz pod tym:

"Teleportacja"				: self.__setTeleportacja,

Szukasz:

def BINARY_ServerCommand_Run(self, line):

Dodajesz nad tym:

def __setTeleportacja(self, value):
	constInfo.TELEPORTACJA = int(value)

Otwierasz constinfo.py (root)

Dodajesz:

TELEPORTACJA = 0

W inventorywindow.py (locale) button powinien mieć nazwę "teleButton", np tak:

  ## Button1 - Pierścień Teleportacji
	{
		"name" : "teleButton",
		"type" : "button",

		"x" : 8,
		"y" : 10 + 35*0,

		"tooltip_text" : "Pierścień Teleportacji",
		"tooltip_x" : -75,
		"tooltip_y" : 8,	

		"default_image" : "locale/pl/ui/icon/button/button1_1.tga",
		"over_image" : "locale/pl/ui/icon/button/button1_2.tga",
		"down_image" : "locale/pl/ui/icon/button/button1_3.tga",
	},

Do questa z pierścieniem teleportacji dodajesz na początku:

quest move_ring begin
	state start begin
		when login begin
			cmdchat("Teleportacja "..q.getcurrentquestindex())
		end
		when button or info begin
			##tutaj zaczynasz pisać questa z pierścieniem teleportacji##
		end
	end
end

Z tobołkiem robisz podobnie.

Opublikowano

Otwierasz uiinventory.py (root)

Dodajesz:

import constInfo
import event 

Szukasz: 

self.mallButton = self.GetChild2("MallButton")

Dodajesz pod tym: 

self.teleButton = self.GetChild2("teleButton")

Szukasz:

# MallButton
if self.mallButton:
	self.mallButton.SetEvent(ui.__mem_func__(self.ClickMallButton))

Dodajesz pod tym:

# TeleButton
if self.teleButton:
	self.teleButton.SetEvent(ui.__mem_func__(self.ClickTeleButton))

Szukasz:

self.mallButton = None

Dodajesz pod tym:

self.teleButton = None

Szukasz:

def ClickMallButton(self):
	print "click_mall_button"
	net.SendChatPacket("/click_mall")

Dodajesz pod tym:

def ClickTeleButton(self):
	qid7 = constInfo.TELEPORTACJA
	event.QuestButtonClick(qid7)

Otwierasz game.py (root)

Szukasz:

serverCommandList={

Dodajesz pod tym:

"Teleportacja"				: self.__setTeleportacja,

Szukasz:

def BINARY_ServerCommand_Run(self, line):

Dodajesz nad tym:

def __setTeleportacja(self, value):
	constInfo.TELEPORTACJA = int(value)

Otwierasz constinfo.py (root)

Dodajesz:

TELEPORTACJA = 0

W inventorywindow.py (locale) button powinien mieć nazwę "teleButton", np tak:

  ## Button1 - Pierścień Teleportacji
	{
		"name" : "teleButton",
		"type" : "button",

		"x" : 8,
		"y" : 10 + 35*0,

		"tooltip_text" : "Pierścień Teleportacji",
		"tooltip_x" : -75,
		"tooltip_y" : 8,	

		"default_image" : "locale/pl/ui/icon/button/button1_1.tga",
		"over_image" : "locale/pl/ui/icon/button/button1_2.tga",
		"down_image" : "locale/pl/ui/icon/button/button1_3.tga",
	},

Do questa z pierścieniem teleportacji dodajesz na początku:

quest move_ring begin
	state start begin
		when login begin
			cmdchat("Teleportacja "..q.getcurrentquestindex())
		end
		when button or info begin
			##tutaj zaczynasz pisać questa z pierścieniem teleportacji##
		end
	end
end

Z tobołkiem robisz podobnie.

Dziękuję za cenne wskazówki! :) Teraz mam taki problem, że ten panel wgl się nie wyświetla z boku... Prawdopodobnie wszystko dodałem prawidłowo (sprawdzałem kilka razy). Wiesz może w czym problem? O ile się nie mylę to niedawno także miałeś podobny problem. 

Opublikowano

pokaz całe invetorywindow.ply (locale) na wklej.org

Już sobie poradziłem, dzięki za chęci. ;) Nadal mam tylko problem z tym podpięciem buttona pod questa... : / Chciałbym, żeby po naciśnięciu ikony depozytu IS

 

dOqzl6j.png

 

otworzył mi się quest pierścienia teleportacji. Wiem, że trzeba dodać na początku questa cmdchat (testowałem i działało) tylko teraz po wykonaniu powyższych czynność podanych przez @Veilles pasek ładowania dochodzi do końca, syserr wywala błędy i client stoi w miejscu. 

Opublikowano

@1361622928-U485574.pngBetters

 

no to pokaż syserr.

Już sobie poradziłem. ;) Wszystko działa jak należy. Teraz tylko chciałbym jeszcze podpiąć pliczek .py pod button w gui, np. bs'a. Naprowadziłbyś jakimiś wskazówkami? 

Opublikowano

@1361622928-U485574.pngBetters

 

Robisz wszystko tak samo. Oprócz game.py.

bs-a wywołujesz w uiinvetory.py

 

np.

    def ClickzmieniaczButton(self):
        if self.switchbot:
            if self.switchbot.IsShow():
                self.switchbot.Hide()
            else:
                self.switchbot.Show()

i do classy InvetoryWindow

 

do def __init__(self):

 

musisz dodać

np u mnie jest to : self.switchbot = Bot()

 

czyli self.switchbot -- to raczej zrozumiałe a potem = i tutaj podajesz klasę która odpowiada za budowę board lub inaczej mówiąc klasę która chcesz wywołać przy otwarciu bs-a.

 

Jeżeli używasz bs-a by mijago (5 slotowego np.) to  użyj sobie tego kodu co dałem.

 

Słabo tłumacze ale chyba rozumiesz. xD

MTnm3AS.png

Opublikowano

@1361622928-U485574.pngBetters

 

Robisz wszystko tak samo. Oprócz game.py.

bs-a wywołujesz w uiinvetory.py

 

np.

    def ClickzmieniaczButton(self):
        if self.switchbot:
            if self.switchbot.IsShow():
                self.switchbot.Hide()
            else:
                self.switchbot.Show()

i do classy InvetoryWindow

 

do def __init__(self):

 

musisz dodać

np u mnie jest to : self.switchbot = Bot()

 

czyli self.switchbot -- to raczej zrozumiałe a potem = i tutaj podajesz klasę która odpowiada za budowę board lub inaczej mówiąc klasę która chcesz wywołać przy otwarciu bs-a.

 

Jeżeli używasz bs-a by mijago (5 slotowego np.) to  użyj sobie tego kodu co dałem.

 

Słabo tłumacze ale chyba rozumiesz. xD

Ogarnąłem to jakoś. :D

 

Temat do zamknięcia, zaraz wyślę raport. 

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...