enviar un mensaje con una tecla
#1

hola quiero saber como puedo hacer para que cuando un usuario apriete una tecla le salga un mensaje de cliente y que cuando el usuario ponga el comando deje de aparecerle el mensaje
ejemplo

el usuario aprieta la tecla
ctrl
y aparecera el mensaje
mensaje para el cliente activar con /comando
depues
el usuario tipea /comando y cuando hace eso si vuelve a apretar ctrl ya no le aparesca el mensaje
Reply
#2

Me tomo menos de 15 segundos contestar tu respuesta. La proxima busca en la wiki y vas a tardar lo mismo
OnPlayerKeyStateChange
Reply
#3

lo siento ala proxima me fijare mas garcias
Reply
#4

oye tengo una duda mira ya pude hacer para que cuando apriete una tecla aparesca el mensaje pero quiero que cuando ponga el comando el usuario y apriete la tecla deje de aparecer el mensaje como le hago
pawn Код:
#define RELEASED(%0) \
        (((newkeys & (%0)) != (%0)) && ((oldkeys & (%0)) == (%0)))
pawn Код:
if (RELEASED( KEY_ACTION ))
        if(IsPlayerInAnyVehicle(playerid))
        {
        SendClientMessage(playerid,COLOR_NARANJA, "necesitas tipear /comando");
        }
Reply
#5

Quote:
Originally Posted by chucho
Посмотреть сообщение
oye tengo una duda mira ya pude hacer para que cuando apriete una tecla aparesca el mensaje pero quiero que cuando ponga el comando el usuario y apriete la tecla deje de aparecer el mensaje como le hago
pawn Код:
#define RELEASED(%0) \
        (((newkeys & (%0)) != (%0)) && ((oldkeys & (%0)) == (%0)))
pawn Код:
if (RELEASED( KEY_ACTION ))
        if(IsPlayerInAnyVehicle(playerid))
        {
                if(variable[playerid] == 1) // Si la variable estб 'encendida' saldrб el mensaje
                {
        SendClientMessage(playerid,COLOR_NARANJA, "necesitas tipear /comando");
                }
        }
Arriba del todo con tus news pon new variable[MAX_PLAYERS];

En OnPlayerConnect pon:

pawn Код:
variable = 1;
Aсades el comando:

pawn Код:
if(strcmp(cmd, "/comando", true) == 0)
{
if(IsPlayerConnected(playerid)) // Si el jugador estб conectado
{
if(variable[playerid] == 1) // Si la variable estб 'encendida' se apagara
{
SendClientMessage(playerid, 0xFF0000FF, "Variable apagada!");
variable[playerid] = 0;
}
else // Si la variable estб 'apagada' se encendera
{
SendClientMessage(playerid, 0xFF0000FF, "Variable encendida!");
variable[playerid] = 1;
}
}
return 1;
}
Un saludo, espero que sea eso, es lo que entendi x]
Reply
#6

me da este error

pawn Код:
C:\Documents and Settings\samp.pwn(323) : error 033: array must be indexed (variable "nombre")
Pawn compiler 3.2.3664          Copyright (c) 1997-2006, ITB CompuPhase
1 Error.
Reply
#7

Eso te sale porque estбs usando UNA variable, una variable no sirve para todos los jugadores. Tienen que haber variables por cada jugador, por eso:
pawn Код:
new Nombre[MAX_PLAYERS];
Luego, para poder usarla, tienes que ESPECIFICAR cual variable quieres usar, poniendo un nъmero entre los corchetes. Ese nъmero se llama "нndice" (index en Inglйs). Como estamos hablando de jugadores, el нndice tiene que ser el ID del jugador:
pawn Код:
Nombre[playerid]
Nombre[killerid]
Nombre[acm1pt]
Nombre[45]
// Etc.
Para asignarle un valor:
pawn Код:
Nombre[indice] = valor.
// Ejemplo:
Nombre[playerid] = 45; // Usarб la variable que tenga como valor "playerid".
// Si playerid es 25, serнa lo mismo que usar Nombre[25].
Si quieres saber si tiene un valor:
pawn Код:
if(Nombre[indice] == valor)
// Ejemplo:
if(Nombre[66] == 0) // Usarб la variable 66.
Reply
#8

Quote:
Originally Posted by chucho
Посмотреть сообщение
me da este error

pawn Код:
C:\Documents and Settings\samp.pwn(323) : error 033: array must be indexed (variable "nombre")
Pawn compiler 3.2.3664          Copyright (c) 1997-2006, ITB CompuPhase
1 Error.
El que has puesto en OnPlayerConnect ponle [playerid] que quede asн: variable[playerid] = 1; (Si usas lo que te he dado, obvio)
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)