Предисловие
В этом уроке, мы создадим продавца, который будет продавать ракетницу за 10 монет.
Но, перед началом, создадим монетку в DECORATE.
Создаем монетку
Скачайте спрайты монетки на MEGA. Добавьте их к себе в wad, не забывайте про маркеры S_START и S_END.
Затем, перепишите данный код к себе в DECORATE:
actor myCoin : Coin 10101
{
+floatbob
states
{
spawn:
COIN ABCDEFGHIJ 3
loop
}
}
Большая часть кода понятна тем, кто читал предыдущие уроки (DECORATE. Cоздание декораций(1).).
Наша монетка наследуется от класса Coin:
actor myCoin : Coin 10101
Coin — это класс монетки из Strife. Я наследуюсь от него, потому что так проще, вместо того чтобы писать код монетки, можно изменить готовый код под себя, для этого и нужно наследование. Код актора Coin, доступен на вики.
Теперь, вы можете расставлять монетки по карте. Перейдем к созданию продавца.
Создаем продавца.
Перепишите следующий код к себе в DIALOGUE:
conversation
{
actor = "Revenant";
page
{
name = "Merchant";
dialog = "What do you want";
choice
{
text = "A Rocket Launcher";
YesMessage = "Here you rocket launcher";
GiveItem = "RocketLauncher";
Cost
{
item = "myCoin";
amount = 10;
}
nomessage = "You dont have 10 coins";
}
}
В Dialogue есть способ запросить цену за вариант ответа (блок choice). Это делается при помощи блока cost.
Cost
{
item = "myCoin";
amount = 10;
}
- item — указывает предмет, который заберут (наши монеты).
- amount — указывает количество этого предмета.
Если у игрока, меньше 10 монет, то выводится сообщение nomessage.
А, если у игрока больше 10 монет, то выводится сообщение YesMessage, и в обмен на 10 монет — выдается ракетница.
YesMessage = "Here you rocket launcher";
GiveItem = "RocketLauncher";
- YesMessage — указывает сообщение
- GiveItem — указывает предмет, который выдается игроку.
С кодом разобрались, время тестить.