Jump to content
  • 0

pomoc Admin chat - pošle správu 2x


NoJo_

Dotaz

Zdravím,

pri robení admin chatu sa mi objavil 1 problém, ktorý ani po dlhšom snažení neviem opraviť :d

 

Po napísaní do admin chatu (-Text) sa správa pošle aj do AdminChatu ale aj do normálneho chatu, neviete ako to spraviť tak, aby sa to poslalo len do Admin chatu?

 

if(text[0] == '-')
	    {
	    if(Alvl[playerid] >= 1)
     		{
		for(new i=0;i<MAX_PLAYERS_EX;i++)
		     {
	             if(Alvl[i] >= 1)
	                  {
			  format(aChat,sizeof(aChat),"{CCFF00}[AdminChat] %s(%i): %s",hmeno(playerid),playerid,text[1]);
			  SCM(i,-1,aChat);
			  }
		     }
		}
	    }

btw. SCM mám namiesto SendClientMessage

 

Vopred vďaka za odpoveď

 

 

Link to comment
Share on other sites

7 odpovědí na tuto otázku

Recommended Posts

  • 0


public OnPlayerText(playerid,text[])
{
new chatMes[144],aChat[144];
format(chatMes,sizeof(chatMes),"%s{FFFFFF}(%i): {FFFFFF}%s",hmeno(playerid),playerid,text);
if(mute[playerid] == false)
{
SCMTA(GetPlayerColor(playerid),chatMes);
}
else if(mute[playerid] == true)
{
SCM(playerid,-1,"{FF0000}[Server] {FFFFFF}Si umlčaný! Nemôžeš písať do chatu!");
return false;
}
if(text[0] == '-')
{
if(Alvl[playerid] >= 1)
{
for(new i=0;i<MAX_PLAYERS;i++)
{
if(Alvl[i] >= 1)
{
format(aChat,sizeof(aChat),"{CCFF00}[AdminChat] %s(%i): %s",hmeno(playerid),playerid,text[1]);
SCM(i,-1,aChat);
return false;
}
}
}
}
return false;
}

 

Edited by NoJo_
Link to comment
Share on other sites

  • 0

Podstatný bude asi to, že bez jakýkoliv podmínek naformátuješ zprávu a odešleš ji nehledě na to jestli použil '-'. Po té co zprávu odešleš, tak se teprve dostáváme k tvé podmínce, která když se splní, tak odešle znova zprávu do admin chatu. Takže buď ti stačí přidat podmínku text[0] != '-' a nebo to jednoduše prohodit. ;)

 

 

 

public OnPlayerText(playerid,text[])
{
	new chatMes[144];//stačí ti jedna proměnná, buď se vykoná podmínka a vloží se do ní text z A chatu a nebo se nevykoná a naformátuje se do normal chatu
	
	if(text[0] == '-')
	{
 		if(Alvl[playerid] >= 1)
		{
			for(new i=0;i<MAX_PLAYERS;i++)
   			{
		    	if(Alvl[i] >= 1)
       			{
		        	format(chatMes,sizeof(chatMes),"{CCFF00}[AdminChat] %s(%i): %s",hmeno(playerid),playerid,text[1]);
		        	SCM(i,-1,chatMes);
      			}
   			}
   		}
  	}
	else
	{
		if(!mute[playerid])
 		{
	 		format(chatMes,sizeof(chatMes),"%s{FFFFFF}(%i): {FFFFFF}%s",hmeno(playerid),playerid,text);
	    	        SCMTA(GetPlayerColor(playerid),chatMes);
  		}
		else if(mute[playerid])
 		{
  			SCM(playerid,-1,"{FF0000}[Server] {FFFFFF}Si umlčaný! Nemôžeš písať do chatu!");
    	        }
  	}
	return false; //nemusís všude vracet false, stačí ti to nakonci, ovšem záleži to pouze na tobě, kdyby jsi měl delší kód a při splnění nějaký podmínky by si už zbytek kódu nechtěl projet, tak bys mohl
} 

 

 

Edited by GaRGoyLeS
Link to comment
Share on other sites

  • 0

Podstatný bude asi to, že bez jakýkoliv podmínek naformátuješ zprávu a odešleš ji nehledě na to jestli použil '-'. Po té co zprávu odešleš, tak se teprve dostáváme k tvé podmínce, která když se splní, tak odešle znova zprávu do admin chatu. Takže buď ti stačí přidat podmínku text[0] != '-' a nebo to jednoduše prohodit. ;)

 

 

 

public OnPlayerText(playerid,text[])
{
	new chatMes[144];//stačí ti jedna proměnná, buď se vykoná podmínka a vloží se do ní text z A chatu a nebo se nevykoná a naformátuje se do normal chatu
	
	if(text[0] == '-')
	{
 		if(Alvl[playerid] >= 1)
		{
			for(new i=0;i<MAX_PLAYERS;i++)
   			{
		    	if(Alvl[i] >= 1)
       			{
		        	format(chatMes,sizeof(chatMes),"{CCFF00}[AdminChat] %s(%i): %s",hmeno(playerid),playerid,text[1]);
		        	SCM(i,-1,chatMes);
      			}
   			}
   		}
  	}
	else
	{
		if(!mute[playerid])
 		{
	 		format(chatMes,sizeof(chatMes),"%s{FFFFFF}(%i): {FFFFFF}%s",hmeno(playerid),playerid,text);
	    	        SCMTA(GetPlayerColor(playerid),chatMes);
  		}
		else if(mute[playerid])
 		{
  			SCM(playerid,-1,"{FF0000}[Server] {FFFFFF}Si umlčaný! Nemôžeš písať do chatu!");
    	        }
  	}
	return false; //nemusís všude vracet false, stačí ti to nakonci, ovšem záleži to pouze na tobě, kdyby jsi měl delší kód a při splnění nějaký podmínky by si už zbytek kódu nechtěl projet, tak bys mohl
} 

 

 

Vďaka funguje :) avšak musel som tam pridať tie returny po odoslaní správy, pretože to znova odosielalo 2x

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...