The New Future :: FOnline, Half-life 2 :: Roleplay It!  

Вернуться   The New Future :: FOnline, Half-life 2 :: Roleplay It! > Прочее > FOmod > Учебка

Учебка Обучающие материалы.

Ответ
 
Опции темы Опции просмотра
Старый 06.07.2010, 16:54   #21
qthree
A Nice King
 
Аватар для qthree
 
Специализация: Скриптер
Регистрация: 07.10.2009
Адрес: мск+3
Сообщений: 524
Вес репутации: 304
qthree has a reputation beyond reputeqthree has a reputation beyond reputeqthree has a reputation beyond reputeqthree has a reputation beyond reputeqthree has a reputation beyond reputeqthree has a reputation beyond reputeqthree has a reputation beyond reputeqthree has a reputation beyond reputeqthree has a reputation beyond reputeqthree has a reputation beyond reputeqthree has a reputation beyond repute
По умолчанию

Цитата:
Сообщение от heX Посмотреть сообщение
(В идеале нужно создавать спец таймер(низкоуровневый таймер) привязанный к тикам - самый правильный вариант - нужно просить цвета)
В клиентских скриптах есть какой то механизм типа лупа с миллисекундами и есть ГетТик который возвращает колво тиков с запуска приложения.
А с серверной частью жопа.

Попробуй еще глобал луп в main.fos (тоже там мин. 5 сек или нет?).

И еще можно попробовать такое извращение-костыль:
Создать чара-пустышку, повесить ему на idle нужную функцию и бабахать его (чара) методом wait или как там (вот там тоже посмотреть, есть ли минимальный порог или можно 1 сек поставить).

Если уж совсем в мудях зачешется, то как временный совершенно идиотский костыль можно написать прогу, которая бы эмулировала клиент и слала серверу, например, unsafe_ вызов скрипта каждую 1 секунду, а в ту unsafe функцию уже запихнуть обработчик таймеров с задержкой <3 сек.
Ну это все для кодеров нетрадиционной ориентации.

Еще из разряда фантастики хакнуть экзешку сервера и убрать ограничение в мап/глобал лупе.

Ну и из самого банального: написать Цвету чтобы запилил скриптинг без брэинфака

Вот собственно и все варианты.
__________________
 qthree has been possessed!
qthree вне форума   Ответить с цитированием
Старый 06.07.2010, 17:02   #22
PowerMagic
Lost Overseer
 
Аватар для PowerMagic
 
Специализация: ест детей.
Регистрация: 29.01.2010
Сообщений: 1,000
Вес репутации: 571
PowerMagic has a reputation beyond reputePowerMagic has a reputation beyond reputePowerMagic has a reputation beyond reputePowerMagic has a reputation beyond reputePowerMagic has a reputation beyond reputePowerMagic has a reputation beyond reputePowerMagic has a reputation beyond reputePowerMagic has a reputation beyond reputePowerMagic has a reputation beyond reputePowerMagic has a reputation beyond reputePowerMagic has a reputation beyond repute
По умолчанию

PowerMagic ( 02:15:01 )
Кстати, можно было бы увидить какой-то аналог delay для задержки выполненения текущего кода на N милисекунд?
cvet ( 02:16:56 )
Зачем?
PowerMagic ( 02:18:02 )
Например для создания динамического освещения, столкнулся с тем что CreateTimeEvent слишком крутой инструмент для подобных целей, нужна то всего задерка.
cvet ( 02:19:11 )
Нельзя, скрипты выполняются в одном потоке, задержка одного подвешает все остальное.

или это не про то?
__________________
Jet Rock's
PowerMagic вне форума   Ответить с цитированием
Старый 06.07.2010, 21:56   #23
binyan
Senior Member
 
Специализация: Вне команды
Регистрация: 09.02.2010
Сообщений: 339
Вес репутации: 171
binyan has a brilliant futurebinyan has a brilliant futurebinyan has a brilliant futurebinyan has a brilliant futurebinyan has a brilliant futurebinyan has a brilliant futurebinyan has a brilliant futurebinyan has a brilliant futurebinyan has a brilliant futurebinyan has a brilliant futurebinyan has a brilliant future
По умолчанию

Кстати, вот выдержка из ФАКа:
Цитата:
Сообщение от binyan Посмотреть сообщение

Как можно вызывать определённую функцию раз в, например, 10 секунд до выполнения определённых условий?
Скрытый текст:


В общем случае можно использовать временные события

Код:

CreateTimeEvent(_FullMinute+_TimeMultiplier/6,"e_Every10Sec",true);
uint e_Every10Sec( uint[]@ values )  
{
	if(условие сработало)
	{
		return 0; //возврат 0 удаляет эвент
	}else{
		Вызов функции
		return _TimeMultiplier/6; // еще 10 сек
	}
}

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

Скрытый текст:


В общем случае можно использовать временные события

Код:

CreateTimeEvent(_FullMinute+_TimeMultiplier/6,"e_Every10Sec",true);
uint e_Every10Sec( uint[]@ values )  
{
	if(условие сработало)
	{
		return 0; //возврат 0 удаляет эвент
	}
  else{
		Вызов функции
		CreateTimeEvent(_FullMinute+_TimeMultiplier/6,"e_Every10Sec",true); // еще 10 сек
                return 0; //возврат 0 удаляет эвент
	}
}


Типа рекурсивная функция с задержкой. Нэ?
binyan вне форума   Ответить с цитированием
Старый 07.07.2010, 06:35   #24
binyan
Senior Member
 
