RU 📌 Pinned

Как сделать?

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

Aleks Versus Moderator 26.02.2022 18:35 (3 years ago)

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

# print
$args[0] = $args[0] & ! текст, который нужно выводить
args[1]=args[1] & ! сколько раз
args[2]=0
:mark
*p $args[0] & wait 20
args[2]+=1
if args[2]<args[1]:jump'mark'
--- print ---

Затем просто в нужно месте вызываешь эту функцию:

gosub 'print','.',10

UPD^ Была ошибка в коде. Поправил.

Привет всем! Столкнулся с проблемой. Не знаю как сделать переход на неизвестную локацию к известному нпс. Например маг телепортируется туда где находится его друг….

Топор,
Создаёшь новую переменную типа $ЛокацияНПС
Так или иначе присваиваешь этой переменной название нужной локации при неком условии.
Например, если этот НПС оказался на локации под названием “Страшный Лес” - пишешь так:

$ЛокацияНПС="Страшный Лес"

А дальше через ACT или как угодно:

GT $ЛокацияНПС

P.S. Есть полезная функция в QSP в этой связи - $Curloc. Возвращает название текущей локации. Но это может использовать так:

If $Curloc="Страшный Лес"

А как понять оказался нпс на этой локации или на другой?

Aleks Versus Moderator 09.03.2022 09:58 (3 years ago)

Топор,
так вот это ты сам и программируешь с помощью переменной. Вот как сейчас ты прописываешь, где у тебя находится NPC? Просто текстом?

Топор,
На вскидку:

Spoiler

Допустим, друг мага находится в своей Башне из слоновой кости:

$Place.mageFriend= "ivoryTower"

Тогда, чтобы маг мог к нему телепортироваться, делаем финт ушами:

act 'Телепортироваться к другу':
  gt $Place.mageFriend
end

А как понять оказался нпс на этой локации или на другой?

Легко, тебе ув. Mushinia уже даже показал:

if $curLoc = $Place.mageFriend:
  *PL 'Я оказался в метре от моего закадычного товарища, но произошёл конфуз. В это благоприятное время он решил отведать уборную...'
else
  *PL 'Я оказался неизвестно где и что-то своего друга не наблюдаю, а вот рычащую гончую очень даже осязаю!'
end
Дамир Белялов #654 17.03.2022 16:26 (3 years ago)

Я заметил узкое окошко в Qgen - называется оно “Базовое действие”. Что это такое и с чем его едят?

Дамир Белялов,
Может быть видел в некоторых проектах, вкладку действия со списком кнопок, которые можно нажать. Базовые действия позволяют запрограммировать то, что произойдет по нажатию. Так же можно работать с ними через поле “Выполнить при посещении”. http://wiki.qsp.su/help:acts

Настоятельно рекомендую внимательно изучать документацию. Она очень небольшая. Так же есть прекрасные видео уроки от Aleks Versus.

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

P.S.
Это лично мое мнение.

Подскажите пожалуйста!
Взял календарь из “Календарь по методу счёта Юлианских дней”
хочу сделать условия по временни, но не знаю что писать после “if”, чтобы ограничить действие по дням или часам
пример:
if day=Суббота, Воскресенье:
*pl “Сегодня выходной”
delact “Работать”
else day=Понедельник Вторник Среда Четверг Пятница :
act “Работать”:
деньги=деньги+100
goto “Работа”
end
end

if hour<7 and hour>21:
*pl “шахта закрыта”
end

Я только начал изучать qsp((
Спасибо

пробовал
if $weekday =‘Пятница’ or $weekday =‘Суббота’:
*pl “Сегодня выходной”
delact “Работать”
end
не работает


if weekday =5 and weekday =6:
*pl “Сегодня выходной”
delact “Работать”
elseif weekday =1 and weekday =2 and weekday =3 and weekday =4:
act “Работать”:
деньги=деньги+100
goto “Работа”
end
end
тоже что-то не так(


if weekday =6 or weekday =7:
*pl “Сегодня выходной”
delact “Работать”
elseif weekday =1 or weekday =2 or weekday =3 or weekday =4 or weekday =5:
act “Работать”:
деньги=деньги+100
goto “Работа”
end
end
Вроде рабоатет)
осталось с часами разобратся)

Vops, не смотрел как работает тот календарь. Но лучше уж так записывай.

Spoiler
IF weekday <= 5:
    act "Работать":
        деньги=деньги+100   
        goto "Работа"
    end

ELSE:
    *pl "Сегодня выходной"
    delact "Работать"
end

Если значение weekday может быть меньше или равно 0, то просто немного измени условие.

Svartberg,
Спасибо, тоже работает

Привет я только-только начала изучать QSP и мало пока что понимаю. Сейчас прохожу учебник от NEX. Сейчас уже на 7 уроке.
Итак, то о чём я хочу спросить наверное мелочь, но как сделать, чтобы строка “вы взяли ключ” появлялась в окне основного описания, а не дополнительного?

IF Ключ = 0:
  'На полу вы видите небольшой ключ.'
  ACT 'Взять ключ':
    Ключ = 1
    ADDOBJ 'Ключ'
    PL 'Вы взяли ключ.'
    GOTO $CURLOC
  END
END

ShadowX2, все довольно просто:

p/pl - выводят описание в окно дополнительного описания;
*p/*pl - в окно основного описания.

Так же я настоятельно рекомендую изучить подробный и замечательный курс от Aleks Versus. Вы сможете найти их как в группе ВК так и на YouTube.

Группа QSP ВК: vk.com/ qsplayer
Канал Алекса: youtube.com/ channel/ UCwX8RW2B9yTUFdlivtCGAgA

Не забывайте пользоваться wiki проекта, его недавно обновили и можно найти всю необходимую информацию. Однако, если что-то не получается, не стесняйтесь? сразу спрашивать.

Так же рекомендую присоединиться к каналу в Discord. Там, иногда, отвечают чуть быстрее.

Log in or Register to post comments.