Онлайн-справочник по самым часто задаваемым вопросам из темы "Как сделать?" на форуме QSP.su

20.19. Как сделать выпадение случайного действия на локации?

В: Как сделать выпадение случайного действия на локации?

О:

Нужно воспользоваться "действием по условию", но включить в код и функцию `rand`. В самом простом виде это делается так:

! выбрасываем случайное число от одного до пяти
i=rand(1,5)
! в зависимости от того, какое число выпало, выводим действие
if i=1:
    act "Сплясать Джигу":
        *pl "Ноги сами пустились в пляс, голова завертелась волчком. Джигадрыгай и в профиль и в фас. Всё пучком!"
    end
elseif i=2:
    act "Вальсировать":
        *pl "Раз, два, три... Раз, два, три..."
    end
elseif i=3:
    act "Твист":
        *pl "Первый окурок давим правым ботинком, второй окурок давим левым ботинком. А теперь оба окурка давим вместе."
    end
elseif i=4:
    act "Танцевать Пого":
        "Пели песни до утра, пого танцевали..."
    end
elseif i=5:
    act "Капуэйро":
        "Вжух-вжух!.."
    end
end

Есть другой способ:

! вносим действия в массив
$i_act[0]={
    act "Сплясать Джигу":
        *pl "Ноги сами пустились в пляс, голова завертелась волчком. Джигадрыгай и в профиль и в фас. Всё пучком!"
    end
}
$i_act[1]={
    act "Вальсировать":
        *pl "Раз, два, три... Раз, два, три..."
    end
}
$i_act[2]={
    act "Твист":
        *pl "Первый окурок давим правым ботинком, второй окурок давим левым ботинком. А теперь оба окурка давим вместе."
    end
}
$i_act[3]={
    act "Танцевать Пого":
        "Пели песни до утра, пого танцевали..."
    end
}
$i_act[4]={
    act "Капуэйро":
        "Вжух-вжух!.."
    end
}
! выбрасываем случайное
dynamic $i_act[rand(0,4)]