KingCan:
Zitat
Ich möchte nicht einfach Copy&Paste benutzen,ich möchte auch schon wissen wie es zu Stande kommt.
@TS:
Da du ja nicht gesagt hast welche CMD art du bevorzugst, nehme ich mal ZCMD+sscanf.
COMMAND:spawnveh(playerid,params[])//Sollte wohl selbst erklärend sein^^
{
/*Die varibalen die wir brauchen. */
new ModelID,
/*Als erstes Modelid die wir beim befehl angeben.*/
new Farbe[2],
/*Dann die beiden farben. Anstatt Farbe[2] könnte man auch Farbe1 und Farbe2 benutzen. Aber ich mach es lieber so.
Kannst du ja ändern falls du magst^^*/
new Float:VehPos[4];
/*Die Floats wo wir zu erst die Position des Spielers drin speichern, um danach das Auto an deiser Position zu Erstellen.*/
new vehicleid;
/*Eine Variable, in der wir nachher die ID des erstellten Fahrzeugs Speichern um es weiter zu verwenden.*/
if(SpielerInfo[playerid][pAdminLevel]<2) return SendClientMessage(playerid,FARBE_ROT,"Du bist kein Admin!");
/*Falls du möchtest, das nur Admins bzw Spieler mit einem bestimmten Admin rang diesen befehl benutzen können, kannst du das hiermit machen.
Du musst allerdings SpielerInfo[playerid][pAdminLevel] mit deinem Admin system abgleichen.
Falls das Admin level des Spielers (SpielerInfo[playerid][pAdminLevel]) kleiner als 2 ist (<2) wird der Befehl durch das return Beendet und es
wird dem Spieler die nachricht ausgegeben das er kein Admin ist.*/
if(GetPlayerState(playerid)!=PLAYER_STATE_ONFOOT) return SendClientMessage(playerid,FARBE_ROT,"Du bist nicht zu Fuß unterwegs!");
/*Hier wird abgefragt, ob der Spieler auch zu Fuß unterwegs ist, falls nicht wird der Befehl durch das return Beendet und es wird dem Spieler
die nachricht ausgegeben das er nicht zu Fuß unterwegs ist.*/
if(sscanf(params, "ddd",ModelID,Farbe[0],Farbe[1])) return SendClientMessage(playerid, FARBE_ROT, "Funktion: /spawnveh [autoid] [farbe1] [farbe2]");
/*Hier wird params, also das was nach dem befehle selbst kommt (/spawnveh [params]) in seine bestandteile zerlegt. Also ModeID und die beiden farben.
Sollte das was der Spieler eingegeben hat irgendwie davon abweichen, wird der Befehl durch das return Beendet und es wird dem Spieler die nachricht ausgegeben wie er es richtig macht. */
if(ModelID < 400 || ModelID > 611) return SendClientMessage(playerid, FARBE_ROT, "Fahrzeug-ID kann nicht unter 400 oder über 611 sein!");
/* Hier wird überprüft ob die angegebene Modelid kleiner als 400 oder größer als 611 ist. Falls ja wird der Befehl wieder beendet und eine nachricht wird ausgegeben.*/
if(Farbe[0] < 0 || Farbe[0] > 126 || Farbe[1] < 0 || Farbe[1] > 126) return SendClientMessage(playerid, FARBE_ROT, "Die Farbe kann nicht unter 0 oder über 126 sein!");
/* Hier wird überprüft ob die angegebenen Farben zwischen 0 und 126 sind. Falls nein wird der Befehl wieder beendet und eine nachricht wird ausgegeben.*/
GetPlayerPos(playerid, VehPos[0],VehPos[1],VehPos[2]);
/* Hier Nehmen wir die Position des Spielers (X,Y, und Z) und Speichern sie in der Variable VehPos[0] - VehPos[2]*/
GetPlayerFacingAngle(playerid, VehPos[3]);
/* Hier Nehmen wir die Blickrichtung (Angle) des Spielers und Speichern sie in der Variable VehPos[3]*/
vehicleid = CreateVehicle(ModelID,VehPos[0],VehPos[1],VehPos[2],VehPos[3],Farbe[0],Farbe[1],-1);
/* Nun erstellen wir das Fahrzeug mit der angegebenen ModeID, an der Position des Spielers und mit den angegebenen Farben. die -1 am ende steht für die
Zeit nach wie viel Sekunden das Fahrzeug Respawnt wenn es nicht benutzt wird. -1 Beudeutet das es niemals respawnt.
Durch das vehicleid = wird die Fahrzeug ID in der variable vehicleid gespeichert um diese weiter zu benutzen. */
LinkVehicleToInterior(vehicleid,GetPlayerInterior(playerid));
/* Nun nehmen wir das Fahrzeug (vehicleid) und Versetzen es in das Gleiche Interior wie der Spieler.
Das Interior des Spielers bekommen wir durch GetPlayerInterior(playerid)*/
SetVehicleVirtualWorld(vehicleid,GetPlayerVirtualWorld(playerid));
/* Dann nehmen wir das Fahrzeug (vehicleid) und Setzen es in die gleiche Virtuelle Welt wie der Spieler*/
PutPlayerInVehicle(playerid, vehicleid, 0);
/* Und zu guter letzt nehmen wir den Spieler (playerid) und setzen ihn in das gerade erschaffene Fahrzeug (vehicleid) an den Sitzplatz 0, also als Fahrer */
return 1;
}
Mfg.