Job scripten

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
  • Hallo Leute,


    ich haben schon über das Suchsystem gesucht aber nichts gefunden.


    Wie scripte ich einen Job (Selfmade, kein GF)? Also alles komplet mit dem icon usw. Wo kommt beim Script was hin? Woran erkennt das script wenn z.b. ein Trucker net im Truck sietzt?


    Würde mich über eure hilfe sehr freuen.



    MfG


    samed93

    ----- [Streets-of-Germany] Reallifeserver -----
    ----- ServerIP: 94.249.157.199:6564 -----
    ----- Forum: www.sog-rl.de -----
    ----- TeamSpeak³ IP: Zur Zeit Off -----

  • Bitte, dass sollte helfen:


    new Menu:JobMenu;
    new JobPickup;


    public OnGameModeInit()
    {
    JobMenu = CreateMenu("JobMenu", 1, 220.0, 350.0, 200.0);
    AddMenuItem(JobMenu, 0, "Job 1");
    AddMenuItem(JobMenu, 0, "Job 2");
    AddMenuItem(JobMenu, 0, "Job 3");
    AddMenuItem(JobMenu, 0, "Job 4");
    JobPickup = CreatePickup(Blah Blah...);
    }


    public OnPlayerPickUpPickup(playerid, pickupid)
    {
    if(pickupid == JobPickup) ShowMenuForPlayer(JobMenu, playerid);
    return 1;
    }


    public OnPlayerSelectedMenuRow(playerid, row)
    {
    if(GetPlayerMenu(playerid) == JobMenu)
    {
    if(row == 0)
    {
    //Wenn er den ersten Job auswählt..
    }
    else if(row == 2)
    {
    //Wenn er den zweiten Job auswählt (Wenn Vorhanden)..
    }
    else if(row == 3)
    {
    //Wenn er den dritten Job auswählt (Wenn Vorhanden)..
    }
    else if(row == 4)
    {
    //Wenn er den vierten Job auswählt (Wenn Vorhanden)..
    }
    }
    }

    Mfg Templer


    >>Dein Breadfish-Thema im Unterforum ScriptingBase / Scriptingwünsche wurde nicht richtig beantworter?<<
    >>Es handelt sich um ein Programmier Problem und du nicht einfach weiter kommst wo der Fehler sein könnte?<<
    Dann melde dich bei mir über die PN-Funktion indem du den Link zu deinem Breadfish-Themen Problem schickst.
    Voraussetzung:
    Thema älter als 1 Tag und im Breadfish Forum gespostet!

  • Ich würde dir aber die Dialog statt den alten Menüs empfehlen...

    Zitat

    "Woran erkennt das script wenn z.b. ein Trucker net im Truck sietzt?"


    Da kannst du IsPlayerInAnyVehicle benutzen oder auch GetVehicleModel in Kombination mit GetPlayerVehicleID es gibt verschiedene möglichkeiten.

    Zitat

    Also alles komplet mit dem icon


    Was für ein Icon? Das i machst du mit CreatePickup oder AddStaticPickup, das Symbol auf der Karte mit SetPlayerMapIcon

  • OK Danke für eure Hilfe. Ich werde es mal probieren.


    MfG


    samed93


    /edit:


    So ich habe das jetzt erstmal so gemacht:


    #include <a_samp>


    main()
    {
    print("\n----------------------------------");
    print(" ARGE");
    print("----------------------------------\n");
    }
    new Menu:JobMenu;
    new JobPickup;
    public OnGameModeInit()
    {
    //ARGE
    JobMenu = CreatePickup(1239,2,1488.5376,-1770.2936,18.7958,-1); //ARGE-Pickup;
    JobMenu = CreateMenu("JobMenu", 1, 220.0, 350.0, 200.0);
    AddMenuItem(JobMenu, 0, "Job 1");
    AddMenuItem(JobMenu, 0, "Job 2");
    AddMenuItem(JobMenu, 0, "Job 3");
    AddMenuItem(JobMenu, 0, "Job 4");
    return 1;
    }
    public OnPlayerPickUpPickup(playerid,pickupid)
    {
    if(pickupid == JobPickup) ShowMenuForPlayer(JobMenu, playerid);
    {
    if(row == 0)
    {
    //Wenn er den ersten Job auswählt..
    }
    else if(row == 2)
    {
    //Wenn er den zweiten Job auswählt (Wenn Vorhanden)..
    }
    else if(row == 3)
    {
    //Wenn er den dritten Job auswählt (Wenn Vorhanden)..
    }
    else if(row == 4)
    {
    //Wenn er den vierten Job auswählt (Wenn Vorhanden)..
    }
    }
    }


    Nun bekomme ich 4 Errors und 1 Warning:


    C:\Users\Iljaz\Desktop\samp-Server\filterscripts\pickup-job.pwn(17) : warning 213: tag mismatch
    C:\Users\Iljaz\Desktop\samp-Server\filterscripts\pickup-job.pwn(30) : error 017: undefined symbol "row"
    C:\Users\Iljaz\Desktop\samp-Server\filterscripts\pickup-job.pwn(34) : error 017: undefined symbol "row"
    C:\Users\Iljaz\Desktop\samp-Server\filterscripts\pickup-job.pwn(38) : error 017: undefined symbol "row"
    C:\Users\Iljaz\Desktop\samp-Server\filterscripts\pickup-job.pwn(42) : error 017: undefined symbol "row"
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase


    4 Errors.


    Freue mich über jede Hilfe.


    MfG


    samed93

    ----- [Streets-of-Germany] Reallifeserver -----
    ----- ServerIP: 94.249.157.199:6564 -----
    ----- Forum: www.sog-rl.de -----
    ----- TeamSpeak³ IP: Zur Zeit Off -----

    Einmal editiert, zuletzt von samed93 ()

  • Schau bitte auf meinen Code nochmal drauf und kopiers richtig ab, Danke..

    Mfg Templer


    >>Dein Breadfish-Thema im Unterforum ScriptingBase / Scriptingwünsche wurde nicht richtig beantworter?<<
    >>Es handelt sich um ein Programmier Problem und du nicht einfach weiter kommst wo der Fehler sein könnte?<<
    Dann melde dich bei mir über die PN-Funktion indem du den Link zu deinem Breadfish-Themen Problem schickst.
    Voraussetzung:
    Thema älter als 1 Tag und im Breadfish Forum gespostet!

  • Ah OK, ich hab meine Brille nicht an deswegen die vielen Fehler :D


    Danke für deine Hilfe. Du hast mir sehr geholfen.


    MfG


    samed93


    /edit:




    So weit so gut.


    Was ich noch dazu gescriptet hab (also was leichtes für ein Anfänger): Wenn ein spieler im Menü z.b. ,,Trucker,, wählt und dann wird dort kurz mit SendClientMessage der Job beschrieben. Wie scripte ich jetzt ,,/accept job,, und den Job ,,Trucker,, mit 2 Checkpoints (laden,entladen) und dass der dann geld kriegt?


    MfG


    samed93


    Das habe ich bisjetzt dank Templer:


    #include <a_samp>


    main()
    {
    print("\n----------------------------------");
    print(" ARGE");
    print("----------------------------------\n");
    }
    new Menu:JobMenu;
    new JobPickup;
    public OnGameModeInit()
    {
    //ARGE
    JobMenu = CreateMenu("JobMenu", 1, 220.0, 350.0, 200.0);
    AddMenuItem(JobMenu, 0, "Trucker");
    AddMenuItem(JobMenu, 0, "2.Job");
    AddMenuItem(JobMenu, 0, "3.Job");
    AddMenuItem(JobMenu, 0, "4.Job");
    JobPickup = CreatePickup(1239,2,1488.5376,-1770.2936,18.7958,-1); //ARGE-Pickup;
    return 1;
    }
    public OnPlayerPickUpPickup(playerid,pickupid)
    {
    if(pickupid == JobPickup) ShowMenuForPlayer(JobMenu, playerid);
    return 1;
    }
    public OnPlayerSelectedMenuRow(playerid, row)
    {
    if(GetPlayerMenu(playerid) == JobMenu)
    {
    if(row == 0)
    {
    SendClientMessage(playerid,1,"Info: Bei diesem Job musst du waren Laden und Entladen");
    SendClientMessage(playerid,1,"Um den Job zu wählen Tippe:/accept job");
    }
    else if(row == 2)
    {
    //Wenn er den zweiten Job auswählt (Wenn Vorhanden)..
    }
    else if(row == 3)
    {
    //Wenn er den dritten Job auswählt (Wenn Vorhanden)..
    }
    else if(row == 4)
    {
    //Wenn er den vierten Job auswählt (Wenn Vorhanden)..
    }
    }
    }

    ----- [Streets-of-Germany] Reallifeserver -----
    ----- ServerIP: 94.249.157.199:6564 -----
    ----- Forum: www.sog-rl.de -----
    ----- TeamSpeak³ IP: Zur Zeit Off -----

    2 Mal editiert, zuletzt von samed93 ()

  • Habs so einfach wie möglich für dich dargestellt:

    #include <a_samp>


    main()
    {
    print("\n----------------------------------");
    print(" ARGE");
    print("----------------------------------\n");
    }
    new Menu:JobMenu;
    new Menu:JobMenu2;
    new JobPickup;


    new gChosenJob[MAX_PLAYERS]; //Variable zum speichern der JobID was Spieler ausgewählt hat..


    public OnGameModeInit()
    {
    //ARGE
    JobMenu = CreateMenu("JobMenu", 1, 220.0, 350.0, 200.0);
    AddMenuItem(JobMenu, 0, "Trucker");
    AddMenuItem(JobMenu, 0, "2.Job");
    AddMenuItem(JobMenu, 0, "3.Job");
    AddMenuItem(JobMenu, 0, "4.Job");

    //Neues Menu ^^
    JobMenu2 = CreateMenu("JobMenu", 1, 220.0, 350.0, 200.0);
    AddMenuItem(JobMenu2, 0, "Job annehmen");
    AddMenuItem(JobMenu2, 0, "Job ablehnen");
    //

    JobPickup = CreatePickup(1239,2,1488.5376,-1770.2936,18.7958,-1); //ARGE-Pickup;
    return 1;
    }
    public OnPlayerPickUpPickup(playerid,pickupid)
    {
    if(pickupid == JobPickup) ShowMenuForPlayer(JobMenu, playerid);
    return 1;
    }
    public OnPlayerSelectedMenuRow(playerid, row)
    {
    if(GetPlayerMenu(playerid) == JobMenu2)
    {
    if(row == 0)
    {
    ShowMenuForPlayer(JobMenu, playerid);
    PlayerInfo[playerid][pJob] = gChosenJob[playerid]; //Die Variable pJob ist aus dem GF ^^ Bedeutet, der ausgewählte job bekommt Spieler zugeteilt!
    if(gChosenJob[playerid] == 1) SendClientMessage(playerid, 0xFFFFFF00, "Du hast den Trucker Job angenommen!");
    else if(gChosenJob[playerid] == 2) SendClientMessage(playerid, 0xFFFFFF00, "Du hast den 2. Job angenommen!");
    else if(gChosenJob[playerid] == 3) SendClientMessage(playerid, 0xFFFFFF00, "Du hast den 3. Job angenommen!");
    else if(gChosenJob[playerid] == 4) SendClientMessage(playerid, 0xFFFFFF00, "Du hast den 4. Job angenommen!");
    }
    else ShowMenuForPlayer(JobMenu, playerid);
    }
    if(GetPlayerMenu(playerid) == JobMenu)
    {
    if(row == 0)
    {
    SendClientMessage(playerid,1,"Info: Bei diesem Job musst du waren Laden und Entladen");
    ShowMenuForPlayer(JobMenu2, playerid); //Zeigt das neue Menü für Spieler
    gChosenJob[playerid] = 1; //Die JobID vom Truckerjob, indemfall 1 würde ich halt so sagen ^^
    }
    else if(row == 2)
    {
    //Wenn er den zweiten Job auswählt (Wenn Vorhanden)..
    ShowMenuForPlayer(JobMenu2, playerid); //Zeigt das neue Menü für Spieler
    gChosenJob[playerid] = 1; //Die JobID vom 2.Job, indemfall 2
    }
    else if(row == 3)
    {
    //Wenn er den dritten Job auswählt (Wenn Vorhanden)..
    ShowMenuForPlayer(JobMenu2, playerid); //Zeigt das neue Menü für Spieler
    gChosenJob[playerid] = 1; //Die JobID vom 2.Job, indemfall 2
    }
    else if(row == 4)
    {
    //Wenn er den vierten Job auswählt (Wenn Vorhanden)..
    ShowMenuForPlayer(JobMenu2, playerid); //Zeigt das neue Menü für Spieler
    gChosenJob[playerid] = 1; //Die JobID vom 2.Job, indemfall 2
    }
    }
    }

    Mfg Templer


    >>Dein Breadfish-Thema im Unterforum ScriptingBase / Scriptingwünsche wurde nicht richtig beantworter?<<
    >>Es handelt sich um ein Programmier Problem und du nicht einfach weiter kommst wo der Fehler sein könnte?<<
    Dann melde dich bei mir über die PN-Funktion indem du den Link zu deinem Breadfish-Themen Problem schickst.
    Voraussetzung:
    Thema älter als 1 Tag und im Breadfish Forum gespostet!

  • 8D ich will ned unnötig die Leute damit verwirren ^^ Natürlich könnte ich es so scripten damit es sehr gut läuft, aber die sollen ja auch was lernen

    Mfg Templer


    >>Dein Breadfish-Thema im Unterforum ScriptingBase / Scriptingwünsche wurde nicht richtig beantworter?<<
    >>Es handelt sich um ein Programmier Problem und du nicht einfach weiter kommst wo der Fehler sein könnte?<<
    Dann melde dich bei mir über die PN-Funktion indem du den Link zu deinem Breadfish-Themen Problem schickst.
    Voraussetzung:
    Thema älter als 1 Tag und im Breadfish Forum gespostet!

  • Bei dem Script bekomm ich eine Fehlermeldung. Und zwar bei dieser Zeile..

    Code
    PlayerInfo[playerid][pJob] = gChosenJob[playerid]; //Die Variable pJob ist aus dem GF ^^ Bedeutet, der ausgewählte job bekommt Spieler zugeteilt!


    Da steht die Variable pJob ist aus dem GF. Wie mach ich sie für ein Selfmade Script nutzbar ?