[Tutorial] Einfaches Farm System erstellen.

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
  • Guten Mittag Breadfish
    Das ist mein 1 Toturial nun erkläre ich euch wie mann ein einfaches Mehdrescher ernte system erstellt.
    Da ich gesehen habe noch sehr viele probleme damit haben.


    Was Brauchen wir?


    Ein Script
    Geduld
    Pawno
    Grund kenntnisse


    Los gehts:


    01: als erstes definieren wir den checkpoint das machen wir mit:


    new Farmc[MAX_PLAYER_NAME];


    02: nun müssen wir den checkpoint starten lassen:
    das können wir peer befehl,dialog,beim einsteigen machen.


    wir nehmen mal beim einsteigen:



    public OnPlayerStateChange(playerid, newstate, oldstate) // public wenn er im fahrzeug sitzt
    {
    new carid = GetPlayerVehicleID(playerid); // Wir definieren carid das brauchen wir sonst gibts errors
    if(carid == 532) // Die Vehicle ID vom mehdrescher & die abfrage ob es der mehdrescher ist
    {
    SendClientMessage(playerid,Deinefarbe,"Fahre nun die Checkpoints ab um das Korn zu ernten."); // Euer text kann mann ändern wie mann will
    SetPlayerCheckpoint(playerid,X,Y,Z,5.0); // wir erstellen den 1 checkpoint (X,Y,Z Ersetzen)
    Farmc[playerid] = 1; // wir setzen die virabel auf 1 für die abfrage
    }
    return 1;
    }


    03: was passieren soll wenn er den checkpoint betritt:



    public OnPlayerEnterCheckpoint(playerid) // public wenn er den checkpoint betritt
    {
    if(Farmc[playerid] == 1) // die abfrage mit der wir abfragen ob die virabel auf 1 ist
    {
    DisablePlayerCheckpoint(playerid); // Checkpoint den alten löschen.
    SetPlayerCheckpoint(playerid,X,Y,Z,5.0); // wir erstellen den 2 checkpoint (X,Y,Z Ersetzen)
    Farmc[playerid] = 2; // für den 3 checkpoint
    return 1;
    }
    if(Farmc[playerid] == 2) // die abfrage mit der wir abfragen ob die virabel auf 2 ist
    {
    DisablePlayerCheckpoint(playerid); // Checkpoint den alten löschen.
    SetPlayerCheckpoint(playerid,X,Y,Z,5.0); // wir erstellen den 3 checkpoint (X,Y,Z Ersetzen)
    Farmc[playerid] = 3; // für die letze abfrage
    return 1;
    }
    if(Farmc[playerid] == 3) // die abfrage mit der vir abfragen ob die virabel auf 3 ist
    {
    DisablePlayerCheckpoint(playerid); // Checkpoint den alten löschen.
    GivePlayerMoney(playerid,50); // wir geben dem spieler zur belohnung 50$ (50 ändern in eure wunsch zahl)
    SendClientMessage(playerid,Deinefarbe,"Du hast das Korn feld abgemeht."); // der schlußsatz
    }
    return 1;
    }


    So die Checkpoint reihe bei OnPlayerCheckpoint kann mann soweit setzen wie mann will
    ich hoffe ich konnte den einen oder anderen damit helfen wenn ihr gerne es mit befehl oder dialog
    haben möchtet sagt bescheid dann schreibe ich gleich noch v.1.1


    Info: es ist für anfänger gedacht und fortgeschrittene bei fehlern / verbesserungen bitte drauf hinweisen


    LG: Qini


    (E) GivePlayerMoney (ein , zuviel)
    (E) GetPlayerVehicleID (Kleiner fehler (playerid) vergessen) / update kommt nacher

    2 Mal editiert, zuletzt von Quini ()

  • Wieso machst du

    Zitat

    new Farmc[MAX_PLAYER_NAME];

    dort MAX_PLAYER_NAME wenn du dort "playerid" verwendest anstatt Namen?o0
    Da kommt eig. MAX_PLAYERS hin...


    Naja,ist ziemlich simpel ohne weitere Funktionen z.b Trinkgeld oder wechselnden Gehalt das man nicht immer 50 bekommt...


    5/10*


    Lg
    Hardcore

  • new FarmCP[MAX_PLAYERS];


    public OnPlayerStateChange(playerid, newstate, oldstate) // public wenn er im fahrzeug sitzt
    {
    new carid = GetVehicleModel;
    if(carid == 532)
    {
    SendClientMessage(playerid,Deinefarbe,"Fahre nun die Checkpoints ab um das Korn zu ernten."); // Euer text kann mann ändern wie mann will
    SetPlayerCheckpoint(playerid,X,Y,Z,5.0); // wir erstellen den 1 checkpoint (X,Y,Z Ersetzen)
    FarmCP[playerid] = 1; // wir setzen die virabel auf 1 für die abfrage
    }
    return 1;
    }


    public OnPlayerEnterCheckpoint(playerid) // public wenn er den checkpoint betritt
    {
    if(Farmc[playerid] == 1) {DisablePlayerCheckpoint(playerid);SetPlayerCheckpoint(playerid,X,Y,Z,5.0);FarmCP[playerid] = 2;}
    if(Farmc[playerid] == 2) {DisablePlayerCheckpoint(playerid);SetPlayerCheckpoint(playerid,X,Y,Z,5.0);FarmCP[playerid] = 3;}
    if(Farmc[playerid] == 3) { FarmCP[playerid] = 0; DisablePlayerCheckpoint(playerid);GivePlayerMoney(playerid,50); SendClientMessage(playerid,Deinefarbe,"Du hast das Korn feld abgemeht.");}
    }




    Bisschen bearbeitet.

    Du suchst eine nette Community, ein hilfsbereites Team & einen Server, wo es Spaß macht, drauf zu spielen?
    Dann bist du bei Sunrise - Reallife genau richtig!

  • habe einen error und einen warn hier:

    C:\Users\acer\Desktop\0.3c\gamemodes\NEUERSERVER.pwn(670) : error 076: syntax error in the expression, or invalid function call
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    1 Error.


    und hier die zeile für den error

    new carid = GetVehicleModel; // Wir definieren carid das brauchen wir sonst gibts errors


    //EDIT warn ist weg

    Einmal editiert, zuletzt von [Markus] ()

  • der error wieder in dieser zeile

    C:\Users\acer\Desktop\0.3c\gamemodes\NEUERSERVER.pwn(670) : error 017: undefined symbol "vehicleid"



    new carid = GetVehicleModel(vehicleid);

  • keine errors aber wenn ich einseige passiert nichts kein checkpoint oder nichts geschriben...

  • Hallo


    Versuch es mal so:


    public OnPlayerStateChange(playerid, newstate, oldstate) // public wenn er im fahrzeug sitzt
    {
    new vehicleid = GetPlayerVehicleID(playerid); //Fragt die VehicleID ab
    new vehiclemodel = GetVehicleModel(vehicleid); //Fragt mithilfe der VehicleID den Typ des Fahrzeuges ab
    if(vehiclemodel == 532) // Die Vehicle ID vom mehdrescher & die abfrage ob es der mehdrescher ist
    {
    SendClientMessage(playerid,Deinefarbe,"Fahre nun die Checkpoints ab um das Korn zu ernten."); // Euer text kann mann ändern wie mann will
    SetPlayerCheckpoint(playerid,-172.9887,5.0194,3.1094,5.0); // wir erstellen den 1 checkpoint (X,Y,Z Ersetzen)
    Farmc[playerid] = 1; // wir setzen die Variabel auf 1 für die Abfrage
    }
    return 1;
    }


    MfG dUDA