Автор | Сообщение |
|
Отправлено: 04.11.08 15:15. Заголовок: Как это сделать?
Только начал программить на QSP. Вопрос: как сделать так, чтобы после выполнения одного действия, в этой же локации становились видны другие, до этого не видимые? Хелп читал - не нашёл ответа. И ещё - можно ли с помощью оператора DYNAMIC создавать новые действия и предметы?
|
|
Профиль
Цитата
Ответить
|
Ответов - 201
, стр:
1
2
3
4
5
6
7
8
9
10
11
All
[только новые]
|
|
|
Отправлено: 08.02.10 23:38. Заголовок: Что же, не смею спор..
Что же, не смею спорить с общественностью. Но всё ещё (если общественность, разумеется, соизволит (говорю без сарказма)) надеюсь на пояснения по вопросам. От системы "заполнения" рюкзака в плане веса, похоже, откажусь. Всем спасибо, ей-богу, не думал, что вы так серьёзно отнесётесь к новичку) Ждём-с, не сочтите за наглость....
|
|
Профиль
Цитата
Ответить
|
|
| демиург
|
|
|
Отправлено: 09.02.10 00:34. Заголовок: Тааак. Во первых, ес..
Тааак. Во первых, если всё-таки не хочешь отказываться от мешка и килограмов :) Создаёшь массив типа $вещи[1] = 'нож' , вещи['нож'] = 10 первое это название вещи, второе - это сколько она весит У тебя есть количество, когда вещьмешок переполнен или недополнен, допустим туда влезает 100 кг. В самой первой локации пишешь $ONOBJADD = '!objadd' создаёшь локацию '!objadd' заводишь некую переменную, которая будет отвечать за текущую сумму в вещмешке, ну допустим тягание_тяжестей, а дальше на этой локации '!objadd' пишешь if $ARGS ='нож': тягание_тяжестей = тягание_тяжестей + вещи['нож'] if тягание_тяжестей>вес_мешка: msg 'вы не можете взять эту вещь, слишком мало места' del obj 'нож' else тягание_тяжестей = тягание_тяжестей - вещи['нож'] end end В общем примерно так, пробуй, дерзай или программера найди, если сам никак. Второй вопрос. Та же фигня На самой первой локации пишешь, в коде, конечно $ONOBJSEL = '!objsel' а на локации '!objsel' пишешь if $selobj = 'шкаф': p 'Это обычный шкаф, ничего интересного' unsel end И выведется тебе это в дополнительное описание. Так же можно выводить сколько денег в кармане у героя или склянок в его мешке. Вот. Надеюсь что-то из этого понятно. А вообще справку читай, там всё написано. Ну и примеры на сайте есть, рабочие, наука ещё не изобрела ничего проще копипаста. :)
|
|
Профиль
Цитата
Ответить
|
|
Отправлено: 09.02.10 01:05. Заголовок: Правильный код для л..
Правильный код для локации "!objadd": тягание_тяжестей = тягание_тяжестей + вещи[$ARGS] if тягание_тяжестей>вес_мешка: msg 'вы не можете взять эту вещь, слишком мало места' del obj $ARGS тягание_тяжестей = тягание_тяжестей - вещи[$ARGS] end
|
|
Профиль
Цитата
Ответить
|
|
Отправлено: 09.02.10 01:08. Заголовок: Массив с $вещи = ..
Массив с $вещи[1] = 'нож' - не нужен в данном случае. Достаточно заполнять вещи['нож']=10
|
|
Профиль
Цитата
Ответить
|
|
| демиург
|
|
|
Отправлено: 09.02.10 01:09. Заголовок: Да, спасибо :sm182..
Да, спасибо
|
|
Профиль
Цитата
Ответить
|
|
Отправлено: 09.02.10 01:19. Заголовок: 2 Сидан Не слушай т..
2 Сидан Не слушай тех кто обрезает крылья твоей фантазии. Хочешь делать хардкорный реализм - делай. Я лично куда больше уважаю именно такие игры. Так что мысленно с тобой - удачи. Ну а технологию тебе уже разъяснили. Не так уж сложно.
|
|
Профиль
Цитата
Ответить
|
|
Отправлено: 09.02.10 01:47. Заголовок: Просто любое огранич..
Просто любое ограничение (то бишь приближение к реализму в данном случае) должно на чём-то основываться, в то смысле, что это должно быть необходимо в игре (например для головоломок). Если же автору просто захотелось, чтобы больше четырех предметов нельзя было брать просто потому что потому, то это явно лишнее.
|
|
Профиль
Цитата
Ответить
|
|
| демиург
|
|
|
Отправлено: 09.02.10 02:09. Заголовок: Hertz Ну ты авторов ..
Hertz Ну ты авторов совсем какими-то ... выставляешь. :)))) Они всегда делают для того, что нужно игре. :) Даже если только они так думают. :)
|
|
Профиль
Цитата
Ответить
|
|
| moderator
|
|
|
Отправлено: 09.02.10 07:18. Заголовок: MasterSet я лично ув..
MasterSet я лично уважаю игры, которые доходят до релиза. А чрезмерные усложнения сильно уменьшают шансы.
|
|
Профиль
Цитата
Ответить
|
|
Отправлено: 09.02.10 11:03. Заголовок: Тут такая дискуссия ..
Тут такая дискуссия развернулась... Отвечаю по всем пунктам. Nex, согласен..... Потому и стараюсь втихаря, вылажу "в свет" исключительно за помощью. Дабы, в случае чего, не нести особых моральных потерь) Ajenta - огромное спасибо за пресловутую помощь, вы меня, можно сказать, вновь вдохновили на подвиги и свершения)) MasterSet - аналогично))) Hertz - разумеется, доля скепсиса всегда полезна опьяневшему от перспектив автору) Отдельное спасибо. Byte - спасибо за поправки в коде, буду разбираться) Начну, так сказать, упомянутое мною выше "переваривание"... Коли будут какие вопросы по данному вопросу (простите за тавтологию), обращусь, не обессудьте) И ещё раз выскажу свою главную мысль - не ожидал, что вокруг никому не нужного новичка будут так хлопотать... О_о На такую помощь и поддержку даже не рассчитывал. Всем искреннейшая благодарность. Ни на каких форумах ещё не встречал такой отдачи, однако...
|
|
Профиль
Цитата
Ответить
|
|
Отправлено: 09.02.10 11:25. Заголовок: Итак, вопрос номер....
Итак, вопрос номер... какой он там? Вот ведь бестолочь. Так вот. Плейер грешит на данную строку: $вещи[1] = 'нож' , вещи [нож] = 50 - обидными словами про "ошибку синтаксиса". Господа знающие, я по причине принадлежности к классу "незнающих" тут ничего не нашёл. Подскажите, что не так? Вопрос 2. Многоуважаемая Adjenta писала: цитата: | ...заводишь некую переменную, которая будет отвечать за текущую сумму в вещмешке, ну допустим тягание_тяжестей, а дальше... |
| Внимание, вопрос. Есть какая-то разница от размещения этой переменной по локациям? Сидит она, вроде бы, на самой первой. Если то, что я написал, вообще является переменной...
|
|
Профиль
Цитата
Ответить
|
|
|
| демиург
|
|
|
Отправлено: 09.02.10 12:12. Заголовок: Да, Байт поправил же..
Да, Байт поправил же вещи ['нож'] = 50 - вот так не будет ругаться то есть надо писать $вещи[1] = 'нож' вещи ['нож'] = 50 А по второму вопросу: "Заводишь" - это слово означает определяешь. Её, эту переменную, можно нигде не прописывать кроме как в коде, потому что она по умолчанию нулём инициализируется, то есть просто сразу используешь и всё. А к новичкам здесь всегда отношение доброжелательное, если они сходу не начинают делать мега-супер-пупер-рпг :)))
|
|
Профиль
Цитата
Ответить
|
|
Отправлено: 09.02.10 12:46. Заголовок: ОФФТОП 2 Nex Есть ..
ОФФТОП 2 Nex Есть мнение, что до релиза игры не доводятся отнюдь не по причине сложности задумки, а исключительно по раздолбайству авторов. Забить можно даже на самую простую игру. Вот человеку видишь сложно. Но он не забил, а упорно полез советоваться. Надо его морально поддержать, а не говорить ему, что он со сложным не справится и вообще делает всякую ненужную фигню. Так мы новых игр не дождемся. А те которых дождемся будут скучными и шаблонными.
|
|
Профиль
Цитата
Ответить
|
|
Отправлено: 09.02.10 13:53. Заголовок: вещи = 50 -- пробел..
|
|
Профиль
Цитата
Ответить
|
|
| moderator
|
|
|
Отправлено: 09.02.10 15:56. Заголовок: MasterSet твоя точка..
MasterSet твоя точка зрения мне понятна, потом как-нибудь отдельно обсудим ;)
|
|
Профиль
Цитата
Ответить
|
|
Отправлено: 09.02.10 21:22. Заголовок: Сидан Рейдан вот раб..
|
|
Профиль
Цитата
Ответить
|
|
Отправлено: 10.02.10 02:18. Заголовок: Нужна помощь с кодом..
Нужна помощь с кодом Допустим, у меня есть переменная a, которая принимает значение либо 0, либо 1. От этого значения зависит как будет выведен список - это будут просто названия или названия ссылки. Т.е. код примерно такой будет: цитата: | if a=0: 'название1' if a=1: '<a href=''exec:...''>название1</a>'' if a=0: 'название2' if a=1: '<a href=''exec:...''>название2</a>'' ... |
| Т.к. названия для двух случаев будут одинаковыми (разница лишь в том, будут ли они ссылками или нет) можно ли как-то это более изящно сделать? Пока писал возникла идея цитата: | <a href=''exec:if a=1: ... ''>название1</a> |
| но тогда получится, что при a=0 это всё равно будет ссылка, просто при нажатии ничего происходить не будет... к тому же я не уверен, что в href="exec: ... " нормально многострочный if и ещё несколько действий войдут... И тут же ещё одна цитата: | if a=1:'<a href=''''>' 'название1' if a=1:'</a>' |
| но это тоже дрянь, потом что если а=1, то перед и после название1 пустые строки Мне уже даже подумалось о CSS
|
|
Профиль
Цитата
Ответить
|
|
Отправлено: 10.02.10 02:28. Заголовок: usehtml=1 a=0 $nam..
usehtml=1 a=0 ! заполняем списки - названия + код $names[]='название1' & $execs[]='code1' $names[]='название2' & $execs[]='code2' $names[]='название3' & $execs[]='code3' ! этот цикл лучше вынести в отдельную локацию i=0 :loop if i < arrsize('names'): if a=0: $names[ i ] else '<a href="exec:<<$execs[ i ]>>"><<$names[ i ]>></a>' end i=i+1 jump 'loop' end
|
|
Профиль
Цитата
Ответить
|
|
Отправлено: 10.02.10 03:10. Заголовок: Byte Спасибо :sm36:..
Byte Спасибо Вот что значит программистское мышление - у меня полчаса в голове рождалось, рождалось и не родилось, а ты через 10 минут готовый код выложил. И, кстати, ты невольно угадал. Я сами названия собирался описать в массив изначально, а список выводить через gosub из отдельной локации.
|
|
Профиль
Цитата
Ответить
|
|
| демиург
|
|
|
Отправлено: 10.02.10 03:11. Заголовок: Не дрянь, кстати, пр..
Не дрянь, кстати, просто вот так if a=1: *p '<a href=''''>' end *p 'название1' if a=1: *p '</a>' end тогда пустых строк не будет
|
|
Профиль
Цитата
Ответить
|
Ответов - 201
, стр:
1
2
3
4
5
6
7
8
9
10
11
All
[только новые]
|
|