Ich lass den Timer aber immer starten wen der Motor erfolgreich gestartet wurde
Sprich /motor, Motor ist an Timer läuft
Beiträge von [TgR]xBörkelx
-
-
Der soll ja dan nichtmehr laufen der Timer, wen der motor kaput ist = Timer aus
-
Ja, klar, das geht so ja auch nicht, deshalb habe ich es weg gemacht.
Warum hast du den Code verändert?Außerdem geben die Schleifen so keinen Sinn. Versuche es doch mal mit dem Code den ich dir gegeben habe, ohne was zu ändern.
Hab jetzt wieder alles gechekt, ich habe dem Timer einen Namen gegeben
autoput[playerid] = SetTimer("CheckHealth",1039,true);//Fahrzeug checkenund den so gemacht
KillTimer(autoput[i]);Müsste eig klappen oder, errors gibt es keine
Hab den so genommen wie du es gemacht hast, aber da musste noch ein killtimer rein und musste noch gespeichert werden in der datenbank-
-
SQL
Alles anzeigenC:\Users\Lukas\Desktop\TheGoldenReallife.pwn(15361) : error 028: invalid subscript (not an array or too many subscripts): "CheckHealth" C:\Users\Lukas\Desktop\TheGoldenReallife.pwn(15361) : warning 215: expression has no effect C:\Users\Lukas\Desktop\TheGoldenReallife.pwn(15361) : error 001: expected token: ";", but found "]" C:\Users\Lukas\Desktop\TheGoldenReallife.pwn(15361) : error 029: invalid expression, assumed zero C:\Users\Lukas\Desktop\TheGoldenReallife.pwn(15361) : fatal error 107: too many error messages on one line Compilation aborted.Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase 4 Errors.
public CheckHealth()
{
new engine,lightss,alarm,doors,bonnet,boot,objective,vehicleid,Float:vehiclehp;
for(new i=0; i<MAX_PLAYERS; i++)
for(new j=0;j<sStats[i][sAutos];j++)
{
if(IsPlayerConnected(i) && IsPlayerInAnyVehicle(i))
{
vehicleid = GetPlayerVehicleID(i);
GetVehicleParamsEx(vehicleid,engine,lightss,alarm,doors,bonnet,boot,objective);
GetVehicleHealth(vehicleid,vehiclehp);
if(vehiclehp <= 350 && engine == VEHICLE_PARAMS_ON)
{
SendClientMessage(i,0xFF6900AA,"Dieses Fahrzeug hat einen Motorschaden! Du kannst nicht mehr weiterfahren.");
SetVehicleHealth(vehicleid,350.0);
MotorDown[vehicleid] = 1;
VehicleStarted[vehicleid] = 0;
PlayerCar[i][j][cMSchaden] = 1;
KillTimer(CheckHealth[i]);
SetVehicleParamsEx(vehicleid,VEHICLE_PARAMS_OFF,lightss,alarm,doors,bonnet,boot,objective);
}
}
}
return 1;
}Der Fehler ist da wo der KillTimer ist.
-
OnGameModeInit
Es wäre warhscheinlich besser , das er erst startet wen der Motor angeschaltet wurde.
-
Hallo Leute undzwar habe ich folgendes Problem
SQL
Alles anzeigenC:\Users\Lukas\Desktop\TheGoldenReallife.pwn(15359) : error 028: invalid subscript (not an array or too many subscripts): "CheckHealth" C:\Users\Lukas\Desktop\TheGoldenReallife.pwn(15359) : warning 215: expression has no effect C:\Users\Lukas\Desktop\TheGoldenReallife.pwn(15359) : error 001: expected token: ";", but found "]" C:\Users\Lukas\Desktop\TheGoldenReallife.pwn(15359) : error 029: invalid expression, assumed zero C:\Users\Lukas\Desktop\TheGoldenReallife.pwn(15359) : fatal error 107: too many error messages on one line Compilation aborted.Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase 4 Errors.
Bei folgendem Code
forward CheckHealth(playerid);
SetTimer("CheckHealth",1039,true);//Fahrzeug checken
public CheckHealth(playerid)
{
new vid = GetPlayerVehicleID(playerid);
new engine,lightss,alarm,doors,bonnet,boot,objective;
for(new i=0;i<sStats[i][sAutos];i++)
if(IsPlayerConnected(i) && IsPlayerInAnyVehicle(i))
{
new vehicleid = GetPlayerVehicleID(i);
new Float:vehiclehp;
GetVehicleHealth(vehicleid,vehiclehp);
if(vehiclehp <= 350)
{
SendClientMessage(playerid,0xFF6900AA,"Dieses Fahrzeug hat einen Motorschaden! Du kannst nicht mehr weiterfahren.");
SetVehicleHealth(vehicleid,350.0);
MotorDown[vehicleid] = 1;
KillTimer(CheckHealth[playerid]);
VehicleStarted[vid] = 0;
PlayerCar[playerid][i][cMSchaden] = 1;
GetVehicleParamsEx(vid,engine,lightss,alarm,doors,bonnet,boot,objective);
SetVehicleParamsEx(vid,VEHICLE_PARAMS_OFF,lightss,alarm,doors,bonnet,boot,objective);
}
}
return 1;
}So das sind alle Zeilen, es kommt auch in keiner weiteren Zeile das Wort "CheckHealth" vor.
Ich brauche eure Hilfe.
Ihr könnt es so umscripten das es funktioniert, oder mit Tipps geben.
MFG -
Alles gemacht
C:\Users\Lukas\Desktop\TheGoldenReallife.pwn(15346) : error 017: undefined symbol "i"
C:\Users\Lukas\Desktop\TheGoldenReallife.pwn(15359) : error 028: invalid subscript (not an array or too many subscripts): "chvt"
C:\Users\Lukas\Desktop\TheGoldenReallife.pwn(15359) : warning 215: expression has no effect
C:\Users\Lukas\Desktop\TheGoldenReallife.pwn(15359) : error 001: expected token: ";", but found "]"
C:\Users\Lukas\Desktop\TheGoldenReallife.pwn(15359) : error 029: invalid expression, assumed zero
C:\Users\Lukas\Desktop\TheGoldenReallife.pwn(15359) : fatal error 107: too many error messages on one lineCompilation aborted.Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase
5 Errors.
-
forward chvt();
public chvt()
{
new engine,lightss,alarm,doors,bonnet,boot,objective;
for(new i,vid,Float:vehiclehp;i<MAX_PLAYERS;i++)
{
if(IsPlayerConnected(i) && IsPlayerInAnyVehicle(i))
{
vid = GetPlayerVehicleID(i);
GetVehicleHealth(vid,vehiclehp);
if(vehiclehp <= 350)
{
SendClientMessage(playerid,0xFF6900AA,"Dieses Fahrzeug hat einen Motorschaden! Du kannst nicht mehr weiterfahren.");
SetVehicleHealth(vehicleid,350.0);
MotorDown[vehicleid] = 1;
KillTimer(chvtt[playerid]);
VehicleStarted[vid] = 0;
PlayerCar[playerid][i][cMSchaden] = 1;
GetVehicleParamsEx(vid,engine,lightss,alarm,doors,bonnet,boot,objective);
SetVehicleParamsEx(vid,VEHICLE_PARAMS_OFF,lightss,alarm,doors,bonnet,boot,objective);
}
}
}
return 1;
}
Schreib den Callback mal so.Du musst "playerid" zu "i" ändern.
Könntest du mir damit helfen.
Hatte ne lange Pawno Pause ca.4 Moante und ich habe den großteil wieder vergessen -
forward chvt();
public chvt()
{
new engine,lightss,alarm,doors,bonnet,boot,objective;
for(new i,vid,Float:vehiclehp;i<MAX_PLAYERS;i++)
{
if(IsPlayerConnected(i) && IsPlayerInAnyVehicle(i))
{
vid = GetPlayerVehicleID(i);
GetVehicleHealth(vid,vehiclehp);
if(vehiclehp <= 350)
{
SendClientMessage(playerid,0xFF6900AA,"Dieses Fahrzeug hat einen Motorschaden! Du kannst nicht mehr weiterfahren.");
SetVehicleHealth(vehicleid,350.0);
MotorDown[vehicleid] = 1;
KillTimer(chvtt[playerid]);
VehicleStarted[vid] = 0;
PlayerCar[playerid][i][cMSchaden] = 1;
GetVehicleParamsEx(vid,engine,lightss,alarm,doors,bonnet,boot,objective);
SetVehicleParamsEx(vid,VEHICLE_PARAMS_OFF,lightss,alarm,doors,bonnet,boot,objective);
}
}
}
return 1;
}
Schreib den Callback mal so.C:\Users\Lukas\Desktop\TheGoldenReallife.pwn(15346) : error 017: undefined symbol "playerid"
C:\Users\Lukas\Desktop\TheGoldenReallife.pwn(15348) : error 017: undefined symbol "playerid"
C:\Users\Lukas\Desktop\TheGoldenReallife.pwn(15349) : error 017: undefined symbol "playerid"
C:\Users\Lukas\Desktop\TheGoldenReallife.pwn(15351) : error 017: undefined symbol "playerid"
C:\Users\Lukas\Desktop\TheGoldenReallife.pwn(15356) : error 017: undefined symbol "playerid"
C:\Users\Lukas\Desktop\TheGoldenReallife.pwn(15359) : error 028: invalid subscript (not an array or too many subscripts): "chvt"
C:\Users\Lukas\Desktop\TheGoldenReallife.pwn(15359) : error 017: undefined symbol "playerid"
C:\Users\Lukas\Desktop\TheGoldenReallife.pwn(15359) : error 029: invalid expression, assumed zero
C:\Users\Lukas\Desktop\TheGoldenReallife.pwn(15359) : fatal error 107: too many error messages on one lineCompilation aborted.Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase
9 Errors.
-
Das macht doch kein Sinn.
Du rufst einen Timer auf, und in dem Callback wird wieder ein Timer aufgerufen der den Motorschaden checkt.
SetTimer("chvt",1039,true);//OnGameModeInitforward chvt(playerid);
public chvt(playerid)
{
new vid = GetPlayerVehicleID(playerid);
new engine,lightss,alarm,doors,bonnet,boot,objective;
for(new i=0;i<sStats[playerid][sAutos];i++)
if(IsPlayerConnected(playerid) && IsPlayerInAnyVehicle(playerid))
{
new vehicleid = GetPlayerVehicleID(playerid);
new Float:vehiclehp;
GetVehicleHealth(vehicleid,vehiclehp);
if(vehiclehp <= 350)
{
SendClientMessage(playerid,0xFF6900AA,"Dieses Fahrzeug hat einen Motorschaden! Du kannst nicht mehr weiterfahren.");
SetVehicleHealth(vehicleid,350.0);
MotorDown[vehicleid] = 1;
KillTimer(chvtt[playerid]);
VehicleStarted[vid] = 0;
PlayerCar[playerid][i][cMSchaden] = 1;
GetVehicleParamsEx(vid,engine,lightss,alarm,doors,bonnet,boot,objective);
SetVehicleParamsEx(vid,VEHICLE_PARAMS_OFF,lightss,alarm,doors,bonnet,boot,objective);
}
}
return 1;
}
Das brauchst du eigentlich nur. Den anderen Timer kannst du weglassen, der ist unnötig.Dann kommt wieder des
C:\Users\Lukas\Desktop\TheGoldenReallife.pwn(15359) : error 028: invalid subscript (not an array or too many subscripts): "chvt"
C:\Users\Lukas\Desktop\TheGoldenReallife.pwn(15359) : warning 215: expression has no effect
C:\Users\Lukas\Desktop\TheGoldenReallife.pwn(15359) : error 001: expected token: ";", but found "]"
C:\Users\Lukas\Desktop\TheGoldenReallife.pwn(15359) : error 029: invalid expression, assumed zero
C:\Users\Lukas\Desktop\TheGoldenReallife.pwn(15359) : fatal error 107: too many error messages on one lineCompilation aborted.Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase
4 Errors.
-
Komplette Code.
Könnt ihr umstellen soll aber bitte das Selbe bezwecken.
new chvtt2[MAX_PLAYERS];
SetTimer("chvtt",1039,true);//Fahrzeug checken
forward chvtt(playerid);
public chvtt(playerid)
{
SetTimer("chvt",1039,true);//Fahrzeug checken
}
forward chvt(playerid);
public chvt(playerid)
{
new vid = GetPlayerVehicleID(playerid);
new engine,lightss,alarm,doors,bonnet,boot,objective;
for(new i=0;i<sStats[playerid][sAutos];i++)
if(IsPlayerConnected(playerid) && IsPlayerInAnyVehicle(playerid))
{
new vehicleid = GetPlayerVehicleID(playerid);
new Float:vehiclehp;
GetVehicleHealth(vehicleid,vehiclehp);
if(vehiclehp <= 350)
{
SendClientMessage(playerid,0xFF6900AA,"Dieses Fahrzeug hat einen Motorschaden! Du kannst nicht mehr weiterfahren.");
SetVehicleHealth(vehicleid,350.0);
MotorDown[vehicleid] = 1;
KillTimer(chvtt[playerid]);
VehicleStarted[vid] = 0;
PlayerCar[playerid][i][cMSchaden] = 1;
GetVehicleParamsEx(vid,engine,lightss,alarm,doors,bonnet,boot,objective);
SetVehicleParamsEx(vid,VEHICLE_PARAMS_OFF,lightss,alarm,doors,bonnet,boot,objective);
}
}
return 1;
} -
Folgendes funktioniert bei mir
new chvtt2[MAX_PLAYERS];
forward chvtt(playerid)
public chvtt(playerid)
{
SetTimer("chvt",1039,true);//Fahrzeug checken
}Falls du noch ein Public hast welches sich chvt nennt.
Kommt bei mir der selve Fehler immernoch
-
Ich habe das Oben weggemacht, und es kommt der selbe Fehler
-
Ja , ist des falsch ?
-
Das ist korrekt das weiß ich auch,
wen ich des mache kommt den. -
Der Timer heißt "chvt" und der public "chvtt"
-
Hallöchen, ich arbeite immernoch an meinem Motorschaden System,
doch wens Compiled kommt da desDas ist die Zeile
public chvtt(playerid)
{
SetTimer("chvt",1039,true);//Fahrzeug checken
}Und oben ist es so
new chvtt[MAX_PLAYERS];Weiß jemande den Fail, habe alles versucht.
MFG -
Versuche doch mal mit einem Timer das Public auszuführen, dann dürfte es gehen.
Des habe ich mir auch gedacht, aber ich idiot muss ja direkt immer alles hierreinposten , ohne nachzudenken.
Vielen Dank (Y) -
Hallöchen ,
und zwar habe ich ein Problem ich hab da was gescriptet, und es soll eig so von stattenn gehen , des macht es aber nicht
public CheckVehicleHealths(playerid)
{
new vid = GetPlayerVehicleID(playerid);
new engine,lightss,alarm,doors,bonnet,boot,objective;
for(new i=0;i<sStats[playerid][sAutos];i++)
if(IsPlayerConnected(playerid) && IsPlayerInAnyVehicle(playerid))
{
new vehicleid = GetPlayerVehicleID(playerid);
new Float:vehiclehp;
GetVehicleHealth(vehicleid,vehiclehp);
if(vehiclehp <= 350)
{
SendClientMessage(playerid,0xFF6900AA,"Dieses Fahrzeug hat einen Motorschaden! Du kannst nicht mehr weiterfahren.");
SetVehicleHealth(vehicleid,350.0);
MotorDown[vehicleid] = 1;
VehicleStarted[vid] = 0;
PlayerCar[playerid][i][cMSchaden] = 1;
GetVehicleParamsEx(vid,engine,lightss,alarm,doors,bonnet,boot,objective);
SetVehicleParamsEx(vid,VEHICLE_PARAMS_OFF,lightss,alarm,doors,bonnet,boot,objective);
}
}
return 1;
}Muss ich da noch ein Timer machen oder ?
MFG -