Prośba o plugin z vote alltalk
Karpaj
19.09.2011
Witam. Jeśli ktoś potrafi i ma czas oraz chęci, to prosiłbym o napisanie pluginu do Team Fortress 2 (czyli do SourceModa), który będzie po wpisaniu przez 50% osób na serwerze komendy /alltalk stworzy vote, czy gracze chcą mieć włączony czy wyłączony alltalk. Większość wygrywa.
Powodzenia
Powodzenia
Cypis'
20.09.2011
plugin już jako tak zrobiłem tylko że mi brakuje natywa jak pobrać ile jest aktualnie graczy na serwerze
@Edit
znalazłem
nie sprawdzałem czy działa więc pozostawiam to tobie czy działa a kompilować kompiluje się kod
Użytkownik Cypis' edytował ten post 20.09.2011 21:00
@Edit
znalazłem
nie sprawdzałem czy działa więc pozostawiam to tobie czy działa a kompilować kompiluje się kod
#include <sourcemod>
new bool:clientvote[MAXPLAYERS + 1];
new bool:votebylo = false;
new vote;
public Plugin:myinfo =
{
name = "Vote AllTalk",
author = "Cypis",
description = "Vote AllTalk",
version = "1.0",
url = "http://amxx.pl"
};
public OnPluginStart()
{
RegConsoleCmd("alltalk", CmdAllTalk, "Vote AllTalk"); //po pisaniu w say wyrazu zawierajacego w sobie alltalk to wywola public CmdAllTalk
}
public Action:CmdAllTalk(client, args)
{
if(!IsClientConnected(client) || !IsClientInGame(client) || IsFakeClient(client) || clientvote[client] || votebylo)
return;
clientvote[client] = true;
vote++;
if(vote >= GetClientCount()/2)
{
if(IsVoteInProgress()) //sprawdzanie czy jest jakies vote w procesie/postepie (?)
return;
new Handle:menu = CreateMenu(Handle_VoteMenu); //rejstruje handled
SetMenuTitle(menu, "Glosowanie na AllTalk:"); //dodaje tytul
AddMenuItem(menu, "on", "On - AllTalk"); //dodaje na co glosowac
AddMenuItem(menu, "off", "Off - AllTalk"); //dodaje na co glosowac
SetMenuExitButton(menu, false); //wylacza przycisk wyjdz
VoteMenuToAll(menu, 20); //pokazuje menu wszytskim gracza i utrzymuje sie one 20s
votebylo = true;
}
}
public Handle_VoteMenu(Handle:menu, MenuAction:action, param1, param2)
{
if(action == MenuAction_End) //akcja koniec (?)
{
CloseHandle(menu); //zamyka handled/menu
}
else if(action == MenuAction_VoteEnd) //wykonuje jak koniec vota (po 20s jak tam ustawilem)
{
SetConVarBool(FindConVar("sv_alltalk"), param1 == 0? false: true, false, false); //lub ServerCommand("sv_alltalk 0");
PrintToChatAll("\x04[\x03AMXX\x04]\x01 AllTalk został %s", param1 == 0? "Wyłączony": "Włączony");
}
}
public OnClientDisconnect(client) //foward wykonany w momecie wyjscia z serwera (pre)
{
if(IsClientInGame(client)) //sprawdza czy gracz jest w grze
{
if(clientvote[client] && !votebylo)
{
clientvote[client] = false;
vote--;
}
}
}
Użytkownik Cypis' edytował ten post 20.09.2011 21:00
Adminek AMXX.PL 24.09.2011
Wiadomość wygenerowana automatycznie
Ten temat został zamknięty przez moderatora.
Powód: Zrobione
Jeśli się z tym nie zgadzasz, raportuj ten post, a moderator lub administrator rozpatrzy go ponownie.
Z pozdrowieniami,
Zespół AMXX.PL
Ten temat został zamknięty przez moderatora.
Powód: Zrobione
Jeśli się z tym nie zgadzasz, raportuj ten post, a moderator lub administrator rozpatrzy go ponownie.
Z pozdrowieniami,
Zespół AMXX.PL