Кто знаеть python ?

Тема в разделе "Общие вопросы", создана пользователем maza511, 5 май 2010.

  1. maza511

    maza511

    Сообщения:
    927
    Симпатии:
    456
    Кто разбирается в этом языке? Нужно чутка править файл..
     
  2. Andrey

    Andrey Администратор

    Сообщения:
    3.234
    Симпатии:
    3.507
    Напиши что именно нужно, скопируй код
     
  3. maza511

    maza511

    Сообщения:
    927
    Симпатии:
    456
    Вот я подделал под себя скрипт:
    PHP:
    #anti-bhop.py

    ### imports ###
    import es
    import playerlib
    import time


    # Number of warnings before the Player get banned
    numWarnings 10

    # The number of minutes a player get banned
    # Tip: write 0 for permban
    timeOfBan '5'

    #intern used variable
    Data = {}


    default = 
    str(es.ServerVar('eventscripts_noisy'))

    def load():
        
    es.setinfo('eventscripts_noisy''1')

    def unload():
        
    es.setinfo('eventscripts_noisy', default)

    def warnPlayer(userid):
        if 
    Data[userid]['warnings']+== numWarnings:
            
    es.tell(userid"#multi""#green ПЕРЕСТАНТЕ БАНИХОПИТЬ ИЛИ ВАС ЗАБАНЯТ!")
        else:
            
    es.tell(userid"#multi""#lightgreen ВНИМАНИЕ#default ПЕРЕСТАНТЕ БАНИХОПИТЬ!")

    def player_disconnect(ev):
        if 
    Data.has_key(ev['userid']):
            
    del Data[ev['userid']]
            
    def player_footstep(ev):
        if 
    not Data.has_key(ev['userid']):
            
    Data[ev['userid']] = {}
            
    Data[ev['userid']]['laststep'] = 0
            Data
    [ev['userid']]['warnings'] = 0
        Now 
    float(time.time())
        
    Old float(Data[ev['userid']]['laststep'])
        
    Data[ev['userid']]['laststep'] = Now
        
    if (Now Old) <= 0.01:
            if 
    Data[ev['userid']]['warnings'] < numWarnings:
                
    warnPlayer(ev['userid'])
                
    Data[ev['userid']]['warnings'] += 1
            
    else:
                
    es.server.queuecmd("kickid %s Забанен на 5 минут за банихоп" ev['userid'])
                
    es.server.queuecmd("banid %s %s" % (timeOfBanes.getplayersteamid(ev['userid'])))
    Но он не совсем устраивает. Если человек бхопит десять раз, то его банит на 5 минут.
    Нужно переделать так, чтобы игрок сделавший бхоп 10 раз ПОДРЯД только банился. То есть если игрок сделал бхоп 9 раз и перестал прыгать, надо чтоб все сбилось и он снова мог прыгать 9 раз =)
     
  4. _creotiv_

    _creotiv_

    Сообщения:
    96
    Симпатии:
    113
    возможно в функцию warnplayer, где условие if........ +1 == numwarnings , добавить еще одно условие что то типа ....if +1 < numwarnings ! то есть если меньше заданного числа то как то стереть данные! хдхд! блин с права весь код не вижу.... с телефона...
     
  5. maza511

    maza511

    Сообщения:
    927
    Симпатии:
    456
    Нет, это не то. Так ниче не выдит. Надо добавить новый код, который создаст это условие..
     
  6. Горбаг

    Горбаг Админ Servers-Info.Ru

    Сообщения:
    17
    Симпатии:
    0
    Чем больше у тебя условий, тем тормознутее плагин. И тем выше вероятность заглючить сервер/плагин бесконечным циклом... Лучше все же отредактируй, а не добавляй новое.
     
  7. tooshkan4uk

    tooshkan4uk http://cssrus.ru

    Сообщения:
    423
    Симпатии:
    369
    Не тестил, но должно работать. Если игрок перестал прыгать, количество предупреждений данных игроку, сбрасывается на 0

    PHP:
    #anti-bhop.py

    ### imports ###
    import es
    import playerlib
    import time


    # Number of warnings before the Player get banned
    numWarnings 10

    # The number of minutes a player get banned
    # Tip: write 0 for permban
    timeOfBan '5'

    #intern used variable
    Data = {}


    default = 
    str(es.ServerVar('eventscripts_noisy'))

    def load():
        
    es.setinfo('eventscripts_noisy''1')

    def unload():
        
    es.setinfo('eventscripts_noisy', default)

    def warnPlayer(userid):
        if 
    Data[userid]['warnings']+== numWarnings:
            
    es.tell(userid"#multi""#green ПЕРЕСТАНТЕ БАНИХОПИТЬ ИЛИ ВАС ЗАБАНЯТ!")
        else:
            
    es.tell(userid"#multi""#lightgreen ВНИМАНИЕ#default ПЕРЕСТАНТЕ БАНИХОПИТЬ!")

    def player_disconnect(ev):
        if 
    Data.has_key(ev['userid']):
            
    del Data[ev['userid']]
            
    def player_footstep(ev):
        if 
    not Data.has_key(ev['userid']):
            
    Data[ev['userid']] = {}
            
    Data[ev['userid']]['laststep'] = 0
            Data
    [ev['userid']]['warnings'] = 0
        Now 
    float(time.time())
        
    Old float(Data[ev['userid']]['laststep'])
        
    Data[ev['userid']]['laststep'] = Now
        
    if (Now Old) <= 0.01:
            if 
    Data[ev['userid']]['warnings'] < numWarnings:
                
    warnPlayer(ev['userid'])
                
    Data[ev['userid']]['warnings'] += 1
            
    else:
                
    es.server.queuecmd("kickid %s Забанен на 5 минут за банихоп" ev['userid'])
                
    es.server.queuecmd("banid %s %s" % (timeOfBanes.getplayersteamid(ev['userid']))) 
        else:
            
    Data[ev['userid']]['warnings'] = 0
     
  8. tooshkan4uk

    tooshkan4uk http://cssrus.ru

    Сообщения:
    423
    Симпатии:
    369
    Бред написал...
     
  9. maza511

    maza511

    Сообщения:
    927
    Симпатии:
    456
    Спс тушканчик. Уже не надо =)