Busfahrer Job Help pls

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • Hey, Leute ich bin Neu hier und habe ein Problem.


    Undzwar kann ich recht gut Scripten also die Standard sachen aber ich kapiere nicht wie man bei einem Job Checkpoints hinzufügt.


    Und zwar möchte ich einen Busfahrer Job machen dieser Checkpoints abfahren muss und am Ende der Route Geld verdient.


    Ich kapiere jedoch nicht wie das mit den Checkpoints gehen soll.


    Ich weiß das ich es selbst lernen soll hab ich aber schon versucht bitte um Hilfe.





    MFG Toast

  • Das beste wäre wenn jemand so einen befehl machen könnte gleich mit checkpoints damit ich mir das anschauen kann den in einem script ist das zu sehr unübersichtlich meiner meinung nach da ich selbst schon geschaut habe.



    Bitte um Hilfe.


    Toastiii

  • Ist recht Simpele, ich zeige dir mal hier meine Methode.



    Zu erst musst du ganz oben unter deinen #includes etwas definieren:


    new Busfahrt[MAX_PLAYERS];



    So, nun haben wir eine Variable definiert die sich "Busfahrer" nennt, was fangen wir nun mit dieser an?


    wir erstellen uns einen Befehl ( Ich nutze hier bei OCMD):


    OCMD findest du HIER


    Befehl:


    ocmd:busfahrt(playerid, params[])
    {
    SetPlayerCheckpoint(X,Y,Z,Größe);
    Busfahrt[playerid] = 1; // Hier springt er zu "Busfahrt 1" das unter OnPlayerEnterCheckpoint zu finden ist.
    return 1;
    }



    public OnPlayerEnterCheckpoint
    {
    if(Busfahrt[playerid] == 1) // wenn er /busfahrt eingeben hat im chat, wird der Checkpoint gesetzt, und wenn man durch ihn hin durch fährt soll was passieren:
    {
    GiveMoneyPlayer(playerid,150); // Hier bekommt er das Geld da er durch den Ersten Checkpoint gefahren ist.
    DisablePlayerCheckpoint(playerid); // Hier wird der Checkpoint gelöscht.
    SetTimerEx("BussRoute1", 1000, 0, "i", playerid); // Hier ist nun unser Timer der den Neuen Checkpoint anzeigen lassen wird.
    }
    if(Busfahrt[playerid] == 2)
    {
    GiveMoneyPlayer(playerid,150); // Hier bekommt er wieder +150 $ an Geld
    DisablePlayerCheckpoint(playerid); // Hier wird der Checkpoint wieder gelöscht.
    SetTimerEx("BussRoute2", 1000, 0, "i", playerid); // Hier ist nun wieder unser Timer der den nächsten Checkpoint anzeigen lässt..
    }
    if(Busfahrt[playerid] == 3) // Hier endet seine Reise.
    {
    DisablePlayerCheckpoint(playerid);
    SetTimerEx("BussRoute3", 1000, 0, "i", playerid);
    }
    }
    return 1;
    }


    forward BussRoute1(playerid); // Hier erstellen wir unseren public
    public BussRoute1(playerid) // Hier ist er und wird folgendes ausführen:
    {
    SetPlayerCheckpoint(playerid,X,Y,Z,Größe); // Variable anpassen, dann wird der Checkpoint gesetzt.
    Busfahrt[playerid] = 2; // dann springt er zum 2ten bei "OnPlayerEnterCheckpoint
    return 1;
    }


    forward BussRoute2(playerid); // Hier erstellen wir unseren public
    public BussRoute2(playerid) // Hier ist er und wird folgendes ausführen:
    {
    SetPlayerCheckpoint(playerid,X,Y,Z,Größe); // Variable anpassen, dann wird der Checkpoint gesetzt.
    Busfahrt[playerid] = 3; // dann springt er zu Busfahrt[playerid] == 3)
    return 1;
    }


    forward BussRoute3(playerid); // Hier erstellen wir unseren public
    public BussRoute3(playerid) // Hier ist er und wird folgendes ausführen:
    {
    SendClientMessage(playerid,-1,"Fahrt abgeschlossen");
    return 1;
    }



    Edit: OCMD - Include hinzugefügt.


    bei fragen einfach fragen ;)



    Grüße

    3 Mal editiert, zuletzt von Equ ()

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Zu Recosend Fressend oder nicht? :o
    Ich habe es so:
    Oben im Script: new TRUCKCP[MAX_PLAYERS];

    ocmd:trucker(playerid,params[]){ if(SpielerInfo[playerid][sJob]==1) { if(IsPlayerInRangeOfPoint(playerid,3,542.6373,-1291.2743,17.2422)) { new truckerveh; truckerveh = truckerveh = CreateVehicle(433,540.7483,-1289.0284,17.2422,323.9335,1,1,60000); PutPlayerInVehicle(playerid,truckerveh,0); SendClientMessage(playerid,FARBE_WEISS,"[{00FFFF}SERVER{FFFFFF}]: Du hast denn Job Trucker begonnen. Fahre nun zum Los Sontos Air Port!"); SetPlayerCheckpoint(playerid,556.1179,-1264.8286,17.7162,5); TRUCKCP[playerid]=1; } else { SendClientMessage(playerid,FARBE_WEISS,"[{00FFFF}SERVER{FFFFFF}]: Du bist an Trucker Punkt! Schaue im /navi nach."); } } else SendClientMessage(playerid,FARBE_WEISS,"[{00FFFF}SERVER{FFFFFF}]: Du hast nicht denn Job Trucker!"); return 1;}



    public OnPlayerEnterCheckpoint(playerid){ DisablePlayerCheckpoint(playerid); if(TRUCKCP[playerid] == 1) { DisablePlayerCheckpoint(playerid); SetPlayerCheckpoint(playerid,2081.6399,-2283.9111,13.9835,5); TRUCKCP[playerid] = 2; return 1; } if(TRUCKCP[playerid] == 2) { DisablePlayerCheckpoint(playerid); SetPlayerCheckpoint(playerid,-1011.2007,-692.5569,31.7349,5); TRUCKCP[playerid] = 3; TogglePlayerControllable(playerid,0); SetTimerEx("FreezeTimer",5000,0,"d",playerid); return 1; } if(TRUCKCP[playerid] == 3) { DisablePlayerCheckpoint(playerid); SetPlayerCheckpoint(playerid,556.1179,-1264.8286,17.7162,5); TRUCKCP[playerid] = 4; TogglePlayerControllable(playerid,0); SetTimerEx("FreezeTimer",5000,0,"d",playerid); return 1; } if(TRUCKCP[playerid] == 4) { DisablePlayerCheckpoint(playerid); SendClientMessage(playerid,FARBE_WEISS,"[{00FFFF}SERVER{FFFFFF}]: Du hast den Job abgeschlossen."); GivePlayerMoney(playerid,1150); SendClientMessage(playerid,FARBE_WEISS,"[{00FFFF}SERVER{FFFFFF}]: Du hast 1150$ bekommen"); SpielerSpeichern(playerid); new TRUCKENDE; TRUCKENDE = GetPlayerVehicleID(playerid); DestroyVehicle(TRUCKENDE); return 1; } return 1;}




    Musst natürlich alles an dein Script anpassen, CheckPoints änder und co... Soll nur ein Beispiel sein.

  • zu ressourcen fressend o.O, Deins ist doch das selbe ??

  • zu ressourcen fressend o.O, Deins ist doch das selbe ??

    Nein, du hast dies noch mit drinne:


    forward BussRoute1(playerid); // Hier erstellen wir unseren public
    public BussRoute1(playerid) // Hier ist er und wird folgendes ausführen:
    {
    SetPlayerCheckpoint(playerid,X,Y,Z,Größe); // Variable anpassen, dann wird der Checkpoint gesetzt.
    Busfahrt[playerid] = 2; // dann springt er zum 2ten bei "OnPlayerEnterCheckpoint
    return 1;
    }


    forward BussRoute2(playerid); // Hier erstellen wir unseren public
    public BussRoute2(playerid) // Hier ist er und wird folgendes ausführen:
    {
    SetPlayerCheckpoint(playerid,X,Y,Z,Größe); // Variable anpassen, dann wird der Checkpoint gesetzt.
    Busfahrt[playerid] = 3; // dann springt er zu Busfahrt[playerid] == 3)
    return 1;
    }


    forward BussRoute3(playerid); // Hier erstellen wir unseren public
    public BussRoute3(playerid) // Hier ist er und wird folgendes ausführen:
    {
    SendClientMessage(playerid,-1,"Fahrt abgeschlossen");
    return 1;
    }



    Was ich Sinnlos finde...

  • Wenn ich hier nochmal was dazu sagen darf.
    Ich würde dir die letzen 2 Methoden echt abraten...
    Die sind einfach viel zu resourcen fressend.


    Wenn möchtest kann ich dir ein komplett resourcensparendes System über Team Viever / PM zeigen!


    Hochachtungsvoll.
    Xtreme