SendClientMessage mixes up
#1

Hi!
I've got a strange problem with SendClientMessage. Never experienced that until 1 or 2 month ago.

When I send a lot of strings to be displayed by SendClientMessage, sometimes, when I use a lot of strings, they mix up.

I tested this a bit and I can give you the following example:

This is my code, which is triggered, when a CMD is entered:
Код:
SendClientMessage(i, BANKMSG2_COLOR, "___________________________________1________________________________________");
SendClientMessage(i, BANKMSG3_COLOR, "___________________________________2________________________________________");
SendClientMessage(i, BANKMSG2_COLOR, "___________________________________3________________________________________");
SendClientMessage(i, BANKMSG3_COLOR, "___________________________________4________________________________________");
SendClientMessage(i, BANKMSG2_COLOR, "___________________________________5________________________________________");
SendClientMessage(i, BANKMSG3_COLOR, "___________________________________6________________________________________");
SendClientMessage(i, BANKMSG2_COLOR, "___________________________________7________________________________________");
SendClientMessage(i, BANKMSG3_COLOR, "___________________________________8________________________________________");
SendClientMessage(i, BANKMSG2_COLOR, "___________________________________9________________________________________");
SendClientMessage(i, BANKMSG3_COLOR, "___________________________________10________________________________________");
SendClientMessage(i, BANKMSG2_COLOR, "___________________________________11________________________________________");
SendClientMessage(i, BANKMSG3_COLOR, "___________________________________12________________________________________");
SendClientMessage(i, BANKMSG2_COLOR, "___________________________________13________________________________________");
SendClientMessage(i, BANKMSG3_COLOR, "___________________________________14________________________________________");
SendClientMessage(i, BANKMSG2_COLOR, "___________________________________15________________________________________");
SendClientMessage(i, BANKMSG3_COLOR, "___________________________________16________________________________________");
SendClientMessage(i, BANKMSG2_COLOR, "___________________________________17________________________________________");
SendClientMessage(i, BANKMSG3_COLOR, "___________________________________18________________________________________");
SendClientMessage(i, BANKMSG2_COLOR, "___________________________________19________________________________________");
SendClientMessage(i, BANKMSG3_COLOR, "___________________________________20________________________________________");
No problem you'd think. But now have a look at the output (this happens sometimes, but not always):



Don't wonder, where the line with the 6 is, it just got pushed up by the "screenshot taken" message.


So, anyone got a clue?
It also doesn't matter, how long the used strings are. If I used shorter ones, it would have the same result.
Reply
#2

try making a delay between each msg
Reply
#3

Yea, thought about that..

I just wrote the following code, do you think that this would be the best method to bypass the problem?

Код:
forward msgOutput(playerid, index);
public msgOutput(playerid, index)
{
	switch(index++)
	{
		case 0: SendClientMessage(playerid, BANKMSG2_COLOR, "___________________________________1________________________________________");
		case 1: SendClientMessage(playerid, BANKMSG3_COLOR, "___________________________________2________________________________________");
		case 2: SendClientMessage(playerid, BANKMSG2_COLOR, "___________________________________3________________________________________");
		case 3: SendClientMessage(playerid, BANKMSG3_COLOR, "___________________________________4________________________________________");
		case 4: SendClientMessage(playerid, BANKMSG2_COLOR, "___________________________________5________________________________________");
		case 5: SendClientMessage(playerid, BANKMSG3_COLOR, "___________________________________6________________________________________");
		case 6: SendClientMessage(playerid, BANKMSG2_COLOR, "___________________________________7________________________________________");
		case 7: SendClientMessage(playerid, BANKMSG3_COLOR, "___________________________________8________________________________________");
		case 8: SendClientMessage(playerid, BANKMSG2_COLOR, "___________________________________9________________________________________");
		case 9: SendClientMessage(playerid, BANKMSG3_COLOR, "___________________________________10________________________________________");
		case 10: SendClientMessage(playerid, BANKMSG2_COLOR, "___________________________________11________________________________________");
		case 11: SendClientMessage(playerid, BANKMSG3_COLOR, "___________________________________12________________________________________");
		case 12: SendClientMessage(playerid, BANKMSG2_COLOR, "___________________________________13________________________________________");
		case 13: SendClientMessage(playerid, BANKMSG3_COLOR, "___________________________________14________________________________________");
		case 14: SendClientMessage(playerid, BANKMSG2_COLOR, "___________________________________15________________________________________");
		case 15: SendClientMessage(playerid, BANKMSG3_COLOR, "___________________________________16________________________________________");
		case 16: SendClientMessage(playerid, BANKMSG2_COLOR, "___________________________________17________________________________________");
		case 17: SendClientMessage(playerid, BANKMSG3_COLOR, "___________________________________18________________________________________");
		case 18: SendClientMessage(playerid, BANKMSG2_COLOR, "___________________________________19________________________________________");
		case 19: SendClientMessage(playerid, BANKMSG3_COLOR, "___________________________________20________________________________________");
	}
	
	if(index >= 1 && index <= 19) SetTimerEx("msgOutput", 20, 0, "ii", playerid, index);
	
	
	printf("idx %d", index);
}
And of course, msgOutput gets initially called when the CMD is typed in.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)