удаление из ячейки у тебя происходит когда ты перетаскиваешь объекты из одной ячейки в другую. Там алгоритм такой: 1. записываются значения переменных ячейки, во временные переменные. 2. Всем переменные этой ячейки обновляются 3. Когда ставишь предмет в новую ячейку, ее переменным присваиваются значения временных переменных.
Открывай скрипт drag_item и смотри как там сделано. По аналогии при использовании или при выкидывании предмета из инвентаря обнуляй переменные ячейки из которой удаляешь
тои есть создать скрипт destroy_item и в нем прописать код обнуления ?
Добавлено (22.12.2010, 12:43) --------------------------------------------- и еще мне надо реализовать появление таблички в ней кнопки выкинуть и использовать
я бы все делал не скриптом, а кодом, прямо в объекте. Можешь и скрипт сделать. Ты имеешь ввиду панель с кнопками? Делаешь две кнопки, для одной ставишь "активировать объект инвентарь", для другой "деактивировать объект инвентарь" Новый пример инвентаря! /20.06.2012/
при удалении проверяй переменную, которая отвечает за количество предметов (комментарии в событии создания инвентаря). Если больше 1 - уменьшай эту переменную на 1, если нет - удаляй предмет из инвентаря Новый пример инвентаря! /20.06.2012/
ну там где ты сделал удаление объекта из инвентаря добавь проверку
Code
if (slot[0,1]>1) { slot[0,1]-=1 потом выкидывание одного предмета (или использование, в зависимости от того что именно нужно) } else { удаление (здесь твой скрипт или код для удаление из ячейки инвентаря) }
Только в коде у тебя, возможно не slot[0,1] будет, а как-то по другому. Главное в квадратных скобках второе число поставь 1 (первое число должно меняться в зависимости от того какая ячейка, смотри по аналогии с тем как ты делал удаление)
Добавлено (22.12.2010, 13:47) --------------------------------------------- все работает !
Добавлено (22.12.2010, 13:51) --------------------------------------------- терь новые вопросы :
1) как сделать так :
внизу кнопка на нее тыкаеш и появляется окошко инвентаря которое можно двигать
2) как сделать что бы при использовании каких не будь зелий и тд. возле героя появлялся зеленый текст который постепенно исчезает
Добавлено (22.12.2010, 13:54) --------------------------------------------- 3) как реализовать что бы когда зелье из инвентаря исчезало прибавлялись жз
Сообщение отредактировал zik13 - Среда, 22 Декабря 2010, 13:36
1. Как делать появление/исчезание инвентаря я писал выше. Чтобы двигать можно было - привязывай к мышке: проверяешь нажал ли ты кнопку и проверяешь где относительно инвентаря курсор - например сверху делаешь полоску на инвентаре (как в окнах windows) если курсор находится в этой области (координаты проверяй) и если нажата кнопка - привязывай инвентарь к курсору (как привязывал к виду, например - я выше писал), если нет - не привязывай.
2. Добавь игроку переменную, отвечающую за то, рисовать текст или нет. По умолчанию задай ей значение 0. Она, одновременно, будет отвечать за прозрачность текста. И еще создай переменную, в которую будешь записывать текст. В событии рисования у игрока рисуй текст с прозрачностью (функция draw_text_color() )
draw_text_color(x,y,string,c1,c2,c3,c4,alpha) Рисует строку в позиции (x,y) подобно вышеупомянутой функции. Четыре цвета определяют цвета левого верхнего, верхнего-правого, нижнего-правого, и нижнего-левого угла текста. alpha прозрачность, используйте (0-1).
Вместо прозрачности ставь переменную, про которую я писал выше (которая отвечает за прозрачность) Теперь при использовании предмета задавай переменную, отвечающую за прозрачность =1; переменную, отвечающую за текст ="текст, который нужно писать". У игрока должно быть событие alarm0 (можно не 0, а любой другой, если 0 уже есть). Ставь o_player.alarm0=2 (число сам потом подбери). у игрока в событии alarm0 такой код:
Code
if (переменная_отвечающая_за_прозрачность_надписи>0) { переменная_отвечающая_за_прозрачность_надписи-=0,01; alarm0=2; }
3. В использовании напиши увеличение (или уменьшение) переменных, отвечающих за характеристики игрока (это уже совсем просто)
1. Как делать появление/исчезание инвентаря я писал выше. Чтобы двигать можно было - привязывай к мышке: проверяешь нажал ли ты кнопку и проверяешь где относительно инвентаря курсор - например сверху делаешь полоску на инвентаре (как в окнах windows) если курсор находится в этой области (координаты проверяй) и если нажата кнопка - привязывай инвентарь к курсору (как привязывал к виду, например - я выше писал), если нет - не привязывай.
неочень понял
Quote (Dva_Kota)
3. В использовании напиши увеличение (или уменьшение) переменных, отвечающих за характеристики игрока (это уже совсем просто)
по поводу 2: здесь должна быть переменная, содержащая текст, который должен отображаться (или можешь просто текст в кавычках написать) Новый пример инвентаря! /20.06.2012/
if mouse_check_button_pressed(mb_right) { if slot[argument0,1] = 1 {
slot[argument0,0] = 0 slot[argument0,1] = 0 slot[argument0,2] = 0 slot[argument0,3] = 0 slot[argument0,4] = 0 изменение переменноей игрока } else { slot[argument0,1] -= 1 изменение переменной игрока } }
p.s.: сегодня ничего тебе делать не буду, только подсказывать (у меня праздник, я просто не смогу тебе готовые коды писать)
Добавлено (22.12.2010, 17:37) --------------------------------------------- если не выходит - пиши конкретно что не получается. Если выдает ошибку - выкладывай лог ошибки.
я тебе, вроде бы, очень подробно все описал по второму. Что конкретно не получается? что не понятно? или ты хочешь чтобы я опять то же самое написал? Новый пример инвентаря! /20.06.2012/