[ajuda] Sistema de Vida de Carro! -
biaamorin - 10.03.2012
Estou com um sistema de Vida do Carro... Que quando ele estar quase quebrando apareзe uns avisos.. Sу que eu queria a ajuda de vocкs para fazer o Seguinte.. queria que desse sу 1 Aviso falando que o CArro esta quebrado.. e com o isso o Carro ficaria parado... e nгo funcionaria de forma alguma.
dai tinha que chamar o Mecanico.. Vou passar os Code para vocкs.
Код:
#include <a_samp>
#define EncodeDamage(%1,%2,%3,%4) %1 | (%2 << 1) | (%3 << 2) | (%4 << 3)
#define SLOTS 50
new
bool:Danificado[2000],
bool:NaoCarro[SLOTS],
bool:Cinto[SLOTS],
Float:xaa[SLOTS],
Float:yaa[SLOTS],
Float:zaa[SLOTS],
Float:HealthV,
damage[4]
;
public OnVehicleDamageStatusUpdate(vehicleid, playerid)
{
GetVehicleHealth(vehicleid,HealthV);
if(HealthV > 900) return false;
if(Cinto[playerid] == false && NaoCarro[playerid] == false)
{
RemovePlayerFromVehicle(playerid);
new Float:XD,Float:YD,Float:ZD,Float:ANGLED;
GetPlayerPos(playerid,XD,YD,ZD);
new Float:r;
GetVehicleZAngle(GetPlayerVehicleID(playerid),r);
XD += (10 * floatsin(-r, degrees));
YD += (10 * floatcos(-r, degrees));
GetPlayerFacingAngle(playerid,ANGLED);
SetPlayerPos(playerid,XD,YD,ZD+2);
SetPlayerHealth(playerid,HealthV/20);
SendClientMessage(playerid,0xFFFFFFFF,"[INFO] Vocк esta sem cinto de seguranзa cuidado com acidentes");
ApplyAnimation(playerid, "CRACK", "crckdeth2", 4.0, 1, 0, 0, 0, 0);
ApplyAnimation(playerid, "CRACK", "crckdeth2", 4.0, 1, 0, 0, 0, 0);
SetTimerEx("StopAnimes",8000,false,"i",playerid);
SetTimerEx("CongelarPlayer",10000,false,"i",playerid);
NaoCarro[playerid] = true;
}
if(HealthV < 500)
{
GetVehicleDamageStatus(vehicleid, damage[0], damage[1], damage[2], damage[3]);
UpdateVehicleDamageStatus(vehicleid, damage[0], damage[1], damage[2], EncodeDamage(1, 1, 1, 1));
SendClientMessage(playerid,0xFFFFFFFF,"[INFO] Seu Carro foi Danificado Chame um Mecanico antes que sejб tarde");
}
if(HealthV < 400)
{
new Float:XD,Float:YD,Float:ZD;
GetPlayerPos(playerid,XD,YD,ZD);
SetPlayerPos(playerid,XD+1,YD+1,ZD+1);
SendClientMessage(playerid,0xFFFFFFFF,"[INFO] Seu Carro foi Danificado Chame um Mecanico imediatamente");
Danificado[vehicleid] = true;
}
return true;
}
public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
if(Danificado[vehicleid] == true)
{
new Float:XD,Float:YD,Float:ZD;
GetPlayerPos(playerid,XD,YD,ZD);
SetPlayerPos(playerid,XD+1,YD+1,ZD+1);
SendClientMessage(playerid,0xFFFFFFFF,"[INFO] Seu Carro foi Danificado Chame um Mecanico imediatamente");
}
return true;
}
Porfavor alguem me ajude ai! Darei reputaзгo!
Re: [ajuda] Sistema de Vida de Carro! -
Đeagle - 10.03.2012
Nгo entendi o que vocк quer direito, pode explicar denovo?
Re: [ajuda] Sistema de Vida de Carro! -
biaamorin - 10.03.2012
Seguinte.. Nesse Sistema.. ele funciona da seguinte forma.. qual o veiculo estar proximo a quebrar.. apareзe umas mensagens falando que й para chamar um Mecanico.. Sу que, se continuar batendo.. o Carro explodi.. Entгo o que eu quero й fazer com que o Carro nгo Exploda.. Quero que ele Fique QUEBRADO.. ou sejб.. nгo saia do lugar.. e nem exploda. Entendeu?
Re: [ajuda] Sistema de Vida de Carro! - rjjj - 10.03.2012
Neste tуpico eu postei um sistema como o que vocк quer

:
https://sampforum.blast.hk/showthread.php?tid=305470
Espero ter ajudado

