EventScripts Forums
Mattie's EventScripts and Source Forums
Script Categories
16000 (15) abilities (15) addon (72) addons (17) admin (354) admins (23) advert (30) adverts (28) afk (18) alerts (12) ammo (25) anti (21) armor (11) auth (16) automatic (15) awp (29) ban (24) bank (11) ba_jail (35) bhop (46) block (27) bomb (48) bonus (25) boost (22) bot (36) bot-management (20) bots (24) bullet (13) bunnyhop (19) Buy (27) buymenu (13) c4 (12) cash (77) Change (14) chat (77) cheat (15) clan (17) classes (24) color (30) colors (20) command (23) commands (21) config (28) configurable (11) connect (58) counter (12) Counter-Strike-Source (20) CS:S (20) css (3386) custom (13) Damage (49) database (14) dead (19) Deagle (11) death (20) deathmatch (79) deathrun (17) deutsch (15) dice (12) disconnect (26) Dissolve (12) dm (24) dod:s (11) dods (501) download (13) easy (26) effect (14) effects (126) English (16) entity (24) est (12) es_tools (14) Eventscript (12) exploit (11) flashbang (27) français (104) french (36) fun (312) funny (18) Gabeee (11) game (12) gamemode (12) gameplay (175) German (11) give (22) gravity (16) grenade (28) grenades (32) gun (16) GunGame (31) GunGame5 (11) guns (20) Hack (16) headshot (37) health (72) hegrenade (15) help (11) hit (13) hl2dm (442) HP (26) hudhint (13) hun (17) hungarian (26) info (53) information (19) invisible (11) IP (13) jail (81) jailbreak (14) join (47) jump (19) kick (25) kill (51) kills (24) knife (66) leveling (38) LnD (14) lol (11) magyar (48) management (14) manager (11) mani (16) map (32) map-management (26) maps (17) match (22) Memphis-84 (13) menu (144) message (34) messaging (52) minecraft (12) mod (121) model (18) models (33) modye (16) money (50) motd (13) music (32) mute (20) nades (20) name (15) new (13) noblock (54) orangebox (23) player (49) player-management (31) player-tracking (28) popup (72) prop (13) propmenu (14) props (34) protect (12) protection (32) punish (11) punishment (51) python (80) quake (32) QuakeSounds (12) race (13) races (20) radio (30) random (47) rank (42) rates (15) rcon (12) realism (22) Regeln (23) respawn (69) restrict (41) round (26) rpg (32) rules (63) say (17) score (16) scout (29) Script (25) script-helper (25) scriptpack (33) sdk (171) server (61) server-tools (42) shop (12) showdamage (20) silly (31) simple (33) skin (17) skins (34) slay (13) soccer (14) sound (67) sounds (107) source (14) spanish (18) spawn (82) speed (26) statistics (14) stats (57) status (15) Steam (11) STEAMID (30) Superhero (15) surf (41) Team (30) team-balance (14) teleport (17) text (19) TF2 (142) time (23) timer (15) tools (15) tracers (19) triggers (11) uedi (17) uses_auth (18) vip (24) vote (39) voting (22) war (25) Warcraft (12) warcraft-source (20) wc3 (14) wcs (47) wcs:Python (32) weapon (88) weapons (120) web (16) welcome (14) wuerfeln (11) zm (26) zombie (100) zombiemod (55) zombies (12)
Script Authors
*XYZ*SaYnt (12) .:MiB:. (20) .:modye:. (14) .eMko* (6) 101satoon101 (12) 3R10N (24) 4u571n91 (5) 7355608 (9) Absolute (9) Ace Rimmer (40) adminc (5) adyshor37 (5) Adz (8) AgathaKnuppelkuh (8) aidden (8) ajax (5) ak_47 (6) Al3c Tr3v3lyan (6) allstareng (5) ashbash1987 (9) ATAMAH (7) Ayuto (5) aznone (5) B00M (5) BackRaw (41) BFH_RedBull (8) bigfabi (8) Bioko (10) blackshoxx (9) Blade (10) bladesback (13) bobdole (11) bodzsar1 (8) bonbon (36) Brainsucker (32) cagemonkey (8) capo azzlack (7) captain master (6) carbon-14 (10) CaskioUTF (5) cbirou (15) CbRRR (16) ChaCaLz2psy4 (5) CharlesT (5) Chris1888 (5) Chrisber (5) chrismrulz (10) Chun (6) cladiron (10) clipz934 (8) Colster (21) Cookieman8 (7) CrAzD (6) craziest (11) dani12356 (12) DanielB (19) Darkness123 (8) Dave (9) dbozan99 (7) dead man walker (12) deathx9 (5) Deathyy (16) dhack (17) Di[M]aN (12) DJ Fire-Black prod (8) DoCky (31) Don (15) dordtcore (9) DragonFreddo (8) Drassil (5) dretax14 (11) Einlanzers (47) EmbouT (10) emilplov (7) Errant (10) Eun (6) Fantole (10) FMIS (5) Franc1sco (17) freddukes (18) Frequency (6) Fridge (5) Fugi91 (6) Fulmine (5) G4ME (5) GAMEREN2 (8) german9114 (13) GODJonez (40) GoodfellaDeal (5) Hansi (6) Hisoka (6) HitThePipe (7) HOLLDIDAY (24) Icetouch (6) ichthys (25) Im the new guy (14) iNexus (13) infamous1 (9) isivisi (13) ispaine (7) Jackmaster (9) Jeff91 (45) JoeyT2006 (30) Juba_PornBorn (12) jxl180 (11) KDBFame (6) L'In20Cible (11) L.P.H (8) Largo Usagi (10) LnD (14) Lobe (11) loKkdoKk (8) lolo-le-haricot (7) LosNir (5) Lumpi@Work (9) M4rc3L-XCN (7) macshot (7) magyar-oneill (9) Matth (7) Mattie (21) mave1993 (5) MBchrono (15) McFly (20) Medda (5) Memphis-84 (15) Messiah93 (20) Mickyy (5) micmacx (6) minimal42O (5) Mitchell (5) Mixer57 (5) modye (6) Monster_Bitch1 (9) Mordavolt (7) motomoto (21) MrScriptaz (6) mryoung (6) MyTechZone.de (9) Nicolous (23) ojii (31) oliVier (10) Omega68 (6) Omega_K2 (11) Owned|Myself (8) P3N (7) pand3mic (6) parsimba (5) Pascal257 (9) PatPeter (7) PDrop (10) Phaedrus (18) PhantOm Fury (7) phoenix131 (9) pinkyyy -.- (5) pitbull0993 (7) PixelGamer (7) qwern (5) randomknifer (9) Raptor150 (31) Ratzee (6) ReaCtioN2oo9 (6) RedCliff (5) Rennnyyy (17) revolutionfighters (8) RideGuy (12) Rio (9) Roeliekt (6) roof (16) runamagic (13) Ryezin (5) sandking220 (6) Sarcasm_Poisoning (10) saRs| Johnny-5 (13) Schubaal (10) sea212 (5) sega74rus (15) sgt.angel (6) Shad0w (11) ShoTaXx# (7) sicilia (7) sicman_adrian (22) skillz92 (7) sn4k3 (18) Snake12 (7) snake38 (10) sonicsight (7) SpeedFreak (9) spoonman184 (12) stabby (22) stas (27) Stirni (6) stonedegg (8) Strontium Dog (30) SumGuy14 (25) SuperDave (49) surfteam (5) TaCo (5) TanaToS (17) Tealk (6) teowow (16) TheCheeTaH (27) TheDonFather (5) theresthatguy (6) Tiny Tod (7) tooshkan4uk (8) Totyahun (9) uedi (38) ultimatebuster (6) Undead (25) usernamesaretaken (15) wanted241 (9) Warren (13) westham (6) WhiteAvenger (7) Wonder (14) Wundermaxe (5) X-Mania (5) XE_ManUp (14) xfalcon61 (5) zSweetXz (5) ZZMatty (6) [Cs]Lord_Inferno2 (11) [DAP]Kickbutt (5) [NATO]Hunter (28) ||Wolf|| (10)
Search

