Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <a_Samp>
- #include <DOF2>
- #include <Zcmd>
- #define Maximo_Veiculos 31
- #define Maximo_Caracteres 128
- #define Maximo_Nome 21
- #define Maximo_Players 100
- #define Dial_Veiculo 2000
- #define PrecoVeiculo 10000
- #define PrecoModelo 5000
- #define PrecoCor 1000
- #define PrecoTunar 100000
- #define PrecoBlindar 200000
- #define TempoRespawn 60000*60
- enum V
- {
- Float:LocalX,
- Float:LocalY,
- Float:LocalZ,
- Float:LocalA,
- Dono[Maximo_Nome],
- Modelo,
- Cor1,
- Cor2,
- Grana,
- Vendido,
- Tunado,
- Conducao,
- Blindado
- };
- new Veiculos[Maximo_Veiculos][V];
- new Fala[Maximo_Caracteres];
- new Nome[Maximo_Nome];
- new Veiculo[Maximo_Players];
- new Float:Pos[4];
- public OnFilterScriptInit()
- {
- for(new i=1; i<Maximo_Veiculos; i++)
- {
- format(Fala,sizeof(Fala),"Veiculos/Veiculo%d.ini",i);
- Veiculos[i][LocalX] = DOF2_GetInt(Fala,"LocalX");
- Veiculos[i][LocalY] = DOF2_GetInt(Fala,"LocalY");
- Veiculos[i][LocalZ] = DOF2_GetInt(Fala,"LocalZ");
- Veiculos[i][LocalA] = DOF2_GetInt(Fala,"LocalA");
- strmid(Veiculos[i][Dono],DOF2_GetString(Fala,"Dono"),0,strlen(DOF2_GetString(Fala,"Dono")),Maximo_Nome);
- Veiculos[i][Modelo] = DOF2_GetInt(Fala,"Modelo");
- Veiculos[i][Cor1] = DOF2_GetInt(Fala,"Cor1");
- Veiculos[i][Cor2] = DOF2_GetInt(Fala,"Cor2");
- Veiculos[i][Grana] = DOF2_GetInt(Fala,"Grana");
- Veiculos[i][Vendido] = DOF2_GetInt(Fala,"Vendido");
- Veiculos[i][Tunado] = DOF2_GetInt(Fala,"Tunado");
- Veiculos[i][Conducao] = DOF2_GetInt(Fala,"Conducao");
- Veiculos[i][Blindado] = DOF2_GetInt(Fala,"Blindado");
- }
- for(new i=1; i<Maximo_Veiculos; i++)
- {
- CreateVehicle(Veiculos[i][Modelo],Veiculos[i][LocalX],Veiculos[i][LocalY],Veiculos[i][LocalZ],Veiculos[i][LocalA],Veiculos[i][Cor1],Veiculos[i][Cor2],TempoRespawn);
- SetVehicleToRespawn(i);
- if(Veiculos[i][Tunado] == 1)
- {
- AddVehicleComponent(i,1010);
- }
- }
- return 1;
- }
- public OnFilterScriptExit()
- {
- for(new i=1; i<Maximo_Veiculos; i++)
- {
- format(Fala,sizeof(Fala),"Veiculos/Veiculo%d.ini",i);
- DOF2_SetFloat(Fala,"LocalX",Veiculos[i][LocalX]);
- DOF2_SetFloat(Fala,"LocalY",Veiculos[i][LocalY]);
- DOF2_SetFloat(Fala,"LocalZ",Veiculos[i][LocalZ]);
- DOF2_SetFloat(Fala,"LocalA",Veiculos[i][LocalA]);
- DOF2_SetString(Fala,"Dono",Veiculos[i][Dono]);
- DOF2_SetInt(Fala,"Modelo",Veiculos[i][Modelo]);
- DOF2_SetInt(Fala,"Cor1",Veiculos[i][Cor1]);
- DOF2_SetInt(Fala,"Cor2",Veiculos[i][Cor2]);
- DOF2_SetInt(Fala,"Grana",Veiculos[i][Grana]);
- DOF2_SetInt(Fala,"Vendido",Veiculos[i][Vendido]);
- DOF2_SetInt(Fala,"Tunado",Veiculos[i][Tunado]);
- DOF2_SetInt(Fala,"Conducao",Veiculos[i][Conducao]);
- DOF2_SetInt(Fala,"Blindado",Veiculos[i][Blindado]);
- }
- DOF2_SaveFile();
- DOF2_Exit();
- return 1;
- }
- public OnPlayerConnect(playerid)
- {
- for(new i=1; i<Maximo_Veiculos; i++)
- {
- format(Fala,sizeof(Fala),"Veiculos/Veiculo%d.ini",i);
- if(strcmp(DOF2_GetString(Fala,"Dono"),PlayerName(playerid),true) == 0)
- {
- Veiculo[playerid] = i;
- }
- }
- return 1;
- }
- public OnPlayerDisconnect(playerid,reason)
- {
- Veiculo[playerid] = 0;
- return 1;
- }
- public OnPlayerSpawn(playerid)
- {
- if(Veiculo[playerid] != 0)
- {
- SendClientMessage(playerid,0xBFBFBFAA,"Para achar o seu veículo no mapa, use /procurarveiculo.");
- }
- SetPlayerSkin(playerid,120);
- return 1;
- }
- public OnVehicleSpawn(vehicleid)
- {
- if(vehicleid >= 1)
- {
- if(vehicleid <= 30)
- {
- SetVehiclePos(vehicleid,Veiculos[vehicleid][LocalX],Veiculos[vehicleid][LocalY],Veiculos[vehicleid][LocalZ]);
- SetVehicleZAngle(vehicleid,Veiculos[vehicleid][LocalA]);
- }
- }
- return 1;
- }
- public OnPlayerStateChange(playerid,newstate,oldstate)
- {
- if(newstate == PLAYER_STATE_DRIVER)
- {
- if(GetPlayerVehicleID(playerid) >= 1)
- {
- if(GetPlayerVehicleID(playerid) <= 30)
- {
- if(Veiculos[GetPlayerVehicleID(playerid)][Vendido] == 0)
- {
- format(Fala,sizeof(Fala),"Veículo disponível para a compra\n\nPreço: %d$",PrecoVeiculo);
- ShowPlayerDialog(playerid,Dial_Veiculo,DIALOG_STYLE_MSGBOX,"Veículo",Fala,"Comprar","Cancelar");
- TogglePlayerControllable(playerid,0);
- }
- if(Veiculos[GetPlayerVehicleID(playerid)][Vendido] == 1)
- {
- if(strcmp(Veiculos[GetPlayerVehicleID(playerid)][Dono],PlayerName(playerid),true) == 0)
- {
- SendClientMessage(playerid,0xBFBFBFAA,"Seja bem vindo ao seu veículo, use /veiculo para ver suas disponibilidades.");
- }
- else
- {
- if(Veiculos[GetPlayerVehicleID(playerid)][Conducao] == 1)
- {
- format(Fala,sizeof(Fala),"Dono do Veículo: %s\n\nPreço da Condução: %d$",Veiculos[GetPlayerVehicleID(playerid)][Dono],PrecoVeiculo);
- ShowPlayerDialog(playerid,Dial_Veiculo+10,DIALOG_STYLE_LIST,"Condução",Fala,"Conduzir","Cancelar");
- }
- else
- {
- SendClientMessage(playerid,0xBFBFBFAA,"Este veículo não pode ser conduzido por você, apenas pelo dono.");
- RemovePlayerFromVehicle(playerid);
- }
- }
- }
- }
- }
- return 1;
- }
- return 1;
- }
- public OnPlayerEnterCheckpoint(playerid)
- {
- DisablePlayerCheckpoint(playerid);
- return 1;
- }
- public OnVehicleDamageStatusUpdate(vehicleid,playerid)
- {
- if(vehicleid == Veiculo[playerid])
- {
- if(Veiculos[Veiculo[playerid]][Blindado] == 1)
- {
- SetVehicleHealth(vehicleid,1000.0);
- GameTextForPlayer(playerid,"~r~Veiculo reparado!",1000,3);
- }
- }
- return 1;
- }
- public OnDialogResponse(playerid,dialogid,response,listitem,inputtext[])
- {
- if(dialogid == Dial_Veiculo)
- {
- if(response)
- {
- if(GetPlayerMoney(playerid) < PrecoVeiculo)
- {
- format(Fala,sizeof(Fala),"Você não possui %d$!",PrecoVeiculo);
- SendClientMessage(playerid,0xBFBFBFAA,Fala);
- return 1;
- }
- format(Fala,sizeof(Fala),"Veiculos/Veiculo%d.ini",GetPlayerVehicleID(playerid));
- DOF2_SetString(Fala,"Dono",PlayerName(playerid));
- GameTextForPlayer(playerid,"~r~Voce comprou este veiculo!",5000,3);
- GivePlayerMoney(playerid,-PrecoVeiculo);
- Veiculo[playerid] = GetPlayerVehicleID(playerid);
- }
- else
- {
- RemovePlayerFromVehicle(playerid);
- }
- TogglePlayerControllable(playerid,1);
- return 1;
- }
- if(dialogid == Dial_Veiculo+1)
- {
- if(response)
- {
- if(listitem == 0)
- {
- format(Fala,sizeof(Fala),"Veiculos/Veiculo%d.ini",Veiculo[playerid]);
- strmid(Veiculos[Veiculo[playerid]][Dono],"Vazio",0,strlen("Vazio"),Maximo_Nome);
- GivePlayerMoney(playerid,Veiculos[Veiculo[playerid]][Grana]+PrecoVeiculo);
- Veiculos[Veiculo[playerid]][Modelo] = 400;
- Veiculos[Veiculo[playerid]][Cor1] = -1;
- Veiculos[Veiculo[playerid]][Cor2] = -1;
- Veiculos[Veiculo[playerid]][Vendido] = 0;
- Veiculos[Veiculo[playerid]][Tunado] = 0;
- Veiculos[Veiculo[playerid]][Conducao] = 0;
- Veiculos[Veiculo[playerid]][Blindado] = 0;
- Veiculo[playerid] = 0;
- GameTextForPlayer(playerid,"~r~Veiculo vendido!",5000,3);
- RemovePlayerFromVehicle(playerid);
- }
- if(listitem == 1)
- {
- GetVehiclePos(Veiculo[playerid],Pos[0],Pos[1],Pos[2]);
- GetVehicleZAngle(Veiculo[playerid],Pos[3]);
- Veiculos[Veiculo[playerid]][LocalX] = Pos[0];
- Veiculos[Veiculo[playerid]][LocalY] = Pos[1];
- Veiculos[Veiculo[playerid]][LocalZ] = Pos[2];
- Veiculos[Veiculo[playerid]][LocalA] = Pos[3];
- SetVehicleToRespawn(Veiculo[playerid]);
- GameTextForPlayer(playerid,"~r~Veiculo estacionado!",5000,3);
- }
- if(listitem == 2)
- {
- ShowPlayerDialog(playerid,Dial_Veiculo+2,DIALOG_STYLE_INPUT,"Trocar Modelo","Coloque no campo abaixo o ID do novo modelo","Trocar","Cancelar");
- }
- if(listitem == 3)
- {
- ShowPlayerDialog(playerid,Dial_Veiculo+3,DIALOG_STYLE_LIST,"Trocar Cor","Cor Primária\nCor Secundária","Escolher","Cancelar");
- }
- if(listitem == 4)
- {
- format(Fala,sizeof(Fala),"Você obteve %d$ de lucro com o seu veículo!",Veiculos[Veiculo[playerid]][Grana]);
- SendClientMessage(playerid,0x00FFFFAA,Fala);
- GivePlayerMoney(playerid,Veiculos[Veiculo[playerid]][Grana]);
- Veiculos[Veiculo[playerid]][Grana] = 0;
- }
- if(listitem == 5)
- {
- format(Fala,sizeof(Fala),"Deseja adicionar o tuno em seu veículo ?\n\nPreço: %d$",PrecoTunar);
- ShowPlayerDialog(playerid,Dial_Veiculo+6,DIALOG_STYLE_MSGBOX,"Tunar",Fala,"Tunar","Cancelar");
- }
- if(listitem == 6)
- {
- SendClientMessage(playerid,0x00FFFFAA,"Condução liberada!");
- Veiculos[Veiculo[playerid]][Conducao] = 1;
- }
- if(listitem == 7)
- {
- SendClientMessage(playerid,0x00FFFFAA,"Condução proibida!");
- Veiculos[Veiculo[playerid]][Conducao] = 0;
- }
- if(listitem == 8)
- {
- format(Fala,sizeof(Fala),"Deseja blindar o seu veículo ?\n\nPreço: %d$",PrecoBlindar);
- ShowPlayerDialog(playerid,Dial_Veiculo+7,DIALOG_STYLE_MSGBOX,"Blindar",Fala,"Blindar","Cancelar");
- }
- }
- return 1;
- }
- if(dialogid == Dial_Veiculo+2)
- {
- if(response)
- {
- if(!strlen(inputtext))
- {
- ShowPlayerDialog(playerid,Dial_Veiculo+2,DIALOG_STYLE_INPUT,"Trocar Modelo","Coloque no campo abaixo o ID do novo modelo","Trocar","Cancelar");
- return 1;
- }
- new ModeloVeiculo = strval(inputtext);
- if(ModeloVeiculo < 400 || ModeloVeiculo > 611)
- {
- SendClientMessage(playerid,0xBFBFBFAA,"Os modelos estão entre 400 e 611.");
- return 1;
- }
- if(GetPlayerMoney(playerid) < PrecoModelo)
- {
- format(Fala,sizeof(Fala),"Você não possui %d$!",PrecoModelo);
- SendClientMessage(playerid,0xBFBFBFAA,Fala);
- return 1;
- }
- Veiculos[Veiculo[playerid]][Modelo] = ModeloVeiculo;
- DestroyVehicle(Veiculo[playerid]);
- CreateVehicle(Veiculos[Veiculo[playerid]][Modelo],Veiculos[Veiculo[playerid]][LocalX],Veiculos[Veiculo[playerid]][LocalY],Veiculos[Veiculo[playerid]][LocalZ],Veiculos[Veiculo[playerid]][LocalA],Veiculos[Veiculo[playerid]][Cor1],Veiculos[Veiculo[playerid]][Cor2],TempoRespawn);
- GameTextForPlayer(playerid,"~r~Modelo trocado!",5000,3);
- GivePlayerMoney(playerid,-PrecoModelo);
- }
- return 1;
- }
- if(dialogid == Dial_Veiculo+3)
- {
- if(response)
- {
- if(listitem == 0)
- {
- ShowPlayerDialog(playerid,Dial_Veiculo+4,DIALOG_STYLE_INPUT,"Cor Primária","Coloque no campo abaixo o ID da nova cor","Trocar","Cancelar");
- }
- if(listitem == 1)
- {
- ShowPlayerDialog(playerid,Dial_Veiculo+5,DIALOG_STYLE_INPUT,"Cor Secundária","Coloque no campo abaixo o ID da nova cor","Trocar","Cancelar");
- }
- }
- return 1;
- }
- if(dialogid == Dial_Veiculo+4)
- {
- if(response)
- {
- if(!strlen(inputtext))
- {
- ShowPlayerDialog(playerid,Dial_Veiculo+4,DIALOG_STYLE_INPUT,"Cor Primária","Coloque no campo abaixo o ID da nova cor","Trocar","Cancelar");
- return 1;
- }
- new CorID = strval(inputtext);
- if(CorID < 0 || CorID > 126)
- {
- SendClientMessage(playerid,0xBFBFBFAA,"As cores estão entre 0 e 126.");
- return 1;
- }
- if(GetPlayerMoney(playerid) < PrecoCor)
- {
- format(Fala,sizeof(Fala),"Você não possui %d$!",PrecoCor);
- SendClientMessage(playerid,0xBFBFBFAA,Fala);
- return 1;
- }
- ChangeVehicleColor(Veiculo[playerid],CorID,Veiculos[Veiculo[playerid]][Cor2]);
- Veiculos[Veiculo[playerid]][Cor1] = CorID;
- GameTextForPlayer(playerid,"~r~Cor trocada",5000,3);
- GivePlayerMoney(playerid,-PrecoModelo);
- }
- return 1;
- }
- if(dialogid == Dial_Veiculo+5)
- {
- if(response)
- {
- if(!strlen(inputtext))
- {
- ShowPlayerDialog(playerid,Dial_Veiculo+5,DIALOG_STYLE_INPUT,"Cor Secundária","Coloque no campo abaixo o ID da nova cor","Trocar","Cancelar");
- return 1;
- }
- new CorID = strval(inputtext);
- if(CorID < 0 || CorID > 126)
- {
- SendClientMessage(playerid,0xBFBFBFAA,"As cores estão entre 0 e 126.");
- return 1;
- }
- if(GetPlayerMoney(playerid) < PrecoCor)
- {
- format(Fala,sizeof(Fala),"Você não possui %d$!",PrecoCor);
- SendClientMessage(playerid,0xBFBFBFAA,Fala);
- return 1;
- }
- ChangeVehicleColor(Veiculo[playerid],Veiculos[Veiculo[playerid]][Cor1],CorID);
- Veiculos[Veiculo[playerid]][Cor2] = CorID;
- GameTextForPlayer(playerid,"~r~Cor trocada",5000,3);
- GivePlayerMoney(playerid,-PrecoModelo);
- }
- return 1;
- }
- if(dialogid == Dial_Veiculo+6)
- {
- if(response)
- {
- if(GetPlayerMoney(playerid) < PrecoTunar)
- {
- format(Fala,sizeof(Fala),"Você não possui %d$!",PrecoTunar);
- SendClientMessage(playerid,0xBFBFBFAA,Fala);
- return 1;
- }
- Veiculos[Veiculo[playerid]][Tunado] = 1;
- AddVehicleComponent(Veiculo[playerid],1010);
- SendClientMessage(playerid,0xBFBFBFAA,"Tuno adicionado com sucesso, para ativar, aperte com o botão esquerdo do mouse quando estiver em um veículo.");
- GivePlayerMoney(playerid,-PrecoTunar);
- }
- return 1;
- }
- if(dialogid == Dial_Veiculo+7)
- {
- if(response)
- {
- if(GetPlayerMoney(playerid) < PrecoBlindar)
- {
- format(Fala,sizeof(Fala),"Você não possui %d$!",PrecoBlindar);
- SendClientMessage(playerid,0xBFBFBFAA,Fala);
- return 1;
- }
- Veiculos[Veiculo[playerid]][Blindado] = 1;
- SendClientMessage(playerid,0xBFBFBFAA,"Veículo blindado com sucesso, toda vez que você bater o mesmo, ele será reparado automaticamente.");
- GivePlayerMoney(playerid,-PrecoTunar);
- }
- return 1;
- }
- return 1;
- }
- CMD:veiculo(playerid)
- {
- if(Veiculo[playerid] == 0)
- {
- if(IsPlayerInAnyVehicle(playerid))
- {
- ShowPlayerDialog(playerid,Dial_Veiculo,DIALOG_STYLE_LIST,"Veículo","Comprar","Escolher","Cancelar");
- }
- }
- else
- {
- if(IsPlayerInVehicle(playerid,Veiculo[playerid]))
- {
- ShowPlayerDialog(playerid,Dial_Veiculo+1,DIALOG_STYLE_LIST,"Veículo","Vender\nEstacionar\nTrocar Modelo\nTrocar Cor\nObter Lucro\nTunar\nLiberar Condução\nProibir Condução\nBlindar","Escolher","Cancelar");
- }
- }
- return 1;
- }
- CMD:procurarveiculo(playerid)
- {
- if(Veiculo[playerid] != 0)
- {
- SetPlayerCheckpoint(playerid,Veiculos[Veiculo[playerid]][LocalX],Veiculos[Veiculo[playerid]][LocalY],Veiculos[Veiculo[playerid]][LocalZ],10.0);
- GameTextForPlayer(playerid,"~r~Veiculo marcado no mapa!",5000,3);
- }
- return 1;
- }
- CMD:ajudaveiculo(playerid)
- {
- if(Veiculo[playerid] != 0)
- {
- ShowPlayerDialog(playerid,0,DIALOG_STYLE_MSGBOX,"Ajuda Veículo","/veiculo - Veja todas as disponibilidades do seu veículo.\n\n/procurarveiculo - Procure o seu veículo no mapa.\n\n/ajudaveiculo - Veja a ajuda do sistema de veículos.","Cancelar","");
- }
- return 1;
- }
- stock PlayerName(playerid)
- {
- GetPlayerName(playerid,Nome,sizeof(Nome));
- return Nome;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement