if shoot=1{ bul=Instance_create(x,y,bullet) bul.rotate=rotate shoot=0} if shoot=0 {timer+=1 if timer=90 {shoot=1 timer=0} }
Цитата (Krosos)
инстенс крейт мувинга в гмл нету. не Instance_create(x,y,bullet) а instance_create(x,y,bullet) Случайно ошибся , все функции гмл пишутся с маленькой буквы.
Куда это вписывать? (Прошу прощения, за мою глупость )
Добавлено (05.08.2013, 16:35) --------------------------------------------- Попробовал сделать по этому примеру (нашел на форуме).
Цитата (GameMix)
Пусть, например, объект который стреляет будет называться player. А объект пули bullet. Добавляешь событие Alarm0 и в нем пишешь: [/code]strelba = 1 Code
В создании объекта player пишешь: [code]strelba = 1; // эта переменная означает, что можно стрелять
В событии удержания клавиши стрельбы пишешь: Code
if strelba = 1 // если можно стрелять then {instance_create(x,y,bullet); strelba = 0; alarm[0] = 10} // то создаем пулю, отключаем возможность стрельбы и запускаем будильник(alarm0)
Если желаешь изменить скорость стрельбы, то просто меняешь значение alarm'a(например, вместо 10 будет 20. Тогда скорость стрельбы будет меньше).
Вроде таймер заработал, но... Теперь нет вылета пули + урон наносится, если враг находится вблизи.
Сообщение отредактировал hotkey - Среда, 07 Августа 2013, 06:54
Запихни это в блок ниже! if shoot=1{ bul=Instance_create(x,y,Название объекта выстрела!) bul.rotate=rotate shoot=0} if shoot=0 {timer+=1 if timer=90 {shoot=1 timer=0} }
Как я понял, надо было в Draw под строками Gun[1] и Gun[2] вписывать твой код, а в create пули, вписывать 2й код. http://SSMaker.ru/336ca685/ Если да, то паузы, всё равно, нет + пули летят, только прямо (вправо) и на мышь не реагируют.
Krosos, ты оружия спутал Но, ничего страшного! Спасибо большое!)
Добавлено (05.08.2013, 22:24) --------------------------------------------- Krosos, кстати, а как сделать оружие ближнего боя? Как я понял, "Пуля" должна лететь всего несколько пикселей, но как это сделать?
Добавлено (05.08.2013, 22:28) --------------------------------------------- И как сделать дробовик? Точнее дроби, чтобы при выстреле, летели 3-4 патроны.
Krosos, Ну ладно... А кстати, как сделать нормальное соприкосновение с блоками? Просто, если в прыжке я касаюсь блока, то путь в котором я летел, сбрасывается, даже если держу кнопки движения. И получается, что я лечу вниз.
Разобрался в проблеме. У меня вместо "Keyboard event for..." стояло "Press ... key" Твой исходник помог. Еще раз спасибо
Добавлено (06.08.2013, 05:37) --------------------------------------------- Теперь мне нужно разобраться с ботом. А именно: 1) Как заставить его при патрулировать местность? 2) Как заставить, при обнаружении ГГ преследовать его, при этом он должен перепрыгивать блоки (не пропасти!). 3) Как сделать так, чтобы при ходьбе моба влево, шла анимация ходьбы влево, тоже самое и с право. 4) Как сделать так, чтобы атака моба была не частой, т.е например 1 удар в секунду. (Думаю алгоритм тот же, что и оружия, но мне нужно все это подробно объяснить )
(Враг - зомби)
И вопрос, не касающийся вопросов выше... Как добавить в игру чит-коды, т.е они должны быть как в GTA. Вводиться без строки ввода. На форуме видел темку, но там файл с исходником удален.
Заранее спасибо
Сообщение отредактировал hotkey - Вторник, 06 Августа 2013, 17:52
И вопрос, не касающийся вопросов выше... Как добавить в игру чит-коды, т.е они должны быть как в GTA. Вводиться без строки ввода. На форуме видел темку, но там файл с исходником удален.
С этим помогу, а со стрелялкой нет, прости. Я снова с вами:з Возвращение легенды. (нет)
Т.к. мой код трудно понять, буду объяснять постепенно... Сначала случай одного чит-кода в игре: Событие Create какого-нибудь main-объекта (контроллера):
Код
CheatCode = "GIVEALL"; //чит-код cheat = ""; // строка, в которую записывается всё, что вводит игрок с клавы. Не путать эти 2 переменные :)
Событие End Step в том же объекте:
Код
if (keyboard_check_pressed(vk_anykey)) // если нажата любая клавиша { cheat += chr(keyboard_lastkey); // добавляем в строку символ, полученный из кода последней нажатой клавиши if (string_pos(CheatCode, cheat)) > 0 // если в строке найдено написание чит-кода { cheat = ""; // тогда чистим строку, чтобы после успешного ввода кода в первый раз, при каждом нажатии любой клавиши не вылетало сообщение, что код введен show_message("Введён чит-код! Получить всё оружие"); // информационное сообщение здесь - лишь замена действиям, которые будут выполняться при вводе этого кода // поэтому тут пишем код получения всего оружия, например } }
Если трудно писать в Create читы прописными буквами, то редактируем условие в Step:
Код
if (string_pos(string_upper(CheatCode), cheat)) > 0 // теперь даже если код будет записан giVEalL, он сработает, т.к. функция string_upper преобразует в прописные ВСЕ символы строки
Идём далее... Естественно, одного кода нам мало, будем реализовывать поддержку нескольких. Код Create:
if (keyboard_check_pressed(vk_anykey)) // если нажата любая клавиша { cheat += chr(keyboard_lastkey); // добавляем в строку символ, полученный из кода последней нажатой клавиши for (i = 0; i < KCheats; i += 1) // пробегаемся по всем чит-кодам с помощью цикла if (string_pos(string_upper(CheatCode[i]), cheat)) > 0 // если в строке найдено написание чит-кода { cheat = ""; // тогда чистим строку, чтобы после успешного ввода кода в первый раз, при каждом нажатии любой клавиши не вылетало сообщение, что код введен switch (i) { case 0: show_message("Действия GIVEALL"); break;
case 1: show_message("Действия GOD"); break;
case 2: show_message("Действия NOCLIP"); break;
case 3: show_message("Действия KILLSELF"); break; } break; // этот break - экстренный выход из цикла } }
Krosos, тогда, проще сделать так - http://SSMaker.ru/60473ded/ (хотя не всегда правильно )
Добавлено (07.08.2013, 06:49) --------------------------------------------- GameMix, спасибо! Принцип работы ясен, но как в игру внести сами читы? В твоем коде, вроде, только "названия/последовательность" но как сами коды сделать, ты не объяснил