Komischerweise standen die Autos trotzdem noch auf dem Objekt, als ich durch das Objekt gefallen bin
Beiträge von FLASH.[8743]
-
-
Was ist wenn man den Stream radius größer stellt gehts dann?
-
Ok, und wie fixx ich das, das beim streamer der untergrund nicht verschwindet 20 meter vor ende der strecke?
-
Hallo,
Ich habe immer folgendes Problem mit dem Object Streamer:
CreateDynamicObject(16685,X,Y,Z,0.0000000,0.0000000,90.0000000,-1,-1,-1,3000,3000); //object(cn2_rnway_bit2); (1);
Undzwar wenn ich auf diesem Objekt langfahre bis zum Ende, dann verschwindet es ca. 20 Meter vor ende bzw. es wird gelöscht ich weis nicht warum.
Object ID 16685 und ich habe auch einige Probleme, dass man durch manche Objekte einfach durchlaufen kann z.B. eine Garage oder sowas & manche Objecte spawnen viel zu spät bzw. erst 1m vor mir obwoh streamer distance 3000 ist und draw distance 3000?
Habe ich was falsch gemacht?Server.cfg:
Mfg,
-
Hallo, besteht eine möglichkeit die Kamera in SAMP zu drehen, dass man so einen Editior in SAMP hat wie MTA Map Editior ?
Danke
-
-
Danke Leude, es funzt
-
Was soll ich dann stattdessen nehmen?
-
Hi Leute,
Ich habe einen Kilometerstand gescriptet aber der zählt total schnell rauf.
Ich glaube da ist irgendwas falsch oder??
// Funktion mit Tacho
if(GetVehicleKilometerStand(vehicleid) > 10)
{
VehicleInfo[vehicleid][MStand] += floatround(floatdiv(GetVehicleKilometerStand(vehicleid), 60.0));
}
if(VehicleInfo[vehicleid][MStand] > 9)
{
VehicleInfo[vehicleid][KMStand] += 1;
VehicleInfo[vehicleid][MStand] = 0;
}stock GetVehicleKilometerStand(vehicleid)
{
new Float: POS[4];
GetVehicleVelocity(vehicleid, POS[0], POS[1], POS[2]);
POS[3] = floatsqroot(floatpower(floatabs(POS[0]), 2.0) + floatpower(floatabs(POS[1]), 2.0) + floatpower(floatabs(POS[2]), 2.0)) * 180;
return floatround(POS[3]);
} -
So, und damit hätte ich den glaube auch gefixxt.
Tausend Dank für deine Geduld & Hilfe -
ENDLICH GESCHAFFT!
Aber irgendwie ist der eine TextDraw immer noch verbuggt, der kein PlayerTextDraw ist.
Der verschwindet immer irgendwie, aber naja liegt denke mal an samp.
Davor war der Fehler ja noch nicht -
Also:
Der eigentliche Text wird jetzt angezeigt aber nicht wie gewünscht
public UpdateVehicleAnzeigeTimer(playerid)
{
new engine, lights, alarm, doors, bonnet, boot, objective, string[512], Float: health, maxliter, vehicleid, enginestate[32], lightstate[32], carlockstate[32];
vehicleid = GetPlayerVehicleID(playerid);
maxliter = VehicleInfo[vehicleid][MaxTank];
maxliter /= 100;
GetVehicleHealth(vehicleid,health);
if(vehicleid == 0) return 1;
GetVehicleParamsEx(vehicleid,engine,lights,alarm,doors,bonnet,boot,objective);
format(string,sizeof(string),"Fahrzeugname: ~w~%s~n~",VehicleNames[GetVehicleModel(vehicleid) - 400];
PlayerTextDrawSetString(playerid,Fahrzeuganzeige[playerid][0],string);
format(string,sizeof(string),"%i%%~n~",VehicleInfo[vehicleid][Tank]/ maxliter); // Hier soll Vehicleinfo... geteilt durch maxliter stattfinden
PlayerTextDrawSetString(playerid,Fahrzeuganzeige[playerid][2],string);
format(string,sizeof(string),"Geschwindigkeit: ~r~%i ~y~km/h",GetVehicleSpeed(vehicleid));
PlayerTextDrawSetString(playerid,Fahrzeuganzeige[playerid][1],string);
return 1;
}Irgendwie hat das Script immer an der Stelle unterbrochen, wo die Rechnung war:
VehicleInfo[vehicleid][Tank]/ maxliter)
Als ich da nur Vehicleinfo[...] hingeschreiben habe, ging alles wie gewünscht, aber die Anzeige wird nicht aktualisiert.
Wegen dieser Rechnung ist das Script immer genau an dieser Stelle gestoppt worden.Also das Script soll bitte an dieser Stelle Dividieren deswegen / aber / geht nicht genauso wenig wie /= beides geht nicht?
Wie dividiert man diese beiden Variablen, sodass es nun endlich klappt??Danke
-
So, der Fehler is nun gefixxt..
Was war der Fehler??
Der Fehler lag hier:
format(string,sizeof(string),"%i%%~n~",VehicleInfo[vehicleid][Tank]/maxliter); // Hier sollte eigentlich Liter geteilt durch Maximal Liter werden.So jetzt hat er es zwar gemacht, aber ich will ja dass die Anzeige angezeigt wird. Wie kann man sonst noch teilen?
-
-
public UpdateVehicleAnzeigeTimer(playerid)
{
new engine, lights, alarm, doors, bonnet, boot, objective, string[512], Float: health, maxliter, vehicleid, enginestate[32], lightstate[32], carlockstate[32];
vehicleid = GetPlayerVehicleID(playerid);
maxliter = VehicleInfo[vehicleid][MaxTank];
maxliter /= 100;
GetVehicleHealth(vehicleid,health);
printf("playerid: %d | vehicleid: %d", playerid, vehicleid);GetVehicleParamsEx(vehicleid,engine,lights,alarm,doors,bonnet,boot,objective);
print("Fahrzeuganzeige[playerid][0] gesetzt");
format(string,sizeof(string),"Fahrzeugname: %s",VehicleNames[GetVehicleModel(vehicleid) - 400]);
print(string);
PlayerTextDrawSetString(playerid,Fahrzeuganzeige[playerid][0],string);
print("Fahrzeuganzeige[playerid][1] gesetzt");
format(string,sizeof(string),"Geschwindigkeit: ~r~%i ~y~km/h",GetVehicleSpeed(vehicleid));
print(string);
PlayerTextDrawSetString(playerid,Fahrzeuganzeige[playerid][1],string);
format(string,sizeof(string),"%i%%~n~",VehicleInfo[vehicleid][Tank]/maxliter); // DAS IST DER VERBUGGTE TEXTDRAW
print(string);
PlayerTextDrawSetString(playerid,Fahrzeuganzeige[playerid][2],string);
print("Fahrzeuganzeige[playerid][2] gesetzt");
return 1;
} -
Es kommen immer diese Zeilen:
Codeplayerid: 0 | vehicleid: 1 Fahrzeuganzeige[playerid][0] gesetzt Fahrzeugname: ~w~Infernus~n~n Fahrzeuganzeige[playerid][1] gesetzt Geschwindigkeit: ~r~0 ~y~km/h~ playerid: 0 | vehicleid: 0 // Sobald ich aussteige kommt diese Zeile und dann wird das Script beendet Fahrzeuganzeige[playerid][0] gesetzt
Das kommt immer
-
Ok, das Problem hätten wir gelöst.
Allerdings wird der eine TextDraw immer noch nicht angezeigt wie vorher auch.. -
Aber wie soll ich das anstellen?
Der soll ja in die Schleife
Also außerhalb der Schleife kann ich den nicht benutzen da ist i nicht definiert -
Es wird alles gesetzt bis auf die 2.
Der Wert entspricht dem gewünschten.
Was mir auffällt, ist, dass der Timer nicht wie gewünscht gekillt wird??
Vielleciht entstehen dadurch die Bug, denn obwohl ich ausgesteiegen bin, printet er ordentlich"playerid: 0 | vehicleid: 0
Fahrzeuganzeige[playerid][0] gesetzt"das kommt in einer sekunde mehrmals..
Mir ist auch aufgefallen, dass er manchmal die playerid 1 manchmal 0 nimmt.
(Beide sind connectet aber keiner in diesem Fahrzeug??)Hier nochmal der Code:
public IsPlayerDriverTextDrawCheck()
{
for(new i=0; i<MAX_PLAYERS; i++)
{
if(GetPVarInt(i,"ImFahrzeug")==0)
{
if(IsPlayerInAnyVehicle(i) && GetPlayerState(i) == PLAYER_STATE_DRIVER)
{
SetPVarInt(i,"ImFahrzeug",1);
for(new r=0; r<MAX_FAHRZEUGANZEIGETEXT; r++)
{
updatevehicleanzeigetimer[i] = SetTimerEx("UpdateVehicleAnzeigeTimer",250,true,"i",i);
PlayerTextDrawShow(i,Fahrzeuganzeige[i][r]);
}
for(new s=0; s<MAX_VEHICLEANZEIGETEXT; s++)
{
PlayerTextDrawShow(i,Vehicleanzeigetext[i][s]);
}
}
}
else if(GetPVarInt(i,"ImFahrzeug")==1)
{
if(!IsPlayerInAnyVehicle(i) || GetPlayerState(i) != PLAYER_STATE_DRIVER && GetVehicleDriver(i) != i)
{
SetPVarInt(i,"ImFahrzeug",0);
for(new r=0; r<MAX_FAHRZEUGANZEIGETEXT; r++)
{
PlayerTextDrawHide(i,Fahrzeuganzeige[i][r]);
}
for(new s=0; s<MAX_VEHICLEANZEIGETEXT; s++)
{
PlayerTextDrawHide(i,Vehicleanzeigetext[i][s]);
}
KillTimer(updatevehicleanzeigetimer[i]);
}
}
}
return 1;
} -
Bitteschön:
public UpdateVehicleAnzeigeTimer(playerid)
{
new engine, lights, alarm, doors, bonnet, boot, objective, string[512], Float: health, maxliter, vehicleid, enginestate[32], lightstate[32], carlockstate[32];
vehicleid = GetPlayerVehicleID(playerid);
maxliter = VehicleInfo[vehicleid][MaxTank];
maxliter /= 100;
GetVehicleHealth(vehicleid,health);
GetVehicleParamsEx(vehicleid,engine,lights,alarm,doors,bonnet,boot,objective);
format(string,sizeof(string),"Fahrzeugname: ~w~%s",VehicleNames[GetVehicleModel(vehicleid) - 400]);
PlayerTextDrawSetString(playerid,Fahrzeuganzeige[playerid][0],string);
format(string,sizeof(string),"Geschwindigkeit: ~r~%i ~y~km/h~",GetVehicleSpeed(vehicleid));
PlayerTextDrawSetString(playerid,Fahrzeuganzeige[playerid][1],string);
format(string,sizeof(string),"%i%%~n~",VehicleInfo[vehicleid][Tank]/maxliter);
PlayerTextDrawSetString(playerid,Fahrzeuganzeige[playerid][2],string);
return 1;
}