OK xD
Was kann ich dagegen machen?
Mehrere SekundenTimer Publics machen?
Beiträge von Humen
-
-
Ein Public Namens SekundenTimer wird jede Sekunde ausgeführt und in dem Public wird die for-Schleife ausgeführt.
Gesamte for-Schleife:
http://humen.square7.ch/Scripting/for-schleife.pwnDanke für die schnelle Antwort.
Mit freundlichen Grüßen
Humen -
Die Vorstellung ist schon mal sehr fein
10/10 Punkten
Ich teste lieber nicht sonst werd ich noch neidisch xDMit freundlichen Grüßen
Humen -
Ich habe in folgendem Thread gesehen wie die rede war das sich eine Schleife aufhängt, daher wollte ich fragen ob jemand eine Idee hat woran dies liegen könnte.
http://forum.sa-mp.de/wbb/san-…r-cpu-verbrauch-was-tun-2Mein Problem:
Mein Server läuft und läuft und so bei 25 Spielern drauf hängt sich nach einiger Zeit die for-Schleife die in einem Sekunden-Timer ausgeführt, sozusagen blockt irgendwas in der mitte der SChleife, die SpielerID die blockt ist immer verschieden, mal die 2 und dann wieder die 10 oder sonst wasHätte eventuell jemand eine Idee wie man dieses Problem lösen könnte?
Liegt es vielleicht am Objekt Streamer?
Kann ich, wenn es am Streamer liegt, dieses Problem lösen wenn ich die Objekte mit dem eingebauten Streamer von 0.3b streamen lasse?PS: Mein Server läuft sehr ruhig mit ungefähr 10-20% CPU Auslastung bei 20-30 Spielern.
Bitte um Antwort
Mit freundlichen Grüßen
Humen -
Wenn ich deinen Text richtig verstanden hab willst du dass mit Seite1.de die (zB) Bla.html aufrufen, oder?
PHPif($_SERVER['HTTP_HOST'] == 'www.seite1.de') { echo '<meta http-equiv="refresh" content="0; URL=Bla.html">'; }
Kleines Codeschnipsel
Kann sein das es so funktioniert oder auch nicht.
Aber auf jeden Fall kannst du mit "$_SERVER['HTTP_HOST']" ohne "" die in der Adresszeile eingegebene URL auslesenMit freundlichen Grüßen
Humen -
Das mit 2 Mal ist Fehler vom Forum
Jeder fängt mal klein an, auch du Scriptor, du würdest dich auch nicht freuen wenn jemand sowas zu dir schreibt! -
Im Prinzip der gleiche Fehler wie mit ReturnUser und ReturnUser benötigt IsNumeric
stock IsNumeric(string[])
{
for (new i = 0, j = strlen(string); i < j; i++)
if (string[i] > '9' || string[i] < '0')
return 0;
return 1;
}stock IsNumeric(string[])
{
for (new i = 0, j = strlen(string); i < j; i++)
if (string[i] > '9' || string[i] < '0')
return 0;
return 1;
}
Bitte SehrMit freundlichen Grüßen
Humen -
Ganz unten ins Script:
ReturnUser(text[], playerid = INVALID_PLAYER_ID)
{
new pos = 0;
while (text[pos] < 0x21) // Strip out leading spaces
{
if (text[pos] == 0) return INVALID_PLAYER_ID; // No passed text
pos++;
}
new userid = INVALID_PLAYER_ID;
if (IsNumeric(text[pos])) // Check whole passed string
{
// If they have a numeric name you have a problem (although names are checked on id failure)
userid = strval(text[pos]);
if (userid >=0 && userid < MAX_PLAYERS)
{
if(!IsPlayerConnected(userid))
{
/*if (playerid != INVALID_PLAYER_ID)
{
SendClientMessage(playerid, 0xFF0000AA, "User not connected.");
}*/
userid = INVALID_PLAYER_ID;
}
else
{
return userid; // A player was found
}
}
/*else
{
if (playerid != INVALID_PLAYER_ID)
{
SendClientMessage(playerid, 0xFF0000AA, "Invalid user ID");
}
userid = INVALID_PLAYER_ID;
}
return userid;*/
// Removed for fallthrough code
}
// They entered [part of] a name or the id search failed (check names just incase)
new len = strlen(text[pos]);
new count = 0;
new name[MAX_PLAYER_NAME];
for (new i = 0; i < MAX_PLAYERS; i++)
{
if (IsPlayerConnected(i))
{
GetPlayerName(i, name, sizeof (name));
if(strcmp(name, text[pos], true, len) == 0) // Check segment of name
{
if (len == strlen(name)) // Exact match
{
return i; // Return the exact player on an exact match
// Otherwise if there are two players:
// Me and MeYou any time you entered Me it would find both
// And never be able to return just Me's id
}
else // Partial match
{
count++;
userid = i;
}
}
}
}
if (count != 1)
{
if (playerid != INVALID_PLAYER_ID)
{
if (count)
{
SendClientMessage(playerid, 0xFF0000AA, "Multiple users found, please narrow earch");
}
else
{
SendClientMessage(playerid, 0xFF0000AA, "No matching user found");
}
}
userid = INVALID_PLAYER_ID;
}
return userid; // INVALID_USER_ID for bad return
}Dann poste nochmal die Fehler bitte, wenn die Fehler nicht weniger werden hast du irgendwo einen Klammerfehler
Mit freundlichen Grüßen
Humen -
Der Code:
for(new veh = 0; veh < sizeof(CopCars); veh++)
{
SetVehicleToRespawn(veh);
}
Musst du natürlich noch in einen Command einfügenMit freundlichen Grüßen
Humen -
Reservieren für Bot's oder Spieler geht nicht, da die ID's vom Server selber zugeteilt werden und nicht vom Script
Mit freundlichen Grüßen
Humen -
Eventuell verursacht ein Filterscript den Crash.
Versuch mal ohne FS zu ladenMit freundlichen Grüßen
Humen -
Du musst das SetVehiclePos wegmachen
Wenn du es nicht verstehst bitte Codeschnippsel reinpostenMit freundlichen Grüßen
Humen -
Hast wahrscheinlich irgendwo in einem SekundenTimer NameTimer();
Das zeigt die Labels jede SekundeMit freundlichen Grüßen
Humen -
Lesen bildet :DDDD
Er hat doch geschrieben bei einem Command der nicht existiert
Schau mal am Ende von OnPlayerCommandText, eventuell ist da irgendwo ein GivePlayerMoney oder soMit freundlichen Grüßen
Humen -
Deine Webspace unterstützt Autoupdate nicht!
Wie man es lösen kann?! Keine AhnungMit freundlichen Grüßen
Humen -
-
OnPlayerConnect:
if(IsPlayerNPC(playerid))
{
gPlayerAccount[playerid] = 1;
gPlayerLogged[playerid] = 1;
return 1;
}OnPlayerSpawn:
if(IsPlayerNPC(playerid))
{
PlayerInfo[playerid][pCarLic] = 1;
new botname[MAX_PLAYER_NAME];
GetPlayerName(playerid, botname, sizeof(botname));
if(strcmp(botname, "BOTNAME", true) == 0)// <--------------------BOTNAME
{
PutPlayerInVehicle(playerid, CARID FÜR BOT, 0);// <--------------------CARID FÜR BOT
return 1;
}
}Und es ist egal ob der Bot gefreezt ist oder nicht. Das Teil fährt trotzdem weiter, da der Bot sich sozusagen Stück für Stück portet.
Mit freundlichen Grüßen
Humen -
Hier:
FILTERSCRIPT Ingame Object EditorEin InGame Object Editor, das dürfte dir denke ich mal helfen
Mit freundlichen Grüßen
Humen -
Irgendwo oben im Script:
new DeathMessage[MAX_PLAYERS];OnPlayerDeath:
if(DeathMessage[playerid] == 1)
{
SendDeathMessage(killerid, playerid, reason);
}Command:
if(strcmp("/deaths",cmdtext,true) == 0)
{
if(Spieler[playerid][AdminLevel] >= 4)
{
if(DeathMessage[playerid] == 1)
{
DeathMessage[playerid] = 0;
}
else
{
DeathMessage[playerid] = 1;
}
}
return 1;
}Dürfte funktionieren, ist aber ungetestet
Mit freundlichen Grüßen
Humen -