Jump to content
  • 0

pomoc Votekick


radilek

Dotaz

2 odpovědí na tuto otázku

Recommended Posts

  • 0

Ja jsem to neudelal..

 

 

NAHORU DO SCRIPTU // Zakladni jednotka DCMD (neupravujte pokud nevite o co jde)

 

#define dcmd(%1,%2,%3) if ((strcmp((%3)[1], #%1, true, (%2)) == 0) && ((((%3)[(%2) + 1] == 0) && (dcmd_%1(playerid, "")))||(((%3)[(%2) + 1] == 32) && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1

 

COMMAND TEXT

public OnPlayerCommandText(playerid, cmdtext[])
{
dcmd(vote,      	4, cmdtext); // 4 = pocet znaku v prikazu vote (bez lomitka)
dcmd(votekick,      8, cmdtext);  // 8 = pocet znaku v prikazu votekick (bez lomitka)
return 0; //Vsechny ostatni prik. budou chybne
}

 

ZACATEK SCRIPTU Nadefinujeme si :

new hlasovani,Hlasoval[MAX_PLAYERS],Hlasu[MAX_PLAYERS];
//vyznam poznate az v prikazu

 

 

 

CONNECT

public OnPlayerConnect(playerid)
{
Hlasu[playerid] = 0;
Hlasoval[playerid] = false;
return 1;
}

 

 

 

KAMKOLIV DO VOLNEHO MISTA KODU

dcmd_votekick(playerid, params[])
{
new string[256];
new hrac = strval(params[0]); //ID KICKOVANEHO HRACE prvni parametr (/votekick ID)
if(!params[0]) //kdyz chybi ID
{
return Zprava(playerid,"Pouziti: /votekick [iD] [DUVOD]");
}
if(!IsPlayerConnected(hrac)) //Kdyz neni pripojen
{
return Zprava(playerid,"Hrac neni pripojen.");
}
if(hlasovani) //Kdyz uz jedno hlasovani existuje
{
return Zprava(playerid,"Jedno hlasovani jiz probiha.");
}
for(new i=0;i{
if(IsPlayerConnected(i)) /kteri sou pripojeni
{
if(IsPlayerAdmin(i)) //kdyz je nekdo z pripojenyhc admin
{
format(string, sizeof(string), "Na serveru je pritomen Administrator: %s", Jmeno(i));
return Zprava(playerid, string);
}//votekick neplatny v pritomnosti admina
}
}
format(string, sizeof(string), "[Votekick] %s spustil hlasovani o vyhozeni hrace %s. Duvod: %s", Jmeno(playerid),Jmeno(hrac),params[1]);
SendClientMessageToAll(B_SVITZ,string);
SendClientMessageToAll(B_SVITZ, "Pokud chcete hrace vyhodit, pouzijte /vote");
Hlasoval[playerid] = true; //hrac hlasoval
Hlasu[hrac]++;  //kickovany dostal prvni hlas
hlasovani = true; //hlasovani spusteno
SetTimer("VotekickKonec",180000,0); //timer, ktery ukonci hlasovani kdyz bude neplatne za 3 minuty
return 1;
}
dcmd_vote(playerid, params[])
{
#pragma unused params //nemame pouzite parametry
new string[256];
if(Hlasoval[playerid]) //kdyz uz hrac hlasoval return 0;
{
return Zprava(playerid,"Uz jste hlasoval.");
}
if(!hlasovani) //kdyz neni zalozeno hlasovani
{
return Zprava(playerid,"Neprobiha zadne hlasovani.");
}
for(new i=0;i 0) //pro kohokoliv kdo ma vice jak 0 hlasu
{
format(string, sizeof(string), "[Votekick] %s pridal kick-hlas hraci %s. Hlasu: %d",Jmeno(playerid),Jmeno(i),Hlasu[i]);
SendClientMessageToAll(B_SVITZ,string);
Hlasoval[playerid] = true; //hrac hlasoval
if(Hlasu[i] == 8) //kdyz ma hrac hlasu osm = kick
{
format(string, sizeof(string), "[Votekick] Hrac %s byl vyhozen. Hlasu: %d",Jmeno(i),Hlasu[i]);
SendClientMessageToAll(B_SVITZ,string);
Kick(i); //kick
hlasovani = false; //hlasovani zrusene, vynulovane
for(new u=0;u 0)){
SendClientMessage(playerid, B_BILA, message);}
return 1;
}

 

 

 

TOP SCRIPT

forward VotekickKonec();

 

MEZI PUBLICY

 

public VotekickKonec()  //timer bezici po 3 minuty skoncil
{
if(hlasovani) //kdyz hlasovani jeste probiha
{
for(new i=0;i 0) //vynulovani hlasu
{
Hlasu[i] = 0; //vynulovani hlasu obvineneho
}
}
SendClientMessageToAll(B_SVITZ, "Votekick neuspesny.");
} //info
}

stock Jmeno(playerid)
{
new jmeno[MAX_PLAYER_NAME];
GetPlayerName(playerid, jmeno, MAX_PLAYER_NAME);
return jmeno;
}

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...