team help..
#1

all codes:-

Код:
#define TEAM_TERRORIST 1
#define TEAM_ARMY 2
#define TEAM_TERRORIST_COLOR 0xCC1616FF
#define TEAM_ARMY_COLOR 0x22318FFF
Код:
new gTeam[MAX_PLAYERS];
Код:
forward SetPlayerToTeamColour(playerid);
Код:
public OnPlayerRequestClass(playerid, classid)
{
	SetPlayerColor(playerid,COLOR_GREY);
    SetPlayerTeamFromClass(playerid,classid);

    switch (classid)
	{
		case 0,1,2:
 		{
			GameTextForPlayer(playerid, "~r~TERRORIST", 3000, 5);
			SetPlayerPos(playerid, 1134.82, -2037.17, 69.01);
			SetPlayerCameraPos(playerid, 1139.13,-2037.17,68.50);
			SetPlayerCameraLookAt(playerid, 1134.82, -2037.17, 69.01);
			return 1;
		}
		case 3,4,5:
  		{
	        GameTextForPlayer(playerid, "~b~ARMY", 3000, 5);
 			SetPlayerPos(playerid, 1134.82, -2037.17, 69.01);
			SetPlayerCameraPos(playerid, 1139.13,-2037.17,68.50);
			SetPlayerCameraLookAt(playerid, 1134.82, -2037.17, 69.01);
	        return 1;
		}

    }

    return 1;
}
Код:
SetPlayerTeamFromClass(playerid, classid)
{
 	   if(classid >= 0 || classid >= 1 || classid >= 2)
	   {
	    	gTeam[playerid] = TEAM_TERRORIST;
	    	return 1;
	   }
    	else if(classid >= 3 || classid >= 4 || classid >= 5)
	   {
		    gTeam[playerid] = TEAM_ARMY;
		    return 1;
	   }
	   return 1;
}
Код:
public SetPlayerToTeamColour(playerid)
{
	if(gTeam[playerid] == TEAM_TERRORIST)
	{
	    SetPlayerColor(playerid,TEAM_TERRORIST_COLOR);
		return 1;
	}
	if(gTeam[playerid] == TEAM_ARMY)
	{
	    SetPlayerColor(playerid,TEAM_ARMY_COLOR);
	    return 1;
	}
	return 1;
}
Код:
public OnPlayerSpawn(playerid)
{
	if(gTeam[playerid] == TEAM_TERRORIST)
	{
	  SetPlayerTeam(playerid, 1);
      SetPlayerColor(playerid,TEAM_TERRORIST_COLOR);
	  return 1;
	}
	if(gTeam[playerid] == TEAM_ARMY)
	{
	  SetPlayerTeam(playerid, 2);
      SetPlayerColor(playerid,TEAM_ARMY_COLOR);
	  return 1;
	}

	return 1;
}
problem:-
setting terrorist colour for both army and terrorist.

help me asap pls, rep..
Reply
#2

List You've done wrong
  • Improper use of operators
  • Improper use of switch
  • Mixing gTeam with SetPlayerTeam
Here you go.
pawn Код:
#include <a_samp>

#define TEAM_TERRORIST 1
#define TEAM_ARMY 2
#define TEAM_TERRORIST_COLOR 0xCC1616FF
#define TEAM_ARMY_COLOR 0x22318FFF

public OnPlayerRequestClass(playerid, classid)
{
    switch (classid)
    {
        case 0 .. 2:
        {
            GameTextForPlayer(playerid, "~r~TERRORIST", 3000, 5);
            SetPlayerPos(playerid, 1134.82, -2037.17, 69.01);
            SetPlayerCameraPos(playerid, 1139.13,-2037.17,68.50);
            SetPlayerCameraLookAt(playerid, 1134.82, -2037.17, 69.01);
            SetPlayerTeam(playerid, TEAM_TERRORIST);
        }
        case 3 .. 5:
        {
            GameTextForPlayer(playerid, "~b~ARMY", 3000, 5);
            SetPlayerPos(playerid, 1134.82, -2037.17, 69.01);
            SetPlayerCameraPos(playerid, 1139.13,-2037.17,68.50);
            SetPlayerCameraLookAt(playerid, 1134.82, -2037.17, 69.01);
            SetPlayerTeam(playerid, TEAM_ARMY);
        }

    }
    return 1;
}

public OnPlayerSpawn( playerid )
{
    SetPlayerToTeamColour(playerid);
    return true;
}

SetPlayerToTeamColour( playerid )
{
    switch( GetPlayerTeam(playerid) )
    {
        case TEAM_TERRORIST: SetPlayerColor(playerid,TEAM_TERRORIST_COLOR);
        case TEAM_ARMY: SetPlayerColor(playerid,TEAM_ARMY_COLOR);
    }
    return true;
}
Reply
#3

can you fix this also then?
Код:
CMD:r(playerid, params[])
{
	new text[128],string[256];
    if(sscanf(params, "s[128]", text)) return SendClientMessage(playerid, COLOR_GREY, "Syntax: /r [text]");
	foreach(Player, i)
     {
       if(gTeam[playerid] == TEAM_TERRORIST)
         {
             format(string, sizeof(string),"[Radio] %s: %s", PlayerName(playerid), text);
             SendClientMessage(i, TEAM_TERRORIST_COLOR, string);
         }
       if(gTeam[playerid] == TEAM_ARMY)
         {
             format(string, sizeof(string),"[Radio] %s: %s", PlayerName(playerid), text);
             SendClientMessage(i, TEAM_ARMY_COLOR, string);
         }
	 }
    return 1;
}
Reply
#4

Quote:
Originally Posted by BlackBomb
Посмотреть сообщение
can you fix this also then?
Код:
..
Sure, You could use isnull instead of sscanf when executing strings because you don't use any placeholder you just use placeholder s

pawn Код:
CMD:r( playerid, params[ ] )
{
    new
        string[ 128 ];

    if( isnull( params ) )
        return SendClientMessage( playerid, COLOR_GREY, "Syntax: /r [text]" );

    foreach( Player, i )
    {
        if( GetPlayerTeam( playerid ) == TEAM_TERRORIST )
        {
            format( string, sizeof( string ),"[Radio] %s: %s", PlayerName(playerid), params);
            SendClientMessage( i, TEAM_TERRORIST_COLOR, string );
        }
        if( GetPlayerTeam( playerid ) == TEAM_ARMY )
        {
            format( string, sizeof( string ),"[Radio] %s: %s", PlayerName(playerid), params);
            SendClientMessage( i, TEAM_ARMY_COLOR, string );
        }
    }
    return true;
}
Reply
#5

thanks dude.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)