Beiträge von markus5268

    Moin Leute,
    ich wollte mich mal mit dem CreateDynamicCP vertraut machen und einen Trucker-Job erstellen.
    Allerdings funktioniert etwas nicht wie ich möchte und ich finde den Fehler einfach nicht :wacko:
    Ich bin noch nicht allzu lang am Scripten, daher entschuldigt, wenn ich kp hab. ^^


    Hier der die wichtigen Zeilen des Befehls zum Starten:
    ocmd:start(playerid, params[])
    {
    new vID = GetPlayerVehicleID(playerid);
    new vModel = GetVehicleModel(vID);
    if(vModel == 433 || vModel == 515)
    {
    StartTruckTour(playerid);
    }



    StartTruckTour:
    StartTruckTour(playerid){ trucker_point = CreateDynamicCP(844.4703,-599.3774,18.4219, 4, -1, -1, playerid, 1000000); SendClientMessage(playerid, WEISS, "Fahre zum Checkpoint!");}



    Und die Checkpoints:
    else if(checkpointid==trucker_point) { DestroyDynamicCP(trucker_point); new Float:x, Float:y, Float:z; new lieferpoint = random(7); switch(lieferpoint) { case 0: {x = 2280.8127; y = -51.0165; z = 26.7546;} case 1: {x = 2659.1575; y = -2101.1191; z = 13.2787;} case 2: {x = -2106.3787; y = -2417.9666; z = 30.3565;} case 3: {x = -1875.3271; y = -1721.7714; z = 21.4813;} case 4: {x = -1548.3743; y = 123.0933; z = 3.2863;} case 5: {x = -2262.7783; y = 2290.1992; z = 4.5516;} case 6: {x = -781.6492; y = 1436.3264; z = 13.5206;} case 7: {x = 1747.0815; y = 677.0488; z = 10.5516;} } truckerCP = CreateDynamicCP(x, y, z, 4.0, -1, -1, playerid, 1000000); SendClientMessage(playerid, GELB, "Fahre nun zum nächsten Checkpoint!"); } else if(checkpointid==truckerCP) { DestroyDynamicCP(truckerCP); new vID = GetPlayerVehicleID(playerid); new vModel = GetVehicleModel(vID); if(vModel == 433) { SetPVarInt(playerid, "Gehalt", GetPVarInt(playerid, "Gehalt") + 5000); SendClientMessage(playerid, WEISS, "Du erhältst am nächsten Zahltag 5000 $!"); } else if(vModel == 515) { if(GetVehicleTrailer(vID) == 1) { SetPVarInt(playerid, "Gehalt", GetPVarInt(playerid, "Gehalt") + 15000); SendClientMessage(playerid, WEISS, "Du erhältst am nächsten Zahltag 15000 $!"); } else { SetPVarInt(playerid, "Gehalt", GetPVarInt(playerid, "Gehalt") + 2000); SendClientMessage(playerid, WEISS, "Du erhältst am nächsten Zahltag nur 2000 $, da du die Ware (Anhänger) vergessen hast!"); } } else { SendClientMessage(playerid, ROT, "Trucktour fehlgeschlagen!"); }



    Das Problem ist, dass wenn man den zweiten Checkpoint (also truckerCP) erreicht hat, wird ein weiterer zufälliger Punkt auf der Karte markiert und es geht weiter, sodass man eine Endlosstrecke fahren muss.
    Er springt also, obwohl er jetzt im "truckerCP" sein sollte, wieder in "trucker_point". Woran liegt das? Danke im Vorraus. ?(


    edit: Wie rückt man den Scheiß normal ein? -.-

    ein return 1; in der schleife beendet sie, benutze es, und es kommt kein spam mehr.

    Achso, das löst schon mal das Problem, allerdings habe ich immer noch das, das er in die if-Abfrage nicht hineinspringen will mit dem "GetPlayerVehicleID".
    Ich setze mich in ein Fraktionsauto, doch trotzdem, springt er ins else, wodurch die Fehlernachricht wiederkommt

    was ein return 1; in einer schleife macht, ist dir aber bewusst?
    Söllte dir helfen ;)

    Um ehrlich zu sein, nein :D
    Bin aber auch ein Anfänger, das ist mein erster Versuch ein Script zu machen.
    Aber ich vermute mal, dass man durch ein return 1; wieder zum Anfang springt?
    Hab kp xD


    Traxter
    Wenn ich in einem Fraktionsauto sitze, sollte er ja in die if-Abfrage springen, was er nicht tut, um sicher zu gehen, dass es am "if(GetPlayerVehicleID(playerid) == fdc[i])" liegt, habe ich das else eingebaut, denn eig. wäre das else nicht nötig

    Moin Leute,
    ich habe beim Scripten folgendes Problem:
    public OnPlayerStateChange(playerid, newstate, oldstate){ if(newstate == PLAYER_STATE_DRIVER) //ist der Spieler Fahrer? { for(new i = 0; i<sizeof(fdc); i++) { if(GetPlayerVehicleID(playerid) == fdc[i]) //ist er in einem Fraktionsauto? { if(isPlayerInFrakt(playerid, 5)) //ist er in dieser Fraktion? { } else { SendClientMessage(playerid, ROT, "Du hast für dieses Fahrzeug keinen Schlüssel!"); RemovePlayerFromVehicle(playerid); } } else SendClientMessage(playerid, ROT, "Fehler"); } } return 1;}



    Wenn ihr euch fragt, wofür die Zeile "else SendClientMessage(playerid, ROT, "Fehler");" ist.
    Die ist nur dazu da, um ingame zu sehen wo das Problem liegt und genau da liegt es.
    Der Chat wurde sobald ich ins Fraktionsauto stieg, mit der Meldung "Fehler" zugespammt.
    Danke im Vorraus

    Hey Leute, ich finde den Fehler einfach nicht. :wacko: Findet ihr ihn?
    Danke im Vorraus.


    Vorm Main:
    #define Rathaus_Eingang



    Problemzeile im "OnGamemodeInit":
    Rathaus_Eingang = CreatePickup(1318, 1, 1310.1152,-1367.6425,13.5386);

    Der Rest im "OnPlayerPickUpPickup":
    if(pickupid==Rathaus_Eingang) { SetPlayerInterior(playerid, 12); SetPlayerPos(playerid, 2324.419921,-1145.568359,1050.710083); }


    @edit: kp, warum der 3. Quellcode in einer Zeile steht, aber ich habe alles richtig eingerückt!