Filterscript doesn't work at all..
#1

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);
    }

}
Reply
#2

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;
}
Reply
#3

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?
Reply
#4

Don't return 0 when the ! isn't present.
Reply
#5

Still bugging..
Reply
#6

Try to return 1; at the bottom of OnPlayerText
Reply
#7

Still not working..
Reply
#8

you can simply make it with making a new variable Tag/clan or etc.. if you want to know how so pm me.
Reply
#9

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);
            }
        }
Reply
#10

KKai ! Thanks
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)