Как сделать?
…
Самый простой способ создать тег, несуществующий в html, и давать его в названии предмета.
Например:
addobj 'яблоко<subjobj:1>'
addobj 'яблоко<subjobj:2>'
Предметы будут разными, но игрок будет воспринимать их, как абсолютно одинаковые, потому что тег будет скрываться html-рендерером. У этого способа есть ряд существенных недостатков.
Намного правильнее не зацикливаться на “хранении” предметов в окне инвентаря, ибо окно инвентаря - это всего лишь область вывода информации, место организации меню. Для предметов (и объектов игры вообще) нужно завести условную базу и хранить в ней всю информацию о предметах. Например:
$id_obj[0]='0'
$name_obj[0]='яблоко'
kolvo_obj[0]=2
cost_obj[0]=5
$id_obj[1]='1'
$name_obj[1]='яблоко'
kolvo_obj[1]=45
cost_obj[1]=2
!...
! и т.д.
У такого способа тоже есть недостатки. Самый существенный: необходимость написать функции работы с базой “добавление предмета”, “удаление предмета” и пр. Однако при должном усердии всё это выльется в очень удобную организацию рюкзака.
Окно инвентаря предназначено именно для предметов, а не “для меню и вывода информации”.
Нецелевое использование инвентаря авторами не отменяет его предназначения.
А какие недостатки у первого способа? Он выглядит самым легким (Остальные я вовсе не понял)
RomaDova:
А какие недостатки у первого способа?
Почти все они проявляются, когда разрастаются масштабы игры и требования к работе с предметами. Если одинаковых предметов не очень много (не больше десяти) ты в них даже путаться не будешь.
:/ или ты про способ Nex’а?
Nex:
Нецелевое использование инвентаря авторами не отменяет его предназначения
Я не призываю к нецелевому использованию, но термин “предмет” иной раз создаёт такую путаницу, что приходится выдумывать кучу разнообразных эпитетов, чтобы дать понять о чём идёт речь, или надеяться, что собеседник сам догадается, где какой смысл использовался. Что за предметы такие “Оружие”, “Доспехи”, “Снаряды”, “Свитки”, “Заклинания”, “Скиллы”?.. Это не предметы (не объективно предметы, вещи), это “предметы” (строчки в окне “инвентарь”).
Aleks Versus,
нет. Инвентарь предназначен для предметов. Что авторы туда запихивают это их дело.
Aleks Versus,
Я про твой первый способ. Мне в принципе не надо много предметов. Если единственная проблема - запутаться в названиях, то это не проблема.
RomaDova,
Нет, это не единственная проблема. Проблемы возникают при попытке организации многоуровневого инвентаря, при работе с предметами без участия игрока, при определении разных свойств предметов, при сбросе, поднятии и генерации предметов, и т.д. Всё это решается типизацией и простенькой таблицей данных.
Админы плиз, это моя первая тема, я не нашел где техподдержка и написал здесь, не баньте!
У меня появилась проблема я создаю действие “получить бонус” в коде пишу нужное и делакт этого действия, перехожу в другую локацию, возвращаюсь, а она вернулась!! Как мне сделат вечное удаление, в справке искал там нашел только этот код.
SneakBug8:
Админы плиз, это моя первая тема, я не нашел где техподдержка и написал здесь, не баньте!
У меня появилась проблема я создаю действие “получить бонус” в коде пишу нужное и делакт этого действия, перехожу в другую локацию, возвращаюсь, а она вернулась!! Как мне сделат вечное удаление, в справке искал там нашел только этот код.
Проблема большая: если я пишу через
if сб = 0:
act “Получить бонус!”:
…
delact “Получить бонус!”
goto $curloc
end
end
То при запуске игры через плеер он виснет.
То есть посоветуйте код “Мощного удаления” дабы это действие не возвращалось!!
Подскажие пожалуйста побыстрее а то через 4 дня я улетаю и хотелось бы там порабоать над игрой!!
См. действие по условию.
Этот вопрос есть в FAQ, как и многие другие. Заглядывай туда.
Там такой же код.
И фаг тоже перекидывает туда же
Как сделать чтобы действие не возвращалось?? Мне это нужно!!