GameTextForPlayer noch über den Timer setzen
Das passiert wenn man sowas mal eben auf die schnelle im Editor macht^^
GameTextForPlayer noch über den Timer setzen
Das passiert wenn man sowas mal eben auf die schnelle im Editor macht^^
würde gerne einen timer mit einfügen das Mann für paar Sekunden gefreezt wird und ein Text erscheint Map wird geladen und nach denn paar Sekunden Mann wieder entfreezt wird
Das könntest du mit einem TimerEx und nem GameText lösen, sieht bsp. so aus:
else if (IsPlayerInRangeOfPoint(playerid,4.0,2807.8452,-1174.0934,1025.5703))// Atzen Exit
{
if(PlayerInfo[playerid][pLeader] == 17 || PlayerInfo[playerid][pMember] == 17 || IsACop(playerid))
{
SetPlayerPos(playerid,1642.9802,2322.6882,10.8203);
SetPlayerFacingAngle(playerid,82.9910);
SetPlayerInterior(playerid,0);
SetPlayerVirtualWorld(playerid,0);
TogglePlayerControllable(playerid, false);
GameTextForPlayer(playerid, "~w~Map wird geladen..", 3000, 3);
SetTimerEx("unFreeze", 3000, false, "i", playerid);
}
}
forward unFreeze(playerid);
public unFreeze(playerid) {
TogglePlayerControllable(playerid, true);
return 1;
}
Alles anzeigen
eentschuldige ich verstehe immer noch nicht
? Was verstehst du denn nicht, die auf dem Bild marktierte SQL abfrage ist Fehlerhaft, das user und FROM sind vertauscht, das musst du ändern
ich denke das es mit dem % bei Hostname zu tun haben könnte, würde jenes mal auf localhost bzw 127.0.0.1 umstellen
jetzt speichert er net mehr.
Min jung.. hier nochmal die Query die Fehler macht (Siehe deine SQL Log aus dem 1 Beitrag)
Dort musst du es auch ändern, deswegen auch die Zeilenangabe aus dem 1 Beitrag von dir.
Das ganze nochmal Bildlich

