Hallo zusammen..
Ich habe folgendes Problem, ich habe heute ein neues Speedometer/Tachometer gemacht.
Nun möchte ich, das die Variablen von dem Standart Speedometer dort angezeigt werden, wo ich zB
Textdraw6 = TextDrawCreate(170.000000,366.000000,"100 Benzin"); //Tankanzeige
Textdraw7 = TextDrawCreate(209.000000,375.000000,"100.00"); //Schaden des Fahrzeuges
Textdraw8 = TextDrawCreate(139.000000,399.000000,"100Km/h"); //Km Pro Std
stehen habe. Nur ich weiß nicht, wie ich ganz die Coordinaten von den Textdraws mit denen im Script austausche.
Im Script sieht das Tacho so aus(werden manche kennen):
public VehStateCheck()
{
for(new i=0;i<MAX_PLAYERS;i++)
{
if(IsPlayerConnected(i) && GetPlayerState(i) == PLAYER_STATE_DRIVER && !IsANoTachoVehicle(GetPlayerVehicleID(i)))
{
if(M_Bot[i][PAFK] == 0)
{
new Float:health,vehicleid = GetPlayerVehicleID(i),string[256],Float:value,Float:distance,Float:x,Float:y,Float:z;
GetPlayerPos(i, x, y, z);
distance = floatsqroot(floatpower(floatabs(floatsub(x,PCarPos[i][PCarX])),2)+floatpower(floatabs(floatsub(y,PCarPos[i][PCarY])),2)+floatpower(floatabs(floatsub(z,PCarPos[i][PCarZ])),2));
value = floatround(distance * 11000);
GetVehicleHealth(vehicleid,health);
if (health >= 900 && health <= 1000)
{
format(string, sizeof(string), "~n~~n~~n~~n~~n~~n~~n~~n~~w~%d~g~ KM/H~n~~w~%d ~b~/~w~ %d~r~ Benzin~n~~g~~h~%s",floatround(value/1400),Gas[vehicleid],GetGasMax(GetVehicleModel(vehicleid)),VehicleName[GetVehicleModel(vehicleid)-400]);
GameTextForPlayer(i,string,850,3);
}
else if (health >= 600 && health < 900)
{
format(string, sizeof(string), "~n~~n~~n~~n~~n~~n~~n~~n~~w~%d~g~ KM/H~n~~w~%d ~b~/~w~ %d~r~ Benzin~n~~g~%s",floatround(value/1400),Gas[vehicleid],GetGasMax(GetVehicleModel(vehicleid)),VehicleName[GetVehicleModel(vehicleid)-400]);
GameTextForPlayer(i,string,850,3);
}
else if (health >= 380 && health < 600)
{
format(string, sizeof(string), "~n~~n~~n~~n~~n~~n~~n~~n~~w~%d~g~ KM/H~n~~w~%d ~b~/~w~ %d~r~ Benzin~n~~y~%s",floatround(value/1400),Gas[vehicleid],GetGasMax(GetVehicleModel(vehicleid)),VehicleName[GetVehicleModel(vehicleid)-400]);
GameTextForPlayer(i,string,850,3);
}
else if (health >= 0 && health < 380)
{
format(string, sizeof(string), "~n~~n~~n~~n~~n~~n~~n~~n~~w~%d~g~ KM/H~n~~w~%d ~b~/~w~ %d~r~ Benzin~n~~r~%s",floatround(value/1400),Gas[vehicleid],GetGasMax(GetVehicleModel(vehicleid)),VehicleName[GetVehicleModel(vehicleid)-400]);
GameTextForPlayer(i,string,850,3);
}
PCarPos[i][PCarX] = x;
PCarPos[i][PCarY] = y;
PCarPos[i][PCarZ] = z;
}
}
}
return 1;
}
Wo kann ich denn dort bestimmen, wo die Textdraw Koordinaten hin sollen?
Und wenn dies möglich ist, wäre es möglich das die Anzeige auch das Design von dem Textdraw hat?
Die Stayles habe ich bereits
//
Jetzt bin ich soweit das es schon in etwa so ausschaut
if(!IsAPlane(vehicle) && !IsABoat(vehicle) && !IsAFun(vehicle) && !IsASailingTest(vehicle) && !IsABike(vehicle))
{
if(distancenew > 80)
{
if(distancenew > 120)
{
format(newtext, sizeof(newtext), "%d / %d Benzin", Gas[vehicle],GetGasMax(GetVehicleModel(vehicle)));
TextDrawSetString(Textdraw6, newtext);
TextDrawShowForPlayer(playerid, Textdraw6);
}
else
{
format(newtext, sizeof(newtext), "%.0f Km/h", distancenew);
TextDrawSetString(Textdraw8, newtext);
TextDrawShowForPlayer(playerid, Textdraw8);
}
}
format(newtext, sizeof(newtext), "%s", PlayerCarName[playerid]);
TextDrawSetString(Textdraw9, newtext);
TextDrawShowForPlayer(playerid, Textdraw9);
}
else
{
if(distancenew > 80)
{
if(distancenew > 120)
{
format(newtext, sizeof(newtext), "%d / %d Benzin", Gas[vehicle],GetGasMax(GetVehicleModel(vehicle)));
TextDrawSetString(Textdraw6, newtext);
TextDrawShowForPlayer(playerid, Textdraw6);
}
else
{
format(newtext, sizeof(newtext), "%.0f Km/h", distancenew);
TextDrawSetString(Textdraw8, newtext);
TextDrawShowForPlayer(playerid, Textdraw8);
}
}
else
{
format(newtext, sizeof(newtext), "%s", PlayerCarName[playerid]);
TextDrawSetString(Textdraw9, newtext);
TextDrawShowForPlayer(playerid, Textdraw9);
}
}
Aber funktionieren tut nur der Name. Die Anzeige der Km/h startet nur ab 80 und endet bei 120 wie es oben steht.
Vorher ging es auch ab 0 . Die Benzin anzeige geht auch nur wenn ich zB mit einem Sultan 98/100 Benzin habe. Steige ich in einen
Turismo ein steht dort auch 98/100 Benzin und wird erst beim nächsten Anzeigen aktuallisiert.
//Edit Editierung von Verbesserung
//Edit Editierungen eingetragen =)