Also suche eine /tv funktion
mit der man leute "spionieren" kann.
ich stelle mir das so vor:
Ein kleineskästchen unten rechts wo man sieht was der Spieler macht
Das ganze soll man nur als admin können!
Also suche eine /tv funktion
mit der man leute "spionieren" kann.
ich stelle mir das so vor:
Ein kleineskästchen unten rechts wo man sieht was der Spieler macht
Das ganze soll man nur als admin können!
Ein kleineskästchen unten rechts wo man sieht was der Spieler macht
Was ich weiß ist dass leider mit Pawn nicht möglich (ihr könnt mich gerne vom Gegenteil überzeugen)
Aber hier einmal von mir dass man den Spieler komplet TVt:
! ACHTUNG ! Das ist mit DCMD geschrieben.
public OnPlayerCommandText(playerid, cmdtext[])
{
dcmd(tv,2,cmdtext);
return 1;
}
dcmd_tv(playerid,params[]) {
new giveid;
new pName[24];
new str[128];
GetPlayerName(giveid, pName, 24);
if(sscanf(params,"u",giveid)) {
return SendClientMessage(playerid,COLOR_RED,"[FEHLER]: /tv [Name / ID]");
}
if(!IsPlayerConnected(giveid)) {
return SendClientMessage(playerid,COLOR_RED,"Spieler nicht gefunden!");
}
format(str, 128, "Du TVst nun %s. ", pName);
SetCameraBehindPlayer(giveid);
SendClientMessage(playerid,COLOR_YELLOW, str);
}
return 1;
}
Danke aber ich bekomme 3 Errors
kann mir das einer Als FS machen?
C:\Dokumente und Einstellungen\alex\Desktop\Life is a party BETA 4.0\gamemodes\[Ger]Reallife.pwn(11941) : error 017: undefined symbol "dcmd"
C:\Dokumente und Einstellungen\alex\Desktop\Life is a party BETA 4.0\gamemodes\[Ger]Reallife.pwn(11947) : error 021: symbol already defined: "OnPlayerCommandText"
C:\Dokumente und Einstellungen\alex\Desktop\Life is a party BETA 4.0\gamemodes\[Ger]Reallife.pwn(36381) : error 010: invalid function or declaration
C:\Dokumente und Einstellungen\alex\Desktop\Life is a party BETA 4.0\gamemodes\[Ger]Reallife.pwn(36390) : warning 203: symbol is never used: "dcmd_tv"
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase
3 Errors.
ne da kannse nix machen ist in arsch voll ver bugt kannse vergesenn sory
wenn solche sachen einfügt sollte man schon was ahnung haben
das geht auch bedeutend optimierter
dcmd_tv(playerid,params[])
{
new giveid,pName[24],str[128];
GetPlayerName(giveid, pName, 24);
if(sscanf(params,"d",giveid))return SendClientMessage(playerid,COLOR_RED,"[FEHLER]: /tv [Name / ID]");
if(!IsPlayerConnected(giveid))return SendClientMessage(playerid,COLOR_RED,"Spieler nicht gefunden!");
format(str, 128, "Du TVst nun %s. ", pName);
SetCameraBehindPlayer(giveid);
SendClientMessage(playerid,COLOR_YELLOW, str);
return 1;
}
//edit aber mit SetCameraBehindPlayer wirds nicht funktionieren du setzt jetzt nur die Kamera von dem Spieler hintern ihn wieder
//edit 2 dir fehlt dcmd und sscanf
#define dcmd(%1,%2,%3) if (!strcmp((%3)[1], #%1, true, (%2)) && ((((%3)[(%2) + 1] == '\0') && (dcmd_%1(playerid, ""))) || (((%3)[(%2) + 1] == ' ') && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1
und sscanf
stock sscanf(string[], format[], {Float,_}:...)
{
#if defined isnull
if (isnull(string))
#else
if (string[0] == 0 || (string[0] == 1 && string[1] == 0))
#endif
{
return format[0];
}
#pragma tabsize 4
new
formatPos = 0,
stringPos = 0,
paramPos = 2,
paramCount = numargs(),
delim = ' ';
while (string[stringPos] && string[stringPos] <= ' ')
{
stringPos++;
}
while (paramPos < paramCount && string[stringPos])
{
switch (format[formatPos++])
{
case '\0':
{
return 0;
}
case 'i', 'd':
{
new
neg = 1,
num = 0,
ch = string[stringPos];
if (ch == '-')
{
neg = -1;
ch = string[++stringPos];
}
do
{
stringPos++;
if ('0' <= ch <= '9')
{
num = (num * 10) + (ch - '0');
}
else
{
return -1;
}
}
while ((ch = string[stringPos]) > ' ' && ch != delim);
setarg(paramPos, 0, num * neg);
}
case 'h', 'x':
{
new
num = 0,
ch = string[stringPos];
do
{
stringPos++;
switch (ch)
{
case 'x', 'X':
{
num = 0;
continue;
}
case '0' .. '9':
{
num = (num << 4) | (ch - '0');
}
case 'a' .. 'f':
{
num = (num << 4) | (ch - ('a' - 10));
}
case 'A' .. 'F':
{
num = (num << 4) | (ch - ('A' - 10));
}
default:
{
return -1;
}
}
}
while ((ch = string[stringPos]) > ' ' && ch != delim);
setarg(paramPos, 0, num);
}
case 'c':
{
setarg(paramPos, 0, string[stringPos++]);
}
case 'f':
{
new changestr[16], changepos = 0, strpos = stringPos;
while(changepos < 16 && string[strpos] && string[strpos] != delim)
{
changestr[changepos++] = string[strpos++];
}
changestr[changepos] = '\0';
setarg(paramPos,0,_:floatstr(changestr));
}
case 'p':
{
delim = format[formatPos++];
continue;
}
case '\'':
{
new
end = formatPos - 1,
ch;
while ((ch = format[++end]) && ch != '\'') {}
if (!ch)
{
return -1;
}
format[end] = '\0';
if ((ch = strfind(string, format[formatPos], false, stringPos)) == -1)
{
if (format[end + 1])
{
return -1;
}
return 0;
}
format[end] = '\'';
stringPos = ch + (end - formatPos);
formatPos = end + 1;
}
case 'u':
{
new
end = stringPos - 1,
ID = 0,
bool:num = true,
ch;
while ((ch = string[++end]) && ch != delim)
{
if (num)
{
if ('0' <= ch <= '9')
{
ID = (ID * 10) + (ch - '0');
}
else
{
num = false;
}
}
}
if (num && IsPlayerConnected(ID))
{
setarg(paramPos, 0, ID);
}
else
{
#if !defined foreach
#define foreach(%1,%2) for (new %2 = 0; %2 < MAX_PLAYERS; %2++) if (IsPlayerConnected(%2))
#define __SSCANF_FOREACH__
#endif
string[end] = '\0';
num = false;
new
name[MAX_PLAYER_NAME];
ID = end - stringPos;
foreach (Player, playerid)
{
GetPlayerName(playerid, name, sizeof (name));
if (!strcmp(name, string[stringPos], true, ID))
{
setarg(paramPos, 0, playerid);
num = true;
break;
}
}
if (!num)
{
setarg(paramPos, 0, INVALID_PLAYER_ID);
}
string[end] = ch;
#if defined __SSCANF_FOREACH__
#undef foreach
#undef __SSCANF_FOREACH__
#endif
}
stringPos = end;
}
case 's', 'z':
{
new
i = 0,
ch;
if (format[formatPos])
{
while ((ch = string[stringPos++]) && ch != delim)
{
setarg(paramPos, i++, ch);
}
if (!i)
{
return -1;
}
}
else
{
while ((ch = string[stringPos++]))
{
setarg(paramPos, i++, ch);
}
}
stringPos--;
setarg(paramPos, i, '\0');
}
default:
{
continue;
}
}
while (string[stringPos] && string[stringPos] != delim && string[stringPos] > ' ')
{
stringPos++;
}
while (string[stringPos] && (string[stringPos] == delim || string[stringPos] <= ' '))
{
stringPos++;
}
paramPos++;
}
do
{
if ((delim = format[formatPos++]) > ' ')
{
if (delim == '\'')
{
while ((delim = format[formatPos++]) && delim != '\'') {}
}
else if (delim != 'z')
{
return delim;
}
}
}
while (delim > ' ');
return 0;
}
die beleidigungen würde ich hier unterlassen
Zitat
ne da kannse nix machen ist in arsch voll ver bugt kannse vergesenn sory
ich dachte kannst es auch
zu /tv gibts eine bessere lösung!! aber die werde ich nicht posten ich sag nur GF und Spectating!!
das is aber keine bessere lösung das is ja dann Paste & Copy
meine lösung wäre per Timer die Position des gewünschten Spieler raus finden und immer die Kamera von Playerid da hintersetzen also X-2 zum beispiel
ie beleidigungen würde ich hier unterlassen
ja ich kenne das aber ich weis nicht wie man die Bugs da raus bekommt und es war mal mein Script den habe ich vor 1 Jahr ihr hochgeladen da wusste ich noch nicht das der Bugs hat und mal ne frage wiest du ein carsystem was gut geht
jo im Showroom gibts eins von Blackfox das finde ich sehr gut und eins von Ping und bald eins von mir
Danke leute