Четверг, 21 Ноября 2024, 17:16

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Пример инвентаря Часть 4
DataTravel23Дата: Четверг, 28 Марта 2013, 14:49 | Сообщение # 1
частый гость
Сейчас нет на сайте
[spoiler=Как сделать предмет,который нельзя выбросить( 1 способ-для 1.0064 версии и выше,2-ой для любой версии.]
Был недавно вопрос про то, как сделать не выбрасываемый предмет. Конкретного кода я так и не дал. Вот два варианта:

1. Добавить новый тип предметов (например 8), которые нельзя выбрасывать. В событии Глобальное отпускание ПКМ, после последнего else (после строки 182) добавить проверку типа предмета, если тип который нельзя выбрасывать - возвращаем на место:
Код:
Код
if (inv_item_type == 8)
     {
     txt[inv_item_x,inv_item_y]=inv_txt;//записываем в массив имя

     inv_txt='';//ничего не перетаскиваем
     exit;//завершаем выполнение кода (чтобы предмет не удалился)
     }


2. Все то же самое, только проверку делать не по типу предмета, а по имени предмета, имени объекта или спрайту предмета (тут кому как нравится). Можно перечислить несколько предметов которые нельзя выбрасывать, например:
Код:
Код
if (inv_name_obj == obj_potion_mana or inv_name_obj == obj_potion_health)
     {
     txt[inv_item_x,inv_item_y]=inv_txt;//записываем в массив имя

     inv_txt='';//ничего не перетаскиваем
     exit;//завершаем выполнение кода (чтобы предмет не удалился)
     }

Кроме этого не забываем про то что предметы еще можно выбрасывать при нажатии ПКМ+Shift. По этому в событии Нажатие Правой Клавиши Мыши добавим такую же проверку, только наоборот, после проверки нажатия клавиши Shift и проверки наличия предмета в слоте (после 19 строки), должно получиться так:

для способа №1
Код:
Код
if (keyboard_check(vk_shift))//Если зажата клавиша Shift
         {
         if (txt[klick_x,klick_y]!='')//елси в слоте, над которым находится курсор, что-то есть
             {
             if (item_type[klick_x,klick_y] != 8)
                 {


для способа №2
Код:
Код
if (keyboard_check(vk_shift))//Если зажата клавиша Shift
         {
         if (txt[klick_x,klick_y]!='')//елси в слоте, над которым находится курсор, что-то есть
             {
             if (name_obj[klick_x,klick_y] != obj_potion_mana and name_obj[klick_x,klick_y] != obj_potion_health)
                 {

[/spoiler]
Скачать:
primer_inventarja_dva_kota_bodimir_1.0028_rpg_mod_.gmk
primer_inventarja_dva_kota_bodimir_alexis_1.0064_r.gb1
primer_inventarja_dva_kota_bodimir_1.0026.rar
primer_inventarja_dva_kota_bodimir_alexis_1.0078_m.gmk
primer_inventarja_dva_kota_bodimir_alexis_1.0064_r.gmk
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг