@Shoko - по-правилно е да се ползва
get_players, вместо да се луупват всички id-та.
Код за потвърждение: Избери целия код
#include <amxmodx>
#include <fun>
// Все пак по някакъв начин трябва да броим рундовете - тази променлива ще ни помогне.
new g_iRound = 0;
public plugin_init()
{
// Прихващаме началото на рунда.
register_logevent("EventRoundStart", 2, "1=Round_Start");
}
public EventRoundStart()
{
// Увеличаваме променливата, която пази номера на рунда, с 1.
g_iRound++;
// Проверяваме 10тия рунд ли е.
if (g_iRound == 10)
{
// Създаваме масив, където ще бъдат запазени играчите.
// iPnum ще е броят на намерени играчи.
new iPlayers[32], iPnum;
// Запазваме всички играчи в масива. Флагът "а" в края означава, че искаме да намерим само живите играчи.
// Можеш да погледнеш останалите флагове тук - https://amxx-bg.info/forum/api/amxmodx/get_players
get_players(iPlayers, iPnum, "a");
// Завъртаме си цикъла, който обикаля играчите.
for (new i, id; i < iPnum; i++)
{
// Даваш 2 flash гранати.
give_item(id, "weapon_flashbang");
give_item(id, "weapon_flashbang");
}
}
}
Иначе, аз бих направил целия код по друг начин. Вместо даваш гранатите в началото на рунда, направо го при прераждане на играча. В този случай няма да е глобален евент и няма да има нужда от никакъв цикъл. Също така, по този начин, ако играчът се respawn-не след началото на рунда, отново ще получи гранатите, а по горния начин няма да ги получи, тъй като кодът се извиква само в началото на рунда.
Код за потвърждение: Избери целия код
#include <amxmodx>
#include <fun>
#include <hamsandwich>
// Все пак по някакъв начин трябва да броим рундовете - тази променлива ще ни помогне.
new g_iRound = 0;
public plugin_init()
{
// Прихващаме началото на рунда.
register_logevent("EventRoundStart", 2, "1=Round_Start");
// Прихващаме прераждането на играча.
RegisterHam(Ham_Spawn, "player", "OnPlayerSpawn", 1);
}
public EventRoundStart()
{
// Увеличаваме променливата, която пази номера на рунда, с 1.
g_iRound++;
}
public OnPlayerSpawn(id)
{
// Проверяваме дали играчът е жив и дали в момента се играе 10-тия рунд.
if(is_user_alive(id) && g_iRound == 10)
{
// Даваме 2 flash гранати на играча.
give_item(id, "weapon_flashbang");
give_item(id, "weapon_flashbang");
}
}