Beiträge von Siedler
-
-
%2.f
Falscher Float Ausgabe-Wert
-
Wo wird den das Admin Level gespeichert/geladen?
In der Datenbank ist es zwar vorhanden, aber nicht in den Stock's.
Außerdem würde ich das Laden/Speichern nicht so machen, wie es im Tutorial ist.Pro Speichern/Einloggen ~100 Querys =>
-
Änder die Struktur vom Auslesen und Abspeichern.
Du führst gerade 120 SQL Querys pro Spieler der sich Einloggt oder Ausloggt aus.Les beim Laden / Speichern den Namen direkt aus, nicht mit
PlayerInfo[playerid][pUserName] -
SpielerInfo[playerid][pLevel] = mysql_GetInt("accounts", "Level", "Name", SpielerInfo[playerid][pName]);
SpielerInfo[playerid][pGeld] = mysql_GetInt("accounts", "Geld", "Name", SpielerInfo[playerid][pName]);
SpielerInfo[playerid][pKills] = mysql_GetInt("accounts", "Kills", "Name", SpielerInfo[playerid][pName]);
SpielerInfo[playerid][pTode] = mysql_GetInt("accounts", "Tode", "Name", SpielerInfo[playerid][pName]);Für DM Server ganz gut, für größere Server eher .
Pro Spieler der Einloggt und/oder Ausloggt werden ~100 Query's ausgeführt, wenn die Datenbank für Roleplay/Reallife ausgelegt ist.
Das verursacht starke Server seitige Laggs. -
dass ich nen anderes mysqlplugin bevorzuge
Welches bevorzugst du denn?
Hat das Plugin eigentlich was mit der Include zu tun bzw Funktion?EDIT:
Habs mal ausgetauscht, ändert nichts an der Sache.
Was ist denn der durchschnittliche RAM verbrauch eines RL Server? -
Probier mal so:
SQL
Alles anzeigenstock CheckHealth(i) { new Float:vHealth; new string[126]; GetVehicleHealth(GetPlayerVehicleID(i),vHealth); if(vHealth >= 999.0) { format(string, sizeof(string), "Zustand:~g~%.1f", vHealth); TextDrawSetString(Schaden[i],string); } else if(vHealth >= 750.0 && vHealth < 999.0) { format(string, sizeof(string), "Zustand:~g~%.1f", vHealth); TextDrawSetString(Schaden[i],string); } else if(vHealth >= 375.0 && vHealth < 750.0) { format(string, sizeof(string), "Zustand:~y~%.1f", vHealth); TextDrawSetString(Schaden[i],string); } else if(vHealth < 375.0) { format(string, sizeof(string), "Zustand:~r~%.1f", vHealth); TextDrawSetString(Schaden[i],string); } return 1; }
-
Versuch es mal nach diesen Tutorial:
http://rpg-city.de/index.php?page=Thread&threadID=2009 -
Der SAMP Server verbraucht die 70 MB Ram.
Es waren 2 Plugins mit angeblich selber wirkung zur Auswahl.
breadfish.de/wcf/attachment/2796/
Ich verwende momentan das mit den 2,3MB.
Wo unterscheiden sich die Plugins denn? -
mysql vielleicht falsch konfiguriert?
kann viele gründe haben...Wie meinst du falsch Konfiguriert?
Aber normal ist es nicht, das ~60MB RAM mehr verbraucht werden wegen dem Plugin.
Auf dem eigenen PC (Home Server) läuft es unter Windows.
Mit dem MySQL System verbraucht es 28MB Ram.
Ohne dem MySQL System verbraucht es ebenfalls nur ~27MB.Beim Herunterfahren vom Server merkt man auch, das alles verlangsamt ist (Uhrzeit des Kicks).
Zitat
[14:52:16] x (ID: 0) hat den Server verlassen.
[14:52:17] x (ID: 1) hat den Server verlassen.
[14:52:17] x (ID: 2) hat den Server verlassen.
[14:52:17] x (ID: 3) hat den Server verlassen.
[14:52:17] x (ID: 4) hat den Server verlassen.
[14:52:17] x (ID: 5) hat den Server verlassen.
[14:52:18] x (ID: 6) hat den Server verlassen.
[14:52:18] x (ID: 7) hat den Server verlassen.
[14:52:18] x (ID: hat den Server verlassen.
[14:52:18] x (ID: 9) hat den Server verlassen.
[14:52:18] x (ID: 10) hat den Server verlassen.
[14:52:18] x (ID: 11) hat den Server verlassen.
[14:52:19] x (ID: 12) hat den Server verlassen.
[14:52:19] x (ID: 13) hat den Server verlassen.
[14:52:19] x (ID: 14) hat den Server verlassen.
[14:52:19] x (ID: 15) hat den Server verlassen.
[14:52:20] x (ID: 16) hat den Server verlassen.
[14:52:20] x (ID: 17) hat den Server verlassen.
[14:52:20] x (ID: 18) hat den Server verlassen.
[14:52:20] x (ID: 19) hat den Server verlassen.
[14:52:20] x (ID: 20) hat den Server verlassen.
[14:52:21] x (ID: 22) hat den Server verlassen.
[14:52:21] x (ID: 23) hat den Server verlassen.
[14:52:21] x (ID: 24) hat den Server verlassen.
[14:52:21] x (ID: 25) hat den Server verlassen.
[14:52:21] x (ID: 26) hat den Server verlassen.
[14:52:22] x (ID: 27) hat den Server verlassen.
[14:52:22] x (ID: 28) hat den Server verlassen.
[14:52:22] x (ID: 29) hat den Server verlassen.
[14:52:22] x (ID: 30) hat den Server verlassen.
[14:52:22] x (ID: 36) hat den Server verlassen.
[14:52:22] x (ID: 37) hat den Server verlassen.
[14:52:23] x (ID: 38) hat den Server verlassen. -
Ist es normal, das ein SA:MP Server, die 3-Fache Ressourcen verbraucht wenn es unter MySQL läuft?
Es wurde nichts verändert, außer die Speicherung von DINI zu MySQL.Die Accounts werden nur gespeichert, wenn der Spieler Ausloggt / Restartet oder Ausgeschalten wird.
Also kann es daran nicht liegen.MySQL Plugin:
MySQL Plugin R5
( Maddin Tutorial )Der Ram verbrauch mit DINI lag bei 25MB (40 Spieler).
Der Ram verbrauch mit MySQL liegt bei 70MB (40 Spieler). -
-
enum tInfo
{
Tanke[64],
Float:Liter,
};new TankInfo[22][tInfo];
Das mit strmid etc bei Namen hab ich noch nicht getestet,
da es beim Float ja auch auftritt und evt nicht daran liegen könnte.Mit dem Enum haben die anderen Tankstellen (DINI) auch Funktioniert.
-
-
Ich kenn mich mit MySQL von Pawn noch nicht so gut aus
Nach dem MySQL Tutorial von Maddin ging auch alles, aber es gibt ein Fehler, wo kein Fehler sein sollte?Die 2 Error-Zeilen sind mit // Markiert:
public LoadTank()
{new xyz;
while (xyz < sizeof(TankInfo))
{
TankInfo[xyz][Tanke] = mysql_GetInt("tankstellen", "Name", "id", xyz); // Tanke Name
TankInfo[xyz][Liter] = mysql_GetInt("tankstellen", "Liter", "id", xyz); // Tanke restliche Liter
printf("Tankstelle %s wurde mit %.1f Liter geladen.",TankInfo[xyz][Tanke],TankInfo[xyz][Liter]);
xyz++;
}
}Der Fehler sollte bei mysql_GetInt sein: Genau bei xyz.
Aber es sollte eigentlich alles richtig sein.
Hat jemand ne ahnung davon?
Oder kann man MySQL nicht mit while auslesen. -
SBizzInfo[BIZID][sbMessage] // Standart Godfather
Statt %d und i:
%d mit %s und das i mit den obigen Code ersetzen.Damit kannst du anhand der ID den Namen auslesen
-
PN = Playername.
Es returnt den Namen -
Es gibt kein fertiges Gangfight System zum Download.
Du musst es selbst Scripten. -
public OnPlayerStreamIn(playerid, forplayerid)
{
if(IsACop(forplayerid)) {
if(WantedLevel[playerid] >= 1) {
new giveplayer[MAX_PLAYER_NAME], Float:wX, Float:wY, Float:wZ, string[256];
new PlayerText3D:wantedtext[MAX_PLAYERS];
DMRate[playerid] = (PlayerInfo[playerid][pKills] / PlayerInfo[playerid][pDeaths]);
GetPlayerName(playerid, giveplayer, sizeof(giveplayer));
format(string, sizeof(string), "Name: %s (%d)\nWantedlevel: %d\nDM-Rate: %d", giveplayer, playerid, WantedPoints[playerid], DMRate);
GetPlayerPos(playerid, wX, wY, wZ );
wantedtext[playerid] = CreatePlayer3DTextLabel(forplayerid,string,COLOR_RED,wX,wY,wZ,40.0,playerid,INVALID_VEHICLE_ID,1);
Attach3DTextLabelToPlayer(wantedtext[playerid],playerid, wX, wY, 1.0);
}
}
return 1;
}Das wird so nicht funktionieren
Attach3DTextLabelToPlayer(wantedtext[playerid],playerid, wX, wY, 1.0);
ist auch Sinnlos an der stelle.
Da der Label bereits an den Spieler beim erstellen gehängt wird.
new giveplayer[MAX_PLAYER_NAME], Float:wX, Float:wY, Float:wZ, string[256];
GetPlayerPos(playerid, wX, wY, wZ );
ebenfalls Sinnlos. 0.0 würde ausreichen beim Anhängen des Labels.
-
Zitat
new zinsen = PlayerInfo[playerid][pAccount]/10000*10;
PlayerInfo[playerid][pAccount] += zinsen;
format(string, sizeof(string), "Zinsen: $%d", zinsen);
SendClientMessage(playerid, COLOR_GREY, string);Probiers ma so.