mirror of
https://github.com/imayushsaini/Bombsquad-Ballistica-Modded-Server.git
synced 2025-10-20 00:00:39 +00:00
chatfilter , team character , auto ban ,welcome msg , profanity check
This commit is contained in:
parent
69a910aa0f
commit
a11d0a7a33
57 changed files with 427 additions and 601 deletions
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
dist/ba_data/python/bastd/activity/__pycache__/dualteamscore.cpython-39.pyc
vendored
Normal file
BIN
dist/ba_data/python/bastd/activity/__pycache__/dualteamscore.cpython-39.pyc
vendored
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
|
@ -8,7 +8,7 @@ from typing import TYPE_CHECKING, TypeVar, overload
|
|||
|
||||
import ba
|
||||
from bastd.actor.spaz import Spaz
|
||||
|
||||
from spazmod import modifyspaz
|
||||
if TYPE_CHECKING:
|
||||
from typing import Any, Sequence, Optional, Literal
|
||||
|
||||
|
|
@ -56,6 +56,7 @@ class PlayerSpaz(Spaz):
|
|||
Note: this does not wire up any controls;
|
||||
you must call connect_controls_to_player() to do so.
|
||||
"""
|
||||
character=modifyspaz.getCharacter(player,character)
|
||||
|
||||
super().__init__(color=color,
|
||||
highlight=highlight,
|
||||
|
|
@ -70,7 +71,7 @@ class PlayerSpaz(Spaz):
|
|||
self.last_player_held_by: Optional[ba.Player] = None
|
||||
self._player = player
|
||||
self._drive_player_position()
|
||||
from spazmod import modifyspaz
|
||||
|
||||
modifyspaz.main(self, self.node, self._player)
|
||||
|
||||
# Overloads to tell the type system our return type based on doraise val.
|
||||
|
|
|
|||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
460
dist/ba_root/mods/characters_duplicate.py
vendored
460
dist/ba_root/mods/characters_duplicate.py
vendored
|
|
@ -1,460 +0,0 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
# ba_meta require api 6
|
||||
from __future__ import annotations
|
||||
from typing import TYPE_CHECKING
|
||||
import _ba,ba,bastd
|
||||
from bastd.actor.spazappearance import *
|
||||
if TYPE_CHECKING:
|
||||
from typing import List, Optional, Tuple
|
||||
|
||||
|
||||
def add_characters():
|
||||
|
||||
# Zoe #######################################
|
||||
t = Appearance('Zoe_mod')
|
||||
t.color_texture = 'zoeColor'
|
||||
t.color_mask_texture = 'zoeColorMask'
|
||||
t.default_color = (0.6, 0.6, 0.6)
|
||||
t.default_highlight = (0, 1, 0)
|
||||
t.icon_texture = 'zoeIcon'
|
||||
t.icon_mask_texture = 'zoeIconColorMask'
|
||||
t.head_model = 'zoeHead'
|
||||
t.torso_model = 'zoeTorso'
|
||||
t.pelvis_model = 'zoePelvis'
|
||||
t.upper_arm_model = 'zoeUpperArm'
|
||||
t.forearm_model = 'zoeForeArm'
|
||||
t.hand_model = 'zoeHand'
|
||||
t.upper_leg_model = 'zoeUpperLeg'
|
||||
t.lower_leg_model = 'zoeLowerLeg'
|
||||
t.toes_model = 'zoeToes'
|
||||
t.jump_sounds = ['zoeJump01', 'zoeJump02', 'zoeJump03']
|
||||
t.attack_sounds = [
|
||||
'zoeAttack01', 'zoeAttack02', 'zoeAttack03', 'zoeAttack04'
|
||||
]
|
||||
t.impact_sounds = [
|
||||
'zoeImpact01', 'zoeImpact02', 'zoeImpact03', 'zoeImpact04'
|
||||
]
|
||||
t.death_sounds = ['zoeDeath01']
|
||||
t.pickup_sounds = ['zoePickup01']
|
||||
t.fall_sounds = ['zoeFall01']
|
||||
t.style = 'female'
|
||||
|
||||
# Ninja ##########################################
|
||||
t = Appearance('Snake Shadow_mod')
|
||||
t.color_texture = 'ninjaColor'
|
||||
t.color_mask_texture = 'ninjaColorMask'
|
||||
t.default_color = (1, 1, 1)
|
||||
t.default_highlight = (0.55, 0.8, 0.55)
|
||||
t.icon_texture = 'ninjaIcon'
|
||||
t.icon_mask_texture = 'ninjaIconColorMask'
|
||||
t.head_model = 'ninjaHead'
|
||||
t.torso_model = 'ninjaTorso'
|
||||
t.pelvis_model = 'ninjaPelvis'
|
||||
t.upper_arm_model = 'ninjaUpperArm'
|
||||
t.forearm_model = 'ninjaForeArm'
|
||||
t.hand_model = 'ninjaHand'
|
||||
t.upper_leg_model = 'ninjaUpperLeg'
|
||||
t.lower_leg_model = 'ninjaLowerLeg'
|
||||
t.toes_model = 'ninjaToes'
|
||||
ninja_attacks = ['ninjaAttack' + str(i + 1) + '' for i in range(7)]
|
||||
ninja_hits = ['ninjaHit' + str(i + 1) + '' for i in range(8)]
|
||||
ninja_jumps = ['ninjaAttack' + str(i + 1) + '' for i in range(7)]
|
||||
t.jump_sounds = ninja_jumps
|
||||
t.attack_sounds = ninja_attacks
|
||||
t.impact_sounds = ninja_hits
|
||||
t.death_sounds = ['ninjaDeath1']
|
||||
t.pickup_sounds = ninja_attacks
|
||||
t.fall_sounds = ['ninjaFall1']
|
||||
t.style = 'ninja'
|
||||
|
||||
# Barbarian #####################################
|
||||
t = Appearance('Kronk_mod')
|
||||
t.color_texture = 'kronk'
|
||||
t.color_mask_texture = 'kronkColorMask'
|
||||
t.default_color = (0.4, 0.5, 0.4)
|
||||
t.default_highlight = (1, 0.5, 0.3)
|
||||
t.icon_texture = 'kronkIcon'
|
||||
t.icon_mask_texture = 'kronkIconColorMask'
|
||||
t.head_model = 'kronkHead'
|
||||
t.torso_model = 'kronkTorso'
|
||||
t.pelvis_model = 'kronkPelvis'
|
||||
t.upper_arm_model = 'kronkUpperArm'
|
||||
t.forearm_model = 'kronkForeArm'
|
||||
t.hand_model = 'kronkHand'
|
||||
t.upper_leg_model = 'kronkUpperLeg'
|
||||
t.lower_leg_model = 'kronkLowerLeg'
|
||||
t.toes_model = 'kronkToes'
|
||||
kronk_sounds = [
|
||||
'kronk1', 'kronk2', 'kronk3', 'kronk4', 'kronk5', 'kronk6', 'kronk7',
|
||||
'kronk8', 'kronk9', 'kronk10'
|
||||
]
|
||||
t.jump_sounds = kronk_sounds
|
||||
t.attack_sounds = kronk_sounds
|
||||
t.impact_sounds = kronk_sounds
|
||||
t.death_sounds = ['kronkDeath']
|
||||
t.pickup_sounds = kronk_sounds
|
||||
t.fall_sounds = ['kronkFall']
|
||||
t.style = 'kronk'
|
||||
|
||||
# Chef ###########################################
|
||||
t = Appearance('Mel_mod')
|
||||
t.color_texture = 'melColor'
|
||||
t.color_mask_texture = 'melColorMask'
|
||||
t.default_color = (1, 1, 1)
|
||||
t.default_highlight = (0.1, 0.6, 0.1)
|
||||
t.icon_texture = 'melIcon'
|
||||
t.icon_mask_texture = 'melIconColorMask'
|
||||
t.head_model = 'melHead'
|
||||
t.torso_model = 'melTorso'
|
||||
t.pelvis_model = 'kronkPelvis'
|
||||
t.upper_arm_model = 'melUpperArm'
|
||||
t.forearm_model = 'melForeArm'
|
||||
t.hand_model = 'melHand'
|
||||
t.upper_leg_model = 'melUpperLeg'
|
||||
t.lower_leg_model = 'melLowerLeg'
|
||||
t.toes_model = 'melToes'
|
||||
mel_sounds = [
|
||||
'mel01', 'mel02', 'mel03', 'mel04', 'mel05', 'mel06', 'mel07', 'mel08',
|
||||
'mel09', 'mel10'
|
||||
]
|
||||
t.attack_sounds = mel_sounds
|
||||
t.jump_sounds = mel_sounds
|
||||
t.impact_sounds = mel_sounds
|
||||
t.death_sounds = ['melDeath01']
|
||||
t.pickup_sounds = mel_sounds
|
||||
t.fall_sounds = ['melFall01']
|
||||
t.style = 'mel'
|
||||
|
||||
# Pirate #######################################
|
||||
t = Appearance('Jack Morgan_mod')
|
||||
t.color_texture = 'jackColor'
|
||||
t.color_mask_texture = 'jackColorMask'
|
||||
t.default_color = (1, 0.2, 0.1)
|
||||
t.default_highlight = (1, 1, 0)
|
||||
t.icon_texture = 'jackIcon'
|
||||
t.icon_mask_texture = 'jackIconColorMask'
|
||||
t.head_model = 'jackHead'
|
||||
t.torso_model = 'jackTorso'
|
||||
t.pelvis_model = 'kronkPelvis'
|
||||
t.upper_arm_model = 'jackUpperArm'
|
||||
t.forearm_model = 'jackForeArm'
|
||||
t.hand_model = 'jackHand'
|
||||
t.upper_leg_model = 'jackUpperLeg'
|
||||
t.lower_leg_model = 'jackLowerLeg'
|
||||
t.toes_model = 'jackToes'
|
||||
hit_sounds = [
|
||||
'jackHit01', 'jackHit02', 'jackHit03', 'jackHit04', 'jackHit05',
|
||||
'jackHit06', 'jackHit07'
|
||||
]
|
||||
sounds = ['jack01', 'jack02', 'jack03', 'jack04', 'jack05', 'jack06']
|
||||
t.attack_sounds = sounds
|
||||
t.jump_sounds = sounds
|
||||
|
||||
t.impact_sounds = hit_sounds
|
||||
t.death_sounds = ['jackDeath01']
|
||||
t.pickup_sounds = sounds
|
||||
t.fall_sounds = ['jackFall01']
|
||||
t.style = 'pirate'
|
||||
|
||||
# Santa ######################################
|
||||
t = Appearance('Santa Claus_mod')
|
||||
t.color_texture = 'santaColor'
|
||||
t.color_mask_texture = 'santaColorMask'
|
||||
t.default_color = (1, 0, 0)
|
||||
t.default_highlight = (1, 1, 1)
|
||||
t.icon_texture = 'santaIcon'
|
||||
t.icon_mask_texture = 'santaIconColorMask'
|
||||
t.head_model = 'santaHead'
|
||||
t.torso_model = 'santaTorso'
|
||||
t.pelvis_model = 'kronkPelvis'
|
||||
t.upper_arm_model = 'santaUpperArm'
|
||||
t.forearm_model = 'santaForeArm'
|
||||
t.hand_model = 'santaHand'
|
||||
t.upper_leg_model = 'santaUpperLeg'
|
||||
t.lower_leg_model = 'santaLowerLeg'
|
||||
t.toes_model = 'santaToes'
|
||||
hit_sounds = ['santaHit01', 'santaHit02', 'santaHit03', 'santaHit04']
|
||||
sounds = ['santa01', 'santa02', 'santa03', 'santa04', 'santa05']
|
||||
t.attack_sounds = sounds
|
||||
t.jump_sounds = sounds
|
||||
t.impact_sounds = hit_sounds
|
||||
t.death_sounds = ['santaDeath']
|
||||
t.pickup_sounds = sounds
|
||||
t.fall_sounds = ['santaFall']
|
||||
t.style = 'santa'
|
||||
|
||||
# Snowman ###################################
|
||||
t = Appearance('Frosty_mod')
|
||||
t.color_texture = 'frostyColor'
|
||||
t.color_mask_texture = 'frostyColorMask'
|
||||
t.default_color = (0.5, 0.5, 1)
|
||||
t.default_highlight = (1, 0.5, 0)
|
||||
t.icon_texture = 'frostyIcon'
|
||||
t.icon_mask_texture = 'frostyIconColorMask'
|
||||
t.head_model = 'frostyHead'
|
||||
t.torso_model = 'frostyTorso'
|
||||
t.pelvis_model = 'frostyPelvis'
|
||||
t.upper_arm_model = 'frostyUpperArm'
|
||||
t.forearm_model = 'frostyForeArm'
|
||||
t.hand_model = 'frostyHand'
|
||||
t.upper_leg_model = 'frostyUpperLeg'
|
||||
t.lower_leg_model = 'frostyLowerLeg'
|
||||
t.toes_model = 'frostyToes'
|
||||
frosty_sounds = [
|
||||
'frosty01', 'frosty02', 'frosty03', 'frosty04', 'frosty05'
|
||||
]
|
||||
frosty_hit_sounds = ['frostyHit01', 'frostyHit02', 'frostyHit03']
|
||||
t.attack_sounds = frosty_sounds
|
||||
t.jump_sounds = frosty_sounds
|
||||
t.impact_sounds = frosty_hit_sounds
|
||||
t.death_sounds = ['frostyDeath']
|
||||
t.pickup_sounds = frosty_sounds
|
||||
t.fall_sounds = ['frostyFall']
|
||||
t.style = 'frosty'
|
||||
|
||||
# Skeleton ################################
|
||||
t = Appearance('Bones_mod')
|
||||
t.color_texture = 'bonesColor'
|
||||
t.color_mask_texture = 'bonesColorMask'
|
||||
t.default_color = (0.6, 0.9, 1)
|
||||
t.default_highlight = (0.6, 0.9, 1)
|
||||
t.icon_texture = 'bonesIcon'
|
||||
t.icon_mask_texture = 'bonesIconColorMask'
|
||||
t.head_model = 'bonesHead'
|
||||
t.torso_model = 'bonesTorso'
|
||||
t.pelvis_model = 'bonesPelvis'
|
||||
t.upper_arm_model = 'bonesUpperArm'
|
||||
t.forearm_model = 'bonesForeArm'
|
||||
t.hand_model = 'bonesHand'
|
||||
t.upper_leg_model = 'bonesUpperLeg'
|
||||
t.lower_leg_model = 'bonesLowerLeg'
|
||||
t.toes_model = 'bonesToes'
|
||||
bones_sounds = ['bones1', 'bones2', 'bones3']
|
||||
bones_hit_sounds = ['bones1', 'bones2', 'bones3']
|
||||
t.attack_sounds = bones_sounds
|
||||
t.jump_sounds = bones_sounds
|
||||
t.impact_sounds = bones_hit_sounds
|
||||
t.death_sounds = ['bonesDeath']
|
||||
t.pickup_sounds = bones_sounds
|
||||
t.fall_sounds = ['bonesFall']
|
||||
t.style = 'bones'
|
||||
|
||||
# Bear ###################################
|
||||
t = Appearance('Bernard_mod')
|
||||
t.color_texture = 'bearColor'
|
||||
t.color_mask_texture = 'bearColorMask'
|
||||
t.default_color = (0.7, 0.5, 0.0)
|
||||
t.icon_texture = 'bearIcon'
|
||||
t.icon_mask_texture = 'bearIconColorMask'
|
||||
t.head_model = 'bearHead'
|
||||
t.torso_model = 'bearTorso'
|
||||
t.pelvis_model = 'bearPelvis'
|
||||
t.upper_arm_model = 'bearUpperArm'
|
||||
t.forearm_model = 'bearForeArm'
|
||||
t.hand_model = 'bearHand'
|
||||
t.upper_leg_model = 'bearUpperLeg'
|
||||
t.lower_leg_model = 'bearLowerLeg'
|
||||
t.toes_model = 'bearToes'
|
||||
bear_sounds = ['bear1', 'bear2', 'bear3', 'bear4']
|
||||
bear_hit_sounds = ['bearHit1', 'bearHit2']
|
||||
t.attack_sounds = bear_sounds
|
||||
t.jump_sounds = bear_sounds
|
||||
t.impact_sounds = bear_hit_sounds
|
||||
t.death_sounds = ['bearDeath']
|
||||
t.pickup_sounds = bear_sounds
|
||||
t.fall_sounds = ['bearFall']
|
||||
t.style = 'bear'
|
||||
|
||||
# Penguin ###################################
|
||||
t = Appearance('Pascal_mod')
|
||||
t.color_texture = 'penguinColor'
|
||||
t.color_mask_texture = 'penguinColorMask'
|
||||
t.default_color = (0.3, 0.5, 0.8)
|
||||
t.default_highlight = (1, 0, 0)
|
||||
t.icon_texture = 'penguinIcon'
|
||||
t.icon_mask_texture = 'penguinIconColorMask'
|
||||
t.head_model = 'penguinHead'
|
||||
t.torso_model = 'penguinTorso'
|
||||
t.pelvis_model = 'penguinPelvis'
|
||||
t.upper_arm_model = 'penguinUpperArm'
|
||||
t.forearm_model = 'penguinForeArm'
|
||||
t.hand_model = 'penguinHand'
|
||||
t.upper_leg_model = 'penguinUpperLeg'
|
||||
t.lower_leg_model = 'penguinLowerLeg'
|
||||
t.toes_model = 'penguinToes'
|
||||
penguin_sounds = ['penguin1', 'penguin2', 'penguin3', 'penguin4']
|
||||
penguin_hit_sounds = ['penguinHit1', 'penguinHit2']
|
||||
t.attack_sounds = penguin_sounds
|
||||
t.jump_sounds = penguin_sounds
|
||||
t.impact_sounds = penguin_hit_sounds
|
||||
t.death_sounds = ['penguinDeath']
|
||||
t.pickup_sounds = penguin_sounds
|
||||
t.fall_sounds = ['penguinFall']
|
||||
t.style = 'penguin'
|
||||
|
||||
# Ali ###################################
|
||||
t = Appearance('Taobao Mascot_mod')
|
||||
t.color_texture = 'aliColor'
|
||||
t.color_mask_texture = 'aliColorMask'
|
||||
t.default_color = (1, 0.5, 0)
|
||||
t.default_highlight = (1, 1, 1)
|
||||
t.icon_texture = 'aliIcon'
|
||||
t.icon_mask_texture = 'aliIconColorMask'
|
||||
t.head_model = 'aliHead'
|
||||
t.torso_model = 'aliTorso'
|
||||
t.pelvis_model = 'aliPelvis'
|
||||
t.upper_arm_model = 'aliUpperArm'
|
||||
t.forearm_model = 'aliForeArm'
|
||||
t.hand_model = 'aliHand'
|
||||
t.upper_leg_model = 'aliUpperLeg'
|
||||
t.lower_leg_model = 'aliLowerLeg'
|
||||
t.toes_model = 'aliToes'
|
||||
ali_sounds = ['ali1', 'ali2', 'ali3', 'ali4']
|
||||
ali_hit_sounds = ['aliHit1', 'aliHit2']
|
||||
t.attack_sounds = ali_sounds
|
||||
t.jump_sounds = ali_sounds
|
||||
t.impact_sounds = ali_hit_sounds
|
||||
t.death_sounds = ['aliDeath']
|
||||
t.pickup_sounds = ali_sounds
|
||||
t.fall_sounds = ['aliFall']
|
||||
t.style = 'ali'
|
||||
|
||||
# cyborg ###################################
|
||||
t = Appearance('B-9000_mod')
|
||||
t.color_texture = 'cyborgColor'
|
||||
t.color_mask_texture = 'cyborgColorMask'
|
||||
t.default_color = (0.5, 0.5, 0.5)
|
||||
t.default_highlight = (1, 0, 0)
|
||||
t.icon_texture = 'cyborgIcon'
|
||||
t.icon_mask_texture = 'cyborgIconColorMask'
|
||||
t.head_model = 'cyborgHead'
|
||||
t.torso_model = 'cyborgTorso'
|
||||
t.pelvis_model = 'cyborgPelvis'
|
||||
t.upper_arm_model = 'cyborgUpperArm'
|
||||
t.forearm_model = 'cyborgForeArm'
|
||||
t.hand_model = 'cyborgHand'
|
||||
t.upper_leg_model = 'cyborgUpperLeg'
|
||||
t.lower_leg_model = 'cyborgLowerLeg'
|
||||
t.toes_model = 'cyborgToes'
|
||||
cyborg_sounds = ['cyborg1', 'cyborg2', 'cyborg3', 'cyborg4']
|
||||
cyborg_hit_sounds = ['cyborgHit1', 'cyborgHit2']
|
||||
t.attack_sounds = cyborg_sounds
|
||||
t.jump_sounds = cyborg_sounds
|
||||
t.impact_sounds = cyborg_hit_sounds
|
||||
t.death_sounds = ['cyborgDeath']
|
||||
t.pickup_sounds = cyborg_sounds
|
||||
t.fall_sounds = ['cyborgFall']
|
||||
t.style = 'cyborg'
|
||||
|
||||
# Agent ###################################
|
||||
t = Appearance('Agent Johnson_mod')
|
||||
t.color_texture = 'agentColor'
|
||||
t.color_mask_texture = 'agentColorMask'
|
||||
t.default_color = (0.3, 0.3, 0.33)
|
||||
t.default_highlight = (1, 0.5, 0.3)
|
||||
t.icon_texture = 'agentIcon'
|
||||
t.icon_mask_texture = 'agentIconColorMask'
|
||||
t.head_model = 'agentHead'
|
||||
t.torso_model = 'agentTorso'
|
||||
t.pelvis_model = 'agentPelvis'
|
||||
t.upper_arm_model = 'agentUpperArm'
|
||||
t.forearm_model = 'agentForeArm'
|
||||
t.hand_model = 'agentHand'
|
||||
t.upper_leg_model = 'agentUpperLeg'
|
||||
t.lower_leg_model = 'agentLowerLeg'
|
||||
t.toes_model = 'agentToes'
|
||||
agent_sounds = ['agent1', 'agent2', 'agent3', 'agent4']
|
||||
agent_hit_sounds = ['agentHit1', 'agentHit2']
|
||||
t.attack_sounds = agent_sounds
|
||||
t.jump_sounds = agent_sounds
|
||||
t.impact_sounds = agent_hit_sounds
|
||||
t.death_sounds = ['agentDeath']
|
||||
t.pickup_sounds = agent_sounds
|
||||
t.fall_sounds = ['agentFall']
|
||||
t.style = 'agent'
|
||||
|
||||
# Wizard ###################################
|
||||
t = Appearance('Grumbledorf_mod')
|
||||
t.color_texture = 'wizardColor'
|
||||
t.color_mask_texture = 'wizardColorMask'
|
||||
t.default_color = (0.2, 0.4, 1.0)
|
||||
t.default_highlight = (0.06, 0.15, 0.4)
|
||||
t.icon_texture = 'wizardIcon'
|
||||
t.icon_mask_texture = 'wizardIconColorMask'
|
||||
t.head_model = 'wizardHead'
|
||||
t.torso_model = 'wizardTorso'
|
||||
t.pelvis_model = 'wizardPelvis'
|
||||
t.upper_arm_model = 'wizardUpperArm'
|
||||
t.forearm_model = 'wizardForeArm'
|
||||
t.hand_model = 'wizardHand'
|
||||
t.upper_leg_model = 'wizardUpperLeg'
|
||||
t.lower_leg_model = 'wizardLowerLeg'
|
||||
t.toes_model = 'wizardToes'
|
||||
wizard_sounds = ['wizard1', 'wizard2', 'wizard3', 'wizard4']
|
||||
wizard_hit_sounds = ['wizardHit1', 'wizardHit2']
|
||||
t.attack_sounds = wizard_sounds
|
||||
t.jump_sounds = wizard_sounds
|
||||
t.impact_sounds = wizard_hit_sounds
|
||||
t.death_sounds = ['wizardDeath']
|
||||
t.pickup_sounds = wizard_sounds
|
||||
t.fall_sounds = ['wizardFall']
|
||||
t.style = 'spaz'
|
||||
|
||||
# Pixie ###################################
|
||||
t = Appearance('Pixel_mod')
|
||||
t.color_texture = 'pixieColor'
|
||||
t.color_mask_texture = 'pixieColorMask'
|
||||
t.default_color = (0, 1, 0.7)
|
||||
t.default_highlight = (0.65, 0.35, 0.75)
|
||||
t.icon_texture = 'pixieIcon'
|
||||
t.icon_mask_texture = 'pixieIconColorMask'
|
||||
t.head_model = 'pixieHead'
|
||||
t.torso_model = 'pixieTorso'
|
||||
t.pelvis_model = 'pixiePelvis'
|
||||
t.upper_arm_model = 'pixieUpperArm'
|
||||
t.forearm_model = 'pixieForeArm'
|
||||
t.hand_model = 'pixieHand'
|
||||
t.upper_leg_model = 'pixieUpperLeg'
|
||||
t.lower_leg_model = 'pixieLowerLeg'
|
||||
t.toes_model = 'pixieToes'
|
||||
pixie_sounds = ['pixie1', 'pixie2', 'pixie3', 'pixie4']
|
||||
pixie_hit_sounds = ['pixieHit1', 'pixieHit2']
|
||||
t.attack_sounds = pixie_sounds
|
||||
t.jump_sounds = pixie_sounds
|
||||
t.impact_sounds = pixie_hit_sounds
|
||||
t.death_sounds = ['pixieDeath']
|
||||
t.pickup_sounds = pixie_sounds
|
||||
t.fall_sounds = ['pixieFall']
|
||||
t.style = 'pixie'
|
||||
|
||||
# Bunny ###################################
|
||||
t = Appearance('Easter Bunny_mod')
|
||||
t.color_texture = 'bunnyColor'
|
||||
t.color_mask_texture = 'bunnyColorMask'
|
||||
t.default_color = (1, 1, 1)
|
||||
t.default_highlight = (1, 0.5, 0.5)
|
||||
t.icon_texture = 'bunnyIcon'
|
||||
t.icon_mask_texture = 'bunnyIconColorMask'
|
||||
t.head_model = 'bunnyHead'
|
||||
t.torso_model = 'bunnyTorso'
|
||||
t.pelvis_model = 'bunnyPelvis'
|
||||
t.upper_arm_model = 'bunnyUpperArm'
|
||||
t.forearm_model = 'bunnyForeArm'
|
||||
t.hand_model = 'bunnyHand'
|
||||
t.upper_leg_model = 'bunnyUpperLeg'
|
||||
t.lower_leg_model = 'bunnyLowerLeg'
|
||||
t.toes_model = 'bunnyToes'
|
||||
bunny_sounds = ['bunny1', 'bunny2', 'bunny3', 'bunny4']
|
||||
bunny_hit_sounds = ['bunnyHit1', 'bunnyHit2']
|
||||
t.attack_sounds = bunny_sounds
|
||||
t.jump_sounds = ['bunnyJump']
|
||||
t.impact_sounds = bunny_hit_sounds
|
||||
t.death_sounds = ['bunnyDeath']
|
||||
t.pickup_sounds = bunny_sounds
|
||||
t.fall_sounds = ['bunnyFall']
|
||||
t.style = 'bunny'
|
||||
|
||||
# ba_meta export plugin
|
||||
class unlock_characters(ba.Plugin):
|
||||
def on_app_launch(self):
|
||||
add_characters()
|
||||
|
|
@ -8,12 +8,12 @@ from .commands import Cheats
|
|||
|
||||
from .Handlers import clientid_to_accountid
|
||||
from .Handlers import check_permissions
|
||||
|
||||
from chatHandle.chatFilter import ChatFilter
|
||||
import ba, _ba
|
||||
import setting
|
||||
|
||||
from serverData import serverdata
|
||||
|
||||
settings = setting.get_settings_data()
|
||||
|
||||
def command_type(command):
|
||||
"""
|
||||
|
|
@ -88,7 +88,8 @@ def Command(msg, clientid):
|
|||
_ba.screenmessage("access denied", transient=True, clients=[clientid])
|
||||
|
||||
|
||||
settings = setting.get_settings_data()
|
||||
|
||||
|
||||
if accountid in serverdata.clients:
|
||||
if serverdata.clients[accountid]["isMuted"]:
|
||||
_ba.screenmessage("You are on mute", transient=True, clients=[clientid])
|
||||
|
|
|
|||
Binary file not shown.
|
|
@ -3,7 +3,7 @@ from playersData import pdata
|
|||
from tools.whitelist import add_to_white_list, add_commit_to_logs
|
||||
from serverData import serverdata
|
||||
import ba, _ba, time, setting
|
||||
|
||||
import _thread
|
||||
|
||||
Commands = ['ban','kick', 'remove', 'end', 'quit', 'mute', 'unmute', 'slowmo', 'nv', 'dv', 'pause', 'cameramode', 'createrole', 'addrole', 'removerole', 'addcommand', 'addcmd', 'removecommand','getroles', 'removecmd', 'changetag','customtag','customeffect','add', 'spectators', 'lobbytime']
|
||||
CommandAliases = ['rm', 'next', 'restart', 'mutechat', 'unmutechat', 'sm', 'slow', 'night', 'day', 'pausegame', 'camera_mode', 'rotate_camera', 'whitelist','effect']
|
||||
|
|
@ -119,7 +119,8 @@ def ban(arguments):
|
|||
ac_id=""
|
||||
for ros in _ba.get_game_roster():
|
||||
if ros["client_id"]==cl_id:
|
||||
pdata.ban_player(ros['account_id'])
|
||||
_thread.start_new_thread(pdata.ban_player,(ros['account_id'],))
|
||||
|
||||
ac_id=ros['account_id']
|
||||
if ac_id in serverdata.clients:
|
||||
serverdata.clients[ac_id]["isBan"]=True
|
||||
|
|
@ -142,7 +143,8 @@ def mute(arguments):
|
|||
ac_id=""
|
||||
for ros in _ba.get_game_roster():
|
||||
if ros["client_id"]==cl_id:
|
||||
pdata.mute(ros['account_id'])
|
||||
_thread.start_new_thread(pdata.mute,(ros['account_id'],))
|
||||
|
||||
ac_id=ros['account_id']
|
||||
if ac_id in serverdata.clients:
|
||||
serverdata.clients[ac_id]["isMuted"]=True
|
||||
|
|
|
|||
Binary file not shown.
Binary file not shown.
|
|
@ -1,5 +1,57 @@
|
|||
# Released under the MIT License. See LICENSE for details.
|
||||
import ba, _ba
|
||||
from serverData import serverdata
|
||||
from tools import profanity
|
||||
from tools import servercheck
|
||||
import time
|
||||
import setting
|
||||
import _thread
|
||||
settings = setting.get_settings_data()
|
||||
|
||||
|
||||
def filter(msg,pb_id,client_id):
|
||||
new_msg=profanity.censor(msg)
|
||||
if new_msg!=msg:
|
||||
addWarn(pb_id,client_id)
|
||||
|
||||
now = time.time()
|
||||
|
||||
if "lastMsg" in serverdata.clients[pb_id]:
|
||||
count=serverdata.clients[pb_id]["cMsgCount"]
|
||||
if now - serverdata.clients[pb_id]["lastMsg"] < 5:
|
||||
count+=1
|
||||
if count >=2:
|
||||
addWarn(pb_id,client_id)
|
||||
count =0
|
||||
else:
|
||||
count =0
|
||||
|
||||
serverdata.clients[pb_id]['cMsgCount']=count
|
||||
serverdata.clients[pb_id]['lastMsg']=now
|
||||
else:
|
||||
serverdata.clients[pb_id]['cMsgCount']=0
|
||||
serverdata.clients[pb_id]['lastMsg']=now
|
||||
return new_msg
|
||||
|
||||
|
||||
|
||||
def addWarn(pb_id,client_id):
|
||||
now=time.time()
|
||||
player=serverdata.clients[pb_id]
|
||||
warn=player['warnCount']
|
||||
if now - player['lastWarned'] <= settings["WarnCooldownMinutes"]*60:
|
||||
warn+=1
|
||||
if warn > settings["maxWarnCount"]:
|
||||
_ba.screenmessage(settings["afterWarnKickMsg"],color=(1,0,0),transient=True,clients=[client_id])
|
||||
_ba.disconnect_client(client_id)
|
||||
_thread.start_new_thread(servercheck.reportSpam,(pb_id,))
|
||||
|
||||
else:
|
||||
_ba.screenmessage(settings["warnMsg"],color=(1,0,0),transient=True,clients=[client_id])
|
||||
else:
|
||||
warn=0
|
||||
serverdata.clients[pb_id]["warnCount"]=warn
|
||||
serverdata.clients[pb_id]['lastWarned']=now
|
||||
|
||||
|
||||
|
||||
def isAbuse(msg):
|
||||
pass
|
||||
BIN
dist/ba_root/mods/chatHandle/chatFilter/__pycache__/ChatFilter.cpython-39.pyc
vendored
Normal file
BIN
dist/ba_root/mods/chatHandle/chatFilter/__pycache__/ChatFilter.cpython-39.pyc
vendored
Normal file
Binary file not shown.
8
dist/ba_root/mods/chatHandle/handlechat.py
vendored
8
dist/ba_root/mods/chatHandle/handlechat.py
vendored
|
|
@ -4,7 +4,7 @@ from playersData import pdata
|
|||
from serverData import serverdata
|
||||
from chatHandle.ChatCommands import Main
|
||||
from tools import Logger, servercheck
|
||||
from chatHandle import chatFilter
|
||||
from chatHandle.chatFilter import ChatFilter
|
||||
import ba, _ba
|
||||
import setting
|
||||
|
||||
|
|
@ -22,8 +22,7 @@ def filter_chat_message(msg, client_id):
|
|||
acid = i['account_id']
|
||||
Logger.log(acid+" | "+msg,"chat")
|
||||
|
||||
if acid in serverdata.clients:
|
||||
|
||||
if acid in serverdata.clients and serverdata.clients[acid]["verified"]:
|
||||
if serverdata.clients[acid]["isMuted"]:
|
||||
_ba.screenmessage("You are on mute", transient=True, clients=[client_id])
|
||||
return None
|
||||
|
|
@ -31,9 +30,10 @@ def filter_chat_message(msg, client_id):
|
|||
_ba.screenmessage("New accounts not allowed to chat here", transient=True, clients=[client_id])
|
||||
return None
|
||||
else:
|
||||
return msg
|
||||
return ChatFilter.filter(msg,acid,client_id)
|
||||
|
||||
|
||||
else:
|
||||
_ba.screenmessage("Fetching your account info , Wait a minute", transient=True, clients=[client_id])
|
||||
return None
|
||||
|
||||
|
|
|
|||
25
dist/ba_root/mods/custom_hooks.py
vendored
25
dist/ba_root/mods/custom_hooks.py
vendored
|
|
@ -4,11 +4,18 @@ import _ba
|
|||
from chatHandle import handlechat
|
||||
import setting
|
||||
from tools import servercheck
|
||||
from tools import ServerUpdate
|
||||
import _thread
|
||||
from stats import mystats
|
||||
from datetime import datetime
|
||||
from ba import _activity
|
||||
|
||||
from typing import Optional, Any
|
||||
from spazmod import modifyspaz
|
||||
from bastd.activity import dualteamscore
|
||||
from bastd.activity import multiteamscore
|
||||
from bastd.actor.zoomtext import ZoomText
|
||||
# from tools import fireflies
|
||||
settings = setting.get_settings_data()
|
||||
|
||||
def filter_chat_message(msg, client_id):
|
||||
|
|
@ -21,6 +28,8 @@ def on_app_launch():
|
|||
whitelist.Whitelist()
|
||||
bootstraping()
|
||||
servercheck.checkserver().start()
|
||||
ServerUpdate.check()
|
||||
|
||||
|
||||
|
||||
#something
|
||||
|
|
@ -55,15 +64,18 @@ def new_disconnect(clid,duration=120):
|
|||
_ba.ban_client(clid,duration)
|
||||
|
||||
org_begin=ba._activity.Activity.on_begin
|
||||
|
||||
def new_begin(self):
|
||||
org_begin(self)
|
||||
night_mode()
|
||||
|
||||
|
||||
|
||||
ba._activity.Activity.on_begin=new_begin
|
||||
|
||||
org_end=ba._activity.Activity.end
|
||||
def new_end(self,results:Any=None,delay:float=0.0,force:bool=False):
|
||||
|
||||
org_end(self,results,delay,force)
|
||||
ba._activity.Activity.end=new_end
|
||||
|
||||
|
||||
def night_mode():
|
||||
|
||||
|
|
@ -75,4 +87,11 @@ def night_mode():
|
|||
|
||||
if now.time() > start.time() or now.time() < end.time():
|
||||
activity = _ba.get_foreground_host_activity()
|
||||
|
||||
activity.globalsnode.tint = (0.5, 0.7, 1.0)
|
||||
|
||||
# if settings['autoNightMode']['fireflies']:
|
||||
# fireflies.factory()
|
||||
|
||||
|
||||
|
||||
|
|
|
|||
Binary file not shown.
21
dist/ba_root/mods/playersData/pdata.py
vendored
21
dist/ba_root/mods/playersData/pdata.py
vendored
|
|
@ -2,7 +2,7 @@
|
|||
import _ba, os, json
|
||||
from serverData import serverdata
|
||||
import time
|
||||
|
||||
import _thread
|
||||
roles = {}
|
||||
data = {}
|
||||
custom = {}
|
||||
|
|
@ -42,6 +42,8 @@ def add_profile(id,display_string,currentname,age):
|
|||
"accountAge":age,
|
||||
"registerOn":time.time(),
|
||||
"canStartKickVote":True,
|
||||
"spamCount":0,
|
||||
"lastSpam":time.time(),
|
||||
"totaltimeplayer":0,
|
||||
"lastseen":0}
|
||||
|
||||
|
|
@ -82,26 +84,35 @@ def ban_player(id):
|
|||
profiles= get_profiles()
|
||||
if id in profiles:
|
||||
profiles[id]['isBan']=True
|
||||
commit_profiles(profiles)
|
||||
_thread.start_new_thread(commit_profiles,(profiles,))
|
||||
# commit_profiles(profiles)
|
||||
|
||||
def mute(id):
|
||||
profiles=get_profiles()
|
||||
if id in profiles:
|
||||
|
||||
profiles[id]["isMuted"]=True
|
||||
commit_profiles(profiles)
|
||||
_thread.start_new_thread(commit_profiles,(profiles,))
|
||||
# commit_profiles(profiles)
|
||||
|
||||
def unmute(id):
|
||||
profiles=get_profiles()
|
||||
if id in profiles:
|
||||
profiles[id]["isMuted"]=False
|
||||
_thread.start_new_thread(commit_profiles,(profiles,))
|
||||
# commit_profiles(profiles)
|
||||
|
||||
def updateSpam(id,spamCount,lastSpam):
|
||||
profiles=get_profiles()
|
||||
if id in profiles:
|
||||
profiles[id]["spamCount"]=spamCount
|
||||
profiles[id]["lastSpam"]=lastSpam
|
||||
|
||||
commit_profiles(profiles)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#================ ROLES ==========================
|
||||
|
||||
def commit_roles(data):
|
||||
|
|
|
|||
12
dist/ba_root/mods/playersData/profiles.json
vendored
12
dist/ba_root/mods/playersData/profiles.json
vendored
|
|
@ -6,7 +6,9 @@
|
|||
"isBan": false,
|
||||
"isMuted": false,
|
||||
"totaltimeplayer": 0,
|
||||
"lastseen": 0
|
||||
"lastseen": 0,
|
||||
"spamCount": 0,
|
||||
"lastSpam": 1637911682.2054627
|
||||
},
|
||||
"pb-IF5XUm9eAg==": {
|
||||
"display_string": [
|
||||
|
|
@ -14,12 +16,14 @@
|
|||
],
|
||||
"profiles": [],
|
||||
"name": "\ue030PC402015",
|
||||
"isBan": false,
|
||||
"isBan": true,
|
||||
"isMuted": false,
|
||||
"accountAge": "2021-11-12 20:30:30",
|
||||
"registerOn": 1636801177.809589,
|
||||
"canStartKickVote":true,
|
||||
"canStartKickVote": true,
|
||||
"totaltimeplayer": 0,
|
||||
"lastseen": 0
|
||||
"lastseen": 0,
|
||||
"spamCount": 4,
|
||||
"lastSpam": 1637912278.8745685
|
||||
}
|
||||
}
|
||||
11
dist/ba_root/mods/serverData/Chat Logs.log
vendored
11
dist/ba_root/mods/serverData/Chat Logs.log
vendored
|
|
@ -8,3 +8,14 @@
|
|||
2021-10-23 15:53:34.357371: pb-JiNJARBaXEFBVF9HFkNXXF1EF0ZaRlZE | 7
|
||||
2021-10-23 15:53:38.152627: pb-JiNJARBaXEFBVF9HFkNXXF1EF0ZaRlZE | 8
|
||||
2021-10-23 15:53:41.077009: pb-JiNJARBaXEFBVF9HFkNXXF1EF0ZaRlZE | 9
|
||||
2021-11-25 22:15:06.477416: pb-IF5XUm9eAg== | ohh fuck
|
||||
2021-11-25 22:15:10.409848: pb-IF5XUm9eAg== | shit
|
||||
2021-11-25 22:15:14.275920: pb-IF5XUm9eAg== | bye
|
||||
2021-11-25 22:15:16.296385: pb-IF5XUm9eAg== | no
|
||||
2021-11-25 22:15:21.839111: pb-IF5XUm9eAg== | no
|
||||
2021-11-25 22:15:24.687210: pb-IF5XUm9eAg== | fuck
|
||||
2021-11-25 22:15:27.920635: pb-IF5XUm9eAg== | fuck
|
||||
2021-11-25 22:15:30.901683: pb-IF5XUm9eAg== | uck
|
||||
2021-11-25 22:15:33.372142: pb-IF5XUm9eAg== | fuck
|
||||
2021-11-25 22:15:36.348450: pb-IF5XUm9eAg== | fuck
|
||||
2021-11-25 22:15:39.339904: pb-IF5XUm9eAg== | okokoko
|
||||
|
|
|
|||
17
dist/ba_root/mods/setting.json
vendored
17
dist/ba_root/mods/setting.json
vendored
|
|
@ -4,15 +4,9 @@
|
|||
"spectators": false,
|
||||
"lobbychecktime": 1
|
||||
},
|
||||
|
||||
|
||||
|
||||
"ChatCommands": {
|
||||
"BrodcastCommand": true
|
||||
},
|
||||
|
||||
|
||||
|
||||
"textonmap": {
|
||||
"top watermark": "Welcome to server \n ip 192.168.0.1",
|
||||
"bottom left watermark": "Owner : <owner-name> \nEditor : <bablu>\nScripts : BCS1.3.2",
|
||||
|
|
@ -25,9 +19,12 @@
|
|||
"autoNightMode":{
|
||||
"enable":true,
|
||||
"startTime":"18:30",
|
||||
"endTime":"06:00"
|
||||
"endTime":"06:00",
|
||||
"fireflies":true
|
||||
},
|
||||
"HostDeviceName":"v1.3.1",
|
||||
"sameCharacterForTeam":false,
|
||||
"newResultBoard":true,
|
||||
"HostDeviceName":"v1.3.2",
|
||||
"HostName":"BCS",
|
||||
"ShowKickVoteStarterName":true,
|
||||
"KickVoteMsgType":"chat",
|
||||
|
|
@ -35,6 +32,10 @@
|
|||
"minAgeToJoinInHours":24,
|
||||
"maxWarnCount":2,
|
||||
"WarnCooldownMinutes":30,
|
||||
"warnMsg":"WARNING !!!",
|
||||
"afterWarnKickMsg":"Enough warnings, Goodbye have a nice day :)",
|
||||
"firstTimeJoinMsg":"Welcome to the server,we r saving all your account details and chats",
|
||||
"regularWelcomeMsg":"Welcome Back",
|
||||
"enabletags": true,
|
||||
"enablehptag": true,
|
||||
"enablerank": true,
|
||||
|
|
|
|||
Binary file not shown.
45
dist/ba_root/mods/spazmod/modifyspaz.py
vendored
45
dist/ba_root/mods/spazmod/modifyspaz.py
vendored
|
|
@ -1,6 +1,10 @@
|
|||
from spazmod import tag
|
||||
from spazmod import effects
|
||||
import setting
|
||||
from random import randint
|
||||
|
||||
import _ba,ba
|
||||
_setting=setting.get_settings_data()
|
||||
|
||||
def update_name():
|
||||
import _ba
|
||||
|
|
@ -17,7 +21,7 @@ def update_name():
|
|||
|
||||
# all activites related to modify spaz by any how will be here
|
||||
def main(spaz, node, player):
|
||||
_setting=setting.get_settings_data()
|
||||
|
||||
if _setting['enablehptag']:
|
||||
tag.addhp(spaz)
|
||||
if _setting['enabletags']:
|
||||
|
|
@ -26,4 +30,41 @@ def main(spaz, node, player):
|
|||
tag.addrank(node,player)
|
||||
if _setting['enableeffects']:
|
||||
effects.Effect(spaz,player)
|
||||
update_name()
|
||||
|
||||
|
||||
#update_name() will add threading here later . it was adding delay on game start
|
||||
|
||||
def getCharacter(player,character):
|
||||
|
||||
if _setting["sameCharacterForTeam"]:
|
||||
|
||||
if "character" in player.team.sessionteam.customdata:
|
||||
|
||||
return player.team.sessionteam.customdata["character"]
|
||||
|
||||
return character
|
||||
|
||||
|
||||
def getRandomCharacter(otherthen):
|
||||
characters=list(ba.app.spaz_appearances.keys())
|
||||
invalid_characters=["Snake Shadow","Lee","Zola","Butch","Witch","Middle-Man","Alien","OldLady","Wrestler","Gretel","Robot"]
|
||||
|
||||
while True:
|
||||
val=randint(0,len(characters)-1)
|
||||
ch=characters[val]
|
||||
if ch not in invalid_characters and ch not in otherthen:
|
||||
return ch
|
||||
|
||||
|
||||
def setTeamCharacter():
|
||||
if not _setting["sameCharacterForTeam"]:
|
||||
return
|
||||
used=[]
|
||||
teams=_ba.get_foreground_host_session().sessionteams
|
||||
if len(teams) < 10:
|
||||
for team in teams:
|
||||
character=getRandomCharacter(used)
|
||||
used.append(character)
|
||||
team.name=character
|
||||
team.customdata["character"]=character
|
||||
|
||||
|
|
|
|||
82
dist/ba_root/mods/stats/stats.json
vendored
82
dist/ba_root/mods/stats/stats.json
vendored
|
|
@ -120,7 +120,7 @@
|
|||
"aid": "pb-IF4VVUgJVw=="
|
||||
},
|
||||
"pb-IF4gVU0BCg==": {
|
||||
"rank": 53,
|
||||
"rank": 52,
|
||||
"name": "\ue020Dewanggaming",
|
||||
"scores": 43,
|
||||
"total_damage": 0.0,
|
||||
|
|
@ -132,7 +132,7 @@
|
|||
"aid": "pb-IF4gVU0BCg=="
|
||||
},
|
||||
"pb-IF4FVXkZDQ==": {
|
||||
"rank": 27,
|
||||
"rank": 26,
|
||||
"name": "\ue020lllBOLTlll",
|
||||
"scores": 151,
|
||||
"total_damage": 0.0,
|
||||
|
|
@ -156,7 +156,7 @@
|
|||
"aid": "pb-IF42VUpaDg=="
|
||||
},
|
||||
"pb-IF4iVUNSIw==": {
|
||||
"rank": 48,
|
||||
"rank": 47,
|
||||
"name": "default",
|
||||
"scores": 56,
|
||||
"total_damage": 0.0,
|
||||
|
|
@ -168,7 +168,7 @@
|
|||
"aid": "pb-IF4iVUNSIw=="
|
||||
},
|
||||
"pb-IF4PVGcSJw==": {
|
||||
"rank": 42,
|
||||
"rank": 41,
|
||||
"name": "\ue030Android29104233",
|
||||
"scores": 84,
|
||||
"total_damage": 0.0,
|
||||
|
|
@ -180,7 +180,7 @@
|
|||
"aid": "pb-IF4PVGcSJw=="
|
||||
},
|
||||
"pb-IF4eVVMkMw==": {
|
||||
"rank": 30,
|
||||
"rank": 29,
|
||||
"name": "\ue030Android52887552",
|
||||
"scores": 101,
|
||||
"total_damage": 0.0,
|
||||
|
|
@ -240,7 +240,7 @@
|
|||
"aid": "pb-IF4PVVIeHw=="
|
||||
},
|
||||
"pb-IF4AVXAmPA==": {
|
||||
"rank": 50,
|
||||
"rank": 49,
|
||||
"name": "\ue020ESZ\u4e5bOptimusOp\u4e44",
|
||||
"scores": 56,
|
||||
"total_damage": 0.0,
|
||||
|
|
@ -252,7 +252,7 @@
|
|||
"aid": "pb-IF4AVXAmPA=="
|
||||
},
|
||||
"pb-IF4AVVEPNw==": {
|
||||
"rank": 31,
|
||||
"rank": 30,
|
||||
"name": "\ue020StealthyFelicity14",
|
||||
"scores": 96,
|
||||
"total_damage": 0.0,
|
||||
|
|
@ -288,7 +288,7 @@
|
|||
"aid": "pb-IF4DVEkPEg=="
|
||||
},
|
||||
"pb-IF4TVVNeMg==": {
|
||||
"rank": 46,
|
||||
"rank": 45,
|
||||
"name": "\ue030Android52880740",
|
||||
"scores": 61,
|
||||
"total_damage": 0.0,
|
||||
|
|
@ -312,7 +312,7 @@
|
|||
"aid": "pb-IF4yVUcgBg=="
|
||||
},
|
||||
"pb-IF4IVUUJMg==": {
|
||||
"rank": 40,
|
||||
"rank": 39,
|
||||
"name": "\ue030Android51464300",
|
||||
"scores": 90,
|
||||
"total_damage": 0.0,
|
||||
|
|
@ -336,7 +336,7 @@
|
|||
"aid": "pb-IF4tVUwGVA=="
|
||||
},
|
||||
"pb-IF48NmQO": {
|
||||
"rank": 59,
|
||||
"rank": 58,
|
||||
"name": "default",
|
||||
"scores": 6,
|
||||
"total_damage": 0.0,
|
||||
|
|
@ -348,7 +348,7 @@
|
|||
"aid": "pb-IF48NmQO"
|
||||
},
|
||||
"pb-IF4UVUQaAw==": {
|
||||
"rank": 41,
|
||||
"rank": 40,
|
||||
"name": "\ue020LikelyTour25",
|
||||
"scores": 85,
|
||||
"total_damage": 0.0,
|
||||
|
|
@ -384,7 +384,7 @@
|
|||
"aid": "pb-JiNJARBcV0FDXV1DGU5ZXV1FEUFWRVJC"
|
||||
},
|
||||
"pb-IF4OVVMsDQ==": {
|
||||
"rank": 49,
|
||||
"rank": 48,
|
||||
"name": "\ue030Android52893090",
|
||||
"scores": 56,
|
||||
"total_damage": 0.0,
|
||||
|
|
@ -408,7 +408,7 @@
|
|||
"aid": "pb-IF5VVU4aFg=="
|
||||
},
|
||||
"pb-IF4SVW9dEg==": {
|
||||
"rank": 51,
|
||||
"rank": 50,
|
||||
"name": "\ue020PROFFESOR9",
|
||||
"scores": 48,
|
||||
"total_damage": 0.0,
|
||||
|
|
@ -420,7 +420,7 @@
|
|||
"aid": "pb-IF4SVW9dEg=="
|
||||
},
|
||||
"pb-IF4SVVMtDg==": {
|
||||
"rank": 38,
|
||||
"rank": 37,
|
||||
"name": "\ue020OrtigozaRafa2000",
|
||||
"scores": 92,
|
||||
"total_damage": 0.0,
|
||||
|
|
@ -432,7 +432,7 @@
|
|||
"aid": "pb-IF4SVVMtDg=="
|
||||
},
|
||||
"pb-IF4cVVMhKg==": {
|
||||
"rank": 29,
|
||||
"rank": 28,
|
||||
"name": "\ue020jonyteoba100",
|
||||
"scores": 106,
|
||||
"total_damage": 0.0,
|
||||
|
|
@ -456,7 +456,7 @@
|
|||
"aid": "pb-IF4gVRlbXQ=="
|
||||
},
|
||||
"pb-IF4dVVAMUg==": {
|
||||
"rank": 39,
|
||||
"rank": 38,
|
||||
"name": "\ue030Android52657984",
|
||||
"scores": 91,
|
||||
"total_damage": 0.0,
|
||||
|
|
@ -468,7 +468,7 @@
|
|||
"aid": "pb-IF4dVVAMUg=="
|
||||
},
|
||||
"pb-JiNJVxFfUEFDWFtCFEdXVl1FF0FaTllC": {
|
||||
"rank": 58,
|
||||
"rank": 57,
|
||||
"name": "default",
|
||||
"scores": 10,
|
||||
"total_damage": 0.0,
|
||||
|
|
@ -480,7 +480,7 @@
|
|||
"aid": "pb-JiNJVxFfUEFDWFtCFEdXVl1FF0FaTllC"
|
||||
},
|
||||
"pb-IF40VU4TAQ==": {
|
||||
"rank": 36,
|
||||
"rank": 35,
|
||||
"name": "default",
|
||||
"scores": 96,
|
||||
"total_damage": 0.0,
|
||||
|
|
@ -504,7 +504,7 @@
|
|||
"aid": "pb-IF5QVVUkLw=="
|
||||
},
|
||||
"pb-IF5RVUkZKg==": {
|
||||
"rank": 57,
|
||||
"rank": 56,
|
||||
"name": "\ue020ThreateningOddball34",
|
||||
"scores": 16,
|
||||
"total_damage": 0.0,
|
||||
|
|
@ -516,7 +516,7 @@
|
|||
"aid": "pb-IF5RVUkZKg=="
|
||||
},
|
||||
"pb-IF5VVVEnVQ==": {
|
||||
"rank": 47,
|
||||
"rank": 46,
|
||||
"name": "\ue030Android52446817",
|
||||
"scores": 59,
|
||||
"total_damage": 0.0,
|
||||
|
|
@ -528,7 +528,7 @@
|
|||
"aid": "pb-IF5VVVEnVQ=="
|
||||
},
|
||||
"pb-JiNJARBaVUpHWl1BGUBVVFZAEkZeR1FE": {
|
||||
"rank": 33,
|
||||
"rank": 32,
|
||||
"name": "\ue020CreepyJourney52261",
|
||||
"scores": 96,
|
||||
"total_damage": 0.0,
|
||||
|
|
@ -540,7 +540,7 @@
|
|||
"aid": "pb-JiNJARBaVUpHWl1BGUBVVFZAEkZeR1FE"
|
||||
},
|
||||
"pb-IF5QVVZTAA==": {
|
||||
"rank": 45,
|
||||
"rank": 44,
|
||||
"name": "default",
|
||||
"scores": 64,
|
||||
"total_damage": 0.0,
|
||||
|
|
@ -552,7 +552,7 @@
|
|||
"aid": "pb-IF5QVVZTAA=="
|
||||
},
|
||||
"pb-IF5dVU0tPw==": {
|
||||
"rank": 37,
|
||||
"rank": 36,
|
||||
"name": "\ue030Android52110513",
|
||||
"scores": 93,
|
||||
"total_damage": 0.0,
|
||||
|
|
@ -564,7 +564,7 @@
|
|||
"aid": "pb-IF5dVU0tPw=="
|
||||
},
|
||||
"pb-IF4PVUovCQ==": {
|
||||
"rank": 55,
|
||||
"rank": 54,
|
||||
"name": "\ue020Phriedbean",
|
||||
"scores": 20,
|
||||
"total_damage": 0.0,
|
||||
|
|
@ -588,7 +588,7 @@
|
|||
"aid": "pb-IF4sVRU8IA=="
|
||||
},
|
||||
"pb-IF4zVUYjPA==": {
|
||||
"rank": 26,
|
||||
"rank": 25,
|
||||
"name": "\ue030Android51693156",
|
||||
"scores": 152,
|
||||
"total_damage": 0.0,
|
||||
|
|
@ -600,7 +600,7 @@
|
|||
"aid": "pb-IF4zVUYjPA=="
|
||||
},
|
||||
"pb-IF4PVVJSNg==": {
|
||||
"rank": 35,
|
||||
"rank": 34,
|
||||
"name": "default",
|
||||
"scores": 96,
|
||||
"total_damage": 0.0,
|
||||
|
|
@ -612,7 +612,7 @@
|
|||
"aid": "pb-IF4PVVJSNg=="
|
||||
},
|
||||
"pb-IF4qVVMuIA==": {
|
||||
"rank": 32,
|
||||
"rank": 31,
|
||||
"name": "\ue020TacitAnthropology26",
|
||||
"scores": 96,
|
||||
"total_damage": 0.0,
|
||||
|
|
@ -648,7 +648,7 @@
|
|||
"aid": "pb-IF4-VWItPA=="
|
||||
},
|
||||
"pb-IF5VVxI5Fg==": {
|
||||
"rank": 44,
|
||||
"rank": 43,
|
||||
"name": "\ue020JinaYumnam1234",
|
||||
"scores": 76,
|
||||
"total_damage": 0.0,
|
||||
|
|
@ -672,7 +672,7 @@
|
|||
"aid": "pb-IF4lVUskVg=="
|
||||
},
|
||||
"pb-IF4vVVAiKw==": {
|
||||
"rank": 34,
|
||||
"rank": 33,
|
||||
"name": "default",
|
||||
"scores": 96,
|
||||
"total_damage": 0.0,
|
||||
|
|
@ -696,7 +696,7 @@
|
|||
"aid": "pb-IF5RVU0vKg=="
|
||||
},
|
||||
"pb-IF4JVWseCg==": {
|
||||
"rank": 43,
|
||||
"rank": 42,
|
||||
"name": "\ue020CapillaryJaguar7",
|
||||
"scores": 77,
|
||||
"total_damage": 0.0,
|
||||
|
|
@ -720,7 +720,7 @@
|
|||
"aid": "pb-IF4HVVAkEg=="
|
||||
},
|
||||
"pb-JiNJARFTUUBCXFhJE0NUVFdCEERbT1dK": {
|
||||
"rank": 56,
|
||||
"rank": 55,
|
||||
"name": "\ue020snehil7701",
|
||||
"scores": 20,
|
||||
"total_damage": 0.0,
|
||||
|
|
@ -804,7 +804,7 @@
|
|||
"aid": "pb-IF5cVEMNNA=="
|
||||
},
|
||||
"pb-IF4PVEEnBA==": {
|
||||
"rank": 28,
|
||||
"rank": 27,
|
||||
"name": "\ue020Deadly\u30c4TusKeR",
|
||||
"scores": 128,
|
||||
"total_damage": 0.0,
|
||||
|
|
@ -816,7 +816,7 @@
|
|||
"aid": "pb-IF4PVEEnBA=="
|
||||
},
|
||||
"pb-IF4RVVMDVQ==": {
|
||||
"rank": 54,
|
||||
"rank": 53,
|
||||
"name": "\ue030Android52942930",
|
||||
"scores": 37,
|
||||
"total_damage": 0.0,
|
||||
|
|
@ -828,7 +828,7 @@
|
|||
"aid": "pb-IF4RVVMDVQ=="
|
||||
},
|
||||
"pb-IF43VVJSAg==": {
|
||||
"rank": 52,
|
||||
"rank": 51,
|
||||
"name": "\ue020RANDOMGOD2011",
|
||||
"scores": 44,
|
||||
"total_damage": 0.0,
|
||||
|
|
@ -840,15 +840,15 @@
|
|||
"aid": "pb-IF43VVJSAg=="
|
||||
},
|
||||
"pb-IF5XUm9eAg==": {
|
||||
"rank": 25,
|
||||
"rank": 59,
|
||||
"name": "\ue030PC402015",
|
||||
"scores": 152,
|
||||
"scores": 5,
|
||||
"total_damage": 0.0,
|
||||
"kills": 0,
|
||||
"deaths": 10,
|
||||
"games": 21,
|
||||
"kd": 0.0,
|
||||
"avg_score": 7.238,
|
||||
"kills": 8,
|
||||
"deaths": 75,
|
||||
"games": 93,
|
||||
"kd": 0.106,
|
||||
"avg_score": 0.053,
|
||||
"aid": "pb-IF5XUm9eAg=="
|
||||
}
|
||||
}
|
||||
90
dist/ba_root/mods/stats/stats_page.html
vendored
90
dist/ba_root/mods/stats/stats_page.html
vendored
|
|
@ -211,14 +211,6 @@
|
|||
</tr>
|
||||
<tr>
|
||||
<td>25</td>
|
||||
<td style="text-align:center">PC402015</td>
|
||||
<td>152</td>
|
||||
<td>0</td>
|
||||
<td>10</td>
|
||||
<td>21</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>26</td>
|
||||
<td style="text-align:center">Android51693156</td>
|
||||
<td>152</td>
|
||||
<td>0</td>
|
||||
|
|
@ -226,7 +218,7 @@
|
|||
<td>3</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>27</td>
|
||||
<td>26</td>
|
||||
<td style="text-align:center">lllBOLTlll</td>
|
||||
<td>151</td>
|
||||
<td>9</td>
|
||||
|
|
@ -234,7 +226,7 @@
|
|||
<td>3</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>28</td>
|
||||
<td>27</td>
|
||||
<td style="text-align:center">DeadlyツTusKeR</td>
|
||||
<td>128</td>
|
||||
<td>3</td>
|
||||
|
|
@ -242,7 +234,7 @@
|
|||
<td>3</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>29</td>
|
||||
<td>28</td>
|
||||
<td style="text-align:center">jonyteoba100</td>
|
||||
<td>106</td>
|
||||
<td>2</td>
|
||||
|
|
@ -250,7 +242,7 @@
|
|||
<td>4</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>30</td>
|
||||
<td>29</td>
|
||||
<td style="text-align:center">Android52887552</td>
|
||||
<td>101</td>
|
||||
<td>0</td>
|
||||
|
|
@ -258,7 +250,7 @@
|
|||
<td>6</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>31</td>
|
||||
<td>30</td>
|
||||
<td style="text-align:center">StealthyFelicity14</td>
|
||||
<td>96</td>
|
||||
<td>0</td>
|
||||
|
|
@ -266,7 +258,7 @@
|
|||
<td>1</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>32</td>
|
||||
<td>31</td>
|
||||
<td style="text-align:center">TacitAnthropology26</td>
|
||||
<td>96</td>
|
||||
<td>0</td>
|
||||
|
|
@ -274,13 +266,21 @@
|
|||
<td>1</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>33</td>
|
||||
<td>32</td>
|
||||
<td style="text-align:center">CreepyJourney52261</td>
|
||||
<td>96</td>
|
||||
<td>0</td>
|
||||
<td>0</td>
|
||||
<td>1</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>33</td>
|
||||
<td style="text-align:center">default</td>
|
||||
<td>96</td>
|
||||
<td>0</td>
|
||||
<td>0</td>
|
||||
<td>1</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>34</td>
|
||||
<td style="text-align:center">default</td>
|
||||
|
|
@ -299,14 +299,6 @@
|
|||
</tr>
|
||||
<tr>
|
||||
<td>36</td>
|
||||
<td style="text-align:center">default</td>
|
||||
<td>96</td>
|
||||
<td>0</td>
|
||||
<td>0</td>
|
||||
<td>1</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>37</td>
|
||||
<td style="text-align:center">Android52110513</td>
|
||||
<td>93</td>
|
||||
<td>0</td>
|
||||
|
|
@ -314,7 +306,7 @@
|
|||
<td>2</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>38</td>
|
||||
<td>37</td>
|
||||
<td style="text-align:center">OrtigozaRafa2000</td>
|
||||
<td>92</td>
|
||||
<td>4</td>
|
||||
|
|
@ -322,7 +314,7 @@
|
|||
<td>4</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>39</td>
|
||||
<td>38</td>
|
||||
<td style="text-align:center">Android52657984</td>
|
||||
<td>91</td>
|
||||
<td>0</td>
|
||||
|
|
@ -330,7 +322,7 @@
|
|||
<td>2</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>40</td>
|
||||
<td>39</td>
|
||||
<td style="text-align:center">Android51464300</td>
|
||||
<td>90</td>
|
||||
<td>0</td>
|
||||
|
|
@ -338,7 +330,7 @@
|
|||
<td>2</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>41</td>
|
||||
<td>40</td>
|
||||
<td style="text-align:center">LikelyTour25</td>
|
||||
<td>85</td>
|
||||
<td>11</td>
|
||||
|
|
@ -346,7 +338,7 @@
|
|||
<td>2</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>42</td>
|
||||
<td>41</td>
|
||||
<td style="text-align:center">Android29104233</td>
|
||||
<td>84</td>
|
||||
<td>7</td>
|
||||
|
|
@ -354,7 +346,7 @@
|
|||
<td>2</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>43</td>
|
||||
<td>42</td>
|
||||
<td style="text-align:center">CapillaryJaguar7</td>
|
||||
<td>77</td>
|
||||
<td>7</td>
|
||||
|
|
@ -362,7 +354,7 @@
|
|||
<td>3</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>44</td>
|
||||
<td>43</td>
|
||||
<td style="text-align:center">JinaYumnam1234</td>
|
||||
<td>76</td>
|
||||
<td>0</td>
|
||||
|
|
@ -370,7 +362,7 @@
|
|||
<td>1</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>45</td>
|
||||
<td>44</td>
|
||||
<td style="text-align:center">default</td>
|
||||
<td>64</td>
|
||||
<td>0</td>
|
||||
|
|
@ -378,7 +370,7 @@
|
|||
<td>1</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>46</td>
|
||||
<td>45</td>
|
||||
<td style="text-align:center">Android52880740</td>
|
||||
<td>61</td>
|
||||
<td>0</td>
|
||||
|
|
@ -386,7 +378,7 @@
|
|||
<td>2</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>47</td>
|
||||
<td>46</td>
|
||||
<td style="text-align:center">Android52446817</td>
|
||||
<td>59</td>
|
||||
<td>2</td>
|
||||
|
|
@ -394,7 +386,7 @@
|
|||
<td>2</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>48</td>
|
||||
<td>47</td>
|
||||
<td style="text-align:center">default</td>
|
||||
<td>56</td>
|
||||
<td>2</td>
|
||||
|
|
@ -402,7 +394,7 @@
|
|||
<td>1</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>49</td>
|
||||
<td>48</td>
|
||||
<td style="text-align:center">Android52893090</td>
|
||||
<td>56</td>
|
||||
<td>0</td>
|
||||
|
|
@ -410,7 +402,7 @@
|
|||
<td>2</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>50</td>
|
||||
<td>49</td>
|
||||
<td style="text-align:center">ESZ乛OptimusOp乄</td>
|
||||
<td>56</td>
|
||||
<td>0</td>
|
||||
|
|
@ -418,7 +410,7 @@
|
|||
<td>2</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>51</td>
|
||||
<td>50</td>
|
||||
<td style="text-align:center">PROFFESOR9</td>
|
||||
<td>48</td>
|
||||
<td>0</td>
|
||||
|
|
@ -426,7 +418,7 @@
|
|||
<td>5</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>52</td>
|
||||
<td>51</td>
|
||||
<td style="text-align:center">RANDOMGOD2011</td>
|
||||
<td>44</td>
|
||||
<td>3</td>
|
||||
|
|
@ -434,7 +426,7 @@
|
|||
<td>2</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>53</td>
|
||||
<td>52</td>
|
||||
<td style="text-align:center">Dewanggaming</td>
|
||||
<td>43</td>
|
||||
<td>3</td>
|
||||
|
|
@ -442,7 +434,7 @@
|
|||
<td>3</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>54</td>
|
||||
<td>53</td>
|
||||
<td style="text-align:center">Android52942930</td>
|
||||
<td>37</td>
|
||||
<td>1</td>
|
||||
|
|
@ -450,7 +442,7 @@
|
|||
<td>1</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>55</td>
|
||||
<td>54</td>
|
||||
<td style="text-align:center">Phriedbean</td>
|
||||
<td>20</td>
|
||||
<td>2</td>
|
||||
|
|
@ -458,7 +450,7 @@
|
|||
<td>2</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>56</td>
|
||||
<td>55</td>
|
||||
<td style="text-align:center">snehil7701</td>
|
||||
<td>20</td>
|
||||
<td>2</td>
|
||||
|
|
@ -466,7 +458,7 @@
|
|||
<td>1</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>57</td>
|
||||
<td>56</td>
|
||||
<td style="text-align:center">ThreateningOddball34</td>
|
||||
<td>16</td>
|
||||
<td>1</td>
|
||||
|
|
@ -474,7 +466,7 @@
|
|||
<td>2</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>58</td>
|
||||
<td>57</td>
|
||||
<td style="text-align:center">default</td>
|
||||
<td>10</td>
|
||||
<td>1</td>
|
||||
|
|
@ -482,13 +474,21 @@
|
|||
<td>1</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>59</td>
|
||||
<td>58</td>
|
||||
<td style="text-align:center">default</td>
|
||||
<td>6</td>
|
||||
<td>0</td>
|
||||
<td>1</td>
|
||||
<td>1</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>59</td>
|
||||
<td style="text-align:center">PC402015</td>
|
||||
<td>5</td>
|
||||
<td>8</td>
|
||||
<td>75</td>
|
||||
<td>93</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>60</td>
|
||||
<td style="text-align:center">default</td>
|
||||
|
|
|
|||
17
dist/ba_root/mods/tools/ServerUpdate.py
vendored
Normal file
17
dist/ba_root/mods/tools/ServerUpdate.py
vendored
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
from playersData import pdata
|
||||
import time
|
||||
import _thread
|
||||
|
||||
def check():
|
||||
_thread.start_new_thread(updateProfilesJson,())
|
||||
|
||||
|
||||
def updateProfilesJson():
|
||||
profiles=pdata.get_profiles()
|
||||
|
||||
for id in profiles:
|
||||
if "spamCount" not in profiles[id]:
|
||||
profiles[id]["spamCount"]=0
|
||||
profiles[id]["lastSpam"]=time.time()
|
||||
|
||||
pdata.commit_profiles(profiles)
|
||||
BIN
dist/ba_root/mods/tools/__pycache__/ServerUpdate.cpython-39.pyc
vendored
Normal file
BIN
dist/ba_root/mods/tools/__pycache__/ServerUpdate.cpython-39.pyc
vendored
Normal file
Binary file not shown.
BIN
dist/ba_root/mods/tools/__pycache__/dualteamscore.cpython-39.pyc
vendored
Normal file
BIN
dist/ba_root/mods/tools/__pycache__/dualteamscore.cpython-39.pyc
vendored
Normal file
Binary file not shown.
BIN
dist/ba_root/mods/tools/__pycache__/fireflies.cpython-39.pyc
vendored
Normal file
BIN
dist/ba_root/mods/tools/__pycache__/fireflies.cpython-39.pyc
vendored
Normal file
Binary file not shown.
BIN
dist/ba_root/mods/tools/__pycache__/profanity.cpython-39.pyc
vendored
Normal file
BIN
dist/ba_root/mods/tools/__pycache__/profanity.cpython-39.pyc
vendored
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
60
dist/ba_root/mods/tools/profanity.py
vendored
Normal file
60
dist/ba_root/mods/tools/profanity.py
vendored
Normal file
|
|
@ -0,0 +1,60 @@
|
|||
# ported from ankit scripts
|
||||
# need to update in future with easy to add custom list and more deep analysis .
|
||||
# working on other features rn, will update this later , for now lets use this
|
||||
import re
|
||||
|
||||
PATTERN = (
|
||||
r"fu+c+k|"
|
||||
r"fu+c+($|)|"
|
||||
r"fu+k+($|)|"
|
||||
r"\w*ph+u*c+k\w*\b|"
|
||||
r"\b\w+ch+o+d|"
|
||||
r"randi+|"
|
||||
r"chu+t\w*\b|"
|
||||
r"chh+a+k+[ae]|"
|
||||
r"hijd\w|"
|
||||
r"lund\b|"
|
||||
r"\bass\b|"
|
||||
r"asshole|"
|
||||
r"bi*tch|"
|
||||
r"cock|"
|
||||
r"\bga+nd\b|"
|
||||
r"ga+ndu|"
|
||||
r"tharki|"
|
||||
r"tatti|"
|
||||
r"lod\w\b|"
|
||||
r"jha+nt|"
|
||||
r"pu+s+y|"
|
||||
r"pu+z+y|"
|
||||
r"di+c+k|"
|
||||
r"\b([mb]+c+)+\b|"
|
||||
r"\b[mb]+[^a-zA-Z]?c+\b|"
|
||||
r"f.u.c.k|"
|
||||
r"b\w*s\w?d\w?k|"
|
||||
r"m.{0,4}d.?a.{0,8}c.?h.?o.?d|"
|
||||
r"b.+n.?c.?h.?o.?d|"
|
||||
r"cunt|"
|
||||
r"my+r+e|"
|
||||
r"th+y+r|"
|
||||
r"th+y+i+r|"
|
||||
r"th+aa+y+o+l+i|"
|
||||
r"th+a+y+o+l+i|"
|
||||
r"ku+nn+a+n|"
|
||||
r"na+y+i+n+t+e|"
|
||||
r"pu+ll+u|"
|
||||
r"la+(u|v)+d+\w\b|"
|
||||
r"chu+d\w*\b|"
|
||||
"sex+($|)|"
|
||||
r"bo+b(s|z)|"
|
||||
r"po+r+n|"
|
||||
r"ni+p+le+"
|
||||
)
|
||||
|
||||
def censor(message):
|
||||
censored_message = re.sub(
|
||||
PATTERN,
|
||||
lambda match: "*" * len(match.group()),
|
||||
message,
|
||||
flags=re.IGNORECASE
|
||||
)
|
||||
return censored_message
|
||||
94
dist/ba_root/mods/tools/servercheck.py
vendored
94
dist/ba_root/mods/tools/servercheck.py
vendored
|
|
@ -14,6 +14,8 @@ import ba
|
|||
from ba._general import Call
|
||||
import threading
|
||||
import setting
|
||||
import _thread
|
||||
from tools import profanity
|
||||
# class ServerChecker:
|
||||
|
||||
# def __init__():
|
||||
|
|
@ -68,10 +70,17 @@ class checkserver(object):
|
|||
|
||||
newPlayers.append(ros['account_id'])
|
||||
if ros['account_id'] not in self.players and ros['client_id'] !=-1:
|
||||
|
||||
d_str=ros['display_string']
|
||||
d_str2=profanity.censor(d_str)
|
||||
if d_str2!=d_str:
|
||||
_ba.screenmessage("Profanity in Id , change your ID and join back",color=(1,0,0),transient=True,clients=[ros['client_id']])
|
||||
_ba.disconnect_client(ros['client_id'],1)
|
||||
return
|
||||
if ros['account_id'] != None:
|
||||
|
||||
LoadProfile(ros['account_id']).start()
|
||||
if ros['account_id'] in serverdata.clients:
|
||||
on_player_join_server(ros['account_id'],serverdata.clients[ros['account_id']])
|
||||
else:
|
||||
LoadProfile(ros['account_id']).start()
|
||||
|
||||
self.players=newPlayers
|
||||
|
||||
|
|
@ -80,8 +89,30 @@ settings = setting.get_settings_data()
|
|||
|
||||
|
||||
def on_player_join_server(pbid,player_data):
|
||||
|
||||
now=time.time()
|
||||
#player_data=pdata.get_info(pbid)
|
||||
clid=113
|
||||
for ros in _ba.get_game_roster():
|
||||
if ros["account_id"]==pbid:
|
||||
clid=ros["client_id"]
|
||||
if pbid in serverdata.clients:
|
||||
rejoinCount=serverdata.clients[pbid]["rejoincount"]
|
||||
spamCount=serverdata.clients[pbid]["spamCount"]
|
||||
if now-serverdata.clients[pbid]["lastJoin"] < 15:
|
||||
rejoinCount+=1
|
||||
if rejoinCount >2:
|
||||
_ba.screenmessage("Joining too fast , slow down dude",color=(1,0,1),transient=True,clients=[clid])
|
||||
_ba.disconnect_client(clid)
|
||||
_thread.start_new_thread(reportSpam,(pbid,))
|
||||
|
||||
return
|
||||
else:
|
||||
rejoinCount=0
|
||||
|
||||
serverdata.clients[pbid]["rejoincount"]=rejoinCount
|
||||
serverdata.clients[pbid]["lastJoin"]=now
|
||||
|
||||
|
||||
|
||||
if player_data!=None:
|
||||
device_strin=""
|
||||
|
|
@ -89,25 +120,37 @@ def on_player_join_server(pbid,player_data):
|
|||
for ros in _ba.get_game_roster():
|
||||
if ros['account_id']==pbid:
|
||||
if not player_data["isBan"]:
|
||||
_ba.screenmessage("New Accounts not allowed here , come back later",transient=True,clients=[ros['client_id']])
|
||||
_ba.screenmessage("New Accounts not allowed here , come back later",color=(1,0,0), transient=True,clients=[ros['client_id']])
|
||||
_ba.disconnect_client(ros['client_id'])
|
||||
return
|
||||
else:
|
||||
|
||||
serverdata.clients[pbid]=player_data
|
||||
serverdata.clients[pbid]["warnCount"]=0
|
||||
serverdata.clients[pbid]["lastWarned"]=time.time()
|
||||
if not player_data["canStartKickVote"]:
|
||||
_ba.disable_kickvote(pbid)
|
||||
if pbid not in serverdata.clients:
|
||||
serverdata.clients[pbid]=player_data
|
||||
serverdata.clients[pbid]["warnCount"]=0
|
||||
serverdata.clients[pbid]["lastWarned"]=time.time()
|
||||
serverdata.clients[pbid]["verified"]=False
|
||||
serverdata.clients[pbid]["rejoincount"]=1
|
||||
serverdata.clients[pbid]["lastJoin"]=time.time()
|
||||
if not player_data["canStartKickVote"]:
|
||||
_ba.disable_kickvote(pbid)
|
||||
|
||||
verify_account(pbid,player_data)
|
||||
cid=113
|
||||
d_st="xx"
|
||||
for ros in _ba.get_game_roster():
|
||||
if ros['account_id']==pbid:
|
||||
cid=ros['client_id']
|
||||
d_st=ros['display_string']
|
||||
_ba.screenmessage(settings["regularWelcomeMsg"]+" "+d_st,color=(0.60,0.8,0.6),transient=True,clients=[cid])
|
||||
|
||||
else:
|
||||
|
||||
d_string=""
|
||||
cid=113
|
||||
for ros in _ba.get_game_roster():
|
||||
if ros['account_id']==pbid:
|
||||
d_string=ros['display_string']
|
||||
cid=ros['client_id']
|
||||
|
||||
thread = FetchThread(
|
||||
target=my_acc_age,
|
||||
|
|
@ -117,6 +160,7 @@ def on_player_join_server(pbid,player_data):
|
|||
)
|
||||
|
||||
thread.start()
|
||||
_ba.screenmessage(settings["firstTimeJoinMsg"],color=(0.6,0.8,0.6),transient=True,clients=[cid])
|
||||
|
||||
|
||||
|
||||
|
|
@ -137,6 +181,8 @@ def verify_account(pb_id,p_data):
|
|||
display_string=d_string
|
||||
)
|
||||
thread2.start()
|
||||
else:
|
||||
serverdata.clients[pb_id]["verified"]=True
|
||||
|
||||
|
||||
#============== IGNORE BLOW CODE , ELSE DIE =======================
|
||||
|
|
@ -250,6 +296,9 @@ def save_ids(ids,pb_id,display_string):
|
|||
if display_string not in ids:
|
||||
msg="Spoofed Id detected , Goodbye"
|
||||
_ba.pushcall(Call(kick_by_pb_id,pb_id,msg),from_other_thread=True)
|
||||
serverdata.clients[pb_id]["verified"]=False
|
||||
else:
|
||||
serverdata.clients[pb_id]["verified"]=True
|
||||
|
||||
|
||||
|
||||
|
|
@ -262,14 +311,27 @@ def kick_by_pb_id(pb_id,msg):
|
|||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
def get_account_age(ct):
|
||||
creation_time=datetime.datetime.strptime(ct,"%Y-%m-%d %H:%M:%S")
|
||||
now = datetime.datetime.now()
|
||||
delta = now - creation_time
|
||||
delta_hours = delta.total_seconds() / (60 * 60)
|
||||
return delta_hours
|
||||
|
||||
|
||||
def reportSpam(id):
|
||||
now=time.time()
|
||||
profiles=pdata.get_profiles()
|
||||
if id in profiles:
|
||||
count=profiles[id]["spamCount"]
|
||||
|
||||
if now-profiles[id]["lastSpam"] < 2*24*60*60:
|
||||
count+=1
|
||||
if count > 3:
|
||||
profiles[id]["isBan"]=True
|
||||
else:
|
||||
count =0
|
||||
|
||||
profiles[id]["spamCount"]=count
|
||||
profiles[id]["lastSpam"]=now
|
||||
pdata.commit_profiles(profiles)
|
||||
4
dist/ba_root/mods/tools/textonmap.py
vendored
4
dist/ba_root/mods/tools/textonmap.py
vendored
|
|
@ -7,9 +7,13 @@ import ba, _ba
|
|||
import setting
|
||||
from stats import mystats
|
||||
from datetime import datetime
|
||||
from spazmod import modifyspaz
|
||||
from tools import fireflies
|
||||
class textonmap:
|
||||
|
||||
def __init__(self):
|
||||
modifyspaz.setTeamCharacter()
|
||||
|
||||
setti=setting.get_settings_data()
|
||||
data = setti['textonmap']
|
||||
left = data['bottom left watermark']
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue