Форум » » вопрос по инвентарю » Ответить

вопрос по инвентарю

Domik12: возник вопрос по инвентарю: есть однотипные предметы. Надо их складывать в рюкзак. Все замечательно складывается и суммируется к переменной количества, не создавая много однотипных предметов в рюказке (через проверку наличие предмета и добавление еще одного к имеющимся). Только вот хотелось бы отбразить количество предметов, например монет, в рюкзаке. Т.е. хочется чтобы в окошке инвентаря было видно: "монеты 3" . Или мне хочется невозможного и можно только через команду посмотреть инвентарь вывести количество предметов каждого вида? Посмотрел как реализованы пайки в Черном замке - но там просто идет счетчик и убирание/добавление (убирается из рюкзака "паек(количество)" и создается "паек(количество-1)" ) А по другому не реализовать?

Ответов - 38, стр: 1 2 All

Byte: Domik12, количество можно отображать например в доп. описании (сразу, без кликов на предметы).

Domik12: Byte , это один из вариантов или единственный? :)

Byte: Domik12, вариантов много - например, динамически обновлять список предметов с указанием количества.


Domik12: Byte а как в окошке инвентаря вывести после названия предмета его количество? добавлять предмет вида деньги(5) и после увеличения/уменьшения - удалять объект и дабавлять новый? или как то еще? просто возможно ли предмет в инвентаре сделать состоящим из двух величин - название и количество, и чтобы оба параметра в инвентаре были сразу видны?

Byte: Domik12, только вручную разделять. Можно вести отдельный список с предметами и их количеством. Обновлять отображаемый список на $ONOBJADD/$ONOBJDEL.

Domik12: Byte спасибо, теперь понятно.

Domik12: а еще вопрос - можно ли делать динамическое меню для предметов? вида: Menu[0]='перейти к лок1:2-0' if loc3=1: $Menu[1]='перейти к лок2:3-0' end If loc4=1: $Menu[2]='перейти к лок3:4-0' end где loc3 и loc4 - переменные, получающие свои значения в разных локациях при разных событиях, т.е. чтобы на разных локациях при разных значениях переменных было разное меню у одного и того же предмета? просто попробовал реализовать - но меню остается постоянным, хотя переменные значение менют на нужные. В чем косяк? Может в счетчике надо еще что то писать?

Byte: Элементы меню должны друг за другом идти - если есть пропущенные, то меню "оборвётся" на элементе со значением "пусто". Вариант - создать меню по текстовым индексам :) [pre2] $Menu['0']='перейти к лок1:2-0' if loc3=1: $Menu['1']='перейти к лок2:3-0' end If loc4=1: $Menu['2']='перейти к лок3:4-0' end[/pre2] Можно через доп. переменную: [pre2] $Menu[0]='перейти к лок1:2-0' n=1 if loc3=1: $Menu[n]='перейти к лок2:3-0' n=n+1 end If loc4=1: $Menu[n]='перейти к лок3:4-0' n=n+1 end[/pre2]

Domik12: Byte спасибо, работает! только не понял, почему пункты меню с индексами [1] [2] не работали, а текстовые ['1'] ['2'] начали работать. Он по строчкам там считает пункты меню чтоли? Т.е. на след. строке обязательно после $Menu[1] обязательно должно быть $Menu[2], да?

Byte: Строковые индексы работают по-другому - их значение не вычисляется (можно было написать не '1','2','3', а например 'z','b','u').

Domik12: понятно. спасибо. а зачем тогда вообще в строковых индекасах эти '1','2','3' или 'z','b','u' ? если нумерация роли не играет...

Byte: В твоём случае важно, чтобы эти строки были разными :)

Domik12: Byte, у меня опять вопрос: использую код $Menu['0']='перейти к лок1:2-0' if loc3=1: $Menu['1']='перейти к лок2:3-0' end If loc4=1: $Menu['2']='перейти к лок3:4-0' end при переходе на локакацию 2-0 идет присвоение переменной loc3=1 но если на этой же локации попытаться опять открыть меню, то пункт там только один - первый. так же при попадании в локацию 3-0 - там есть присвоение loc4=1, но опять пункт меню только один. Пункты в меню добавляются, только если из локации, где произошло присвоение переменной идет переход в начальную локацию, где описывается принцип работы меню. Я подумал, что просто при заходе в локацию с описанием создается меню с условиями, которые там присутствуют. И чтобы создалось новое меню - нужно опять зайти на туже локацию с описанием меню . Я прав? И если да - то можно ли реализовать изменяющееся меню без возврата на локацию с описанием? может как то через GOSUB или как то по доугому?

Byte: Domik12, чтобы сформировалось новое меню, интерпретатор должен выполнить этот же код. Да, можно создать отдельную локацию с описанием меню: [pre2] $Menu['0']='перейти к лок1:2-0' if loc3=1: $Menu['1']='перейти к лок2:3-0' end If loc4=1: $Menu['2']='перейти к лок3:4-0' end menu '$Menu'[/pre2] и когда нужно показать меню, делать просто gs 'имя локации с меню'

Domik12: Byte, спасибо, работает! Я вас вообще не сильно отвлекаю со своими вопросами по мелочам?

