10 полезных скриптов для game maker
RevolverOcelot ÐоÑеÑиÑÐµÐ»Ñ Ð ÐµÐ¿ÑÑаÑиÑ: 3 Ðол: API: GameMaker Studio Free | v v v v v ^ ^ ^ ^ ^ ÐÑÐµÐ´Ð»Ð°Ð³Ð°Ñ ÑемкÑ, в коÑоÑой бÑдÑÑ Ð²ÑкладÑваÑÑÑÑ Ð¿Ð¾Ð»ÐµÐ·Ð½Ñе ÑкÑипÑÑ (ÑделаннÑе вами, ÑвиденнÑе вами — неважно), коÑоÑÑй ÑпÑоÑаÑÑ ÑабоÑÑ, ÑоздаÑÑ Ð¿Ð¾Ð»ÐµÐ·Ð½Ñе ÑвойÑÑва, ÑÑÑекÑÑ. Ðикакого обÑÑÐ¶Ð´ÐµÐ½Ð¸Ñ — ÑкÑÐ¸Ð¿Ñ Ð¸ его опиÑание. ÐÐ¾Ñ Ð¿ÑÐ¸Ð¼ÐµÑ (ÑкÑÐ¸Ð¿Ñ Ð½Ðµ мой, Ñвидел в каком Ñо Ð ÐРдвижке, Ñ Ð¾ÑоÑÐ°Ñ Ð²ÐµÑÑ) — ÑиÑÑÐµÑ Ð¾Ð±Ð²ÐµÐ´ÐµÐ½Ð½Ñй ÑекÑÑ. draw_set_color(argument3) draw_set_color(argument2) //argument0 = x позиÑÐ¸Ñ ÑекÑÑа | |||
|
Fantom | ÐвÑÐ¾Ñ ÑкÑипÑа: FanTom sound_3d_set_sound_position(argument0,(x — view_xview — (view_wview div 2)) / 130, //argument0 — название звÑка, ÑаÑположение коÑоÑого изменÑеÑÑÑ ÐпÑеделÑÐµÑ ÑаÑположение звÑка оÑноÑиÑелÑно ÑенÑÑа вида (камеÑÑ). ÐелиÑели (130 и 100) опÑеделÑÑÑ Ð³Ð»ÑÐ±Ð¸Ð½Ñ Ð¾Ð±ÑемноÑÑи. ÐÑполнÑÑ ÑÑÐ¾Ñ ÑкÑÐ¸Ð¿Ñ Ð² каком-либо обÑекÑе, звÑк, запиÑаннÑй в нÑлевом аÑгÑменÑе, «Ð¿ÐµÑепÑÑгиваеѻ в кооÑдинаÑÑ ÑÑого обÑекÑа. | |||
|
Fantom | ÐаÑа ÑкÑипÑов по ÑабоÑе Ñ ÑекÑÑом. 1. ÐвÑÐ¾Ñ ÑкÑипÑа: FanTom scr1=string(scr); if string_length(scr1) < 6 {scr2+=’0′} draw_text(10,10,scr2); //scr — ÑекÑÑие оÑки, колиÑеÑÑво денег и дÑ. 2. ÐвÑÐ¾Ñ ÑкÑипÑа: FanTom maxphrase = string_count(chr(13),text) + 1; istart = 1; iend = 1000000; j = 0; //text — иÑÑ
однÑй ÑплоÑной ÑекÑÑ | |||
|
UncleDec | СкÑÐ¸Ð¿Ñ des Ðедавно Ñоздал ÑкÑипÑ, пÑоÑÑейÑий, но Ñ Ð½Ð¸Ð¼ оÑÐµÐ½Ñ Ñдобно ÑабоÑаÑÑ. ÐÑак, ÑоздаÑм ÑкÑÐ¸Ð¿Ñ des: РпиÑем: with argument0 Ð, Ñже можно им полÑзоваÑÑÑÑ, ÑепеÑÑ Ð¼Ð¾Ð¶Ð½Ð¾ пиÑаÑÑ Ð¿ÑоÑÑо des(название_обÑекÑа). ÐÑÐµÐ½Ñ Ñдобно! | |||
|
TUjh ÐолÑзоваÑÐµÐ»Ñ Ð ÐµÐ¿ÑÑаÑиÑ: 10 Ðол: API: Game Maker 8.0 Pro Who i am? | ÐÑоÑÑой ÑкÑÐ¸Ð¿Ñ Ñени Ð´Ð»Ñ Ð¾Ð±ÑекÑа: draw_sprite_ext(sprite_index,image_index,x+6,y+6,1,1,image_angle,c_black,0.3) x+6,y+6 — Ðоложение Ñени | |||
|
Hummer | Ðо вÑÐµÐ¼Ñ ÑазÑабоÑки ÐÐÐ Ñ Ð½Ð°Ð¿Ð¸Ñал 18 ÑкÑипÑов, и ÑейÑÐ°Ñ Ð¿ÑедÑÑÐ°Ð²Ð»Ñ ÑамÑе полезнÑе if(argument0=1) СкÑÐ¸Ð¿Ñ Ð¼Ð¾Ð¶ÐµÑ Ð¿Ð¾Ð½Ð°Ð´Ð¾Ð±Ð¸ÑÑÑÑ Ð² изменениÑÑ Ð±ÑлевÑÑ ÑÑнкÑий, напÑÐ¸Ð¼ÐµÑ Ð¿Ð¾ÐºÐ°Ð·ÑваÑÑ-не показÑваÑÑ Ð¾ÐºÐ½Ð¾ (инвенÑаÑÑ, конÑÐ¾Ð»Ñ Ð¸ Ñ Ð´) if(argument0=1)&&(argument1=1) ÐÑжен Ð´Ð»Ñ ÑоблÑÐ´ÐµÐ½Ð¸Ñ Ð´Ð²ÑÑ ÑÑловий if(argument0=1)||(argument1=1) Ðогда нÑжно ÑоблÑÑÑи Ñ Ð¾ÑÑÐ±Ñ Ð¾Ð´Ð½Ð¾ ÑÑловие ÐÑикÑеплÑÑ .gml ÑÑÐ¸Ñ Ð¸ дÑÑÐ³Ð¸Ñ Ð»Ð¾Ð³Ð¸ÑеÑÐºÐ¸Ñ ÑÑнкÑий | |||
ÐÑÑÑ Ð²ÐµÑи, коÑоÑÑе нелÑÐ·Ñ Ð¾Ð±ÑÑÑниÑÑ. ÐÐ»Ñ Ð²Ñего оÑÑалÑного еÑÑÑ Ð¡Ð¿Ñавка C++ & OpenGL |
Romixal GM Pro user РепÑÑаÑиÑ: 146 Ðол: ÐагÑадÑ: API: GameMaker Studio Pro | // СкÑÐ¸Ð¿Ñ ÑледÑÑÑего вида var dis, xx, tar, fric; dis=point_distance(xx,xx,tar,tar)/2; if xx<tar { spd[argument4]+=dis/fric; } spd[argument4]=spd[argument4]/sp; return xx; | |||
|
Hummer | Ð²Ð¾Ñ ÐµÑÑ Ñ Ð¾ÑÑ Ð¿ÑедложиÑÑ ÑкÑÐ¸Ð¿Ñ file_text_save(fname) file_text_close(argument0) ÐÐ¾Ð¼Ð¾ÐµÐ¼Ñ Ð»Ð¾Ð³Ð¸Ñно 😉 | |||
ÐÑÑÑ Ð²ÐµÑи, коÑоÑÑе нелÑÐ·Ñ Ð¾Ð±ÑÑÑниÑÑ. ÐÐ»Ñ Ð²Ñего оÑÑалÑного еÑÑÑ Ð¡Ð¿Ñавка C++ & OpenGL |
MyDreamForever GM Pro user РепÑÑаÑиÑ: 288 Ðол: ÐагÑадÑ: StarCraft <3 | Ðвижение за обÑекÑом x=название обÑекÑа за коÑоÑом ÑÑ ÑледÑеÑÑ.x ÐбÑÐµÐºÑ Ð»ÐµÑÐ¸Ñ Ð·Ð° мÑÑкой. x=mouse_x ÐбÑÐµÐºÑ ÑÐ»ÐµÐ´Ð¸Ñ Ð·Ð° мÑÑкой image_angle=point_direction(x,y,mouse_x,mouse_y) ÐбÑÐµÐºÑ Ð¿Ð¾Ð²Ð¾ÑаÑиваеÑÑÑ Ð·Ð° обÑекÑом image_angle=point_direction(x,y,Player.x,Player.y) СобÑÑие Draw, Ñмена ÑвеÑа обÑекÑа на вÑÐ±Ð¾Ñ Ð¸Ð³Ñока. image_blend=get_color(c_red) Ð¡Ð¾Ñ ÑÐ°Ð½ÐµÐ½Ð¸Ñ Ð¸ загÑÑзка ÐейÑÑвие ÑÐ¾Ñ ÑанениÑ. save_x = get_save_filename(‘Game Save|*.save’,») ÐейÑÑвие загÑÑзки. load_x = get_open_filename(‘Game Save|*.save’,») ÐбÑÐµÐºÑ Ð¿Ð¾ÑÑепенно леÑÐ¸Ñ Ð·Ð° мÑÑкой direction=point_direction(x,y,mouse_x,mouse_y) instance_change(название обÑекÑа,1) // пÑевÑаÑение в обÑÐµÐºÑ Hummer: Ð¢Ð°ÐºÐ°Ñ Ñема Ñже еÑÑÑ. Тема пеÑенеÑена | |||
|
Hummer | ÐÑÐµÐ´Ð»Ð°Ð³Ð°Ñ Ñакой ÑкÑÐ¸Ð¿Ñ ÑиÑÐ¾Ð²Ð°Ð½Ð¸Ñ ÑеÑÑÑÑÑ ÑголÑника (не квадÑаÑа или пÑÑмоÑголÑника) //СкÑÐ¸Ð¿Ñ ÑиÑÑÑÑий ÑеÑÑÑÑÑ
ÑголÑник | |||
ÐÑÑÑ Ð²ÐµÑи, коÑоÑÑе нелÑÐ·Ñ Ð¾Ð±ÑÑÑниÑÑ. ÐÐ»Ñ Ð²Ñего оÑÑалÑного еÑÑÑ Ð¡Ð¿Ñавка C++ & OpenGL |
S_Kleer | С помоÑÑÑ ÑÑого ÑкÑипÑа Ð²Ð°Ñ Ð¸Ð³Ñок ÑÐ¼Ð¾Ð¶ÐµÑ Ð¿ÑоÑ
одиÑÑ ÑÐ½Ð¸Ð·Ñ Ð±Ð»Ð¾ÐºÐ°, а ÑвеÑÑ
Ñ Ð½ÐµÑ. (РплаÑÑоÑмеÑе) solid = 1 Ð step пиÑем ÑÑо: with Player Player — ÐгÑок if Block.solid = 1 ÐоÑово! ÐÑ Ð¿Ð¾Ð»ÑÑили, ÑÑо Ñак долго Ñ
оÑели! 😉 if !place_meeting(x,y,Block) Ð ÑÑолкновении Ñ ÑÑим блоком, делаем Ñак: move_contact_all(270,0) ÐонеÑно вÑаг бÑÐ´ÐµÑ Ð½ÐµÐ¼Ð½Ð¾Ð³Ð¾ дÑÑгаÑÑÑ ÐµÑли игÑок подпÑÑгнеÑ, но ÑÑо лÑÑÑе Ñем ниÑего. 😉 ÐвÑоÑÑ ÑкÑипÑа: S’Kleer и HARRISON | |||
ÐоÑÑ — ÐиÑиÑели |
Haks GM Pro user РепÑÑаÑиÑ: 233 Ðол: ÐагÑадÑ: API: GameMaker 8.1 Standard Date a Live ][ | ÐÐ¾Ñ Ð¿Ð¾Ð»ÐµÐ·Ð½Ñй ÑкÑÐ¸Ñ Ð´Ð»Ñ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ð¸Ð¸ в ÑÐ´Ñ Ð´Ð»Ñ ÑолдаÑов ÑÑÑелÑÑÑÐ¸Ñ Ð¿ÑлÑми, взÑл Ñо Ñвоей игÑÑ Operation F.O.X. 2 Ð ÑобÑÑии Create ÑкÑÐ¸Ð¿Ñ Ð½Ð°Ð·ÑваеÑÑÑ: fxg_ai_create noalert=false Ð ÑобÑÑиии Step ÑкÑипÑÑ Ð½Ð°Ð·Ð²Ð°ÐµÑÑÑ: fxg_ai_step if status = noalert{ if time_move > 20{move_contact_solid(image_angle,argument0) sprite_index = argument1;image_angle += 1} if time_move > 60{sprite_index = argument2;time_move = 0}} if status = alert{mp_potential_step(argument3.x,argument3.y,argument0,false);shoot = true;image_angle = point_direction(x,y,argument3.x,argument3.y)} if distance_to_object(argument3) < argument5{status = alert; time_move = 0;rana = true} if shoot = true{time += 1} Рв ÑобÑÑии попадание пÑли в вÑага ÑкÑÐ¸Ð¿Ñ Ð½Ð°Ð·ÑваеÑÑÑ:fxg_ai_contact_object rana = true Ðобавлено: ЯнваÑÑ 26, 2011, 00:38:50 //ЯдеÑнÑй ÐзÑÑв by H2x //Radius Ring2 //Explosion //Explosion 2 //Explosion 3 //Emittent Create | |||
|
Sashok_one ÐкÑивнÑй ÑÑаÑÑник РепÑÑаÑиÑ: 43 Ðол: ÐагÑадÑ: API: Game Maker 8.0 Pro *BOOOM* | ÐÐ¾Ñ ÐµÑе один из ваÑианÑов Ñени Ð´Ð»Ñ Ð¾Ð±ÑекÑов… (мой) _spr = argument0; // Ð¸Ð¼Ñ ÑпÑайÑа draw_sprite_ext(_spr,_smb,_x+1,_y+1,1,1,0,c_black,0.5); Ðобавлено: ЯнваÑÑ 29, 2011, 16:08:48 _text = argument3 // ÑекÑÑ draw_text_color(_x+1,_y+1,_text,c_black,c_black,c_black,c_black,0.5) | |||
|
Hummer | ÐÐ¾Ð¶ÐµÑ ÑкÑÐ¸Ð¿Ñ Ð½Ðµ полезнÑй, но попÑобоваÑÑ ÐµÐ³Ð¾ ÑовеÑÑÑ. ÑÐ°ÐºÐ°Ñ ÐºÑаÑоÑа полÑÑаеÑÑÑ. effect_create_above(ef_cloud, random(room_width), random(room_height), irandom(2), choose(c_red, c_yellow, c_blue, c_orange, c_fuchsia)) 😉 | |||
ÐÑÑÑ Ð²ÐµÑи, коÑоÑÑе нелÑÐ·Ñ Ð¾Ð±ÑÑÑниÑÑ. ÐÐ»Ñ Ð²Ñего оÑÑалÑного еÑÑÑ Ð¡Ð¿Ñавка C++ & OpenGL |
Источник
Кто знает какие скрипты кидайте сюда!
Задавать вопросы на стене!
Кто хочет создать игру в которой персонаж поворачивался за мышкой тогда в step пишите код image_angle=point_direction(x,y,mouse_x,mouse_y)
если хотите сделать чтобы за объектом тогда пишите место mouse_ имя объекта а место чёрточки точку а x и y как есть пусть так и останутся
если только при движении объекта поворачивался туда куда идет ваш персонаж то пишите image_angle=direction можно и нарисовать изометрического персонажа в 360% на 360 градусов против часовой стрелки
и чтобы он поворачивался анимацией за чем то то место image_angle пишите image_single.
Как сделать жизни в создании пишите код health=100 maxhealth=100
а в step такой код if health>maxhealth {health=maxhealth}
if health<1 {show_message(‘Здесь писать предсмертный текст…’)room_restart()}
а в рисовании такой код чтобы жизни были видны сверху объекта
draw_sprite_ext(sprite_index,image_index,x,y,1,1,image_angle,image_blend,image_alpha)
draw_healthbar(x-25,y-20,x+25,y-15,health,c_black,c_lime,c_lime,0,1,1)
а чтобы видно было цифрами то найдите в разделе control draw_variable
и пишите в variable health
а в x такой код view_xview+10
в y пишите view_yview+10
Круто спасиб чувак ща в нете найду выложу скрипты!!!
Скрипт для автогенерации уровня в платформе только несколько условий
создайте блок obj_wall и в создании пишите код scr_blocks()
и script должен называться также scr_blocks()
в уровень поставте эти блоки просто в низу линией вот пример
начало уровня|_ _ _ _ _ _|конец уровня
………………..^ ^ ^ ^ ^
а это( блоки черточки) снизу
scr_blocks
obj=obj_wall
obj1=obj_wall
howhigh=15
if y<=room_height-sprite_height{
if !place_meeting(x,y+1,obj){instance_create(x,y+sprite_height,obj1)}
}
if y<=room_height-sprite_height{
if !place_meeting(x+1,y,obj) && !place_meeting(x-1,y,obj) && place_free(x,y+33){instance_create(x,y+sprite_height,obj1)}
}
if y>=(room_height-sprite_height)-(howhigh*sprite_height){
if random(1)<=0.5{
if place_meeting(x+sprite_width,y,obj) or place_meeting(x-sprite_width,y,obj){
if random(1)<=0.5{instance_create(x+sprite_width,y-32,obj1)}else
{instance_create(x-sprite_width,y-32,obj1)}
}
else
if place_meeting(x+sprite_width*2,y,obj) or place_meeting(x-sprite_width*2,y,obj){
if random(1)<=0.5{instance_create(x+sprite_width*2,y-32,obj1)}else
{instance_create(x-sprite_width*2,y-32,obj1)}
}
}
}
Кто хочет сделать бота который не видит вас за стеной тогда вот пример. Например создали Player ваш игрок Enemy это враг Wall это стена.Теперь у Enemy в step поставьте такой код :
if !collision_line(x,y,Player.x,Player.y,Wall,true,true){Тут поставьте что будет если вас враг увидит}
скрипт от которого зависит чем ближе к какому то объекту тем лучше видно
image_alpha=1-distance_to_object(тут пишите название своего персонажа)/ а тут пишите на коком расстоянии объект совсем исчезнет.
для создания надписей
draw_text(10,11,»текст»);
11=y
10=x
Чтобы ваш объект не исчезал когда вы работаете с Draw Рисованием
надо писать такой код Execute code :
draw_sprite_ext(sprite_index,image_index,x,y,image_xscale,image_yscale,image_angle,image_blend,image_alpha)
Вот один скрипт
(Как сделать движение по неровной поверхности в платформере)
Здесь тоже нет ничего сложного. Проблема в том, что иногда игроку может препятствовать всего один пиксель, и чтобы на него взобраться — приходится прыгать. Потому, нужно создать некоторую имитацию ног человека — за один шаг игрок может взобраться на несколько пикселей, без прыжка. Итак, сначала задаётся максимальная высота, на которую может взобраться игрок — обычно 4-8 пикселей. Во время движения в цикле проверяется сначала позиция прямо возле игрока, потом на один пиксель выше, на два пикселя выше, и так до максимальной высоты, на которую может взобраться игрок за один шаг. Эта картинка наглядно демонстрирует метод:
В коде это будет выглядеть примерно так:
step event:
var i;
if keyboard_check(vk_left) // Если игрок нажал стрелку влево
{
for (i = 0; i < vdis_max; i += 1) // В цикле проверяем все позиции: с высотой как у игрока, на 1 пиксель выше, на 2 и т.д.
{
if place_free(x — spd, y — i) // Если данная позиция свободна, то…
{
x -= spd; // Двигаем игрока
y -= i;
break; // Завершаем цикл
}
}
}
//…
Где vdis_max — максимальная высота, на которую может взобраться игрок за один шаг, spd — скорость передвижения игрока.
В случае, если нужно реализовать ещё и быстрый спуск по ступенькам вниз — код будет выглядеть примерно так:
var i;
if keyboard_check(vk_left) // Если игрок нажал стрелку влево
{
for (i = 0; i < vdis_max; i += 1) // В цикле проверяем все позиции: с высотой как у игрока, на 1 пиксель выше, на 2 и т.д.
if place_free(x — spd, y — i) // Если данная позиция свободна
{
x -= spd; // Двигаем игрока
y -= i;
if place_free(x, y + 1) // Если игрок не стоит на платформе,
if !place_free(x, y + vdis_max2 + 1) // Но она под ним есть!
for (i = 0; i < vdis_max2 + 1; i += 1) // Проверяем все позиции немного ниже его
{
if !place_free(x, y + i) // Если в данная позиция занята твёрдым объектом
{
y += i — 1; // Двигаем игрока вплотную к этому объекту
break; // Завершаем цикл
}
}
break; // Завершаем цикл
}
}
Собственно, эти циклы — самописные аналоги функций move_outside_solid и move_contact_solid. При желании их можно заменить встроенными функциями, или даже использовать instance_place.
(Как убрать курсор с помощью кода? Как изменить курсор? Как сделать свою картинку курсора)
Изменить стандартное изображение можно с помощью функции window_set_cursor(curs), в которой можно использовать следующие константы:
cr_default
cr_none
cr_arrow
cr_cross
cr_beam
cr_size_nesw
cr_size_ns
cr_size_nwse
cr_size_we
cr_uparrow
cr_hourglass
cr_drag
cr_nodrop
cr_hsplit
cr_vsplit
cr_multidrag
cr_sqlwait
cr_no
cr_appstart
cr_help
cr_handpoint
cr_size_all
Чтобы убрать курсор — следует выбрать константу cr_none.
Чтобы показывалась картинка игрового курсора, можно использовать переменную cursor_sprite.
Обратите внимание, если скорость комнаты меньше 60 — ваш собственный курсор будет немного «тормозить», потому что частота обновления экрана значительно больше 30.
вот такой код нужен для того чтобы вокруг персонажа летали например мухи.У мух в step с помощью Execute code теперь пишите :
motion_add(point_direction(x,y,тут впишите имя персонажа.x,тут тоже самое имя персонажа.y),0.5)
вот и всё…
Что такое текстовый квест?
Текстовый квест — это игра состаящая из локаций, диалоговых окон, любой графики между локациями, любых файлов мультимедиа(например видео, музыка, звуки). Чтобы создавать квесты на GM я выбрал самый простой и оптимальный способ выведения текста и кнопок это show_message(для сообщений) и show_message_ext(для локаций). Ещё можно добавлять видео(show_video) и картинки(show_image).
show_message_ext
Без этой функции нельзя сделать локацию. Локация — это диалоговое окно с несколькими кнопками(максимум 3мя), в окне локации должно быть её описание и варианты действий. например: otvet=show_message_ext(‘Я подошёл к человеку и он предлжил мне поесть.’,’Я не голоден’,’Нет, спасибо’,’Да, я с удовольствием поем’) Вроде всё понятно, но зачем переменная «otvet»? С этим всё тоже просто. Функция show_message_ext возвращает номер нажатой кнопки и 0 если будет нажата клавиша(в этом случае пропишите повторение функции). после функции мы пропишем: if otvet = 1{show_message(‘досвидания’) } if otvet = 2{show_message(‘Да не за что’)} if otvet = 3{show_message(‘Прошу за стол!’)} здесь всё понятно.
Оформление локаций и сообщений
Я нехотел бы, чтобы в моей игре были окна стандартного GM. Чтобы ваше изображение было вместо стандартного окна надо сначала поместить изображение окна в BackGrounds потом в коде прописать: message_background(твой_бэк) и чтобы кнопки были тоже твоими, надо поместить спрайт кнопки в sprites и прописать message_button(спрайт_кнопки)
для тех кто хочет создать strategy то вот обводка персонажей создайте 2 объекта 1 mouse 2 poza у mouse в step такой код :
x=poza.x
y=poza.y
в глобальная левая кнопка отпущена glob left relesed пишите такой код : instance_destroy()
в draw рисовании такой код:
draw_redraw_set_color(c_green)//это каким цветом рисуется обводка
ctangle(poza.x,poza.y,mouse_x,mouse_y,1)//1
draw_rectangle(poza.x+1,poza.y+1,mouse_x+1,mouse_y+1,1)//2
draw_rectangle(poza.x+2,poza.y+2,mouse_x+2,mouse_y+2,1)//3
draw_rectangle(poza.x+3,poza.y+3,mouse_x+3,mouse_y+3,1)//4
чем боль таких rectangle тем толще ваша обводка , но каждая на 1 больше другой смещена в сторону от неё
а у объекта poza в глобальная левая кнопка нажать glob left presed пишите такой код :
x=mouse_x
y=mouse_y
instance_create(x,y,mouse)
в рисовании такой код : draw_clear(c_black)
это какого цвета фон
Как защитить счёт в игре от артмани
——————————————————————————————-
Метод 1:
Можно хранить в памяти не то значение которое выводится на экран — тогда пользователь не сможет узнать, по какому именно значению проводить поиск.
Пример реализации:
create event:
score = 0;
——————————————————————————————-
keyboard press space event:
score += irandom(5) * 0.456;
——————————————————————————————-
draw event:
draw_text(x, y, score / 0.456);
——————————————————————————————-
Таким образом, на экране отображается одно значение, а в памяти хранится всего 456/1000 от него. Конечно, желательно использовать более сложные формулы, чем просто деление и умножение.
///////////////////////////////////////////////////////////////////////////////////////////////////
Метод 2:
Можно создать ещё одну переменную для проверки счёта.
Пример реализации:
create event:
score = 0;
score_prev = score + 240.764;
———————————————————————————————
step event:
if score != score_prev — 240.764
{
show_message(‘Не пытайтесь взломать нашу игру. Это бесполезно.’)
game_end();
}
———————————————————————————————
keyboard press space event:
score += irandom(5) * 0.456;
score_prev = score + 240.764;
———————————————————————————————
draw event:
draw_text(x, y, score);
———————————————————————————————
Таким образом, как только пользователь изменит кол-во счёта с помощью сторонних программ — игра сразу же это обнаружит.
Как сделать паузу между выстрелами?
create event:
shooting_ready = 1; // Указываем, что игрок готов стрелять
step event:
if (shooting_ready) // Если игрок готов стрелять
{
// …
// Стреляем
alarm[0] = room_speed*<количество_секунд>; // Устанавливаем время, через которое игрок снова будет готов стрелять
shooting_ready = 0; // Указываем, что игрок более не может стрелять
}
alarm 0 event:
shooting_ready = 1; // После истечения времени указываем, что игрок готов стрелять
Кто-нибудь знает, как сделать очерёдность ходов по 30 сек.???
например, враг сходил, выстрелил и ход закончился и передался мне. Потом я выстрелил и ход передался компу и т.д.
Напишите в личку плиз!!!
вот пример создай объект x1 и x2 в создании у x1 и x2 в Create поставь код у обоих объектов
za=30 alarm[0]=30
в Alarm 0 поставь такой код za-=1 alarm[0]=30
у x1 поставь в step такой код
if za<1 {instance_change(x2,true)}
а у x2 такой код
if za<1 {instance_change(x1,true)}
а в рисовании у обоих выбери control и там выбери Draw Variable
и поставь в 1 строке ставь za во 2 строке пиши +30 это x в 3 строке +10 y
, а у твоего персонажа первого можно в step поставить test instance count в 1 стоке выбери x1 во 2 строке пусть будет 0 , а в 3 строке larger than и у
второго персонажа поставь тоже самое только место x1 поставь x2 это тоже в step что не понятно то говори
в личку не могу я для этого должен быть твоим другом потому что ты поставил ограничение
Источник