[FilterScript] Cars Machine v1.0 - Version: Jeffrey_Hatrix
#1

Olб galera, dessa vez vim compartilhar a minha versгo mais atualizada, com funзхes novas e modificada usando dialog como base de todo sistema.


Pequena descriзгo pra quem ainda nгo sabe:

Ele cria arquivos com os ids dos carros dos quais vocк criou usando o FS in-game, e recarrega os mesmos arquivos quando o FS й reiniciado, assim servindo como um FilterScript de criaзгo de carros. Como foi permitido a reconstruзгo e modificaзгo do FS pelo dono. Vim aqui postar a minha versгo!
SS por parte:

primeiramente, eu fiz essa versгo jб com propуsito de uso apenas para Admins, no caso 'Rcon'
entгo й necessбrio logar Rcon para usar o comando.
\/


Entгo segue a sequкncia logando na rcon, para conseguir acesso ao Menu.
\/

\/


Apуs feito todo login, й possнvel usar tal comando:
\/


resultado do Menu:
\/








scriptfiles/Carros/%d.ini, exemplo de como fica o arquivo apуs salvar o carro:
\/

Atualizaзхes:

Vamos por parte, a versгo antiga disponibilizava 1 comando /cc - criar carro -
Do qual este comando criava o arquivo e o carro para ter aquela posiзгo como ponto de inicio, toda vez que o tal cуdigo fosse reiniciado o carro spawnaria na float do qual foi criado.


Updates: melhorei o arquivamento, expandi detalhes como 'cores', disponibilizei um dialog com as seguintes funзхes, Criar, Deletar, Modificar Cores, Ir atй o veнculo [id], Respawnar veнculo [id].

OBS: Se possнvel gostaria de dicas para uma versгo superior daqui pra frente, e crнticas а medida do possнvel.
(Relatar bugs encontrados, obrigado!)


CODE:
pawn Код:
/*
|                                                                   |
|   Script atualizado by: Jeffrey_Hatrix, thanks to Willian_Luigi   |
|   to orginal Cars Machine at pastebin.com/HnBePeCp                |
|                                                                   |
*/

#include <a_samp>
#include <SII>
#include <ZCMD>
#include <sscanf2>

#define filterScriptUser
#define callCarsDialog 1
#define msgbox DIALOG_STYLE_MSGBOX
#define input DIALOG_STYLE_INPUT
#define list DIALOG_STYLE_LIST

forward wii_CreateCars(playerid, carro, Float:x_, Float:y_, Float:z_, Float:a_);
forward LOAD_CAR();

new Global[128];

