Форум Oni

Русскоязычный форум поклонников игры «Они» от Bungie

  • Здравствуйте, Гость

#121 10-01-2011 12:25:51

Мih@ 
Регистрация: 27-08-2006
Сообщений: 826
Профиль

Re: Oni Scripts: FAQ-пособие

elex написал(а):

подскажите как таймер заставить работать? и как его выключить?

вообще-то в оппосте пунктом 2.8 всё что нужно написано. +)
для тестов можно начать с более лаконичного варианта:
func void main(void)
{
    if (save_point eq 0) timer_start 10 lose
}


во-первых, для проверки загруженного сейвпоинта используется переменная save_point (sic!). my_save_point - это просто традиционно используемое разработчиками название переменной для разных скриптовых целей.
во вторых, на всякий случай, start - это тоже просто традиционная функция для дефолтных скриптов. изначально таковой не существует. )
отключается таймер или по завершении отсчёта, или по timer_stop, к примеру:
func void main(void)
{
    if (save_point eq 0)
    {
        timer_start 5 lose
        fork waitforanim
    }
    sleep 360
    win
}
func void waitforanim(void)
{
    chr_wait_animation 0 KONCOMkick_heavy
    timer_stop
}

Оффлайн

 

#122 10-01-2011 17:24:16

elex 
Страйкер
Регистрация: 05-07-2009
Сообщений: 96
Профиль

Re: Oni Scripts: FAQ-пособие

Мih@ , шикарно, работает именно так как нужно, отбрасывает в точку появления, огромное спасибо. А счётчик времени(просто считает затраченное время) можно сделать?

Добавлено спустя 1 минуту 33 секунды:
я уровень5 the airport part deux ковыряю, там нет ничерта кроме скайбокса, с существующими уровнями пока не могу запихать обратно сохранив координаты(руки кривые у меня)

Оффлайн

 

#123 10-01-2011 18:07:05

Мih@ 
Регистрация: 27-08-2006
Сообщений: 826
Профиль

Re: Oni Scripts: FAQ-пособие

elex написал(а):

А счётчик времени(просто считает затраченное время) можно сделать?

чтобы он считал также, как таймер, но в обратную сторону - вряд ли. можно сделать просто счётчик и выводить циферки обычным dmsg. например:

