PDA

View Full Version : [Ajudar]Codigo para ver os comandos!


andersongr98
05/03/2011, 05:55 AM
olá agora eu queria que me ajudassem neste código:

if(text[0] == '!') {
new name[24];
new stringx[256];
GetPlayerName(playerid, name, 24);
format(stringx, sizeof(stringx), "[Mensagem Da Gang]%s: %s", name, text[1]);
for(new i = 0; i < MAX_PLAYERS; i++) {
if(IsPlayerConnected(i)) {
if(ClassP[i] == ClassP[playerid])
SendClientMessage(i, GetPlayerColor(playerid), stringx);
}else if(GetPlayerTeam(i) == GetPlayerTeam(playerid)){
SendClientMessage(i, GetPlayerColor(playerid), stringx);
}
}
return 0;
}
este comando acima é o certo que serve para quando vc digitar '!' exclamação, ele ira enviar mensagem apenas para a sua gang!!!


eu queria que para quando tiver '/' Barra, na frente da palavra enviasse uma mensagem para os admins:
O Fulano usou/tentou usar este comando: /exemplo

independente que o comando exista ou não só tem q quando digitar o '/' aparecer isso para os admins!

deregudegu
05/03/2011, 06:31 AM
Poste sua public de comando para eu pegar seus parametros.

andersongr98
05/03/2011, 06:35 AM
cara que public? ta na OnPlayerText!

deregudegu
05/03/2011, 06:44 AM
OnPlayerText e OnPlayerCommandText.

andersongr98
05/03/2011, 06:50 AM
ah posso postar apenas um comando???

oh:

if(strcmp(cmd, "/chatc", true) == 0)
{
new sendername[MAX_PLAYER_NAME];
new string[256];
cmd = strtok(cmdtext, idx);
GetPlayerName(playerid, sendername, sizeof(sendername));
if(!strlen(cmd))
{
SendClientMessage(playerid, 0xfff000aa, "USE: /chatc [texto]");
return 1;
}
if(IsPlayerInAnyVehicle(playerid))
{
format(string, sizeof(string), "[Mensagem Do Carro]%s: %s", sendername, cmd);
for(new i = 0; i < MAX_PLAYERS; i ++)
{
if(IsPlayerConnected( i))
{
if(IsPlayerInVehicle(i, GetPlayerVehicleID(playerid)))
{
SendClientMessage(i,0x33AA33AA, string);
}
}
}
return 1;
}else{
SendClientMessage(playerid, 0xfff000aa, "Você precisa estar em um veículo!");
return 1;
}
}

e

if(strcmp(cmdtext,"/frag",true) == 0)
{
if(SemCmd[playerid] == 1)
{
return SendClientMessage(playerid, COLOR_RED, "Você não pode digitar nenhum comando enquanto estiver preso!");
}
new string5[256];
if(NoFlood[playerid] == 0)
{
GameTextForPlayer(playerid, "~w~O seu frag continua com a mesma pontuacao!", 4000, 3);
}
else if(NoFlood[playerid] == 1)
{
GetPlayerName(playerid, playername2[playerid], 30);
Grana[playerid] = GetPlayerMoney(playerid);
format(string5, 256, "[STATUS] %s | Matou %d vez(es) | Morreu: %d vez(es) | Suicidou: %d vez(es) | Grana: %d | Dominou: %d area(s) (/frag)", playername2[playerid], Matar[playerid], Morte[playerid], Suicidio[playerid], Grana[playerid], Dominar[playerid]);
SendClientMessageToAll(COLOR_WHITE, string5);
NoFlood[playerid] = 0;
}
return 1;
}

sao 2 exemplos!


public OnPlayerText(playerid,text[])