enum DATA_CAR {
    file,
    u,
    id,
    c_,
    c2_,
    Float:x,
    Float:y,
    Float:z,
    Float:a
};
new Approppriately[DATA_CAR];

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    switch(dialogid)
    {
        case callCarsDialog:
            if(response)
            {
                ShowPlayerDialog(playerid, 2, list, "Cars GUI", "\nCriar carro\nDeletar carro\nModificar cores\nIr atй carro \"x\"\nRespawn carro \"x\"\n\n", "Confirmar", "Cancelar");
                return 1;
            }
        case 2:
            if(response)
            {
                if(listitem == 0)
                {
                    ShowPlayerDialog(playerid, 3, input, "Cars GUI","\nDigite o ID vбlido de um carro para criar&salvar", "Confirmar", "Voltar");
                    return 1;
                }
                else if(listitem == 1)
                {
                    ShowPlayerDialog(playerid, 4, input, "Cars GUI","\nDigite o ID file do arquivo para deletar o carro", "Confirmar", "Voltar");
                    return 1;
                }
                else if(listitem == 2)
                {
                    ShowPlayerDialog(playerid, 7, list, "Cars GUI - CORES", "\nCor 1\nCor 2\n\n", "Confirmar", "Voltar");
                    return 1;
                }
                else if(listitem == 3)
                {
                    ShowPlayerDialog(playerid, 10, input, "Cars GUI - X", "\nDigite o ID do Arquivo carro do qual deseja ir atй", "Confirmar", "Voltar");
                    return 1;
                }
                else if(listitem == 4)
                {
                    ShowPlayerDialog(playerid, 13, input, "Cars GUI - Spawn", "\nDigite o ID do Veнculo que deseja respawnar\n\n", "Confirmar", "Cancelar");
                    return 1;
                }
            }
        case 3:
            if(response)
            {
                if(IsPlayerInAnyVehicle(playerid))
                    return ShowPlayerDialog(playerid, 2, list, "ERROR, JБ ESTБ EM UM VEНCULO", "\nCriar carro\nDeletar carro\nModificar cores\nIr atй carro \"x\"\nRespawn carro \"x\"\n\n", "Confirmar", "Cancelar");

                GetPlayerPos(playerid, Approppriately[x], Approppriately[y], Approppriately[z]);
                GetPlayerFacingAngle(playerid, Approppriately[a]);
                new cc_ = strval(inputtext);
                SetTimerEx("wii_CreateCars", 5000, false, "ddffff", playerid, cc_, Approppriately[x], Approppriately[y], Approppriately[z], Approppriately[a]);
                format(Global, 60, "(WAIT 5 SECONDS) - Arquivo carro criado id do carro: %d", cc_);
                ShowPlayerDialog(playerid, 6, msgbox, "Sucessful", Global, "Continuar", "Voltar");
                TogglePlayerControllable(playerid, 0);
                SetPlayerPos(playerid, Approppriately[x]+2, Approppriately[y], Approppriately[z]);
                return 1;
            }
            else ShowPlayerDialog(playerid, 2, list, "Cars GUI", "\nCriar carro\nDeletar carro\nModificar cores\nIr atй carro \"x\"\nRespawn carro \"x\"\n\n", "Confirmar", "Cancelar");

        case 4:
            if(response)
            {
                new cc_ = strval(inputtext);
                format(Global, 30, "Carros/%d.ini", cc_);
                if(!INI_Exist(Global)) return ShowPlayerDialog(playerid, 5, msgbox, "ERROR", "O id do arquivo carro й inexistente, tente novamente.", "Tentar", "Cancelar");
                INI_Remove(Global);
                format(Global, 45, "Arquivo carro id[%d] deletado com sucesso!", cc_);
                ShowPlayerDialog(playerid, 5, msgbox, "Cars GUI", Global, "Deletar +1", "Cancelar");
                DestroyVehicle(cc_);
                return 1;
            }
            else ShowPlayerDialog(playerid, 2, list, "Cars GUI", "\nCriar carro\nDeletar carro\nModificar cores\nIr atй carro \"x\"\nRespawn carro \"x\"\n\n", "Confirmar", "Cancelar");

        case 5:
            if(response)
            {
                ShowPlayerDialog(playerid, 4, input, "Cars GUI","\nDigite o ID file do arquivo para deletar o carro", "Confirmar", "Voltar");
                return 1;
            }
            else ShowPlayerDialog(playerid, 2, list, "Cars GUI", "\nCriar carro\nDeletar carro\nModificar cores\nIr atй carro \"x\"\nRespawn carro \"x\"\n\n", "Confirmar", "Cancelar");

        case 6:
            if(!response) return ShowPlayerDialog(playerid, 2, list, "Cars GUI", "\nCriar carro\nDeletar carro\nModificar cores\nIr atй carro \"x\"\nRespawn carro \"x\"\n\n", "Confirmar", "Cancelar");

        case 7:
            if(response)
            {
                if(listitem == 0)
                {
                    ShowPlayerDialog(playerid, 8, input, "COR 1", "\nDigite o id do Arquivo carro\n\n", "Confirmar", "Cancelar");
                    return 1;
                }
                else if(listitem == 2)
                {
                    ShowPlayerDialog(playerid, 9, input, "COR 2", "\nDigite o id do Arquivo carro\n\n", "Confirmar", "Cancelar");
                    return 1;
                }
            }
            else ShowPlayerDialog(playerid, 2, list, "Cars GUI", "\nCriar carro\nDeletar carro\nModificar cores\nIr atй carro \"x\"\nRespawn carro \"x\"\n\n", "Confirmar", "Cancelar");

        case 8:
            if(response)
            {
                Approppriately[id] = strval(inputtext);
                format(Global, 30, "Carros/%d.ini", Approppriately[id]);
                if(!INI_Exist(Global))
                    return ShowPlayerDialog(playerid, 2, list, "ERROR, ID INVБLIDO", "\nCriar carro\nDeletar carro\nModificar cores\nIr atй carro \"x\"\nRespawn carro \"x\"\n\n", "Confirmar", "Cancelar");

                ShowPlayerDialog(playerid, 11, input, "COR 1", "\nDigite o valor da cor 1 ( 0 - 128 )\n\n", "Confirmar", "Cancelar");
                return 1;
            }
        case 9:
            if(response)
            {
                Approppriately[id] = strval(inputtext);
                format(Global, 30, "Carros/%d.ini", Approppriately[id]);
                if(!INI_Exist(Global))
                    return ShowPlayerDialog(playerid, 2, list, "ERROR, ID INVБLIDO", "\nCriar carro\nDeletar carro\nModificar cores\nIr atй carro \"x\"\nRespawn carro \"x\"\n\n", "Confirmar", "Cancelar");

                ShowPlayerDialog(playerid, 12, input, "COR 2", "\nDigite o valor da cor 2 ( 0 - 128 )\n\n", "Confirmar", "Cancelar");
                return 1;
            }
        case 10:
            if(response)
            {
                Approppriately[id] = strval(inputtext);
                format(Global, 30, "Carros/%d.ini", Approppriately[id]);
                if(!INI_Exist(Global))
                    return ShowPlayerDialog(playerid, 2, list, "ERROR, ID INVБLIDO", "\nCriar carro\nDeletar carro\nModificar cores\nIr atй carro \"x\"\nRespawn carro \"x\"\n\n", "Confirmar", "Cancelar");

                PutPlayerInVehicle(playerid, Approppriately[id], 0);
                ShowPlayerDialog(playerid, 2, list, "Cars GUI - Teleportado com sucesso.", "\nCriar carro\nDeletar carro\nModificar cores\n\n", "Confirmar", "Cancelar");
                return 1;
            }
            else ShowPlayerDialog(playerid, 2, list, "Cars GUI", "\nCriar carro\nDeletar carro\nModificar cores\nIr atй carro \"x\"\nRespawn carro \"x\"\n\n", "Confirmar", "Cancelar");

        case 11:
            if(response)
            {
                if(128 > Approppriately[c_] < 0)
                    return ShowPlayerDialog(playerid, 2, list, "ERROR, VALOR INVБLIDO", "\nCriar carro\nDeletar carro\nModificar cores\nIr atй carro \"x\"\nRespawn carro \"x\"\n\n", "Confirmar", "Cancelar");

                Approppriately[c_] = strval(inputtext);
                format(Global, 30, "Carros/%d.ini", Approppriately[id]);
                INI_Open(Global);
                INI_WriteInt("Info Cor 1", Approppriately[c_]);
                INI_Save();
                INI_Close();
                ChangeVehicleColor(Approppriately[id], Approppriately[c_], Approppriately[c2_]);
                return 1;
            }
            else ShowPlayerDialog(playerid, 2, list, "Cars GUI", "\nCriar carro\nDeletar carro\nModificar cores\nIr atй carro \"x\"\nRespawn carro \"x\"\n\n", "Confirmar", "Cancelar");

        case 12:
            if(response)
            {
                if(128 > Approppriately[c2_] < 0)
                    return ShowPlayerDialog(playerid, 2, list, "ERROR, VALOR INVБLIDO", "\nCriar carro\nDeletar carro\nModificar cores\nIr atй carro \"x\"\nRespawn carro \"x\"\n\n", "Confirmar", "Cancelar");

                Approppriately[c2_] = strval(inputtext);
                format(Global, 30, "Carros/%d.ini", Approppriately[id]);
                INI_Open(Global);
                INI_WriteInt("Info Cor 2", Approppriately[c2_]);
                INI_Save();
                INI_Close();
                ChangeVehicleColor(Approppriately[id], Approppriately[c_], Approppriately[c2_]);
                return 1;
            }
            else ShowPlayerDialog(playerid, 2, list, "Cars GUI", "\nCriar carro\nDeletar carro\nModificar cores\nIr atй carro \"x\"\nRespawn carro \"x\"\n\n", "Confirmar", "Cancelar");

        case 13:
            if(response)
            {
                Approppriately[id] = strval(inputtext);
                format(Global, 30, "Carros/%d.ini", Approppriately[id]);
                if(!INI_Exist(Global))
                    return ShowPlayerDialog(playerid, 2, list, "ERROR, ID INVБLIDO", "\nCriar carro\nDeletar carro\nModificar cores\nIr atй carro \"x\"\nRespawn carro \"x\"\n\n", "Confirmar", "Cancelar");

                SetVehicleToRespawn(Approppriately[id]);
                ShowPlayerDialog(playerid, 2, list, "VEНCULO RESPAWNADO", "\nCriar carro\nDeletar carro\nModificar cores\nIr atй carro \"x\"\nRespawn carro \"x\"\n\n", "Confirmar", "Cancelar");
                return 1;
            }
            else ShowPlayerDialog(playerid, 2, list, "Cars GUI", "\nCriar carro\nDeletar carro\nModificar cores\nIr atй carro \"x\"\nRespawn carro \"x\"\n\n", "Confirmar", "Cancelar");

        default: return false;
    }
    return 1;
}