var bool count_stop = 0;
var int count_var = 0;
func void main(void)
{
    fork counting(60);
    sleep 1800
    count_stop = 1
}
func void counting(int count_step)
{
    sleep(count_step);
    if (!count_stop)
    {
        count_var = count_var + 1
        dmsg_int(count_var);
        fork counting(count_step);
    }
}
func void dmsg_int(int messaga)
{
    if (messaga eq 0) dmsg "0"
    if (messaga eq 1) dmsg "1"
    if (messaga eq 2) dmsg "2"
    if (messaga eq 3) dmsg "3"
    if (messaga eq 4) dmsg "4"
    if (messaga eq 5) dmsg "5"
    if (messaga eq 6) dmsg "6"
    if (messaga eq 7) dmsg "7"
    if (messaga eq 8) dmsg "8"
    if (messaga eq 9) dmsg "9"
    if (messaga eq 10) dmsg "10"
    if (messaga eq 11) dmsg "11"
    if (messaga eq 12) dmsg "12"
    if (messaga eq 13) dmsg "13"
    if (messaga eq 14) dmsg "14"
    if (messaga eq 15) dmsg "15"
    if (messaga eq 16) dmsg "16"
    if (messaga eq 17) dmsg "17"
    if (messaga eq 18) dmsg "18"
    if (messaga eq 19) dmsg "19"
    if (messaga eq 20) dmsg "20"
    if (messaga eq 21) dmsg "21"
    if (messaga eq 22) dmsg "22"
    if (messaga eq 23) dmsg "23"
    if (messaga eq 24) dmsg "24"
    if (messaga eq 25) dmsg "25"
    if (messaga eq 26) dmsg "26"
    if (messaga eq 27) dmsg "27"
    if (messaga eq 28) dmsg "28"
    if (messaga eq 29) dmsg "29"
    if (messaga eq 30) dmsg "30"
    if (messaga eq 31) dmsg "31"
    if (messaga eq 32) dmsg "32"
    if (messaga eq 33) dmsg "33"
    if (messaga eq 34) dmsg "34"
    if (messaga eq 35) dmsg "35"
    if (messaga eq 36) dmsg "36"
    if (messaga eq 37) dmsg "37"
    if (messaga eq 38) dmsg "38"
    if (messaga eq 39) dmsg "39"
    if (messaga eq 40) dmsg "40"
    if (messaga eq 41) dmsg "41"
    if (messaga eq 42) dmsg "42"
    if (messaga eq 43) dmsg "43"
    if (messaga eq 44) dmsg "44"
    if (messaga eq 45) dmsg "45"
    if (messaga eq 46) dmsg "46"
    if (messaga eq 47) dmsg "47"
    if (messaga eq 48) dmsg "48"
    if (messaga eq 49) dmsg "49"
    if (messaga eq 50) dmsg "50"
    if (messaga eq 51) dmsg "51"
    if (messaga eq 52) dmsg "52"
    if (messaga eq 53) dmsg "53"
    if (messaga eq 54) dmsg "54"
    if (messaga eq 55) dmsg "55"
    if (messaga eq 56) dmsg "56"
    if (messaga eq 57) dmsg "57"
    if (messaga eq 58) dmsg "58"
    if (messaga eq 59) dmsg "59"
    if (messaga eq 60) dmsg "60"
    if (messaga eq 61) dmsg "61"
    if (messaga eq 62) dmsg "62"
    if (messaga eq 63) dmsg "63"
    if (messaga eq 64) dmsg "64"
    if (messaga eq 65) dmsg "65"
    if (messaga eq 66) dmsg "66"
    if (messaga eq 67) dmsg "67"
    if (messaga eq 68) dmsg "68"
    if (messaga eq 69) dmsg "69"
    if (messaga eq 70) dmsg "70"
    if (messaga eq 71) dmsg "71"
    if (messaga eq 72) dmsg "72"
    if (messaga eq 73) dmsg "73"
    if (messaga eq 74) dmsg "74"
    if (messaga eq 75) dmsg "75"
    if (messaga eq 76) dmsg "76"
    if (messaga eq 77) dmsg "77"
    if (messaga eq 78) dmsg "78"
    if (messaga eq 79) dmsg "79"
    if (messaga eq 80) dmsg "80"
    if (messaga eq 81) dmsg "81"
    if (messaga eq 82) dmsg "82"
    if (messaga eq 83) dmsg "83"
    if (messaga eq 84) dmsg "84"
    if (messaga eq 85) dmsg "85"
    if (messaga eq 86) dmsg "86"
    if (messaga eq 87) dmsg "87"
    if (messaga eq 88) dmsg "88"
    if (messaga eq 89) dmsg "89"
    if (messaga eq 90) dmsg "90"
    if (messaga eq 91) dmsg "91"
    if (messaga eq 92) dmsg "92"
    if (messaga eq 93) dmsg "93"
    if (messaga eq 94) dmsg "94"
    if (messaga eq 95) dmsg "95"
    if (messaga eq 96) dmsg "96"
    if (messaga eq 97) dmsg "97"
    if (messaga eq 98) dmsg "98"
    if (messaga eq 99) dmsg "99"
    if (messaga > 99) dmsg "IT'S OVER 9000"
}

Оффлайн

 

#124 10-01-2011 18:33:36

elex 
Страйкер
Регистрация: 05-07-2009
Сообщений: 96
Профиль

Re: Oni Scripts: FAQ-пособие