.
Re: [ajuda] Sistema de Vida de Carro! -
Đeagle - 10.03.2012
Tente fazer assim
PHP код:
#include <a_samp>
#define EncodeDamage(%1,%2,%3,%4) %1 | (%2 << 1) | (%3 << 2) | (%4 << 3)
#define SLOTS 50
new
bool:Danificado[2000],
bool:NaoCarro[SLOTS],
bool:Cinto[SLOTS],
Float:xaa[SLOTS],
Float:yaa[SLOTS],
Float:zaa[SLOTS],
Float:HealthV,
damage[4]
;
public OnVehicleDamageStatusUpdate(vehicleid, playerid)
{
GetVehicleHealth(vehicleid,HealthV);
if(HealthV > 900) return false;
if(Cinto[playerid] == false && NaoCarro[playerid] == false)
{
RemovePlayerFromVehicle(playerid);
new Float:XD,Float:YD,Float:ZD,Float:ANGLED;
GetPlayerPos(playerid,XD,YD,ZD);
new Float:r;
GetVehicleZAngle(GetPlayerVehicleID(playerid),r);
XD += (10 * floatsin(-r, degrees));
YD += (10 * floatcos(-r, degrees));
GetPlayerFacingAngle(playerid,ANGLED);
SetPlayerPos(playerid,XD,YD,ZD+2);
SetPlayerHealth(playerid,HealthV/20);
SendClientMessage(playerid,0xFFFFFFFF,"[INFO] Vocк esta sem cinto de seguranзa cuidado com acidentes");
ApplyAnimation(playerid, "CRACK", "crckdeth2", 4.0, 1, 0, 0, 0, 0);
ApplyAnimation(playerid, "CRACK", "crckdeth2", 4.0, 1, 0, 0, 0, 0);
SetTimerEx("StopAnimes",8000,false,"i",playerid);
SetTimerEx("CongelarPlayer",10000,false,"i",playerid);
NaoCarro[playerid] = true;
}
if(HealthV < 400)
{
new Float:XD,Float:YD,Float:ZD;
GetPlayerPos(playerid,XD,YD,ZD);
SetPlayerPos(playerid,XD+1,YD+1,ZD+1);
TogglePlayerControllable(playerid, false);
SendClientMessage(playerid,0xFFFFFFFF,"[INFO] Seu Carro foi Danificado Chame um Mecanico imediatamente");
Danificado[vehicleid] = true;
}
return true;
}
public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
if(Danificado[vehicleid] == true)
{
new Float:XD,Float:YD,Float:ZD;
GetPlayerPos(playerid,XD,YD,ZD);
SetPlayerPos(playerid,XD+1,YD+1,ZD+1);
TogglePlayerControllable(playerid, false);
SendClientMessage(playerid,0xFFFFFFFF,"[INFO] Seu Carro foi Danificado Chame um Mecanico imediatamente");
}
return true;
}
Me mande o comando de reparar o veнculo do mecanico.
Re: [ajuda] Sistema de Vida de Carro! -
biaamorin - 10.03.2012
O rjjj, mais nesse seu tуpico.. o Carro fica quebrado?? Ele tipo fica Fumaзando e nгo sai do Canto?
Re: [ajuda] Sistema de Vida de Carro! -
biaamorin - 10.03.2012
Comando do mecanico..
Код:
if(strcmp(cmd, "/reparar", true) == 0)
{
if(IsPlayerConnected(playerid))
{
if(!IsAMec(playerid))
{
SendClientMessage(playerid, COR_GREY, " Vocк nгo й mecanico!");
return 1;
}
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COR_GRAD2, "USE: /reparar [id] [preco]");
return 1;
}
new playa;
new money;
playa = ReturnUser(tmp);
tmp = strtok(cmdtext, idx);
money = strval(tmp);
if(money < 1 || money > 99999) { SendClientMessage(playerid, COR_GREY, " Preco minimo 1, preco maximo 99999!"); return 1; }
if(IsPlayerConnected(playa))
{
if(playa != INVALID_PLAYER_ID)
{
if(ProxDetectorS(8.0, playerid, playa)&& IsPlayerInAnyVehicle(playa))
{
if(playa == playerid) { SendClientMessage(playerid, COR_GREY, " Nгo posso fazer isso!"); return 1; }
GetPlayerName(playa, giveplayer, sizeof(giveplayer));
GetPlayerName(playerid, sendername, sizeof(sendername));
format(string, sizeof(string), "* Vocк ofereceu ao(a) %s para concertar seu carro por R$%d .",giveplayer,money);
SendClientMessage(playerid, COR_LIGHTBLUE, string);
format(string, sizeof(string), "* Mecanico %s quer reparar seu carro por R$%d, (Digite /aceitar reparo) para aceitar.",sendername,money);
SendClientMessage(playa, COR_LIGHTBLUE, string);
RepairOffer[playa] = playerid;
RepairPrice[playa] = money;
}
else
{
SendClientMessage(playerid, COR_GREY, " Este jogador nao esta perto de Vocк ou nao esta no carro.");
}
}
}
else
{
SendClientMessage(playerid, COR_GREY, " O Jogador esta offline.");
}
}
return 1;
}
Re: [ajuda] Sistema de Vida de Carro! -
Đeagle - 10.03.2012
O meu cуdigo que te mandei funcionou?
Mande o /aceitar do seu GameMode