Start Paket

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
  • Halüüü Brotfische,


    Ich hätte da mal eine Frage, undzwar wollte ich am Noobspawn ein "i" (Infozeichen) hinmachen, soweit weiß ich wie es geht, nun wen man darauf läuft, das ein Menü aufaucht, indem man 2 Pakete wählen kann, in den ersten ist ein BMX und Baseballschläger , dies sollte max. 500$ kosten, das andere beinhaltet einen Faggio und Baseballschläger für 1.000$, wie bekomme ich das Menü hin, und wen man sich ein Paket ausgesucht hat, das man die Waffe bekommt und der Faggio direkt neben dem Spieler SPawnt, hoffe sowas ist möglich, hatte es noch nie so mit Menü's


    MFG ~ IceTea

  • Pickup erstellen kann ich ja, brauche nur eine Erkläre bzw. ein gutes Tutorial wie das mit den Menü funktioniert...

  • Das mit dem Menü , möchtest bestimmt über einen Befehl oder in der Art aufrufen daher musst du auch wissen wie man Kommandos erstellt,
    ich glaube im Tutorial Bereich sollte es an Informationen nicht mangeln , wenn nicht dann muss ich hier wieder eine halbe Geschichte auf'n Tisch legen ^^

    Mfg. BlackFoX_UD_ alias [BFX]Explosion


  • Hi,
    ich scripte selber noch nicht lange, aber ich probiers mal die das zu erklären.


    Über Public_OnGameModInit() kommt:


    new noobspawn_info;
    new Menu:noobspawn_info_menu;


    Es werden 2 Variablen erstellt.
    Die erste Variable wird für das Pickup benötigt und die 2. Variable für das Menü.


    Das kommt alles unter OnGameModInit():
    noobspawn_info = CreatePickup(1239,23,1481.4407,-1742.5592,13.5469);
    Hier erstellen wird das Pickup mit CreatPickup
    Die Zahl 1239 ist die Id für unser gelbes I
    Die Zahl 23 legt den Typ fest, also ob es aufsammelbar sein soll, ob es respawnen soll etc.
    Ich habe mich für 23 entschieden, weil es nicht aufsammelbar ist etc. und sonst auch keine evtl. vorhandene EIGENE Funktion ausgeübt wird (nützlich auch bei heal und armor pickup)
    Die restlichen Zahlen sind die Koordinaten. (Müssen evtl. an eigene Bedürfnisse angepasst werden)


    noobspawn_info_menu = CreateMenu("Starter Packet", 1, 200.0, 100.0, 200.0);
    Hier erstellen wir das Menü.
    Starter Packet ist der Name für unser Menü
    Die nächste Zahl gibt an wie viel Spalten wir haben wollen
    Die nächsten 2 Zahlen geben die x und y Coordinate an und bestimmen somit wo das Fenster auf'm Bildschirm ist (Stichwort Koordinatensystem, ab 5. Klasse Mathe Realschule)
    Die letzte Zahl gibt die größe der ersten Spalte an, bei mehreren Spalten können da noch mehrere Zahlen folgen.


    AddMenuItem(noobspawn_info_menu, 0, "BMX + Baseball Bat = 500$");
    Hier fügen wir unserem Menü einen Menüpunkt hinzu.
    Der erste wert in der Klammer ist die Variable die wir zuvor erstellt haben und die wir für das Menü genutzt haben
    Die nächste Zahl gibt an in welche Spalte der eintrag soll wobei bei null angefangen wird zu zählen, also 0 = 1. Spalte, 1 = 2. Spalte usw.
    Der letzte Text ist der Name für den Menüpunkt


    AddMenuItem(noobspawn_info_menu, 0, "Faggio + Baseball Bat = 1000$");
    Exact das gleiche wie obe nur das natürlich der Name anders ist.


    Folgendes kommt unter public OnPlayerPickUpPickup(playerid, pickupid),
    weil er das Menü nur zeigen soll wenn jemand durch das Pickup geht.
    if(pickupid == noobspawn_info) {
    Wenn das Pickup (die Pickupid) gleich unserem Pickup (noobspawn_info) dann mache folgendes:


    ShowMenuForPlayer(noobspawn_info_menu,playerid);
    }
    Zeige dem Spieler das Menü.
    Wobei der erste wert wieder unsere Variable ist, die wir für das Menü hergenommen haben
    Der zweite wert ist playerid, da setzt der Server später dann automatisch die Id von dem user ein der gerade durch das Pickup läuft


    Folgendes kommt unter public OnPlayerSelectedMenuRow(playerid, row)
    das spawnen der Vehicles etc. soll nur passieren wenn der User einen bestimmten Menüpunkt wählt.


    if(GetPlayerMenu(playerid) == noobspawn_info_menu) {
    Wenn das geöffnete Menü unser erstelltes Menü (noobspawn_info_menu) ist, dann mache folgendes:
    Wobei GetPlayerMenu abfragt welches Menü der user gerade offen hat.


    new
    Float:px,
    Float:py,
    Float:pz,
    Float:pa;
    Hier werden erstmal 4 Variablen erstellt die wir weiter unten für den x, y, z und den/das angel brauchen.


    GetPlayerPos(playerid, px, py, pz);
    Hier hollen wir uns die aktuelle Position des Spielers und speicher den x wert in der Variable px, den y wert in der Varibale py und den z wert in der Variable pz.


    GetPlayerFacingAngle(playerid, pa);
    Hier hollen wir uns die Blickrichtung des Spielers und speichern sie in der Variable pa.


    switch(row)
    {
    case(0): // BMX und Baseballschläger = 500$
    {
    AddStaticVehicle(481 , px +3, py, pz, pa, 0, 0);
    GivePlayerWeapon(playerid, 5, 0);
    GivePlayerMoney(playerid, -500);
    }
    case(1): // Faggio und Baseballschläger = 1000$
    {
    AddStaticVehicle(462, px +3, py, pz, pa, 0, 0);
    GivePlayerWeapon(playerid, 5, 0);
    GivePlayerMoney(playerid, -1000);
    }
    }
    }


    Beim ersten Punkt wird das bmx gespawnt, der player bekommt einen Baseballschläger und ihm werden 500$ abgezogen
    Beim zweiten Punkte wird das bmx gespawnt, der player bekommt wieder einen Baseballschläger und ihm werden 1000$ abgezogen.
    Aber das mit switch und case kann bitte jemand anders genauer erklären


    Kompletter Code


    Big thx an
    Breadfishforum
    samp wiki

  • Ok, hat geklappt, danke, nur noch eine bitte hätte ich, wie baue ich die Abbruch funktion ein?

  • Danke,


    Hat alles wunderbar geklappt, keine Erros/Warnings, Ingame funktioniert auch alles, hiermit is das THema Erledigt :D