Musisz przypisać identyfikator do funkcji infoMessage() bo jest ona wywoływana taskiem więc użycie pętli for może nie być skutecznym rozwiązaniem w tym przypadku.
 
Zamień:
if (freq_im > 0.0)
set_task(freq_im, "infoMessage", 12345)
Na:
 
if (freq_im > 0.0) {
for(new i=1; i<=32; i++) {
if(!is_user_connected(i) || is_user_hltv(i)) continue;
set_task(freq_im, "infoMessage", i+12345)
}
}
 
 
Oraz te podmień te funkcje
 
public infoMessage(id)
{
	id -= 12345
	if (g_Current >= g_MessagesNum)
		g_Current = 0
	
	// No messages, just get out of here
	if (g_MessagesNum==0)
	{
		return;
	}
	
	new values[3];
	new Message[384];
	
	ArrayGetString(g_Messages, g_Current, Message, charsmax(Message));
	ArrayGetArray(g_Values, g_Current, values);
	
	new hostname[64];
	
	get_cvar_string("hostname", hostname, charsmax(hostname));
	replace(Message, charsmax(Message), "%hostname%", hostname);
	
	new rankmax[10];
	formatex(rankmax, charsmax(rankmax), "%i", get_statsnum());
	replace(Message, charsmax(Message), "%rankmax%", rankmax);
	
	set_hudmessage(values[0], values[1], values[2], X_POS, Y_POS, 0, 0.5, HOLD_TIME, 2.0, 2.0, -1);
		
	new stats[8], bodyhits[8] //tworzymy tablice na dane statystyk
	new pos = get_user_stats(id, stats, bodyhits) // pobieramy statysytki gracza
		
	new rank[10];
	formatex(rank, charsmax(rank), "%i", pos);
	replace(Message, charsmax(Message), "%rank%", rank);
		
	show_hudmessage(i, "%s", Message);
	
	client_print(0, print_console, "%s", Message);
	++g_Current;
	
	new Float:freq_im = get_pcvar_float(amx_freq_imessage);
	
	if (freq_im > 0.0)
		set_task(freq_im, "infoMessage", id+12345);
}
Powyższa funkcja jest modyfikacją modyfikacji boskiego wiec nie gwarantuje ze sie skompiluje, ale jest przykładem jak to powinno działać
					
					
					
							Użytkownik Deus Vult edytował ten post 14.02.2023 19:28