Форум Oni

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

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

#221 29-08-2008 12:39:32

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

Re: Вопросы по написанию игровых скриптов

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

Это вообще скриптовая штука, или в йадро зашыто?

Вроде бы это штука, зашитая в daodan. Ну, или в саму девмоду...
Скрипты тут ни при чём изначально. Всё скриптовое, что подлежит редактированию простыми смертными, лежит в \IGMD\.
К тому же, мгновенный перенос - имхо не очень интересная штука, как и сама идея телепортации. Есть уворотки, есть красивое и регулируемое по направлению и расстоянию [] (прошу прощенья, всё-таки забыл ведь, как правильно ими пользоваться +))... Есть полёт, наконец. ) Зачем ещё упрощать игру?..

demos_kratos, аригато за привязку. )

Оффлайн

 

#222 29-08-2008 12:57:20

Pathetique
Рабочий
Регистрация: 27-08-2008
Сообщений: 18
Профиль

Re: Вопросы по написанию игровых скриптов

"есть красивое и регулируемое по направлению и расстоянию [] "

Научи меня регулировать расстояние)
А зачем упрощать - ради эффектности, красивый телепорт за спину врагу - у мну прям мечта децтва) Когда первый раз в Они играл, жутко завидовал Мукаду.
Теперь невидимость я воссоздал, девилстар тоже (за что вам обоим спасибо). Телепорт, наверное, не получится. Но буду искать выход. И ждать выхода новых возможностей бсл :)

Добавлено спустя 1 минуту 5 секунд:
Кстати, shift+w сквозь противника тоже было бы супер)

Оффлайн

 

#223 29-08-2008 13:08:56

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

Re: Вопросы по написанию игровых скриптов

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

Научи меня регулировать расстояние)

В смысле? Чем больше промежуток между двумя нажатиями ], тем больше расстояние. Чем больше скорость движения при первом нажатии, тем быстрее перемещение камеры. )

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

Кстати, shift+w сквозь противника тоже было бы супер)

Сквозь стены - легко. Сквозь противников скриптами вроде как нельзя...

Оффлайн

 

#224 29-08-2008 13:22:22

Pathetique
Рабочий
Регистрация: 27-08-2008
Сообщений: 18
Профиль

Re: Вопросы по написанию игровых скриптов

Жалко... а нажимать ] постоянно - неудобно. Её на другую кнопку забиндить можно?

Оффлайн

 

#225 29-08-2008 14:07:25

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

Re: Вопросы по написанию игровых скриптов

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

Её на другую кнопку забиндить можно?

Кажется, нет... Говорю же - проще wasd перебиндить направо. Ну, или как-нибудь обмануть игру, отсылая ей ] по  чужому скан-коду. -_-

Оффлайн

 

#226 29-08-2008 14:33:46

Pathetique
Рабочий
Регистрация: 27-08-2008
Сообщений: 18
Профиль

Re: Вопросы по написанию игровых скриптов

Ну тогда, наверное, последние 2 вопроса:

1) При анимации NINCOMteleport_in ниндзя крутится 2 раза (с эффектом) и исчезает на долю секунды. Можно как-нибудь продлить время исчезновения? Или только...
2) Изменить саму анимацию? Возможно ли это?

Оффлайн

 

#227 29-08-2008 14:54:40

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

Re: Вопросы по написанию игровых скриптов

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

Можно как-нибудь продлить время исчезновения?

Скриптами - никак. Но зависит от того, какой именно смысл вкладывается в исчезновение. "Спрятать" игрока от собственной камеры можно парой строк: chr_mini_me=1 и chr_mini_me_amount=0. Раскукожить обратно, соответственно, через chr_mini_me=0.

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

2) Изменить саму анимацию? Возможно ли это?

Ковыряй TRAM.

Оффлайн

 

#228 29-08-2008 15:29:02

Pathetique
Рабочий
Регистрация: 27-08-2008
Сообщений: 18
Профиль

Re: Вопросы по написанию игровых скриптов

Хм, спрятать-то понятно, а вот сделать невидимым и неприкасаемым? Если уж телепортации пока не добиться, почему бы не сделать исчезновение на пару секунд) Просто текущего времени недостаточно чтобы поймать в "пустышку", к примеру, хэви кик Муро.

Оффлайн

 

