diller110
Добрая душа
- Сообщения
- 353
- Реакции
- 278
Здравствуйте, помогите пожалуйста с кодом, а именно концепцией решения проблемы.
Плагин выдает оружие при вводе команды, оружие выбирается рандомно, но не имеет ограничения за раунд.
Набросок плагина вот:
Для ограничения использования комманды я создал глобальную переменную g_Drop = 1, которая уменьшается на 1 при использовании команды и увеличивается на 1 при смерти.
Но поскольку переменная глобальная и не привязана ни к чему, при использовании команды одним игроком, она, видимо, уменьшается и препятствует использованию другими игроками. На деле команда вообще никогда не работает, поскольку не выполняется условие g_Drop == 1.
Дайте совет, как разделить переменную для каждого игрока(полный ноль на самом деле в этом), и прочие советы по реализации плагина. Заранее благодарю.
Плагин выдает оружие при вводе команды, оружие выбирается рандомно, но не имеет ограничения за раунд.
Набросок плагина вот:
public Action:Command_DropJoke(client, args)
{
if (IsPlayerAlive(client)) {
if (g_Drop == 1) {
new String:DropWinner[MAX_NAME_LENGTH];
GetClientName(client, DropWinner, sizeof(DropWinner));
Client_RemoveAllWeapons(client);
Client_SetMaxSpeed(client, 400.0);
new DropRandom = GetRandomInt(0, 35);
GivePlayerItem(client, Weapon_names[DropRandom]);
CGOPrintToChatAll("%s {GRAY}выйграл %s! Попробуй и ты: !drop", DropWinner, Weapon_names[DropRandom]);
g_Drop--;
} else {
CGOPrintToChat(client, "{GRAY}Вы уже использовали {LIGHTOLIVE}!drop{GRAY} в этом раунде.");
}
} else {
CGOPrintToChat(client, "{GRAY}Вы не можете использовать {LIGHTOLIVE}!drop{GRAY}, если вы мертвы или в спектрах.");
}
return Plugin_Handled;
}
{
if (IsPlayerAlive(client)) {
if (g_Drop == 1) {
new String:DropWinner[MAX_NAME_LENGTH];
GetClientName(client, DropWinner, sizeof(DropWinner));
Client_RemoveAllWeapons(client);
Client_SetMaxSpeed(client, 400.0);
new DropRandom = GetRandomInt(0, 35);
GivePlayerItem(client, Weapon_names[DropRandom]);
CGOPrintToChatAll("%s {GRAY}выйграл %s! Попробуй и ты: !drop", DropWinner, Weapon_names[DropRandom]);
g_Drop--;
} else {
CGOPrintToChat(client, "{GRAY}Вы уже использовали {LIGHTOLIVE}!drop{GRAY} в этом раунде.");
}
} else {
CGOPrintToChat(client, "{GRAY}Вы не можете использовать {LIGHTOLIVE}!drop{GRAY}, если вы мертвы или в спектрах.");
}
return Plugin_Handled;
}
Но поскольку переменная глобальная и не привязана ни к чему, при использовании команды одним игроком, она, видимо, уменьшается и препятствует использованию другими игроками. На деле команда вообще никогда не работает, поскольку не выполняется условие g_Drop == 1.
Дайте совет, как разделить переменную для каждого игрока(полный ноль на самом деле в этом), и прочие советы по реализации плагина. Заранее благодарю.
Вложения
Последнее редактирование: