Dann verwende strcat(), um den String zu bauen und anschließend einmal mysql_format! So macht das doch garkeinen Sinn.
Beiträge von Campbell
-
-
Dein Funktionsaufruf hat kein Ende. Du endest mit einem Komma. Warum 4x mysql_format?
-
Warum muss der Timer denn auf den Login-Prozess einwirken? Wenn die Zeit abgelaufen ist und der Timer immernoch läuft (= Spieler ist noch nicht eingeloggt), dann wird der Spieler gekickt, sodass er sich nicht mehr einloggen kann.
-
- Custom Skinauswahl überspringen (OnPlayerRequestClass() und Co.)
- TextDraws erstellen in Form eines Menüs.
- Mithilfe von OnPlayerClickTextDraw() bzw. OnPlayerKeyStateChange() den Spieler navigieren lassen.
- Per SetPlayerSkin() den Skin setzen.
-
new loginTimers[MAX_PLAYERS];public OnPlayerConnect(playerid) {
loginTimers[playerid] = SetTimerEx("LoginTimer", 10000, false, "i", playerid);
}forward LoginTimer(playerid);
public LoginTimer(playerid) {
SendClientMessage(playerid, 0x0000FFFF, "Du hast dich nicht rechtzeitig eingeloggt!");
Kick(playerid);
}OnPlayerLogin(playerid) {
KillTimer(loginTimers[playerid]);
} -
-
Wie bereits gesagt wurde, verwende einer Mailer-Klasse wie phpMailer oder Swiftmailer, da du mit der normalen mail() Funktion nur Probleme bekommen wirst.
-
Stürzt der Server ab? Erreichst du ihn per SA:MP Client nicht? ...?
-
"Server startet nicht" - mangelnde Fehlerbeschreibung.
-
Connection -> Nachschauen ob Datei existiert
Wenn ja -> Login -> Laden der Daten.
Wenn nicht -> Registrierung -> Speichern der Daten.Wenn auch immer sich der Spieler auslogt -> Speichern der Daten.
-
Schau dir deinen Code an:
1. Variable erstellen.
2. ShowPlayerDialog
3. format()Du erstellst einen Dialog ohne Inhalt, da deine Variable = NULL ist.
Ebenfalls, deine Kontrollstruktur ist schlecht, du führst mysql_CheckAccount doppelt aus. Mach doch einfach:
if(mysql_CheckAccount(playerid) == 1) {
// ...
} else {
// ...
} -
- Die Funktionen mysql_GetFloat sind uneffizient.
- Schonmal nachgeschaut ob '' als Name überhaupt existiert in der Datenbank? Evt. hat das Resultat einfach 0 Ergebnisse.
-
Eine Textur pro Funktionsaufruf. Du kannst mehrere Texturen durch mehrfaches Verwenden der Funktion bezwecken.
-
Warum machst du dir das Leben so schwer? Lade die Daten der Häuser unter OnGameModeInit!
-
Du solltest dir klar machen, was mysql_free_result() tut, dann wird auch klar, wo das else {} hinkommt. Update auch mal deine MySQL Version. Deine ist sehr veraltet und verbuggt.
$result? Das hier ist nicht die PHP-Ecke!
-
Und Zeitmässig hast du Zeit oder eher weniger bzw die Wartezeit z.B für ein PAWN Haussystem
Das kommt auf den Umfang des Systems an. Aber solche Systeme sind meist sehr schnell erledigt, da man binnen eines Tages das meiste fertigstellen kann. Ihc habe jedenfalls viel Zeit.Campbell du lebst ? :o
Ich kann Ihn nur empfehlen!Würde es dir evtl. was ausmachen, eine KLEINE Liste mit Preisvorstellungen zu machen?
Eigentlich nicht, da je nach Vorhaben der Zeitaufwand unterschiedlich ist.Pawn Teil Haussystem z. B.
Admin: Haus erstellen, löschen, anpassen, reseten (Also wieder kaufbar machen), sperren
User: Haus kaufen, verkaufen, weitergeben, vermietenNatürlich Dynamisch
CP z. B. Server Starten/Stoppen/Restarten - Serverstatus - Resourcen Anzeige - FTP/MysQL Accounts- Subaccounts
Nur so mal was das kosten würde.
Mfg, Markus
Um einen Preis zu sagen bräuchte ich noch weitere Infos, melde dich doch per PN, sodass ich darauf eingehen kann. -
Werde hier sicherlich nicht Referenzen frei zur Schau stellen, die ich für andere erstellt habe. Auf Anfrage ja, hier, nein.
-
Bei Interesse per Privater Nachricht sicherlich, ja.
-
- Keine Schleifen.
- Kein random().
- Für einen MAX_BANK_ACCOUNTS-Parameter einfach Start-Wert merken und in der Funktion mit nextBankAccountNumber vergleichen.
new nextBankAccountNumber = 1000000000;enum pInfo {
bankAccountNumber
}new PlayerInfo[MAX_PLAYERS][pInfo];
setBankAccountNumber(playerid) {
PlayerInfo[playerid][bankAccountNumber] = nextBankAccountNumber;
nextBankAccountNumber++;
}Habe es nun als Player-sided Information gespeichert. Kann natürlich je nach Umfang besser gelöst werden. Ist ja ein Beispiel.
-
Die Frage ist eher, warum willst du hier eine Rekursion anwenden?