Beiträge von Frank Bullitt

    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..

    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.

    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.

    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;
    }

    Wenn ich mein Script damit compilen will, bekomme ich folgenden Error:


    Code
    C:\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_OnGameModeInit


    Vielleicht 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