Как сделать?
…
кто подскажет как в такой системе боя
прикрутить другие способы атаки, в т.ч. и именные. Т.е. есть у меня маг (при выборе персонажа стоит Маг =1(я это условие использую для изображений и вариантов диалогов)) и у него есть огненный шар. Понятно, что у воина его быть не должно. Как заставить что бы в бою в игре за мага было действие огненный шар, а у война, к примеру, сильный удар.
Драккан,
IF тип_бойца = 1:
act 'Огненный шар':
....
end
ELSE
act 'Сильный удар':
....
end
END
спасибо.
Еще один вопрос, как сделать проигрыш при этой же системе боя, если выносливость упала до нуля.
Spoiler
if hp<=0:
‘Вас убил <<$имя_врага>>.’
act ‘Конец’:gt ‘поражение_свалка_крыса’
if stam<=0:
‘Вы упали без сознания и вас загрызли.’
act ‘Конец’:gt ‘поражение_свалка_крыса’
else
act ‘Атаковать’:
этот вариант не пашет
Ни одного end-a, вот и не пашет.
Драккан,
IF hp < 0:
'Вас убил <<$имя_врага>>.'
ACT 'Конец':GT 'поражение_свалка_крыса'
IF stam < 0:
'Вы упали без сознания и вас загрызли.'
ACT 'Конец':GT 'поражение_свалка_крыса'
ELSE
ACT 'Атаковать':
END
END
Надеюсь, END’ы в других частях кода расставлены… :D
Oliver:
Надеюсь, END’ы в других частях кода расставлены… big_smile
конечно, без IF stam < 0:
‘Вы упали без сознания и вас загрызли.’
ACT ‘Конец’:GT ‘поражение_свалка_крыса’ всё прекрасно работало. Просто непривычно видеть как при мертвецкой усталости еще и мечем махают.
Oliver:
IF hp < 0:
‘Вас убил <<$имя_врага>>.’
ACT ‘Конец’:GT ‘поражение_свалка_крыса’
IF stam < 0:
‘Вы упали без сознания и вас загрызли.’
ACT ‘Конец’:GT ‘поражение_свалка_крыса’
ELSE
ACT ‘Атаковать’:
END
END
к сожалению, код не работает, пропадает действие “атаковать”, остается лишь “сильный удар”. пришлось сделать так
Spoiler
$ONNEWLOC = ‘ONNEWLOC’
IF (stam < 10) AND (уснул= 0):
уснул = 1
GOTO ‘поражение’
END
можно как нибудь сделать, что бы вот так засыпать только на улице? А в бою выносливость опускалась до 0 и персонаж умирал, игнорируя приведенный мною пример.
IF hp < 0:
'Вас убил <<$имя_врага>>.'
ACT 'Конец':GT 'поражение_свалка_крыса'
END
IF stam < 0:
'Вы упали без сознания и вас загрызли.'
ACT 'Конец':GT 'поражение_свалка_крыса'
ELSE
ACT 'Атаковать':
...код атаки...
END
END
Подскажите пжл. Имеется 4 разных числовых переменных, необходимо определить наибольшую по значению и в зависимости от того, какая переменная будет бОльшей, совершить действие.
Белый Шарик,
! где-то в локациях переменные приняли значения
variableA = 1
variableB = 2
variableC = 3
variableD = 4
!Теперь работаем с ними
variables[] = variableA
variables[] = variableB
variables[] = variableC
variables[] = variableD
! определяем наибольшее значение
choise = MAX('variables')
! определяем имя переменной с наибольшим значением
choise = ARRPOS('variables', choise)
if choise = 0:
$choise = 'variableA'
elseif choise = 1:
$choise = 'variableB'
elseif choise = 2:
$choise = 'variableC'
else
$choise = 'variableD'
end
*nl 'Наибольшее значение имеет переменная под именем ' + $choise
Дальше с этими результатами можешь делать что угодно. Но подумай, что будет, если 2 или больше переменные будут иметь одинаковое значение и это значение будет наибольшим. Например: 1,2,5,5.
Белый Шарик,
evp всё уже объяснил, но я составил свой способ, без переписывания в новый массив. Как бы то же самое, но долгоиграющее…
Spoiler
first = rand (10)
second = rand (10)
third = rand (10)
forth = rand (10)
'<<first>>
<<second>>
<<third>>
<<forth>>'
IF MAX (first, second, third, forth) = first:
'Первый'
ELSEIF MAX (first, second, third, forth) = second:
'Второй'
ELSEIF MAX (first, second, third, forth) = third:
'Третий'
ELSEIF MAX (first, second, third, forth) = forth:
'Четвёртый'
END
act 'Again': gt $curloc
evp:
если 2 или больше переменные будут иметь одинаковое значение и это значение будет наибольшим
В предложенных примерах большим будет первое значение среди равных. Если в условии задачи возможно исполнение всех равных, то тогда можно записать условие через 4 однострочных IF’а
Премного благодарен!
И еще один вопрос. Сейчас я использую такую карту локаций
Spoiler
if $selobj = ‘Карта’:
$loc_menu[0]=‘лок1: loc_1’
$loc_menu[1]=‘лок2: loc_2’
$loc_menu[2]=‘лок3: loc_3’
$loc_menu[3]=‘лок4: loc_4’
$loc_menu[4]=‘лок5: loc_5’
$loc_menu[5]=‘лок6: loc_6’
$loc_menu[6]=‘ОБНОВИТЬ: loc_reload’
menu ‘$loc_menu’
unsel
end
и просто добавляю в инвентарь персонажа предмет “Карта” через которую он может путешествовать по локациям (это сделано для того, что бы не перегружать действиями окно действий). Но вот в чем суть вопроса: Локации открыты сразу все, а мне нужно что бы персонаж их находил и они добавлялись по мере нахождения. Нахождения можно сделать через RAND, а вот как сделать что бы они добавлялись постепенно? Или какую сделать менюшку вместо предмета “карта”?
за основу взят вот этот файл
Spoiler
qsp.su/storage/files/1388/menu_svoystva.qsp
Это вместо одного клика, для перехода надо сделать 2? Весьма спорная идея.
Лучше уж 6 иконок локаций внизу экрана, если не хотите перегружать меню действий.
ладно, сам с этим разберусь.
еще вопрос, как сделать ежедневные квесты с вероятностью их респа. Поясняю, ежедневный квест с проверкой каждый новый день в полночь. Шанс 40 процентов что квест будет не доступен, 60 % что будет доступен. За основу взято времяисчисление от сюда http://qsp.su/attachments/time.qsp