CMD:carsmachine(playerid) {
    if(!IsPlayerAdmin(playerid))
        return SendClientMessage(playerid, -1, "Vocк nгo й um admin logado na Rcon");
    ShowPlayerDialog(playerid, callCarsDialog, msgbox, "Introduction", "[FS] - Feito por Willian_Luigi, atualizado e modificado por Jeffrey_Hatrix\n\n", "Continuar", "");
    return 1;
}
/*
CMD:ac(playerid, params[]) {
    new id_;
    if(sscanf(params, "d", id_))
        return SendClientMessage(playerid, -1, "Approppriately Use: /ac [id file]");
       
    format(Global, 20, "Carros/%d.ini", id_);
    if(!INI_Exist(Global))
        return SendClientMessage(playerid, -1, "ID inexistente");
       
    INI_Remove(Global);
    format(Global, 30, "Arquivo carro id %d deletado!", id_);
    return 1;
}

CMD:cc(playerid, params[]) {
    new car;
    if(sscanf(params,"d", car))
        return SendClientMessage(playerid, -1, "Approppriately Use: /cc [ID]");

    if(IsPlayerInAnyVehicle(playerid)) {
        GetVehiclePos(GetPlayerVehicleID(playerid), Approppriately[x], Approppriately[y], Approppriately[z]);
        GetVehicleZAngle(GetPlayerVehicleID(playerid), Approppriately[a]);
    }
    else {
        GetPlayerPos(playerid, Approppriately[x], Approppriately[y], Approppriately[z]);
        GetPlayerFacingAngle(playerid, Approppriately[a]);
    }
    if(611 > car > 400)
        return (SetTimerEx("wii_CreateCars", 5000, false, "ddffff",playerid, car, Approppriately[x], Approppriately[y], Approppriately[z], Approppriately[a]));
    SendClientMessage(playerid, -1, "Carro criado com sucesso.");
    return 1;
}*/


