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

Wysyłanie błędów na FTP


baran860

Rekomendowane odpowiedzi

Opublikowano

|

|

|

|

|

|

|

|

|

|

|

|

|

|

|

_Rekalma

 

 

Siema, z pomocą użytkownika @REPREDATOR udało mi się napisać prosty programik który po uruchomieniu wysyła plik na serwer FTP.

 

Troszeczkę inicjatywy ze strony klienta i zrobiłem coś takiego:

 

 

 

Działanie zostało pokazane teraz czas na pokazanie jak coś takiego zrobić :D

Na samym początku pobieramy source xxxx programu i edytujemy jego kod:

xxx

 

Musimy tutaj zamienić frazy:

  • "HOST_IP" 
  • "NAZWA_USERA"
  • "HASLO_USERA"
Chyba się domyślacie na co ;]
 
Gdy skompilujecie już program wklejcie go do głównego katalogu z klientem nadając mu nazwę "errorlog.exe"
____________________________________________
 
To program mamy już za sobą, czas na klienta! ;]
 
1.Rozpakujmy archiwum root.epk/.eix
2.Odszukajmy w nim plik "uisystem.py" i edytujmy go za pomocą Notepad++
3.Odszukajmy w nim funkcję "def __ClickLogOutButton(self):" i usuńmy ją całą tzn:
    def __ClickLogOutButton(self):
		if SYSTEM_MENU_FOR_PORTAL: 
			if app.loggined:
				self.Close()
				net.ExitApplication()
			else:
				self.Close()
				net.LogOutGame()
		else:
			self.Close()
			net.LogOutGame()

4.Wyszukujemy również funkcję "def __ClickExitButton(self):" i też ją usuwamy.

