Hm, kann ich mir eigentlich nicht vorstellen..
Hab alles überprüft kann jedoch keinen Fehler finden und wenn's tatsächlich ein Klammerfehler wäre, würde die Funktion wahrscheinlich garnicht funktionieren, aber für ID 0 geht es ja..
Beiträge von Frank Bullitt
-
-
Probire das:
if(IsPlayerInVehicle(i, v) && GetPlayerState(i) != PLAYER_STATE_DRIVER) // <--- Abfrage 2, die nur für ID 0 funktioniert
{
NoFuel[i] = 1;
GameTextForPlayer(i,"~w~~n~~n~~n~~n~~n~~n~~n~~n~Tank leer",1500,3);
}Also, das Ausrufezeichen (!) steht für nicht.
Also würde man damit jetzt abfragen, ob der Spieler in einem Fahrzeug ist und nicht der Fahrer ist.
Ich will das ja so, dass man im Fahrzeug sein muss und der Fahrer sein muss. -
probir:
if(!IsPlayerInVehicle(i, v)) // <--- Abfrage 2, die nur für ID 0 funktioniert
{
NoFuel[i] = 1;
GameTextForPlayer(i,"~w~~n~~n~~n~~n~~n~~n~~n~~n~Tank leer",1500,3);
}So ist's falsch, da wird abgefragt ob ich in keinem Auto sitze und wenn ja, wird mir die Meldung angezeigt die eigentlich kommen soll, wenn ich der Fahrer eines Fahrzeuges bin und der Tank leer ist.
-
Erstmal danke für deine schnelle Antwort, aber ich wollte das eigentlich so haben, wie ich's gemacht habe
Wollte nur eine Lösung für das Problem.
-
Hallo,
ich habe das Tanksystem vom Godfatherscript etwas umgebaut und für 0.3c angepasst.
Aber 2 if-Abfragen in der public CheckGas() werden nur mit ID 0 ausgeführt.
Hier die public:public CheckGas()
{
for(new i=0;i<MAX_PLAYERS;i++)
{
for(new v=0;v<MAX_VEHICLES;v++)
{
if(Gas[v] >= 1)
{
new engine, lights, alarm, doors, bonnet, boot, objective;
GetVehicleParamsEx(v, engine, lights, alarm, doors, bonnet, boot, objective);
if(engine == 1)
{
if(Gas[v] <= 10) { if(IsPlayerInVehicle(i, v) && GetPlayerState(i) == PLAYER_STATE_DRIVER) { PlayerPlaySound(i, 1085, 0.0, 0.0, 0.0); } } // <--- Abfrage 1, die nur für ID 0 funktioniert
if(IsAPlane(v) || IsABoat(v)) { Gas[v]++; }
Gas[v]--;
}
}
else
{
new engine,lights,alarm,doors,bonnet,boot,objective;
GetVehicleParamsEx(v,engine,lights,alarm,doors,bonnet,boot,objective);
SetVehicleParamsEx(v,VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective);
if(IsPlayerInVehicle(i, v) && GetPlayerState(i) == PLAYER_STATE_DRIVER) // <--- Abfrage 2, die nur für ID 0 funktioniert
{
NoFuel[i] = 1;
GameTextForPlayer(i,"~w~~n~~n~~n~~n~~n~~n~~n~~n~Tank leer",1500,3);
}
}
}
}
return 1;
}
Ich habe schon 2 for-Schleifen drin, aber scheint trotzdem nur für ID 0 zu funktionieren.Ich hoffe auf schnelle Antwort.
MfG
-
Machs mal so:
if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER)
{
SendClientMessage(playerid, COLOR_RED, "Du bist nicht der Fahrer!");
return 1;
} -
Mit F12, die Screens findest du im MTA Ordner unter 'screenshots'.
-
Eine andere Alternative, die man auch noch für unter 200 € bekommt, ist die Nvidia Geforce GTX 460.
Hier würde ich auch wieder Palit empfehlen. -
Ich hab die GTX 260 schon eine geraume Zeit und hatte noch nie Probleme damit.
Ich würde die von Palit nehmen. -
Ich selbst hab auch 'ne Nvidia Geforce GTX260 von Palit glaub ich.
Kann nur gutes über die Grafikkarte sagen -
Nein, wie gesagt, vor dem Desktoptool ging das Compilen immer, aber seit dem ich die Include drin hab, kommt dieser Error..
Außerdem funktioniert Junkbuster immer einwandfrei. -
Wenn ich mein Script damit compilen will, bekomme ich folgenden Error:
CodeC:\Users\Privat\Desktop\Reallife.pwn(9244) : error 021: symbol already defined: "JB_OnGameModeInit" Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase 1 Error.
"JB_OnGameModeInit" kommt nur in der Junkbuster.inc vor.
Vorher gab es nie Probleme beim Compilen.
Die Zeilen, die den Error verursachen könnten:
Desktop.inc:forward Desk_SecondTimer();
forward Desk_OnPlayerUpdate(playerid);
forward Desk_OnGameModeInit();#define Desk_OnPlayerUpdate OnPlayerUpdate
#define Desk_OnGameModeInit OnGameModeInit
Junkbuster.inc:forward JB_OnGameModeInit();
//OnGameModeInit
#if defined _ALS_OnGameModeInit
#undef OnGameModeInit
#else
#define _ALS_OnGameModeInit
#endif
#define OnGameModeInit JB_OnGameModeInitVielleicht kann mir ja jemand helfen
MfG
//EDIT: Code verbessert und Rechtschreibfehler gelöscht
-
Hab mich vertan
Das hier muss unter public OnVehicleSpawn(vehicleid):for(new v=0; v < MAX_VEHICLES; v++)
{
if(IsANoTachoVehicle(v))
{
new engine, lights, alarm, doors, bonnet, boot, objective;
GetVehicleParamsEx(v,engine,lights,alarm,doors,bonnet,boot,objective);
SetVehicleParamsEx(v,VEHICLE_PARAMS_ON,lights,alarm,doors,bonnet,boot,objective);
}
} -
Hab jetzt meine Lösung in meinen Gamemode unter public OnGameModeInit() so eingebaut:
ManualVehicleEngineAndLights();
for(new v=0; v < MAX_VEHICLES; v++)
{
if(Fahrrad(v))
{
new engine, lights, alarm, doors, bonnet, boot, objective;
GetVehicleParamsEx(v,engine,lights,alarm,doors,bonnet,boot,objective);
SetVehicleParamsEx(v,VEHICLE_PARAMS_ON,lights,alarm,doors,bonnet,boot,objective);
}
}
Aber InGame ist der "Motor" vom Fahrrad immernoch aus.
Was kann ich tun? -
Das hier muss unter public OnGameModeInit()
for(new v=0; v < MAX_VEHICLES; v++)
{
if(IsANoTachoVehicle(v))
{
new engine, lights, alarm, doors, bonnet, boot, objective;
GetVehicleParamsEx(v,engine,lights,alarm,doors,bonnet,boot,objective);
SetVehicleParamsEx(v,VEHICLE_PARAMS_ON,lights,alarm,doors,bonnet,boot,objective);
}
} -
Mit SetVehicleParamsEx.
Also ungefähr so:for(new v=0; v < MAX_VEHICLES; v++)
{
if(IsANoTachoVehicle(v))
{
new engine, lights, alarm, doors, bonnet, boot, objective;
GetVehicleParamsEx(v,engine,lights,alarm,doors,bonnet,boot,objective);
SetVehicleParamsEx(v,VEHICLE_PARAMS_ON,lights,alarm,doors,bonnet,boot,objective);
}
}//EDIT Pawncode überarbeitet
-
Du hast die falschen Klammern benutzt.
Versuch mal anstattif(!strlen{inputtext})
das hier:if(!strlen(inputtext))
-
Hier:
-
#edit2: Wo gibt es Pawno 'für' 0.3c?
-
Glaub das hier ist originale bizz.cfg von LoH 0.4, die in den scriptfiles Ordner muss: