Jump to content
  • 0

pomoc Potřebuju pomoc/Hledám Pawnera


Mr.K0zak

Dotaz

Ahoj potřebuju pomoct mám mod a tam je mute a je tam jenom kdo ho dostal od koho a na kolik sekund a když tam chci dodat Důvod jak to udělám? Neni tu nějakej pawner co by mi pomohl? Skype: paja.kozina

 

dcmd_mute(playerid, params[])

{
if(IsPlayerConnected(playerid))
{
   new id = strval(params);
   new find = chrfind(' ', params);
   new time = strval(params[find + 1]);
   
     if(Player[playerid][AdminLevel]==0) return SendClientMessage(playerid,COLOR_WARNING,"[  !  ] {FFFFFF}Nejsi Administrátor !");
      else if(Player[playerid][AdminLevel]==1) return SendClientMessage(playerid,COLOR_WARNING,"[  !  ] {FFFFFF}Na použitie tohto príkazu potrebuješ aspoň Admin Level 2 !");
      else if(!strlen(params) || (find == -1)) return SendClientMessage(playerid,COLOR_WARNING,"[  !  ] {FFFFFF}Použi: /mute [ ID ] [ SECONDS ]");
      else if(!IsPlayerConnected(id)) return SendClientMessage(playerid,COLOR_WARNING,"[  !  ] {FFFFFF}Hráč zo zadaným ID nieje na serveri !");
 else if(IsPlayerNPC(id)) return SendClientMessage(playerid,COLOR_WARNING,"[  !  ]{ffffff} Tohle je NPC !");
 else if(time < 10 || time > 3600) return SendClientMessage(playerid,COLOR_WARNING,"[  !  ] {FFFFFF}Použi: /mute [ ID ] [ 10-3600 ]");
      else
 {
         new Name[26];
         new Name2[26];
         GetPlayerName(playerid,Name,26);
         GetPlayerName(id,Name2,26);
         new string[128];
         format(string, 128, "Hráč %s byl umlčený Administrátorem %s na %d sekund!", Name2,Name,time);
         SendClientMessageToAll(COLOR_ADMIN,string);
         Player[id][Mute]=true;
         Player[id][ToMuteTime] = gettime() + time;
      }
}
    return 1;
}
 
jak to má být?
Link to comment
Share on other sites

6 odpovědí na tuto otázku

Recommended Posts

  • 0

<-> Máš v tom dodální zmatek. I přesto, že gettimer je taková lepší volba, tak bych doporučula přece jen pro začátečníky SetTimer aspoň. Hádám, že tenhle jsi někde našel :).
<-> Taky by nebylo na škodu si stáhnout 2 includy a to sscanf a zcmd. sscanf je lepší a snadnější na parametry. A zcmd je skoro stejný jak dcmd. Jen tu je ten rozdíl, že nemusíš zbytečně zapisovat do returnu 0 v OnPlayerCommandText, jako to máš často u dcmd. Navíc se proslíchá, že strval(ID hráče) u dcmd dostahuje jen do ID 13...

 

#include a_samp
#include sscanf2
#include zcmd
#define p playerid
#define SCM SendClientMessage
new
    fscmta[144],
    bool:Mute[MAX_PLAYERS];

#define SCMTAF(%1,%2,%3) format(fscmta, sizeof(fscmta), %2, %3); SendClientMessageToAll(%1, fscmta);

stock
    PlayerName(p)
{
    new name[MAX_PLAYER_NAME];
    GetPlayerName(p,name,MAX_PLAYER_NAME);
    return name;
}


command(mute, p, params[])
{
    if(!IsPlayerAdmin(p)) return SCM(p,-1,"[ ! ] Nejsi Rcon Administrátor !"); //Nebo si tu dej svojí kontrolu
    new
        id,cas,duvod[114];
    if(sscanf( params,"uis[144]",id,cas,duvod )) return SCM(p,-1,"[ ! ] Použití: /mute [ID/Jméno hráče] [Čas v minutách] [Důvod] !");
    if(id == INVALID_PLAYER_ID) return SCM(p,-1,"[ ! ] Hráč není připojený !");
    if(Mute[id]) return SCM(p,-1,"[ ! ] Hráč již je umlčen !");
    if(cas < 1 || cas > 99999) return SCM(p,-1,"[ ! ] Můžete umlčet hráče maximálně na 1 až 99999 minut!");
    SCMTAF(-1,"{FF0000}Administrátor %s umlčel hráče %s na %i min. [Důvod: %s]",PlayerName(p),PlayerName(id),cas,duvod)
    SetTimer("Muted",1000*60*cas, false);
    Mute[id] = true;
    return 1;
}

