Guten Tag,
ich habe mir das FS worum es sich hier handelt aus dem Netzt gezogen da ich noch ein blutiger Anfänger bin was Sachen Scripting betrifft.
Nun meine Frage, ich möchte gern das in dem gezeigten FS alle Chatausgaben die der Spieler bekommt so sind wie oben Definiert.
FS:
#include <a_samp>
#include <ocmd>
#define MAX_ROADBLOCKS 50
#define blue 0xAA3333AA
new RB[MAX_ROADBLOCKS];
new bool:IsRBC[MAX_ROADBLOCKS];
public OnFilterScriptInit()
{
print("\nRoadblock Filterscript by Gredsoft\n");
for(new i = 0; i < MAX_ROADBLOCKS; i++)
{
IsRBC[i] = false;
DestroyObject(RB[i]);
}
return 1;
}
public OnFilterScriptExit()
{
for(new i = 0; i < MAX_ROADBLOCKS; i++)
{
IsRBC[i] = false;
DestroyObject(RB[i]);
}
}
ocmd:ssc(playerid,params[])
{
new skin;
skin = GetPlayerSkin(playerid);
if(skin < 280 || skin > 288)return SendClientMessage(playerid,-1,"Du bist kein Polizist!");
new Float:x,Float:y,Float:z,Float:a;
GetPlayerPos(playerid,x,y,z);
GetPlayerFacingAngle(playerid,a);
for(new i = 0; i < MAX_ROADBLOCKS; i++)
{
if(!IsRBC[i]) {
IsRBC[i] = true;
RB[i] = CreateObject(978,x,y,z - 0.6,0.0,0.0,a -180.0);
for(new i2 = 0; i2 < MAX_PLAYERS; i2++)
{
new iskin;
iskin = GetPlayerSkin(i2);
if(iskin > 279 && iskin < 289){
new str[128];
format(str,sizeof(str),"[HQ] Polizist %s hat eine Straßensperre aufgestellt!",ReturnPlayerName(playerid));
SendClientMessage(i2,-1,str);
}
}
return 1;
}
}
SendClientMessage(playerid,-1,"[HQ] Es können keine weiteren Straßensperren mehr aufgestellt werden.");
SendClientMessage(playerid,-1,"[HQ] Möglichkeiten: /ssa | /ssd (Nummer)");
return 1;
}
ocmd:ssd(playerid,params[])
{
new skin;
skin = GetPlayerSkin(playerid);
if(skin < 280 || skin > 288)return SendClientMessage(playerid,-1,"[HQ] Du bist kein Polizist!");
new rbid;
if(sscanf(params,"i",rbid))return SendClientMessage(playerid,-1,"[HQ] Benutzung: /ssd <ID>");
if(!IsRBC[rbid])return SendClientMessage(playerid,-1,"[HQ] Es existiert keine Straßensperre unter dieser ID.");
DestroyObject(RB[rbid]);
IsRBC[rbid] = false;
for(new i = 0; i < MAX_PLAYERS; i++)
{
new iskin;
iskin = GetPlayerSkin(i);
if(iskin > 279 && iskin < 289){
new str[128];
format(str,sizeof(str),"[HQ] Polizist %s hat die Straßensperre mit der ID %i entfernt!",ReturnPlayerName(playerid),rbid);
SendClientMessage(i,-1,str);
}
}
return 1;
}
ocmd:ssa(playerid,params[])
{
new skin;
skin = GetPlayerSkin(playerid);
if(skin < 280 || skin > 288)return SendClientMessage(playerid,-1,"[HQ] Du bist kein Polizist!");
for(new i = 0; i < MAX_ROADBLOCKS; i++)
{
IsRBC[i] = false;
DestroyObject(RB[i]);
}
for(new i = 0; i < MAX_PLAYERS; i++)
{
new iskin;
iskin = GetPlayerSkin(i);
if(iskin > 279 && iskin < 289){
new str[128];
format(str,sizeof(str),"[HQ] Polizist %s hat alle Straßensperren entfernt!",ReturnPlayerName(playerid));
SendClientMessage(i,-1,str);
}
}
return 1;
}
stock ReturnPlayerName(playerid)
{
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,sizeof(name));
return name;
}
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;
}