Автор | Сообщение |
|
Отправлено: 09.07.09 07:45. Заголовок: Вопросы новичка
Здравствуйте, уважаемое qsp сообщество. Есть несколько вопросов: Почему в конструкции вида if no говорил_дома: говорил_дома=1 ... else ... end может не отрабатывать else ветка? Специально окружил if следующим образом: говорил_дома if no говорил_дома: говорил_дома=1 говорил_дома ... И всё работает так, как ожидалось: при первой прогонке 0, 1; при второй 1, 1 Но код в ветке else упорно не хочет выполняться. Взываю к вашему опыту, знатоки. Второй вопрос не по коду, а, скорее, по "платформе" Как известно, при создании qsp файла qgen предлагает назначить пароль. И если пароль оставить пустым, то при последующем открытии файла пароля не спросят. Внимание, вопрос: можно ли избавить qsp файл от уже назначенного пароля? И ещё вопрос на общее понимание языка: Все объявленные переменные — глобальны, а к параметрам функции (локации) можно обратиться только по индексу, верно? Заранее благодарю за ответы.
|
|
Профиль
Цитата
Ответить
|
Новых ответов нет
[см. все]
|
|
|
| менеджер по рекламе
|
|
|
Отправлено: 09.07.09 09:57. Заголовок: WhiteWizard пишет: ..
WhiteWizard пишет: цитата: | Как известно, при создании qsp файла qgen предлагает назначить пароль. И если пароль оставить пустым, то при последующем открытии файла пароля не спросят. Внимание, вопрос: можно ли избавить qsp файл от уже назначенного пароля? |
| Просто выбрать в меню "сохранить как", он сохранит файл как новый, и заново спросит про пароль. WhiteWizard пишет: цитата: | Все объявленные переменные — глобальны, а к параметрам функции (локации) можно обратиться только по индексу, верно? |
| Переменные - глобальны, что ты имеешь в виду под обращением к параметрам? Можно передать в локацию параметры, при её вызове, это выглядит примерно так: При этом в локацию передаются аргументы: ARGS[0]=1 и $ARGS[1]='int' соответственно, сам код локации может выполнятся в зависимости от переданных аргументов. Насчёт первого примера если я правильно понял - проверка неадекватна. Если НЕ говорил дома тогда: Правильнее было бы Если не говорил дома=1 тогда: цитата: | if no говорил_дома=1: говорил_дома=1 ...... else ....... end |
| А ещё проще: знак "!" является отрицанием, "если не равно"
|
|
Профиль
Цитата
Ответить
|
|
Отправлено: 09.07.09 10:19. Заголовок: Благодарность
Спасибо ещё раз за ответы. Про аргументы я всё правильно понял. Спасибо, что подтвердили мои предположения. Вопрос был к тому, можно ли добавить мнемоники в наименование параметров (аргументов) функции. Т.е. как в PHP, например: function($name, $textColor). Оказалось, что только по индексам. А про if: думал, раз работает if var, то будет работать и if no var. По аналогии с C++ if (boolVar)/ if (!boolVar). Оказалось - не все переносы калек одинаково полезны. Что ж, будем дальше привыкать к языку.
|
|
Профиль
Цитата
Ответить
|
|
| менеджер по рекламе
|
|
|
Отправлено: 09.07.09 11:00. Заголовок: WhiteWizard : if war..
WhiteWizard : if war тоже будет криво работать, переведи в логичный язык - ты в коде пишешь - "Если переменная вар, то..." Тебе не кажется, что звучит криво? Если ты проверяешь переменную, нужно проверять её на что-то, то есть "Если переменная вар=1, то..." аргументы по сути являются массивом, числовым или строковым по желанию. Что в них передавать и как это обрабатывать - выбор за тобой.
|
|
Профиль
Цитата
Ответить
|
|
Отправлено: 09.07.09 15:06. Заголовок: Хорошо, что поставил..
Хорошо, что поставил вопрос. Появился повод МакКоннелла полистать. За своё время программирования я привык пользоваться булевыми переменными. И проверки вида if (done) вместо if (done==true) меня лаконичностью не смущают. Радует, что вышеуказанный автор также отмечает полезность булевых переменных. Другое дело, что бэйсик с подобными конструкциями, видимо, не очень дружит. Не берусь утверждать наверняка, ибо последний бэйсикообразный язык, на котором довелось программить, был qbasic. И было это лет 9 назад. А вот за qsp реализацию можно поручиться - мы в этом наглядно убедились на приведённом мной примере. Думаю, имеет смысл подправить chm help. Раздел ЧаВо, подраздел "Как проверить, был ли герой на какой-либо локации?". Грохнуть оттуда пример кода if был_здесь:[операторы] , дабы не смущало умы qsp-подованов. Но это так, на правах предложения.
|
|
Профиль
Цитата
Ответить
|
|
| менеджер по рекламе
|
|
|
Отправлено: 09.07.09 15:34. Заголовок: WhiteWizard Хм.. Не ..
WhiteWizard Хм.. Не знаю, актуально ли это. Возможно, по умолчанию проверка и идёт на "=1", я редко использую переменные как "истинно" и "ложно", обычно работаю с большим списком значений, так что всегда чётко указываю, что подразумевается под условием. В хелпе вообще много неточностей на данный момент, так что стоит спорные вопросы спрашивать либо тут, либо на канале IRC.
|
|
Профиль
Цитата
Ответить
|
|
Отправлено: 10.07.09 07:50. Заголовок: WhiteWizard, no -1 ..
WhiteWizard, no -1 это 0 no 0 это -1 То есть, при использовании "NO" в качестве булевой "ИСТИНЫ" нужно использовать -1, а не 1. Однако, QSP считает "ИСТИНОЙ" любые значения, отличные от 0. "ЛОЖЬ" - 0. Также это касается всех Basic'ов, если в них работать без типа Boolean.
|
|
Профиль
Цитата
Ответить
|
|
Отправлено: 11.07.09 22:02. Заголовок: всем доброго времени..
всем доброго времени суток, я здесь новенький:)но с куспом уже знаком...был:) раскажите вкратце, какие преимущества у последней версии плеера и движка, и есть ли смысл писать на 3.0.0?
|
|
Профиль
Цитата
Ответить
|
|
Отправлено: 11.07.09 22:07. Заголовок: На 3.0 смысла писать..
На 3.0 смысла писать нет. У 5.x преимуществ - масса. Начиная от улучшений в языке и заканчивая улучшенными мультимедиа-возможностями.
|
|
Профиль
Цитата
Ответить
|
|
Отправлено: 14.07.09 18:13. Заголовок: ну да, потестил немн..
ну да, потестил немного:)правда:)а хелп новый? у меня все детали движка времен 3.0.0. и еще: где можно найти примеры системы боя на куспе, и не просто удар-блок, а довольно разветвленный бой...? спасибо,если кто поможет!
|
|
Профиль
Цитата
Ответить
|
|
Отправлено: 14.07.09 18:48. Заголовок: Кто-то не сильно дав..
Кто-то не сильно давно писал D&D-модуль... Где-то на форуме было сообщение =)
|
|
Профиль
Цитата
Ответить
|
|
| moderator
|
|
|
Отправлено: 14.07.09 19:26. Заголовок: Клиган к чёрту систе..
Клиган к чёрту системы, напиши-ка лучше игру!
|
|
Профиль
Цитата
Ответить
|
|
|
| менеджер по рекламе
|
|
|
Отправлено: 14.07.09 21:32. Заголовок: Клиган У меня валяет..
Клиган У меня валяется пример, но я уже сам забил его делать... Там даже сейчас голову сломать можно, а ведь ещё не всё доделано) Если принципиально нужна боёвка - проще написать самому, на мой взгляд, полезно для изучения языка) Но лучше попроще что-нибудь, а то кодить замучаешься...
|
|
Профиль
Цитата
Ответить
|
|
Отправлено: 15.07.09 18:25. Заголовок: Игра-то пишется:)про..
Игра-то пишется:)просто с системой боя у меня траблы,хочется что-нибудь по настоящему классно-тактическое, на данный момент это моя основная проблема
|
|
Профиль
Цитата
Ответить
|
|
Отправлено: 20.07.09 20:25. Заголовок: 2Клиган: по ДиД я п..
2Клиган: по ДиД я пишу, у меня система боя простая - игрок и моб кидают на инициативу 20гранный кубик плюс модификатор ловкости, результаты сравниваются и видно, кто ходит первым потом тот, кто первый, кидает опять д20 плюс бонус атаки, сравнивается результат с защитой цели - и если больше, то кидается урон (опять какой-нибудь кубик) после ходит другой противник и так по кругу можно писать фразы типа "вы увернулись", "противник попал по вашему доспеху, и вы остались невредимы" и т.д. или можно сделать как в браузерных мморпг: выбираешь какую часть тела блокируешь, потом опп бьёт тебя рэндомайзом и сравнивается, угадал или нет не угадал - получил по "части тела" соответственно можно ввести навыки типа "выбрать два варианта блока", "уворотливость", "отразить удар" и т.п.
|
|
Профиль
Цитата
Ответить
|
|
| менеджер по рекламе
|
|
|
Отправлено: 21.07.09 00:31. Заголовок: Элвис БэКа-шные сист..
Элвис БэКа-шные системы не стоит юзать, на мой взгляд. Слишком они приелись... Классический AD&D плох тем, что его замучаешься еализовывать, всё не включишь, а вот где остановиться - вопрос. скилы, шмот, окружение - по идее всё должно оказывать влияние на бой, и всё должно качаться, развиваться, меняться... Очень тяжело всё это закодить, вопрос - что оставить, а чем пожертвовать.
|
|
Профиль
Цитата
Ответить
|
|
Отправлено: 21.07.09 03:41. Заголовок: Оставить как можно б..
Оставить как можно больше. Мы ведь не скованы шейдерными цепями графики. Нам ненужно ничего месяцами моделировать, анимировать и разрисовывать. Все это с лихвой компенсируется воображением. Но для фантазии нужна плодородная почва. Это не значит, что надо пахать сразу все тысячи тысяч акров намеченного поля. Действительно хорошие игры создаются годами... Да, это тяжело, но результат того стоит. И когда-нибудь на поле все взойдет удивительным лесом фантазии!
|
|
Профиль
Цитата
Ответить
|
|