Irgentwo im Script musst du folgenden Timer haben
SetTimer("serverNews",delay,1);
Dieser wiederholt sich natürlich immer, da man sonst die Nachricht nur einmal pro Serverstart erhalten würde. Der Delay gibt dabei die Zeitintervalle zwischen den einzelnen Nachrichten an (Nachricht 1 und Nachricht 2).
So wie ich das verstanden habe, bekommt man aber jede Nachricht mehr als nur einmal.
Ich hab den Code jetzt mal untereinander geschrieben:
public serverNews()
{
for(new i=0; i<MAX_PLAYERS; i++)
{
if(gPlayerLogged[i]==1)
{
if(PlayerInfo[i][pAdmin]==0)
{
if(newswechsel == 1)
{
SendClientMessageToAll(COLOR_LIGHTBLUE,"|~~~~~~~~~~~~~~~~| Das Script |~~~~~~~~~~~~~~~~|");
SendClientMessageToAll(COLOR_GRAD1," Dieses Script stammt von D4ywalk3r.");
SendClientMessageToAll(COLOR_GRAD1, " Copyright by:: www.massive-dyamic-roleplay.de");
SendClientMessageToAll(COLOR_LIGHTBLUE, "|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|");
newswechsel = 2;
return 1;
}
else if(newswechsel == 2)
{
SendClientMessageToAll(COLOR_LIGHTBLUE,"|~~~~~~~~~~~~~| Massive-Dynamic Roleplay|~~~~~~~~~~~~|");
SendClientMessageToAll(COLOR_GRAD1, "Da der Server im Aufbau ist, kann es vorkommen");
SendClientMessageToAll(COLOR_GRAD1, "das ihr einige Bugs vorfindet, meldet diese");
SendClientMessageToAll(COLOR_GRAD1, "bitte sofort im /report oder im Forum!");
SendClientMessageToAll(COLOR_GRAD1, "Forum: www.massive-dynamic-roleplay.de");
SendClientMessageToAll(COLOR_LIGHTBLUE, "|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|");
newswechsel = 1;
return 1;
}
}
}
}
return 1;
}
Der Fehler liegt darin, dass du per Schleife alle Spieler durchgehst die maximal auf dem Server sein können. Also 200 Durchläufe.
Bei jedem durchlauf sendest du die Nachricht aber nicht an jeden Spieler einzeln sondern direkt an alle Spieler. Bedeutet wenn die Schleife Spieler 0 (Zähler = 0) durchläuft, bekommt jeder Spieler die Nachricht (SendClientMessageToAll (To All bedeutet alle)). Bei Spieler zwei dann wieder das gleiche usw.
Also entweder die Schleife rausmachen oder jedem Spieler die Nachricht einzeln per SendClientMessage(playerid,color,string[]); senden.