[TuT]Simplen Waffenladen (für Anfänger)

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


    Zuerst möchte ich sagen


    1. Ich bin ein Anfänger, nur das der Waffenladen das erste ist was ich bis jetzt ganz alleine geschafft habe
    2. Ich bin mir sicher das die Fortgeschrittenen irgendwelche blöden kommentare schreiben werden wie zB. haha das kan ja jeder oder das sind ja nurn paar befehle 1/10, Ja das stimmt ja alles aber es ist ein TuT für Anfänger somit unterlasst es bitte, danke


    Viel Spaß damit :) :


    Heute möchte ich den Anfänger zeigen(bin auch einer :P) wie man ein Simplen Waffenshop macht :) !


    Also was werden wir im TuT machen, wir werden eine Liste mit den Waffen machen die man kaufen kann
    und wir werden eine Deagle zum verkauf stellen :)
    Fangen wir mit der Liste an


    Das ganze hier muss hier drunter gemacht werden:
    public OnPlayerCommandText(playerid, cmdtext[])


    Ein Befehl an sich sieht so aus wenn man ihn begint:
    (wir werden den befehl /waffen machen um zu sehen welche Waffen es zum kaufen gibt)
    if(strcmp(cmdtext,"/waffen",true)==0)


    Und nun wollen wir nicht das man überall Waffen kaufen kann also brauchen wir das hier :
    if(IsPlayerInRangeOfPoint(playerid,METER,X,Y,Z))
    Wofür steht das Meter? Das steht dafür wie nah er an den Punkt seinn muss um Waffen zu kaufen (Am besten man macht ein Objekt hin damit man weiß wo)
    Wofür stehen X Y und Z? Das sind die Koordinaten des Ortes Wo man Waffen kaufen kann, Wer möchte das man überall Waffen kaufen kann lässt den Teil ganz weg.


    Jetzt machen wir das Der Spieler eine Nachricht bekommt mit der Liste
    Das geht ganz einfach mit diesen:
    SendClientMessage(playerid,FARBCODE,"NACHRICHT");


    Meines sieht so aus:
    SendClientMessage(playerid,FARBCODE,"Benutze /waffe kaufen [WAFFENNAME]");
    SendClientMessage(playerid,FARBCODE,"[Waffenname] [Munition] [Preis]");
    SendClientMessage(playerid,FARBCODE,"Deagle 75 400");


    Hört sich doch alles Leicht an oder ;)?
    Hier ist der ganze Funktionierende Befehl:
    if(strcmp(cmdtext,"/waffen",true)==0)
    {
    if(IsPlayerInRangeOfPoint(playerid,METER,X,Y,Z))
    {
    SendClientMessage(playerid,FARBCODE,"Benutze /waffe kaufen [WAFFENNAME]");
    SendClientMessage(playerid,FARBCODE,"[Waffenname] [Munition] [Preis]");
    SendClientMessage(playerid,FARBCODE,"Deagle 75 400");
    }
    return 1;
    }
    Die liste bedeutet für einen User, Aha wenn ich /waffe kaufen Deagle eingebe bekomm ich ne schöne Deagle mit 75 Schuss für nur 400 Doller :D


    Kommen wir jetzt zum eher wichtigen Teil:
    Jetzt kommt nähmlich der Befehl für die Deagle


    Erstens wie oben der Befehl an sich:
    if(strcmp(cmdtext,"/waffe kaufen deagle",true)==0)


    Das gleiche wie oben man muss hier sein:
    if(IsPlayerInRangeOfPoint(playerid,METER,X,Y,Z))


    Jetzt kommt der wichtige Teil wir müssen hinkriegen das wenn er zuwenig Geld hat keine Waffe kaufen kann! sonst kann er unendlich ins MINUS gehen und das wollen wir ja nicht ;)
    Das geht mit einer Ganz einfachen Zeile:
    if(GetPlayerMoney(playerid)<400) return SendClientMessage(playerid,FARBCODE,"Du hast zu wenig Geld dabei!");
    1. das <400 steht für Weniger als 400(weil unsere Deagle 400 kostet), das bedeutet wenn der Spieler weniger als 400 dabei hat bekommt er durch das return daneben die nachricht die wir rechts daneben haben und bekommt nichts ganz simple :)


    Die nächste Zeile ist dazu da um die Waffe zu adden
    GivePlayerWeapon(playerid,24,75);
    (24) steht für die Waffen id in diesen Fall ist das die Deagle
    (75) steht für die Munition die man dazu bekommt (ihr könnt beliebig die Muniition ändern)


    Natürlich müssen wir jetzt auch den Spieler die 400 doller wegnehmen das geht ganz einfach mit diesen hier:
    GivePlayerMoney(playerid,-400);
    !Achtung! das - muss sein da es für entnehmen steht wenn ihr keins hinmacht bekommt der Spieler 400


    Hier nochmal der Ganze Befehl an sich:
    if(strcmp(cmdtext,"/waffe kaufen deagle",true)==0)
    {
    if(IsPlayerInRangeOfPoint(playerid,METER,X,Y,Z))
    {
    if(GetPlayerMoney(playerid)<400) return SendClientMessage(playerid,FARBCODE,"Du hast zu wenig Geld dabei!");
    {
    GivePlayerWeapon(playerid,24,75);
    GivePlayerMoney(playerid,-400);
    }
    }
    return 1;
    }


    So einfach ist es einen Bugfreien Waffenladen zu machen :)
    Ich hoffe es hat neulingen beim Scripten geholfen


    Wenn ihr Fragen habt ruhig her damit :D


    MfG Jogi :thumbup:


    //edit Etwas dazugeschrieben
    //edit Etwas dazugeschrieben


    3 Mal editiert, zuletzt von Jogi ()

  • Ja
    GivePlayerWeapon(playerid,24,75);
    änder die "75" das ist die Munition

  • Hey,


    sicherlich ganz nett für Anfänger, jedoch finde ich eine solche Art einfach unsauber:


    Zitat

    if(strcmp(cmdtext,"/waffe kaufen deagle",true)==0)


    Viel mehr solltest Du mit 2 Parametern arbeiten, einem Waffenparameter und einem Munitionsparameter, also z.B /buy deagle 10
    Dann bekommt man pro X Schuss eine bestimmte Anzahl Geld abgezogen usw.


    Grüße,
    tonyalva

  • Gutes Tut für Anfänger ich hab zwar selber schon einen Waffenladen (Etwas Anders Gescriptet) aber werd deinen auch mal ausprobieren


    Auch wenns dein erstes Tut war Relativ gut erklärt nur paar Weniger Smileys währen gut ;)


    9,5/10 Broten (Wegen den Smileys sonst 10/10)