Espanol Pawno

[New] Ciudad Mágica RP -Tu segunda vida- [24/7] [0.3z]

- REGISTRO MEDIANTE LA WEB
Si quieres ingresar al servidor, deberas registrarte en nuestro sitio web y ahi configurar tu cuenta, es facil y nuestros certificadores te aprobraron enseguida. Recuerda que debes responder mas de 15 preguntas correctas para pasar la certificacion. En el servidor ahi puro rol, de momento no ahi anti rol, tenemos un staff serio.

¿PROBLEMAS CON EL REGISTRO?
Si tienes problemas para registrarte en el servidor, puedes pedir soporte en nuestro grupo de SAMP, ahi te intentaremos ayudar para que logres pasar la certificacion y si tienes dudas, tambien puedes publicarlas ahi.
En la imagen que esta abajo se puede notar que asi se vera tu personaje una vez registrado y certificado..
NOTA:
Puedes contactarnos y pedirnos soporte, si tienes problemas con la certificacion.
https://www.facebook.com/federeck.darwin
-
https://www.facebook.com/fabianlamas33

GRUPO FACEBOOK:
* www.facebook.com/groups/CMRPG/

ADEMAS!!
Cuando te estas registrando en la web, podras elegir de que roleare.
LSPD, entre otros, tu elegiras que faccion o como sera tu personaje, tu le daras VIDA A TU PERSONAJE!!!

PANEL DE LA WEB
Dentro de la web, podras comprobrar que esta pasando con tu usuario, saber los ultimos comandos que uso y es facil.

- Ciudad Mágica RP -

Es un server Role Play en el cual podrás encontrar diversión y conocer gente de distindos lugares, tanto Europa como América Latina. En Ciudad Mágica además contamos con un sistema de usuarios Premium los cuales proporcionando una donación reciben grandes beneficios dependiendo de la donacion.

DATOS DEL SERVIDOR ( IMPORTANTE )
IP DE SAMP:
* samp.gosuplayer.com:7777
IP DE TS3:
* ts.gosuplayer.com
WEB SERVIDOR:
* www.gosuplayer.com
GRUPO FACEBOOK:
* www.facebook.com/groups/CMRPG/

DATOS IMPORTANTES 2 ( SISTEMAS )

Alguna vez quisiste saber que se siente ser policía?, ladrón?, mafioso?, pandillero?, político?, terrorista?

Esta es tu oportunidad, en Ciudad Mágica RolePlay tenemos un monton de sistemas únicos, Sistemas de Gobierno, Sistemas de CarToys, podés tunear tus vehículos y lucirlos por Los Santos.
Podes invitar a tus amigos para que la diversión sea mayor y obtener beneficios si se registran como tus referidos.
- Además contamos con sistema Premium, en el cuál si te haces premium obtenes gran cantidad de beneficios.

Estamos implementando gran cantidad de sistemas todo el tiempo aca tenes algunos de los sistemas:

- Liquidos de vehiculos (Gasolina, aceite, agua)

- Sistema de Headshots (Las armas mas potentes pueden llegar a matarte de un disparo en la cabeza)

- Graffitis (Si sos pandillero, podés hacer graffitis y conquistar los barrios)

- Radiación (Podes ser de terrorista y plantar una bomba nuclear, entonces si explota la radiación aumentara y si los usuarios no compraron vacunas, los afectara.)

- Motores (Además de tunear tu auto, podés mejorarlo comprandole motores en un taller)

- Temperatura (Si usaste mucho tu vehiculo y el nivel de agua es bajo la temperatura aumenta)

- Evento Zombie (Cada tanto, para salir de rol, convertimos la ciudad en un entorno post-apocaliptico y comenzamos la guerra contra los zombies)

Y muchos mas, asi que entra ya y comenzá a divertirte!

Todas las facciones del servidor.

En total tenemos 20 facciones activas, se activaran mas cuando hallan mas usuarios. Tambien podran crear sus familias.
El gamemode fue creado totalmente desde 0 y tiene cosas unicas!