#229 29-08-2008 15:40:59

Pathetique
Рабочий
Регистрация: 27-08-2008
Сообщений: 18
Профиль

Re: Вопросы по написанию игровых скриптов

Поработал над уменьшением.... Теперь получается визуальное исчезновение на 3 секунды после анимации телепорта, с возможностью передвигаться. Уже хорошо, но противник видит, зараза. В учебнике прочитал про то как ослепить\оглушить врага. Но

Код:

func void hard_bk_fw_k (void)
{

    chr_wait_animation 0 NINCOMtaunt1
    chr_animate 0 NINCOMteleport_out 0
    sleep 30
    chr_mini_me=1
    chr_mini_me_amount=0
    ai2_make blind 1
    sleep 150
    ai2_make blind 0
    chr_mini_me=0
    chr_animate 0 NINCOMteleport_out        
    chr_givepowerup 0 invis 350
    sleep 350    
    fork hard_bk_fw_k
    
}

не работает :( Как правильно прописать ослепление?

Отредактировал(а) Pathetique (29-08-2008 15:41:55)

Оффлайн

 

#230 29-08-2008 15:43:05

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

Re: Вопросы по написанию игровых скриптов

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

Хм, спрятать-то понятно, а вот сделать невидимым и неприкасаемым?

invincible=1, unstoppable=1, chr_enable_collision=0, chr_givepowerup 0 invis -1... Ботов слепить не надо (всё равно ведь не заденут, так пусть пинают в пустоту), либо ai2_allpassive 1 рулит. +)

Кстати, по поводу прохождения сквозь врагов я опять ошибся. +) Всё можно, только не через chr_nocollision.
func void gibmirnoc (string anim_name, int nocollision_time)
{
    chr_wait_animation(0, anim_name);
    chr_enable_collision=0;
    sleep(nocollision_time);
    chr_enable_collision=1;
    fork gibmirnoc(anim_name, nocollision_time);
}

Вызывается fork gibmirnoc(NINCOMcrouch_fw, 46). =)

Оффлайн

 

#231 29-08-2008 15:46:02

demos_kratos (муж.)
Рядовой чатланин
Откуда: Волжский
Регистрация: 25-07-2008
Сообщений: 694
Профиль  Вебсайт

Re: Вопросы по написанию игровых скриптов

@Pathetique

добавь для всего прочего chr_nocollision 0 1 (с последующим выключением)


I would put a tax... on all people... who stand... in water.
........
OOH!

Оффлайн

 

#232 29-08-2008 15:48:28

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

Re: Вопросы по написанию игровых скриптов

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

добавь для всего прочего chr_nocollision 0 1 (с последующим выключением)

chr_enable_collision=0. ) chr_nocollision отключает коллизии с архитектурой и атмосферой, но не отключает взаимодействий с персонажами. А эта штука - наоборот.

Оффлайн

 

#233 29-08-2008 15:49:14

Pathetique
Рабочий
Регистрация: 27-08-2008
Сообщений: 18
Профиль

Re: Вопросы по написанию игровых скриптов

Ребят, спасибо вам большое! Работаю.

Оффлайн

 

#234 29-08-2008 15:51:23

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

Re: Вопросы по написанию игровых скриптов

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

ai2_make blind 1

ai2_makeblind, кстати, без пробела. И ai2_makedeaf ещё есть.

Оффлайн

 

#235 29-08-2008 15:51:35

demos_kratos (муж.)
Рядовой чатланин
Откуда: Волжский
Регистрация: 25-07-2008
Сообщений: 694
Профиль  Вебсайт

Re: Вопросы по написанию игровых скриптов

и ещё, правильно так - ai2_makeblind [имя_бота] 0/1
в твоём случае лучше использовать ai2_blind=1


вообще все команды смотрите здесь - http://ssg.oni2.net/commands.htm


Mih@ написал(а):

chr_nocollision отключает коллизии с архитектурой и атмосферой, но не отключает взаимодействий с персонажами.

благодарю, исправлюсь.

Отредактировал(а) demos_kratos (29-08-2008 15:59:31)


I would put a tax... on all people... who stand... in water.
........
OOH!

Оффлайн

 

#236 29-08-2008 16:00:30

Pathetique
Рабочий
Регистрация: 27-08-2008
Сообщений: 18
Профиль

