RU 📌 Pinned

Как сделать?

Dark[Ol(U23)leneri] #34 18.04.2010 22:57 6408 comments 2426982 views

Тогда вот так:

IF astraluck = 1:
    astraloot = rand(1, 25)
    IF astraloot = 13:
        mistloot = mistloot + 1
        MSG "В результате Ваших действий ..."
        IF NO OBJ "Материя мироздания":
            ADDOBJ "Материя мироздания"
        END
    END
END

Вообще MSG лучше не использовать. Это распространённая ошибка начинающих авторов.

Nex,
Спасибо за помощь :cool:
На счёт MSG приму к сведению.

Такой вопрос, товарищи.
Пишу под AeroQSP нужно чтобы при нажатии на стрелку в окне основного описания изменялось значение переменной и обновлялось собственно описание.

Spoiler
*pl '<<pSTR>>'
*pl '<<pSPD>>'
*pl '<<pPER>>'
*pl '<<pINT>>'
*pl '<a href="EXEC:pSTR = pSTR + 1"> <img src="img/Вверх.jpg"> </a>'
*pl '<a href="EXEC:pSTR = pSTR - 1"> <img src="img/Вниз.jpg"> </a>'

Пока что он выводит значения переменных, изменяет их по нажатию на стрелки вверх и вниз, но не обновляет значения в окне.
Подвох в том, что не хочется использовать ссылки на действия.

Bumbr,
Добавь в ссылки переход на эту же самую локацию (gt $curloc). Должно выглядеть примерно так:

*pl '<a href="EXEC:pSTR = pSTR + 1 & gt $curloc"> <img src="img/Вверх.jpg"> </a>' 
*pl '<a href="EXEC:pSTR = pSTR - 1 & gt $curloc"> <img src="img/Вниз.jpg"> </a>'

Нужно сделать таблицу где в первом столбце картинка 80х80 занимающая две строки, а во втором две строки с картинками 40х40

Spoiler
'<table>
<tr>
<td rowspan=2><a href="EXEC: gs $pl, $stattxt, $лицо"> <img src="<<$face>>Face<<face>>.jpg"></a></td>
<td><a href="EXEC: увел = 1 & хар = 5 & gt $curloc"> <img src="<<$int>>Влево.jpg"></a></td>
</tr>
<tr>
<td><a href="EXEC: увел = 0 & хар = 5 & gt $curloc"> <img src="<<$int>>Вправо.jpg"></a></td>
</tr>
</table>'

Приведенный код с точки зрения html вроде правильный, однако вторая картинка 40х40 переносится на следующую строку.

Aleks Versus Moderator 06.07.2013 19:12 (12 years ago)

Проверил. Всё правильно выводит, вообще-то. Напутал я тут rowspan colspan, но нет. В классическом плеере нормально отображается. Только набирает переводов строк. Поэтому лучше построенную таблицу записывать в одну строку.

В классическом плеере и у меня правильно отображается. В этом вся суть проблемы, что написано правильно, а отображается - нет. Я не могу понять чем AeroQSP отличается от классики, что таблицы коверкаются.

Еще отметил что если при помощи colspan переместить картинки 40х40 под 80х80 то отображается всё корректно.

Еще столкнулся с тему, что не могу выставить MAINDESC_X=0 и MAINDESC_Y=0. Точнее выставить могу, но отображается всё, как при MAINDESC_X=3 MAINDESC_Y=3. Причём MAINDESC_X=1 MAINDESC_Y=1 и MAINDESC_X=-1 MAINDESC_Y=-1 отображаются правильно.

Очень тяжело даётся переход на AeroQSP.

Edited at 07.07.2013 06:30 (12 years ago)

Эти переменные нельзя выставить в значение 0. Возможно, это будет исправлено в следующих версиях.

‘<table>
<tr>
<td rowspan=2><a href=“EXEC: gs $pl, $stattxt, $лицо”> <img src=“<<$face>>Face<<face>>.jpg”></a></td>
<td><a href=“EXEC: увел = 1 & хар = 5 & gt $curloc”> <img src=“<<$int>>Влево.jpg”></a></td>
</tr>
<tr>
<td><a href=“EXEC: увел = 0 & хар = 5 & gt $curloc”> <img src=“<<$int>>Вправо.jpg”></a></td>
</tr>
</table>’

