public OnPlayerCommandText(playerid, cmdtext[]) // Callback.
{
if(!strcmp(cmdtext, "/hola", true))
{
new Nombre[24]; GetPlayerName(playerid, Nombre, 24); // Definimos y obtenemos el nombre del jugador que ejecuta el comando.
new String[120]; // String = texto format para poder escribir apartados definidos, ej: nombre del jugador.
format(String, 120, "%s (Id:%d) saluda a todos los jugadores.", Nombre, playerid); // %s y %d son el nombre y el id del jugador definidos, respectivamente. Como ves trбs el mensaje los escribн: Nombre, playerid.
// Cada definiciуn va respecto a su format, es decir, %s es Nombre porque lo puse el primero en los dos lugares.
SendClientMessageToAll(0xffffffff, String);
return 1; // Fin del comando.
}
return 0; // Fin del callback.
}
public OnPlayerText(playerid, text[])
{
new str[128];//creamos los arrays donde formatearemos nuestro texto(str)
format(str, sizeof(str), "[%i]: %s", playerid, text);//le damos formato a nuestro array(str)
SendPlayerMessageToAll(playerid, str);//enviamos el texto formateado a los demas jugadores del servidor
return 0;//return 0; para q no envie dos veces el mensaje
}
Bueh me funciono de maravilla, pero ahora tengo otro problema, lo que pasa es que ahora veo la ID normalmente
pero ahora cuando me longeo con /Rcon y trato de usar los comandos /Rcolor /Rrojo /Rverde /Rrosa no me funcionan como antes por que ahora solo me cambia el color del Nick pero las letras que digo me salen en blanco si alguien me puede ayudar en ese problema, muchas gracias!! |
Mira esos comandos hacen que yo pueda hablar asi mira:
![]() Entonces mi problema es que cuando pude que el los player les apareca el ID delantes de sus nicks no me funcionan esos comandos ahora, ahora cuando los pongo solo aparece el Nick de color azul,rojo,verde,rosa pero el texto que digo sale en blanco entiendes? |
#include <a_samp>
#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
new admchat[MAX_PLAYERS];
public OnPlayerConnect(playerid)
{
admchat[playerid] = 0;
return 1;
}
public OnPlayerCommandText(playerid, cmdtext[])
{
dcmd(azul,4,cmdtext);
return 0;
}
public OnPlayerText(playerid, text[])
{
if(admchat[playerid] == 1)
{
new Textoo[256];
new name[255];
GetPlayerName(playerid, name, sizeof(name));
format(Textoo, sizeof(Textoo), "%s: %s", name, text);
SetPlayerColor(playerid,0x2587CEAA );
SendClientMessageToAll(0x2587CEAA, Textoo);
return 0;
}
return 1;
}
dcmd_azul(playerid,params[]) {
#pragma unused params
if(IsPlayerAdmin(playerid)) {
if(admchat[playerid] == 0) {
new Float:pX, Float:pY, Float:pZ;
GetPlayerPos(playerid,pX,pY,pZ);
PlayerPlaySound(playerid,1057,pX,pY,pZ);
admchat[playerid] = 1;
return SendClientMessage(playerid,0x2587CEAA,"Color, Azul Actнvado");
}
else
{
new Float:pX, Float:pY, Float:pZ;
GetPlayerPos(playerid,pX,pY,pZ);
PlayerPlaySound(playerid,1057,pX,pY,pZ);
admchat[playerid] = 0;
return SendClientMessage(playerid,0x2587CEAA,"Color, Azul Actнvado");
}}
else return 0;
}
Si querйs que los numeros salgan con color tendrбs que ponerselos al nombre del jugador.
EDIT: Pensй que querнas otra cosa, por eso postiй lo anterior. Posteб los comandos para que te ayudemos |
#define ROJO_ADM 0xD63034AA
#define ROSA_ADM 0xEE82EEAA
#define ROJO 0xAA3333AA
#define VERDE_ADM 0x0DE018AA
#define COLOR_ADM 0x2587CEFF
new COLOR[MAX_PLAYERS];
new ADMCOLOR[MAX_PLAYERS];
public OnPlayerConnect(playerid)
{
COLOR[playerid] = 0;
ADMCOLOR[playerid] = 0;
return 1;
}
public OnPlayerDisconnect(playerid)
{
COLOR[playerid] = 0;
ADMCOLOR[playerid] = 0;
return 1;
}
public OnPlayerCommandText(playerid, cmdtext[])
{
dcmd(rrojo,5,cmdtext);
dcmd(rrosa,5,cmdtext);
dcmd(rverde,6,cmdtext);
dcmd(rcolor,6,cmdtext);
dcmd(sincolor,8,cmdtext);
return 1;
}
dcmd_rrojo(playerid, params[])
{
#pragma unused params
if(!IsPlayerAdmin(playerid))
return
SendClientMessage(playerid, BLANCO, "Server: Unknown command.");
//
if(IsPlayerAdmin(playerid))
{
ADMCOLOR[playerid] = 1;
COLOR[playerid] = ROJO_ADM;
SetPlayerColor(playerid, ROJO_ADM);
return 1;
} else
return
SendClientMessage(playerid, ROJO, "No tienes suficiente level.");
}
dcmd_rrosa(playerid, params[])
{
#pragma unused params
if(!IsPlayerAdmin(playerid))
return
SendClientMessage(playerid, BLANCO, "Server: Unknown command.");
if(IsPlayerAdmin(playerid))
{
ADMCOLOR[playerid] = 1;
COLOR[playerid] = ROSA_ADM;
SetPlayerColor(playerid, ROSA_ADM);
return 1;
} else
return
SendClientMessage(playerid, ROJO, "No tienes suficiente level.");
}
dcmd_rverde(playerid, params[])
{
#pragma unused params
if(!IsPlayerAdmin(playerid))
return
SendClientMessage(playerid, BLANCO, "Server: Unknown command.");
if(IsPlayerAdmin(playerid))
{
ADMCOLOR[playerid] = 1;
COLOR[playerid] = VERDE_ADM;
SetPlayerColor(playerid, VERDE_ADM);
return 1;
} else
return
SendClientMessage(playerid, ROJO, "No tienes suficiente level.");
}
dcmd_rcolor(playerid, params[])
{
#pragma unused params
if(!IsPlayerAdmin(playerid))
return
SendClientMessage(playerid, BLANCO, "Server: Unknown command.");
if(IsPlayerAdmin(playerid))
{
ADMCOLOR[playerid] = 1;
COLOR[playerid] = COLOR_ADM;
SetPlayerColor(playerid, COLOR_ADM);
return 1;
} else
return
SendClientMessage(playerid, ROJO, "No tienes suficiente level.");
}
dcmd_sincolor(playerid, params[])
{
#pragma unused params
if(!IsPlayerAdmin(playerid))
return
SendClientMessage(playerid, BLANCO, "Server: Unknown command.");
if(IsPlayerAdmin(playerid))
{
ADMCOLOR[playerid] = 0;
COLOR[playerid] = 0;
return 1;
} else
return
SendClientMessage(playerid, ROJO, "No tienes suficiente level.");
}
stock Nombre(playerid)
{
new
name[MAX_PLAYER_NAME];
GetPlayerName(playerid, name, sizeof(name));
return name;
}
Este es el comando:
pawn Code:
|
La cosa es que soy medio nuevo en esto por que solo tengo 3 dias en esto de crear server
Yo estoy usando el sistema de Clanes y Administracion que descarge de un post de este mismo foro, el problema es que me puse a ver si podria instalar yo solo ese comando que me acabas de dar y la verdad tengo rato tratando de ponerlo, pero no se bien como hacerlo y cuando lo intentava me salia barios errores, si puedes ayudarme explicandome mejor te lo agradesco si no igual ![]() |
public OnPlayerText(playerid, text[])
{
new string[128], name[24];
GetPlayerName(playerid, name, 24);
format(string, 128, "%s: [ID:%d]: %s", name, id, text);
SendClientMessageToAll(GetPlayerColor(playerid), string);
return 0;
}
La cosa es que soy medio nuevo en esto por que solo tengo 3 dias en esto de crear server
Yo estoy usando el sistema de Clanes y Administracion que descarge de un post de este mismo foro, el problema es que me puse a ver si podria instalar yo solo ese comando que me acabas de dar y la verdad tengo rato tratando de ponerlo, pero no se bien como hacerlo y cuando lo intentava me salia barios errores, si puedes ayudarme explicandome mejor te lo agradesco si no igual ![]() |
#include <a_samp>
#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
#define ROJO_ADM 0xD63034AA
#define ROSA_ADM 0xEE82EEAA
#define ROJO 0xAA3333AA
#define VERDE_ADM 0x0DE018AA
#define COLOR_ADM 0x2587CEFF
new admchat[MAX_PLAYERS];//esto podes cambiarlo
new admrojo[MAX_PLAYERS];//lomismo de arriba
new admrosa[MAX_PLAYERS];//lo mismo de arriba
new admverde[MAX_PLAYERS];//lo mismo
public OnPlayerConnect(playerid)
{
admchat[playerid] = 0; // esto es Callback donde define cuando entras tengas el color del admin en '0'
admrojo[playerid] = 0;// lo mismo
admrosa[playerid] = 0;//lo mismo
admverde[playerid] = 0;//lo mismo
return 1;
}
public OnPlayerCommandText(playerid, cmdtext[])
{
dcmd(azul,4,cmdtext);// Aca va el comando que quieras si es Azul lleva 4 letras entonses pones 4 o por la cantidad de letras que tenga tu comando
dcmd(rojo, 4,cmdtext);// aca lo mismo
dcmd(rosa, 4,cmdtext);//lomismo
dcmd(verde, 5,cmdtext);//lo mismo aca
return 0;
}
public OnPlayerText(playerid, text[])// esto es el Texto
{
if(admchat[playerid] == 1)
{
new Textoo[256];
new name[255];
GetPlayerName(playerid, name, sizeof(name));
format(Textoo, sizeof(Textoo), "%s: %s", name, text); //lo de %s es el Nick y el otro %s es lo que dise
SetPlayerColor(playerid,COLOR_ADM ); // esto es el color del Nick que cambia
SendClientMessageToAll(COLOR_ADM, Textoo);//esto es el color del Texto Cambia al Activarlo
return 0;//aca bamos ha poner siempre return 0;
}
if(admrojo[playerid] == 1)//lo mismo con todo los de abajos
{
new Textoo[256];
new name[255];
GetPlayerName(playerid, name, sizeof(name));
format(Textoo, sizeof(Textoo), "%s: %s", name, text);
SetPlayerColor(playerid,ROJO_ADM );
SendClientMessageToAll(ROJO_ADM, Textoo);
return 0;
}
if(admrosa[playerid] == 1)
{
new Textoo[256];
new name[255];
GetPlayerName(playerid, name, sizeof(name));
format(Textoo, sizeof(Textoo), "%s: %s", name, text);
SetPlayerColor(playerid,ROSA_ADM );
SendClientMessageToAll(ROSA_ADM, Textoo);
return 0;
}
if(admverde[playerid] == 1)
{
new Textoo[256];
new name[255];
GetPlayerName(playerid, name, sizeof(name));
format(Textoo, sizeof(Textoo), "%s: %s", name, text);
SetPlayerColor(playerid,VERDE_ADM );
SendClientMessageToAll(VERDE_ADM, Textoo);
return 0;
}
return 1; //como este es el ultimo siempre abajo del return 0; tiene que ir un return 1; y }
}
dcmd_azul(playerid,params[]) {
#pragma unused params
if(IsPlayerAdmin(playerid)) {
if(admchat[playerid] == 0) {
new Float:pX, Float:pY, Float:pZ;
GetPlayerPos(playerid,pX,pY,pZ);
PlayerPlaySound(playerid,1057,pX,pY,pZ);
admchat[playerid] = 1;
return SendClientMessage(playerid,0x33CC00FF,"Color, Azul Actнvado");
}
else
{
new Float:pX, Float:pY, Float:pZ;
GetPlayerPos(playerid,pX,pY,pZ);
PlayerPlaySound(playerid,1057,pX,pY,pZ);
admchat[playerid] = 0;
return SendClientMessage(playerid,0xAA3333AA,"Color, Azul Desactнvado");
}}
else return 0;
}
dcmd_rojo(playerid,params[]) {
#pragma unused params
if(IsPlayerAdmin(playerid)) {
if(admrojo[playerid] == 0) {
new Float:pX, Float:pY, Float:pZ;
GetPlayerPos(playerid,pX,pY,pZ);
PlayerPlaySound(playerid,1057,pX,pY,pZ);
admrojo[playerid] = 1;
return SendClientMessage(playerid,0x33CC00FF,"Color, Rojo Actнvado");
}
else
{
new Float:pX, Float:pY, Float:pZ;
GetPlayerPos(playerid,pX,pY,pZ);
PlayerPlaySound(playerid,1057,pX,pY,pZ);
admrojo[playerid] = 0;
return SendClientMessage(playerid,0xAA3333AA,"Color, Rojo Desactнvado");
}}
else return 0;
}
dcmd_rosa(playerid,params[]) {
#pragma unused params
if(IsPlayerAdmin(playerid)) {
if(admrosa[playerid] == 0) {
new Float:pX, Float:pY, Float:pZ;
GetPlayerPos(playerid,pX,pY,pZ);
PlayerPlaySound(playerid,1057,pX,pY,pZ);
admrosa[playerid] = 1;
return SendClientMessage(playerid,0x33CC00FF,"Color, Rosa Actнvado");
}
else
{
new Float:pX, Float:pY, Float:pZ;
GetPlayerPos(playerid,pX,pY,pZ);
PlayerPlaySound(playerid,1057,pX,pY,pZ);
admrosa[playerid] = 0;
return SendClientMessage(playerid,0xAA3333AA,"Color, Rosa Desactнvado");
}}
else return 0;
}
dcmd_verde(playerid,params[]) {
#pragma unused params
if(IsPlayerAdmin(playerid)) {
if(admverde[playerid] == 0) { //Lo de ADM rojo es lo de new admrojo[MAX_PLAYERS] Podes cambiarlo por el que quiera
new Float:pX, Float:pY, Float:pZ; //pero Cuando quieras crear otro color tendria que ir otro nombre distinto ha todos...
GetPlayerPos(playerid,pX,pY,pZ);
PlayerPlaySound(playerid,1057,pX,pY,pZ);
admverde[playerid] = 1;
return SendClientMessage(playerid,0x33CC00FF,"Color, Verde Actнvado"); // Aca lo que quieras que diga cuando activas tu color
}
else
{
new Float:pX, Float:pY, Float:pZ;
GetPlayerPos(playerid,pX,pY,pZ);
PlayerPlaySound(playerid,1057,pX,pY,pZ);
admverde[playerid] = 0;
return SendClientMessage(playerid,0xAA3333AA,"Color, Verde Desactнvado");// aca lo mismo pero cuando lo desactivas
}}
else return 0;
}