Beiträge von EvilToastBrot



    Das Problem bei SetVehicleVelocity(vehicleid,99999,99999,z); ist, dass du nicht die Beschleunigung nach vorne sondern in die Richtung 99999 und 99999 hast.
    Hiermit bekommst du eine Beschleunigung nach vorne:


    new vID, Float:Xvelo, Float:Yvelo, Float:Zvelo, Float:rot;
    vID = GetPlayerVehicleID(playerid);
    GetVehicleVelocity(vID, Xvelo, Yvelo, Zvelo);
    GetVehicleZAngle(vID, rot);
    Xvelo=Xvelo+(floatcos(rot+90, degrees)*1.5);
    Yvelo=Yvelo+(floatcos(360-rot, degrees)*1.5);
    SetVehicleVelocity(vID, Xvelo, Yvelo, Zvelo);


    Musst eben noch so umbauen, dass es bremst und dann könnte es funktionieren ^^

    Habs getestet. Und jetzt ist mir aufgefallen, dass egal in welchem Car ich bin, IMMER 1 returnt wird. Egal ob PlayerCar[i][Job] == 1 bzw. PlayerCar[i][Job] == 2 stimmt oder nicht.
    Aber jetz bin ich ja wieder am Anfang, weil ich weiß, dass die Funktionen nicht funktionieren. Sieht da jemand nen Fehler?

    Jap sind alle Integer. Sonst würde der Compiler ja meckern ^^


    Das steht davor:
    if(VehInfo[GetPlayerVehicleID(playerid)][Motor])
    {
    new en, li, al, doors, bo, boot, obj;
    GetVehicleParamsEx(GetPlayerVehicleID(playerid), en, li, al, doors, bo, boot, obj);
    SetVehicleParamsEx(GetPlayerVehicleID(playerid), VEHICLE_PARAMS_ON, VEHICLE_PARAMS_ON, al, doors, bo, boot, obj);
    SendClientMessage(playerid, Yellow, "Der Motor läuft und du kannst fahren!");
    }
    else if(!VehInfo[GetPlayerVehicleID(playerid)][Motor])
    {
    new en, li, al, doors, bo, boot, obj;
    GetVehicleParamsEx(GetPlayerVehicleID(playerid), en, li, al, doors, bo, boot, obj);
    SetVehicleParamsEx(GetPlayerVehicleID(playerid), VEHICLE_PARAMS_OFF, VEHICLE_PARAMS_OFF, al, doors, bo, boot, obj);
    SendClientMessage(playerid, Yellow, "Der Motor ist aus! Du kannst ihn mit der Taste 'ALT' starten!");
    }

    N´Abend!


    Habe Trucks und Flugzeuge. Beide Laden Produkte.
    Wenn ich einsteige will ich, dass wenn es ein Truck ist, dass angezeigt wird: x/1000 Ladung ( x = Aktuelle Ladung )
    Und bei den Flugzeugen will ich, dass angezeigt wird: x/5000 Ladung ( x = Aktuelle Ladung )
    Bloß wenn ich in ein Flugzeug einsteige kommt x/5000 Ladung. Passt alles.
    Aber wenn ich in einen Truck einsteige kommt auch x/5000 Ladung. Hier soll aber x/1000 Ladung kommen.
    Hier der Code:


    Die beiden Funktionen


    stock IsATruck(ii)
    {
    for(new i = 0; i<MAX_VEHICLES; i++)
    {
    if(PlayerCar[i][vid] == ii)
    {
    if(PlayerCar[i][JobCar] == 1)
    {
    if(PlayerCar[i][Job] == 1)
    {
    return 1;
    }
    }
    return 1;
    }
    }
    return 0;
    }


    stock IsAJobPlane(ii)
    {
    for(new i = 0; i<MAX_VEHICLES; i++)
    {
    if(PlayerCar[i][vid] == ii)
    {
    if(PlayerCar[i][JobCar] == 1)
    {
    if(PlayerCar[i][Job] == 2)
    {
    return 1;
    }
    }
    return 1;
    }
    }
    return 0;
    }


    Und OnPlayerStateChange:


    if(IsAJobPlane(GetPlayerVehicleID(playerid)))
    {
    new str[128];
    format(str, sizeof str, "%d/5000 Ladung", Load[GetPlayerVehicleID(playerid)]);
    SendClientMessage(playerid, Green, str);
    }
    else if(IsATruck(GetPlayerVehicleID(playerid)))
    {
    new str[128];
    format(str, sizeof str, "%d/1000 Ladung", Load[GetPlayerVehicleID(playerid)]);
    SendClientMessage(playerid, Green, str);
    }


    Aber:


    x/1000 Ladung UND x/5000 Ladung beim einsteigen kommt, wenn ich das so mache:

    if(IsAJobPlane(GetPlayerVehicleID(playerid)))
    {
    new str[128];
    format(str, sizeof str, "%d/5000 Ladung", Load[GetPlayerVehicleID(playerid)]);
    SendClientMessage(playerid, Green, str);
    }
    if(IsATruck(GetPlayerVehicleID(playerid)))
    {
    new str[128];
    format(str, sizeof str, "%d/1000 Ladung", Load[GetPlayerVehicleID(playerid)]);
    SendClientMessage(playerid, Green, str);
    }



    Warum will das nicht?
    Die Variablen passen, das hab ich geprüft.
    Hilfe wäre gut =)


    LG
    Evil

    Fehler seh ich jetzt keinen, aber das ganze wird mit mehreren Spielern nicht funktionieren. Dafür brauchst du schon für jeden Spieler ein giveplayerid. Sprich: new giveplayerid[MAX_PLAYERS]; und dann eben immer giveplayerid[playerid].
    Machs mal mit nem Array vllt funktionierts ja dann.

    Ahhhhhhhhhh, danke Sniper ;D
    Das wär mir nicht aufgefallen ^^


    //Edit: soll auch format(sform, sizeof sform, "/Players/%s.ini", pn(i)); heißen ^^


    //Edit:
    Das funktioniert immernoch nicht -.-
    Habe jetzt den Pfad ausgebessert. Will trozdem nicht funktionieren -.-

    (4090) : error 017: undefined symbol "LoadPlayerCar" --> Poste den Code der Funktion mal
    (7154) : warning 225: unreachable code --> Musst else if() machen statt nur else
    (7155) : warning 209: function "mysqlget" should return a value --> return 1 oder return 0 noch hinschreiben
    (7375) : error 017: undefined symbol "LoadPlayerCar" --> gleicher fehler wie oben
    (7446) : warning 217: loose indentation --> falsch eingerückt
    (7446) : error 029: invalid expression, assumed zero --> vllt den body der funktion ( { // Code .... } vergessen?
    (7446) : error 017: undefined symbol "LoadPlayerCar" --> wieder wie oben
    (752 : error 030: compound statement not closed at the end of file (started at line 7380) --> Hast vergessen ne } zu machen. Die { steht in Zeile 7380.


    So viel Spaß ^^