Dein Log fängt bei 450 an, kannst du das bitte von 0 aus anfangend posten? ![]()
Beiträge von Jeffry
-
-
Ok.
, Kredit='0' KreditDauer='0',
Hier fehlt ein Komma dazwischen.Und die Kredit Dauer fehlt bei den Variablen hinten im Format, deshalb steht bei id nichts.
-
TextDrawCreate(607.0,3.0,
Zu
TextDrawCreate(607.0,450.0,Das dürfte so in etwa unten rechts sein.
Erste Zahl = Verschiebung nach rechts
Zweite Zahl = Verschiebung nach unten -
Zitat
[20:22:03] <-| [MYSQL] Es konnte keine Verbindung zur Datenbank hergestellt werden!
[20:22:03] <-| [MYSQL] Es wird erneut versucht eine Verbindung zur Datenbank herzustellen!
[20:22:03] <-| [MYSQL] Es konnte keine Verbindung zur Datenbank hergestellt werden!
[20:22:03] <-| [MYSQL] Der Server wird nun beendet!Deine MySQL Verbindungsdaten stimmen nicht. Prüfe das mal.
-
Kannst du den Log bitte mal so posten, dass jede Zeile auch in einer Zeile steht? Ich kann da ein paar Kilometer zur Seite scrollen, das ist extrem schwer da was zu erkennen.
-
Das musst du machen, wenn du dem Spieler das Textdraw anzeigst, damit dir die Maus gezeigt wird.
Also einfach unter TextDrawShowForPlayer:
SelectTextDraw(playerid, 0xFF0000FF); -
Ups, sorry. Da stand ein Semikolon wo es nicht hingehört.
stock CreateMyDynamicObject(modelid, Float:x, Float:y, Float:z, Float:rx, Float:ry, Float:rz, worldid = -1, interiorid = -1, playerid = -1, Float:streamdistance = 200.0, Float:drawdistance = 0.0)
{
return CreateDynamicObject(modelid, x, y, z, rx, ry, rz, worldid, interiorid, playerid, streamdistance, drawdistance);
} -
Schreibe es bitte mal so, und poste dann was im Server Log und im MySQL Log steht (den MySQL Log zuvor leer machen, damit du weißt was neu ist).
forward savePlayer();
public savePlayer()
{
printf("savePlayer aufgerufen");
for(new playerid = 0; playerid < MAX_PLAYERS; playerid++)
{
if(IsPlayerConnected(playerid) && !IsPlayerNPC(playerid))
{
new query[512], pName[MAX_PLAYER_NAME];
GetPlayerName(playerid,pName, sizeof(pName));
format(query,sizeof(query),"UPDATE accounts SET Level='%d', Geld='%d', Muted='%d', Bank='%d', Kredit='%d' KreditDauer='%d', Kills='%d', Deaths='%d', Materials='%d' WHERE id='%i'",
PlayerInfo[playerid][pLevel],GetPlayerMoney(playerid),PlayerInfo[playerid][pMuted],PlayerInfo[playerid][pAccount],PlayerInfo[playerid][pPlayerKredit],PlayerInfo[playerid][pKills],PlayerInfo[playerid][pDeaths],PlayerInfo[playerid][pMats],PlayerInfo[playerid][db_id]);
mysql_function_query(dbhandle,query,false,"","");
printf("query: %s", query);
printf("SAVE: %s Account hat gespeichert!",pName);
}
}
return 1;
} -
Also bei mir funktioniert es.
Nutzt du auch http://wiki.sa-mp.com/wiki/SelectTextdraw ? -
Debugge es bitte mal so, und poste dann, was im Log steht, wenn du im Server rum stehst, aber nichts passiert.
public AlleSpielerKontrollieren()
{
for(new i = 0; i < MAX_PLAYERS; i++)
{
printf("AlleSpielerKontrollieren:: %d -> %d", i, IstSpielerGespawnt[i]);
if(IsPlayerConnected(i) && IstSpielerGespawnt[i] == true)
{
if(!IsPlayerNPC(i))
{
new Float:PositionX, Float:PositionY, Float:PositionZ;
GetPlayerPos(i, PositionX, PositionY, PositionZ);
printf("%f == %f | %f == %f | %f == %f", AlteSpielerPos[i][0], PositionX, AlteSpielerPos[i][1], PositionY, AlteSpielerPos[i][2], PositionZ);
if(PositionX == AlteSpielerPos[i][0] && PositionY == AlteSpielerPos[i][1] && PositionZ == AlteSpielerPos[i][2])
{
SendClientMessage(i,C_Error, "AntiAFK: Du wirst in 10 Sekunden gekickt, wenn du nicht wieder am Spiel teilnimmst."); // Rot
printf("Setze Timer");
SetTimerEx("SpielerKontrollieren", 10000, 0, "i", i); //10000 ms = 10 Sekunden
}
AlteSpielerPos[i][0] = PositionX;
AlteSpielerPos[i][1] = PositionY;
AlteSpielerPos[i][2] = PositionZ;
}
}
}
return 1;
} -
Was ist denn dein Problem, warum bleibst du stecken?

-
Hat das mit dem was du mir in PN geschrieben hast zu tun, oder ist das was anderes? Wenn es das gleiche ist, dann mache das mit dem Code wie gesagt über pastebin.com.
EDIT:
iRiising:Drücke in deinem Code: STRG+H. Dann schreibe oben CreateDynamicObject und unten CreateMyDynamicObject rein. Dann drücke auf alle ersetzen.
Danach füge das ganz unten in den Code ein:
stock CreateMyDynamicObject(modelid, Float:x, Float:y, Float:z, Float:rx, Float:ry, Float:rz, worldid = -1, interiorid = -1, playerid = -1, Float:streamdistance = 200.0, Float:drawdistance = 0.0)
{
return CreateDynamicObject(modelid, x, y, z, rx, ry, rz, worldid, interiorid, playerid, streamdistance, drawdistance);
}Dann sollte der Fehler weg sein.
-
SetTimer("AlleSpielerKontrollieren", AntiAFK_Timer, 0);
zu:
SetTimer("AlleSpielerKontrollieren", AntiAFK_Timer, 1);Möglicherweise reicht das schon.
-
Asus T100!
Habe von gehört soll aber schweine gut sein.
Ist es! Für den Preis auf jeden Fall! Bin seit dem ersten Tag davon sehr überzeugt.
Und Asus ist ja sowieso eine Top Marke, da macht man eigentlich nichts falsch.Bei dem Lenovo von Liam Rocky gefällt mir nicht, dass da keine SSD drin ist, zumindest nicht standardmäßig. Da es Lüftungsschlitze hat wird es wohl auch Töne von sich geben, wenn es auf dem Bett liegt. 14'' für ein "Tablet" (ist ja keins) wäre mir zu groß. Ansonsten, auch ein tolles Teil, mit SSD kommt man halt auf 500€. Aber als Notebook Ersatz ist das sicher auch eine gute Wahl.
-
Nein, ohne ein Plugin dieser Art geht das nicht.
-
Schau dir mal dieses Plugin an, wenn, dann kannst du es damit machen:
http://forum.sa-mp.com/showthread.php?t=428066 -
Ja, das könntest du mal raus nehmen, wenn du das mit der Schleife noch nicht hast.
Der Fehler ist auf jeden Fall ein INSERT, und die Uhrzeit passt auch nicht so ganz.
Ggf. suche mal nach "(Bank)", da ist der Fehler im query, das hat aber nichts damit zu tun, dass dein Spieler nicht gespeichert wird.
Da muss auf jeden Fall was drin stehen (auch von der Zeit her), wenn du den Server verlässt (die IsPlayerConnected Abfrage machst du mal raus). -
Der Timer ist vom Prinzip her nicht richtig, der funktioniert nur für playerid 0. Du musst eine Schleife durch alle Spieler machen, und das playerid aus den Parametern nehmen.
Zwecks der Speicherung:
Schalte mal den MySQL Debug Modus an und poste was im Log steht wenn du den Server verlässt.
Wie du das machst siehst du hier: Tipps: Scripting-Probleme richtig erklären (Kapitel 1.4) -
Du erstellst eine Spielervariable unter deinen Includes:
new tvID[MAX_PLAYERS] = {-1,...};Dann bei OnPlayerConnect/OnPlayerDisconnect:
tvID[playerid] = -1;Beim tv Befehl:
tvID[playerid] = pID;Beim tvoff Befehl:
tvID[playerid] = -1;Und dann das Callback zum Timer:
forward tvbox();
public tvbox()
{
for(new i=0; i<MAX_PLAYERS; i++)
{
if(!IsPlayerConnected(i) || tvID[i] != -1)
{
//Und hier dann das Textdraw updaten lassen. Am besten du machst über die Box ein zweites Textdraw mit den Daten des Spielers.
//Die playerid die das Textdraw sieht ist "i", die playerid dessen Daten ausgelesen werden ist "tvID[i]".
//TextDrawSetString etc...
}
}
}Edit: LeijaT: Danke haha, klar :p
-
Sims 3 müsste mit ziemlicher Wahrscheinlichkeit funktionieren. Müsstest halt mal die Spezifikationen vergleichen, ob das reicht. Wie gesagt, SA-MP geht und CS:GO laut RAiNBoMb auch (spiele ich nicht).
Ja, es hat einen USB 3.0 Port an der Tastatur und einen Mini USB Port am Tablet (wird auch zum laden verwendet). Falls man mehr braucht, kann man sich so einen Mini Hub hin hängen, so mache ich es. Das kommt bei mir aber so gut wie nie vor (vielleicht drei mal pro Jahr). Tastatur wird ja so angeschlossen, Maus geht über Touch, das Pad oder per Bluetooth (integriert), von daher.
Ich habe es Ende 2013 noch vor Verkaufsstart in Deutschland gehabt, da war noch Windows 8 drauf, ich weiß nicht wie das jetzt ist. Aber das kann man ja problemlos auf 8.1 upgraden, paar Klicks im Windows Store.
