also würde das so gehen
for(new c = 0; c < MAX_VEHICLES; c++)
{
new Float:health;
new veh;
veh = GetPlayerVehicleID(playerid);
GetVehicleHealth(veh, health);
if(health >400)
{
SendClientMessage(playerid,0xFF0000FF,"Debug!");
//ausfürung
}
}
Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!
Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
-
-
N E I N, wie oft denn noch?!?!?!
In der Abfrage GetVehicleHealth() muss das "veh"
durch die Variable aus der Schleife, also durch "c" ersetzt werden. -
if(strcmp(cmdtext,"/Motor", true) == 0)
{
new Float:health;
new vehicleid = GetPlayerVehicleID(playerid);
GetVehicleHealth(vehicleid,health);
if(health >= 300)
{
new engine,lights,alarm,doors,bonnet,boot,objective;
new cveh = GetPlayerVehicleID(playerid);
if(IsPlayerInAnyVehicle(playerid) &&(GetPlayerState(playerid)==PLAYER_STATE_DRIVER))
{
if(cveh != INVALID_VEHICLE_ID)
{
if(EngineStatus[playerid] == 0)
{
GetVehicleParamsEx(cveh,engine,lights,alarm,doors,bonnet,boot,objective);
SetVehicleParamsEx(cveh,VEHICLE_PARAMS_ON,lights,alarm,doors,bonnet,boot,objective);
EngineStatus[playerid] = 1;
GetPlayerName(playerid, sendername, sizeof(sendername));
format(string, sizeof(string), "%s betätigt die Zündung. Der Motor springt an.", sendername);
ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
gGas[playerid] = 1;
}
else if(EngineStatus[playerid] == 1)
{
GetVehicleParamsEx(cveh,engine,lights,alarm,doors,bonnet,boot,objective);
SetVehicleParamsEx(cveh,VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective);
EngineStatus[playerid] = 0;
GetPlayerName(playerid, sendername, sizeof(sendername));
format(string, sizeof(string), "%s schaltet den Motor ab.", sendername);
ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
gGas[playerid] = 1;
}
}
}
else {
SendClientMessage(playerid, COLOR_RED, "Sie befinden sich in keinem Fahrzeug.");
}
}
else
{
SendClientMessage(playerid,COLOR_RED,"Ihr Fahrzeug hat einen Motorschaden, rufen sie einen ADAC.");
}
}
nicht sicher ob 1:1 kopiert von einem (ehemals) erfolgreichen Server -
nicht sicher ob 1:1 kopiert von einem (ehemals) erfolgreichen ServerWas soll der Unsinn denn jetzt?
Das hat überhaupt nichts mit der Funktion des Timers zu tun.
Welch unnötiger Beitrag...
-
dann gibt er aber das aus
error 017: undefined symbol "playerid"
error 017: undefined symbol "playerid"
warning 204: symbol is assigned a value that is never used: "veh"forward Motorschaden();
public Motorschaden()
{
for(new c = 0; c < MAX_VEHICLES; c++)
{
new Float:health;
new veh;
veh = GetPlayerVehicleID(playerid);
GetVehicleHealth(c, health);
if(health >400)
{
SendClientMessage(playerid,0xFF0000FF,"Debug!");
//ausfürung
}
}
return 1;
} -
Die Variable veh braucht du garnicht. Also musst du auch die 2 Zeilen löschen. (new veh; und veh = ... )
//Edit: Aber warum sollte man eig. alle Cars überprüfen. Wäre es nicht sinnvoller alle Spieler zu überprüfen und wenn dieser in einem Fahrzeug ist auf die Hp des Cars zu schauen? Naja wie man es letztendlich macht ist jedem selbst überlassen, aber man muss ja nicht jeder Car das einfach nur in der Base steht permanent überprüfen.
-
ok habe ich am ende auch gemerkt
bin zu müde XD
ich teste mal und lass ein edit da -
Ja, natürlich musst du auch eine Schleife für die Spieler erstellen.
Woher soll die Funktion playerid auch nehmen.
for(new i = 0; i < MAX_PLAYERS; i++)
(
SendClientMessage(i, ...)
)// Edit
Auch Tralox Vorschlag ist richtig.
Mach's, wie du es für richtig hälst. -
Was soll er jetzt aufeinmal mit der playerid? Ihr geht die ganze Zeit mit der Schleife über die Cars und jetzt soll er auch noch alle Player durchgehen? Entweder man geht über alle Cars oder über alle Player. Aber nicht über beides.
-
es geht nicht habe kein fehler in script
aber wen ich unter 400 bin kann ich immer noch fahren es kommt auch keine naricht nix -
-
Du hast in der if-Abfrage auch > und nicht < verwendet. Außerdem willst du ja wie ich sehe den Spieler aus dem Car werfen. Also wäre es doch sinnvoller wie ich gesagt habe alle Spieler zu überprüfen und nicht die Cars da du ja die playerid brauchst und nicht die carid. Versuch deswegen am besten so:
forward Motorschaden();
public Motorschaden()
{
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i) {
if(IsPlayerInAnyVehicle(i) {
new Float:health;
new veh;
veh = GetPlayerVehicleID(i);
GetVehicleHealth(veh, health);
if(health < 400)
{
SendClientMessage(i,0xFF0000FF,"Debug!");
//ausfürung
}
}
}
}
return 1;
}// Edit Habs gerade frei aus dem Kopf geschrieben falls Fehler kommen einfach schreiben welche.
-
-
ihr seit die besten es geht endlich und ich id*** habe nur schleife vergessen sollte noch mal lernen XD
//CLOSSE
-
breadfish.de
Hat das Thema geschlossen.