def change_lobby_check_time(arguments):
    try:
        argument = int(arguments[0])
    except:
        _ba.chatmessage("must type numbe to change lobby check time")
    settings = setting.get_settings_data()
    settings["white_list"]["lobbychecktime"] = argument
    setting.commit(settings)
    _ba.chatmessage(f"lobby check time is {arg} now")
def spectators(arguments):

    if arguments[0] in ['on', 'off']:
        settings = setting.get_settings_data()

        if arguments[0] == 'on':
            settings["white_list"]["spectators"] = True
            setting.commit(settings)
            _ba.chatmessage("spectators on")

        elif arguments[0] == 'off':
            settings["white_list"]["spectators"] = False
            setting.commit(settings)
            _ba.chatmessage("spectators off")
 def __init__(self,position = (0,1.5,0),owner = None,prefix = 'ADMIN',shad = 1.2):
     _set = setting.get_settings_data()
     if not _set['enablehptag']: return
     self.position = position
     self.owner = owner
     m = ba.newnode('math', owner=self.owner, attrs={'input1': self.position, 'operation': 'add'})
     self.owner.connectattr('position', m, 'input2')
     prefix = int(prefix) / 10
     preFix = u"\ue047" + str(prefix) + u"\ue047"
     self._Text = ba.newnode('text',
                                       owner=self.owner,
                                       attrs={
                                           'text':preFix,
                                           'in_world':True,
                                           'shadow':shad,
                                           'flatness':1.0,
                                           'color':(1,1,1) if int(prefix) >= 20 else (1.0,0.2,0.2),
                                           'scale':0.01,
                                           'h_align':'center'})
     m.connectattr('output', self._Text, 'position')
     def a():
         self._Text.delete()
         m.delete()
     self.timer = ba.Timer(100, ba.Call(a), timetype=ba.TimeType.SIM, timeformat=ba.TimeFormat.MILLISECONDS)
Exemplo n.º 4
0
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
    from stats import mystats
    stat = mystats.get_all_stats()
    ros = _ba.get_game_roster()
    for i in ros:
        if i['account_id']:
            name = i['display_string']
            aid = i['account_id']
            if aid in stat:
                stat[aid]['name'] = name
    mystats.dump_stats(stat)


# all activites related to modify spaz by any how will be here
def main(spaz, node, player):

    if _setting['enablehptag']:
        tag.addhp(spaz)
    if _setting['enabletags']:
        tag.addtag(node, player)
    if _setting['enablerank']:
