Jump to content
  • We need you!

    You must register to discover all the features of our community!

Cache private messages


Recommended Posts

Hi.

 

This small release save our sent and received private messages till we change the character. If you close by mistake PM with somebody and after you'll open the converastion with that player the old messages will be loaded from dictionary.

 

All changes are in root.

Let's begin.

 

constInfo.py

Add:

WHISPER_MESSAGES = {}

 

game.py

Replace these methods:

	def OnRecvWhisper(self, mode, name, line):
		if mode == chat.WHISPER_TYPE_GM:
			self.interface.RegisterGameMasterName(name)
		line.replace(" : ", ": ")

		if not self.interface.FindWhisperButton(name) and constInfo.WHISPER_MESSAGES.has_key(name) and not self.interface.whisperDialogDict.has_key(name):
			self.interface.RecvWhisper(mode, name, line, True)
		else:
			self.interface.RecvWhisper(mode, name, line, False)

		if not constInfo.WHISPER_MESSAGES.has_key(name):
			constInfo.WHISPER_MESSAGES.update({name : [(mode, line)]})
		else:
			constInfo.WHISPER_MESSAGES[name].append((mode, line))

		chat.AppendWhisper(mode, name, line)

	def OnRecvWhisperSystemMessage(self, mode, name, line):
		chat.AppendWhisper(chat.WHISPER_TYPE_SYSTEM, name, line)
		self.interface.RecvWhisper(mode, name, line, False)

	def OnRecvWhisperError(self, mode, name, line):
		if localeInfo.WHISPER_ERROR.has_key(mode):
			chat.AppendWhisper(chat.WHISPER_TYPE_SYSTEM, name, localeInfo.WHISPER_ERROR[mode](name))
		else:
			chat.AppendWhisper(chat.WHISPER_TYPE_SYSTEM, name, "Whisper Unknown Error(mode=%d, name=%s)" % (mode, name))
		self.interface.RecvWhisper(mode, name, line, False)

 

interfaceModule.py

Replace this method:

	def RecvWhisper(self, mode, name, line, loadMsg):
		if loadMsg:
			for text in constInfo.WHISPER_MESSAGES[name]:
				chat.AppendWhisper(text[0], name, text[1])

		if not self.whisperDialogDict.has_key(name):
			btn = self.FindWhisperButton(name)
			if 0 == btn:
				btn = self.__MakeWhisperButton(name)
				btn.Flash()

				chat.AppendChat(chat.CHAT_TYPE_NOTICE, localeInfo.RECEIVE_MESSAGE % (name))

			else:
				btn.Flash()

		elif self.IsGameMasterName(name):
			dlg = self.whisperDialogDict[name]
			dlg.SetGameMasterLook()

 

introSelect.py

In def Open(self): add:

		WHISPER_MESSAGES = {}

 

uiWhisper.py

Add:

import constInfo

 

Replace this method:

	def OpenWithTarget(self, targetName="", loadMessages=False):
		chat.CreateWhisper(targetName)
		chat.SetWhisperBoxSize(targetName, self.GetWidth() - 60, self.GetHeight() - 90)
		self.chatLine.SetFocus()
		self.titleName.SetText(targetName)
		self.targetName = targetName
		self.textRenderer.SetTargetName(targetName)
		self.titleNameEdit.Hide()
		self.ignoreButton.Hide()
		if app.IsDevStage():
			self.reportViolentWhisperButton.Show()
		else:
			self.reportViolentWhisperButton.Hide()
		self.acceptButton.Hide()
		self.gamemasterMark.Hide()
		self.minimizeButton.Show()

		if loadMessages:
			if constInfo.WHISPER_MESSAGES.has_key(targetName):
				for text in constInfo.WHISPER_MESSAGES[targetName]:
					chat.AppendWhisper(text[0], targetName, text[1])

 

in def AcceptTarget(self): at botton add:

		if constInfo.WHISPER_MESSAGES.has_key(name):
			for text in constInfo.WHISPER_MESSAGES[name]:
				chat.AppendWhisper(text[0], name, text[1])

 

And replace this method:

	def SendWhisper(self):

		text = self.chatLine.GetText()
		textLength = len(text)

		if textLength > 0:
			if net.IsInsultIn(text):
				chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.CHAT_INSULT_STRING)
				return

			net.SendWhisperPacket(self.targetName, text)
			self.chatLine.SetText("")

			if not constInfo.WHISPER_MESSAGES.has_key(self.targetName):
				constInfo.WHISPER_MESSAGES.update({self.targetName : [(1, ("{}: {}".format(player.GetName(), text)))]})
			else:
				constInfo.WHISPER_MESSAGES[self.targetName].append([1, "{}: {}".format(player.GetName(), text)])

			chat.AppendWhisper(chat.WHISPER_TYPE_CHAT, self.targetName, player.GetName() + ": " + text)

 

That's all ;)

 

If you will find any bugs just give me some feedback.

Edited by KoYGeR (see edit history)
  • Love 12
Link to post
15 hours ago, KoYGeR said:

Replace

def __FindWhisperButton

To:

def FindWhisperButton

And, self.interface.FindWhisperButton has no attribute on game.py

 

Edit:

And in introSelect.py

import constInfo

constInfo.WHISPER_MESSEGES = {}

Edited by LegolasOfficial
Adding (see edit history)

[!] New in this year  [!]

NkczHwR.png

~ Addicted2 - Coming soon ~

Link to post

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


  • Current Donation Goals

  • Activity

    1. 9

      [FIX] Great-Offshop MEMORY-LEAK

    2. 1

      acc system

    3. 9

      [FIX] Great-Offshop MEMORY-LEAK

    4. 3

      Where do i find Guild Chat in source?

    5. 3

      Where do i find Guild Chat in source?

    6. 0

      Extended DS Inventory

    7. 6

      Shadow devil tower.

    8. 9

      [FIX] Great-Offshop MEMORY-LEAK

    9. 22

      [FIX] Fixing Metin2 memory leaks

  • Recently Browsing

    No registered users viewing this page.

×
×
  • Create New...

Important Information

Terms of Use / Privacy Policy / Guidelines / We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.