Здесь проблема в том, что нужно убрать переводы строк (вариант - выводить построчно через *p).
Пробелы непосредственно перед <img> лучше убрать.
“rowspan” в AeroQSP не поддерживается (но и в классике он тоже плохо поддерживается), поддерживается только “colspan”.

Byte:

Здесь проблема в том, что нужно убрать переводы строк (вариант - выводить построчно через *p).
Пробелы непосредственно перед <img> лучше убрать.

Ну это не такая уж большая проблема.
Данный код, оформленный в функцию, убирает переводы строк из текста и пробелы (в начале и в конце каждой строки):

! Присваиваем результату функции значение — переданный текст
	$Result = $ARGS[0]
	:метка_перебор_строк
	! Ищем символ перевода строки
	ARGS[0] = strpos($Result,'\n')
	if ARGS[0]:
		! Если перевод строки найден — вырезаем его
		$Result = trim(mid($Result, 1, ARGS[0] - 1)) + trim(mid($Result, ARGS[0] + 1))
		jump 'метка_перебор_строк'
	end

У меня эта функция называется m2ts. Вызов функции, соответственно, выглядит так: $Текст=m2ts($Текст) или *NL m2ts($Текст). Если убирать пробелы не нужно, то достаточно убрать из кода все вызовы trim().

Olegus t.Gl. для этого можно использовать стандартную ф-ю REPLACE.

Byte:

Olegus t.Gl. для этого можно использовать стандартную ф-ю REPLACE.

Но с лидирующими и хвостовыми пробелами в строках она не справится.

Olegus t.Gl.:

Farfignugen:

И в итоге надо получить что бы бойцы сортировались по рейтингу и им присваивались в массив места и все это отображалось как то так.

Мне же нужно хранить данные массива в текстовом массиве и распределять эти массивы между собой по величине параметра рейтинг. Иначе я не смогу ни статистику вести бойцов, не вызывать нужные параметры.

Возможно тебе поможет модуль работы с таблицами данных. Я обновил версию, там как раз есть команда сортировки таблицы по нескольким колонкам.

Спасибо. У вас вообще отличные модули. Особенно модуль меню понравился. Удобная вещь.

Здравствуйте. Не подскажите можно ли вынести весь текст из основного .qsp файла игры в отдельный для удобства локализации.
То есть, в основном .qsp файле вместо:

‘Бла-бла-бла’
‘Тру-лу-лу’

останется только:

‘<<$s1>>’
‘<<$s2>>’

а в отдельном файле будет:

$s1 = ‘Бла-бла-бла’
$s2 = ‘Тру-лу-лу’

Насколько я знаю QSP не работает с внешними текстовыми файлами. Однако вы вынести это в отдельный QSP-файли добавить его с помощью команды ADDQST там в стартовой локации пропишите значения переменных и вызовете в основной игре.
К примеру вы можете реализовать выбор локализации в игре через выбор подключаемого qsp-файла.
К примеру через переменную $локализация. Сделать её по умолчанию ‘rus.qsp’ и добавить в стартовой локации игры
addqst $локализация & gs ‘Загрузить текст’
Загрузить текст - это будет локация в rus.qsp где вы пропишете текст для основной игры.
В главной игре можно создать локацию выбор языка а в ней - действия:

act 'Русский': KILLQST $локализация & $локализация='rus.qsp' & addqst $локализация & gs 'Загрузить текст'
act 'English': KILLQST $локализация & $локализация='eng.qsp' & addqst $локализация & gs 'Загрузить текст'
act 'Francais': KILLQST $локализация & $локализация='fra.qsp' & addqst $локализация & gs 'Загрузить текст'

и т.п. Но можно добавить и все сразу, прописав все языки в локализация.qsp и выбирать их через локации в этом файле.

Log in or Register to post comments.