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
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
MfG Jogi
//edit Etwas dazugeschrieben
//edit Etwas dazugeschrieben