Оно самое, fork counting(60); - точность отсчёта насколько понял, увеличив в 10 раз будет считать по 10 секунд, ещё раз спасибо.

На сегодня всё, левая кнопка у мыши провалилась, теперь завтра продолжу :(

Оффлайн

 

#125 11-01-2011 15:45:30

Гордон Фриман (муж.)
Элитный Страйкер
Откуда: ХМАО-Югра
Регистрация: 09-05-2010
Сообщений: 353
Профиль  Вебсайт

Re: Oni Scripts: FAQ-пособие

Скажите плиз имя мелодии для скрипта так называемых душераздирающих скрипочек из 12 уровня.


http://www.masseffect2.in/ava/legions.png
I'm commander Shepard, and this is my favorit forum on the extranet.

Оффлайн

 

#126 04-02-2011 08:29:47

Гордон Фриман (муж.)
Элитный Страйкер
Откуда: ХМАО-Югра
Регистрация: 09-05-2010
Сообщений: 353
Профиль  Вебсайт

Re: Oni Scripts: FAQ-пособие

Большое спасибо :pleasantry:  Может тогда расскажете как пользоваться командой man BINA/CHAR; man chr_wait_health


http://www.masseffect2.in/ava/legions.png
I'm commander Shepard, and this is my favorit forum on the extranet.

Оффлайн

 

#127 04-02-2011 10:00:39

Мih@ 
Регистрация: 27-08-2006
Сообщений: 826
Профиль

Re: Oni Scripts: FAQ-пособие

Гордон Фриман написал(а):

Большое спасибо :pleasantry:

а то, всегда рады помочь.

Гордон Фриман написал(а):

Может тогда расскажете как пользоваться командой man BINA/CHAR; man chr_wait_health

берёшь моск, читаешь вот это. желательно тщательно и несколько раз, но особенное внимание обратить вот эти строки:
0x0C8 script function called when character is spawned
0x0E8 script function called when character dies (health reaches 0); can work multiple times
0x108 script function called when character notices an enemy; works only once
0x128 alarm function; never used in Oni, it is called when character is alarmed
0x148 script function called when character is hurt for the first time; works only once
0x168 script function called when character is "defeated" (health reaches 1); works only once
0x188 script function called when character runs out of ammo (reloads a weapon with the last clip/cell); works only once, and the character must have the ammo at spawn-time
0x1A8 nopath function, some exotic script function call ("should" be called when a character has trouble pathfinding, but isn't)

если просветление не достигнуто - читаешь первый пост, особенно пункты 4.4 и 1.2.3. вслух, с выражением.
учишься задавать вопросы в положенном месте, а не где попало.

Оффлайн

 

#128 04-02-2011 10:21:13

Гордон Фриман (муж.)
Элитный Страйкер
Откуда: ХМАО-Югра
Регистрация: 09-05-2010
Сообщений: 353
Профиль  Вебсайт

Re: Oni Scripts: FAQ-пособие

Мih@ написал(а):

учишься задавать вопросы в положенном месте, а не где попало.

А мне казалось, что про скрипты нужно именно здесь вопросы задавать...


http://www.masseffect2.in/ava/legions.png
I'm commander Shepard, and this is my favorit forum on the extranet.

Оффлайн

 

#129 04-02-2011 11:26:14

Мih@ 
Регистрация: 27-08-2006
Сообщений: 826
Профиль

Re: Oni Scripts: FAQ-пособие

Гордон Фриман написал(а):

А мне казалось, что про скрипты нужно именно здесь вопросы задавать...

нет.

Оффлайн

 

#130 04-02-2011 13:34:04

Гордон Фриман (муж.)
Элитный Страйкер
Откуда: ХМАО-Югра
Регистрация: 09-05-2010
Сообщений: 353
Профиль  Вебсайт

Re: Oni Scripts: FAQ-пособие

Тогда где, в теме кто где живет?


http://www.masseffect2.in/ava/legions.png
I'm commander Shepard, and this is my favorit forum on the extranet.

Оффлайн

 

#131 04-02-2011 14:43:28

Мih@ 
Регистрация: 27-08-2006
Сообщений: 826
Профиль

Re: Oni Scripts: FAQ-пособие

Гордон Фриман написал(а):

Тогда где, в теме кто где живет?

раз, два, три - из очевидного. здесь - только обсуждение/дополнения к первому посту (уже постам). если бы не обыденная толерантность к флуду, других бы постов тут и не было, а за вопросы на тему звуков посылали бы очень-очень далеко.

Оффлайн

 

#132 05-02-2011 14:46:29

Гордон Фриман (муж.)
Элитный Страйкер
Откуда: ХМАО-Югра
Регистрация: 09-05-2010
Сообщений: 353
Профиль  Вебсайт

Re: Oni Scripts: FAQ-пособие

Окей кэп


http://www.masseffect2.in/ava/legions.png
I'm commander Shepard, and this is my favorit forum on the extranet.

Оффлайн

 

#133 07-07-2011 09:37:03

Простофиля
Забанен
Регистрация: 19-06-2011
Сообщений: 115
Профиль

Re: Oni Scripts: FAQ-пособие

Гордон Фриман написал(а):

Окей кэп

ГОРДАн ФРиМен ! кАК УБИТЬ В HL боследнего боса???

Оффлайн

 

#134 21-12-2011 05:47:58

Гордон Фриман (муж.)
Элитный Страйкер
Откуда: ХМАО-Югра
Регистрация: 09-05-2010
Сообщений: 353
Профиль  Вебсайт

Re: Oni Scripts: FAQ-пособие

Молча


http://www.masseffect2.in/ava/legions.png
I'm commander Shepard, and this is my favorit forum on the extranet.

Оффлайн

 

#135 27-12-2011 17:50:06

NerrO (муж.)
Рабочий
Откуда: In Mafia from TCTF
Регистрация: 27-12-2011
Сообщений: 15
Профиль

Re: Oni Scripts: FAQ-пособие

Спасибо за тему! Буду учиться :yahoo:


http://img35.imageshack.us/img35/241/vistabba.png

Оффлайн

 

#136 15-08-2012 13:33:29

Sfeli (муж.)
 
Регистрация: 31-12-2006
Сообщений: 212
Профиль

Re: Oni Scripts: FAQ-пособие

Несколько деталей про планировщик...

fork dmsg "test" – работает, но число аргументов не проверяет
fork chr_wait_animation 0 boo – валится: SLrSchedule_Function_Engine банально передаёт NULL вместо UUtBool * defer, вызывая функцию
перед форком (пытаясь его избежать)
schedule chr_wait_animation(0, "boo") at 0 – валится по тому же поводу, что и предыдущая; а вот с ненулевой задержкой (at 1) уже работает
schedule dmsg("test") at 100 – работает, как и должно
schedule did_kill_griffen at 1 – валится, как и любая другая встроенная функция, возвращающая не void (fork did_kill_griffen, естественно, тоже).
schedule dmsg("test") repeat 3 every 100 Несмотря на проблемы с  at 0 выше, выражение every 0 работает, потому что движок не может избежать создания задачи из-за наличия repeat.


Кто помнит что-нибудь ещё, связанное с wait-функциями, fork, schedule, repeat и т. п.? Пока лимиты в расчёт не берём, и про игнор repeat вне выражения schedule я знаю.


Died. Completely.

Оффлайн

 

#137 03-05-2013 10:00:26

Николай (муж.)
Полицейский TCTF
Откуда: попытайтесь угадать
Регистрация: 20-06-2012
Сообщений: 93
Профиль

Re: Oni Scripts: FAQ-пособие

Боже, сколько же здесь написано...


Или с ним что-то случилось, или одно из двух.

Оффлайн

 

#138 06-12-2013 16:40:29

Worm
Цивил
Регистрация: 06-12-2013
Сообщений: 1
Профиль

Re: Oni Scripts: FAQ-пособие

Привет! слушай, как то пытался разобраться во всем этом, но терпения не хватило. не можешь подсказать, есть ли возможность просто закрепить эффект от кода carousel (замедленный режим) за нажатием какой нибудь одной кнопки?

Оффлайн

 

#139 07-12-2013 17:10:19

Cfif
Рабочий
Регистрация: 14-08-2007
Сообщений: 19
Профиль

Re: Oni Scripts: FAQ-пособие

Worm написал(а):

Привет! слушай, как то пытался разобраться во всем этом, но терпения не хватило. не можешь подсказать, есть ли возможность просто закрепить эффект от кода carousel (замедленный режим) за нажатием какой нибудь одной кнопки?

Я точно знаю что можно забиндить приемы на отдельные кнопки. Только это не слишком просто и проще делать их самому (я это узнавал еще лет 5-6 назад, когда на старой убогой клавиатуре не мог сделать полумесяц). А вот закреплять коды... даже не знаю.

Отредактировал(а) Cfif (07-12-2013 17:11:07)

Оффлайн

 

#140 08-11-2014 10:06:01

Глебс (муж.)
Охранник
Откуда: Новокузнецк
Регистрация: 22-03-2013
Сообщений: 32
Профиль  Вебсайт

Re: Oni Scripts: FAQ-пособие

Добавлю к основному списку эти команды. Помимо имеющихся, эти самые нужные из всех.
chr_freeze [персонаж] [1 или 0], где при 1 "отупляет" персонажа. 0 возвращает ум. Или chr_neutral  [персонаж] [1 или 0]
chr_inv_reset [персонаж] - очищает инвентарь.(оружие, гипо, патроны и т.д.)
ai2_chump [персонаж] - создает персонажа для поиска пути.
ai2_chump_stop=1 - останавливает его
ai2_noncombatant [персонаж] [1 или 0] - при 0 персонаж умеет драться, а при 1 начинает вести себя как цивилы
ai2_reset - возвращает всем персонажам на уровне их базовые настройки
ai2_setalert [персонаж] [alert] - устанавливает уровень встревоженности. alert может быть:lull-спокойствие low-низкий medium-средний high-высокий combat-боевой
chr_disable_melee [1 или 0] - то же самое, что и чит canttouchthis, но броски/разоружения/захваты делать можно + при обычных ударах(не бросках и т.д. ) не наносится урон
chr_enable_collision [1 или 0] - при 0 все персонажи станут нематериальны
chr_full_health [персонаж] - повышает здоровье до планки. У каждого персонажа своя "планка"
chr_poison ([персонаж], [урон], [интервал], [начальный интервал]) - отнимает здоровье в зависимости от параметров
chr_weapon_immune [персонаж] - делает персонажа невосприимчивым к оружию
gs_show_corpses [1 или 0] - Показывает или скрывает трупы. При 1 показывает, при 0 нет. Но только те трупы, которые есть на уровне с самого начала
cutscene_sync [mark/on/of] - маркирует точку в катсцене
door_ignore_locks - разблокирует все двери
reset_mechanics - сбрасывает все на уровне (триггеры, туррели, консоли, и т д...) в исходное состояние
chr_draw_weapon [1 или 0] - при 1 показывает оружие, при 0 нет
ai2_report [персонаж] - показывает информацию о персонаже(job, current etc) или ai2_report_verbose [персонаж]
gs_show_particles [1 или 0] - при 1 показывает все частицы, при 0 скрывает
p3_startall - стартует все уровневые частицы
p3_stopall - останавливает все уровневые частицы

Отредактировал(а) Глебс (08-11-2014 11:36:48)

Оффлайн

 

Board footer

© 2006-2024 Амэ & Mih@
ОНИмия – фан-сайт игры Oni
Движок форума - модифицированный PunBB