Post new topic Reply to topic
Author Message
User avatar
New User
Profile

Posts: 21
 
New postPosted: 2010-01-18, 7:38 pm 
   Post subject: [BHOP] Plugin for bhop servers (really difficult)

The language the script should be coded in : No preference
Games the script should work with
: Counter-Strike: Source

A detailed description of what you want the script to do
:
Hi, i own a bhop server and i and a plugin that its just like a plugin i saw on another server, that google seams to tell me that it was a custom plugin request made in this forum:

The plugin show players speed every moment, but the time and the jump count, works only when he is going from a star point to an end point, and all these are shown on the center of screen, bellow


////
Fix Phyton Script - EventScripts Forums - [ Traduzir esta página ]
13 Dec 2009 ... info.version = "1.0.2" info.url = "http://www.bananahop.com" info.description = "BananaScript" es.ServerVar(info.basename, info.version, ...
forums.eventscripts.com/viewtopic.php?p=318455
////


I would really apreciatte if any of you guys help me to build a plugin like this, bellow is a picture of how looks like the plugin:

http://img44.imageshack.us/img44/6761/bhopplugin.jpg

Thanks,

Proxy

(Optional) Any features that may be nice to have, but aren't a requirement for the script
:





User avatar
Mentat
Mentat
Profile

Posts: 4782
Location:
C:/Program Files/Bonbon/Bonbon.exe
 
New postPosted: 2010-01-19, 11:12 am 

viewtopic.php?f=25&t=29518&hilit=jumpstats ?

PYTHON:
    import es, gamethread, playerlib, os, cPickle, popuplib, time, usermsg, random, math

    ### Start Config ###

    prune_time = 60 * 60 * 24 * 30 # 1 month
    tell_record_beaten = False
    default_unit = 'world units'

    ### End Config

    ### Constants ###

    FILEPATH = es.getAddonPath('jumpstats') + '/'
    CONVERSIONS = {
        'world units': {'ratio': 1, 'unit': ' world units', 'speed unit': 'u/s'},
        'meters': {'ratio': 78.740157600000003, 'unit': 'm', 'speed unit': 'm/s'},
        'feet': {'ratio': 24.000000036479999, 'unit': 'ft', 'speed unit': 'ft/s'},
        'inches': {'ratio': 2.0000000030400003, 'unit': 'in', 'speed unit': 'in/s'},
        'centimeters': {'ratio': 0.78740157600000005, 'units': 'cm', 'speed unit': 'cm/s'}
    }

    ### Loads ###

    sv = es.ServerVar

    def load():
        for command in ['!jumpstats']:
            if not es.exists('saycommand', command):
                es.regsaycmd(command, 'jumpstats/%s'%command.replace('!jump', ''))

            if not es.exists('clientcommand', command):
                es.regclientcmd(command, 'jumpstats/%s'%command.replace('!jump', ''))

        if not es.exists('command', 'js_jump_range'):
            es.regcmd('js_jump_range', 'jumpstats/add_range')

        if os.path.isfile(FILEPATH + 'jumpstats.cfg'):
            es.server.cmd('es_xmexec ../addons/eventscripts/jumpstats/jumpstats.cfg')

        rank_menu = popuplib.easymenu('Rank Menu', '_popup_choice', rank_select)
        rank_menu.addoption('Your Rank', 'Your Rank')
        rank_menu.addoption('Current Players', 'Current Players')
        rank_menu.addoption('Settings', 'Settings')

        change_units_menu = popuplib.easymenu('Change Units', '_popup_choice', change_units_select)
        for unit in CONVERSIONS:
            change_units_menu.addoption(unit, unit.capitalize())

        settings_menu = popuplib.easymenu('Settings', '_popup_choice', settings_select)
        settings_menu.addoption('Change Units', 'Change Units')

        for option in ['Tell Record Beaten', 'Show Hops', 'Show Jumps of Same Height']:
            settings_menu.addoption(option.lower(), 'Toggle ' + option)

        for userid in es.getUseridList():
            jumpstats.getPlayer(userid)

    def unload():
        for command in ['!mgrank', '!mgmenu', '!mgtop']:
            if es.exists('saycommand', command):
                es.unregsaycmd(command)

            if es.exists('clientcommand', command):
                es.unregclientcmd(command)

        jumpstats.saveData()

    ### Classes ###

    class PlayerClass(object):
        def __init__(self, userid):
            self.userid = userid
            self.steamid = es.getplayersteamid(userid)

            self.start = []
            self.inAir = False

            self.lastPos = []
            self.maxSpeed = 0

            self.halfStrafe = False
            self.vectorPoint = 0

            self.direction = None

            self.pd = {
                'jumps': 0,
                'longest jump': 0,
                'highest speed': 0,
                'last jump': 0,
                'hops': 0,
                'highest hop': 0,
                'tell record beaten': False,
                'show hops': True,
                'unit': default_unit,
                'strafes': 0,
                'highest strafes': 0,
                'total strafes': 0,
                'show jumps of same height': True,
            }

            if self.steamid in jumpstats.data:
                for key in jumpstats.data[self.steamid]:
                    self.pd[key] = jumpstats.data[self.steamid][key]

            self.pd['name'] = es.getplayername(userid)
            self.pd['time'] = time.time()

        def showRank(self, userid=None):
            if userid is None:
                userid = self.userid

            if es.exists('userid', userid):
                pd = jumpstats.getPlayer(userid).pd
                steamid = jumpstats.getPlayer(userid).steamid
            else:
                pd = jumpstats.data[userid]
                steamid = userid

            unit = CONVERSIONS[self.pd['unit']]

            rank_menu = popuplib.easymenu('Rank', '_popup_choice', lambda *a: None)
            rank_menu.addoption(None, 'Longest Jump: %1.2f%s'%(pd['longest jump'] / unit['ratio'], unit['unit']))
            rank_menu.addoption(None, 'Highest Speed: %1.2f %s'%(pd['highest speed'] / unit['ratio'], unit['speed unit']))
            rank_menu.addoption(None, 'Highest Hop Count: %s'%pd['highest hop'])
            rank_menu.addoption(None, 'Highest Strafe Count: %s'%pd['highest strafes'])
            rank_menu.addoption(None, 'Total Strafes: %s'%pd['total strafes'])
            rank_menu.addoption(None, 'Total Jumps: %s'%pd['jumps'])

            rank_menu.submenu(0, 'Rank Menu')
            popuplib.send('Rank', self.userid)

        def playerJumped(self):
            self.pd['jumps'] += 1
            if self.inAir:
                self.stopJump()
            self.pd['hops'] += 1

            self.start = es.getplayerlocation(self.userid)
            self.lastPos = self.start

            self.inAir = True
            self.vectorPoint = self.getVectorY()

            usermsg.hudhint(self.userid, 'Hop Count: %s\nStrafe Count: %s'%(self.pd['hops'], self.pd['strafes']))
            gamethread.delayedname(0.1, 'jump %s'%self.userid, self.jumpLoop)

        def getVectorY(self):
            return math.sin(math.radians(es.getplayerprop(self.userid, 'CCSPlayer.m_angEyeAngles[1]')))

        def jumpLoop(self):
            gamethread.delayedname(0.1, 'jump %s'%self.userid, self.jumpLoop)
            if es.getplayerprop(self.userid, 'CBasePlayer.m_fFlags') & 1:
                self.stopJump()
                return

            if es.getplayerprop(self.userid, 'CBasePlayer.localdata.m_nWaterLevel'):
                self.stopJump(False)
                return

            x, y, z = self.lastPos
            x2, y2, z2 = es.getplayerlocation(self.userid)
            self.lastPos = [x2, y2, z2]

            distance = (((x - x2) ** 2) + ((y - y2) ** 2) + ((z - z2) ** 2)) ** 0.5
            speed = distance / 0.1

            if distance >= 2000:
                self.stopJump()
                return

            if speed > self.maxSpeed:
                self.maxSpeed = speed

            #y4 = es.getplayermovement(self.userid)[1]
            #if not y4:
            #       return

            #if self.direction is None:
            #       self.direction = 'left' if y4 < 0 else 'right'

            y3 = self.getVectorY()
            if self.direction is None:
                self.direction = y3 > self.vectorPoint

            #if abs(y3 - self.vectorPoint) >= 0.18:
            if abs(y3 - self.vectorPoint) >= 0.1:
                #es.msg(2)
                if self.direction:
                    if y3 < self.vectorPoint:
                        return
                else:
                    if y3 > self.vectorPoint:
                        return

                #if (self.direction == 'left' and y3 > self.vectorPoint) or (self.direction == 'right' and y3 < self.vectorPoint):
                #       return

                self.vectorPoint = y3
                if self.halfStrafe:
                    self.pd['strafes'] += 1
                    self.pd['total strafes'] += 1

                    self.halfStrafe = False
                    self.direction = None
                    usermsg.hudhint(self.userid, 'Hop Count: %s\nStrafe Count: %s'%(self.pd['hops'], self.pd['strafes']))
                    #self.direction = 'left' if self.direction == 'left' else 'right'
                    return
                self.halfStrafe = True

        def stopHop(self):
            if time.time() - self.pd['last jump'] > 0.75:
                if self.pd['hops'] > self.pd['highest hop']:
                    self.pd['highest hop'] = self.pd['hops']
                    if self.pd['tell record beaten']:
                        es.tell(self.userid, '#multi', '#lightgreen[Jump Stats]: #defaultYou have beaten your previous hop best with #lightgreen%s#default hops!'%self.pd['hops'])
                self.pd['hops'] = 0

                if self.pd['strafes'] > self.pd['highest strafes']:
                    if self.pd['tell record beaten']:
                        es.tell(self.userid, '#multi', '#lightgreen[Jump Stats]: #defaultYou have beaten your old strafe record with #lightgreen%s#default strafes'%self.pd['strafes'])
                    self.pd['highest strafes'] = self.pd['strafes']
                self.pd['strafes'] = 0

        def stopJump(self, record=True):
            gamethread.cancelDelayed('jump %s'%self.userid)
            if es.getplayerprop(self.userid, 'CBasePlayer.pl.deadflag'):
                return

            self.lastPos = []
            self.inAir = False
            self.direction = None
            self.pd['last jump'] = time.time()

            self.halfStrafe = False
            self.vectorPoint = 0

            gamethread.cancelDelayed('stop hop %s'%self.userid)
            if not record:
                self.maxSpeed = 0
                self.stopHop()
                return

            x, y, z = self.start
            x2, y2, z2 = es.getplayerlocation(self.userid)

            gamethread.delayedname(0.8, 'stop hop %s'%self.userid, self.stopHop)
            distance = (((x - x2) ** 2) + ((y - y2) ** 2) + ((z - z2) ** 2)) ** 0.5

            for start, stop in jumpstats.ranges:
                if start <= distance <= stop:
                    if jumpstats.ranges[start, stop]['sound']:
                        es.emitsound('player', self.userid, jumpstats.ranges[start, stop]['sound'], 1.0, 1.0)

                    message = jumpstats.formatMessage(jumpstats.ranges[start, stop]['message'].replace('<name>', es.getplayername(self.userid)), self.userid)
                    if not message[1].replace(' ', ''):
                        break

                    name = es.getplayername(self.userid)
                    for userid in playerlib.getUseridList('#human'):
                        unit = CONVERSIONS[jumpstats.getPlayer(userid).pd['unit']]
                        usermsg.saytext2(userid, message[0], '\1' + message[1].replace('<distance>', '%1.2f%s'%(distance / unit['ratio'], unit['unit'])))
                    break

            if distance > self.pd['longest jump']:
                self.pd['longest jump'] = distance
                if self.pd['tell record beaten']:
                    units = CONVERSIONS[self.pd['unit']]
                    es.tell(self.userid, '#multi', '#lightgreen[Jump Stats]: #defaultYou have beaten your old jump length record with #lightgreen%0.2f#default %s!'%(distance / unit['ratio'], self.pd['unit']))

            if self.maxSpeed > self.pd['highest speed']:
                self.pd['highest speed'] = self.maxSpeed
                if self.pd['tell record beaten']:
                    units = CONVERSIONS[self.pd['unit']]
                    es.tell(self.userid, '#multi', '#lightgreen[Jump Stats]: #defaultYou have beaten your old speed record with #lightgreen%0.2f#default %s'%(self.maxSpeed / unit['ratio'], unit['speed unit']))

            if abs(z - z2) <= 5:
                if self.pd['show jumps of same height']:
                    es.tell(self.userid, '#multi', '#lightgreen[Jump Stats]: #defaultYou have jumped the same height as before!')
            self.maxSpeed = 0

    class PlayerManager(object):
        def __init__(self):
            self.players = {}
            self.data = self.getData()

            self.ranges = {}

        def getPlayer(self, userid):
            userid = int(userid)
            if not userid in self.players:
                self.players[userid] = PlayerClass(userid)
            return self.players[userid]

        def delPlayer(self, userid, steamid):
            if int(userid) in self.players:
                self.data[steamid] = self.players[int(userid)].pd
                del self.players[int(userid)]
            gamethread.cancelDelayed('jump %s'%userid)

        def updateData(self):
            for userid in es.getUseridList():
                steamid = es.getplayersteamid(userid)
                if steamid in ['STEAM_ID_LAN', 'STEAM_ID_PENDING', 'BOT']:
                    continue
                self.data[steamid] = self.getPlayer(userid).pd

        def getData(self):
            if not os.path.isfile(FILEPATH + 'players.db'):
                return {}
            return cPickle.load(open(FILEPATH + 'players.db'))

        def saveData(self):
            self.updateData()

            iFile = open(FILEPATH + 'players.db', 'w')
            cPickle.dump(self.data, iFile)
            iFile.close()

        def prunePlayers(self):
            current_time = time.time()
            for steamid in self.data.keys():
                if current_time - self.data[steamid]['time'] >= prune_time:
                    es.dbgmsg(1, 'jumpstats: Pruned %s from the database!'%steamid)
                    del self.data[steamid]

        def formatMessage(self, message, userid):
            index = playerlib.getPlayer(userid).get('index')
            if '#red' in message and es.getplayercount(2):
                index = playerlib.getPlayer(random.choice(playerlib.getUseridList('#t'))).get('index')

            elif '#blue' in message and es.getplayercount(3):
                index = playerlib.getPlayer(random.choice(playerlib.getUseridList('#ct'))).get('index')

            elif '#lightgreen' in message:
                index = 0

            message = message.replace('#default', '\1')
            message = message.replace('#green', '\4')

            for color in ['#lightgreen', '#red', '#team', '#blue']:
                message = message.replace(color, '\3')
            return [index, message]

    jumpstats = PlayerManager()

    ### Events ###

    def player_activate(ev):
        jumpstats.getPlayer(ev['userid'])
        es.tell(ev['userid'], '#multi', '#lightgreen[Jump Stats]: #defaultType #lightgreen!jumpstats#default for the jumpstats menu!')

    def player_disconnect(ev):
        jumpstats.delPlayer(ev['userid'], ev['es_steamid'])

    def player_changename(ev):
        jumpstats.getPlayer(ev['userid']).pd['name'] = ev['name']

    def es_map_start(ev):
        jumpstats.prunePlayers()

    def player_jump(ev):
        jumpstats.getPlayer(ev['userid']).playerJumped()

    def player_death(ev):
        gamethread.cancelDelayed('jump %s'%ev['userid'])

    ### Commands ###

    def stats():
        popuplib.send('Rank Menu', es.getcmduserid())

    def add_range():
        if not es.getargs():
            es.dbgmsg(0, 'Jump Stats: Invalid Syntax -- js_jump_range <greater than> <less than> <sound> [message]')
            return
        args = es.getargs().split(' ')

        if len(args) < 3:
            es.dbgmsg(0, 'Jump Stats: Invalid Syntax -- js_jump_range <greater than> <less than> <sound> [message]')
            return

        if not args[0].isdigit():
            es.dbgmsg(0, 'Jump Stats: Non Integer Value for parameter "greater than"')
            return

        if not args[1].isdigit():
            es.dbgmsg(0, 'Jump Stats: Non Integer Value for parameter "less than"')
            return

        if args[2] is '0':
            args[2] = None
        jumpstats.ranges[int(args[0]), int(args[1])] = {'sound': args[2], 'message': ' '.join(args[3:])}

    ### Popups ###

    def rank_select(userid, choice, popupid):
        if choice == 'Your Rank':
            jumpstats.getPlayer(userid).showRank()
            return

        elif choice == 'Current Players':
            player_info_menu = popuplib.easymenu('Player Info', '_popup_choice', player_info_select)
            for userid2 in playerlib.getUseridList('#human'):
                player_info_menu.addoption(userid2, es.getplayername(userid2))

            player_info_menu.submenu(0, 'Rank Menu')
            popuplib.send('Player Info', userid)

        elif choice == 'Settings':
            popuplib.send('Settings', userid)

    def settings_select(userid, choice, popupid):
        if choice == 'Change Units':
            popuplib.send('Change Units', userid)
            return

        player = jumpstats.getPlayer(userid)
        player.pd[choice] = False if player.pd[choice] else True

        es.tell(userid, '#multi', '#lightgreen[Jump Stats]: %s#default is now #lightgreen%s'%(choice, 'on' if player.pd[choice] else 'off'))
        popuplib.send('Settings', userid)

    def change_units_select(userid, choice, popupid):
        jumpstats.getPlayer(userid).pd['unit'] = choice
        es.tell(userid, '#multi', '#lightgreen[Jump Stats]: #defaultYour unit conversion is now in #lightgreen%s#default!'%choice)

    def player_info_select(userid, choice, popupid):
        jumpstats.getPlayer(userid).showRank(choice)


:)

