Как сделать?
…
De@th K!d,
if text!1 and text!2 and text!3:gt'loc4'
должно сработать, если нет то
if text!1:gt'loc4'
if text!2:gt'loc4'
if text!3:gt'loc4'
Конечно, свой текст и свою локацию, мне лень язык было переключать).
Возможно, лучше использовать не числовую переменную, а текстовую, тогда условия будут выглядеть так
if $text!'1'
и т.д.
Не знаю как строка ввода, а input выдает ошибку при попытке присвоить числовой переменной текстовое значение.
De@th K!d:
Спасибо за более ранние ответы)) …хоть и не получилось то, чего хотел, поэтому решил вернуться ко вводу текста)
Следующий вопрос по идее простой, но разобраться не получилось. Имеем, допустим, такой вот код:IF Текст = 1: GOTO 'Локация-1' END IF Текст = 2: GOTO 'Локация-2' END IF Текст = 3: GOTO 'Локация-3' ENDКак сделать так, чтобы при вводе любого значения переменной “Текст”, не равной 1, 2 или 3, игра переводила на “Локацию-4”? Я пробовал использовать “!” и “<>”, однако почему-то каждый раз выдаёт ошибку синтаксиса :/
Можно просто сделать так:
IF Текст = 1:
GOTO 'Локация-1'
END
IF Текст = 2:
GOTO 'Локация-2'
END
IF Текст = 3:
GOTO 'Локация-3'
END
GOTO 'Локация-4'
Получается, что если текст не равен 1/2/3, то кусп читает строку перехода на локацию-4. Если равен, то когда происходит переход на другую локацию, любой код ниже благополучно отбрасывается. Решение простое, но со вкусом.
Быстрый вопрос. Как сделать так, что при нажатии гиперссылки в тексте выполнялся какой-либо код? Я помню, что так можно сделать, но не помню как.
7H3_D31M0S,
<a href="exec:код">текст</a>
Если код многострочный то используйте dynamic.
dmvikar,
Я иногда видел в кодах игр этот “dynamic”, только вот не понимаю, как он работает и с чем его едят. Можете объяснить, пожалуйста?
7H3_D31M0S,
В текстовую переменную записываешь код
$text={
код
}
а где нужно его использовать
dynamic $text
По сути, это как использовать gs
http://wiki.qsp.su/help:dynamical
7H3_D31M0S,
и вновь предлагаю своё видео по dynamic https://www.youtube.com/watch?v=nUzEUgm1JlM
7H3_D31M0S,
Ну такое, если честно. Лучше так сделать, меньше нагрузка на ПК и код читабельнее:
if (Текст = 1):
gt 'Локация-1'
elseif (Текст = 2):
gt 'Локация-2'
elseif (Текст = 3):
gt 'Локация-3'
else
gt 'Локация-4'
end
Приветствую форумчан.
Балуюсь тут с рандомом, делаю генератор рандомных неписей в котором генерятся имя-фамилия-фото. На самого непися можно полюбоваться на отдельной локе, к которой подключен рандом. Для того чтобы он не пропал при следущей рандомизации ввел переменную, которая вырубает рандом если уже некто сгенерен. И все бы хорошо, одного-единственного сгенерить таким образом дело нетрудное, а вот как быть с несколькими? Как сделать так, чтобы не забылся первый? Может тут и просто, но чёт я никак сообразить не могу =) Нужна примерная схема для реализации подобного
greymatter,
Сделай для нпс id и все переменные, характеризующие нпс именуй типа переменная[id]. Инициализируй id в стартовой локе, id=0.
!тут код, запускающий генерацию
name=rand(0,100)
$name_npc[id]=$name[name]
!для кода выше должен быть создан массив с именами, типа $name[0]='Федор' $name[1]='Анна'
age[id]=rand(15,50)
...
!в конце генерации меняем id, чтоб не перезаписывались неписи
id+=1
Надеюсь я правильно вопрос понял.
На мой пример генерации имен можешь не обращать внимания, это для более понятности сути. Главное инициализируй id, там где он больше никогда не всплывет и меняй его в коде, для создания нового НПС
А ларчик-то просто открывался! Спасибо.
greymatter,
Собственно да, всё просто.
Инициализируешь имена:
$__name[] = 'Антон'
$__name[] = 'Денис'
$__name[] = 'Игорь'
$__name[] = 'Владислав'
$__name[] = 'Андрей'
$__name[] = 'Алексей'
$__name[] = 'Пётр'
Генерируешь NPC:
amount_npc = args[0]
index = 0
:init_array
$npc_Name[index] = $__name[rand(0, arrsize("$__name")-1)]
npc_Age[index] = rand(18, 36)
index += 1
if (index < amount_NPC): jump 'init_array'
Выводишь их, дабы проверить корректность алгоритма:
index = 0
:render_npc_list
*PL '<<$npc_Name[index]>> | <<npc_Age[index]>>'
index += 1
if (index < arrsize('$npc_Name')): jump 'render_npc_list'
Oliver,
*PL '<<$npc_Name[index]>> | <<npc_Age[index]>>'
Тут как-то странно выходит, по сути же обновляется одна строка, как тут список получить? А если индекс в выводе менять, то кроме [0] ничего не выводится. Только что проверил
greymatter,
Пожалуйста. Так же, чутка подредактировал алгоритм - теперь не будет повторяющихся имён, как и пустых ячеек массива.
npc_gen.qsp
Oliver,
Тут рандом не запоминается :) Нужно чтоб при определенных условиях сгенеренный оставался таким каким его сгенерил компьютерный бог. Но при этом генерились новые персы, которые, если к ним обратиться, добавятся во френд-лист. Соответственно не поменяются во френд-листе. Вова не станет Катей и так далее потому что переменная $npc_name поменяла свое значение. Вчера наковырял худо бедно работающее запоминание на основе кода dmvikar, попробую и сюда прикрутить