5.Na ich miejsce należy wkleić:

 

 

	def __ClickLogOutButton(self):
		import os
		statinfo = os.path.getsize("syserr.txt")
		if statinfo > 0:
			Board = ui.BoardWithTitleBar()
			Board.SetSize(231, 125)
			Board.SetCenterPosition()
			Board.AddFlag('float')
			Board.SetTitleName(' ')
			Board.SetCloseEvent(self.OnCancelWyjscie)
			self.Board = Board
			quest = ui.TextLine()
			quest.SetParent(self.Board)
			quest.SetDefaultFontName()
			quest.SetPosition(0, 43)
			quest.SetHorizontalAlignCenter()
			quest.SetWindowHorizontalAlignCenter()
			quest.SetText("Wyślij do nas dane dotyczące pracy klienta.")
			quest.SetOutline()
			self.quest = quest
			button = ui.Button()
			button.SetParent(self.Board)
			button.SetPosition(0, 64)
			button.SetUpVisual("d:/ymir work/ui/public/XLarge_Button_01.sub")
			button.SetOverVisual("d:/ymir work/ui/public/XLarge_Button_02.sub")
			button.SetDownVisual("d:/ymir work/ui/public/XLarge_Button_03.sub")
			button.SetText("Ok, wysyłam")
			button.SetWindowHorizontalAlignCenter()
			self.button = button
			button.SetEvent(self.OnWyjscieYes)
			button2 = ui.Button()
			button2.SetParent(self.Board)
			button2.SetPosition(0, 64+24)
			button2.SetUpVisual("d:/ymir work/ui/public/XLarge_button_01.sub")
			button2.SetOverVisual("d:/ymir work/ui/public/XLarge_button_02.sub")
			button2.SetDownVisual("d:/ymir work/ui/public/XLarge_button_03.sub")
			button2.SetText("Nie, nie wysyłam - wyloguj")
			button2.SetWindowHorizontalAlignCenter()
			button2.SetEvent(self.OnCancelWyjscie)
			self.button2 = button2
			self.Board.Show()
			self.quest.Show()
			self.button.Show()
			self.button2.Show()
		else:
			if SYSTEM_MENU_FOR_PORTAL: 
				if app.loggined:
					self.Close()
					net.ExitApplication()
				else:
					self.Close()
					net.LogOutGame()
			else:
				self.Close()
				net.LogOutGame()
			return TRUE

	def OnCancelWyjscie(self):
		self.Board.Hide()
		self.button.Hide()
		self.quest.Hide()
		self.button2.Hide()
		self.Board = None
		self.button = None
		self.quest = None
		self.button2 = None
		if SYSTEM_MENU_FOR_PORTAL: 
			if app.loggined:
				self.Close()
				net.ExitApplication()
			else:
				self.Close()
				net.LogOutGame()
		else:
			self.Close()
			net.LogOutGame()
		return TRUE

	def OnWyjscieYes(self):
		self.Board.Hide()
		self.button.Hide()
		self.quest.Hide()
		self.button2.Hide()
		self.Board = None
		self.button = None
		self.quest = None
		self.button2 = None
		### Uruchomienie programu wysyłającego
		import shutil
		import os
		shutil.copyfile("syserr.txt", "wysylka.txt")
		os.system("errorlog.exe")
		###

		import uiTip
		self.BoardMessage = uiTip.BigBoard()
		self.BoardMessage.SetTip("Dane zostały pomyślnie wysłane")
		self.BoardMessage.SetTop()
		return TRUE

	def __ClickExitButton(self):
		import os
		statinfo = os.path.getsize("syserr.txt")
		if statinfo > 0:
			Board = ui.BoardWithTitleBar()
			Board.SetSize(231, 125)
			Board.SetCenterPosition()
			Board.AddFlag('float')
			Board.SetTitleName(' ')
			Board.SetCloseEvent(self.OnCancelWyjscie2)
			self.Board = Board
			quest = ui.TextLine()
			quest.SetParent(self.Board)
			quest.SetDefaultFontName()
			quest.SetPosition(0, 43)
			quest.SetHorizontalAlignCenter()
			quest.SetWindowHorizontalAlignCenter()
			quest.SetText("Wyślij do nas dane dotyczące pracy klienta.")
			quest.SetOutline()
			self.quest = quest
			button = ui.Button()
			button.SetParent(self.Board)
			button.SetPosition(0, 64)
			button.SetUpVisual("d:/ymir work/ui/public/XLarge_Button_01.sub")
			button.SetOverVisual("d:/ymir work/ui/public/XLarge_Button_02.sub")
			button.SetDownVisual("d:/ymir work/ui/public/XLarge_Button_03.sub")
			button.SetText("Ok, wysyłam")
			button.SetWindowHorizontalAlignCenter()
			self.button = button
			button.SetEvent(self.OnWyjscieYes2)
			button2 = ui.Button()
			button2.SetParent(self.Board)
			button2.SetPosition(0, 64+24)
			button2.SetUpVisual("d:/ymir work/ui/public/XLarge_button_01.sub")
			button2.SetOverVisual("d:/ymir work/ui/public/XLarge_button_02.sub")
			button2.SetDownVisual("d:/ymir work/ui/public/XLarge_button_03.sub")
			button2.SetText("Nie, nie wysyłam - wyjdź")
			button2.SetWindowHorizontalAlignCenter()
			button2.SetEvent(self.OnCancelWyjscie2)
			self.button2 = button2
			self.Board.Show()
			self.quest.Show()
			self.button.Show()
			self.button2.Show()
		else:
			net.ExitApplication()

	def OnCancelWyjscie2(self):
		self.Board.Hide()
		self.button.Hide()
		self.quest.Hide()
		self.button2.Hide()
		self.Board = None
		self.button = None
		self.quest = None
		self.button2 = None
		self.Close()
		net.ExitApplication()
		return TRUE

	def OnWyjscieYes2(self):
		self.Board.Hide()
		self.button.Hide()
		self.quest.Hide()
		self.button2.Hide()
		self.Board = None
		self.button = None
		self.quest = None
		self.button2 = None
		### Uruchomienie programu wysyłającego
		import shutil
		import os
		shutil.copyfile("syserr.txt", "wysylka.txt")
		os.system("errorlog.exe")
		###
		import uiTip
		self.BoardMessage = uiTip.BigBoard()
		self.BoardMessage.SetTip("Dane zostały pomyślnie wysłane")
		self.BoardMessage.SetTop()
		return TRUE 

 

 

gdzieś np. nad "def __ClickSystemOptionButton(self):".

Są to te same funkcje tylko "lekko" zmodyfikowane xD

 
 
Teraz zapisujemy plik "uisystem.py" i pakujemy plik root.epk/.eix
 
PS!! Ten plik wysylka.txt to jest kopia pliku syserr.txt
 
PS2. To jest raczej dobre rozwiązanie na beta serwery niż na oficjalne.
THE END!
 
Nie pomagam z "wgraniem" tego!

8910814572903361049127.png

Opublikowano

Nooo pomyslowe, teraz administratorzy ktorzy to wprowadza beda wiedziec co dolega poszczegolnym ludiom w cliencie i o wiele prostsza bedzie naprawa problemu. GZ :)

1386175744-U112610.png
Specjalista
Opublikowano

haham,dobre wręcz zajebisty pomysł.

