kepay
Участник
- Сообщения
- 20
- Реакции
- 2
Попытался написать простой плагин, он получилось, как получилось. Плагин должен дать игроку набившему больше все фрагов в прошлом раунде бонусы, а именно hp, броню, гранаты, ак, мк и деньги. От выдает бонусы всем кто сделал хотя бы один фраг
Так, для справки, плагин, из интернета я дописал под свои нужды
PHP:
#include <sourcemod>
#include <sdktools>
#include <cstrike>
new players_key[MAXPLAYERS+1];
public OnPluginStart()
{
HookEvent("round_start", roundStart);
HookEvent("player_death", player_death);
}
public Action:roundStart(Handle:event, const String:name[], bool:dontBroadcast)
{
PrintToChatAll("Топ Фрагеры получают статус ПРОФИ на раунд.");
PrintToChatAll("ПРОФИ получают 110hp, набор гранат, m4a1, ak47 и 8 000$");
for ( new client = 1; client <= MaxClients+1; client++){
//if (!IsPlayerGenericAdmin(client)){
if (IsValidClient(client, true)){
new key = false;
for (new i = 1 ; i <= MaxClients+1 ; i++) {
if (players_key[i] <= players_key[client]) {
if (players_key[client] != 0) key = true;
} else key = false;
}
//PrintToServer("client: %s", " " + client);
//if (IsClientInGame(client)) PrintToChatAll("%N <index = %d>", GetClientUserId(client), GetClientUserId(client));
if (key) {
decl String:nik[MAX_NAME_LENGTH];
GetClientName(client, nik, MAX_NAME_LENGTH);
//PrintToChatAll("nick = %s", nik);
PrintToChatAll("ПРОФИ в этом раунде %s", nik);
new team = GetClientTeam(client);
SetEntProp(client, Prop_Send, "m_ArmorValue", 110, 4);
SetEntProp(client, Prop_Send, "m_bHasHelmet", 1);
GivePlayerItem(client, "weapon_flashbang");
GivePlayerItem(client, "weapon_flashbang");
GivePlayerItem(client, "weapon_hegrenade");
GivePlayerItem(client, "weapon_smokegrenade");
if (GetTeamScore(CS_TEAM_T)+GetTeamScore(CS_TEAM_CT) > 1){
//decl CurrentMoney;
//CurrentMoney = GetEntProp(client, Prop_Send, "m_iAccount");
SetEntProp(client, Prop_Send, "m_iAccount", 8000);
}
if(team == CS_TEAM_CT)
{
GivePlayerItem(client, "item_defuser");
GivePlayerItem(client, "weapon_m4a1");
GivePlayerItem(client, "weapon_ak47");
GivePlayerItem(client, "weapon_incgrenade");
}
if(team == CS_TEAM_T)
{
GivePlayerItem(client, "weapon_m4a1");
GivePlayerItem(client, "weapon_ak47");
GivePlayerItem(client, "weapon_molotov");
}
}
}
//}
}
for (new client = 1; client <= MaxClients+1; client++){
players_key[client] = 0;
}
}
public player_death(Handle:event, const String:name[], bool:dontBroadcast)
{
new client = GetClientOfUserId(GetEventInt(event, "attacker"));
if (client > 0 && GetClientTeam(client) != GetClientTeam(GetClientOfUserId(GetEventInt(event, "userid"))))
{
players_key[client] += 1;
}
}
bool:IsPlayerGenericAdmin(client)
{
return CheckCommandAccess(client, "generic_admin", ADMFLAG_GENERIC, false);
}
bool:IsValidClient(client, bool:alive = false)
{
return (client >= 1 && client <= MaxClients && IsClientConnected(client) && IsClientInGame(client) && (alive == false || IsPlayerAlive(client)));
}
Так, для справки, плагин, из интернета я дописал под свои нужды