Alles anzeigenPAWN Quelltext
1
2
3
4
5
6
7
8
9
10
11
12
13
ocmd:tv(playerid,params[])
{
new pID,string[128];
if(!isAdmin(playerid,1))return SendClientMessage(playerid,COLOR_GREY,"Du darfst diesen Befehl nicht benutzen.");
if(sscanf(params,"i",pID))return SendClientMessage(playerid,COLOR_GREY,"Verwendung: /tv [Spieler]");
if(!IsPlayerConnected(pID))return SendClientMessage(playerid,COLOR_GREY,"Dieser Spieler ist nicht online.");
if(pID == playerid)return SendClientMessage(playerid,COLOR_GREY,"Du kannst dich nicht selbst beobachten.");
TogglePlayerSpectating(playerid,1);
PlayerSpectatePlayer(playerid, pID);
format(string,sizeof(string),"Du beobachtest nun Spieler: %s.",PlayerName(pID));
SendClientMessage(playerid,COLOR_BLUE,string);
return 1;
}
Sollte schon so aussehen.
Nur bedenke, das die Spieler sich in der gleichen Virtuellen Welt und im selben Interior befinden müssen.
Ich kann den Befehl irgendwie nur mit der ID des Spielers ausführen, also statt: /tv Aviero muss ich die ID nehmen, also bspw: /tv 88. Möchte jedoch, dass beides funktioniert.
und..
habe mal probiert das in einen Befehl zu packen, hat auch funktioniert, will jedoch, dass die Person die Tvt hat wieder in seine Ausgangsposition (die Position, von wo er angefangen hat zu tvn) gesetzt wird.
Ich weiß, dass ich die Koordinaten des Spielers in einer Variable speichern muss, weiß jedoch nicht richtig wie ich das umsetzen soll.
Danke im Voraus
Aktueller Befehl:
ocmd:tv(playerid,params[])
{
if(isAdmin(playerid,1))
{
if(GetPVarInt(playerid, "tvmodus") == 0){
new pID,string[128];
if(sscanf(params,"i",pID))return SendClientMessage(playerid,COLOR_GREY,"Verwendung: /tv [Spieler]");
if(!IsPlayerConnected(pID))return SendClientMessage(playerid,COLOR_GREY,"Dieser Spieler ist nicht online.");
if(pID == playerid)return SendClientMessage(playerid,COLOR_GREY,"Du kannst dich nicht selbst beobachten.");
TogglePlayerSpectating(playerid,1);
PlayerSpectatePlayer(playerid, pID);
format(string,sizeof(string),"Du beobachtest nun Spieler: %s.",PlayerName(pID));
SendClientMessage(playerid,COLOR_BLUE,string);
SetPVarInt(playerid,"tvmodus",1);
}else{
TogglePlayerSpectating(playerid,0);
SetCameraBehindPlayer(playerid);
SendClientMessage(playerid,COLOR_BLUE,"Du hast die Beobachtung beendet.");
SetPVarInt(playerid,"tvmodus",0);
return 1;
}
}
else
{
SendClientMessage(playerid,COLOR_GREY,"Du darfst diesen Befehl nicht benutzen.");
}
return 1;
}