def __init__(self,transition='inRight'): self._width = width = 550 self._height = height = 420 self._scrollWidth = self._width*0.90 self._scrollHeight = self._height - 180 self._subWidth = self._scrollWidth*0.95; self._subHeight = 200 self._current_tab = bs.getConfig()['effectsMod']['tab'] txtFinal = "Ajustes de Effects Mod" if bs.getLanguage() == "Spanish" else "Effects Mod Settings" if bs.getLanguage() == "Spanish": self._credits = ("Modifica y aplica efectos\n" "personalizados a tus personajes.\n\n" "Programado por Froshlee14") else: self._credits = ("Modify and add custom\n" "effects to your characters.\n\n" "Mod made by SAHIL") self._rootWidget = bs.containerWidget(size=(width,height),transition=transition, scale=2.0 if gSmallUI else 1.4 if gMedUI else 1.0, stackOffset=(0,-30) if gSmallUI else (0,0)) self._backButton = b = bs.buttonWidget(parent=self._rootWidget,autoSelect=True,position=(60,self._height-75),size=(130,60), scale=0.8,textScale=1.2,label=bs.Lstr(resource='backText'),buttonType='back',onActivateCall=self._back) if gDoAndroidNav: bs.buttonWidget(edit=self._backButton,buttonType='backSmall',size=(60,60),label=bs.getSpecialChar('back')) bs.containerWidget(edit=self._rootWidget,cancelButton=b) t = bs.textWidget(parent=self._rootWidget,position=(0,height-70),size=(width,50), text=txtFinal, hAlign="center",color=gTitleColor, vAlign="center",maxWidth=width*0.5) v = self._subHeight - 55 v0 = height - 90 tabs = [['general','General' if bs.getLanguage() == "Spanish" else 'General'], ['effects','Efectos' if bs.getLanguage() == "Spanish" else 'Effects'], #['soon','Proximamente' if bs.getLanguage() == "Spanish" else 'Coming soon'], ['info',"Info" if bs.getLanguage() == "Spanish" else 'Info'],] self._tab_buttons = bsUI._createTabButtons( self._rootWidget, tabs, pos=(self._width*0.08,45+self._scrollHeight), size=(self._scrollWidth*0.93,30), onSelectCall=self._setTab) self._scrollWidget = bs.scrollWidget(parent=self._rootWidget,size=(self._subWidth,self._scrollHeight), highlight=False, position=(self._width*0.08,51),captureArrows=True) self._tabContainer = None self._setTab(self._current_tab)
def getInstanceScoreBoardDescription(self): return ({ "Chinese": "1V1击败 ${ARG1} 个敌人.!" }.get(bs.getLanguage(), 'Defeat ${ARG1} enemies in 1v1 battles.'), self.settings['Kills to Win Per Player'] if isinstance( self.getSession(), bs.FreeForAllSession) else self.settings['Kills to Win Per Team'])
def _onPartyMemberPress(self, clientID, isHost, widget): # if we're the host, pop up 'kick' options for all non-host members if bsInternal._getForegroundHostSession() is not None: kickHost = True else: # kick-votes appeared in build 14248 if bsInternal._getConnectionToHostInfo().get('buildNumber', 0) < 14248: return kickHost = False if bs.getLanguage() == 'Russian': choicesList = [ 'Изгнать' if kickHost else 'Голосовать за вылет', 'Вылет без голосования', 'Убрать из игры', 'Полет', 'Новый полет', 'Вылечить', 'Усыпить', 'Разморозить', 'Превратить в коробку', 'Радужный скин', 'Профиль аккаунта' ] else: choicesList = [ 'Kick' if kickHost else 'Vote to Kick', 'Departure without a vote', 'Remove from game', 'Fly', 'New fly', 'Cure', 'Put to sleep', 'Defrost', 'Turn into box', 'Rainbow skin', 'Account profile' ] bsUI.PopupMenuWindow( position=widget.getScreenSpaceCenter(), scale=2.3 if bsUI.gSmallUI else 1.65 if bsUI.gMedUI else 1.23, choices=choicesList, currentChoice='kick', delegate=self) self._popupType = 'partyMemberPress' self._popupPartyMemberClientID = clientID self._popupPartyMemberIsHost = isHost
def restoreSettings(self): def doIt(): bs.getConfig()["effectsMod"] = getDefaultSettings() bs.writeConfig() self._setTab("general") bs.screenMessage("Ajustes restaurados" if bs.getLanguage() == "Spanish" else "Settings restored") ConfirmWindow("Restaurar ajustes por defecto?" if bs.getLanguage() == "Spanish" else "Restore default settings?", width=400, height=120, action=doIt, okText=bs.Lstr(resource='okText'))
def a(): bsInternal._addTransaction( { 'type': 'PUBLIC_PARTY_QUERY', 'proto': env['protocolVersion'], 'lang': bs.getLanguage() }, callback=lol) bsInternal._runTransactions() bs.realTimer(30000, a)
def _update(self, forceUpdate=False): if hasattr(self, 'moderName') and not forceUpdate: if not bs.get_setting("in_menu_author_name", True): bs.animate(self.moderName.node, 'opacity', {0: self.moderName.node.opacity, 500: 0.0}) else: if self.moderName.node.opacity < 1.0: bs.animate(self.moderName.node, 'opacity', {0: self.moderName.node.opacity, 500: 1.0}) bs.gameTimer(500, bs.Call(self.change_text_position)) else: self.change_text_position() l = bs.getLanguage() if l != self._language: self._language = l env = bs.getEnvironment() y = 20 gScale = 1.1 self._wordActors = [] baseDelay = 1000 delay = baseDelay delayInc = 20 baseX = -170 x = baseX-20 spacing = 55*gScale yExtra = 0 if env['kioskMode'] else 0 x1 = x delay1 = delay for shadow in (True, False): x = x1 delay = delay1 self._makeWord('D', x-15, y-23, scale=1.3*gScale, delay=delay-500, vrDepthOffset=3, shadow=True) self._makeWord('e', x+38, y-23, scale=1.3*gScale, delay=delay-400, vrDepthOffset=3, shadow=True) self._makeWord('l', x+88, y-23, scale=1.3*gScale, delay=delay-300, vrDepthOffset=3, shadow=True) self._makeWord('i', x+138, y-23, scale=1.3*gScale, delay=delay-200, vrDepthOffset=3, shadow=True) self._makeWord('t', x+188, y-23, scale=1.3*gScale, delay=delay-100, vrDepthOffset=3, shadow=True) self._makeWord('e', x+238, y-23, scale=1.3*gScale, delay=delay, vrDepthOffset=3, shadow=True) self._makeWord('l', x+288, y-23, scale=1.3*gScale, delay=delay+100, vrDepthOffset=3, shadow=True) self._makeWord('_Mod', x+338, y-23, scale=1.3*gScale, delay=delay+200, vrDepthOffset=3, shadow=True) self._makeLogo(x+188, y-19,scale=.32*gScale,delay=delay, customTexture="graphicsIcon")
def fetchedDataCallBack(self, address, port, result): #print (address, port, result) global finalFetchedAddress finalFetchedAddress = address global finalFetchedPort finalFetchedPort = port if result is not None: env = bs.getEnvironment() try: bsInternal._addTransaction( { 'type': 'PUBLIC_PARTY_QUERY', 'proto': env['protocolVersion'], 'lang': bs.getLanguage() }, callback=bs.WeakCall(self._serverSynchronizer)) bsInternal._runTransactions() except Exception as e: print(e) if 1 < result < 100: self.pingStatusColor = (0, 1, 0) elif 100 < result < 500: self.pingStatusColor = (1, 1, 0) else: self.pingStatusColor = (1, 0, 0) if self._rootWidget.exists(): fadeToBack() bs.textWidget(edit=self.lt, text='') bs.textWidget(edit=self.pt, text='ping:') bs.textWidget(edit=self.pvt, text=str(result), color=self.pingStatusColor) if self.buttonChecker == False: self.sb = bs.buttonWidget( parent=self._rootWidget, autoSelect=True, position=(140, 125), size=(80, 20), textColor=(1.0, 1.0, 1.0), label=bs.Lstr(resource='statsText'), color=(0.356, 0.760, 0.905), onActivateCall=self._stats) self.ob = bs.buttonWidget( parent=self._rootWidget, autoSelect=True, position=(105, 15), size=(150, 50), color=(0.356, 0.760, 0.905), textColor=(1.0, 1.0, 1.0), label=bs.Lstr( resource='gatherWindow.manualConnectText'), onActivateCall=self._connect) self.buttonChecker = True else: if self._rootWidget.exists(): fadeToRed() if self.buttonChecker == True: self.sb.delete() self.ob.delete() self.buttonChecker = False bs.textWidget(edit=self.t, text='') bs.textWidget(edit=self.pt, text='') bs.textWidget(edit=self.pvt, text='') bs.textWidget(edit=self.ts, text='') bs.textWidget(edit=self.tvs, text='') bs.textWidget(edit=self.lt, text='SERVER OFFLINE', color=(1, 0, 0))
infoLang = '* sıralamaya girmek için, en az 20 oyun oynamalısınız !' speedInfoLang = 'Daha hızlı koşmanı sağlar!\nHoşuna gidecek' speedTextLang = 'HIZ ÇİZMELERİ' superStarInfoLang = 'Seni Dokunulmaz yapar\naşırı güçlü !' superStarTextLang = 'SÜPER YILDIZ' iceCubeInfoLang = 'Seni DONDURUR ! \nUZAK DUR !' iceCubeTextLang = 'BUZ KÜPÜ' surpriseInfoLang = 'Sağlık-Paketine benziyor\nama SAHTE ! \ndikkat et !' surpriseTextLang = 'SÜRPRİZ' martyInfoLang = 'Öldürüldüğünüz konuma \nyapışkan bombalar\ndüşürür !' martyTextLang = 'ŞEHİTLİK' welcomeTextLang = 'Myth B. sunucusuna hoşgeldiniz' ScreenLanguage = ScreenLanguageEnglish if bs.getLanguage() == 'Turkish': ScreenLanguage = ScreenLanguageTurkish class MythBServerInfo(bs.TeamGameActivity): @classmethod def getName(cls): return '' @classmethod def getSupportedMaps(cls, sessionType): return [u'Player Stats By MythB'] def onBegin(self): bs.TeamGameActivity.onBegin(self) scoreList = []
def _update(self): # update logo in case it changes.. if self._logoNode is not None and self._logoNode.exists(): customTexture = self._getCustomLogoTexName() if customTexture != self._customLogoTexName: self._customLogoTexName = customTexture self._logoNode.texture = bs.getTexture(customTexture if customTexture is not None else 'logo') self._logoNode.modelOpaque = None if customTexture is not None else bs.getModel('logo') self._logoNode.modelTransparent = None if customTexture is not None else bs.getModel('logoTransparent') # if language has changed, recreate our logo text/graphics l = bs.getLanguage() if l != self._language: self._language = l env = bs.getEnvironment() y = 20 gScale = 1.1 self._wordActors = [] baseDelay = 1000 delay = baseDelay delayInc = 20 # come on faster after the first time if gDidInitialTransition: baseDelay = 0 delay = baseDelay delayInc = 20 # we draw higher in kiosk mode (make sure to test this when making adjustments) # for now we're hard-coded for a few languages.. should maybe look into generalizing this?.. if bs.getLanguage() == 'Chinese': baseX = -270 x = baseX-20 spacing = 85*gScale yExtra = 80 if env['kioskMode'] else 0 self._makeLogo(x-110+50,113+y+1.2*yExtra,0.34*gScale,delay=baseDelay+100,customTexture='chTitleChar1',jitterScale=2.0,vrDepthOffset=-30) x += spacing; delay += delayInc self._makeLogo(x-10+50,110+y+1.2*yExtra,0.31*gScale,delay=baseDelay+150,customTexture='chTitleChar2',jitterScale=2.0,vrDepthOffset=-30) x += 2.0 * spacing; delay += delayInc self._makeLogo(x+180-140,110+y+1.2*yExtra,0.3*gScale,delay=baseDelay+250,customTexture='chTitleChar3',jitterScale=2.0,vrDepthOffset=-30) x += spacing; delay += delayInc self._makeLogo(x+241-120,110+y+1.2*yExtra,0.31*gScale,delay=baseDelay+300,customTexture='chTitleChar4',jitterScale=2.0,vrDepthOffset=-30) x += spacing; delay += delayInc self._makeLogo(x+300-90,105+y+1.2*yExtra,0.34*gScale,delay=baseDelay+350,customTexture='chTitleChar5',jitterScale=2.0,vrDepthOffset=-30) self._makeLogo(baseX+155, 146+y+1.2*yExtra, 0.28*gScale, delay=baseDelay+200, rotate=-7) else: baseX = -170 x = baseX-20 spacing = 55*gScale yExtra = 80 if env['kioskMode'] else 0 x1 = x delay1 = delay for shadow in (True, False): x = x1 delay = delay1 self._makeWord('B',x-50,y-23+0.8*yExtra,scale=1.3*gScale,delay=delay,vrDepthOffset=3,shadow=shadow) x += spacing; delay += delayInc self._makeWord('m',x,y+yExtra,delay=delay,scale=gScale,shadow=shadow) x += spacing*1.25; delay += delayInc self._makeWord('b',x,y+yExtra,delay=delay,scale=gScale,vrDepthOffset=5,shadow=shadow) x += spacing*0.85; delay += delayInc self._makeWord('S',x,y-23+0.8*yExtra,scale=1.3*gScale,delay=delay,vrDepthOffset=14,shadow=shadow) x += spacing; delay += delayInc self._makeWord('q',x,y+yExtra,delay=delay,scale=gScale,shadow=shadow) x += spacing*0.9; delay += delayInc self._makeWord('u',x,y+yExtra,delay=delay,scale=gScale,vrDepthOffset=7,shadow=shadow) x += spacing*0.9; delay += delayInc self._makeWord('a',x,y+yExtra,delay=delay,scale=gScale,shadow=shadow) x += spacing*0.95; delay += delayInc self._makeWord('d',x,y+yExtra,delay=delay,scale=gScale,vrDepthOffset=6,shadow=shadow) self._makeLogo(baseX-28,125+y+1.2*yExtra,0.32*gScale,delay=baseDelay)
class InstallerLanguageEnglish(object): installing = u'Installing map [%s]...' success = u'Map [%s] installation succeeded!' fail = u'Map [%s] installation failed' notSupported = u'Map [%s] is not supported on %s' class InstallerLanguageChinese(object): installing = u'正在安装地图[%s], 请稍候...' success = u'地图[%s]安装完成!' fail = u'地图[%s]安装失败' notSupported = u'地图[%s]不支持%s平台!' InstallerLanguage = InstallerLanguageEnglish if bs.getLanguage() == 'Chinese': InstallerLanguage = InstallerLanguageChinese class NewMapInstaller(object): mapName = NEW_MAP_NAME copyDir = NEW_MAP_DIRECTORY supportedPlatforms = SUPPORTED_PLATFORMS def __init__(self): self.mapFilesDir = bs.getEnvironment( )['userScriptsDirectory'] + os.sep + self.copyDir + os.sep self.scriptsDir = bs.getEnvironment( )['systemScriptsDirectory'] + os.sep self.dataDir = self.scriptsDir + '..' + os.sep self.modelsDir = self.dataDir + 'models' + os.sep
def getDescription(cls, sessionType): return ({ "Chinese": "在这个只有你和敌人的地方站到最后!" }.get(bs.getLanguage(), 'Defeat your enemies in 1v1 battles!'))
def getName(cls): return ({"Chinese": "决斗"}.get(bs.getLanguage(), "Duel"))
class InstallerLanguageChinese(object): installing = u'正在安装地图[%s], 请稍候...' success = u'地图[%s]安装完成!' fail = u'地图[%s]安装失败' notSupported = u'地图[%s]不支持%s平台!' class InstallerLanguageSpanish(object): installing = u'Instalando Personaje [%s]...' success = u'Personaje [%s] instalación finalizada!' fail = u'Personaje [%s] instalación fallida' notSupported = u'Personaje [%s] no soportada en %s' InstallerLanguage = InstallerLanguageEnglish if bs.getLanguage() == 'Chinese': InstallerLanguage = InstallerLanguageChinese if bs.getLanguage() == 'Spanish': InstallerLanguage = InstallerLanguageSpanish class NewCharacterInstaller(object): characterName = NEW_CHARACTER_NAME copyDir = NEW_CHARACTER_DIRECTORY supportedPlatforms = SUPPORTED_PLATFORMS def __init__(self): self.characterFilesDir = bs.getEnvironment( )['userScriptsDirectory'] + '/' + self.copyDir + '/' self.scriptsDir = bs.getEnvironment()['systemScriptsDirectory'] + '/' self.dataDir = self.scriptsDir + '../'
def doIt(): bs.getConfig()["effectsMod"] = getDefaultSettings() bs.writeConfig() self._setTab("general") bs.screenMessage("Ajustes restaurados" if bs.getLanguage() == "Spanish" else "Settings restored")
def _setTab(self,tab): self._colorTimer = None self._current_tab = tab bs.getConfig()['effectsMod']['tab'] = tab bs.writeConfig() bsUI._updateTabButtonColors(self._tab_buttons, tab) if self._tabContainer is not None and self._tabContainer.exists(): self._tabContainer.delete() self._tabData = {} if tab == 'info': subHeight = 200 self._tabContainer = c = bs.containerWidget(parent=self._scrollWidget,size=(self._subWidth,subHeight), background=False) bs.widget(edit=self._tabContainer,upWidget=self._backButton) v = subHeight - 40 cWidth = self._scrollWidth cHeight = min(self._scrollHeight, 200*1.0+100) self._timeDelayText = bs.textWidget( parent=c, position=(0,v), color=(0.1, 1.0, 0.1), scale=1.2, size=(self._subWidth, 0), maxWidth=cWidth * 0.9, maxHeight=cHeight * 0.9, hAlign='center', vAlign='center', text='EFFECTS MOD v1.1') v -= 100 t = bs.textWidget( parent=c, position=(0, v), color=(0.8, 0.8, 0.8), scale=0.8, size=(self._subWidth*0.95, 0), maxWidth=cWidth * 0.9, maxHeight=cHeight * 0.9, hAlign='center', vAlign='center', text=self._credits) v -= 140 elif tab == 'general': subHeight = 200 self._tabContainer = c = bs.containerWidget(parent=self._scrollWidget,size=(self._subWidth,subHeight), background=False) v = subHeight - 70 reset = bs.buttonWidget(parent=c, autoSelect=True,onActivateCall=self.restoreSettings, position=((self._scrollWidth*0.45)-150, v), size=(300,50),scale=1.0, textScale=1.2,textColor=(1,1,1), label="Restaurar ajustes por defecto" if bs.getLanguage() == "Spanish" else "Restore default settings") bs.buttonWidget(edit=reset,upWidget=self._backButton) v -= 70 self.bw = bs.checkBoxWidget(parent=c,position=(self._subWidth*0.1,v), value=bs.getConfig()["effectsMod"]["color"], onValueChangeCall=bs.Call(self._setSetting,'color'), maxWidth=self._scrollWidth*0.9, text='Aplicar color de perfiles' if bs.getLanguage() == 'Spanish' else 'Apply profile colors',autoSelect=True) elif tab == "effects": self._selected = None baseScale = 2.4 if gSmallUI else 1.5 if gMedUI else 1.0 popupMenuScale = baseScale*1.2 subHeight = 250 v = subHeight - 20 self._tabContainer = c = bs.containerWidget(parent=self._rootWidget,size=(self._subWidth,subHeight), background=False) spawnEffectsList = ['none','in','out','xplode','show'] if bs.getLanguage() == "Spanish": spawnEffectsListDisplay = ['Ninguno','Ondas adentro','Ondas afuera','Explosion','Mostrar circulo'] else: spawnEffectsListDisplay = ['None','Circles In','Circles Out','Circle Explode','Show circle'] t = bs.textWidget(parent=c,position=(self._subWidth*0.2,v), text="Efectos de spawn" if bs.getLanguage() == "Spanish" else "Spawn effects", maxWidth=self._scrollWidth,size=(self._subWidth*0.5,self._scrollHeight*0.1),color=(0.7,0.7,0.7),hAlign="left",scale=0.8,) sePopup = PopupMenu(parent=c,position=(self._subWidth*0.6,v-15),width=150,scale=popupMenuScale, choices=spawnEffectsList, choicesDisplay=spawnEffectsListDisplay, currentChoice= bs.getConfig()["effectsMod"]["spawnEffect"], onValueChangeCall=self._setSpawnEffect) bs.widget(edit=sePopup.getButtonWidget(),upWidget=self._backButton) v -= 60 effectsList = ['none','path','fire'] if bs.getLanguage() == "Spanish": effectsListDisplay = ['Ninguno','Linea punteda','Hombre de fuego'] else: effectsListDisplay = ['None','Dotted line','Fireman'] t = bs.textWidget(parent=c,position=(self._subWidth*0.2,v), text="Efectos in-Game" if bs.getLanguage() == "Spanish" else "In-Game ffects", maxWidth=self._scrollWidth,size=(self._subWidth*0.5,self._scrollHeight*0.1),color=(0.7,0.7,0.7),hAlign="left",scale=0.8,) ePopup = PopupMenu(parent=c,position=(self._subWidth*0.6,v-15),width=150,scale=popupMenuScale, choices=effectsList, choicesDisplay=effectsListDisplay, currentChoice= bs.getConfig()["effectsMod"]["effect"], onValueChangeCall=self._setEffect) v -= 60 deathEffectsList = ['none','in','out','xplode','show','bones','fly','skull'] if bs.getLanguage() == "Spanish": deathEffectsListDisplay = ['Ninguno','Ondas adentro','Ondas afuera','Explosion','Mostrar circulo','Huesos','Levitar','Calavera'] else: deathEffectsListDisplay = ['None','Circles In','Circles Out','Circle Explode','Show cirlce ','Become bones','Levitate','Show Skull'] t = bs.textWidget(parent=c,position=(self._subWidth*0.2,v), text="Efectos de muerte" if bs.getLanguage() == "Spanish" else "Death effects", maxWidth=self._scrollWidth,size=(self._subWidth*0.5,self._scrollHeight*0.1),color=(0.7,0.7,0.7),hAlign="left",scale=0.8,) dePopup = PopupMenu(parent=c,position=(self._subWidth*0.6,v-15),width=150,scale=popupMenuScale, choices=deathEffectsList, choicesDisplay=deathEffectsListDisplay, currentChoice= bs.getConfig()["effectsMod"]["deathEffect"], onValueChangeCall=self._setDeathEffect)
import bsSpaz import bsGame from bsSpaz import * import bsUI import random import skins import bsMainMenu, bsTutorial import inspect bsUtils._havePro = bsUtils._haveProOptions = lambda : True gBots=[i for i in dir(bsSpaz) if inspect.isclass(eval("bsSpaz."+i)) and issubclass(eval("bsSpaz."+i), bsSpaz.SpazBot)] gBombs=['ice', 'impact', 'landMine', 'normal', 'sticky', 'tnt', 'firework', 'killLaKill', 'qq', 'tp', 'poison', 'ball', 'dirt'] gPowerups=[i[0] for i in list(bsPowerup.getDefaultPowerupDistribution(True))] gSkins = [skins.get_format_skin_name(i) for i in bsSpaz.appearances.keys()]+["tnt", "shard", "invincible"] gLang = bs.getLanguage() gEvent = None gSettingsEnabled = (hasattr(bs, "get_setting") and hasattr(bs, "set_setting")) maps={"Doom Shroom":(0.82, 1.10, 1.15), "Hockey Stadium":(1.2,1.3,1.33), \ "Football Stadium":(1.3, 1.2, 1.0), "Big G":(1.1, 1.2, 1.3), \ "Roundabout":(1.0, 1.05, 1.1), "Monkey Face":(1.1, 1.2, 1.2), \ "Bridgit":(1.1, 1.2, 1.3), "Zigzag":(1.0, 1.15, 1.15), \ "The Pad":(1.1, 1.1, 1.0), "Lake Frigid":(1, 1, 1), \ "Tip Top":(0.8, 0.9, 1.3), "Crag Castle":(1.15, 1.05, 0.75), \ "Tower D":(1.15, 1.11, 1.03), "Happy Thoughts":(1.3, 1.23, 1.0), \ "Step Right Up":(1.2, 1.1, 1.0), "Courtyard":(1.2, 1.17, 1.1), \ "Rampage":(1.2, 1.1, 0.97)} if gSettingsEnabled: settings = bs.get_settings()