Kod:
#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <fun>
new const g_Version[] = "2.0";
new g_MinPlayers;
public plugin_init()
{
register_plugin("Takim Ilk 3 Hediye", Version 1, "Redkit");
register_logevent("roundStart", 2, "1=Round_Start");
g_MinPlayers = register_cvar("hediye_min_oyuncu", "16");
}
public roundStart()
{
HediyeVer();
}
public HediyeVer()
{
new iMaxPlayers = get_maxplayers();
new iNumPlayers = get_playersnum(0);
// Minimum oyuncu kontrolü
if (iNumPlayers < get_pcvar_num(g_MinPlayers)) return;
// Takımlara göre oyuncu ID'lerini tutacak diziler
new iPlayers_T[32], iPlayers_CT[32];
new iCount_T, iCount_CT;
for (new i = 1; i <= iMaxPlayers; i++)
{
if (!is_user_connected(i)) continue;
new CsTeams:team = cs_get_user_team(i);
if (team == CS_TEAM_T) iPlayers_T[iCount_T++] = i;
else if (team == CS_TEAM_CT) iPlayers_CT[iCount_CT++] = i;
}
// Takımları skorlarına göre sırala ve hediyeleri dağıt
SortAndReward(iPlayers_T, iCount_T);
SortAndReward(iPlayers_CT, iCount_CT);
}
SortAndReward(iPlayers[], iCount)
{
if (iCount == 0) return;
// Basit bir Bubble Sort: Fraglara göre (eşitlikte az ölüme göre) sıralama
for (new i = 0; i < iCount - 1; i++)
{
for (new j = i + 1; j < iCount; j++)
{
new iFrags1 = get_user_frags(iPlayers[i]);
new iFrags2 = get_user_frags(iPlayers[j]);
new iDeaths1 = get_user_deaths(iPlayers[i]);
new iDeaths2 = get_user_deaths(iPlayers[j]);
if (iFrags2 > iFrags1 || (iFrags2 == iFrags1 && iDeaths2 < iDeaths1))
{
new temp = iPlayers[i];
iPlayers[i] = iPlayers[j];
iPlayers[j] = temp;
}
}
}
// İlk 3 oyuncuya hediyelerini ver
for (new i = 0; i < iCount && i < 3; i++)
{
new id = iPlayers[i];
if (!is_user_alive(id)) continue;
give_item(id, "weapon_flashbang");
give_item(id, "weapon_smokegrenade");
chat_colorz(id, "!g[!tReckLesS!g] !t%d. !yolduğunuz için !gFlash !yve !gSmoke !yverilmiştir.", i + 1);
}
}
stock chat_colorz(const id, const input[], any:...)
{
static msg[191];
vformat(msg, 190, input, 3);
replace_all(msg, 190, "!g", "^4"); // Yeşil
replace_all(msg, 190, "!y", "^1"); // Sarı (Normal)
replace_all(msg, 190, "!t", "^3"); // Takım Rengi
message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, id);
write_byte(id);
write_string(msg);
message_end();
}