Inext
-
Postów
7 -
Dołączył
-
Ostatnia wizyta
Odpowiedzi opublikowane przez Inext
-
-
Spoiler
#include <sourcemod>
#include <sdktools>
#include <cstrike>
#include <smlib>
#include <colors>
#include <sdkhooks>
int kolejka[10] = -1;
public Plugin myinfo =
{
name = "Kolejka H&S",
author = "Inext",
description = "",
version = "",
url = "https://steamcommunity.com/id/IInextt/"
};
public void OnPluginStart()
{
RegConsoleCmd("sm_szukaj", cmd_szukaj, "Komenda na dolaczenie do drużyny szukających");
RegConsoleCmd("jointeam", JoinTeam);
HookEvent("round_end", event_round_end);
}
public Action cmd_szukaj(client, args)
{
for(int i = 0; i < 10; i++)
{
int pozycja;
pozycja = i + 1;
if(kolejka != client)
{
if(kolejka <= 0)
{
kolejka = client;
CPrintToChat(client, "{green}[H&S] {olive} Zostałeś dodany do kolejki Szukających. Jesteś na %i pozycji.", pozycja);
i = 10;
}
if(kolejka[9] > 0)
{
CPrintToChat(client, "{green}[H&S] {olive} Aktualnie kolejka do TT jest pełna.");
i = 10;
}
}
else
{
i = 10;
CPrintToChat(client, "{green}[H&S] {olive} Dołączyłeś już do kolejki. Jesteś na %i pozycji.", pozycja);
}
}
}
public Action JoinTeam(client,args)
{
new String:s_Team[3];
GetCmdArg(1, s_Team, sizeof(s_Team));
new i_Team = StringToInt(s_Team);
if(i_Team == 2)
{
CPrintToChat(client, "{green}[H&S] {olive}Dołaczenie do tej drużyny jest możliwe tylko przy pomocy komendy !szukaj");
return Plugin_Handled;
}
return Plugin_Continue;
}
public void OnMapStart()
{
for(int i = 0; i < 11; i++)
{
kolejka = -1;
}
}
public void OnClientPutInServer(client)
{
SDKHook(client, SDKHook_PreThink, Prethink);
}
public void OnClientDisconnect(int client)
{
SDKUnhook(client, SDKHook_PreThink, Prethink);
for(int i = 0; i < 10; i++)
{
if(kolejka == client)
{
kolejka = -1;
for(int x = 0; x < (10 - i); x++)
{
kolejka[i+x] = kolejka[i+1+x];
}
}
}
}
public Action Prethink(int client)
{
PokazKolejkaHud(client);
return Plugin_Continue;
}
public Action event_round_end(Handle event, const char[] name, bool dontBroadcast)
{
for (int i; i <= MAXPLAYERS; i++)
{
if(IsValidPlayer(i))
{
if(GetClientTeam(i) == 2)
{
CS_SwitchTeam(i, 3);
}
}
}
for(int i = 0; i < 10; i++)
{
if(IsValidPlayer(kolejka))
{
if(GetClientTeam(kolejka) != 2)
{
CS_SwitchTeam(kolejka, 3);
CPrintToChat(kolejka, "{green}[H&S] {olive} Zostałeś przeniesiony do TT.");
kolejka = -1;
for(int x = 0; x < (10 - i); x++)
{
kolejka[i+x] = kolejka[i+1];
}
i--;
}
else if(GetClientTeam(kolejka) == 2)
{
kolejka = -1;
for(int x = 0; x < (10 - i); x++)
{
kolejka[i+x] = kolejka[i+1+x];
}
i--;
}
}
}
if(Team_GetClientCount(2) == 0)
{
int random = GetRandomPlayer(3);
CS_SwitchTeam(random, 2);
CPrintToChat(random, "{green}[H&S] {olive} Zostałeś przeniesiony do TT.");
}
}
void PokazKolejkaHud(client)
{
char text[128];
if(kolejka[0] > 0)
{
char nickGracz[64];
GetClientName(kolejka[0], nickGracz, sizeof(nickGracz));
Format(text, sizeof(text), "Nestępny w Kolejce:\n%s", nickGracz);
}
else
{
Format(text, sizeof(text), "Następny w Kolejce:\nBrak Chętnych");
}
SetHudTextParams(0.13, 0.10, 7.0, 45, 209, 0, 255, 0, 0.25, 1.5, 0.5);
ShowHudText(client, 2, text);
}
stock GetRandomPlayer(team)
{
new clients[MaxClients+1], clientCount;
for (new i = 1; i <= MaxClients; i++)
if (IsClientInGame(i) && (GetClientTeam(i) == team))
clients[clientCount++] = i;
return (clientCount == 0) ? -1 : clients[GetRandomInt(0, clientCount-1)];
}
stock bool IsValidPlayer(client)
{
if(client >= 1 && client <= MaxClients && IsClientInGame(client) && IsClientConnected(client) && !IsFakeClient(client) && !IsClientSourceTV(client))
{
return true;
}
else
return false;
}Powinno działać dobrze.
-
@ref
-
A sortowanie w menu od największej ilości pkt do najmniejszej?
-
Witam mam problem a mianowicie potrzebuje do pluginu ,aby pobierało mi z bazy danych 10 graczy z największa liczba punktów, jest to rzecz z którą mam drobne problemy dlatego proszę o pomoc. Z góry dziękuje za odpowiedz..
-
1 godzinę temu, bobpixel napisał:
To moze ci cos pomoc
sv_teamid_overhead_always_prohibit 1
Jesli osobnik bedzie mial wlaczone +cl_show_team_equipment to jedynie ukaze mu sie nad glowa gdy bedzie bezposrednio na niego patrzyl bez zadnych scian przed nim itp.
Dzięki działa.
-
Siema. Wie ktoś może jak zablokować komendę +cl_show_team_equipment. Z góry dziękuje za pomoc.
Dodatkowy hajs za dopisek w nicku
w Problem z kodem
Opublikowano
Sama funkcja w pluginie nie wykona się jeżeli nie powiesz jej kiedy ma się wykonać.
dodaj te 3 hooki do OnPluginStart i powinno wszystko dobrze działać.