Skocz do zawartości
Masz już aplikację Sharegon?

Odkryj wszystkie możliwości. Dowiedz się więcej

Sharegon.pl

Zainstaluj aplikację Sharegon i korzystaj z powiadomień push oraz licznika nowych aktywności bezpośrednio z ekranu głównego.

Aby zainstalować tę aplikację na iOS i iPadOS.
  1. Tap the Share icon in Safari
  2. Przewiń menu i stuknij Dodaj do ekranu początkowego.
  3. Stuknij Dodaj w prawym górnym rogu.
Zainstaluj aplikację Sharegon na Androidzie
  1. Otwórz Sklep Google Play na swoim smarfonie.
  2. Wyszukaj „Sharegon” w pasku wyszukiwania.
  3. Stuknij „Zainstaluj”, aby pobrać aplikację.

Problem z wdrożeniem systemu ibeast skills select - 'NoneType' object has no attribute 'Open'

Featured Replies

Opublikowano

Siema, próbowałem to dodać i mam takie coś w sysserze:

0306 20:37:10452 :: Traceback (most recent call last):

0306 20:37:10453 :: File "networkModule.py", line 266, in SetGamePhase

0306 20:37:10453 :: File "game.py", line 115, in init

0306 20:37:10453 :: File "game.py", line 1873, in __ServerCommand_Build

0306 20:37:10453 :: AttributeError

0306 20:37:10453 :: :

0306 20:37:10453 :: 'NoneType' object has no attribute 'Open'

0306 20:37:10453 ::

GAME.PY w załączniku. Miałby ktoś coś na to pomysł?

image.png

game.pyNiedostępne

Rozwiązane przez Sevence

Opublikowano

Nie dałeś żadnych plików do wglądu. Ale z doświadczeni wiem, że jego systemy przeważnie z wycieku nie są kompletne i wywalają kanały

Opublikowano
  • Autor
W dniu 7.03.2025 o 09:14, KoYGeR napisał(a):

Tutaj masz wybór umiejętności

Próbowałem ten Twój, ale jakoś mi to nie chciało śmigać, jednak nie chciałem zawracać głowy swoimi problemami

W dniu 7.03.2025 o 06:21, Rain94 napisał(a):

Nie dałeś żadnych plików do wglądu. Ale z doświadczeni wiem, że jego systemy przeważnie z wycieku nie są kompletne i wywalają kanały

Być może packa nie jest kompletna, dlatego wyrzuca jakieś błędy.

Opublikowano

Po pierwsze używaj pycharm do edycji plików Pythona, to unikniesz wielu problemów. Po drugie Notepad++> ctrl+f> szukaj w plikach, ustawiasz lokalizacje na root>”nonetype” i szukasz wyniku w pliku, który edytowałeś. Jak znajdziesz to szukasz pod tym def open(). Jesli jest, to wcięcia zrypane, jeśli nie ma, to chyba wiesz co dalej.

Opublikowano
  • Rozwiązanie

Błąd, mówi jasno masz niezainicjowany obiekt skillSelect i wywołujesz na nim metodę 'Open'. Sprawdzając Twój plik game.py widzę że wywołujesz inicjalizację po self.__ServerCommand_Build()

PythonKod został skopiowany
        if app.ENABLE_SKILL_SELECT_FEATURE:            self.skillSelect = uiselectskill.SkillSelectWindow()            self.skillSelect.Hide() 

Spróbuj przenieść ten blok kodu przed te dwa wywołania w ten sposób:

