Hallo Liebe Mitglieder.
Heute wollte ich gerne mein Script optimieren und habe sofort an mehrere Timer gedacht, die, die selbe Zeit ticken & alleine laufen.
Nun habe ich mehrere Timer in ein gemacht, weiß aber nicht, ob ich das ganze richtig gemacht habe.
Ich habe zum Beispiel CheckGas & StoppedVehicle beide in CheckGas reingemacht und so sieht das ganze aus:
public CheckGas()
{
new string[256];
new Float:x,Float:y,Float:z;
new Float:distance,value;
for(new i=0;i<MAX_PLAYERS;i++)
{
if(IsPlayerConnected(i))
{
if(GetPlayerState(i) == PLAYER_STATE_DRIVER)
{
new vehicle = GetPlayerVehicleID(i);
if(Gas[vehicle] >= 1)
{
if(Gas[vehicle] <= 10)
{
PlayerPlaySound(i, 1085, 0.0, 0.0, 0.0);
}
if(gGas[i] == 1)
{
format(string, sizeof(string), "~r~~n~~n~~n~~n~~n~~n~~n~~n~~n~Fuel:~w~ %d%",Gas[vehicle]);
GameTextForPlayer(i,string,15500,3);
}
if(IsAPlane(vehicle))
{
Gas[vehicle]++;
}
Gas[vehicle]--;
}
else
{
NoFuel[i] = 1;
TogglePlayerControllable(i, 0);
GameTextForPlayer(i,"~w~~n~~n~~n~~n~~n~~n~~n~~n~No fuel in Vehicle~n~Use /exit to leave the vehicle",1500,3);
}
if(IsPlayerInAnyVehicle(i))
{
new VID;
VID = GetPlayerVehicleID(i);
GetPlayerPos(i, x, y, z);
distance = floatsqroot(floatpower(floatabs(floatsub(x,SavePlayerPos[i][LastX])),2)+floatpower(floatabs(floatsub(y,SavePlayerPos[i][LastY])),2)+floatpower(floatabs(floatsub(z,SavePlayerPos[i][LastZ])),2));
value = floatround(distance * 3600);
if(UpdateSeconds > 1)
{
value = floatround(value / UpdateSeconds);
}
if(SpeedMode)
{
}
if(value == 0)
{
Gas[VID]++;
}
SavePlayerPos[i][LastX] = x;
SavePlayerPos[i][LastY] = y;
SavePlayerPos[i][LastZ] = z;
}
}
}
}
return 1;
}
Und ResetAutohausSpawns, SaveAll & serverNews habe ich auch zu ein Timer gemacht und so sieht das ganze aus:
public ResetAutohausSpawns()
{
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i) && gPlayerLogged[i])
{
PlayerUpdate(i);
}
}
new i;
for(i = 0; i<sizeof(Kaufliste); i++) { SetVehicleToRespawn(Kaufliste[i][Carid]); }
if(newswechsel == 1)
{
SendClientMessageToAll(COLOR_GREEN, "_________________________________________ RRL INFORMATION ____________________________________");
SendClientMessageToAll(COLOR_WHITE," Bei Fragen oder Problemen kannst du dich per /sup [Frage] an die Supporter/Admins wenden.");
SendClientMessageToAll(COLOR_WHITE," Das Team wird sich dann so schnell wie möglich um dein Anliegen kümmern und dieses so");
SendClientMessageToAll(COLOR_WHITE," gut es geht zu beantworten. Cheater sollten sofort per /a an die Administratoren/Supportert");
SendClientMessageToAll(COLOR_WHITE," gemeldet werden. Sollte kein Administrator Online sein, so kannst du dich im Teamspeak an");
SendClientMessageToAll(COLOR_WHITE," einen Administrator wenden.");
SendClientMessageToAll(COLOR_GREEN, "||___www.Redside-Reallife.tk_____________________________________Teamspeak 3: 188.138.113.153:9987___||");
newswechsel = 2;
}
else if(newswechsel == 2)
{
SendClientMessageToAll(COLOR_GREEN, "_________________________________________ RRL INFORMATION ____________________________________");
SendClientMessageToAll(COLOR_WHITE," Der normale Premiumaccount reicht dir nicht?");
SendClientMessageToAll(COLOR_WHITE," Für schlappe 4,99 Euro pro Monat gibt es den Donator-Rang (Premium Rang 2)");
SendClientMessageToAll(COLOR_WHITE," Wie du ihn bekommst und welche Vorteile er dir bringt steht im Forum.");
SendClientMessageToAll(COLOR_GREEN, "||___www.Redside-Reallife.tk_____________________________________Teamspeak 3: 188.138.113.153:9987___||");
newswechsel = 3;
}
else if(newswechsel == 3)
{
SendClientMessageToAll(COLOR_GREEN, "_________________________________________ RRL INFORMATION ____________________________________");
SendClientMessageToAll(COLOR_WHITE," Das verbreiten von RRL-Externen IPs ist auf diesem Server verboten!");
SendClientMessageToAll(COLOR_WHITE," Aus diesem Grunde werden alle Versuche geloggt. Fremdwerbung führt zu einem sofortigen Bann.");
SendClientMessageToAll(COLOR_WHITE," Außnahme: /a und /sup zur Information der Supporter/Administratoren.");
SendClientMessageToAll(COLOR_GREEN, "||___www.Redside-Reallife.tk_____________________________________Teamspeak 3: 188.138.113.153:9987___||");
newswechsel = 4;
}
else if(newswechsel == 4)
{
SendClientMessageToAll(COLOR_GREEN, "_________________________________________ RRL INFORMATION ____________________________________");
SendClientMessageToAll(COLOR_WHITE," Kennst du schon unser Werbesystem 'User werben User'?");
SendClientMessageToAll(COLOR_WHITE," Wenn du einen Spieler wirbst, kannst du uns dies im Forum mitteilen. Dazu gibt es ein Extra");
SendClientMessageToAll(COLOR_WHITE," Thema im Forum 'Informationen'. Der geworbene Spieler muss allerdings bereits Level 5 erreicht");
SendClientMessageToAll(COLOR_WHITE," haben, damit dir ein Administrator 5 Respektpunkte und 300.000 $ Gutschreiben kann.");
SendClientMessageToAll(COLOR_GREEN, "||___www.Redside-Reallife.tk_____________________________________Teamspeak 3: 188.138.113.153:9987___||");
newswechsel = 5;
}
else if(newswechsel == 5)
{
SendClientMessageToAll(COLOR_GREEN, "_________________________________________ RRL INFORMATION ____________________________________");
SendClientMessageToAll(COLOR_WHITE," Solltest du einen Cheater bzw. Hacker auf unserem Server gesehen haben, so solltest du");
SendClientMessageToAll(COLOR_WHITE," diesen mithilfe von /a oder /sup schnellstmöglich an einen Supporter/Administrator weiterleiten.");
SendClientMessageToAll(COLOR_WHITE," User mit Cheatverdacht werden sofort Gebannt. Bei einem Fehlbann kann man im Forum nach dem");
SendClientMessageToAll(COLOR_WHITE," genauen Grund fragen und ggf. entbannt werden.");
SendClientMessageToAll(COLOR_GREEN, "||___www.Redside-Reallife.tk_____________________________________Teamspeak 3: 188.138.113.153:9987___||");
newswechsel = 6;
}
else if(newswechsel == 6)
{
SendClientMessageToAll(COLOR_GREEN, "_________________________________________ RRL INFORMATION ____________________________________");
SendClientMessageToAll(COLOR_WHITE," Auf diesem Server gilt die Ampelregelung gilt nur in Los Santos & San Fiero.");
SendClientMessageToAll(COLOR_WHITE," In Las Venturas & auf dem Land muss die Ampelregelung nicht eingehalten");
SendClientMessageToAll(COLOR_WHITE," werden. Die Höchstgeschwindigkeit in Los Santos beträgt 80 km/h. (Toleranz: 85 km/h)");
SendClientMessageToAll(COLOR_GREEN, "||___www.Redside-Reallife.tk_____________________________________Teamspeak 3: 188.138.113.153:9987___||");
newswechsel = 1;
}
return 1;
}
Ich hoffe ich bin hier richtig und denke jemand kann mir sagen, ob das falsch oder richtig ist und Tipps nehme ich auch gerne an.
mfG, Nighthawk.