Re: Вопросы по написанию игровых скриптов

ЙЕЕЕЕЕС!!!! Я это сделал!

Код:

func void hard_bk_fw_k (void)
{

    chr_wait_animation 0 NINCOMtaunt1
    chr_animate 0 NINCOMteleport_out 0
    chr_enable_collision=0
    invincible=1 
    unstoppable=1
    ai2_allpassive 1
    sleep 20
    chr_animate 0 NINCOMcrouch_fw     
    chr_mini_me=1
    chr_mini_me_amount=0
    sleep 70
    ai2_allpassive 0
    invincible=0
    unstoppable=0
    chr_enable_collision=1
    chr_mini_me=0
    chr_animate 0 NINCOMteleport_out        
    sleep 170    
    fork hard_bk_fw_k
    
}

Именно то, о чем я думал! Осталось пришить это к краучам во все стороны. Рулез! Еще раз домо аригато)) Вы просто гении)

Оффлайн

 

#237 29-08-2008 16:01:16

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

Re: Вопросы по написанию игровых скриптов

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

и ещё

Угу... ) А ещё есть переменные ai2_blind и ai2_deaf. %) /фиксед/ И даже банальное ai2_ignore_player.

Функции тут, переменные там. )

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

ЙЕЕЕЕЕС!!!! Я это сделал!

Конгратулате. )

Оффлайн

 

#238 29-08-2008 16:32:15

demos_kratos (муж.)
Рядовой чатланин
Откуда: Волжский
Регистрация: 25-07-2008
Сообщений: 694
Профиль  Вебсайт

Re: Вопросы по написанию игровых скриптов

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

sleep 20
chr_animate 0 NINCOMcrouch_fw

элементарно заменить на sleep 300 и можно самому выбрать место назначения

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

sleep 170
fork hard_bk_fw_k

слип то зачем? чтоб не злоупотреблять?


I would put a tax... on all people... who stand... in water.
........
OOH!

Оффлайн

 

#239 29-08-2008 16:42:06

Pathetique
Рабочий
Регистрация: 27-08-2008
Сообщений: 18
Профиль

Re: Вопросы по написанию игровых скриптов

"элементарно заменить на sleep 300 и можно самому выбрать место назначения"

Если поставить большой слип, то можно будет бегать в "портале", и даже атаковать. А это не есть хорошо. Вот если бы сделать что-то вроде фключателя: нажал раз, вошел в портал, добежал, нажал второй раз - вышел в выбранной точке.

Добавлено спустя 5 минут 9 секунд:
Вообще, сейчас в конечном варианте это выглядит так:

Код:

func void hard_bk_fw_k (void)
{

    chr_wait_animation 0 NINCOMcrouch_fw 
    chr_animate 0 NINCOMteleport_out 0
    chr_enable_collision=0
    sound_dialog_play c17_99_24superninja
    invincible=1 
    unstoppable=1
    ai2_allpassive 1
    sleep 17
    chr_animate 0 NINCOMcrouch_fw     
    chr_mini_me=1
    chr_mini_me_amount=0
    sleep 5 
    ai2_allpassive 0
    sleep 25        
    invincible=1
    unstoppable=0
    chr_enable_collision=1
    chr_mini_me=0
    chr_animate 0 NINCOMteleport_out        
    sleep 170 #это можно и убрать :)    
    fork hard_bk_fw_k
    
}

Все происходит секунда в секунду, слипы подправлены.

Оффлайн

 

#240 29-08-2008 17:17:55

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

Re: Вопросы по написанию игровых скриптов

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

Вот если бы сделать что-то вроде фключателя: нажал раз, вошел в портал, добежал, нажал второй раз - вышел в выбранной точке.

Эээ... А почему бы и так не сделать? Создай булеву переменную, отвечающую за "нахождение в портале", и в зависимости от неё делай вход и выход. Можно добавить задержку или даже таймер, чтобы нельзя было там торчать слишком долго.
Возможность атаковать можно пресечь обыкновенными lock_keys.

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

chr_animate 0 NINCOMteleport_out 0

Второй нолег по идее не нужен.

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

sleep 170 #это можно и убрать :)

Комментарии в таком виде лучше не давать. +) Понимаю, что в собственно скриптах такого нет, но всё же. >_<

Оффлайн

 

Board footer

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