PythonKod został skopiowany
	def __init__(self, stream):		ui.ScriptWindow.__init__(self, "GAME")		self.SetWindowName("game")		net.SetPhaseWindow(net.PHASE_WINDOW_GAME, self)		player.SetGameWindow(self) 		if app.ENABLE_SKILL_SELECT_FEATURE:			self.skillSelect = None 		self.quickSlotPageIndex = 0		self.lastPKModeSendedTime = 0		self.pressNumber = None 		self.guildWarQuestionDialog = None		self.interface = None		self.targetBoard = None		self.console = None		self.mapNameShower = None		self.affectShower = None		self.playerGauge = None				if app.ENABLE_KEYBOARD_SETTINGS:			self.wndKeyChange = None				self.stream=stream		self.interface = interfaceModule.Interface()		self.interface.MakeInterface()		self.interface.ShowDefaultWindows() 		self.curtain = uiPhaseCurtain.PhaseCurtain()		self.curtain.speed = 0.03		self.curtain.Hide() 		self.targetBoard = uiTarget.TargetBoard()		self.targetBoard.SetWhisperEvent(ui.__mem_func__(self.interface.OpenWhisperDialog))		self.targetBoard.Hide() 		self.console = consoleModule.ConsoleWindow()		self.console.BindGameClass(self)		self.console.SetConsoleSize(wndMgr.GetScreenWidth(), 200)		self.console.Hide() 		self.mapNameShower = uiMapNameShower.MapNameShower()		self.affectShower = uiAffectShower.AffectShower() 		self.playerGauge = uiPlayerGauge.PlayerGauge(self)		self.playerGauge.Hide()				if app.ENABLE_SKILL_SELECT_FEATURE:			self.skillSelect = uiselectskill.SkillSelectWindow()			self.skillSelect.Hide()			 		self.__SetQuickSlotMode() 		self.__ServerCommand_Build()		self.__ProcessPreservedServerCommand()				if app.ENABLE_KEYBOARD_SETTINGS:			self.wndKeyChange = uiKeyChange.KeyChangeWindow(self, self.interface)			self.ADDKEYBUFFERCONTROL = player.KEY_ADDKEYBUFFERCONTROL			self.ADDKEYBUFFERALT = player.KEY_ADDKEYBUFFERALT			self.ADDKEYBUFFERSHIFT = player.KEY_ADDKEYBUFFERSHIFT

Sprawdź też, czy masz włączony w ogóle ten moduł i czy dodałeś wpis w locale_inc.h z #define ENABLE_SKILL_SELECT_FEATURE

Opublikowano
  • Autor

Dziękuję za pomoc, trochę się z tym bawiłem i to nie było wszystko, żeby to ogarnąć, ale jakoś sobie poradziłem. Trzeba było również usunąć kod od likana.

image.png

dziękuję @Sevence

i @wojciech74 za poradę dotyczącą programu, to faktycznie bardzo dużo pomaga.

Opublikowano
  • Autor
W dniu 7.03.2025 o 21:58, Sevence napisał(a):

Świetnie, że się udało. Możesz podzielić się krokami, które wykonałeś dodatkowo? Może to pomóc innym w podobnej sytuacji. @Krystian

Jeśli ktoś nie ma likana na swoim serwerze, trzeba po prostu usunąć kilka linijek związanych z likanem właśnie w uiselectskill.py

A dokładnie:

if app.ENABLE_WOLFMAN_CHARACTER:

JOB_NAME_DICT.update({4 : [localeInfo.JOB_WOLFMAN1,localeInfo.JOB_WOLFMAN2],})

if app.ENABLE_WOLFMAN_CHARACTER:

JOB_LIST.update({4 : localeInfo.JOB_WOLFMAN,})

def EmptyJob(self):

chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.JOB_SELECT_LYCAN_ERROR)

Gość
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.

Konto

Nawigacja

Skonfiguruj powiadomienia push w przeglądarce.

Chrome (Android)
  1. Stuknij ikonę kłódki obok paska adresu.
  2. Wybierz Uprawnienia → Powiadomienia.
  3. Dostosuj swoje preferencje.
Chrome (Desktop)
  1. Kliknij ikonę kłódki na pasku adresu.
  2. Wybierz Ustawienia witryny.
  3. Znajdź Powiadomienia i dostosuj swoje preferencje.