Guten Tag
Welche Script-Vorgänge könnten zu extrem erhöhter CPU Auslastund führen?
Beispiel: Nie endende While-Schleife
ich glaube zu viele variablen, fals nich sry.
Guten Tag
Welche Script-Vorgänge könnten zu extrem erhöhter CPU Auslastund führen?
Beispiel: Nie endende While-Schleife
ich glaube zu viele variablen, fals nich sry.
Guten Tag
Welche Script-Vorgänge könnten zu extrem erhöhter CPU Auslastund führen?
Beispiel: Nie endende While-Schleife
Kommt auf die Spieleranzahl an. Je nachdem könnte OnPlayerUpdate oder ein zu niedriger Timer dafür verantwortlich sein.
OnPlayerUpdate nutze ich nicht
habe 3 timer:
der Jede Sekunde checkt einige sachen und alles was irgentwie in Sekunden gezählt wird, wird dort gezählt
Der Jede Minute Updatet einiges ab einer bestimten zeit und zählt das was in Minuten gezählt wird
Der 300ms Updatet die Geschwindigkeitsanzeige bei Autos und ähnliches.
Simon:
Setze dort wo der Code (Timer) beginnt, also direkt nach dem public:
new t = GetTickCount();
und ganz unten, vor dem return, bzw. vor der letzten Klammer:
printf("Code Zeit: %dms", GetTickCount()-t);
Dann weißt du genau wie lange dein Code braucht und ob er laggt.
Deine Timer sollten eigentlich kein Problem sein, außer du öffnest viele Dateien, bzw. lässte viele Queries durchführen. Lass dir einfach mal die Zeit ausgeben. Alles was zwischen 0ms und 15-20ms ist passt völlig, wenns mehr ist sollte der Timer nicht ganz so oft aufgerufen werden, also nicht 5 mal in der Sekunde, sondern nur jede 2. Sekunde oder so, je nach Wichitgkeit des Codes.
Guten Tag, mal ne kurze Frage:
Ich wollte nun ein Dynamisches (was ehh jeder hat) erstellen und stoße dabei auf folgendes Problem:
Ich möchte nicht, dass jeder Spieler in dieses Fahrzeug kann.
Also habe ich der maximalen Anzahl an Fraktionsfahrzeugen eine FraktionsID zugewiesen und diese mit der Fraktion des Spielers verglichen. Aber woher weis der Server jetzt, dass ich GENAU dieses FAHRZEUG meine, in das er einsteigt?
Kurze Denkhilfe bittööööö
//der Stock, der Abfragen soll, ob das Auto zu der Fraktion gehört
stock CheckCar(playerid)
{
new veh = GetPlayerVehicleID(playerid);
for(new i=0; i<MAX_FCARS; i++)
{
if(Fcar[i][fID] == Spieler[playerid][pFraktion] ){
}
else{
TogglePlayerControllable(playerid,0);
TogglePlayerControllable(playerid,1);
}
}
return 1;
}
//Der Enum
enum FrakCars
{
fID,
fModel,
Float:fX,
Float:fY,
Float:fZ,
Float:fA,
f1,
f2
}
new Fcar[MAX_FCARS][FrakCars];
#define MAX_FCARS 200
Den Stock zum Erstellen braucht ihr glaube ich nicht, den speichern und Laden glaube ich auch nicht :D
Du fügst dem enum noch ein vID hinzu. Beim erstellen des Autos dann:
Fcar[i][vID] = CreateVehicle...
Und bei der Abfrage im stock:
if(Fcar[i][vID] == veh && Fcar[i][fID] == Spieler[playerid][pFraktion] ){
Du fügst dem enum noch ein vID hinzu. Beim erstellen des Autos dann:
Fcar[i][vID] = CreateVehicle...
Und bei der Abfrage im stock:
if(Fcar[i][vID] == veh && Fcar[i][fID] == Spieler[playerid][pFraktion] ){
Gerade probiert - Klappt nicht.
Wenn das Fahrzeug in der Datei "Fraktion=0" stehen hat und ich ebenfalls "Fraktion=0" bin, komme ich nicht in das Fahrzeug.
Ebenso mit den anderen Ids. Ich hab dir weitere Infos per PN zukommen lassen.
Problem(e) wurde behoben.
Es lag daran, dass die Schleife in CheckCar so nicht ganz richtig war und die Variablen am Anfang nicht zu -1 gesetzt worden sind.
Objekte schneller Streamen lassen?
Objekte schneller streamen lassen
Bin gerade etwas weiter gekommen habe trotzdem noch kleine Probleme:
SetPlayerPos(playerid,-691.9375,939.5940,13.6328);
SetPlayerFacingAngle(playerid,263.5031);
SetPlayerCameraPos(playerid,-687.0352,939.7754,13.6328);
SetPlayerCameraLookAt(playerid,-691.9375,939.5940,13.6328);
ShowPlayerDialog(playerid,DIALOG_TUTSTEP1,DIALOG_STYLE_MSGBOX,"[RFR] Tutorial Information","Herzlich Willkommen auf Oldschool 1808, damit du dich in Zukunft\nbesser Zurecht findest, wird dir dieses Tutorial helfen!\nBitte beachte dabei, dass wir zwischendurch Fragen gestellt werden!","Okay","");
}
}
}
if(response == 0)
{
ShowPlayerDialog(playerid,DIALOG_REGSTEP_3,DIALOG_STYLE_LIST,"Woher kommst du?","Deutschland\nÖsterreich\nSchweiz\nTürkei","Weiter","");
}
}
return 1;
}
if(dialogid == DIALOG_RULES)
{
if(response)
{
if(listitem == 0)
{
ShowPlayerDialog(playerid,DIALOG_RULES,DIALOG_STYLE_MSGBOX,"User Hilfe",rest,"Ok","");
}
if(listitem == 1)
{
ShowPlayerDialog(playerid,pwchange, DIALOG_STYLE_INPUT,"Passwort Panel","Gib bitte dein neues Passwort an","Annehmen","Abbrechen");
}
}
}
error 010: invalid function or declaration
error 010: invalid function or declaration
error 010: invalid function or declaration
error 010: invalid function or declaration
Und ich will das statt dem:
ShowPlayerDialog(playerid,DIALOG_RULES,DIALOG_STYLE_MSGBOX,"User Hilfe",rest,"Ok","");
Das da ist:
new string1[220],string2[350],string3[280],rest[900];
format(string2, sizeof string2, "*\t/stats /buylevel /upgrade/\n*\t/pay /time /buy /show /id /drink /clothes /members /regeln\n*\t/resetupgrades /tanken /skill /licenses /lotto /spawnchange\n*\t/cancel /accept /eject /usedrugs /contract /fillcar /service\n*\t/propose /divorce /lehrer /togooc /tognews /togfam (/sup)port\n*\t(/a)dmin (/sup)port (/s)hout (/ad)vertise /me\n\n");
format(rest, sizeof rest, "%s\n%s\n%s\n", string1,string2,string3);
ShowPlayerDialog(playerid,DIALOG_RULES,DIALOG_STYLE_MSGBOX,"User Hilfe",rest,"Ok","");
Hallo Community,
Meine Frage, was ist das beste MySQL Tutorial, das es hier in Breadfish gibt? Ich habe schon sehr viele gesehen, war von maddins auch überzeugt, aber die Version ist glaube ich nicht ganz die neuste...
Da ich aber auch Ressourcen sparend Skripten möchte und keine großen Fehler haben möchte wollte ich fragen, von welchem Tutorial ich am besten Lernen kann. Ich hoffe dass ich das hier so fragen kann....
Mit freundlichen Grüßen
Famacertech
das hier, ist für die neuste version, und spart reccourcen wegen der threadet querys
[ SCRIPTING ] MySQL Registersystem [BlueG R8+ (R26)]
@Music4You: Danke! Das von maddin sah schon sehr sehr anspruchsvoll aus, dann habe ich welche gesehen die zwar neu waren, aber schlecht Erklärt und umgesetzt. Ich schaue mal rein, danke! Und notfalls kann ich immernoch auf das von maddin zurück greifen und mich einfach vortbilden Tut mir sicher nur gut...
@Music4You: Danke! Das von maddin sah schon sehr sehr anspruchsvoll aus, dann habe ich welche gesehen die zwar neu waren, aber schlecht Erklärt und umgesetzt. Ich schaue mal rein, danke! Und notfalls kann ich immernoch auf das von maddin zurück greifen und mich einfach vortbilden Tut mir sicher nur gut...
Gerne, es ist zwar im endeffekt besser was reccourcen angeht, aber wie ich finde schwer zu verstehen, also ich habs noch nich verstanden
Wie kann ich mit DINI und PVars Waffen jedes Spielers in seine SpielerDatei speichern?
Indem du ein 2D-Array erstellst.
Für jeden Waffenslot (insgesamt 12) benötigst du 2 Werte.
Waffe & Munition.
Das ganze dann getrennt speichern.
Ich habe da mal ne kleine frage bezüglich der Vergleichsoperatoren..
< bedeutet ja = Links ist kleiner als Rechts
<= und das = Links ist kleiner oder gleich Rechts
richtig?
Doch wenn ich in diesem Befehl hier <= benutze wird die SendClientMessage nicht gesendet..!`?!? Und wenn ich nur < benutze funktioniert alles!?! Und das letzte Fahrzeug wird auch gelöscht! also funktioniert < bei mir wie eigendlich <= funktionieren sollte?! und bei <= wird alles unter der zeile irwie nicht mehr gelesen... warum funktioniert das mit <= nicht? (Benutze UMP 0.3 e falls das wichtig sein sollte..)
YCMD:delallv(playerid, params[], help)
{
if (help) return SendClientMessage(playerid, yellow, "Löscht alle deine Fahrzeuge.");
for(new pv = 0; pv < MAX_PLAYER_VEHICLES; pv++) //Die Zeile meine ich!!!
{
DestroyVehicle(PlayerVehicle[playerid][pv]);
PlayerVehicle[playerid][pv] = INVALID_VEHICLE_ID;
}
SendClientMessage(playerid, yellow, "Du hast alle deine Fahrzeuge gelöscht.");
return 1;
}
Doch wenn ich in diesem Befehl hier <= benutze wird die SendClientMessage nicht gesendet..!`?!? Und wenn ich nur < benutze funktioniert alles!?! Und das letzte Fahrzeug wird auch gelöscht! also funktioniert < bei mir wie eigendlich <= funktionieren sollte?! und bei <= wird alles unter der zeile irwie nicht mehr gelesen... warum funktioniert das mit <= nicht? (Benutze UMP 0.3 e falls das wichtig sein sollte..)
Das liegt an dem Array von PlayerVehicle.
Ganz einfach Arrays werden so erstellt:
new test[3];
test[0] = 1;
test[1] = 2;
test[2] = 3;
test[3] = 4; //Das würde nicht funktionieren, da der Array nur auf 3 Cells begrenzt ist, also können wir nicht 4 nutzen (0,1,2 = 3 | 0,1,2,3 = 4)
Bei deiner Schleife ist das das selbe, nur das hier kein Fehler während des Compilierens kommt, sondern erst während die Schleife ausgeführt wird.
<= würde ja bedeuten, dass wir (jetzt auf mein Beispiel bezogen) in die 4. Cell was schreiben wollen, obwohl wir nur 3 haben.
Deshalb < damit wir nur 0,1,2 beschreiben und nicht 0,1,2,3
mfg.
THX!
Habe [0] ausversehen nicht mitgezählt XD ;D
Wie messe ich die Zeit, die der Server zum hochfahren brauch?
Mir fällt es nicht mehr ein