Chociaż gdy każdy będzie to wykorzystywał jako np spam ??

Przy każdym wysyłaniu będzie się tworzył nowy plik w ftp ?

Pomogłeś,pomogę kiedy tylko brachu mogę!

 

graphic.png

 

Opublikowano

haham,dobre wręcz zajebisty pomysł.

Chociaż gdy każdy będzie to wykorzystywał jako np spam ??

Przy każdym wysyłaniu będzie się tworzył nowy plik w ftp ?

 

To dopiszemy IP do nazwy pliku i po kłopocie (tylko wtedy trzeba będzie leciutko edytować kod programu)

 

@Edit a co im ten spam da? :D że go admin zobaczy

8910814572903361049127.png

Specjalista
Opublikowano

To dopiszemy IP do nazwy pliku i po kłopocie (tylko wtedy trzeba będzie leciutko edytować kod programu)

 

@Edit a co im ten spam da? :D że go admin zobaczy

To Ty chyba jeszcze nie znasz graczy z mniejszym przedziałem wiekowym xD

To byłby dobry pomysł żeby przy każdym wpisie dodać adres ip tego kto wysłał,lecz to jeżeli ma zmienne ip. xD

Pomogłeś,pomogę kiedy tylko brachu mogę!

 

graphic.png

 

Opublikowano

To Ty chyba jeszcze nie znasz graczy z mniejszym przedziałem wiekowym xD

To byłby dobry pomysł żeby przy każdym wpisie dodać adres ip tego kto wysłał,lecz to jeżeli ma zmienne ip. xD

To nie wiem xD ja bym to zastosował tylko na bete usuną błędy i już się nimi nie martwił ;]

 

@Edit:

Dodatkowo można przed wysłaniem dopisać do końca/początku pliku syserr.txt/wysylka.txt nazwę postaci

8910814572903361049127.png

Opublikowano

Dać graczom dostęp do serwera - dobry pomysł!

Nie wiem jak Ty, ale ja już mam całą masę pomysłów jak można to wykorzystać, by dać nauczkę takiej administracji. To jak wpuścić dziecko na wesołe miasteczko... :D

Opublikowano

Nie wiem jak ty Inkscape ale można utworzyć użytkownika który będzie mógł tylko wgrywać pliki do jednego folderu , nie będzie mógł usuwać ani otwierać taka magia wiesz?, a pozatym można utworzyć inny serwer FTP, np. darmowy oddzielony od serwera.

Opublikowano

Nie wiem jak ty Inkscape ale można utworzyć użytkownika który będzie mógł tylko wgrywać pliki do jednego folderu , nie będzie mógł usuwać ani otwierać taka magia wiesz?, a pozatym można utworzyć inny serwer FTP, np. darmowy oddzielony od serwera.

A kto powiedział, że ja bym korzystał z tego użytkownika? Kto powiedział, że wysłałbym na serwer plik txt? Od razu poleciałby skrypt .PHP wywołany później przez www i amen.

 

 

Teraz głowę Ci obetną, bo nagle wszyscy będą mieli serwery bez php.

:( Ojojjj...

Opublikowano

A kto powiedział, że ja bym korzystał z tego użytkownika? Kto powiedział, że wysłałbym na serwer plik txt? Od razu poleciałby skrypt .PHP wywołany później przez www i amen.

 

Teraz głowę Ci obetną, bo nagle wszyscy będą mieli serwery bez php.

 

 

Nie wiem jak ty Inkscape ale można utworzyć użytkownika który będzie mógł tylko wgrywać pliki do jednego folderu , nie będzie mógł usuwać ani otwierać taka magia wiesz?, a pozatym można utworzyć inny serwer FTP, np. darmowy oddzielony od serwera.

 

Co z tego?

Chodzi tutaj o to, aby administrator przeczytał te błędy, a gracz z dostępem może je usunąć oraz zrobić wiele innych ciekawych rzeczy.

pre_1405084226__sygnatura_3.png

Opublikowano

Ehh to mozna dac zapis do folderu a wtedy sobie zgaduj jego nazwe po ii kto by podawal dane ftp dedyka czy vps

 

 

@Edit a jak chcesz podesłać tym sposobem plik .php? Jak to pobiera plik wysylka.txt?

8910814572903361049127.png

Opublikowano

Ehh to mozna dac zapis do folderu a wtedy sobie zgaduj jego nazwe po ii kto by podawal dane ftp dedyka czy vps

 

 

@Edit a jak chcesz podesłać tym sposobem plik .php? Jak to pobiera plik wysylka.txt?

 

Usunąć wszystkie foldery.

Skoro ludzie mają zamiar wgrywać to na swój serwer to nie można się po nich spodziewać logicznego myślenia, co może wiązać się z podaniem danych do dedyka, na którym stoi serwer.

A co to za problem edycja nazwy pliku jaką wysyła?

pre_1405084226__sygnatura_3.png

Opublikowano

Dać graczom dostęp do serwera - dobry pomysł!

 

A Czy ktoś powiedział, że to musi być serwer, na którym stoi serwer metka ? Może być to jakiś darmowy hosting i tyle ;]

