sergei248
Пользователь
 
Репутация: 0
Offline
API: GameMaker Studio Pro
Сообщений: 56
|
 |
« Ответ #345 : Октябрь 19, 2015, 21:24:21 » |
|
wow , спасибо приогромнейшее +++ ,целый день сижу туплю...)))
Добавлено: Октябрь 20, 2015, 01:11:58 Прошу прощения за наглую наглость ,но не мог бы ты ещё добавить к примеру, как задействовать клавиши на клавиатуре,вместо кнопок на мыши ,не могу догнать, как заменить эти строчки ...
klick_x=floor((mouse_x-x)/slot_width_x); klick_y=floor((mouse_y-y)/slot_height_y);
|
|
|
|
« Последнее редактирование: Октябрь 20, 2015, 01:11:58 от sergei248 »
|
Записан
|
|
|
|
|
Dva_Kota
|
 |
« Ответ #346 : Октябрь 20, 2015, 10:19:42 » |
|
Всё на много проще. Нужно везде убрать klick_x=floor((mouse_x-x)/slot_width_x); klick_y=floor((mouse_y-y)/slot_height_y); В коде создания инвентаря //Это будут координаты ячейки, выбранной по умолчанию klick_x=0; klick_y=0; В нажатии клавиш выбора ячейки менять соответственно переменные klick_x и klick_y (предварительно сделав проверку, чтобы не выйти за пределы инвентаря) и события нажатия клавиш мыши заменить на события нажатия каких-то других клавиш. Больше ничего можно не менять и не добавлять дополнительный массивы и переменные.
|
|
|
|
|
Записан
|
|
|
|
sergei248
Пользователь
 
Репутация: 0
Offline
API: GameMaker Studio Pro
Сообщений: 56
|
 |
« Ответ #347 : Октябрь 20, 2015, 23:10:08 » |
|
плиз ,если не сложно,добавите нужный код в клавиши передвижения по инвентарю ,не соображу как это сделать ...,удалил все ненужные строчки ,заменил eventы на нажатие клавиш ... да и не пойму опять куда вставить спрайт select(рамка навигации в инвентаре) в draw... буду очень признателен...
|
|
|
|
Записан
|
|
|
|
Goo
ну типа
GM Pro user
Репутация: 163
Offline
Пол:  Награды:  ![Второе место на HellRoom Jam #9 [Антибиотик] Второе место на HellRoom Jam #9 [Антибиотик]](http://forum.hellroom.ru/awards/195ce38974a80fb1fe0e6909737628c8_hj9_silver-1.gif)
API: GameMaker Studio 2
Деятельность: программист
Сообщений: 1345
|
 |
« Ответ #348 : Октябрь 21, 2015, 13:41:34 » |
|
Как я понял ты удалил все, и не помнишь как там было, скачай тот пример, что я скидывал, там все это есть. и это код в клавиши передвижения по инвентарю и это куда вставить спрайт select(рамка навигации в инвентаре) в draw
|
|
|
|
|
Записан
|
|
|
|
sergei248
Пользователь
 
Репутация: 0
Offline
API: GameMaker Studio Pro
Сообщений: 56
|
 |
« Ответ #349 : Октябрь 21, 2015, 15:43:47 » |
|
Ну всё ,аллилуйя ,наконец то разобрался ,спасибо за помощь  Добавлено: Октябрь 22, 2015, 00:31:00 Люди,а кто нибудь знает, возможно ли как нить сделать так ,чтобы при использовании предмета (к примеру находящегося на второй ячейке)все остальные предметы в инвентаре передвинулись на пустую ячейку за место использованного предмета...?
|
|
|
|
« Последнее редактирование: Октябрь 22, 2015, 00:31:00 от sergei248 »
|
Записан
|
|
|
|
Troir
GM Pro user
Репутация: 100
OfflineНаграды:  ![За постоянность! [10 дней на форуме] За постоянность! [10 дней на форуме]](http://forum.hellroom.ru/awards/35b6e985f89cc9a79a2bbfdd216390ca_hellroomforum_time_tin.gif)
API: GameMaker 8.1 Standard
Сообщений: 766
|
 |
« Ответ #350 : Октябрь 22, 2015, 11:48:47 » |
|
Ну всё ,аллилуйя ,наконец то разобрался ,спасибо за помощь  Добавлено: Октябрь 22, 2015, 00:31:00 Люди,а кто нибудь знает, возможно ли как нить сделать так ,чтобы при использовании предмета (к примеру находящегося на второй ячейке)все остальные предметы в инвентаре передвинулись на пустую ячейку за место использованного предмета...? Пишешь скрипт, который будет делать следующее: 1) Создает цикл, который перебирает все ячейки инвентаря 2) Если ячейка пуста, а следующая за ней ячейка не пуста, то переносишь содержимое ячейки в пустую ячейку и тд (важно только учесть, что когда цикл дойдет до конца, будет проверяться последняя и следующая за ней ячейка(которой не существует), поэтому в ходе цикла делать проверку, а есть ли вообще следующая ячейка) Скрипт должен вызываться, когда предмет использован.
|
|
|
|
|
Записан
|
|
|
|
sergei248
Пользователь
 
