Skocz do zawartości
Opublikowano

Witam, używam ogólnodostępnego systemu zmiany kanału
-- Rubinum Channel Changer --

Problem polega na tym że kiedy zmienię na jakikolwiek kanał to sie nie aktualizuje nad minimapą, cały czas pozostaje CH1.
Pewnie to zmiana musi nastąpić od strony pythona w cliencie ale nie wiem która rzecz za to odpowiada, serverinfo? constinfo? localeinfo?
Bo chyba z tego co widzę w tej paczce nie ma dorobionego def'a pod aktualizacje nazwy kanału w prawym górnym rogu.


Dla ułatwienia tutaj znalazłem post od Maliego ale z innym systemem ale pewnie logika ta sama
 

//root/game.py
//1.) Search for:
	def RefreshAlignment(self):
		self.interface.RefreshAlignment()
//2.) Add after:
	if app.WJ_SHOW_ALL_CHANNEL:
		def BINARY_OnChannelPacket(self, channel):
			import net
			dict = {'name' : 'Metin2'} # Replace with your server name.
			net.SetServerInfo((localeInfo.TEXT_CHANNEL % (dict['name'], channel)).strip())
			if self.interface:
				self.interface.wndMiniMap.serverInfo.SetText(net.GetServerInfo())
			
//locale_en/locale_game.txt:
TEXT_CHANNEL	%s, CH%d


I tu moje pytanie jak to przekształcić tutaj pod ten Rubinowy zmieniacz kanału? i czy to dać w uiminimap, game czy jak?
 

Rozwiązane przez mrvns

Przejdź do rozwiązania

Featured Replies

Opublikowano
  • Programista

Ogólnie spoko, ale ten dict tutaj jest zbędny, podobnie jak import net oraz ten wpis do locale_game.txt
Tak wygląda lepiej (imo):

server_name = "Nazwa Serwera, CH{}".format(channel)
net.SetServerInfo(server_name)
if self.interface:
	self.interface.wndMiniMap.serverInfo.SetText(server_name)

 

Opublikowano
  • Autor
W dniu 17.04.2024 o 12:11, KoYGeR napisał(a):

Ogólnie spoko, ale ten dict tutaj jest zbędny, podobnie jak import net oraz ten wpis do locale_game.txt
Tak wygląda lepiej (imo):

server_name = "Nazwa Serwera, CH{}".format(channel)
net.SetServerInfo(server_name)
if self.interface:
	self.interface.wndMiniMap.serverInfo.SetText(server_name)

 


Dziękuje za odpowiedz ale nadal mi to mało mówi jeśli chodzi o implementacje gdzie to dopisać według tej paczki co dałem w temacie.
Próbowałem zmienić jak na przykładzie ze w root -> game.py tak jak na przykładzie ale z twoim rozwiązaniem jak podłączyłem pod     if app.ENABLE_CHANGE_CHANNEL_SYSTEM: w tym przypadku to nie zachodzi zmiana podczas zmiany a sysser 0.

Opublikowano
  • Programista
Godzinę temu, Delta napisał(a):


Dziękuje za odpowiedz ale nadal mi to mało mówi jeśli chodzi o implementacje gdzie to dopisać według tej paczki co dałem w temacie.
Próbowałem zmienić jak na przykładzie ze w root -> game.py tak jak na przykładzie ale z twoim rozwiązaniem jak podłączyłem pod     if app.ENABLE_CHANGE_CHANNEL_SYSTEM: w tym przypadku to nie zachodzi zmiana podczas zmiany a sysser 0.

Wstaw paczkę do tematu, bo nie mam konta na tamtym forum

Opublikowano
  • Rozwiązanie
W dniu 16.04.2024 o 21:32, Delta napisał(a):

I tu moje pytanie jak to przekształcić tutaj pod ten Rubinowy zmieniacz kanału? i czy to dać w uiminimap, game czy jak?

Pełny poradnik Vegasaa

//@Source/Client/UserInterface/PythonNetworkStreamPhaseGame.cpp
//1.) Search for:
	TPacketGCChannel kChannelPacket;
	if (!Recv(sizeof(kChannelPacket), &kChannelPacket))
		return false;
//2.) Add after:
#ifdef WJ_SHOW_ALL_CHANNEL
	PyCallClassMemberFunc(m_apoPhaseWnd[PHASE_WINDOW_GAME], "BINARY_OnChannelPacket", Py_BuildValue("(i)", kChannelPacket.channel));
#endif

//@Source/Client/UserInterface/Locale_inc.h
#define WJ_SHOW_ALL_CHANNEL

//@Source/Client/UserInterface/PythonApplicationModule.cpp
//1.) Search for:
	PyModule_AddIntConstant(poModule, "CAMERA_STOP",			CPythonApplication::CAMERA_STOP);
//2.) Add after:
#ifdef WJ_SHOW_ALL_CHANNEL
	PyModule_AddIntConstant(poModule, "WJ_SHOW_ALL_CHANNEL", 1);
#else
	PyModule_AddIntConstant(poModule, "WJ_SHOW_ALL_CHANNEL", 0);
#endif

//root/game.py
//1.) Search for:
	def RefreshAlignment(self):
		self.interface.RefreshAlignment()
//2.) Add after:
	if app.WJ_SHOW_ALL_CHANNEL:
		def BINARY_OnChannelPacket(self, channel):
			import net
			dict = {'name' : 'Metin2'} # Replace with your server name.
			net.SetServerInfo((localeInfo.TEXT_CHANNEL % (dict['name'], channel)).strip())
			if self.interface:
				self.interface.wndMiniMap.serverInfo.SetText(net.GetServerInfo())
			
//locale_en/locale_game.txt:
TEXT_CHANNEL	%s, CH%d
Opublikowano
  • Autor
2 godziny temu, KoYGeR napisał(a):

Wstaw paczkę do tematu, bo nie mam konta na tamtym forum

Jestem na telefonie to trochę będę manewrował ale tutaj daje w załączniku tą pake @KoYGeR👋

Rubinum Channel System.rar

Opublikowano
  • Programista
11 godzin temu, Delta napisał(a):

Jestem na telefonie to trochę będę manewrował ale tutaj daje w załączniku tą pake @KoYGeR👋

Rubinum Channel System.rar 7.94 kB · 0 pobrań

Odezwij się do mnie na discordzie, bo muszę dopytać kilka kwestii

Opublikowano
  • Autor

Użyłem sposobu który wkleił @mrvnsi działa + dodałem rozwiązanie od strony root według @KoYGeR żeby nie umieszczać w locale_game.
Temat zamykam i wkrótce dodam pełny temat z zmienianiem kanału.

  • Januszek zablokował(a) ten temat
Gość
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.