Frage: Wie kann ich den Healthstatus des autos herausfinden und in ein textdraw übertragen ??
Also ich habe ein tacho gemacht mit Tank Km/h und Motor aber ich
habe aber ein Problem wenn ich den Motor ausmache und dan austeige bin ich gefreezed aber nur wenn ich den Motor aus mache... und wenn der tank alle ist kann man trotzdem weiterfahren hier:
public TankTimer()
{
new string[128],i = 0;
for(; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i) && IsPlayerInAnyVehicle(i) && vEngine[GetPlayerVehicleID(i)] == 1)
{
GetPlayerPos(i, Xneu[i], Yneu[i], Zneu[i]);
Num[i] = (Xneu[i] - Xalt[i]) - (Yneu[i] - Yalt[i]) - (Zneu[i] - Zalt[i]);
Xalt[i] = Xneu[i]; Yalt[i] = Yneu[i]; Zalt[i] = Zneu[i];
Num[i] = Num[i] * 4;
if(Num[i] < 0)
{
Num[i] = Num[i] - Num[i] - Num[i];
}
if((vEngine[GetPlayerVehicleID(i)])==1)
{
if(Tankmenge[GetPlayerVehicleID(i)] > 1)format(string, sizeof(string), "TANK: %d/100~n~KM/H: %0.0f~n~MOTOR: ~g~AN~w~", Tankmenge[GetPlayerVehicleID(i)],Num[i],(vEngine[GetPlayerVehicleID(i)]));
else format(string, sizeof(string), "TANK: ~r~LEER~w~~n~KM/H: 0~n~MOTOR: ~r~AUS~w~", Tankmenge[GetPlayerVehicleID(i)]);
TextDrawSetString(Tankanzeige[i], string);
}
else
{
TogglePlayerControllable(playerid,0);
//hier sollte er gefreezed werden wenn der tank alle ist ...
}
}
}
return true;
}
Und hier das ganze weil ich dn Fehler net finde(mit dem motor aus und austeigen)
also man macht /motor der motor ist aus man wird gefreezed steigt aus und ist immer noch gefreezed:
dcmd_motor(playerid,params[])
{
#pragma unused params
new vehicleid = GetPlayerVehicleID(playerid);
if(vEngine[vehicleid] == 0)
{
vEngine[vehicleid] = 1;
TogglePlayerControllable(playerid,1);
SendClientMessage(playerid,COLOR,"Du hast den Motor angeschaltet ");
}
else
{
new string[128];
vEngine[vehicleid] = 0;
TogglePlayerControllable(playerid,0);
SendClientMessage(playerid,COLOR,"Du hast den Motor ausgeschaltet ");
format(string, sizeof(string), "TANK: %d/100~n~KM/H: 0~n~MOTOR: ~r~AUS~w~", Tankmenge[GetPlayerVehicleID(playerid)],(vEngine[GetPlayerVehicleID(playerid)]));
TextDrawSetString(Tankanzeige[playerid], string);
}
return 1;
}
public OnPlayerStateChange(playerid, newstate, oldstate)
{
if((newstate == PLAYER_STATE_DRIVER) && vEngine[GetPlayerVehicleID(playerid)] == 0)
{
TogglePlayerControllable(playerid,0);
}
if(newstate == PLAYER_STATE_DRIVER)
{
new tankstring[128];
if((vEngine[GetPlayerVehicleID(playerid)])==1)format(tankstring, sizeof(tankstring), "TANK: %d/100~n~KM/H: %d~n~MOTOR: ~g~AN~w~", Tankmenge[GetPlayerVehicleID(playerid)],Num[playerid]);
else format(tankstring, sizeof(tankstring), "TANK: %d/100~n~KM/H: 0~n~MOTOR: ~r~AUS~w~", Tankmenge[GetPlayerVehicleID(playerid)]);
Tankanzeige[playerid] = TextDrawCreate(142.000000, 363.000000, tankstring);
TextDrawFont(Tankanzeige[playerid], 1);
TextDrawLetterSize(Tankanzeige[playerid], 0.340000,1.300000);
TextDrawColor(Tankanzeige[playerid], 0xCCCCCCFF);
TextDrawSetOutline(Tankanzeige[playerid], 0);
TextDrawShowForPlayer(playerid, Tankanzeige[playerid]);
TextDrawTextSize(Tankanzeige[playerid],242.000000,-7.000000);
}
if(newstate == PLAYER_STATE_ONFOOT)TextDrawDestroy(Tankanzeige[playerid]);
//ab hier komm die cars für fraktionen:
new vehicleid = GetPlayerVehicleID(playerid);
if(newstate == PLAYER_STATE_DRIVER)
{
for(new j = 0;j<sizeof sfpdauto;j++)
{
if(vehicleid == sfpdauto[j])
{
if(pInfo[playerid][team] == TEAM_SFPD)
{
}
else if(pInfo[playerid][admin]>= 1)
{
}
else
{
SendClientMessage(playerid,COLOR_LIGHTRED,"Du besitzt keinen Schlüssel für dieses Fahrzeug!");
RemovePlayerFromVehicle(playerid);
TogglePlayerControllable(playerid,1);
}
}
}
}
if(newstate == PLAYER_STATE_DRIVER)
{
for(new j = 0;j<sizeof mau;j++)
{
if(vehicleid == mau[j])
{
if(pInfo[playerid][team] == TEAM_SFMEDIC)
{
}
else if(pInfo[playerid][admin]>= 1)
{
}
else
{
SendClientMessage(playerid,COLOR_LIGHTRED,"Du besitzt keinen Schlüssel für dieses Fahrzeug!");
RemovePlayerFromVehicle(playerid);
TogglePlayerControllable(playerid,1);
}
}
}
}
if(newstate == PLAYER_STATE_DRIVER)
{
for(new j = 0;j<sizeof hau;j++)
{
if(vehicleid == hau[j])
{
if(pInfo[playerid][team] == TEAM_HITMAN)
{
}
else if(pInfo[playerid][admin]>= 1)
{
}
else
{
SendClientMessage(playerid,COLOR_LIGHTRED,"Du besitzt keinen Schlüssel für dieses Fahrzeug!");
RemovePlayerFromVehicle(playerid);
TogglePlayerControllable(playerid,1);
}
}
}
}
if(newstate == PLAYER_STATE_DRIVER)
{
for(new j = 0;j<sizeof fau;j++)
{
if(vehicleid == fau[j])
{
if(pInfo[playerid][team] == TEAM_FAHRS)
{
}
else if(pInfo[playerid][admin]>= 1)
{
}
else if(pfahrstunde[playerid]== 1)
{
}
else
{
SendClientMessage(playerid,COLOR_LIGHTRED,"Du besitzt keinen Schlüssel für dieses Fahrzeug!");
RemovePlayerFromVehicle(playerid);
TogglePlayerControllable(playerid,1);
}
}
}
}
return 1;
}
MfG bad_company