SA:MP /tpa Befehl wie in Minecraft.
Code:
//TPA ANFANG
if(strcmp(cmd, "/tpa", true, 10) == 0) // /tpa command by Yasunai
{
new tmp2[256];
tmp2 = strtok(cmdtext, idx);
if(!strlen(tmp2))
{
SendClientMessage(playerid, COLOR_GREY, "Benutung: /tpa [senden/annehmen/ablehnen/status/abbrechen] ([ID])");
}
else
{
if(strcmp(tmp2, "senden", true) == 0)
{
tmp = strtok(cmdtext, idx);
new playa;
playa = ReturnUser(tmp);
GetPlayerName(playerid, sendername, sizeof(sendername));
GetPlayerName(playa, giveplayer, sizeof(giveplayer));
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_GREY, "Benutung: /tpa senden [ID]");
}
else
{
if(playa != playerid)
{
if(IsPlayerConnected(playa))
{
if(PlayerInfo[playerid][pXTPA] == 0)
{
if(PlayerInfo[playa][pTPA] == 1000)
{
PlayerInfo[playa][pTPA] = playerid;
PlayerInfo[playerid][pXTPA] = 1;
format(string, sizeof(string), "Du hast %s eine TPA gesendet.", giveplayer);
SendClientMessage(playerid, COLOR_BLUE, string);
format(string, sizeof(string), "Du hast eine TPA von %s bekommen. /tpa [annehmen/ablehnen]", sendername);
SendClientMessage(playa, COLOR_BLUE, string);
}
else
{
new playa2 = PlayerInfo[playa][pTPA];
new others[MAX_PLAYER_NAME];
GetPlayerName(playa2, others, sizeof(others));
format(string, sizeof(string), "%s hat bereits eine TPA von %s.", giveplayer, others);
SendClientMessage(playerid, COLOR_RED, string);
}
}
else
{
SendClientMessage(playerid, COLOR_RED, "Du hast bereits eine TPA an jemanden gesendet. Nutze /tpa abbrechen");
}
}
else
{
SendClientMessage(playerid, COLOR_RED, "Dieser Spieler existiert nicht.");
}
}
else
{
SendClientMessage(playerid, COLOR_RED, "Du kannst die selber keine TPA senden.");
}
}
return 1;
}
if(strcmp(tmp2, "annehmen", true) == 0)
{
if(PlayerInfo[playerid][pTPA] < 1000)
{
new playa;
playa = PlayerInfo[playerid][pTPA];
new Float:x, Float:y, Float:z;
if(IsPlayerConnected(playa))
{
new in;
in = GetPlayerInterior(playerid);
GetPlayerPos(playerid, x, y, z);
SetPlayerInterior(playa, in);
SetPlayerPos(playa, x+1, y+1, z);
GetPlayerName(playerid, sendername, sizeof(sendername));
GetPlayerName(playa, giveplayer, sizeof(giveplayer));
format(string, sizeof(string), "Du hast dich zu %s teleportiert.", sendername);
SendClientMessage(playa, COLOR_GREEN, string);
format(string, sizeof(string), "%s hat sich zu dir teleportiert.", giveplayer);
SendClientMessage(playerid, COLOR_GREEN, string);
PlayerInfo[playerid][pTPA] = 1000;
PlayerInfo[playa][pXTPA] = 0;
}
else
{
SendClientMessage(playerid, COLOR_RED, "Der Spieler ist nicht mehr online!");
}
}
else
{
SendClientMessage(playerid, COLOR_RED, "Es liegen keine Anfragen vor.");
}
return 1;
}
if(strcmp(tmp2, "ablehnen", true) == 0)
{
if(PlayerInfo[playerid][pTPA] < 1000)
{
new playa;
playa = PlayerInfo[playerid][pTPA];
GetPlayerName(playerid, sendername, sizeof(sendername));
GetPlayerName(playa, giveplayer, sizeof(giveplayer));
format(string, sizeof(string), "Deine TPA wurde von %s abgelehnt.", sendername);
SendClientMessage(playa, COLOR_RED, string);
format(string, sizeof(string), "Du hast die TPA von %s abgelehnt.", giveplayer);
SendClientMessage(playerid, COLOR_RED, string);
PlayerInfo[playerid][pTPA] = 1000;
PlayerInfo[playa][pXTPA] = 0;
}
else
{
SendClientMessage(playerid, COLOR_RED, "Es liegen keine Anfragen vor.");
}
return 1;
}
if(strcmp(tmp2, "status", true) == 0)
{
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(PlayerInfo[i][pTPA] == playerid)
{
if(playerid != 0)
{
GetPlayerName(i, giveplayer, sizeof(giveplayer));
format(string, sizeof(string), "Du hast eine TPA an %s gesendet.", giveplayer);
}
else
{
format(string, sizeof(string), "Du hast keine TPA versendet.");
}
}
else
{
format(string, sizeof(string), "Du hast keine TPA versendet.");
}
}
SendClientMessage(playerid, COLOR_BLUE, string);
if(PlayerInfo[playerid][pTPA] == 1000)
{
SendClientMessage(playerid, COLOR_BLUE, "Es liegt keine TPA vor.");
}
else
{
new pid = PlayerInfo[playerid][pTPA];
GetPlayerName(pid, sendername, sizeof(sendername));
format(string, sizeof(string), "Dir liegt eine TPA von %s vor", sendername);
SendClientMessage(playerid, COLOR_BLUE, string);
}
return 1;
}
if(strcmp(tmp2, "abbrechen", true) == 0)
{
if(PlayerInfo[playerid][pXTPA] == 1)
{
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
if(PlayerInfo[i][pTPA] == playerid)
{
PlayerInfo[i][pTPA] = 1000;
PlayerInfo[playerid][pXTPA] = 0;
GetPlayerName(playerid, sendername, sizeof(sendername));
GetPlayerName(i, giveplayer, sizeof(giveplayer));
format(string, sizeof(string), "%s hat die TPA abgebrochen.", sendername);
SendClientMessage(i, COLOR_RED, string);
format(string, sizeof(string), "Du hast die TPA an %s abgebrochen.", giveplayer);
SendClientMessage(playerid, COLOR_RED, string);
}
else
{
SendClientMessage(playerid, COLOR_RED, "Die Person, die du suchst ist offline.");
SendClientMessage(playerid, COLOR_RED, "Deine TPA wurde zurückgezogen.");
PlayerInfo[playerid][pXTPA] = 0;
}
}
}
}
else
{
SendClientMessage(playerid, COLOR_RED, "Du hast keine Anfrage gesendet.");
}
return 1;
}
}
return 1;
}
//TPA Ende