Job - Hochseefisher

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,


    ich arbeite gerade an ein Hochseefisher Job



    Es gibt zwei verschiedene Fischerboote; ein kleines mit Platz für 2500 Fische,
    sowie ein großes mit Platz für 5000 Fische.


    Der Hochseefischer kann bis zu 5 Reusen auswerfen (kein Bestimmungsort, frei wählbar).
    Diese müssen jedoch mindestens 400 Meter voneinander entfernt sein.


    Reusen können nach frühstens 5 Minuten wieder eingezogen werden,
    die Anzahl der maximalen Fische in der Reuse erhöht sich jede Minute,
    bis zu ein Maximum von 15 Minuten, wodurch man auch mehr Geld erhält.
    Es kann natürlich auch vorkommen, das in der Reuse nichts oder wenig gefunden wir



    Was man Finden Kann nach den warten der 15 Minuten:
    Hering (80% Chance, Verkaufspreis: 3$)
    Makrele (70% Chance, Verkaufspreis: 4$)
    Lachs (60% Chance, Verkaufspreis: 5$)
    Forelle (50% Chance, Verkaufspreis: 6$)
    Rotbarsch (40% Chance, Verkaufspreis: 8$)
    Karpfen (35% Chance, Verkaufspreis: 10$)
    Seeteufel (15% Chance, Verkaufspreis: 16$)





    CMD:fishing(playerid)
    {
    ShowPlayerDialog(playerid, DIALOG_FISHING, DIALOG_STYLE_LIST,"Hochseefisher","Reuse 1: Auslegen\nReuse 2: Auslegen\nReuse 3: Auslegen\nReuse 4: Auslegen\nReuse 5: Auslegen\n\nGefangene Fische\nAbgabe Punkt","Weiter","Schließen");
    return 1;


    }



    case DIALOG_FISHING:
    {
    if(response)
    {
    if(listitem == 0)//Reuse 1
    {
    SendClientMessage(playerid, COLOR_GREEN, "Du legst Reuse 1 an dieser Position aus.");
    SendClientMessage(playerid, COLOR_GREEN, "Bitte warten...");
    }
    if(listitem == 1)//Reuse 2
    {
    SendClientMessage(playerid, COLOR_GREEN, "Du legst Reuse 2 an dieser Position aus.");
    SendClientMessage(playerid, COLOR_GREEN, "Bitte warten...");
    }
    if(listitem == 2)//Reuse 3
    {
    SendClientMessage(playerid, COLOR_GREEN, "Du legst Reuse 3 an dieser Position aus.");
    SendClientMessage(playerid, COLOR_GREEN, "Bitte warten...");
    }
    if(listitem == 3)//Reuse 4
    {
    SendClientMessage(playerid, COLOR_GREEN, "Du legst Reuse 4 an dieser Position aus.");
    SendClientMessage(playerid, COLOR_GREEN, "Bitte warten...");
    }
    if(listitem == 4)//Reuse 5
    {
    SendClientMessage(playerid, COLOR_GREEN, "Du legst Reuse 5 an dieser Position aus.");
    SendClientMessage(playerid, COLOR_GREEN, "Bitte warten...");
    }
    if(listitem == 5)//
    {
    //
    }
    if(listitem == 6)//
    {
    //
    }
    if(listitem == 7)//
    {
    ShowPlayerDialog(playerid, DIALOG_FISHING_1, DIALOG_STYLE_MSGBOX, "Hering:\t\t0\nMakrele:\t\t0\nLachs:\t\t0\nForelle:\t\t0\nRotbarsch:\t\t0\nKarpfen:\t\t0\nSeeteufel:\t\t0","Hochseefisher","Schlißen","");
    }
    }
    }



    enum e_fish
    {
    Hering,
    Makrele,
    Lachs,
    Forelle,
    Rotbarsch,
    Karpfen,
    Seeteufel


    };


    Wie oben angegeben die % Chance soll er z.b erhalten:



    Lachs: 45 Stück
    Karpfen: 9 Stück
    Hering : 177 Stück // 80% Chance darum soviel geht auch unter 100


    So wen ich jetzt die Reuse belibig ausgelegt habe und Sie nach 15 Minuten wider holen möchte sollte an der stelle ein Checkpoint kommen wo er Sie ausgelegt hat.
    (sollte 10 Sekunden warten bis er die Reuse rausgeholt hat und entfreezt werden.)



    Das selbe ist wen er jetzt zum abgabe Punkt fährt werden die Fische was er geladen hat automatisch verkauft (auch 10 Sekunden warten.)


    Soll die nachricht bekommen z.b Hering: Anzahl (1221$) -> Verkaufspreis ist oben angegeben



    Wäre echt super wen ihr mir da unterstützung geben könntet.

  • Ich komme nicht weiter wie ich es beschreibe..


    ich weiß nicht wie ich es auslesen soll die Chance Hering usw zu fangen es automatisch zu verkaufen 400m distanc das er wider eine Reuse auslegen kann wen er auf Reuse 1 geht ihm dialog das er ein Checkpoint bekommt wen er über 5min soll wird die Reuse automatisch aus dem wasser geholt wen er nicht die 5min gewartet hat soll wv min er noch warten muss als nachricht kommen

  • Gut dann gebe ich dir zu jedem bereich Funktionen die dir helfen werden.



    ich weiß nicht wie ich es auslesen soll die Chance Hering usw zu fangen


    Du generierst per random einen zufallswert mit dem du (wenn du es geschickt anstellst)
    eine Wahrscheinlichkeit aufbaust dass Wert x rauskommt.
    z.B. willst du dass er mit einer 10% Wahrscheinlichkeit fisch xyz fängt,
    dann machst du das hier.
    new randomvar=random(10);
    if(randomvar==5)
    fisch gefangen
    hier addierst du dann in der Variable einen fisch hinzu.
    else
    fisch nicht gefangen


    es automatisch zu verkaufen


    Wert in der Variable abziehen dafür per GivePlayerMoney Geld hinzufügen


    400m distanc


    IsPlayerInRangeOfPoint


    das er wider eine Reuse auslegen


    Kann er automatisch wenn er den Befehl wieder eingibt.


    kann wen er auf Reuse 1 geht ihm dialog das er ein Checkpoint bekommtwen er über 5min soll wird die Reuse automatisch aus dem wasser geholt wen er nicht die 5min gewartet hat soll wv min er noch warten muss als nachricht kommen


    Bei dem Rest kann man ein anständiges Deutsch erwarten. Was ich rauslesen konnte war dass du wohl eine Sperre einbauen willst. Dafür brauchst du SetTimerEx oder SetTimer + Schleife die die Spieler durchgeht

  • Also:


    Der Spieler muss pro Reuse 400m entfernt sein Reuse für Reuse.
    So wen der Spieler /fisching macht steht Reuse 1: Ausgelegt (z.b 1 Minute) -> So kann er sehn wielang die Reuse schon im Wasser liegt.
    angenommen die Reuse liegt jetzt 4 Minuten drinnen und er Sie rausholen möchte (Wen er in Checkpoint rein fährt sollte eine Nachricht kommen (er muss z.b noch x Minuten warten um die Reuse raus zu holen.


    Hat er die 5 Minuten gewartet und er holt die Reuse raus soll die % Chance wie folgt aussehn


    Hering (80% Chance, Verkaufspreis: 3$)
    Makrele (70% Chance, Verkaufspreis: 4$)
    Lachs (60% Chance, Verkaufspreis: 5$)
    Forelle (50% Chance, Verkaufspreis: 6$)
    Rotbarsch (40% Chance, Verkaufspreis: 8$)
    Karpfen (35% Chance, Verkaufspreis: 10$)
    Seeteufel (15% Chance, Verkaufspreis: 16$)



    So jetzt hat er Chance auf diese Fische die oben angegeben sind.
    Wen er jetzt sein Boot voll hat (2500/2500) kann er /fishing eingeben und den Abgabe punkt anklicken wen er da rein fährt sollte es automatisch verkauft werden.
    Oben sind die Verkaufspreise angegeben.
    Sollte halt angenommen (177 Hering pro Hering 3$ heißt es soll addiert werden.
    das genauso wie bei all anderen Fischen.



    ShowPlayerDialog(playerid, DIALOG_FISHING_1, DIALOG_STYLE_MSGBOX, "Hering:\t\t0\nMakrele:\t\t0\nLachs:\t\t0\nForelle:\t\t0\nRotbarsch:\t\t0\nKarpfen:\t\t0\nSeeteufel:\t\t0","Hochseefisher","Schlißen","");



    Er kann auch nachsehn was er gefischt hat 0 Bedeutet halt das er noch keine gefischt hat.
    sollte er z,b 177 Heringe gefischt haben soll Hering: 177
    genauso gibt es auch ein limit für das Boot was er aufnehmen kann z.b 0/2500
    Die Fische die er gefangen hat soll immer dazugezählt werden an.


    Angenommen er fängt


    Hering: 5
    Makrele: 5
    Lachs: 5


    so ergibt das 15/2500

  • möchtest du jetzt also das wir das system für dich machen oder wie? also die vorstellung ist ja gut aber HÄ?


    Nein möchte ich nicht.
    Ich möchte einfach nur wissen wie man es macht :D
    Hat jetzt damit nichts zutun^^