M2 Download Center
Download Here ( Internal )
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.