←  Pluginy

AMXX.pl: Support AMX Mod X i SourceMod

»

Nowy Plugin
Prośba o plugin z vote alltalk

Zablokowany

  • +
  • -
Karpaj - zdjęcie 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 :)
Odpowiedz

  • +
  • -
Cypis' - zdjęcie Cypis' 20.09.2011

plugin już jako tak zrobiłem tylko że mi brakuje natywa jak pobrać ile jest aktualnie graczy na serwerze xD

@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
Odpowiedz

  • +
  • -
Karpaj - zdjęcie Karpaj 24.09.2011

pięknie działa, wielkie dzięki :)
Odpowiedz

Adminek AMXX.PL - zdjęcie 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, Dołączona grafika raportuj ten post, a moderator lub administrator rozpatrzy go ponownie.


Z pozdrowieniami,
Zespół AMXX.PL
Odpowiedz
Zablokowany