Как сделать?
…
Nex,
А где ее искать? Единственное что приходит в голову, что я накосячил где то в верстке файла “gameAwesomium” когда выводил блок со списком действий за блок основного описания, но я не знаю как найти там ошибку.
Mxat2008,
в HTML и CSS.
Если хочешь научиться верстать, придётся научиться искать ошибки вёрстки. Чтобы исследовать блоки, часто помогает назначить им цветные границы толщиной в пиксел, либо цветом залить их фон. Тогда будет нагляднее, какой блок где находится, как соотносится с остальными, отступы и пр.
Nex,
Да, я так и делал когда изменял оригинал. И ведь расположение основных блоков в окне правильное, проблема только в позиционировании элементов внутри этих блоков. :( Ладно, завтра буду думать и даже может что и надумаю.
А можно сделать “прыжок” (имею ввиду оператор jump), но такой, чтобы он мог выйти за пределы локации?
RomaDova:
А можно сделать “прыжок” (имею ввиду оператор jump), но такой, чтобы он мог выйти за пределы локации?
Может это подойдёт?
!#текущая локация
gosub 'другая локация', 'метка'
!#другая локация
if $args[0]!'': jump $args[0]
! ...много-много кода
:метка
! ...много-много кода
Ты exit забыл
KOLANICH,
ничего я не забыл. exit может и не понадобится. Я предпочитаю вместо exit ставить jump на метку в конце локации.
Простите, друзья, нет сил и времени прочесть 220+ страниц. Подскажите, как с помощью регекса разбить строку, неизвестно из скольки слов (может одно, может - шесть) на слова. Мне нужен именно шаблон регекса. А то сейчас приходится тоже самое делать с использованием цикла. Спасибо.
P.S. Кстати, зашел на http://regex101.com/ нашел подходящий регекс \b(\w+). Но он работает с модификатором g (global). Как в qgen его использовать я не понял.
Алекс, приведи, пожалуйста ещё пару примеров, как ты работаешь со своей базой данных объектов, ну типа, объект находится в локации и ГГ берёт его в руки, или объект перемещается из одной лок в другую. Я это сейчас делаю так:
$inv['ключ'] = 'гостиная'
#Когда ГГ берёт объект, происходит так:
$inv['ключ'] = 'руки'
Спасибо.
Aleks Versus:
Jolly Roger:
пытаюсь сделать что-то вроде сундука, чтоб туда положить, а потом забрать. Или передать одному объекту свойства другого,
Вот про это я и говорю. По ссылке в предыдущем сообщении можно посмотреть мои наработки в этом направлении. В грубом виде я уже показывал тебе где-то выше, как может выглядеть база (таблица) объектов, но идентификация в той базе была, прямо скажем, ущербная. Лучше всего использовать отдельный массив, куда помещается уникальный идентификатор на каждый объект.
Spoiler
В двух словах, как “помещать” один объект в другой: У каждого объекта есть идентификатор, т.е. помимо
$object_name[N]='Апельсины' $object_type[N]='еда, ингредиент' object_weight[N]=35 object_kolvo[N]=5 ...и т.д.должен быть ещё массив
$object_id[N]='bErTui'который хранит уникальные идентификаторы объектов. У меня идентификаторы генерируются случайным образом каждый раз, когда создаётся новый объект. Не менее восьми символов (букв и цифр) - и вероятность совпадения двух идентификаторов близка к нулю. И есть ещё один массив:
$object_position[N]='Crkfldl'В этот массив помещается идентификатор того объекта, в котором хранится текущий объект.
Пример для объектов Склад и Апельсины:$object_name[N]='Апельсины' $object_type[N]='еда, ингредиент' object_weight[N]=35 object_kolvo[N]=5 $object_id[N]='Food:bErTui' $object_position[N]='Chest:Crkfldl' $object_name[M]='Склад' $object_type[M]='хранилище, сундук' object_weight[M]=0 object_kolvo[M]=0 $object_id[M]='Chest:Crkfldl' $object_position[M]=''Основная сложность состоит в том, чтобы научить игру работать с этой базой. Но зато когда всё делано, тебе уже не нужно волноваться и запоминать переменные, отвечающие за одно хранилище, за другое, какие в инвентаре, какие для предметов, какие для облаков.
Есть недостаток у подобных “упрощений” - приходится долго и упорно работать над кодом.
NaaMan:
Простите, друзья, нет сил и времени прочесть 220+ страниц. Подскажите, как с помощью регекса разбить строку, неизвестно из скольки слов (может одно, может - шесть) на слова. Мне нужен именно шаблон регекса. А то сейчас приходится тоже самое делать с использованием цикла. Спасибо.
P.S. Кстати, зашел на http://regex101.com/ нашел подходящий регекс \b(\w+). Но он работает с модификатором g (global). Как в qgen его использовать я не понял.
В qsp нет функций, работающих с модификатором g, т.к. функции возвращают одно значение. Циклом всё равно придется пользоваться.
NaaMan,
у меня всё завязано на объектах. Комната (локация) - тоже объект. У неё есть свой идентификатор, своя “строка” в таблице данных. Да. То, что ты написал приблизительно похоже. Изначально (вру, конечно не изначально а по мере необходимости) в игре создаются все три объекта:
!ключ
$object_name[0]='Ключ'
$object_id[0]='hGtRfS45'
$object_type[0]='key;'
object_weight[0]=1
object_kolvo[0]=1
$object_position[0]=''
!рука
$object_name[1]='Правая рука'
$object_id[1]='сМуAs34g'
$object_type[1]='bodypart;'
object_weight[1]=0
object_kolvo[1]=0
$object_position[1]=''
!комната
$object_name[2]='Запертая комната'
$object_id[2]='roomIDzk001'
$object_type[2]='room;'
object_weight[2]=0
object_kolvo[2]=0
$object_position[2]=''
Чтобы поместить объект “Ключ” на локации, в $object_position[0] заносится идентификатор локации.
$object_position[0]='roomIDzk001'
Чтобы поместить “Ключ” в руку, в $object_position[0] заносится идентификатор нужной руки.
$object_position[0]='сМуAs34g'
Приведённая выше таблица - гипотетическая. На деле у меня нет такого количества колонок. Все объекты строго типизированы и для каждого типа объекта написана своя как-бы программа-обработчик (назовём это “процедура”). При посещении локации, например, автоматически вызывается процедура, которая выводит список сброшенных на локации предметов в виде действий. Соответственно на каждое типово действие с любым объектом пишется своя процедура: одевание, поедание, чтение и пр.
NaaMan:
Подскажите, как с помощью регекса разбить строку, неизвестно из скольки слов (может одно, может - шесть) на слова.
Думаю, QSP не может обойтись без цикла, хотя мне не совсем ясно, что ты имеешь ввиду.
Похоже, NaaMan пытается парсер сделать.
Nex:
Похоже, NaaMan пытается парсер сделать.
Ну, что-то типа того. Вот, к примеру, оцени: ##text## Это я для своего сына (11 лет) накатал за неделю.
Алекс, а такой вопрос: у разных объектов - разные свойства. Дверь можно открыть, зеркало - разбить. Если попытаться применить “разбить” к “двери”, то ничего не выйдет. Как прописать такие свойства, если можно?
И: можно ли глянуть на какой-нибудь код твоей игры, чтобы попытаться разобраться?