Pages

Ads 468x60px


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


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 Code:
/* |                                                                   | |   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
__________________