KoYGeR 112 Posted April 27, 2020 Share Posted April 27, 2020 M2 Download Center This is the hidden content, please Sign In or Sign Up ( 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. 16 1 5 22 Link to comment Share on other sites More sharing options...
Hik 108 Posted April 27, 2020 Share Posted April 27, 2020 Very useful, thanks! Link to comment Share on other sites More sharing options...
Active Member hachiwari 138 Posted April 27, 2020 Active Member Share Posted April 27, 2020 Nice idea Link to comment Share on other sites More sharing options...
KoYGeR 112 Posted April 28, 2020 Author Share Posted April 28, 2020 Topic updated - removed bug with double messages. 1 Link to comment Share on other sites More sharing options...
LegolasOfficial 0 Posted April 29, 2020 Share Posted April 29, 2020 def FindWhisperButton ? [!] New in this year [!] ~ Addicted2 - Coming soon ~ Link to comment Share on other sites More sharing options...
KoYGeR 112 Posted April 29, 2020 Author Share Posted April 29, 2020 3 hours ago, LegolasOfficial said: def FindWhisperButton ? Replace def __FindWhisperButton To: def FindWhisperButton Link to comment Share on other sites More sharing options...
LegolasOfficial 0 Posted April 30, 2020 Share Posted April 30, 2020 (edited) 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 April 30, 2020 by LegolasOfficial Adding [!] New in this year [!] ~ Addicted2 - Coming soon ~ Link to comment Share on other sites More sharing options...
Shahin 223 Posted November 4, 2020 Share Posted November 4, 2020 (edited) I found the problem of which this system is not so popular: Because of the loadMessages=False, if you press someone's whisper button, the chat is empty.. If loadMessages=True, the whisper button works as you designed, but the double messages are back again.. Can anyone find a solution please? Thank you! Edited November 4, 2020 by Shahin Link to comment Share on other sites More sharing options...
Active+ Member HFWhite 500 Posted September 7, 2023 Active+ Member Share Posted September 7, 2023 On 11/4/2020 at 2:06 AM, Shahin said: I found the problem of which this system is not so popular: Because of the loadMessages=False, if you press someone's whisper button, the chat is empty.. If loadMessages=True, the whisper button works as you designed, but the double messages are back again.. Can anyone find a solution please? Thank you! Anyone found a fix ? Link to comment Share on other sites More sharing options...
AndreiS 2 Posted September 10, 2023 Share Posted September 10, 2023 (edited) On 9/7/2023 at 9:31 AM, SCOOB said: Anyone found a fix ? Show GIF of the problem. I do not use this system but I can help fix this bug. Edited September 10, 2023 by AndreiS Link to comment Share on other sites More sharing options...
Recommended Posts