Creacion de comandos con 3dlabel
#1

Hola buenos dias/tardes/noches, quisiera crear un par de comandos pero no tengo idea de como, estos son ek
/estado y el /yo
para mi servidor de rol.
El /estado serнa para describir como se encuentra en una redimida situaciуn nuestro personaje. Por ej; mareado, asustado, nervioso, etc. y este saldria arriba del nombre de la persona

Y el /yo para poner la descripciуn de cosas minъsculas, como lo que son su altura, color de piel, color de ojos.. Por ej; si roleamos tener un piercing, usarнamos mбs que nada йste comando. este saldrнa arriba del estado

el servidor es base south central creado por emmet
Muchas gracias, si me pueden ayudar !!
Reply
#2

A partir de la base de tu sistema de cmds (ya se dcmd, zcmd, o el que sea que uses, asi sea por comparaciуn de caracteres), debes, para ambos casos, realizar algo asн:
  1. Creas un vector de 3dLabel, global, de tamaсo MAX_PLAYERS, para que para cada jugador, haya un ъnico label.
    PHP код:
    new Text3D:lab_estado[MAX_PLAYERS]; 
  2. Obtener una cadena de caracteres que almacene el texto que ingresa el usuario a travйs del comando /estado [texto], por ejemplo. En otras palabras, creando un vector de dimensiуn N (con N = 32, serнa una buena opciуn) y asignandole un valor. Te recomiendo usar sscanf ya que te soluciona todo.
    PHP код:
    new str[32]; // Vector de dimensiуn N
    if (sscanf(params"s[32]"str))
    {
        return 
    SendClientMessage(playerid0xFF0000AA"USO: /estado <texto>");
    }
    else
    {
    ... 
  3. A continuaciуn de la funciуn, es decir, a continuaciуn del else que estabamos programando, creas los respectivos niveles condicionales (si estб conectado, y toda la chachara). Eliminas el 3dlabel (por si hubiera habido otro jugador, con el mismo id, que haya creado un text label, o si simplemente el jugador ya creo su propio 3dLabel) y creas (o vuelves a crear) un label para ESE jugador. Por ъltimo, adjuntamos el 3dLabel al jugador y ya estб.

    PHP код:
    Delete3DTextLabel(lab_estado[playerid]);
    lab_estado[playerid] = Create3DTextLabel(strCOLORposXposYposZdistanciaDibujado0); 
    // Ъltimo argumento: 0: no se ve a travйs de las paredes; 1: se ve a travйs de las paredes
    Attach3DTextLabelToPlayer(lab_estado[playerid], playeridoffsetXoffsetYoffsetZ);

Y bueno, para el /yo es lo mismo, recuerda tener diferentes offsets para no sobreponer uno con otro. Y recuerda cambiar todo en el cуdigo, dado que te lo he dado genйrico.

Cualquier otra duda, o cualquier error que haya tenido, te lo responderбn los compaсeros

Tarea para la casa:
LEER:
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)