Знаете, Я тут напоролся на парочку хороших туторов на тему И.Идиота, и подумал: а почему-бы его не перевести? Всё равно чё-то Я давно туторами никого не баловал... Короч, ребятня, тут мы будем учиться учить нашего персонажа тарабанить AI.
Собссно, AI- это управление персонажа компьютером. Например, во время той же аркады. Вы ведь не раз замечали, что какие-то персонажи побеждаются легко, а какие-то рвут вам жопу в клочья, не так ли? Во втором персонаже очень хорошо прописан И.И., чего не скажешь про первого... В общем, AI- важная часть персонажа- МОЗГИ. ---------------------------------- Виды AI: -AI базовый. Собссно, самый лёгкий, но самый неудовлетворительный вид AI- не прописывай НИЧЕГО. Правда, это наложит знатную долю говна на твоём чаре, ибо ни о каком умении комбить не может идти и речи. Да что уж там, Базовый AI = Рандом. Чар будет просто рандомно выполнять нужные и ненужные приёмы. Он будет делать татсумаки на таком расстоянии, что ни разу не долетит, пытаться хватать врага на расстоянии и т.д. -AI настроенный. Об этом мы и будем говорить в ближайших туторах. Суть такая же: если ты пропишешь условия выполнения для КАЖДОГО приёма, то будет тебе и положительный результат. ---------------------------------- Места обитания AI: -Основное место обитания кодов и настроек AI конечно же CMD. -Но определённые нюансы можно прописать и в CNS файлах... ---------------------------------- Составляющие AI: -Активация. -Команды. -Системное поведение.
Активация AI на МУГЕН 1.0 ===========================================================================
Я вам опишу активацию AI именно на МУГЕН 1.0 так как он более актуальный. ------------ Небольшое отступление: актуальность Муген 1.0 в том, что теперь он позволяет И.Идиоту учитываь ещё и поставленный Уровень сложности в самое игре. То есть, в старом Мугене ставь хоть лёгкий, хоть сложный, всё равно персонаж будет биться только как прописано в его мозгах. Теперь же благодаря триггеру AILevel можно прописать определённые данные под определённый уровень сложности самого Мугена. Но не надо прописывать это для каждой из сложностей: ниже указанной сложность- ниже указанной данные! ------------ Итак, Активация AI по себе VarSet, так как... Собссно, главным образом тут используются переменные. И было бы их много, необходимых переменных всего две: -Переменная 59- собссно, активатор AI. Var(59)= 1- значит, AI включён. Var(59)= 0- выкл. -Переменная 50- переменная сложности. Тут вот можно побольше рассказать. Var(50) регулирует, скажем так, активность и "реакцию" персонажа под управлением компом. Данная переменная использует числа от 0 до 1000. И, как вы могли догадаться, чем ниже значение, тем реже будет атаковать наш компьютерный придурок.
-1- "Боксёрская груша". Ему чтобы рассосаться надо 999 тиков. -2- 499 тиков. -3- 332 тика. -4- 249 тиков. -5- 199 тиков. -6- 166 тиков. -7- 141 тик. -8- 124 тика. -9- 110 тиков. -10- 99 тиков. -15- 65 тиков. -20- 49 тиков. -30- 32 тика. -40- 24 тика. -50- 19 тиков. -60- 15,6 тиков. -70- 13,2 тиков. -80- 11,5 тиков. -90- 10,1 тиков. -100- 9 тиков. Тут уже персонаж превращается в из неудачника в бойца. -200- 4 тика. -300- 2,33 тика. -400- 1,5 тика. -500- 1 тик = одна двадцатая секунды. Вроде бы... -600- 0,66 тиков. -700- 0,42 тика. -800- 0,25 тика. -900- 0,11 тиков. -1000- 0 тиков. Персонаж из бойца превращается в электрическую мясорубку, которая и ударит сразу по началу раунда, и продолжит лупить без обстановки. Честно, такая крайность тоже не идёт персонажу на пользу, ибо при должной реакции его можно постоянно контратаковать и т.д.
--------------- Пример кода: Прим.: ЭТИ КОДЫ ОБЯЗАТЕЛЬНО ДОЛЖНЫ БЫТЬ В -1 СТЕЙТАХ.
[State -1, AI ON] Type = VarSet TriggerAll = Var(59) < 1 ; Значит, ИИ ещё не активирован... TriggerAll = RoundState=2 ; ..., бой начался и он ещё не закончен... Trigger1 = AILevel>0 ; ...,компьютер управляет персонажем. v = 59 value= 1 ; ИИ активирован. Ignorehitpause=1
[State -1, AI OFF] Type=VarSet Trigger1=var(59)>0 ; ИИ активирован... Trigger1=RoundState!=2 ; ...,раунд ещё не начался, но ещё не закончился. Trigger2=!IsHelper ; ИЛИ если персонаж- человек и... Trigger2=AILevel=0 ; ...компьютер его не контролирует. v=59 value=0 ; ИИ деактивирован. Ignorehitpause=1
[State -1] Type=VarSet Trigger1=1 var(50)=(AILevel=1)*3+(AILevel=2)*7+(AILevel=3)*16+(AILevel=4)*30+(AILevel=5)*58+(AILevel=6)*90+ (AILevel=7)*150+(AILevel=8)*300 Как можно заметить, эта строка состоит из связок-прописании определённого кол-ва очков к уровням сложности. ------------------------ Таковы коды и суть АКТИВАЦИИ ИИ. Но на этом мучения с мозгами только начинаются...