Zeile 381
ändern zu
mysql_format(Handle,query,sizeof(query),"SELECT * FROM user WHERE Username='%e'AND Passwort=MD5('%e')",Spielername(playerid),inputtext);
entschuldige aber verstehe nicht.
ich habe das so wie im der video
Hab das Video nicht geschaut, jedoch ist dies einfaches SQL SELECT [DATEN] FROM [DATABASE] WHERE [DATEN]
kann mir nicht einer helfen
AKA Zeile 381 [tt]mysql_format(Handle,query,sizeof(query),"SELECT * FROM user WHERE Username='%e'AND Passwort=MD5('%e')",Spielername(playerid),inputtext);/tt]
Ich möchte eine Leader Liste Ingame erstellen die auslesen tut wieviele Leader es gibt und wer alles Leader einer Fraktion ist.
Als erstes ist die Frage ob nur, die angezeigt werden sollen, die online sind oder auch die die offline sind.
Wenn nur online:
- Schleife durch alle Spieler die Online sind
- Abfragen ob Rank >= 7 && Fraktion != 0
- Im Dialog o.Ä. ausgeben
Wenn auch offline:
- Bei deiner bestehenden Query ein Callback angeben
- Dort den cache auslesen und wie oben (Wenn nur offline) vorgehen.
Ich würde mir mal hier https://www.sa-mp.com/download.php die neusten Files runterladen und das ganze nochmal versuchen, mit dem Verzeichnis
Das p in Zeile 338 ist klein, dein Callbackname hat aber ein großes p. Das wird vermutlich der Fehler sein
entschuldige aber habe nicht so verstanden.
mysql_function_query(Handle,query,true,"OnplayerRegister","i",playerid);
Die Funktion heißt OnPlayerRegister mit einem großen P, also musst du dies hier auch mit einem großem P aufrufen.
mysql_function_query(Handle,query,true,"OnPlayerRegister","i",playerid);
Ob wohl erst ging es wie es sollte und dann hat der den Multiplayer gestartet wie es scheint ist da Problem doch noch nicht gelöst und behoben
Ok, pass auf, erkläre uns doch mal was du genau machst.
Du öffnest nur pawno.exe und dann startet sich SAMP? Vielleicht wäre nen Video wie von Kaliber vorgeschlagen echt hilfreich.
Hätte ich gemacht hab mir aber grad noch mal so gedacht könnte ja mit SAMP exe zusammen hängen und dem war auch so aber danke für die schnelle Rückmeldung
Magst du uns trotzdem noch erklären wo das Problem war, falls vielleicht nochmal jemand das Problem hat?
schreibe, dann draufjoine wird nix in der Datenbank gesetzt, warum?
Es scheint so als als würde der Account nicht gespeichert, versuch mal nachdem du das Level gesetzt hast SaveUserStats(playerid); aufzurufen. Es wir bei dir momentan nur gespeichert, wenn du disconnectest.
Ich bekomme 500 Money durch den Job
Dann musst du die Variable pLevel um 500 direkt erhöhen, dann klappt das mit dem Speichern auch
Wie fülle ich die denn?
Beispielsweise wenn du das Level setzt nicht nur SetPlayerScore(playerid, 5); werdenden, sondern zusätzlich auch PlayerInfo[playerid][pLevel] = 5;
Oder beim Geld das selbe. Für die Zukunft bieten sich solche Funktionen dann immer an, dort ist direkt alles geregelt.
SetMoney(playerid, amount) {
ResetPlayerMoney(playerid);
GivePlayerMoney(playerid, amount);
PlayerInfo[playerid][pMoney] = amount;
return 1;
}
GiveMoney(playerid, amount) {
ResetPlayerMoney(playerid);
PlayerInfo[playerid][pMoney] += amount;
GivePlayerMoney(playerid, PlayerInfo[playerid][pMoney]);
}
Alles anzeigen
Also so wie ich das sehe funktioniert alles perfekt, nur du füllst die Variablen nicht mit Werten
Alles anzeigencache_get_value_name_int(0, "id", PlayerInfo[playerid][p_id]);
cache_get_value_name_int(0, "level", PlayerInfo[playerid][pLevel]);
cache_get_value_name_int(0, "money", PlayerInfo[playerid][pMoney]);
cache_get_value_name_int(0, "kills", PlayerInfo[playerid][pKills]);
cache_get_value_name_int(0, "deaths", PlayerInfo[playerid][pDeaths]);
PlayerInfo[playerid][pLoggedIn] = true;
GivePlayerMoney(playerid, PlayerInfo[playerid][pMoney]);
Die Werte werden doch in die Variable geschrieben oder wo ist das Problem?
Also du willst Werte in die DB Speichern, hast aber keine, dann willst du welche Auslesen, machst es aber verwendest sie nie. Verstehe jetzt dein Problem nicht^^
Denke es ändert sich nix ob ich nun den Link davon kopiere oder mein eigenes reinstelle, da es keine Veränderungen bisher gab.
Wenn du es genau so gemacht hast würde es ja funktionieren^^
Also entweder du postest das oder man kann dir halt nicht helfen, ganz einfach Geschichte
Das wird in der Datenbank nun abgespeichert, aber Ingame setzt sich davon nix.
Dann zeig uns doch mal die Methode, mit der du das aus der Datenbank lädst. Vielleicht wäre es auch schlau für dich dir mal ein MySQL Tutorial anzuschauen.
Pass auf, es wird alles auf 0 gesetzt weil die Variablen ausm Script = 0 sind. Um das zu bestätigen, kannste das ja mal ausprobioeren.
stock SaveUserStats(playerid)
{
if(!PlayerInfo[playerid][pLoggedIn]) return 1;
PlayerInfo[playerid][pLevel] = 50;
PlayerInfo[playerid][pMoney] = 1337;
PlayerInfo[playerid][pDeaths] = 69;
PlayerInfo[playerid][pKills] = 1;
new query[256];
mysql_format(handle, query, sizeof(query), "UPDATE users SET level = '%d', money = '%d', kills = '%d', deaths = '%d' WHERE id = '%d'",
PlayerInfo[playerid][pLevel], PlayerInfo[playerid][pMoney], PlayerInfo[playerid][pKills], PlayerInfo[playerid][pDeaths], PlayerInfo[playerid][p_id]);
//Das Query wird abgesendet
mysql_pquery(handle, query);
return 1;
}
Alles anzeigen