_________________
SicmanAdrian wrote:
I don't think it is possible but maybe SuperDave could try?

abcdefghijklmnopqrstuvwxyz
"It doesn't work" doesn't help us out, help us help you, be more specific!
Remember, when posting non Python code, post in the ES 1.x discussion forum, you'll get better help!
SuperDave wrote:
It's very difficult to see errors in that script because it is some of the worst looking code I have ever seen. And I've seen bonbon's code

Please do not PM for free private scripts/help!


User avatar
New User
Profile

Posts: 21
 
New postPosted: 2010-01-19, 12:04 pm 
   Post subject: Re: [BHOP] Plugin for bhop servers (really difficult)

Thanks man, i'll try


User avatar
New User
Profile

Posts: 21
 
New postPosted: 2010-01-19, 1:42 pm 
   Post subject: Re: [BHOP] Plugin for bhop servers (really difficult)

Hi, unfortunately wan't this plugin, but climbtimer. But does climbtimer shows:

1) Players have a initial score of 2000
2) The time tha a player spends when finishing from a start point to an end point
3) Speed infos + jump count and the time they are in the server.

All of that on the down middle position of the screen(like a table "block")

does climbtimer do that or if don't where can i find it?

Maybe a new script request ?


User avatar
New User
Profile

Posts: 6
 
New postPosted: 2010-01-24, 5:16 pm 

Hello, I made the script for the server. Would you mind adding me on steam so we coult talk about that privately?
I sent you a pm.
Thanks.


Last edited by Call of Dante 4 on 2010-01-24, 5:34 pm, edited 1 time in total.

Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 5 posts ] 


Who is online

Users browsing this forum: No registered users and 2 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group