Форум геймеров и читеров 4cheaT
Закрытая тема.
  1. Cтатус:
    Оффлайн
    Регистрация:
    11.03.2014
    Сообщений:
    91
    Благодарностей:
    18
    Мнения:
    0
    Репутация:
    5 [+/-]
    Баланс:
    0
    Сделки:
    0 Отзывов
    Новое
    Сообщение с задержкой

    Подскажите как можно реализовать выполнение отправки сообщения с задержкой и проверкой условия?

    Есть функция:
    Код:
    def message(msg, sec = 3, toggle = False):
    	if toggle:
    		g_windowsManager.battleWindow.call('battle.PlayerMessagesPanel.ShowMessage', ['0', msg, 'red'])
    Как её модифицировать, чтобы проверка условия toggle и отправка сообщения выполнялась через sec секунд после обращения к функции (причём чтобы весь остальной скрипт останавливать не пришлось)?
     
  2. Cтатус:
    Оффлайн
    Регистрация:
    30.06.2014
    Сообщений:
    25
    Благодарностей:
    138
    Мнения:
    -19
    Репутация:
    55 [+/-]
    Баланс:
    0
    Сделки:
    0 Отзывов
    Новое
    Код:
    import BigWorld
    def message(msg, sec = 3, toggle = False):
    	t=BigWorld.time()
    	def sleep():
    		if BigWorld.time()-t>sec:
    			if toggle:
    				g_windowsManager.battleWindow.call('battle.PlayerMessagesPanel.ShowMessage', ['0', msg, 'red'])
    		else:
    			BigWorld.callback(0.1, sleep)
    	sleep()
    Перед обращением к функции просто запиши в переменную время. Можно поменять местами
    If BigWorld,time()-t<sec:
    BigWorld.callback(0.1, sleep)
    else:
    ...
     
    Последний раз редактировалось parreto; 2015-03-21 в 13:40.
    Пользователь сказал cпасибо:
    e2028030 (2015-03-24)
  3. Cтатус:
    Оффлайн
    Регистрация:
    11.03.2014
    Сообщений:
    91
    Благодарностей:
    18
    Мнения:
    0
    Репутация:
    5 [+/-]
    Баланс:
    0
    Сделки:
    0 Отзывов
    Новое
    Благодарствую, помогло. А как функция BigWorld.callback() работает? Она новый поток создает?
     
Закрытая тема.
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Форум геймеров в Рейтинг@Mail.ru