Активный
- Тема Автор
- #1
Идея и назначение
Игрок получает задание убить определенное количество противников.
После выполнения выдается награда.
Суть реализации
1. Храним цель по убийствам и текущий прогресс.
2. В OnPlayerDeath увеличиваем прогресс.
3. При достижении цели начисляем награду и сбрасываем квест.
Реализация
Дополнительные идеи
1. Делать квесты с разными целями по фракциям.
2. Добавить сложность квестов и награды.
3. Хранить статистику выполненных квестов.
Игрок получает задание убить определенное количество противников.
После выполнения выдается награда.
Суть реализации
1. Храним цель по убийствам и текущий прогресс.
2. В OnPlayerDeath увеличиваем прогресс.
3. При достижении цели начисляем награду и сбрасываем квест.
Реализация
Код:
new QuestKillsTarget[MAX_PLAYERS];
new QuestKillsNow[MAX_PLAYERS];
CMD:startkillquest(playerid, params[])
{
new target;
if(sscanf(params, "i", target))
return SendClientMessage(playerid, -1, "Используй: /startkillquest [кол-во убийств].");
if(target <= 0)
return SendClientMessage(playerid, -1, "Цель должна быть больше нуля.");
QuestKillsTarget[playerid] = target;
QuestKillsNow[playerid] = 0;
SendClientMessage(playerid, -1, "Квест на убийства начат.");
return 1;
}
public OnPlayerDeath(playerid, killerid, reason)
{
if(killerid != INVALID_PLAYER_ID)
{
if(QuestKillsTarget[killerid] > 0)
{
QuestKillsNow[killerid]++;
if(QuestKillsNow[killerid] >= QuestKillsTarget[killerid])
{
GivePlayerMoney(killerid, 2000);
SendClientMessage(killerid, -1, "Ты выполнил квест на убийства и получил награду.");
QuestKillsTarget[killerid] = 0;
QuestKillsNow[killerid] = 0;
}
}
}
return 1;
}
Дополнительные идеи
1. Делать квесты с разными целями по фракциям.
2. Добавить сложность квестов и награды.
3. Хранить статистику выполненных квестов.