Проблемы с кодом GM8.1.Прошу помощи в создании меню
| |
maxmobi | Дата: Пятница, 10 Января 2014, 11:50 | Сообщение # 1 |
был не раз
Сейчас нет на сайте
| код в создании
telo=40; hed=10; r_hend=10; l_hand=10; r_leg=15; l_leg=15; hp=(telo+hed+r_hend+l_hand+r_leg+l_leg);
в рисовании
draw_text(170,105,player.hp); draw_healthbar(16,20,116,34,player.hp,c_black,c_green,c_green,0,false,false);
все рисует, но в событии столкновения с пулей нужно случайное попадание в часть тела и отнимании прописанных данных
|
|
| |
Raven84 | Дата: Пятница, 10 Января 2014, 12:06 | Сообщение # 2 |
старожил
Сейчас нет на сайте
| Я если честно так и не понял,что тебе надо? В заголовке написал,что проблема с СОЗДАНИЕМ МЕНЮ. Тут прописываешь систему здоровья/попадания в части тела...Но толком что нужно так и не понять.Опиши подробнее что надо.
Super Knight Story (в разработке) Idolzzz - игра доступна в Steam и Play Market Oliver's Adventures in the Fairyland
|
|
| |
maxmobi | Дата: Пятница, 10 Января 2014, 16:09 | Сообщение # 3 |
был не раз
Сейчас нет на сайте
| Ой извини за мое не умение объяснять. Просто двух зайцев в одной теме убить хотел. есть два объекта player и show_status ///player create show_menu=0 telo= hed=10; r_hend=10; l_hand=10; r_leg=15; l_leg=15; hp=(telo+hed+r_hend+l_hand+r_leg+l_leg);
создаю нажатие кнопки с изменением show_menu на один
///объект на поле show_status if menu_show=1 { draw_sprite(scan,-1,472,31); draw_healthbar(16,15,116,30,player.hp,c_black,c_green,c_green,0,false,false); draw_healthbar(16,40,116,50,player.telo,c_black,c_green,c_green,0,false,false); draw_healthbar(16,60,116,70,player.hed,c_black,c_green,c_green,0,false,false); draw_healthbar(16,80,116,90,player.r_hend,c_black,c_green,c_green,0,false,false); draw_healthbar(16,100,116,110,player.l_hand,c_black,c_green,c_green,0,false,false); draw_healthbar(16,120,116,130,player.r_leg,c_black,c_green,c_green,0,false,false); draw_healthbar(16,140,116,150,player.l_leg,c_black,c_green,c_green,0,false,false); };
он рисует кусочки меньше чем общий статус например-> Жизни 100 (статус-бар одной определенной длинны при повышении уровня длинна бара не меняется,но жизнь=150) Тело 40 (статус-бар той же длинны что и жизнь при повышении уровня длинна бара не меняется,но telo=80) и так с остольным
Добавлено (10.01.2014, 16:09) --------------------------------------------- вывести значение как 100 процентов каждой части тела если тело например 30 в статус баре 30 как сто процентов
вот нашел здесь формулу hp_draw=hp/(hp_max/100) как применить???
Сообщение отредактировал maxmobi - Пятница, 10 Января 2014, 16:27 |
|
| |
Raven84 | Дата: Пятница, 10 Января 2014, 16:41 | Сообщение # 4 |
старожил
Сейчас нет на сайте
| maxmobi, Я опять толком почти ничего не понял! Но по-моему тебе нужна вт такая формула: Код hpproc=(hpnow*100)/hpmax Где hpproc-это то что тебе нужно найти и указать в draw_healthbar (это здоровье в процентах от 0 до 100) hpnow - это просто здоровье части тела или всего тела.Это то с чем ты работаешь,что будешь уменьшать,когда получаешь повреждение к примеру hpmax - это максимальное здоровье,которое может быть Т.е. hpnow не может быть больше hpmax! Например максисмальное здоровье ты установил 200 (это число ты неменяешь).hpmax=200 Тогда hpnow изначально тоже равно 200.Но когда герою нанесли урон,то hpnow стало к примеру 100 (т.е. ему убрали половину здоровья) Тогда hpproc будет равно 50 (т.е. 50% это и будет показываться в шкале в draw_healthbar)
Думаю тебе это нужно.
Super Knight Story (в разработке) Idolzzz - игра доступна в Steam и Play Market Oliver's Adventures in the Fairyland
|
|
| |
maxmobi | Дата: Пятница, 10 Января 2014, 16:45 | Сообщение # 5 |
был не раз
Сейчас нет на сайте
| Кажется я понял. Попробую и отпишусь. Спасибо
|
|
| |
Raven84 | Дата: Пятница, 10 Января 2014, 16:48 | Сообщение # 6 |
старожил
Сейчас нет на сайте
| Т.е. к примеру для ноги у тебя hpmax=15 (т.е. максимальное здоровье равно 15),тогда код для ноги будет выглядеть так: Код draw_healthbar(16,140,116,150,(player.l_leg*100)/15,c_black,c_green,c_green,0,false,false) Вроде так если ничего не напутал.И так по аналогии для всех частей тела.Добавлено (10.01.2014, 16:48) --------------------------------------------- Для руки,например,вот так: Код draw_healthbar(16,80,116,90,(player.r_hend*100)/10,c_black,c_green,c_green,0,false,false)
Super Knight Story (в разработке) Idolzzz - игра доступна в Steam и Play Market Oliver's Adventures in the Fairyland
|
|
| |
maxmobi | Дата: Пятница, 10 Января 2014, 16:49 | Сообщение # 7 |
был не раз
Сейчас нет на сайте
| Слушай,а как сделать случайное попадание по любой из частей тела и отнимание от нее какого-то значения?
|
|
| |
Raven84 | Дата: Пятница, 10 Января 2014, 16:50 | Сообщение # 8 |
старожил
Сейчас нет на сайте
| Понял? Добавлено (10.01.2014, 16:50) --------------------------------------------- maxmobi, Цитата Слушай,а как сделать случайное попадание по любой из частей тела и отнимание от нее какого-то значения? Ну используй рандомные числа...Просто я не знаю как у тебя реализовано попадание.
Super Knight Story (в разработке) Idolzzz - игра доступна в Steam и Play Market Oliver's Adventures in the Fairyland
|
|
| | |
Raven84 | Дата: Пятница, 10 Января 2014, 17:02 | Сообщение # 10 |
старожил
Сейчас нет на сайте
| Можешь использовать такой код: Код chast=round(random(5)) Т.е. эта функция создает целое произвольное число от 0 до 5.Т.е. chast может быть равно либо 0,либо 1,либо 2,либо 3,либо 4,либо 5.Т.е. 6 разных чисел.У тебя как раз шесть разных частей тела:голова,тело,2 ноги и 2 руки.Т.е определенная цыфра будет означать определенную часть тела.Понял?Добавлено (10.01.2014, 16:57) --------------------------------------------- Т.е. если chast=0 то отнимать от головы 5 едениц здоровья к примеру. Если chast=1 то отнимать 5 ед. от тела и т.д. Добавлено (10.01.2014, 17:02) --------------------------------------------- Так понятно?
Super Knight Story (в разработке) Idolzzz - игра доступна в Steam и Play Market Oliver's Adventures in the Fairyland
|
|
| |
maxmobi | Дата: Пятница, 10 Января 2014, 17:07 | Сообщение # 11 |
был не раз
Сейчас нет на сайте
| Извини за тупость. А подробнее??? В столкновении пули с игроком уничтожаем пулю как прописать и куда в общем пока по полкам не разложу не пойму ничего
Добавлено (10.01.2014, 17:07) --------------------------------------------- если не трудно то кодом пропиши. Что и как действует что и как работает чтобы понять,а не за меня все сделать хоть так и выглядит
Сообщение отредактировал maxmobi - Пятница, 10 Января 2014, 17:08 |
|
| |
Raven84 | Дата: Пятница, 10 Января 2014, 17:17 | Сообщение # 12 |
старожил
Сейчас нет на сайте
| maxmobi, Т.е. у тебя пуля сносит урон?Тогда в событии уничтожения пули пиши код: Код chast=round(random(5)) if chast=0 {player.telo-=5} if chast=1 {player.hed-=5} ... if chast=5 {player.l_leg-=5} Добавлено (10.01.2014, 17:16) --------------------------------------------- Вместо многоточия прописывай все части тела по аналогии.Понял? При этом коде пуля у тебя будет сносить с каждой части тела по 5 hp.Но попадать всегда будет в разные части тела! Добавлено (10.01.2014, 17:17) --------------------------------------------- Можно еще сделать,чтобы пуля мало того,что в разные части тела попадала,но чтобы еще и произвольное кол-во hp сносила,а не 5 постоянно! Добавлено (10.01.2014, 17:17) --------------------------------------------- Это просто.
Super Knight Story (в разработке) Idolzzz - игра доступна в Steam и Play Market Oliver's Adventures in the Fairyland
|
|
| |
maxmobi | Дата: Пятница, 10 Января 2014, 17:21 | Сообщение # 13 |
был не раз
Сейчас нет на сайте
| chast=irandom_range(1,6); if chast=1 { telo=-1 }; else if chast=2 { hed=-1 }; if chast=3 { r_hend=-1 }; else if chast=4 { l_hend=-1 }; else if chast=5 { r_leg=-1 }; else if chast=6 { l_leg=-1 };
так???
Добавлено (10.01.2014, 17:21) --------------------------------------------- Ой как и благодарить то не знаю!!!! Огромный РеСпЕкТ тебе А то я тут охинеи нагородил уже
Сообщение отредактировал maxmobi - Пятница, 10 Января 2014, 17:22 |
|
| |
Raven84 | Дата: Пятница, 10 Января 2014, 17:33 | Сообщение # 14 |
старожил
Сейчас нет на сайте
| maxmobi, Цитата Ой как и благодарить то не знаю!!!! Огромный РеСпЕкТ тебе Обращайся если еще возникнут вопросы! Помню когда сам изучал,даже интернета не было и все приходилось самому додумывать.Тебе повезло больше! Добавлено (10.01.2014, 17:33) --------------------------------------------- Кстати ты прав,можно было и irandom_range использовать...
Super Knight Story (в разработке) Idolzzz - игра доступна в Steam и Play Market Oliver's Adventures in the Fairyland
|
|
| |
maxmobi | Дата: Воскресенье, 12 Января 2014, 01:09 | Сообщение # 15 |
был не раз
Сейчас нет на сайте
| не могу. Как создать переменную hp чтобы она имела сумму 6 частей тела и вывести ее в draw_healthbar,то есть чтобы с уменьшением частей тела уменьшалось и hp на это число Добавлено (12.01.2014, 01:09) --------------------------------------------- С этим разобрался только теперь голову ломаю как сделать в случайном попадании проверку на наличие hp и перенос удара туда
Сообщение отредактировал maxmobi - Суббота, 11 Января 2014, 21:07 |
|
| |
Raven84 | Дата: Воскресенье, 12 Января 2014, 05:07 | Сообщение # 16 |
старожил
Сейчас нет на сайте
| maxmobi, Цитата С этим разобрался только теперь голову ломаю как сделать в случайном попадании проверку на наличие hp и перенос удара туда Не совсем понял.Объясни поподробнее что надо
Super Knight Story (в разработке) Idolzzz - игра доступна в Steam и Play Market Oliver's Adventures in the Fairyland
|
|
| |
maxmobi | Дата: Воскресенье, 12 Января 2014, 20:07 | Сообщение # 17 |
был не раз
Сейчас нет на сайте
| Raven84, Доровеньки Но мне нужно чтобы была проверка hp части тела Выпало число 6 а в ноге hp уже 0 нужно чтобы урон переносился на ту часть где есть еще HP Добавлено (12.01.2014, 20:03) --------------------------------------------- chast=irandom_range(1,6); if chast=1 if player.telo>=1 {player.telo-=5} else if chast=2 if player.hed>=1 {player.hed-=5} else if chast=3 if player.r_hend>=1 {player.r_hend-=5} else if chast=4 if player.l_hand>=1 {player.l_hand-=5}; else if chast=5 if player.l_leg>=1 {player.l_leg-=5}; else if chast=6 if player.r_leg>=1 {player.r_leg-=5};
Вот пробую так но не выходит Добавлено (12.01.2014, 20:04) --------------------------------------------- Raven84, как тут личные сообщения писать? Добавлено (12.01.2014, 20:07) --------------------------------------------- Raven84, Аську или агента дай если есть. Ты вообще откуда будешь? Как называть то и скок лет те?
Сообщение отредактировал maxmobi - Воскресенье, 12 Января 2014, 20:00 |
|
| |
Raven84 | Дата: Воскресенье, 12 Января 2014, 21:03 | Сообщение # 18 |
старожил
Сейчас нет на сайте
| maxmobi, Цитата Выпало число 6 а в ноге hp уже 0 нужно чтобы урон переносился на ту часть где есть еще HP У тебя здоровье постоянно на 5 едениц отнимается? Т.е. ты хочешь,чтобы к примеру на ноге у тебя осталось 2 ед. здоровья.Выпала нога и должно удалиться 5 едениц.Но так как на ноге осталось2,то надо,чтобы с ноги отнялось2 и оставшиеся 3 с другой части тела?
Добавлено (12.01.2014, 20:51) --------------------------------------------- Или просто сделать,что на ноге к примеру две.Выпала нога,но так как урон 5,то чтобы выпадала другая часть тела?
Добавлено (12.01.2014, 20:52) --------------------------------------------- Как тебе нужно? Сразу скажу-второй вариант намного проще в исполнении,но в таком случае у тебя никогда не снесется полностью урон с частей тела при постоянном уроне равном 5.
Добавлено (12.01.2014, 21:03) --------------------------------------------- Подумал над первым вариантом. Короче задай переменную uron=5 к примеру. uron=5 прописывай в создании пули.А в уничтожении пули пиши: Код chast=irandom_range(1,6) if chast=1 { if player.telo>=uron {player.telo-=uron} else {uron-=player.telo player.telo=0} } Так,этот код только для одной части тела и пока не закончен. его еще нужно додумать.Просто у меня уже 4:00 ночи.Сейчас голова слабовато варит. Т.е. в этом коде,если к примеру выпадает тело и у него здоровья меньше,чем может нанести урон,то оно приравнивается 0,а урон уменьшается на кол-во ед. здоровья остававшегося у тела.Теперь нужно оставшийся урон кинуть на другую часть тела.Т.е. повторить процесс...Завтра додумаю код.
Super Knight Story (в разработке) Idolzzz - игра доступна в Steam и Play Market Oliver's Adventures in the Fairyland
Сообщение отредактировал Raven84 - Воскресенье, 12 Января 2014, 21:03 |
|
| |
maxmobi | Дата: Воскресенье, 12 Января 2014, 21:03 | Сообщение # 19 |
был не раз
Сейчас нет на сайте
| Цитата Raven84 ( ) Выпало число 6 а в ноге hp уже 0 нужно чтобы урон переносился на ту часть где есть еще HP Не обязательно на 5 Это я думаю задать переменной AT у врага, У каждого врага будет своя атака. Я RPG хочу сделать но без мыши и время еще нужно как то сделать для смены дня и ночи. А про части именно так как ты сказал. Не может же у части тела быть - . А если у части HP=0 то попадание по этой части нужно исключить или перенести на ту часть тела где HP !=0
|
|
| |
Raven84 | Дата: Воскресенье, 12 Января 2014, 21:07 | Сообщение # 20 |
старожил
Сейчас нет на сайте
| maxmobi, Цитата Не может же у части тела быть - . А если у части HP=0 то попадание по этой части нужно исключить или перенести на ту часть тела где HP !=0 Так вот я и спрашиваю.Тебе просто сделать,чтобы урон допустим 5,а здоровья на ноге 3.Чтобы здоровье на ноге стало 0.А оставшийся урон (2) просто пропал? Или,все таки чтобы оставшийся урон кидался на другую часть тела? Первый вариант прост.Второй сложнее в исполнении.
Super Knight Story (в разработке) Idolzzz - игра доступна в Steam и Play Market Oliver's Adventures in the Fairyland
Сообщение отредактировал Raven84 - Воскресенье, 12 Января 2014, 21:08 |
|
| |
|