public wii_CreateCars(playerid, carro, Float:x_, Float:y_, Float:z_, Float:a_) {
    TogglePlayerControllable(playerid, 1);
    Approppriately[file] ++;
    Approppriately[c_] = random(128);
    Approppriately[c2_] = random(128);
    new ff = CreateVehicle(carro, x_, y_, z_, a_, Approppriately[c_], Approppriately[c2_], 9999999);
    PutPlayerInVehicle(playerid, ff , 0);
    format(Global, 30, "Carros/%d.ini", Approppriately[file]);
    INI_Open(Global);
    INI_WriteInt("Info Car ID", carro);
    INI_WriteInt("Info Car ID GAME", Approppriately[file]);
    INI_WriteFloat("Info Float x", Approppriately[x]);
    INI_WriteFloat("Info Float y", Approppriately[y]);
    INI_WriteFloat("Info Float z", Approppriately[z]);
    INI_WriteFloat("Info Angle", Approppriately[a]);
    INI_WriteInt("Info Cor 1", Approppriately[c_]);
    INI_WriteInt("Info Cor 2", Approppriately[c2_]);
    INI_Save();
    INI_Close();
    strdel(Global, 0, 128);
    INI_Open("Carros/MaxVehicles");
    INI_WriteInt("Veiculos Criados", Approppriately[file]);
    INI_Save();
    INI_Close();
    return 1;
}

