mirror of
https://github.com/Sneed-Group/Poodletooth-iLand
synced 2025-01-09 17:53:50 +00:00
Start on true friends
This commit is contained in:
parent
11913788e9
commit
4e470c4ee0
14 changed files with 33 additions and 120 deletions
|
@ -873,6 +873,7 @@ dclass DistributedToon : DistributedPlayer {
|
|||
takeDamage(uint16) broadcast ownrecv;
|
||||
setBattleId(uint32 = 0) required broadcast ram;
|
||||
setExperience(blob = [0*14]) required broadcast db;
|
||||
setTrueFriends(uint32[]) required ownrecv db;
|
||||
setMaxCarry(uint8 = 20) required ownrecv db;
|
||||
setTrackAccess(uint16[] = [0,0,0,0,1,1,0]) required broadcast ownrecv db;
|
||||
setTrackProgress(int8 = -1, uint32 = 0) required ownrecv db;
|
||||
|
|
|
@ -90,9 +90,6 @@ class ChatInputTyped(DirectObject.DirectObject):
|
|||
elif not base.talkAssistant.checkWhisperTypedChatAvatar(self.whisperId):
|
||||
messenger.send('Chat-Failed avatar typed chat test')
|
||||
self.deactivate()
|
||||
elif not base.talkAssistant.checkOpenTypedChat():
|
||||
messenger.send('Chat-Failed open typed chat test')
|
||||
self.deactivate()
|
||||
|
||||
def deactivate(self):
|
||||
self.chatEntry.set('')
|
||||
|
|
|
@ -32,7 +32,6 @@ from otp.distributed import OtpDoGlobals
|
|||
from otp.distributed.OtpDoGlobals import *
|
||||
from otp.distributed.TelemetryLimiter import TelemetryLimiter
|
||||
from otp.login import HTTPUtil
|
||||
from otp.login import LoginTTUAccount
|
||||
from otp.otpbase import OTPGlobals
|
||||
from otp.otpbase import OTPLocalizer
|
||||
from otp.otpgui import OTPDialog
|
||||
|
@ -46,7 +45,6 @@ class OTPClientRepository(ClientRepositoryBase):
|
|||
'PendingApproval',
|
||||
'Approved',
|
||||
'Rejected'])
|
||||
whiteListChatEnabled = 1 # TODO: Have server set this on localAvatar on login.
|
||||
|
||||
def __init__(self, serverVersion, launcher = None, playGame = None):
|
||||
ClientRepositoryBase.__init__(self)
|
||||
|
@ -71,9 +69,6 @@ class OTPClientRepository(ClientRepositoryBase):
|
|||
else:
|
||||
self.http = HTTPClient()
|
||||
|
||||
self.loginInterface = LoginTTUAccount.LoginTTUAccount(self)
|
||||
self.secretChatAllowed = base.config.GetBool('allow-secret-chat', True)
|
||||
self.openChatAllowed = base.config.GetBool('allow-open-chat', True)
|
||||
self.userSignature = base.config.GetString('signature', 'none')
|
||||
self.__isPaid = 1
|
||||
self.parentMgr.registerParent(OTPGlobals.SPRender, base.render)
|
||||
|
@ -1359,19 +1354,6 @@ class OTPClientRepository(ClientRepositoryBase):
|
|||
def allowFreeNames(self):
|
||||
return base.config.GetInt('allow-free-names', 1)
|
||||
|
||||
# TODO: Login Server for all those
|
||||
def allowSecretChat(self):
|
||||
return self.secretChatAllowed
|
||||
|
||||
def allowWhiteListChat(self):
|
||||
return hasattr(self, 'whiteListChatEnabled') and self.whiteListChatEnabled
|
||||
|
||||
def allowAnyTypedChat(self):
|
||||
return self.allowSecretChat() or self.allowWhiteListChat() or self.allowOpenChat()
|
||||
|
||||
def allowOpenChat(self):
|
||||
return self.openChatAllowed
|
||||
|
||||
def getStartingDistrict(self):
|
||||
district = None
|
||||
if len(self.activeDistrictMap.keys()) == 0:
|
||||
|
|
|
@ -30,7 +30,7 @@ class AvatarFriendInfo(AvatarHandle):
|
|||
result = True
|
||||
elif self.openChatEnabledYesNo and base.cr.openChatEnabled:
|
||||
result = True
|
||||
elif self.wlChatEnabledYesNo and base.cr.whiteListChatEnabled:
|
||||
elif self.wlChatEnabledYesNo and settings['speedchatPlus']:
|
||||
result = True
|
||||
except:
|
||||
pass
|
||||
|
|
|
@ -35,7 +35,7 @@ class FriendInfo(AvatarHandle):
|
|||
result = True
|
||||
elif self.openChatEnabledYesNo and base.cr.openChatEnabled:
|
||||
result = True
|
||||
elif self.wlChatEnabledYesNo and base.cr.whiteListChatEnabled:
|
||||
elif self.wlChatEnabledYesNo and settings['speedchatPlus']:
|
||||
result = True
|
||||
except:
|
||||
pass
|
||||
|
|
|
@ -14,7 +14,7 @@ BothSecrets = 2
|
|||
|
||||
def showFriendSecret(secretType = AvatarSecret):
|
||||
global globalFriendSecret
|
||||
if not base.cr.allowSecretChat():
|
||||
if not settings['trueFriends']:
|
||||
chatMgr = base.localAvatar.chatMgr
|
||||
chatMgr.fsm.request('noSecretChatAtAll')
|
||||
else:
|
||||
|
|
|
@ -1,12 +0,0 @@
|
|||
|
||||
|
||||
class LoginBase:
|
||||
|
||||
def __init__(self, cr):
|
||||
self.cr = cr
|
||||
|
||||
def sendLoginMsg(self, loginName, password, createFlag):
|
||||
pass
|
||||
|
||||
def getErrorCode(self):
|
||||
return 0
|
|
@ -1,24 +0,0 @@
|
|||
from direct.directnotify import DirectNotifyGlobal
|
||||
import LoginBase
|
||||
|
||||
class LoginTTUAccount(LoginBase.LoginBase):
|
||||
notify = DirectNotifyGlobal.directNotify.newCategory('LoginTTUAccount')
|
||||
|
||||
def __init__(self, cr):
|
||||
LoginBase.LoginBase.__init__(self, cr)
|
||||
|
||||
def supportsRelogin(self):
|
||||
return 1
|
||||
|
||||
def authorize(self, username, password):
|
||||
return 0 # No error!
|
||||
|
||||
def sendLoginMsg(self):
|
||||
cr = self.cr
|
||||
# TODO
|
||||
|
||||
def getErrorCode(self):
|
||||
return 0
|
||||
|
||||
def authenticateDelete(self, loginName, password):
|
||||
return 1
|
|
@ -1,43 +0,0 @@
|
|||
from direct.gui.DirectGui import *
|
||||
from pandac.PandaModules import *
|
||||
from otp.chat import ChatInputNormal
|
||||
from otp.otpbase import OTPLocalizer
|
||||
from otp.otpbase import OTPGlobals
|
||||
|
||||
class TTChatInputNormal(ChatInputNormal.ChatInputNormal):
|
||||
|
||||
def __init__(self, chatMgr):
|
||||
ChatInputNormal.ChatInputNormal.__init__(self, chatMgr)
|
||||
gui = loader.loadModel('phase_3.5/models/gui/chat_input_gui')
|
||||
self.chatFrame = DirectFrame(parent=aspect2dp, image=gui.find('**/Chat_Bx_FNL'), relief=None, pos=(-1.083, 0, 0.804), state=DGG.NORMAL, sortOrder=DGG.FOREGROUND_SORT_INDEX)
|
||||
self.chatFrame.hide()
|
||||
self.chatButton = DirectButton(parent=self.chatFrame, image=(gui.find('**/ChtBx_ChtBtn_UP'), gui.find('**/ChtBx_ChtBtn_DN'), gui.find('**/ChtBx_ChtBtn_RLVR')), pos=(0.182, 0, -0.088), relief=None, text=('', OTPLocalizer.ChatInputNormalSayIt, OTPLocalizer.ChatInputNormalSayIt), text_scale=0.06, text_fg=Vec4(1, 1, 1, 1), text_shadow=Vec4(0, 0, 0, 1), text_pos=(0, -0.09), textMayChange=0, command=self.chatButtonPressed)
|
||||
self.cancelButton = DirectButton(parent=self.chatFrame, image=(gui.find('**/CloseBtn_UP'), gui.find('**/CloseBtn_DN'), gui.find('**/CloseBtn_Rllvr')), pos=(-0.151, 0, -0.088), relief=None, text=('', OTPLocalizer.ChatInputNormalCancel, OTPLocalizer.ChatInputNormalCancel), text_scale=0.06, text_fg=Vec4(1, 1, 1, 1), text_shadow=Vec4(0, 0, 0, 1), text_pos=(0, -0.09), textMayChange=0, command=self.cancelButtonPressed)
|
||||
self.whisperLabel = DirectLabel(parent=self.chatFrame, pos=(0.02, 0, 0.23), relief=DGG.FLAT, frameColor=(1, 1, 0.5, 1), frameSize=(-0.23,
|
||||
0.23,
|
||||
-0.07,
|
||||
0.05), text=OTPLocalizer.ChatInputNormalWhisper, text_scale=0.04, text_fg=Vec4(0, 0, 0, 1), text_wordwrap=9.5, textMayChange=1)
|
||||
self.whisperLabel.hide()
|
||||
self.chatEntry = DirectEntry(parent=self.chatFrame, relief=None, scale=0.05, pos=(-0.2, 0, 0.11), entryFont=OTPGlobals.getInterfaceFont(), width=8.6, numLines=3, cursorKeys=0, backgroundFocus=0, command=self.sendChat)
|
||||
self.chatEntry.bind(DGG.OVERFLOW, self.chatOverflow)
|
||||
self.chatEntry.bind(DGG.TYPE, self.typeCallback)
|
||||
return
|
||||
|
||||
def delete(self):
|
||||
self.chatEntry.destroy()
|
||||
self.chatButton.destroy()
|
||||
self.cancelButton.destroy()
|
||||
ChatInputNormal.ChatInputNormal.delete(self)
|
||||
loader.unloadModel('phase_3.5/models/gui/chat_input_gui')
|
||||
|
||||
def typeCallback(self, extraArgs):
|
||||
if localAvatar.chatMgr.chatInputWhiteList and localAvatar.chatMgr.chatInputWhiteList.isActive():
|
||||
return
|
||||
else:
|
||||
messenger.send('enterNormalChat')
|
||||
|
||||
def checkForOverRide(self):
|
||||
return False
|
||||
if localAvatar.chatMgr.chatInputWhiteList and localAvatar.chatMgr.chatInputWhiteList.isActive():
|
||||
return True
|
||||
return False
|
|
@ -189,7 +189,7 @@ class TTChatInputWhiteList(ChatInputWhiteListFrame):
|
|||
flag = 1
|
||||
|
||||
for word in words:
|
||||
if word == '' or self.whiteList.isWord(word) or not base.cr.whiteListChatEnabled:
|
||||
if word == '' or self.whiteList.isWord(word) or not settings['speedchatPlus']:
|
||||
newwords.append(word)
|
||||
else:
|
||||
if self.checkBeforeSend:
|
||||
|
@ -204,7 +204,7 @@ class TTChatInputWhiteList(ChatInputWhiteListFrame):
|
|||
if not strict:
|
||||
lastword = words[-1]
|
||||
try:
|
||||
if lastword == '' or self.whiteList.isPrefix(lastword) or not base.cr.whiteListChatEnabled:
|
||||
if lastword == '' or self.whiteList.isPrefix(lastword) or not settings['speedchatPlus']:
|
||||
newwords[-1] = lastword
|
||||
elif flag:
|
||||
newwords[-1] = '\x01WLDisplay\x01' + lastword + '\x02'
|
||||
|
|
|
@ -7,7 +7,6 @@ from direct.gui.DirectGui import *
|
|||
from pandac.PandaModules import *
|
||||
from otp.chat import ChatManager
|
||||
from TTChatInputSpeedChat import TTChatInputSpeedChat
|
||||
from TTChatInputNormal import TTChatInputNormal
|
||||
from TTChatInputWhiteList import TTChatInputWhiteList
|
||||
|
||||
class ToontownChatManager(ChatManager.ChatManager):
|
||||
|
@ -34,19 +33,15 @@ class ToontownChatManager(ChatManager.ChatManager):
|
|||
self.whisperCancelButton = DirectButton(parent=self.whisperFrame, image=(gui.find('**/CloseBtn_UP'), gui.find('**/CloseBtn_DN'), gui.find('**/CloseBtn_Rllvr')), pos=(0.125, 0, -0.1), scale=1.179, relief=None, text=('', OTPLocalizer.ChatManagerCancel, OTPLocalizer.ChatManagerCancel), text_scale=0.05, text_fg=(0, 0, 0, 1), text_pos=(0, -0.09), textMayChange=0, command=self.__whisperCancelPressed)
|
||||
gui.removeNode()
|
||||
ChatManager.ChatManager.__init__(self, cr, localAvatar)
|
||||
self.defaultToWhiteList = base.config.GetBool('white-list-is-default', 1)
|
||||
self.chatInputSpeedChat = TTChatInputSpeedChat(self)
|
||||
self.normalPos = Vec3(0.25, 0, -0.196)
|
||||
self.whisperPos = Vec3(0, 0, -0.296)
|
||||
self.speedChatPlusPos = Vec3(-0.35, 0, 0.71)
|
||||
self.SCWhisperPos = Vec3(0, 0, 0)
|
||||
self.chatInputWhiteList = TTChatInputWhiteList()
|
||||
if self.defaultToWhiteList:
|
||||
self.chatInputNormal = self.chatInputWhiteList
|
||||
self.chatInputNormal.setPos(self.normalPos)
|
||||
self.chatInputNormal.desc = 'chatInputNormal'
|
||||
else:
|
||||
self.chatInputNormal = TTChatInputNormal(self)
|
||||
self.chatInputWhiteList.setPos(self.speedChatPlusPos)
|
||||
self.chatInputWhiteList.reparentTo(base.a2dTopLeft)
|
||||
self.chatInputWhiteList.desc = 'chatInputWhiteList'
|
||||
|
@ -129,8 +124,6 @@ class ToontownChatManager(ChatManager.ChatManager):
|
|||
self.fsm.request('normalChat')
|
||||
|
||||
def __scButtonPressed(self):
|
||||
if base.config.GetBool('want-qa-regression', 0):
|
||||
self.notify.info('QA-REGRESSION: CHAT: Speedchat')
|
||||
messenger.send('wakeup')
|
||||
if self.fsm.getCurrentState().getName() == 'speedChat':
|
||||
self.fsm.request('mainMenu')
|
||||
|
@ -185,8 +178,6 @@ class ToontownChatManager(ChatManager.ChatManager):
|
|||
self.noSecretChatAtAllAndNoWhitelist.hide()
|
||||
|
||||
def __whisperScButtonPressed(self, avatarName, avatarId, playerId):
|
||||
if base.config.GetBool('want-qa-regression', 0):
|
||||
self.notify.info('QA-REGRESSION: CHAT: Whisper')
|
||||
messenger.send('wakeup')
|
||||
hasManager = hasattr(base.cr, 'playerFriendsManager')
|
||||
transientFriend = 0
|
||||
|
|
|
@ -195,6 +195,7 @@ class DistributedToonAI(DistributedPlayerAI.DistributedPlayerAI, DistributedSmoo
|
|||
self.promotionStatus = [0, 0, 0, 0]
|
||||
self.buffs = []
|
||||
self.redeemedCodes = []
|
||||
self.trueFriends = []
|
||||
|
||||
def generate(self):
|
||||
DistributedPlayerAI.DistributedPlayerAI.generate(self)
|
||||
|
@ -447,6 +448,22 @@ class DistributedToonAI(DistributedPlayerAI.DistributedPlayerAI, DistributedSmoo
|
|||
def getExperience(self):
|
||||
return self.experience.makeNetString()
|
||||
|
||||
def b_setTrueFriends(self, trueFriends):
|
||||
self.d_setTrueFriends(trueFriends)
|
||||
self.setTrueFriends(trueFriends)
|
||||
|
||||
def d_setTrueFriends(self, trueFriends):
|
||||
self.sendUpdate('setTrueFriends', [trueFriends])
|
||||
|
||||
def setTrueFriends(self, trueFriends):
|
||||
self.trueFriends = trueFriends
|
||||
|
||||
def getTrueFriends(self):
|
||||
return self.trueFriends
|
||||
|
||||
def isTrueFriend(self, doId):
|
||||
return doId in self.trueFriends
|
||||
|
||||
def b_setInventory(self, inventory):
|
||||
self.setInventory(inventory)
|
||||
self.d_setInventory(self.getInventory())
|
||||
|
|
|
@ -546,3 +546,6 @@ class DistributedToonUD(DistributedObjectUD):
|
|||
|
||||
def setRedeemedCodes(self, redeemedCodes):
|
||||
pass
|
||||
|
||||
def setTrueFriends(self, trueFriends):
|
||||
pass
|
|
@ -85,6 +85,10 @@ if 'language' not in settings:
|
|||
settings['language'] = 'English'
|
||||
if 'cogLevel' not in settings:
|
||||
settings['cogLevel'] = True
|
||||
if 'speedchatPlus' not in settings:
|
||||
settings['speedchatPlus'] = True
|
||||
if 'trueFriends' not in settings:
|
||||
settings['trueFriends'] = True
|
||||
loadPrcFileData('Settings: res', 'win-size %d %d' % tuple(settings.get('res', (800, 600))))
|
||||
loadPrcFileData('Settings: fullscreen', 'fullscreen %s' % settings['fullscreen'])
|
||||
loadPrcFileData('Settings: music', 'audio-music-active %s' % settings['music'])
|
||||
|
@ -92,9 +96,6 @@ loadPrcFileData('Settings: sfx', 'audio-sfx-active %s' % settings['sfx'])
|
|||
loadPrcFileData('Settings: musicVol', 'audio-master-music-volume %s' % settings['musicVol'])
|
||||
loadPrcFileData('Settings: sfxVol', 'audio-master-sfx-volume %s' % settings['sfxVol'])
|
||||
loadPrcFileData('Settings: loadDisplay', 'load-display %s' % settings['loadDisplay'])
|
||||
loadPrcFileData('Settings: toonChatSounds', 'toon-chat-sounds %s' % settings['toonChatSounds'])
|
||||
loadPrcFileData('Settings: language', 'language %s' % settings['language'])
|
||||
loadPrcFileData('Settings: cogLevel', 'cogLevel %s' % settings['cogLevel'])
|
||||
|
||||
import os
|
||||
|
||||
|
|
Loading…
Reference in a new issue