[Ayuda] Como uso un comando refiriendome a un player?
#1

Bueno, les doy un ejemplo de a lo que me refiero, por ejemplo, si yo quiero traer un player a mi ID, me estoy refiriendo al player, pero por ejemplo si yo pongo (playerid) el comando/funcion se ejecutara al que puse "X" comando.
Me gustaria saber, tengo muchas gnas de aprender mбs pawno, gracias
Reply
#2

Si lo haces con CMD o zcmd es con sscanf, no se con strmp o como sea. Te doy un ejemplo
Creas el comando:
zcmd(traer, playerid, params[])
{
Agregas el new de giveplayerid o lo que quieras:
new giveplayerid;
Agregamos el sscanf que define (no me acuerdo la palabra) digamos, que hay que poner para cumplir la funcion:
if(!sscanf(params, "d", giveplayerid)) Acб esta el giveplayerid, osea, es /traer ID, el giveplayerid, seria la id del otro.
Aca le agregamos para que sea si estб conectado
if(IsPlayerConnected(giveplayerid)){
Y le vas agregando funciones, tomar la posicion del giveplayerid y que a esa posicion te lleve a vos:
new Float:X, Float:Y, Float:Z;
GetPlayerPos(playerid, X, Y, Z);
SetPlayerPos(giveplayerid, X, Y, Z);
} else SendClientMessage(playerid, -1, "El jugador esta desconectado.");
} else SendClientMessage(playerid, color_blanco, "El uso correcto es: /traer [ID]");
return 1;
}
Y le agregas mas restricciones como para que lo use un admin etc
Te dejo una pequeсa guia del sscanf.
No se si te preguntaste que es eso del "d" edentro del if(!sscanf(params, "d", giveplayerid))
Bueno mira:
c - Un caracter. (ejemplo: a, b, c, d...)
d, i - Un numero o cifra. (ejemplo: 1, 2, 3, 14, 10048...)
h, x - Un numero hexadecimal. (ejemplo: colores: 0xFFFFFFFF).
f - Un decimal. (ejemplo: una coodernada 1025.0777).
s - Un string o texto. (ejemplo: "casa" o "pera")
z - Un texto opcional. (ejemplo: la razon de una expulsiуn la cual no siempre tienes que poner)
pX - Un delimitador, siendo la letra "x" un caracter. (ejemplo: ps, la s seria el delimitador)
u - Un jugador o ID de un jugador.

PD: no siempre se utiliza el "!" delante del sscanf, solo en ocaciones que no se bien, si no me equivoco es cuando utilizas else { y no ej la restriccion (separado) return SendClientMessage(playerid, -1, "No eres admin");
envez de (restriccion) {
else { SendClientMesage(playerid, -1, "No eres admin.");

Es lo que pienso yo, pero no estoy BIEN seguro que sea por eso. Saludos, Ah! puedes leerte guнas si quieres aprender.
Reply
#3

gRACIAS AMIGO, LA VERDAD QUE ME SIRVIO MUCHO, MUCHISIMAS GRACIAS
Reply
#4

me da error, no entiendo
Reply
#5

Quote:
Originally Posted by ElBuho
Посмотреть сообщение
me da error, no entiendo
Te da error porque ese comando lo copiу de su gm descargado, igualmente intentу explicarte.


Lo que debes usar es playerid(el afectado) y playerid2(el administrador)
Reply
#6

Mi GM no es descargada
le pusiste el return 1;
{
xd?
Reply
#7

Quote:
Originally Posted by Mattrex
Посмотреть сообщение
Mi GM no es descargada
le pusiste el return 1;
{
xd?
Bueno, si el comando lo hiciste vos y todo supongo que deberнas saber que el no tiene tus mismas variables
Reply
#8

No entiendo, їplayerid (El afectado)? їque es eso? me podrias dar un ejemplo de un comando entero, simple, Asi me doy cuenta de como es el cmd
Reply
#9

Quote:
Originally Posted by Goncho28
Посмотреть сообщение
Bueno, si el comando lo hiciste vos y todo supongo que deberнas saber que el no tiene tus mismas variables
Es obvio que las tiene que poner el, el no dio ninguna variable
Reply
#10

Quote:
Originally Posted by Goncho28
Te da error porque ese comando lo copiу de su gm descargado, igualmente intentу explicarte.
ї Y quй tiene que ver que su 'gamemode' sea 'descargado' ?.

Quote:
Originally Posted by Goncho28
Посмотреть сообщение
Bueno, si el comando lo hiciste vos y todo supongo que deberнas saber que el no tiene tus mismas variables
ї Cuales 'variables' ?. -:

pawn Код:
zcmd(traer, playerid, params[])
{
    new giveplayerid;
    if(!sscanf(params, "d", giveplayerid))
    {
        if(IsPlayerConnected(giveplayerid))
        {
            new Float:X, Float:Y, Float:Z;
            GetPlayerPos(playerid, X, Y, Z);
            SetPlayerPos(giveplayerid, X, Y, Z);
        }
        else SendClientMessage(playerid, -1, "El jugador esta desconectado.");
    }
    else SendClientMessage(playerid, color_blanco, "El uso correcto es: /traer [ID]");
   
    return 1;
}
Quote:
Originally Posted by Goncho28
Lo que debes usar es playerid(el afectado) y playerid2(el administrador)
ї De que hablas ?. playerid es el que uso el comando y playerid2 el afectado.

Quote:

ї Hay alguien mбs pedante en este foro ?

Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)