Jump to content

[Python] Notificação De Amigo Online


PACI
 Share

Recommended Posts

Boas.

 

23606b6be6.jpg

Achei engraçado "copiar" esta feature que o nosso companheiro Skype tem, para um client de metin2, para que fosse da mesma forma útil para os que estão ingame.

 

Como poderão ver é algo bastante simples de desenvolver, e requer apenas 5 minutos para tal. A sua implementação também não é nada do outro mundo.

 

## game.py
#### Adicionar antes da class GameWindow
import time
MESSENGER_LOGGINED = ""
MESSENGER_STOPPING_TIME = 0

#### Adicionar ao def Open(self)
#### antes do self.Show()
	self.__msgLoginBoard = ui.Board()
	self.__msgLoginBoard.SetParent(self)
	self.__msgLoginBoard.SetSize(200, 40)
	self.__msgLoginBoard.SetPosition(wndMgr.GetScreenWidth() - 210, wndMgr.GetScreenHeight() - 200)
	self.__msgLoginBoard.Hide()
	self.__msgLoginBoard.memberName = ui.TextLine()
	self.__msgLoginBoard.memberName.SetParent(self.__msgLoginBoard)
	self.__msgLoginBoard.memberName.SetText("None")
	self.__msgLoginBoard.memberName.SetWindowHorizontalAlignCenter()
	self.__msgLoginBoard.memberName.SetWindowVerticalAlignCenter()
	self.__msgLoginBoard.memberName.SetHorizontalAlignCenter()
	self.__msgLoginBoard.memberName.SetVerticalAlignCenter()
	self.__msgLoginBoard.memberName.Show()

#### Adicionar ao def OnUpdate(self)
	global MESSENGER_LOGGINED, MESSENGER_STOPPING_TIME
	if MESSENGER_LOGGINED != "" and time.clock() < MESSENGER_STOPPING_TIME:
		self.__msgLoginBoard.memberName.SetText("%s esta online!" % MESSENGER_LOGGINED)
		self.__msgLoginBoard.Show()
	else:
		self.__msgLoginBoard.Hide()
		MESSENGER_LOGGINED = ""
		MESSENGER_STOPPING_TIME = 0

## uiMessenger.py
#### Adicionar ao def OnLogin
	import game, time
	game.MESSENGER_LOGGINED = name
	game.MESSENGER_STOPPING_TIME = time.clock() + 10.0

Compilar o vosso root, e testar.

Abraço :)

Link to comment
Share on other sites

 

Boas.

 

23606b6be6.jpg

Achei engraçado "copiar" esta feature que o nosso companheiro Skype tem, para um client de metin2, para que fosse da mesma forma útil para os que estão ingame.

 

Como poderão ver é algo bastante simples de desenvolver, e requer apenas 5 minutos para tal. A sua implementação também não é nada do outro mundo.

 

 

## game.py

#### Adicionar antes da class GameWindow

import time

MESSENGER_LOGGINED = ""

MESSENGER_STOPPING_TIME = 0

 

#### Adicionar ao def Open(self)

#### antes do self.Show()

self.__msgLoginBoard = ui.Board()

self.__msgLoginBoard.SetParent(self)

self.__msgLoginBoard.SetSize(200, 40)

self.__msgLoginBoard.SetPosition(wndMgr.GetScreenWidth() - 210, wndMgr.GetScreenHeight() - 200)

self.__msgLoginBoard.Hide()

self.__msgLoginBoard.memberName = ui.TextLine()

self.__msgLoginBoard.memberName.SetParent(self.__msgLoginBoard)

self.__msgLoginBoard.memberName.SetText("None")

self.__msgLoginBoard.memberName.SetWindowHorizontalAlignCenter()

self.__msgLoginBoard.memberName.SetWindowVerticalAlignCenter()

self.__msgLoginBoard.memberName.SetHorizontalAlignCenter()

self.__msgLoginBoard.memberName.SetVerticalAlignCenter()

self.__msgLoginBoard.memberName.Show()

 

#### Adicionar ao def OnUpdate(self)

global MESSENGER_LOGGINED, MESSENGER_STOPPING_TIME

if MESSENGER_LOGGINED != "" and time.clock() < MESSENGER_STOPPING_TIME:

self.__msgLoginBoard.memberName.SetText("%s esta online!" % MESSENGER_LOGGINED)

self.__msgLoginBoard.Show()

else:

self.__msgLoginBoard.Hide()

MESSENGER_LOGGINED = ""

MESSENGER_STOPPING_TIME = 0

 

## uiMessenger.py

#### Adicionar ao def OnLogin

import game, time

game.MESSENGER_LOGGINED = name

game.MESSENGER_STOPPING_TIME = time.clock() + 10.0

Compilar o vosso root, e testar.

Abraço :)

 

 

 

É por isso que eu gosto deste paci lindo, obrigado bro por este "mini released" nem toda a gente sabia disto ;) Good Job

Link to comment
Share on other sites

Guest KemazI

Está top, apenas tenho um problema por causa da equipa online pois a equipa dá refresh 5 em 5 segundos e a mensagem está sempre a aparecer

Link to comment
Share on other sites

E esse loop de 5 minutos é para quê? xD

Quando a char GM faz login, altera o estado para online, quando faz logout altera para offline, não há necessidade de haver um refresh a meu ver.

Link to comment
Share on other sites

Guest KemazI

 

E esse loop de 5 minutos é para quê? xD

Quando a char GM faz login, altera o estado para online, quando faz logout altera para offline, não há necessidade de haver um refresh a meu ver.

 

Já tentei tirar o loop mas depois não aparece equipa online XD

Link to comment
Share on other sites

  • 11 months later...
  • 2 weeks later...

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...