Chat Problems
#1

How to show it for the only who typed /togglechat with ids only shows for the who type /chatid

Код:
public OnPlayerText(playerid, text[])
{
    new message[128];
    if(Chat[playerid] == true)
	{
 	    if(Chat[playerid] == false) // For the ones who didnt type /chatid
    	{
   	        format(message,sizeof(message),"%s: {FFFFFF}%s",playerid, ReturnName(playerid),text);
 	    }
        format(message,sizeof(message),"(%i) %s: {FFFFFF}%s",playerid, ReturnName(playerid),text);
 	    SendClientMessageToAll(GetPlayerColor(playerid), message);
 	}
 	else
	if(PlayerLogged[playerid] == 0)
    {
        format(message,sizeof(message),"You're not logged in to the server");
 	    SendClientMessageToAll(-1, message);
    }
    else
	{
   	    format(message,sizeof(message),"%s: {FFFFFF}%s", ReturnName(playerid),text);
 	    SendClientMessageToAll(GetPlayerColor(playerid), message);
 	}
	return 0;
}
Код:
CMD:chatid(playerid, params[])
{
	new Togglechat[128];
	if(Chat[playerid] == false)
	{
	    format(Togglechat, sizeof(Togglechat), "You have able to see chat ids.", ReturnName(playerid));
	    SendClientMessage(playerid, -1, Togglechat);
	    Chat[playerid] = true;
	}
	else
	{
	    format(Togglechat, sizeof(Togglechat), "You disabled chat ids", ReturnName(playerid));
	    SendClientMessage(playerid, -1, Togglechat);
	    Chat[playerid] = false;
	}
	return 1;
}
Reply
#2

As I understood, This should do
pawn Код:
new Chat[MAX_PLAYERS], bool:ChatForPlayer[MAX_PLAYERS][MAX_PLAYERS];

public OnPlayerConnect(playerid)
{
    Chat[playerid] = false;
    for(new i; i<MAX_PLAYERS; i++) ChatForPlayer[playerid][i] = true;
}

CMD:chatid(playerid, params[])
{
    new id;
    if(sscanf(params, "r", id)) return SendClientMessage(playerid, -1, "Wrong syntax");
    if(!IsPlayerConnected(id))  return SendClientMessage(playerid, -1, "Wrong player id");
   
    ChatForPlayer[playerid][id] = !ChatForPlayer[playerid][id];
    new string[128];
    format(string, sizeof(string), "%s chat for %s", ChatForPlayer[playerid][id] ? ("Enabled"):("Disabled"), ReturnName(id));
    return 1;
}

CMD:togglechat(playerid, params[])
{
    Chat[playerid] = !Chat[playerid];

    SendClientMessage(playerid, -1, Chat[playerid] ? ("Chat enabled."):("Chat disabled."));
    return 1;
}


public OnPlayerText(playerid, text[])
{
    if(PlayerLogged[playerid] == 0) return SendClientMessage(playerid, -1, "You're not logged in to the server"), 0;
    if(!Chat[playerid]) return SendClientMessage(playerid, -1, "Chat disabled"), 0;

    for(new i, message[128], j = GetPlayerPoolSize()+1; i<j; i++)
        if(IsPlayerConnected(i) && ChatForPlayer[playerid][i])
            format(message,sizeof(message),"%s: {FFFFFF}%s", ReturnName(playerid), text), SendClientMessage(i, -1, message);
           
    return 0;
}
Reply
#3

You have to write it like this:

PHP код:
public OnPlayerText(playeridtext[])
{
    new 
msg[128];
    if(
PlayerLogged[playerid] == 0)
    {
        
format(msg,sizeof(msg),"You're not logged in to the server");
         
SendClientMessageToAll(-1msg);
    }
    else
    {
        new 
tmp[128];
        
format(msg,sizeof(msg),"%s: {FFFFFF}%s"ReturnName(playerid),text);
        
format(tmp,sizeof(tmp),"(%i) %s: {FFFFFF}%s",playeridReturnName(playerid),text);
        
SendChatMessage(GetPlayerColor(playerid), msgtmp);
     }
    return 
0;
}
stock SendChatMessage(color,const txt[],const txt1[])
{
    for(new 
i=GetPlayerPoolSize()+1; --i!=-1;)
    {
        if(!
IsPlayerConnected(i) || IsPlayerNPC(i)) continue;
        
SendClientMessage(i,color,(Chat[i])?(txt1):(txt));
    }
    return 
1;

Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)