[Duda] Editar objetos
#1

Hola, hace un ratito me acorde de un servidor que tiene objetos editados y por ejemplo, habнa un cartel gigante que decнa "LSPD", mi duda va a como es posible hacer eso.
Reply
#2

Lo hacen con ing. inversa editando la memoria y el .amx creando un plugin utilizando el SDK, o usan https://sampwiki.blast.hk/wiki/SetObjectMaterialText.
Reply
#3

їComo es eso de SetObjectMaterialText y SetObjectMaterial?
Reply
#4

Quote:
Originally Posted by xTexTx
Посмотреть сообщение
їComo es eso de SetObjectMaterialText?
Lo que han echo es cambiar las texturas, es decir la imagen que cubre un modelo.

Usar la formula manualmente como seсalo enzo es muy laborioso, te recomiendo que mires esto: https://sampforum.blast.hk/showthread.php?tid=471474

Para modificar un objeto primero necesitas crearlo, que quiero decir, que no puedes editar por ejemplo la comisaria sino que tendirias que eliminarla y mapearla para editar su textura
Reply
#5

No se por que, pero instalo el FS y cuando pongo un cartel y le pongo el texto desaparece el objecto y queda medio invisible.
Reply
#6

Hace unos dнas necesitaba lo mismo, hice un fs rбpido para sacar coordenadas de esto (por esto no cuestionen el cуdigo).

pawn Код:
// This is a comment
// uncomment the line below if you want to write a filterscript
//#define FILTERSCRIPT

#include <a_samp>
#include <zcmd>
#include <sscanf2>

main()
{
    print("\n----------------------------------");
    print(" Blank Gamemode by your name here");
    print("----------------------------------\n");
}

new TextoFinal[128];
new FuenteFFinal[128];
new objetoactual;

CMD:cno(playerid, params[])
{
    new texto[128];
    if(sscanf(params, "ds[128]", params[0], texto))
    {
        SendClientMessage(playerid, -1,"USA: /cno TIPOLETRA TEXTO");
        SendClientMessage(playerid, -1,"Tipos de letra: Arial (1) - Comic Sans MS (2) - Italic (3) - Courier (4).");
        return 1;
    }

    new Float:X, Float:Y, Float:Z;
    GetPlayerPos(playerid, X, Y, Z);
    objetoactual = CreateObject(19482,X,Y,Z+0.5,0.0,0.0,0.0,0.0);

    switch(params[0])
    {
        case 1:
        {
            format(TextoFinal, sizeof(TextoFinal), "%s", texto);
            format(FuenteFFinal, sizeof(FuenteFFinal), "Arial");
            SetObjectMaterialText(objetoactual, TextoFinal,0,OBJECT_MATERIAL_SIZE_256x256,"Arial",24,1,0xAA3333AA,0,OBJECT_MATERIAL_TEXT_ALIGN_CENTER);
            EditObject(playerid,objetoactual);
        }
        case 2:
        {
            format(TextoFinal, sizeof(TextoFinal), "%s", texto);
            format(FuenteFFinal, sizeof(FuenteFFinal), "Comic Sans MS");
            SetObjectMaterialText(objetoactual, TextoFinal,0,OBJECT_MATERIAL_SIZE_256x256,"Comic Sans MS",24,1,0xAA3333AA,0,OBJECT_MATERIAL_TEXT_ALIGN_CENTER);
            EditObject(playerid,objetoactual);
        }
        case 3:
        {
            format(TextoFinal, sizeof(TextoFinal), "%s", texto);
            format(FuenteFFinal, sizeof(FuenteFFinal), "Italic");
            SetObjectMaterialText(objetoactual, TextoFinal,0,OBJECT_MATERIAL_SIZE_256x256,"Italic",24,1,0xAA3333AA,0,OBJECT_MATERIAL_TEXT_ALIGN_CENTER);
            EditObject(playerid,objetoactual);
        }
        case 4:
        {
            format(TextoFinal, sizeof(TextoFinal), "%s", texto);
            format(FuenteFFinal, sizeof(FuenteFFinal), "Courier");
            SetObjectMaterialText(objetoactual, TextoFinal,0,OBJECT_MATERIAL_SIZE_256x256,"Courier",24,1,0xAA3333AA,0,OBJECT_MATERIAL_TEXT_ALIGN_CENTER);
            EditObject(playerid,objetoactual);
        }
        default: return 1;
    }
    return 1;
}


public OnPlayerEditObject(playerid, playerobject, objectid, response, Float:fX, Float:fY, Float:fZ, Float:fRotX, Float:fRotY, Float:fRotZ)
{
    new Float:oldX, Float:oldY, Float:oldZ, Float:oldRotX, Float:oldRotY, Float:oldRotZ;
    GetObjectPos(objetoactual, oldX, oldY, oldZ);
    GetObjectRot(objetoactual, oldRotX, oldRotY, oldRotZ);

    if(response == EDIT_RESPONSE_FINAL)
    {
        if(!IsValidObject(objetoactual)) return;
        MoveObject(objetoactual, fX, fY, fZ, 10.0, fRotX, fRotY, fRotZ);

        new data[256];
        format(data, sizeof data, "Textos.txt");
        new File:fhandler = fopen(data, io_append);
        format(data, sizeof data, "\nnew Object = CreateObject(19482,%.02f,%.02f,%.02f,%.02f,%.02f,%.02f);\n", fX,fY,fZ, fRotX, fRotY, fRotZ);
        fwrite(fhandler, data);
        format(data, sizeof data, "SetObjectMaterialText(Object, %s,0,OBJECT_MATERIAL_SIZE_256x256,\"%s\",24,1,0xAA3333AA,0,OBJECT_MATERIAL_TEXT_ALIGN_CENTER);", TextoFinal, FuenteFFinal);
        fwrite(fhandler, data);
        fclose(fhandler);
    }
}
Reply
#7

Quote:
Originally Posted by EnzoMetlc
Посмотреть сообщение
Lo hacen con ing. inversa editando la memoria y el .amx creando un plugin utilizando el SDK, o usan https://sampwiki.blast.hk/wiki/SetObjectMaterialText.
ing. inversa? Esta claro que es SetObjectMaterialText
Reply
#8

Quote:
Originally Posted by adri1
Посмотреть сообщение
ing. inversa? Esta claro que es SetObjectMaterialText
puede haber sido con mod,Plugin,cliente,c++,etc.
http://es.wikipedia.org/wiki/Ingenier%C3%ADa_inversa

OT:
Object Text Editor v0.2
Reply
#9

Quote:
Originally Posted by xTexTx
Посмотреть сообщение
No se por que, pero instalo el FS y cuando pongo un cartel y le pongo el texto desaparece el objecto y queda medio invisible.
No es un fs, es un server completo para editar texturas.

Descomprime el pack entero en una carpeta distinta y ejecuta el server.
Entra desde samp y ponte a editar, yo ya lo he usado y es bien sencillo



(Solo queria usar ese emoticono por primera vez, hay que pedir a whatsapp que lo agrege )
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)