Специализация: Вне команды
Регистрация: 09.02.2010
Сообщений: 339
Вес репутации: 171
binyan has a brilliant futurebinyan has a brilliant futurebinyan has a brilliant futurebinyan has a brilliant futurebinyan has a brilliant futurebinyan has a brilliant futurebinyan has a brilliant futurebinyan has a brilliant futurebinyan has a brilliant futurebinyan has a brilliant futurebinyan has a brilliant future
По умолчанию

Вопрос:
Кто-нибудь работал с планами, и может хотя бы вкратце объяснить взаимодействие родительских и дочерних планов?
binyan вне форума   Ответить с цитированием
Старый 07.07.2010, 11:37   #25
heX
Senior Member
 
Специализация: Скриптер
Регистрация: 15.10.2009
Сообщений: 121
Вес репутации: 98
heX will become famous soon enough
По умолчанию

Цитата:
Плюс если я правильно понимаю механизм пула скриптов то использование sleep будет создавать серьезную проблему.
Цитата:
cvet ( 02:19:11 )
Нельзя, скрипты выполняются в одном потоке, задержка одного подвешает все остальное.
Именно про это я говорил.

Последний раз редактировалось heX; 07.07.2010 в 11:44.
heX вне форума   Ответить с цитированием
Данный пользователь сказал FFUU~~ heX за этот пост:
Fujhover (19.11.2010)
Старый 07.07.2010, 16:39   #26
binyan
Senior Member
 
Специализация: Вне команды
Регистрация: 09.02.2010
Сообщений: 339
Вес репутации: 171
binyan has a brilliant futurebinyan has a brilliant futurebinyan has a brilliant futurebinyan has a brilliant futurebinyan has a brilliant futurebinyan has a brilliant futurebinyan has a brilliant futurebinyan has a brilliant futurebinyan has a brilliant futurebinyan has a brilliant futurebinyan has a brilliant future
По умолчанию

Цитата:
Сообщение от binyan Посмотреть сообщение
Да, это как раз то что Кекс писал про sleep.
binyan вне форума   Ответить с цитированием
Старый 07.07.2010, 23:15   #27
qthree
A Nice King
 
Аватар для qthree
 
Специализация: Скриптер
Регистрация: 07.10.2009
Адрес: мск+3
Сообщений: 524
Вес репутации: 304
qthree has a reputation beyond reputeqthree has a reputation beyond reputeqthree has a reputation beyond reputeqthree has a reputation beyond reputeqthree has a reputation beyond reputeqthree has a reputation beyond reputeqthree has a reputation beyond reputeqthree has a reputation beyond reputeqthree has a reputation beyond reputeqthree has a reputation beyond reputeqthree has a reputation beyond repute
По умолчанию

Бин, напиши скрипт для мап/глобал/... лупа который выводит при каждом цикле какое то сообщение в лог. Лучше всего текущее время. И поставь промежуток 1-2 секунды.
А я попробую уже под это что нибудь сделать.
qthree вне форума   Ответить с цитированием
Старый 08.07.2010, 01:50   #28
binyan
Senior Member
 
Специализация: Вне команды
Регистрация: 09.02.2010
Сообщений: 339
Вес репутации: 171
binyan has a brilliant futurebinyan has a brilliant futurebinyan has a brilliant futurebinyan has a brilliant futurebinyan has a brilliant futurebinyan has a brilliant futurebinyan has a brilliant futurebinyan has a brilliant futurebinyan has a brilliant futurebinyan has a brilliant futurebinyan has a brilliant future
По умолчанию

Но ведь минимальный промежуток 5 секунд для мап лупа... Если это годится, то напишу, не проблема.
Глобал луп я вообще не представляю себе как можно использовать где то кроме main. Исходники смотрел, нигде примера использования глобал лупа не нашел.

Последний раз редактировалось binyan; 08.07.2010 в 02:12.
binyan вне форума   Ответить с цитированием
Старый 08.07.2010, 11:28   #29
qthree
A Nice King
 
Аватар для qthree
 
Специализация: Скриптер
Регистрация: 07.10.2009
Адрес: мск+3
Сообщений: 524
Вес репутации: 304
qthree has a reputation beyond reputeqthree has a reputation beyond reputeqthree has a reputation beyond reputeqthree has a reputation beyond reputeqthree has a reputation beyond reputeqthree has a reputation beyond reputeqthree has a reputation beyond reputeqthree has a reputation beyond reputeqthree has a reputation beyond reputeqthree has a reputation beyond reputeqthree has a reputation beyond repute
По умолчанию

Цитата:
Сообщение от binyan Посмотреть сообщение
Но ведь минимальный промежуток 5 секунд для мап лупа...
**facepalm**

а я зачем думаешь прошу у тебя пример?
qthree вне форума   Ответить с цитированием
Старый 08.07.2010, 13:02   #30
binyan
Senior Member
 
Специализация: Вне команды
Регистрация: 09.02.2010
Сообщений: 339
Вес репутации: 171
binyan has a brilliant futurebinyan has a brilliant futurebinyan has a brilliant futurebinyan has a brilliant futurebinyan has a brilliant futurebinyan has a brilliant futurebinyan has a brilliant futurebinyan has a brilliant futurebinyan has a brilliant futurebinyan has a brilliant futurebinyan has a brilliant future
По умолчанию

Обновляйся.
~run debug RunMapLoop ms 0 0
ms - время в милисекундах.
Пробовал поставить меньше 5000 - работает. Минимум 1000, если ставить меньше, то событие все равно происходит раз в секунду. Но при ms меньше 5000 в лог сервера выдается такое сообщение:
Script error: CServer::SScriptFunc::Map_SetLoopTime, Loop time is less than minimum, set to it.
binyan вне форума   Ответить с цитированием
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Часовой пояс GMT +4, время: 13:08.


Powered by vBulletin® Version 3.8.3
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd. Перевод: zCarot
Для внутреннего пользования