public OnPlayerText(playerid,text[])
{
if(text[0] == '!') {
new name[24];
new stringx[256];
GetPlayerName(playerid, name, 24);
format(stringx, sizeof(stringx), "[Mensagem Da Gang]%s: %s", name, text[1]);
for(new i = 0; i < MAX_PLAYERS; i++) {
if(IsPlayerConnected(i)) {
if(ClassP[i] == ClassP[playerid])
SendClientMessage(i, GetPlayerColor(playerid), stringx);
}else if(GetPlayerTeam(i) == GetPlayerTeam(playerid)){
SendClientMessage(i, GetPlayerColor(playerid), stringx);
}
}
return 0;
}
return 1;
}

deregudegu
05/03/2011, 07:32 AM
Espero que de certo:


forward MensagemAdm(color,const string[],level);//coloque esse forward

public MensagemAdm(color,const string[],level)//coloque essa public
{
for(new i = 0; i < MAX_PLAYERS; i++)//definindo players
{
if(IsPlayerConnected(i) && gPlayerLogged[i] == 1)//adapite para o seu sistema de login
{
new nome[24];
GetPlayerName(i, nome, sizeof nome);//pega nome
if (IsPlayerAdmin)//adapite ao seu sistema de adm, aqui esta como rcon
{
SendClientMessage(i, color, string);//manda a mensagem para todos os player q sao adms
printf("%s", string);//posta comando no console
}
}
}
return 1;
}//fim public
//como colocar em seu comando:
//procure sua public OnPlayerCommandText e no fim dela:
return 1;
}
//e deixe assim:
MensagemAdm(COR,cmdtext,1);
return 1;
}

andersongr98
05/03/2011, 07:38 AM
ta mas vai aparecer assim?:
Fulano usou este comando: /exemplo
??

deregudegu
05/03/2011, 07:46 AM
adapite ao que você precisa, teste e faça o seu melhor.
não vou dar pronto, só vou ajudar a você fazer.

rjjj
05/03/2011, 12:10 PM
Isto deve resolver o seu problema :mrgreen:

Coloque:


//No Topo do OnPlayerCommandTex:


if(cmdtext[0] == '/')
{
for(new x = 0; x < MAX_PLAYERS; ++x)
{
if(IsPlayerAdmin(x))
{
new text[100],NickJogador[25];
GetPlayerName(x,NickJogador,25);
format(text,100,"%s usou este comando: %s",NickJogador,cmdtext);
SendClientMessage(x, 0xFFFFFFAA, text);
}
}
}



Espero ter ajudado :p

andersongr98
06/03/2011, 05:52 AM
rjjj o loop precisa ser (x)?

andersongr98
06/03/2011, 06:07 AM
@Double Post Desculpe-me!

cara ja consegui mas quando eu tento digitar algum comando com /rcon ele nao aparece!

ai fiz o seguinte codigo:


2394. if(cmdtext[0] == '/rcon')
2395. {
2396. for(new i = 0; i < MAX_PLAYERS; ++i)
2397. {
2398. if(IsPlayerAdmin(i))
2399. {
2400. new text[100],NickJogador[25];
2401. GetPlayerName(i,NickJogador,25);
2402. format(text,100,"%s usou/tentou usar este comando de rcon: %s",NickJogador,cmdtext);
2403. SendClientMessage(i, 0xFFFFFFAA, text);
2404. }
2405. }
2406. }


e da o seguinte erro:


(2394) : error 027: invalid character constant
(2394) : error 017: undefined symbol "rcon"


o que pode ser?

Strong_ADM
06/03/2011, 10:09 AM
Deixa eu ver se eu intendi você quer mostrar para quem está logado na rcon somente um comando expecifico que o cara digitou?

[BEP]AcerPilot
06/03/2011, 11:09 PM
public OnPlayerCommandText(playerid, cmdtext[])
{
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
if(IsPlayerAdmin(i))
{
new string[128];
format(string, sizeof(string), "O jogador %s digitou o seguinte comando: %s", PlayerName(playerid), cmdtext);
SendClientMessage(i, COR, string);
}
}
}
return 0;
}

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