def addhp(node):
    hp = node.hitpoints
    _set = setting.get_settings_data()
    def showHP():
        HitPoint(owner=node,prefix=str(int(hp)),position=(0,0.75,0),shad = 1.4)
    if hp: t = ba.Timer(100,ba.Call(showHP),repeat = True, timetype=ba.TimeType.SIM, timeformat=ba.TimeFormat.MILLISECONDS)
    def __init__(self, spaz, player):
        ba.Actor.__init__(self)
        _settings = setting.get_settings_data()
        custom_tag = pdata.get_custom()['customtag']
        custom_effects = pdata.get_custom()['customeffects']
        self.source_player = player
        self.spazRef = weakref.ref(spaz)
        self.spazNormalColor = spaz.node.color
        self.Decorations = []
        self.Enhancements = []
        self._powerScale = 1.0
        self._armorScale = 1.0
        self._lifeDrainScale = None
        self._damageBounceScale = None
        self._remoteMagicDamge = False
        self._MulitPunch = None
        self._AntiFreeze = 1.0
        self.fallWings = 0
        self.checkDeadTimer = None
        self._hasDead = False
        self.light = None

        node_id = self.source_player.node.playerID
        cl_str = None
        clID = None
        for c in _ba.get_foreground_host_session().sessionplayers:
            if (c.activityplayer) and (c.activityplayer.node.playerID == node_id):
                profiles = c.inputdevice.get_player_profiles()
                clID = c.inputdevice.client_id
                cl_str = c.get_account_id()

        try:
            if cl_str in custom_effects:
                effect = custom_effects[cl_str]

                if effect == 'ice':

                    self.emitIce()
                    self.snowTimer = ba.Timer(0.5, self.emitIce, repeat=True, timetype=TimeType.SIM)
                    return
                elif effect == 'sweat':
                    self.smokeTimer = ba.Timer(0.6, self.emitSmoke, repeat=True, timetype=TimeType.SIM)
                    return
                elif effect == 'scorch':
                    self.scorchTimer = ba.Timer(500, self.update_Scorch, repeat=True, timetype=tt, timeformat=tf)
                    return
                elif effect == 'glow':
                    self.addLightColor((1, 0.6, 0.4))
                    self.checkDeadTimer = ba.Timer(150, self.checkPlayerifDead, repeat=True, timetype=tt, timeformat=tf)
                    return
                elif effect == 'distortion':
                    self.DistortionTimer = ba.Timer(1000, self.emitDistortion, repeat=True, timetype=tt, timeformat=tf)
                    return
                elif effect == 'slime':
                    self.slimeTimer = ba.Timer(250, self.emitSlime, repeat=True, timetype=tt, timeformat=tf)
                    return
                elif effect == 'metal':
                    self.metalTimer = ba.Timer(500, self.emitMetal, repeat=True, timetype=tt, timeformat=tf)
                    return
                elif effect == 'surrounder':
                    self.surround = SurroundBall(spaz, shape="bones")
                    return
                elif effect == 'spark':
                    self.sparkTimer = ba.Timer(100, self.emitSpark, repeat=True, timetype=tt, timeformat=tf)
                    return
        except:
            pass

        if _settings['enablestats']:
            pats = mystats.get_all_stats()
            if cl_str in pats and _settings['enableTop5effects']:
                rank = pats[cl_str]["rank"]
                if rank < 6:
                    if rank == 1:

                        self.surround = SurroundBall(spaz, shape="bones") #self.neroLightTimer = ba.Timer(500, ba.WeakCall(self.neonLightSwitch,("shine" in self.Decorations),("extra_Highlight" in self.Decorations),("extra_NameColor" in self.Decorations)),repeat = True, timetype=tt, timeformat=tf)
                    elif rank == 2:

                        self.smokeTimer = ba.Timer(40, self.emitSmoke, repeat=True, timetype=tt, timeformat=tf)
                    elif rank == 3:

                        self.addLightColor((1, 0.6, 0.4));self.scorchTimer = ba.Timer(500, self.update_Scorch, repeat=True, timetype=tt, timeformat=tf)
                    elif rank == 4:

                        self.metalTimer = ba.Timer(500, self.emitMetal, repeat=True, timetype=tt, timeformat=tf)
                    else:

                        self.addLightColor((1, 0.6, 0.4));self.checkDeadTimer = ba.Timer(150, self.checkPlayerifDead, repeat=True, timetype=tt, timeformat=tf)

        if "smoke" and "spark" and "snowDrops" and "slimeDrops" and "metalDrops" and "Distortion" and "neroLight" and "scorch" and "HealTimer" and "KamikazeCheck" not in self.Decorations:
            #self.checkDeadTimer = ba.Timer(150, ba.WeakCall(self.checkPlayerifDead), repeat=True, timetype=tt, timeformat=tf)
            if self.source_player.is_alive() and self.source_player.actor.node.exists():
                #print("OK")
                self.source_player.actor.node.addDeathAction(ba.Call(self.handlemessage,ba.DieMessage()))
top3Name = []
import threading, json, os, urllib.request, ba, _ba, setting
from ba._activity import Activity
from ba._music import setmusic, MusicType
# False-positive from pylint due to our class-generics-filter.
from ba._player import EmptyPlayer  # pylint: disable=W0611
from ba._team import EmptyTeam  # pylint: disable=W0611
from typing import Any, Dict, Optional
from ba._lobby import JoinInfo
from ba import _activitytypes as ba_actypes
from ba._activitytypes import *
import urllib.request
import custom_hooks
import datetime
#variables
our_settings = setting.get_settings_data()
# where our stats file and pretty html output will go
base_path = os.path.join(_ba.env()['python_directory_user'], "stats" + os.sep)
statsfile = base_path + 'stats.json'
htmlfile = base_path + 'stats_page.html'
table_style = "{width:100%;border: 3px solid black;border-spacing: 5px;border-collapse:collapse;text-align:center;background-color:#fff}"
heading_style = "{border: 3px solid black;text-align:center;}"
html_start = f'''<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>Test Server</title>
        <style>table{table_style} th{heading_style}</style>
    </head>
    <body>
        <h3 style="text-align:center">Top 200 Players </h3>
from __future__ import annotations

from typing import TYPE_CHECKING
from dataclasses import dataclass, field

import os
import datetime
import threading
import setting
import _ba

if TYPE_CHECKING:
    pass

SETTINGS = setting.get_settings_data()
SERVER_DATA_PATH = os.path.join(_ba.env()["python_directory_user"],
                                "serverData" + os.sep)

if SETTINGS["discordbot"]["enable"]:
    from features import discord_bot


@dataclass
class RecentLogs:
    """Saves the recent logs."""

    chats: list[str] = field(default_factory=list)
    joinlog: list[str] = field(default_factory=list)
    cmndlog: list[str] = field(default_factory=list)
    misclogs: list[str] = field(default_factory=list)