Переменная "не существует"...
| |
minepecraft | Дата: Воскресенье, 10 Мая 2015, 11:48 | Сообщение # 1 |
участник
Сейчас нет на сайте
| Ребят,делаю игрушку,вроде все шло на ура,пока не столкнулся с проблемой. Есть два объекта. o_hero-герой И pzombie-родитель всех зомби. Герой должен атаковать зомби,при этом отнимая ХП только у данного экземпляра зомби(т.е. ,которого он атакует) У героя в Global Left Mouse прописано: if instance_exists(o_hero) //Если герой существует { if wea=0 && global.ruki=true && place_meeting(mouse_x,mouse_y,pzombie) && distance_to_object(pzombie)<50 && global.cann=1 /*Оружие=1,оружие руки имеются, и мышь наведена на родителя всех зомби */ { global.cann=0 //Не может бить alarm[1]=30 //Бить сможет через 30с { with(other) { hpp-=global.damage-3 //У родителя нет переменной hpp,но у других зомбаков-есть. blood=irandom_range(0,5) //Потечет ли у зомби кровь effect_create_above(ef_firework,pzombie.x,pzombie.y,0,c_red) //И создаем эффект псевдо-крови..да-да.кровь-фейерверк } } } }
Я расписал все подробно,не потому что вы глупы,нет,раз вы взялись помогать-я уверен,вы умные,но на всякий случай,может я что-то не так сделал. P.S.Если я где-то не так закрыл или раскрыл комментарий,извиняюсь /* но */Добавлено (10 мая 2015, 11:48) --------------------------------------------- Ну и проблема,собственно в том,что когда я бью по зомби,то пишет-неизвестная переменная hpp,хотя она объявлена у зомби,не у родителя
|
|
| |
EfimovMax | Дата: Воскресенье, 10 Мая 2015, 12:16 | Сообщение # 2 |
заслуженный участник
Сейчас нет на сайте
| Не уверен в правильности - проверить сейчас негде, но думаю, смысл понятен:
Код if instance_exists(o_hero) //Если герой существует { if wea=0 && global.ruki=true && distance_to_object(pzombie)<50 && global.cann=1 { Damaged=instance_place(mouse_x,mouse_y,pzombie) global.cann=0 alarm[1]=30 } if Damaged!=noone { with(Damaged) { hpp-=global.damage-3 blood=irandom_range(0,5) effect_create_above(ef_firework,pzombie.x,pzombie.y,0,c_red) Damaged=noone } } }
instance_place(x,y,obj) возвращает нам id указанного объекта по указанным координатам. Если такого объекта там нет, то возвратит noone. А переменная Damaged хранит это значение.
Текущий проект: The Experiment ☭
Выпущенные проекты Steam: Princess.Loot.Pixel.Again Princess.Loot.Pixel.Again x2 Dungetris
Сообщение отредактировал EfimovMax - Воскресенье, 10 Мая 2015, 12:19 |
|
| |
minepecraft | Дата: Воскресенье, 10 Мая 2015, 12:37 | Сообщение # 3 |
участник
Сейчас нет на сайте
| Спасибо огромное!бегу проверять! Добавлено (10 мая 2015, 12:27) --------------------------------------------- Смысл вроде понял) Добавлено (10 мая 2015, 12:34) --------------------------------------------- Получилось,но теперь беда,эффект крови почему-то создается при нажатии на зомби,когда я не могу атаковать,то есть global.cann Добавлено (10 мая 2015, 12:37) --------------------------------------------- Проблему решил,спасибо ,что направил на верный путь)Лови плюс.Проблему с тем,что эффект крови создается,когда не нужно-решил.Спасибо огромное!
|
|
| |
EfimovMax | Дата: Воскресенье, 10 Мая 2015, 12:40 | Сообщение # 4 |
заслуженный участник
Сейчас нет на сайте
| Ну да, всё верно, вот поправочка: Код if instance_exists(o_hero) //Если герой существует { if wea=0 && global.ruki=true && distance_to_object(pzombie)<50 && global.cann=1 { Damaged=instance_place(mouse_x,mouse_y,pzombie) global.cann=0 alarm[1]=30 } if Damaged!=noone { with(Damaged) { hpp-=global.damage-3 blood=irandom_range(0,5) effect_create_above(ef_firework,pzombie.x,pzombie.y,0,c_red) } Damaged=noone } }
Текущий проект: The Experiment ☭
Выпущенные проекты Steam: Princess.Loot.Pixel.Again Princess.Loot.Pixel.Again x2 Dungetris
|
|
| |
minepecraft | Дата: Воскресенье, 10 Мая 2015, 12:43 | Сообщение # 5 |
участник
Сейчас нет на сайте
| Я проблему решил так:соединил эти два кода в единый.
|
|
| |
|