Tak hledal jsem to ae nenasel, jestli to uz tu je tak bylo by fajn kdyby to moderator smazal.
Krok 1.
Defin:
#define SCM SendClientMessage
#define GPN GetPlayerName
#define pi playerid
#define SCM SendClientMessage - Vubec neni nutny, len skratka pro SendClientMessage, proste "SCM".
#define GPN GetPlayerName - To stejny pouha skratka "GetPlayerName".
#define pi playerid - skratka
Stocky:
stock PlayerName(pi) {
new name[MAX_PLAYER_NAME];
GPN(pi, name, MAX_PLAYER_NAME);
return name;
}
stock Chat(const string[])
{
SMTSCHAT(0x0080FFFF, string);
}
stock SMTSCHAT(c, const string[])
{
for(new i = 0; i <= MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i) == 1) // posle tem ktery jsou pripojeni
{
if(alvl[i]) // dejte svoji podminku !!
{
SCM(i, c, string); // odesle zpravu
}
}
}
return 1; // ukonceni
}
Pozor!:
stock PlayerName(pi) {
new name[MAX_PLAYER_NAME];
GPN(pi, name, MAX_PLAYER_NAME);
return name;
= Pokud uz mate, tk to tam nedavejte, jestli mate misto PlayerName jmeno a tk, tk si len prepiste z "PlayerName" na to "Jmeno" - priklad. (taky nedavat ae prepsat to v prikazu.)
a taky:
if(alvl) - dejte tam svoji podminku, kdo nevi a chtel by pro rcon admina tak: dejte misto toho todle: if (!IsPlayerAdmin(i))
Krok 2.
Samotny Prikaz:
Nekam do modu ae ne do publicu!
dcmd_chat(pi, params[]) // prikaz si klidne zmente to "chat"
{
if (!IsPlayerAdmin(playerid)) return SCM(pi, 0xFB0000FF, "[ Error ] Nejsi Rcon Admin."); // kdyz neni rcon admin.
{
new string[256];
if(!strlen(params)) return SCM(pi, 0xFB0000FF, "[ Error ] Pouzij: /chat [Text]"); // kdyz spatne pouzije
format(string, 255, "* [ AdminChat ][ %s ]: [ %s ]", PlayerName(playerid),params); // Nick + Text
Chat(string); // = Odesle zpravu.
}
return true; // konec
}
a nahoru do public OnPlayerCommandText
dcmd(chat, 4,cmdtext); // chat - ma 4 pismenko proto 4, kdyby jste to chteli jinak( napr: achat - tak tam bude 5 misto 4).
Trosku pro pochopeni:
if (!IsPlayerAdmin(playerid)) return SCM(pi, 0xFB0000FF, "[ Error ] Nejsi Rcon Admin.");
= Podminka a co se stane kdyz ji nesplni
if(!strlen(params)) return SCM(pi, 0xFB0000FF, "[ Error ] Pouzij: /chat [Text]");
= Kdyz napise proste /chat bez textu.
new string[256];
= String, aspon myslim, protoze mi to pokazdy delalo (nezarucuju, kdyztak opravte), max pismen co to napise v chatu.
format(string, 255, "* [ AdminChat ][ %s ]: [ %s ]", PlayerName(pi),params);
= Napise to do chatu to co napsal a pouze adminum, pokud tam bude Chat(string);.
= Uvedu priklad: napsal jsem /chat ahoj - v chatu se objevi:
= * [ AdminChat ][ NoXieroN ]: [ Ahoj ]
no a return snad znate ukonceni.
Pokud uz to je tak nic no... problemy piste mozna jsem nekde neco zapomnel, (doufam ze ne, ae vsecko je mozny).
a fakt doufam ze to tady neni