public
        OnPlayerText(p, text[])
{
    if(Mute[p])
    {
        SCM(p,-1,"[ ! ] Jste umlčen! Nemůžete mluvit !");
        return 0;
    }
    return 1;
}
    

forward Muted(p);
public
        Muted(p)
{
    SCM(p,-1,"[ ! ] Čas vypršel! Už můžeš opět mluvit !");
    return 1;
}

public
        OnPlayerDisconnect(p, reason)
{
    if(Mute[p]) Mute[p] = false;
    return 1;
}

 



 

Link to comment
Share on other sites

  • 0

Dobrý den,promin te ale moc tomu nerozumím,prosím vás nepomohla byste mi s tím? :) Byl bych moc rád :) Děkuji Mr.K0zak (přidejte si mě na Skype: paja.kozina )


Prosím někoho kdo tomu rozumí/umí pawno aby mě informoval na Skype: paja.kozina | Děkuji Mr.k0zak

Link to comment
Share on other sites

  • 0

Dobrý den,promin te ale moc tomu nerozumím,prosím vás nepomohla byste mi s tím? :) Byl bych moc rád :) Děkuji Mr.K0zak (přidejte si mě na Skype: paja.kozina )

Co jsi nepochopil? Ráda ti to vysvětlím :).

Link to comment
Share on other sites

  • 0

<->Tak jsem přidala takový "dysletický" návod pro začátečníky. Snad to pochopíš lépe :):

 

#include a_samp //Nahrání includu a_samp ze serverfile/pawno/include
#include sscanf2 //Nahrání includu sscanf
#include zcmd //Nahrání includu zcmd
#define p playerid //Def. zkratka. Nyní mohu místo playerid napsat jen p
#define SCM SendClientMessage //Def. zkratka. Stejný efekt jako u p a playerid
new
    fscmta[144],
    bool:Mute[MAX_PLAYERS];

#define SCMTAF(%1,%2,%3) format(fscmta, sizeof(fscmta), %2, %3); SendClientMessageToAll(%1, fscmta); //Že nyní new string, format string a SendClientMessage je v jednom

stock //Snadnější stock pro Jméno hráče (Abychom nemusely neustále všude new a GetPlayerName)
    PlayerName(p)
{
    new name[MAX_PLAYER_NAME];
    GetPlayerName(p,name,MAX_PLAYER_NAME);
    return name;
}


command(mute, p, params[]) //Pokud napíše příkaz /mute a...:
{
    if(!IsPlayerAdmin(p)) return SCM(p,-1,"[ ! ] Nejsi RCOm Administrátor !"); //Pokud není rcon administrátor, odešle se mu zpráva
    new
        id,cas,duvod[114]; //Newnuté parametry, Co chceme, aby dosadil za pamaremty
    if(sscanf( params,"uis[144]",id,cas,duvod )) return SCM(p,-1,"[ ! ] Použití: /mute [ID/Jméno hráče] [Čas v mitách] [Důvod] !"); //Pokud napíše špatně příkaz nebo mu něco chybý
    if(id == INVALID_PLAYER_ID) return SCM(p,-1,"[ ! ] Hráč není připojený !"); //Pokud napíše ID hráče, který není na serveru, napíše se mu zpráva
    if(Mute[id]) return SCM(p,-1,"[ ! ] Hráč již je umlčen !"); //Pokud už hráč je umlčen (if(Mute[p] == true))
    if(cas < 1 || cas > 99999) return SCM(p,-1,"[ ! ] Můžete umlčet hráče maximálně na 1 až 99999 vteřin !"); //Pokud v druhém udají zadá 0 nebo číslo větší než 99999 -> Zpráva
    SCMTAF(-1,"{FF0000}Administrátor %s umlčel hráče %s na %i min. [Důvod: %s]",PlayerName(p),PlayerName(id),cas,duvod) //Format zpravy
    SetTimer("Muted",1000*60*cas, false); //Začne čas
    Mute[id] = true; //Hodnosta je true (Hráč je umlčen)
    return 1;
}

public
        OnPlayerText(p, text[])
{
    if(Mute[p]) //Pokud hráč napsal do chatu a je umlčen:
    {
        SCM(p,-1,"[ ! ] Jste umlčen! Nemůžete mluvit !"); //tak se mu napíše <-
        return 0;
    }
    return 1; //Pokud ne, všechno bude pokračovat.
}
    

forward Muted(p); //Pro public Muted
public
        Muted(p) //Pokud vyprší nastavený čas
{
    SCM(p,-1,"[ ! ] Čas vypršel! Už můžeš opět mluvit !");
    return 1;
}

public
        OnPlayerDisconnect(p, reason) //Pokud hráč odejde ze serveru
{
    if(Mute[p]) Mute[p] = false; //Pokud hráč je umlčen, tak již nebude (pro jistotu)
    return 1;
}

 

 

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...