Репутация: 0
Offline
API: GameMaker Studio Pro
Сообщений: 56
|
 |
« Ответ #351 : Октябрь 24, 2015, 00:22:04 » |
|
Пожалуйста помогите ,возникла проблема с переменной variable_local_exists в obj_smil_base ,её нет в студии ,как быть ?? может есть альтернатива ??
|
|
|
|
|
Записан
|
|
|
|
Goo
ну типа
GM Pro user
Репутация: 163
Offline
Пол:  Награды:  ![Второе место на HellRoom Jam #9 [Антибиотик] Второе место на HellRoom Jam #9 [Антибиотик]](http://forum.hellroom.ru/awards/195ce38974a80fb1fe0e6909737628c8_hj9_silver-1.gif)
API: GameMaker Studio 2
Деятельность: программист
Сообщений: 1345
|
 |
« Ответ #352 : Октябрь 24, 2015, 10:14:17 » |
|
все просто, убери везде проверку на существование переменной, а в тех предметах, на которые потом инвентарь будет жаловаться, мол нет такой переменной, просто занеси им эту переменную в create, либо равную 9999 - когда предметов в ячейке должно быть до хера, либо == 1 - когда предмет лишь в единичном экземпляре помещается в ячейку ( точнее хочешь, чтобы он был один )
|
|
|
|
|
Записан
|
|
|
|
sergei248
Пользователь
 
Репутация: 0
Offline
API: GameMaker Studio Pro
Сообщений: 56
|
 |
« Ответ #353 : Октябрь 24, 2015, 18:00:21 » |
|
все просто, убери везде проверку на существование переменной, а в тех предметах, на которые потом инвентарь будет жаловаться, мол нет такой переменной, просто занеси им эту переменную в create, либо равную 9999 - когда предметов в ячейке должно быть до хера, либо == 1 - когда предмет лишь в единичном экземпляре помещается в ячейку ( точнее хочешь, чтобы он был один )
Спасибо ,всё заработало)))+++ Добавлено: Октябрь 25, 2015, 15:35:22 Люди подскажите :у меня в obj_inv навигация в ячейках назначена на стрелки клавиатуры в step и управление гг тоже на эти же стрелки,при входе в инвентарь деактивируются все объекты, соответственно кроме obj_inv ,но так как obj_inv должен быть всегда активирован, все действия нажатий клавиш гг отражаются в инвентаре.. как мне отключить скрипт отвечающий за навигацию в инвентаре на тот момент пока я управляю гг,и как включить этот скрипт при входе в инвентарь 
|
|
|
|
« Последнее редактирование: Октябрь 25, 2015, 15:35:22 от sergei248 »
|
Записан
|
|
|
|
Troir
GM Pro user
Репутация: 100
OfflineНаграды:  ![За постоянность! [10 дней на форуме] За постоянность! [10 дней на форуме]](http://forum.hellroom.ru/awards/35b6e985f89cc9a79a2bbfdd216390ca_hellroomforum_time_tin.gif)
API: GameMaker 8.1 Standard
Сообщений: 766
|
 |
« Ответ #354 : Октябрь 25, 2015, 17:21:12 » |
|
Люди подскажите :у меня в obj_inv навигация в ячейках назначена на стрелки клавиатуры в step и управление гг тоже на эти же стрелки,при входе в инвентарь деактивируются все объекты, соответственно кроме obj_inv ,но так как obj_inv должен быть всегда активирован, все действия нажатий клавиш гг отражаются в инвентаре.. как мне отключить скрипт отвечающий за навигацию в инвентаре на тот момент пока я управляю гг,и как включить этот скрипт при входе в инвентарь  Задай переменную, например inv_active. Когда инвентарь открыт, она будет равна 1, когда закрыт - 0. И в коде движения персонажа делай проверку: if not inv_active { //код движения персонажа }
|
|
|
|
|
Записан
|
|
|
|
sergei248
Пользователь
 
Репутация: 0
Offline
API: GameMaker Studio Pro
Сообщений: 56
|
 |
« Ответ #355 : Октябрь 25, 2015, 19:01:40 » |
|
Люди подскажите :у меня в obj_inv навигация в ячейках назначена на стрелки клавиатуры в step и управление гг тоже на эти же стрелки,при входе в инвентарь деактивируются все объекты, соответственно кроме obj_inv ,но так как obj_inv должен быть всегда активирован, все действия нажатий клавиш гг отражаются в инвентаре.. как мне отключить скрипт отвечающий за навигацию в инвентаре на тот момент пока я управляю гг,и как включить этот скрипт при входе в инвентарь  Задай переменную, например inv_active. Когда инвентарь открыт, она будет равна 1, когда закрыт - 0. И в коде движения персонажа делай проверку: if not inv_active { //код движения персонажа }
ни как не получается, может есть другой выход ,не затрагивая управление гг.. может возможно как то создать глобальную переменную, отвечающую за включение и отключение скрипта управления навигацией в obj_inv в step...?
|
|
|
|
|
Записан
|
|
|
|
Troir
GM Pro user
Репутация: 100
OfflineНаграды:  ![За постоянность! [10 дней на форуме] За постоянность! [10 дней на форуме]](http://forum.hellroom.ru/awards/35b6e985f89cc9a79a2bbfdd216390ca_hellroomforum_time_tin.gif)
API: GameMaker 8.1 Standard
Сообщений: 766
|
 |
« Ответ #356 : Октябрь 25, 2015, 20:35:33 » |
|
может возможно как то создать глобальную переменную, отвечающую за включение и отключение скрипта управления навигацией в obj_inv в step...?
Можно. Делается точно также. Только когда inv_active=1, то тогда навигация по инвентарю активна. Если 0 - то нет. а движение гг все равно отключать придется
|
|
|
|
|
Записан
|
|
|
|
sergei248
Пользователь
 
Репутация: 0
Offline
API: GameMaker Studio Pro
Сообщений: 56
|
 |
« Ответ #357 : Октябрь 25, 2015, 21:04:02 » |
|
может возможно как то создать глобальную переменную, отвечающую за включение и отключение скрипта управления навигацией в obj_inv в step...?
Можно. Делается точно также. Только когда inv_active=1, то тогда навигация по инвентарю активна. Если 0 - то нет. а движение гг все равно отключать придется
ok понял ,буду пробовать ...спасибо.. Добавлено: Октябрь 26, 2015, 22:23:20 может возможно как то создать глобальную переменную, отвечающую за включение и отключение скрипта управления навигацией в obj_inv в step...?
Можно. Делается точно также. Только когда inv_active=1, то тогда навигация по инвентарю активна. Если 0 - то нет. а движение гг все равно отключать придется
ok понял ,буду пробовать ...спасибо.. В общем решил проблему так: в obj_inv создал переменную global.inv_active ,сделал её false, в step вставил код: if global.inv_active { //скрипт навигации по инвентарю//; } далее в включении инвентаря global.inv_active=true при выключении false и всё.) гг не затрагивал так как ,его объект деактивируется при входе в инвентарь. Так написал,мож кому интересно...
|
|
|
|
« Последнее редактирование: Октябрь 26, 2015, 22:23:20 от sergei248 »
|
Записан
|
|
|
|
Konstruktor001
Посетитель

Репутация: 0
Offline
Пол: 
API: GameMaker Studio Standard
Сообщений: 36
|
 |
« Ответ #358 : Ноябрь 15, 2015, 13:46:30 » |
|
Делал по примеру свой инвентарь, и выдаёт ошибку если очень быстро водить курсором по инвентарю. Ошибка в Draw вот в этом куске кода /////////////////////////// if (position_meeting(mouse_x,mouse_y,o_ini) { // mousx=floor((mouse_x-x)/ini_w);// mousy=floor((mouse_y-y)/ini_h);// draw_set_font(name)// if naimen_ob[mousx,mousy]!='' && naimen_ob[mousx,mousy]!='@'{ draw_text(view_xview[0]+340,view_yview[0]+0,russ_name[mousx,mousy])//русское имя предмета в координатах курсора }} А ошибка такая ############################################################################################ FATAL ERROR in action number 1 of Draw Event for object o_ini:
Array index must be +'ve at gml_Object_o_ini_DrawEvent_1 (line 15) - if naimen_ob[mousx,mousy]!='' && naimen_ob[mousx,mousy]!='@' ############################################################################################
|
|
|
|
|
Записан
|
|
|
|
Goo
ну типа
GM Pro user
Репутация: 163
Offline
Пол:  Награды:  ![Второе место на HellRoom Jam #9 [Антибиотик] Второе место на HellRoom Jam #9 [Антибиотик]](http://forum.hellroom.ru/awards/195ce38974a80fb1fe0e6909737628c8_hj9_silver-1.gif)
API: GameMaker Studio 2
Деятельность: программист
Сообщений: 1345
|
 |
« Ответ #359 : Ноябрь 15, 2015, 14:26:58 » |
|
по идее такого быть не должно, но раз уж так случилось, то if position_meeting ( mouse_x , mouse_y , o_ini ) { mousx = floor (( mouse_x - x ) / ini_w ) mousy=floor (( mouse_y - y ) / ini_h )
if mousx > -1 and mousy > -1 and mousx < количество_ячеек_в_ширину and mousy > количество_ячеек_в_высоту { // твой код } }
Ну как - то так! Добавлено: Ноябрь 15, 2015, 14:29:47 russ_name[mousx,mousy]
замени на string ( russ_name[mousx,mousy] ) // мало ли, вдруг там хранится не строковая величина
|
|
|
|
|
Записан
|
|
|
|
|