Fast Commands DE

From SA-MP Wiki

Jump to: navigation, search

Ich zeige euch heute wie man einen einfachen /goto und /get command erstellt. Zunächst fügt ihr einmal oben im Script unter den #includes und #defines.

#define RED 0xE60000FF //Damit ihr nicht immer das 0xE60000FF eingeben müsst sondern stattdessen einfach RED schreibe könnt ;)
    new tmp[256];
    new OtherID = strval(tmp);

Habt ihr dies gemacht sucht ihr euch erstmal wieder diese zeile hier

public OnPlayerCommandText(playerid, cmdtext[])
{
    if(!strcmp("/cmdtext", cmdtext, true))
    {

und ersetz das "cmdtext" durch zb. "/goto" und schreibt statt der 8 eine 5 hin.

public OnPlayerCommandText(playerid, cmdtext[])
{
	if (strcmp("/goto", cmdtext, true, 6) == 0)
	{

Der Anfang wär dann schonmal gemacht gw ;).

Kommen wir nun zum eigentlichen teil. Wenn ihr das gemacht habt unter der Klammer gehts dann weiter ihr schreibt drunter folgendes:

if(!strlen(tmp)) return SendClientMessage(playerid, RED, "Verwendung: /goto [id]"); //Das bedeutet wenn ihr nur /goto im Game eingebt das ihr dann eine Message bekommt das ihr /goto [id] eingeben müsst.

Und nun:

if(!IsPlayerConnected(OtherID) || IsPlayerNPC(OtherID)) return SendClientMessage(playerid,RED,"Der angegebene Spieler ist nicht online!"); //Wenn der Spieler nicht Online ist oder es ein Bot ist denn ihr Porten wollt bekommt ihr diese Message.

Das wär einmal geschafft nun müsst ihr folgendes tun

new Float:X, Float:Y, Float:Z 
GetPlayerPos(OtherID, X, Y, Z); //Das ist unbedingt notwendig sonst funktioniert es nicht, da ihr normal bei "GetPlayerPos() richtige coordinaten angeben müsst und dafür ist das new da somit erkennt Pawno das es sich um die coordinaten des anderen Spielers handeln durch das "OtherID".

Nun zum letzten Teil

if(IsPlayerInAnyVehicle(playerid)) //Wenn er in einem Auto soll das natürlich auch mit geportet werden.
  		{
   			SetVehiclePos(GetPlayerVehicleID(playerid), X+5, Y+5, Z); //Das +5 beduetet das er nicht genau auf dem anderen spawnen soll sondern ein bisschen weiter daneben ;) und wenn er in einem Auto ist wird das nun mitgeportet.
  		}
  		else
  		{
  			 SetPlayerPos(playerid, X+5, Y+5, Z); //Hier wird der Spieler selbst geportet.
  		}
 
                SendClientMessage(playerid, RED, Du hast dich teleportiert);
		return 1;
	}
        return 0;
}


fertig sollte das ganze nun so aussehen

public OnPlayerCommandText(playerid, cmdtext[])
{
	if (strcmp("/goto", cmdtext, true, 6) == 0)
	{
		new tmp[256];
		new OtherID = strval(tmp);
 
	        if(!strlen(tmp)) return SendClientMessage(playerid, RED, "Verwendung: /goto [id]");
		if(!IsPlayerConnected(OtherID) || IsPlayerNPC(OtherID)) return SendClientMessage(playerid,RED,"Der angegebene Spieler ist nicht online!");
		new Float:X, Float:Y, Float:Z;
 
		GetPlayerPos(OtherID, X, Y, Z);
 
  		if(IsPlayerInAnyVehicle(playerid))
  		{
   			SetVehiclePos(GetPlayerVehicleID(playerid), X+5, Y+5, Z);
  		}
  		else
  		{
  			 SetPlayerPos(playerid, X+5, Y+5, Z);
  		}
                SendClientMessage(playerid, RED, Du hast dich teleportiert);
		return 1;
	}	
	return 0;
}

So jetzt wisst ihr wie das mit dem /goto funktioniert ;). Ich will euch noch nicht zeigen wie das mit dem /get geht, weil das nun nicht so schwer ist, man muss nu logisch denken ;).

Personal tools
Navigation
Toolbox
In other languages