da5e9f82fbb05240438e374847f4a6f9.gif

Opublikowano

 

A Czy ktoś powiedział, że to musi być serwer, na którym stoi serwer metka ? Może być to jakiś darmowy hosting i tyle ;]

 

 

 

Usunąć wszystkie foldery.

Skoro ludzie mają zamiar wgrywać to na swój serwer to nie można się po nich spodziewać logicznego myślenia, co może wiązać się z podaniem danych do dedyka, na którym stoi serwer.

A co to za problem edycja nazwy pliku jaką wysyła?

pre_1405084226__sygnatura_3.png

Opublikowano

A pomijając to, że udostępniasz dane do serwera, problemem jest też to, że syserr jest najczęściej potrzebny w przypadku, gdy client się nie chce uruchomić lub w którymś momencie się wyłącza ;-)

Opublikowano

A pomijając to, że udostępniasz dane do serwera, problemem jest też to, że syserr jest najczęściej potrzebny w przypadku, gdy client się nie chce uruchomić lub w którymś momencie się wyłącza ;-)

Techniku złocisty, jaki czub daje graczom clienta, który nie odpala?! Zanim walniesz taką głupotę to pomyśl chociaż co piszesz. Jeśli już by tak się działo to co za problem dodać ten skrypt do system.py, introselect, intrologin, introloading?

ZcWbjGf.png


Serdecznie zapraszam :)

Opublikowano

Techniku złocisty, jaki czub daje graczom clienta, który nie odpala?! Zanim walniesz taką głupotę to pomyśl chociaż co piszesz. Jeśli już by tak się działo to co za problem dodać ten skrypt do system.py, introselect, intrologin, introloading?

Ktoś pisał, że ostatnio ilość idiotów na forum wzrosła?

 

Btw.

5357e006216f3.png

Czego po Tobie oczekiwać... ;_;

 

@Aw

Można skompilować skrypt?

Opublikowano

Ktoś pisał, że ostatnio ilość idiotów na forum wzrosła?

 

Btw.

5357e006216f3.png

Czego po Tobie oczekiwać... ;_;

No wzrosła, Ty tak dla przykładu. Ja tu tłumaczę Ci, że jesteś w błędzie, a Ty mnie hejtujesz. No coś tu jest nie tak :/

Jeśli nie jesteś bezmózgiem to ogarnij, że umiem więcej niż Ty, a to, że napisałem sobie tak w lokalizacji to już mój problem

ZcWbjGf.png


Serdecznie zapraszam :)

Opublikowano

No wzrosła, Ty tak dla przykładu. Ja tu tłumaczę Ci, że jesteś w błędzie, a Ty mnie hejtujesz. No coś tu jest nie tak :/

Jeśli nie jesteś bezmózgiem to ogarnij, że umiem więcej niż Ty, a to, że napisałem sobie tak w lokalizacji to już mój problem

Ja wiem, że umiesz więcej niż ja.

 

 

5357e6e4f3114.png

5357e70cb19b8.png5357e72019af6.png

5357e7493e9e7.png

 

 

Już nie wspomnę o Twoim poście w temacie o funkcji regeneracji :D :D :D :D :D

 

@Aw

Można zrobić tęczową ramkę?

Opublikowano

Ja wiem, że umiesz więcej niż ja.

 

 

5357e6e4f3114.png

5357e70cb19b8.png5357e72019af6.png

5357e7493e9e7.png

 

 

Już nie wspomnę o Twoim poście w temacie o funkcji regeneracji :D :D :D :D :D

 

@Aw

Można zrobić tęczową ramkę?

Popatrz ja datę po pierwsze, po drugie to są pytania na jakimś już poziomie, a nie prośby o rozpakowanie item proto czy coś. Widzę, że Twoje posty już zarchiwizowano, tak to bym się pośmiał soł macz :) 

ZcWbjGf.png


Serdecznie zapraszam :)

Zarchiwizowany

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

×
×
  • Dodaj nową pozycję...