hallo,
geht das?
Oder irgendwie einen Streamer der das macht?
Hat jemand Ahnung?
Ich hab 6 Timer und das laggt übel....
Timer resourcen freundlicher machen?
- Mayo
- Geschlossen
- Erledigt
Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!
Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
-
-
Kommt drauf an, wo du die Timer hast, und wie oft sie geupdated werden.
-
OnGameModeInit
SetTimer("Wetter",900000, 1);
SetTimer("SetWetter",1000, 1);
SetTimer("AutoNaricht",600000,1);
SetTimer("ServerMinute",60000,1);
T1 = SetTimer("Servername1",5000,1);
T2 = SetTimer("Servername2",10000,0);
T3 = SetTimer("Servername3",15000,0);OnPlayerspawn hab ich was:
TutTime[playerid] = 1;
TutTimer[playerid] = SetTimerEx("Tutorial",800,1,"i",playerid);OnPlayerSpawn
SetTimerEx("tot",60000,0,"i",playerid);if(strcmp(cmdtext, "/Drivein", true) == 0)
{
if(IsPlayerConnected(playerid)) // Der Spieler muss eingeloggt sein.
{
if(IsAtDrivein(playerid)) // Der Spieler muss an einem DriveIn sein.
{
SendClientMessage(playerid, COLOR_LIGHTBLUE," Willkommen am Drivein! Ihre bestellung wird aufgenommen!");
SendClientMessage(playerid, COLOR_LIGHTBLUE," Bitte warten Sie. Ihr Essen wird zubereitet.");
SendClientMessage(playerid, COLOR_LIGHTBLUE," Bitte haben Sie ein wenig Geduld.");
SetTimerEx("Drivein",7000,0,"i",playerid); // Timer wielang der Spieler warten muss. *
TogglePlayerControllable(playerid, 0); // Der Spieler wird unfreezt.
}
else
{
SendClientMessage(playerid, COLOR_GRAD2, "Du bist an keinem Drivein !"); // Meldung wenn man an keinem Drivein Steht.
return 1;
}
}
}ocmd:robbank(playerid,params[])
{
if(IstSpielerInFraktion(playerid,1)|| IstSpielerInFraktion(playerid,2)||IstSpielerInFraktion(playerid,3))
{
SendClientMessage(playerid,ROT,"Als Staatsbeamter darfst du nicht die Bank ausrauben!");
}
else
if(robbed[playerid] == 0)
{
if(!IsPlayerInRangeOfPoint(playerid,15,2309.4956,-8.3965,26.7422)) return SendClientMessage(playerid,COLOR_GREY,"Du befindest dich nicht in der 'LS' Bank!");
{
SendClientMessage(playerid,COLOR_LIGHTBLUE,"* Du raubst grad die Bank!");
SendClientMessage(playerid,COLOR_LIGHTBLUE,"* Die Polizei wurde Alarmiert!");
SendClientMessage(playerid,COLOR_LIGHTBLUE,"* um den Ausraub Erfolgreich abzuschließen bleibe in der Bank für 1 min.!");
SetTimerEx("Robbing",1,0,"i",playerid);
SetPVarInt(playerid,"BankAusrauben",1);
GivePlayerMoney(playerid, 50000);
SetTimer("ausgeraubt",1800000,false);
SetPlayerWantedLevel(playerid,4);
robbed[playerid] = 1;
for(new i= 0; i<MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
if(IstSpielerInFraktion(playerid,1)|| IstSpielerInFraktion(playerid,2)||IstSpielerInFraktion(playerid,3))
{
SendClientMessage(i,ROT, "HQ: An alle Einheiten, die Bank von LS wird überfallen!");
return 1;
}
}
}
}
}
else
if(robbed[playerid] == 1)
{
SendClientMessage(playerid,COLOR_GREY,"Die Bank wurde vor kurzem ausgeraubt. Warte 30 min.");
}
return 1;
}public OnPlayerRequestSpawn(playerid)
{
SendClientMessage(playerid,Rot,"Spawn drücken bringt nichts :P");
SetTimerEx("LoginWait", 3500, false, "i", playerid);
return 1;
}public clock(){
new Text:Clock;
new hour,minute,second;
new string[10];
gettime(hour,minute,second);
format(string, sizeof string, "%s%d:%s%d:%s%d", (hour < 10) ? ("0") : (""), hour, (minute < 10) ? ("0") : (""), minute, (second < 10) ? ("0") : (""), second);
TextDrawHideForAll(Clock);
Clock = TextDrawCreate(542.0, 24.0, string); // Koordinaten, wo die Uhr angezeigt wird
TextDrawLetterSize(Clock, 0.6, 1.8);
TextDrawFont(Clock, 3); // Uhrschrift
TextDrawSetOutline(Clock, 2);
TextDrawShowForAll(Clock);
SetTimer("clock",1000,0);
return 1;
}public LoginWait(playerid)
{
new pName [MAX_PLAYER_NAME];
new string [48];
GetPlayerName(playerid, pName, sizeof(pName) ) ;
SendClientMessage(playerid, COLOR_GRAD1,"Dein Account wurde gefunden du kannst dich einlogen/registrieren");
SendClientMessage(playerid, COLOR_GRAD1,"Viel Spaß weiterhin auf [MW]Mayo World");
format(string, sizeof(string), "%s hat den Server betreten ", pName) ;
SendClientMessageToAll (0xAAAAAAAA, string);
new Spielerdatei[64];
Ping1[playerid] = 0;
SetTimerEx("Ping2", 1000*10, false, "%d", playerid);
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,sizeof(name));
format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
if(dini_Exists(Spielerdatei))
{
ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Login","Gib dein Passwort ein um dich einzuloggen.","Login","Abbrechen");
}
else
{
ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_PASSWORD,"Registrieren","Bitte gib dein gewünschtes Passwort ein um dich zu Registrieren.","Registrieren","Abbrechen");
}
}public Servername1()
{
SendRconCommand("hostname [MW]Mayo World Reallife v0.1");
KillTimer(T2);
KillTimer(T3);
KillTimer(T1);
SetTimer("Servername2",5000,0);
}
public Servername2()
{
SendRconCommand("hostname Jetzt Startbonus sichern !!!");
KillTimer(T1);
KillTimer(T2);
SetTimer("Servername3",5000,0);
}
public Servername3()
{
SendRconCommand("hostname Wird sind in der beta Phase !!!");
KillTimer(T1);
KillTimer(T3);
SetTimer("Servername1",5000,0);
}Ich glaube das war alles
-
Hey Mayo,
Also was mir grade mal auffällt ist folgendes:
T1 = SetTimer("Servername1",5000,1);
T2 = SetTimer("Servername2",10000,0);
T3 = SetTimer("Servername3",15000,0);
Da Speicherst du die Timer in einer variable.
Und killst sie bei public Servername*()
wieder und erstellt einen neuen.
So das Problem ist nur das der neue Timmer immer wieder erstellt wird nur nie gekillt wird.
Deswegen kommt das Problem wahrscheinlich wegen den laggt.
Und wenn ich mich recht erinnere sagtest du ja in TS mal das das immer erst nach ca. 15Min kommt -
Jo danke ich nehm den einfach ma raus und guck ma ob es geht
-
ja oder mache es bei dem
public Servername*()Immer so:
T* = SetTimer("Servername*",5000,1);
Anstadt so:
SetTimer("Servername*",5000,1);
Dann sollte es normalerweise auch gehen.PS: * ist immer die Zahl 1,2 oder 3
-
Also der laggt zwar nicht mehr so doll aber immer noch recht heftig...
-
Wie sieht denn dein OnPlayerUpdate aus? Ist das Callback groß?
-
Ma so ne Frage nebenbei. Laggt es denn ohne Timer nicht ?
Ich weiß ja nicht, aber hört sich nach Homeserver an. Und der Server zieht ja alleine dadurch, dass er läuft an der Hardware. -
Hmm ka also aufeinmal geht das... ohne laggen
-
breadfish.de
Hat das Thema geschlossen.