Hallo,
ich habe heute ein Filterscript erstellt und stehe nun vor den
Problem, dass ich mein TextDraw nicht verändern kann.
Im Script kann ich zwar die Zeilen (Größe, Schriftart usw.) verändern und alles
mögliche, aber InGame ändert sich am Textdraw (Größe, Schriftart usw.) nichts.
Hier mal die ganzen Zeilen, es wäre sehr nett wenn mir da jemand helfen könnte.
#include <a_samp>
#include <ocmd>
new Text:GpsText[MAX_PLAYERS];
forward GpsTimer(playerid);
new GpsOnOff = 0;
#if defined FILTERSCRIPT
public OnFilterScriptInit()
{
print("\n--------------------------------------");
print(" GPS-Koordinaten-Fliterscript von Syneroz!");
print("--------------------------------------\n");
for(new i = 0; i < MAX_PLAYERS; i++)
{
new string[64];
new Float:x, Float:y, Float:z;
GetPlayerPos(playerid, x, y, z);
format(string, sizeof(string), "GPS-Koordinaten:\n%f,\n%f,\n%f", x, y, z);
GpsText[i] = TextDrawCreate(240.0,580.0, string);
TextDrawColor(GpsText[i],0xffffffff);
TextDrawBackgroundColor(GpsText[i],0xFF9933FF);
TextDrawAlignment(GpsText[i],2);
TextDrawFont(GpsText[i],1);
TextDrawLetterSize(GpsText[i],0.35,0.7);
TextDrawSetOutline(GpsText[i],1);
TextDrawSetShadow(GpsText[i],1);
TextDrawSetProportional(GpsText[i],1);
}
return 1;
}
public OnFilterScriptExit()
{
return 1;
}
#endif
public OnPlayerConnect(playerid)
{
SetTimerEx("GpsTimer", 1000, true, "", playerid, "");
return 1;
}
ocmd:gps(playerid,params[])
{
if(GpsOnOff == 0)
{
TextDrawShowForPlayer(playerid, GpsText[playerid]);
GpsOnOff = 1;
}
else if(GpsOnOff == 1)
{
TextDrawHideForPlayer(playerid, GpsText[playerid]);
GpsOnOff = 0;
}
return 1;
}
public GpsTimer(playerid)
{
new string[64];
new Float:x, Float:y, Float:z;
GetPlayerPos(playerid, x, y, z);
format(string, sizeof(string), "GPS-Koordinaten:\n%f, %f, %f", x, y, z);
TextDrawSetString(GpsText[playerid], string);
return 1;
}
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;
}
Gruß und vorab schon einmal vielen Dank!