Filterscript doesn't work at all.. -
Steezy_ - 14.07.2013
Hey guys, i did this fs.. but it doesn't work at all, when i use team chat everyone can see it, probably because something is bugged on PlayerConnect..
Here is my code, could someone check it? Thanks
Код:
#define FILTERSCRIPT
#include <a_samp>
new pname[24];
new Name[24];
new gTeam[MAX_PLAYERS];
#define TEAM_DAEDRIC 1
#define TEAM_TEST 2
#define DAEDRIC_COLOUR 0xEBFF008C
#define TEST_COLOUR 0x003DF5AA
stock TagUfficiali(playerid)
{
GetPlayerName(playerid, Name, sizeof(Name));
if(strfind(Name, "[Test]", true) != -1 || strfind(Name, "[Deadric]", true) != -1) return 1;
return 0;
}
public OnPlayerConnect(playerid)
{
GetPlayerName(playerid, pname, sizeof(pname));
if(strfind(pname, "[Daedric]", true) != -1)
{
SendClientMessage(playerid, DAEDRIC_COLOUR, "you're a daedric member..");
SetPlayerTeam(playerid, 1);
SetPlayerColor(playerid, DAEDRIC_COLOUR);
}
if(strfind(pname, "[Test]", true) != -1)
{
SendClientMessage(playerid, TEST_COLOUR, "you're a test member..");
SetPlayerTeam(playerid, 2);
SetPlayerColor(playerid, TEST_COLOUR);
}
return 1;
}
public OnPlayerSpawn(playerid)
{
if(gTeam[playerid] == TEAM_TEST || gTeam[playerid] == TEAM_DAEDRIC)
{
SendClientMessage(playerid,0x003DF5AA,"Porcaccio dio");
}
SetPlayerToTeamColour(playerid);
return 1;
}
public OnPlayerText(playerid, text[])
{
if(text[0] == '!')
{
if(TagUfficiali(playerid))
{
new string[128];
GetPlayerName(playerid, string, sizeof(string));
format(string, sizeof(string), "[Team] %s: %s", string, text[1]);
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i) && gTeam[i] == gTeam[playerid]) SendClientMessage(i, GetPlayerColor(playerid), string);
}
return 0;
}
else
{
for(new i = 0; i < MAX_PLAYERS; i++)
{
new string[128];
GetPlayerName(playerid, string, sizeof(string));
format(string, sizeof(string), "[Civilians chat]%s: %s", string, text[1]);
SendClientMessage(i, GetPlayerColor(playerid), string);
}
}
}
return 0;
}
SetPlayerToTeamColour(playerid)
{
if(gTeam[playerid] == TEAM_DAEDRIC)
{
SetPlayerColor(playerid,DAEDRIC_COLOUR);
}
else if(gTeam[playerid] == TEAM_TEST)
{
SetPlayerColor(playerid,TEST_COLOUR);
}
}
Re: Filterscript doesn't work at all.. -
Misiur - 14.07.2013
You are checking against gTeam[playerid], but you don't set its value (you only call SetPlayerTeam).
pawn Код:
public OnPlayerConnect(playerid)
{
GetPlayerName(playerid, pname, sizeof(pname));
if(strfind(pname, "[Daedric]", true) != -1)
{
SendClientMessage(playerid, DAEDRIC_COLOUR, "you're a daedric member..");
SetPlayerTeam(playerid, 1);
gTeam[playerid] = TEAM_DAEDRIC;
SetPlayerColor(playerid, DAEDRIC_COLOUR);
}
else if(strfind(pname, "[Test]", true) != -1) //Add else to avoid unnecessary checking
{
SendClientMessage(playerid, TEST_COLOUR, "you're a test member..");
SetPlayerTeam(playerid, 2);
gTeam[playerid] = TEAM_TEST;
SetPlayerColor(playerid, TEST_COLOUR);
}
return 1;
}
Re: Filterscript doesn't work at all.. -
Steezy_ - 14.07.2013
Thank ya !
but i have another prob.. with return 0 on PlayerText people can't talk at all.. without using !
How could i fix this?
Re: Filterscript doesn't work at all.. -
Misiur - 14.07.2013
Don't return 0 when the ! isn't present.
Re: Filterscript doesn't work at all.. -
Steezy_ - 14.07.2013
Still bugging..
AW: Filterscript doesn't work at all.. -
Macronix - 14.07.2013
Try to return 1; at the bottom of OnPlayerText
Re: Filterscript doesn't work at all.. -
Steezy_ - 14.07.2013
Still not working..
Re: Filterscript doesn't work at all.. -
PrinceKumar - 14.07.2013
you can simply make it with making a new variable Tag/clan or etc.. if you want to know how so pm me.
AW: Filterscript doesn't work at all.. -
Macronix - 14.07.2013
Change these lines:
pawn Код:
if(TagUfficiali(playerid))
{
new string[128];
GetPlayerName(playerid, string, sizeof(string));
format(string, sizeof(string), "[Team] %s: %s", string, text[1]);
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i) && gTeam[i] == gTeam[playerid]) SendClientMessage(i, GetPlayerColor(playerid), string);
}
return 0;
}
else
{
for(new i = 0; i < MAX_PLAYERS; i++)
{
new string[128];
GetPlayerName(playerid, string, sizeof(string));
format(string, sizeof(string), "[Civilians chat]%s: %s", string, text[1]);
SendClientMessage(i, GetPlayerColor(playerid), string);
}
}
To
pawn Код:
new pname[MAX_PLAYER_NAME];
new string[128];
GetPlayerName(playerid, pname, sizeof(pname));
if(TagUfficiali(playerid))
{
format(string, sizeof(string), "[Team] %s: %s", pname, text[1]);
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i) && gTeam[i] == gTeam[playerid]) SendClientMessage(i, GetPlayerColor(playerid), string);
}
return 0;
}
else
{
for(new i = 0; i < MAX_PLAYERS; i++)
{
format(string, sizeof(string), "[Civilians chat]%s: %s", pname, text[1]);
SendClientMessage(i, GetPlayerColor(playerid), string);
}
}
Re: Filterscript doesn't work at all.. -
Steezy_ - 15.07.2013
KKai ! Thanks