[FilterScript] [N]Labels ! Crea Labels In-Game (Guardado & Cargado Solo)
#1

Creador de Labels In-Game!


Buenas, este script lo venia pensando hace bastante, lo tengo hace bastante, nunca lo pude lanzar, ya que contaba con bugs, o no sabia como cargar de txt, lo cual aprendi y me ayudaron, bastante xdd. Espero que les sea Util.


Que Consiste este FS ?

Consiste en crear labels in-game, los labels se crean en un .txt en scriptfiles, y cuando cargas el FS, ya se colocan in-game solos !


Que nesesito ?:
ZCMD by Zeex.
Sscanf by ******.
Streamer by Incognito.



Comandos:


/Agregar3d [Descripciуn]


pawn Код:
#include <a_samp>
#include <sscanf2>
#include <streamer>
#include <zcmd>
#define Nombre_De_TXT_Label         "Labels.txt"

public OnFilterScriptInit()
{
       new Labels;
       Labels = AgregarLabels(Nombre_De_TXT_Label);
    new Linea[128];
    format(Linea, sizeof(Linea), "** %i Labels cargados **",Labels);
    printf(Linea);
    return 1;
}

public OnFilterScriptExit()
{
    DestroyAllDynamic3DTextLabels();
    return 1;
}


CMD:agregar3d(playerid, params[])
{
    new Msg[128]
        if(!IsPlayerAdmin(playerid)) return 0;
    new Float:X, Float:Y, Float:Z;
    if(unformat(params, "s[128]",params)) return SendClientMessage(playerid, 0xFF0000FF, "{FF0000}Uso : /Agregar3d [Descripcion]");
    GetPlayerPos(playerid, X, Y, Z);
    AgregarLabelsAtxt(Nombre_De_TXT_Label, params, X, Y, Z);
    CreateDynamic3DTextLabel(params, 0xFFFFFFFF, X, Y, Z, 100.0, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 0, -1, -1, -1, 100.0);
    format(Msg, sizeof(Msg), "Creaste un nuevo Label en tu posicion. Con el texto de \"%s\".",params);
    return SendClientMessage(playerid, 0xFFFF00FF, Msg);
}

stock AgregarLabels(ArchivoLabels[])
{
    if(!fexist(ArchivoLabels)) return 0;

    new File:ArchivoLab = fopen(ArchivoLabels, io_read),
    Linea[128],
    InformacionL[128],
    Float:LX,
    Float:LY,
    Float:LZ,
    CantidadLabels = 0;
    while(fread(ArchivoLab, Linea))
    {
        if(!unformat(Linea, "p<,>s[128]fff", InformacionL,LX,LY,LZ))
        {
            CreateDynamic3DTextLabel(InformacionL, 0xFFFFFFFF, LX, LY, LZ, 100.0);
            CantidadLabels++;
        }
    }

    fclose(ArchivoLab);
    return CantidadLabels;
}

stock AgregarLabelsAtxt(ArchivoLabels[], InformacionL[], Float:LX, Float:LY, Float:LZ)
{
    new File:ArchivoLab, Linea[128];
    format(Linea, sizeof(Linea), "%s,%.2f,%.2f,%.2f\r\n",InformacionL, LX, LY, LZ);
    ArchivoLab = fopen(ArchivoLabels, io_append);
    fwrite(ArchivoLab, Linea);
    fclose(ArchivoLab);
    return 1;
}
Le quisiera dar las gracias a ruben, que me enseсo a usar las funciones de archivos.

Espero que les sea util! Saludos!
Reply
#2

Gracias por este gran Filterscript [Nikk], Ўse ve demasiado bueno!
Reply
#3

Iba a crear algo parecido, pero se me bugeo todo y lo mande a la mierda

Saludos!
Reply
#4

Quote:
Originally Posted by MedinaRockz
Посмотреть сообщение
Iba a crear algo parecido, pero se me bugeo todo y lo mande a la mierda

Saludos!
Jaja, maso menos a mi me paso lo mismo, no te rindas, lo podras sacar adelante .


Quote:
Originally Posted by Edugta.
Посмотреть сообщение
Gracias por este gran Filterscript [Nikk], Ўse ve demasiado bueno!
Gracias.
Reply
#5

Estoy creando un sistema de administraciуn para servers RP, pero ando re perdido con el guardado de datos

osea todo bien pero algunas cosas no cargan, arreglo una cosa y se me re bugea la otra, pero lpm

si alguien me quiere ayudar envнeme un correo le hago los mapas que quiera e.e
Reply
#6

Sugerencias:
Elimina "pragma tabsize 0"
usa "io_readwrite" en vez de cancelar la funcion 'AgregarLabels'
Creaste un array global que solo usas en un cmd, creala en el cmd mejor.
La variable global Labels no tiene sentido, en el formateo usa directamente la funcion 'AgregarLabels'
Usa printf en vez de format+printf
Reply
#7

Quote:
Originally Posted by the_chaoz
Посмотреть сообщение
Sugerencias:
Elimina "pragma tabsize 0"
usa "io_readwrite" en vez de cancelar la funcion 'AgregarLabels'
Creaste un array global que solo usas en un cmd, creala en el cmd mejor.
La variable global Labels no tiene sentido, en el formateo usa directamente la funcion 'AgregarLabels'
Usa printf en vez de format+printf
Gracias por la sugerencias, las voy a tener en cuenta para proximas versiones, pienso hacer algo parecido con pickups talvez, o objetos. Gracias.
Edit: Todavia estoy aprendiendo sobre "io_...", tengo que aprender algo mas, mientras, asi, es util, pero seguire tus consejos.
Reply
#8

Woow Genial Amigo pero los Labels son una cosa simple de crear al igual que los pickups... tal ves si lo isieras con algunos Objetos o CheckPoints Igual mente esta Muy Bueno !
Reply
#9

Y por que no le pones ahн que YO te arregle el codigo, por que estaba bugeado y que nada mas le cambiaste el nombre a algunas variables


Quote:
Originally Posted by Jovanny
Посмотреть сообщение
pawn Код:
stock AgregarLabels(LFileName[])
{
    if(!fexist(LFileName)) return 0;

    new File:LFile = fopen(LFileName, io_read),
        Line[128],
        LabelInfo[128],
        Float:LX,
        Float:LY,
        Float:LZ,
        lTotal = 0;

    while(fread(LFile, Line))
    {
        if(!unformat(Line, "p<,>s[128]fff", LabelInfo,LX,LY,LZ))
        {
            CreateDynamic3DTextLabel(LabelInfo, ForRndColorLabel[random(sizeof(ForRndColorLabel))], LX, LY, LZ, 100.0);
            lTotal++;
        }
    }

    fclose(LFile);
    return lTotal;
}
Quote:
Originally Posted by [Nikk]
Посмотреть сообщение
Ea, ahi me anda joya, gracias.
Reply
#10

Se, por que el otro era difirente, es otro, es muy parecido, son 2 diferentes que tengo.
Si tiene eso que me pasaste.
Reply


Forum Jump:


Users browsing this thread: 4 Guest(s)