PD: En el caso que este post sea considerado SPAM por los administradores, disculpen y por favor eliminen el post. La comunidad no se hara responsable de nada

Comunidad en Español dedicada a la creación de servidores San Andreas Multiplayer mediante PAWN (PAWNO), también llamado PawnoScripting.


    [Tutorial] Crear comandos zcmd y dcmd.

    Comparte
    avatar
    Aldys



    Mensajes : 125
    Fecha de inscripción : 09/08/2013
    Edad : 21
    Localización : Argentina

    Opera

    Femenino

    [Tutorial] Crear comandos zcmd y dcmd.

    Mensaje por Aldys el Vie Ago 09, 2013 11:49 am

    Hola amigos, hoy vengo a enseñar a los mas nuevos como crear comandos con parámetros o sin parámetros. Hay muchas formas de crear comandos y muchos metodos en los cuales pueden ser:

    * strcmp
    * strock
    * dcmd
    * zcmd


    En este tutorial utilizaremos los metodos zcmd y dcmd , ya que son los mas utilizados, mas faciles de usar y eficientes.
    Tambien utilizaremos sscanf para checkear los parametros del comando que crearemos
    Codigo sscanf:

    ______________________________________________________________________________
    Crear comandos por dcmd:


    Para poder crearlos necesitamos agregar el siguiente codigo (agregarlo en la parte de los "#define") :

    Código:
    #define dcmd(%1,%2,%3) if (!strcmp((%3)[1], #%1, true, (%2)) && ((((%3)[(%2) + 1] == '') && (dcmd_%1(playerid, ""))) || (((%3)[(%2) + 1] == ' ') && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1
    Una vez agregado ese codigo nos vamos a el callback OnPlayerCommandText y comenzamos a crear nuestros comandos. Antes de crearlos necesitamos declararlos, por lo que debemos hacerlo de la siguiente forma:

    Código:
    public OnPlayerCommandText(playerid, cmdtext[])
    {
    dcmd(comando, lengh, cmdtext);
    //comando = nombre del comando.
    //lengh = tamaño del comando (cantidad de carácteres).
    //cmdtext = no se cambia, siempre va eso.
    return 0; // return 0; se puede cambiar por un mensaje, por ejemplo: return SendClientMessage(playerid, color, "comando desconocido.");
    }
    Por ejemplo, los comandos /comoestas y /queonda:

    Código:
    public OnPlayerCommandText(playerid, cmdtext[])
    {
    dcmd(comoestas, 5, cmdtext);
    dcmd(queonda, 4, cmdtext);
    return SendClientMessage(playerid, 0xFFFFFFFF, "Comando desconocido.");
    }
    Ya declaramos nuestro comando, ahora lo vamos a crear, es muy sencillo, debemos hacerlo de la siguiente forma:

    Código:
    dcmd_comando(playerid, params[]) // en donde dice comando ponemos el nombre del comando ya declarado arriba...
    {
    //efecto del comando
    return 1;
    }

    Por ejemplo los comandos /hola y /adios:

    Código:
    public OnPlayerCommandText(playerid, cmdtext[])
    {
    dcmd(hola, 9, cmdtext);
    dcmd(adios, 4, cmdtext);
    return 0; // esta vez quiero que cuando el comando sea desconocido se muestre el mensaje por defecto "Unknown command." por lo que pongo return 0;
    }

    dcmd_hola(playerid, params[])
    {
    // efecto del comando
    return 1;
    }

    dcmd_adios(playerid, params[])
    {
    //efecto
    return 1; // siempre se pone return 1; al final del comando
    }

    Debemos saber que existen varios tipos de comandos:

    * Sin Parametros (ejemplo: /morir)
    * Uniparametros (ejemplo: /mundo [id del mundo])
    * Multiparametros(ejemplo: /vehiculo [id del vehiculo] [color del vehiculo])

    Comandos con parametros:
    Para crear comandos con parametros necesitamos utilizar sscanf, por ejemplo /matar [id] (para matar a alguien, tiene un parametro que es "id"):


    Código:
    dcmd_matar(playerid, params[])
    {
    new id; // necesitamos crear una varible para guardar el id del jugador que queremos matar.
    new string; // para hacer el mensaje de muerte
    if(sscanf(params, "u", id)) // esto checkea si escribiste todos los parametros, si no lo hiciste se manda el mensaje de error de abajo
    {
    SendClientMessage(playerid, 0xFFFFFFFF, "Uso correcto: /matar [player id]"); // es el mensaje que se manda si no se escribieron los parametros (el id)
    }
    else if(IsPlayerConnected(id)) return SendClientMessage(playerid, 0xFFFFFFFF, "Ese jugador no esta conectado!"); // esto es opcional, lo puse solo para ver si el jugador esta conectado.
    else // esto es lo que pasa si los parametros fueron introducidos correctamente, es decir, si pusiste el id del jugador y si el jugador esta conectado
    {
    SetPlayerHealth(id, 0.0); // se cambia la vida del jugador a 0
    format(string, sizeof(string), "Has matado al jugador numero %d!", id); // aqui creamos el mensaje que vamos a dar, dandole formato al "string"
    SendClientMessage(playerid, 0xFFFFFFFF, string); // se manda el mensaje guardado en string.
    }
    return 1;
    }
    El sscanf en este caso, sirve para ver si el jugador introdujo los parametros, pero para esto necesitamos saber como utilizarlo correctamente:

    Código:
    sscanf(lo que queremos ver si está, "tipo de parametro o variable", la variable ya definida);

    Como en el comando que hicimos, lo que queremos ver es si el jugador introdujo el parametro, entonces el sscanf va a checkear si esta "params". Entonces sustituimos "lo que queremos ver si esta" por params.

    Código:
    sscanf(params, "tipo de parametro o variable", la variable ya definida);
    Lo siguiente es ver que tipo de variable vamos a checkear. A continuación los tipos de variables y sus respectivos ejemplos:

    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.

    Debido a que el tipo de variable que estamos buscando es el ID de un jugador utilizamos "u" (cambiamos "tipo de parametro o variable" por "u")


    Código:
    sscanf(params, "u", la variable ya definida);
    Y por ultimo la variable a la cual le vamos a asignar el parametro (tenemos que crearla primero), que en este caso es "id" (new id. Cambiamos "la variable ya definida" por "id"

    Código:
    sscanf(params, "u", id);
    Ya tenemos nuestro sscanf listo!
    Recomiendo investigar como utilizar el if, else if y el else para poder controlar tu comando y limitarlo a lo que tu quieras. Por ahora utilizamos el if para ver si sscanf no detecto nada, si no lo hizo entonces pasa lo que esta entre brackets {} (el mensaje de como usar el comando).

    Comandos sin parametros:
    Estos son mucho más simples de hacer, lo unico que necesitas es declarar que no vas a utilizar el parametro y hacer las limitaciones de su uso. Ejemplo: /morir

    Código:
    dcmd_morir(playerid, params[])
    {
    #pragma unused params // se coloca esto para declarar que no vamos a utilizar un parametro
    SetPlayerHealth(playerid, 0.0); // el efecto, morir!
    return 1; // siempre se coloca al final del comando
    }
    ___________________________________________________________________________________

    Comandos por zcmd:

    Son muchos mas faciles de realizar que los que utilizan dcmd. Para crearlos necesitamos agregar a nuestros includes (Carpeta de tu sever > Pawno > Includes) este .INC:
    Link .INC:

    Después de haberlos descargado en la carpeta de "includes" nos vamos a nuestro script, en la parte de arriba donde estan todos los #include <> y agregamos:

    Código:
    #include <zcmd>
    También debemos recordar poner el sscanf lo cual ya dijimos como hacerlo... Ahora procedemos a crear nuestros comandos.
    Con el zcmd no necesitamos el callback "OnPlayerCommandText" por lo que lo borramos y lo sustituimos por:

    Código:
    public OnPlayerCommandReceived(playerid, cmdtext[])
    {
    // esto lo puedes utilizar para muchas cosas como por ejemplo hacer que en la consola aparesca el mensaje que escribiste
    new string[80];
    format(string, sizeof(string), "* %s (ID:%d) has typed: %s", pName(playerid), playerid, cmdtext);
    printf("[Command] %s: %s", pName(playerid), cmdtext); // imprime el comando que escribiste en la consola!
    return 1;
    }

    public OnPlayerCommandPerformed(playerid, cmdtext[], success)
    {
    if(!success)
    {
    //lo que quieres que pase si el comando no existe, por ejemplo: SendClientMessage(playerid, 0xFFFFFFFF, "Comando desconocido.");
    return 1;
    }
    return 1;
    }
    Después de agregado esto podemos empezar a hacer nuestros comandos normalmente,no debemos declarar primero como en el caso de dcmd.

    Código:
    //estos comandos se pueden hacer de varias formas:

    CMD:nombredelcomando(playerid, params[])
    COMMAND:nombredelcomando(playerid, params[])
    cmd(nombredelcomando, playerid, params[])
    command(nombredelcomando, playerid, params[])

    //vamos a utilizar la primera

    CMD:matar(playerid, params[])
    {
    new id; // necesitamos crear una variable para guardar el id del jugador que queremos matar.
    new string; // para hacer el mensaje de muerte
    if(sscanf(params, "u", id)) // esto checkea si escribiste todos los parametros, si no lo hiciste se manda el mensaje de error de abajo
    {
    SendClientMessage(playerid, 0xFFFFFFFF, "Uso correcto: /matar [player id]"); // es el mensaje que se manda si no se escribieron los parametros (el id)
    }
    else if(IsPlayerConnected(id)) return SendClientMessage(playerid, 0xFFFFFFFF, "Ese jugador no esta conectado!"); // esto es opcional, lo puse solo para ver si el jugador esta conectado.
    else // esto es lo que pasa si los parametros fueron introducidos correctamente, es decir, si pusiste el id del jugador y si el jugador esta conectado
    {
    SetPlayerHealth(id, 0.0); // se cambia la vida del jugador a 0
    format(string, sizeof(string), "Has matado al jugador numero %d!", id); // aqui creamos el mensaje que vamos a dar, dandole formato al "string"
    SendClientMessage(playerid, 0xFFFFFFFF, string); // se manda el mensaje guardado en string.
    }
    return 1;
    }
    Se hace exactamente igual que el dcmd, utilizando sscanf, lo único es que en vez de utilizar dcmd_matar utilizamos CMD:matar.

    Código:
    command(morir, playerid, params[])
    {
    #pragma unused params // se coloca esto para declarar que no vamos a utilizar un parametro
    SetPlayerHealth(playerid, 0.0); // el efecto, morir!
    return 1; // siempre se coloca al final del comando
    }

    Como acabamos de ver, ponemos primero command y despues ponemos entre parentesis: (nombredelcomando, playerid, params[]).



    Bueno amigos, eso ha sido todo, espero que les haya servido, haya gustado, saquen lo que nececiten y que lo utilizen ps. Att: Aldys

    Ni miro ni copio, lo mio es estilo propio.
    avatar
    -EnzoMetlc-



    Mensajes : 30
    Fecha de inscripción : 27/09/2013
    Edad : 20
    Chorme

    Masculino

    Re: [Tutorial] Crear comandos zcmd y dcmd.

    Mensaje por -EnzoMetlc- el Lun Sep 30, 2013 12:47 pm

    Aldys escribió:Ni miro ni copio, lo mio es estilo propio.
    ESTE LINK DICE LO CONTARIO.


    No tienes estilo propio, tiene copias. Por favor, cómo se te ocurre el copy&Paste? No creo que scripteas hace '6 años' (como dijiste).
    Creo que el foro no tiene originalidad, con tutoriales como este, la gente ni pasa por aquí.

    Saludos. Dryed 

      Fecha y hora actual: Vie Abr 20, 2018 5:00 am