трибуше: люди плиз помогите .... Сделал я меню для вищей по бразцу(нажимаеш на предмет и там поевляется 3 клавишу использовать,осмотреть выкинуть) так вот плиз скажите как сделать так чтобы когда нажимаеш "использовать"(где либо)поивилась новая лакация или новый предмет в инвентаре А?если можно то поподробнее обьесните пожалуста(не смейтесь если вапрос глупый просто я навечек)

Byte: трибуше не нужно постить в несколько тем. когда прописываешь пункты меню, строчка разделена двоеточиями. н-р "текст:локация". так вот на локации "локация" нужно написать либо gt 'куда перейти' (для смены локации), либо addobj 'имя предмета' (чтобы добавить предмет).

трибуше: спосибо но ты не ответил на мой вопрос как имено при нажатии клавижи испоьзовать....(или чевото я непонял..) ты не могбы показать на примери....

Byte: трибуше а можно проверять текст поста хотя бы в ворде? [pre2] #test $menu[0]='добавить предмет:object' $menu[1]='перейти:go' menu 'menu' -- #loc 'новая локация' -- #object addobj 'предмет' -- #go gt 'loc' --[/pre2]

трибуше: все прописал но ошибок повыползала .......... вот залил плиз посмотри в чем ошибка хочу чтобы ной предмет поивился .... http://depositfiles.com/files/34865gr1s

Byte: Посмотреть не могу :) Импортируй как TXT2GAM файл то, что я писал выше.

трибуше: Както вот так ... #Начало $COUNTER='Counter' $Menu[0]='Осмотреть:look' $Menu[1]='Использовать:use' $Menu[2]='Выбросить:del' add obj 'камень' #Next #test $menu[0]='камень:object' $menu[1]='перейти:go' menu 'menu' -- #loc 'трибуше' -- #object addobj 'карандаш' -- #go gt 'loc' -- (хател чтобы одновремено и локация поивилась(трибуше) и вещь(карандаш) #Counter if $selobj='камень':menu 'Menu' unselect #look 'Камень как камень. Ничего особенного.' #use unselect & ! xgoto 'Next' #del del obj 'Камень' 'Вы выбросили камень.' #трибуше

Byte: Ужас.

Nex: Какая жесть.

трибуше: Byte пишет: Ужас. А как правельно тогда?

Byte: Скопируй тот пример, что я писал в блокнот, сохрани как "пример.txt". Далее в редакторе "Игра/Импорт/Текстовый файл формата TXT2GAM...", выбери тот "пример.txt" и жми "ок".

трибуше: ух .....разобрался с поивление локации и предмета но в тваем примере не пишится что надо прописать чтобы при использование определеного предмета они поевлялись.......

Byte: напиши addobj 'предмет' & gt 'локация'

трибуше: я вот прописал такую строчку addobj 'карандаш' & gt 'трибуше' $menu[0]='добавить предмет:object' $menu[1]='перейти:go' menu 'menu' теперь почемуто неважно какой предмет я использую я всегда получаю карандаш...

трибуше: ты не могбы мне сделать пример состоящий из 3 лакаций на 1 я нахожу какой либо предмет а на другой я его реализую и у меня поевляется дополнительный предмет и локация.....(плизззззззззззз)

Nex: трибуше пока не изучишь знаки препинания, тебе противопоказано писать текстовые квесты. Или скооперируйся с Этеном, думаю вы найдёте общий "язык".

Ajenta: Nex, ну зачем так жестоко. А вдруг он напишет гениальный квест :)

Nex: Ajenta спорим?

elmortem: кароч аспмари берёштс чуку слокаий и надоп предмнет дов вляешь и потом впроверяш и если оно то двобавляиш свё будент раьяботадть P.S. Уфф... Как же это сложно, так печатать... ^___^

Aleks Versus: Есть веселее вопрос. Нам дано: предмет, меню, локация с именем, скажем, "использование". При выборе предмета происходит выпадание меню, все отлично, при выборе пункта меню переход на локацию, где происходит обработка. Можно ли как то сделать, чтобы при обращении к этой локации как условие выполнения действия проверялось значение самого пункта меню? То есть, скажем, если в меню я выбрал "перейти на локацию 1" то в локации "исользование" проверяется является ли выбранное действие "перейти на локацию 1" и выполнение операторов. Может есть переменная, хранящая значение выбранного пункта меню?

Nex: Aleks Versus сделай по локации на каждый элемент меню, в каждой из них установи переменную и сделай переход на общую локацию.

Aleks Versus: Как раз этого-то я и хотел избежать. Создания кучи локаций на каждый элемент меню. Дико создавать десяток локаций с одной строкой кода. Ну что ж. Придется кое-что кое-где слегка подправить...

Ajenta: Aleks Versus есть вариант проверять через аргумент на локации, которая вызывается из меню - перейти_на_локацию_1. В args, при переходе на локацию, хранится номер выбранного пункта меню. $основное_меню[args -1] - будет выдавать тебе выбранный пункт меню, то есть строку всю целиком, вроде 'выбрать:перейти_на_локацию_1' - можешь посравнивать на этой основе. Только учти, на всех других локациях этот самый аргс будет равен нулю. Я так понимаю, ты просто обработку всех пунктов меню хочешь сделать на одной локации?



полная версия страницы