Kleine SA:MP Scripting Frage

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 Brotfische,


    Ich stehe mal wieder vor einem kleinem Problem bzw. weiß ich nicht wie ich es schreiben soll. Ich erkläre kurz um was es geht, und zwar möchte ich ein Truckersystem schreiben, angenommen man hat die Fracht "Reifen" diese sollen als Bespiel nicht zum Spielzeuglager transportiert werden sondern z.B Autohaus, Autolager, Zwischenlager. Meine Frage ist jetzt wie kann ich das im unteren Code einstellen, das diese zu mehren Firmen gebracht werden könne?


    Code:



    Ich hoffe ihr könnt mir helfen :rolleyes:


    Mit freundlichen Grüßen German_ScripterHD


    Mit freundlichen Grüßen
    German_ScripterHD

  • Fragst beim einladen ab was er transportiert und gibst ihm aus wohin er kann.
    Beim abliefern fragst du ihn ab was er transportiert und machst dann deine eingabe.

    Ich möchte die Aufträge später per Random Verfahren auswählen. Deswegen wird das so nicht klappen oder irre ich mich da?


    Mit freundlichen Grüßen
    German_ScripterHD

  • Vielleicht gibts du jedem Unternehmen eine ID, und den Frachten weißt du diese dann zu, damit du weißt, dass es zu der Firma X gehört.
    Weiß nicht, ob du es so meinst:


    enum Unternehmen{
    uFrachtID,
    uName[128]
    }
    enum frachten{
    fracht_name[128],
    fracht_gewicht,//Einheit Tonnen
    fracht_id
    }


    new FabrikInfo[8][Unternehmen] = {
    {0, "Schrottplatz Los Santos"},
    {1, "Spielzeuglager Las Venturas"},
    {2, "Werkstattlager San Fierro"},
    {3, "Grotti Automobiellager Los Santos"},
    {4, "Zwischenlager Los Santos"},
    {4, "Zwischenlager Los Santos"},
    {4, "Zwischenlager Las Venturas"},
    {4, "Zwischenlager San Fierro"}
    };


    new FrachtInfo[12][frachten] = {
    {"Reifen",10,1},
    {"Kunststoffe",7,1},
    {"Benzin",26,2},
    {"Mehl",12,4},
    {"Lebensmittel",21,4},
    {"Metallteile",24,2},
    {"Stahlträger",30,4},
    {"Burgerfleisch",23,4},
    {"Limmonade",26,4},
    {"Karosserieteile",29,0},
    {"Fernseher",16,0},
    {"Elektrogeraete",27,0},
    };

  • Weiß nicht, ob du es so meinst:

    Nicht ganz :)
    Wenn der Spieler in seinem LKW angenommen den Befehl "/ware" eintippt soll ihm ein Dialog angzeigt werden in dem folgendes enthalten ist:
    Ladung: Reifen | Gewicht: 10t | Ladeort: Los Santos (Firma: Zischenlager Los Santos) | Abladeort: San Fierro (Firma: Autolager), Struktur:
    Ladung: %s (random(...) | Gewicht: %d (FrachtInfo[Fracht per Random] ) | Ladeort: %s (random(Firma)) | Bestimmungsort: %s (random(firma2))


    Also um es nochmal deutlich zu erklären, wenn man den Befehl "ware" eintippt soll ein Dialog erscheinen der Automatisch eine Fracht per Zufallsprinzip auswählt, Einen Lade- und Abladeort auch per Zufallsprinzip (Fracht sollte aber einen Sinn ergeben, also damit meine ich das Reifen nicht vom Schrottplatz zum Spielzeuglager geliefert werden. )


    Ich hoffe du verstehst jetzt wie ich es meine :)


    Mit freundlichen Grüßen German_ScripterHD


    Mit freundlichen Grüßen
    German_ScripterHD

  • Verknüpfe doch deine Definitionen sodass du einer Fracht direkt die Lieferpunkte zuteilst bzw. einordnest.
    Dann kannst du am Ende auch leichter dein rndm durchlaufen lassen und hast eines bessere Übersicht um dir die Daten zu entnehmen. weils nur 1 Reihe immer ist aus der
    du etwas entnimmst. Wenn Ingame das Wirtschaftssystem dynamisch läuft wäre es als kleiner Tipp auch gut zu schauen welches Unternehmen mehr Ware benötigt weil es weniger als andere hat.

    KleineHilfe 2.0

  • Dann würde es mit den ID's doch funktionieren.


    Du wählst random eine Ware, zB jetzt mal Burgerfleisch (ID 4).
    Nun wählst du random ein Unternehmen, welches die ID 4 hat, davon kämen 4 Stück in Frage.
    * Zwischenlager Los Santos
    * Zwischenlager Los Santos
    * Zwischenlager Las Venturas
    * Zwischenlager San Fiero


  • Verknüpfe doch deine Definitionen sodass du einer Fracht direkt die Lieferpunkte zuteilst bzw. einordnest.
    Dann kannst du am Ende auch leichter dein rndm durchlaufen lassen und hast eines bessere Übersicht um dir die Daten zu entnehmen. weils nur 1 Reihe immer ist aus der
    du etwas entnimmst.

    Erstmal danke, aber ich verstehe nicht genau wie du das meinst. Vielleicht liegt es auch an der Uhrzeit. Könntest du vielleicht ein Bespiel dazu machen, ich hoffe das ich es dan verstehe.


    //e:
    Antwort siehe Tusk's Antwort.


    Mit freundlichen Grüßen
    German_ScripterHD

  • Meine Varation wäre das gleiche wie die von Tusk nur das die Werte direkt in einer Row drinnen wären.
    Kannst beides machen. Hauptsache falls noch nicht vorhanden die Koordinaten hinzufügen.

    KleineHilfe 2.0

  • Okay, jetzt verstehe ich nur eine Sache noch nicht 100%ig, wenn ich jetzt als Bespiel Burgerfleisch annehmen würde, dann wäre der Zielort die Firmen die, die Id "3" haben. Okay bis dahin vertsehe ich alles. Aber der Startort? Und dann noch eine Frage wie lese ich das am besten mit der random Funktion aus?


    Code momentan:



    Mit freundlichen Grüßen
    German_ScripterHD

  • Jenachdem, wenn der Spieler nun Ware eingibt, und du möchtest das er die Daten erhält was er zu tun hat, musst du der FrachtInfo noch Koordinaten hinzufügen wo man diese einsammelt & bei jeder Fabrik noch Koordinaten wo der Punkt zum ausladen ist wenn du alles so seperat handhaben möchtest. Die Koords filterst du und setzt dort ein Checkpoint.

    KleineHilfe 2.0

  • Möchtest du wissen, wie du nun zufällig ein Unternehmen wählst? Oder wie soll man das nun verstehen? :D


    Wenn ja, denn versuch es mal so:




    Beispiel-Szenario:


  • Beitrag von YaBroo ()

    Dieser Beitrag wurde vom Autor gelöscht ().
  • Nein, es ist alles richtig, so wie es ist. Ich sehe keinen Fehler.
    Die Schleife stimmt auch. Die soll ja die Unternehmen (FabrikInfo) durchgehen, um zu sehen, welche Unternehmen die ID fracht_id haben.


    Übrigens habe ich die ID's in beiden enums fracht_id genannt, was evtl für Verwirrung sorgen könnte, stimmt aber alles so ;)

  • In dem Fall schon sofern jede Fracht 1 fixierten Ladepunkt hat.
    Start ist Quasi die Ladung. Jetzt musst du wissen wie du es machen möchtest.
    Ich hatte dir den Tipp gegeben, Koordinaten für lade,-ablade hinzuzufügen somit kannst du eig. noch im gleichen Befehl einen Checkpoint setzen wo er aufladen kann.
    Dort wo er auflädt im CP oder per CMD setzt du ihm dann die im "ware" ausgesuchte random Fabrik. Vorher machst du die RandomFabrik Variable spielerbezogen damit du später damit arbeiten kannst.

    KleineHilfe 2.0

  • @Tusk Okay, dann habe ich noch eine Frage könnte ich es auch wie folgt machen?:



    Aber wie kann ich dann dort die Start und Ziel via. Random auslesen? (Bei "new FabrikInfo" wurden die Koordinaten der Firmen hinzugefügt.)


    Mit freundlichen Grüßen
    German_ScripterHD

    Einmal editiert, zuletzt von German_ScripterHD ()