public LOAD_CAR() {
    INI_Open("Carros/MaxVehicles");
    Approppriately[id] = INI_ReadInt("Veiculos Criados");
    new n = 1;
    while(n != -1) {
        format(Global, 30, "Carros/%d.ini", n);
        if(!fexist(Global)) break;
        INI_Open(Global);
        Approppriately[id] = INI_ReadInt("Info Car ID GAME");
        Approppriately[u] = INI_ReadInt("Info Car ID");
        Approppriately[x] = INI_ReadFloat("Info Float x");
        Approppriately[y] = INI_ReadFloat("Info Float y");
        Approppriately[z] = INI_ReadFloat("Info Float z");
        Approppriately[a] = INI_ReadFloat("Info Angle");
        Approppriately[c_] = INI_ReadInt("Info Cor 1");
        Approppriately[c2_] = INI_ReadInt("Info Cor 2");
        AddStaticVehicleEx(Approppriately[u], Approppriately[x], Approppriately[y], Approppriately[z], Approppriately[a], Approppriately[c_], Approppriately[c2_], 9999999);
        n++;
    }
    return 1;
}


#if defined filterScriptUser
public OnFilterScriptInit() {
    LOAD_CAR();

    print("\n--------------------------------------\n");
    print("FilterScript vehicleCreator.");
    print("Atual update 1.0 from Jeffrey_Hatrix, thanks to Willian_Luigi");
    printf("Veнculos carregados: %d", Approppriately[id]);
    return print("\n--------------------------------------\n");
}
#else
#error Run this like a FilterScript, By:Willian_Luigi
#endif
Reply
#2

Legal, cara ^.^
Reply
#3

Magavilha!
Vai ser muito ъtil...
Reply
#4

good job
Reply
#5

legal
Reply
#6

Bem melhor do que estava, parabйns.
Reply
#7

Quote:
Originally Posted by diretor7
Посмотреть сообщение
Magavilha!
Vai ser muito ъtil...
Obrigado,

Pode ser muito ъtil futuramente se tiver mais idйias para adicionar...
Reply
#8

Melhorou bastante.
Уtimo FS, bom trabalho.
Reply
#9

Quote:
Originally Posted by Đeagle
Посмотреть сообщение
Melhorou bastante.
Уtimo FS, bom trabalho.
Obrigado atrasado, hehe...


@FELIPE, MP...
Reply
#10

Legal Manow
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)