Dagegen, wenn man einen Beitrag nicht mag, like't man ihn einfach nicht.
Beiträge von Kasakow
-
-
Bei mir funktioniert das auch nie, wird wohl echt ein Fehler sein.
-
Man sollte es dabei beruhen lassen und draus lernen, 50 Euro ist es nicht wert.
-
@LordDemacia
Auch wenn mein Code selber manchmal unordentlich ist, möchte dir diesbezüglich, mal ein paar Tipps geben.Verwende wie ich bereits gestern erwähnte Makros, es ist nicht sehr "gut", überall im Skript, jederzeit, den Spieler Namen erneut auszulesen, wenn es einmal auch reicht.
Wenn du eine Variable erstellst, erstelle sie alle auf einmal, und nicht einzeln.
Verwende doch Tab anstatt Leerzeichen um deine Zeilen einzurücken, das ist schrecklich, aber genau so, habe ich es in meiner Anfangszeit auch gemacht, ist aber so ziemlich hässlich, benutze Tab.
Ich weiß dass es bei einer bestimmten sscanf Version der Fall war, dass man die String Länge auch bei der Nutzung angeben musst, probiere es mal ohne, ich kann es auch problemlos ohne Angabe nutzen.
Frage am Besten gleich ab ob er Eingeloggt ist & nicht ob er nur Online ist.
Ban & Kick hintereinander? Das macht kein Skin, bei der Ban Funktion wird man ebenfalls gekickt.
Nutze Banfix oder einen eigenen Timer der die das mit dem Kickfix übernimmt, sprich, wenn du es so machst, wird dem Spieler selbst, die Nachricht nicht angezeigt, warum er gebannt/gekickt wurde.Soo
Wie gesagt, erstell dir mal in deiner Datenbank Struktur ein Feld was sich 'ban' nennt & richte es beim Speichern & Laden ein.
Habe dir mal den Code umgeschrieben & kleine Erklärungen unterkommentiert, hoffentlich kannst du was mit anfangen.
//Makro für das Spielernamen ausgeben, kann für jeden Spieler der Online ist, genutzt werden.
#define getName(%0) PlayerInfo[%0][pName]//Bei deinem Player Enum fügst du hinzu & pBan
pName[MAX_PLAYER_NAME+1],
pBan,//Einmalig bei OnPlayerConnect
GetPlayerName(playerid, getName(playerid), MAX_PLAYER_NAME+1);CMD:ban(playerid, params[])
{
if(PlayerInfo[playerid][pAdmin] < 1)return SendClientMessage(playerid, -1,"Du bist kein Admin. Du kannst den Befehl nicht nutzen!");
new PID, str[128];
if(sscanf(params, "us", PID, str)) return SendClientMessage(playerid, -1, "[Benutze] /ban [playerid] [Grund]");
if(!PlayerInfo[PID][pLoggedIn])return SendClientMessage(playerid, -1, "Spieler ist nicht eingeloggt!");
format(str, sizeof str, "'%s' wurde gebannt von [Admin] '%s'. [Grund:] %s", getName(PID), getName(playerid), str),
SendClientMessageToAll(-1, str),
pInfo[PID][pBan] = 1,
Kick(PID);
return 1;
}//EDIT Admin Abfrage abgeändert.
Banfix ist ein Include, lad es dir mal runter.Meine SSCANF Version, die ich nutze. <- Download
BanFix - Include | Download -
Ist zwar eine nette Geste, aber gibt es schon bestimmt paar mal zu finden im Internet.
-
Ah ne, Whice hat Recht.
Wenn du willst, dass dir der Skin angezeigt wird, setze ihn auch.Schreib es mal so:
//z.B unter die Includes
//Makros
#define getSkin(%0) pInfo[%0][pSkin] //%0 ist der erste Platzhalter
#define setSkin(%0,%1) pInfo[%0][pSkin]=%1,SetPlayerSkin(%0,%1) //%0 = playerid, %1 = integerwert z.B für den Skinpublic OnUserLogin(playerid)
{
new rows;
cache_get_row_count(rows);
if(rows == 0)
{
ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Anmeldung", "Bitte logge Dich ein:\n{FF0000}Falsches Passwort!", "Ok", "Abbrechen");
}
else
{
cache_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, "skin", PlayerInfo[playerid][pskin]);
PlayerInfo[playerid][pLoggedIn] = true;
SendClientMessage(playerid, 0x00FF00FF, "[Konto] Eingeloggt");
GivePlayerMoney(playerid, PlayerInfo[playerid][pMoney]),
setSkin(playerid, PlayerInfo[playerid][pSkin]);
}
return 1;
}Und speichern kannst es so lassen oder du nutzt, getSkin(playerid); .. Kommt auf das gleiche hinaus
-
Zeig mir mal OnUserRegister bitte.
Werden denn andere Daten gespeichert? Teste das mal.@Whice.
Er lässt den Skin aber mit der Variable speichern, von daher, passt das.
Ich rate eh zu Makros, die erleichtern einiges, vor allem, man muss nicht für den jeden Scheiss ein "stock" schreiben.//Makro Anwendung
#define getSkin(%0) PlayerInfo[%0][pSkin] //%0 ist der erste Platzhalter
#define setSkin(%0,%1) PlayerInfo[%0][pSkin]=%1,SetPlayerSkin(%0,%1) //%0 = playerid, %1 = integerwert z.B für den Skin -
Poste mal nur die Error.log
mysql_log(ALL); & dann mir mal nur den Inhalt der Error.log zeigen.Zeig mal wie du das Passwort prüfen lässt & die genaue Datenbank Struktur. Also ein komplett Screen.
Und auch mal bitte, wie du das Konto erstellen lässt.Kleiner Tipp am Rande. Nutze SHA1 oder SHA256, MD5 ist fürn Arsch.
-
Was hatten denn eigentlich das "GetPlayerSkin(playerid);" am Ende deiner Speicherfunktion für einen Sinn, meine.. du führst es ganz am Ende aus.
Mit angepasstem Laden sowie Query von der Speicherfunktion, funktioniert es immer noch nicht?
Lass dir mal deine Spielerstats nach dem Laden ausgeben und aktiviere mal die MySQL Log und sag uns bescheid was drinne steht an Errors usw. -
Probier mal das "Skin" im Query klein zu schreiben, in deiner DB Struktur ist es schließlich auch klein.
Und beim Registrieren wird der Wert auf 1(true) gesetzt.
Auch beim Einloggen?
Zeig auch mal wie du den Spieler lädst.//EDIT:
Sorry voll übersehen.
Dann probier einfach mal beim Laden & Speichern Skin kleinzuschreiben. -
Lässt du denn die Speicherfunktion auch bei OnPlayerDisconnect aufrufen & wird die Einlogg Variable beim Registrieren und Anmelden auf "True/1" gesetzt?
-
@LordDemacia
Ganz am Ende des Querys, vor dem WHERE wird kein Komma mehr gesetzt.
Es wird deswegen nichts gespeichert, weil dein Query aus diesem Grund fehlerhaft ist. -
Er macht immer noch Soundtracks, was ein Ding.
Ja, der Fire Soundtrack, taugt mir.
Wobei ich finde dass du die Musik etwas runter regeln solltest & die Stimme, ein bisschen höher drehen solltest, ein kleines bisschen nur. -
Du musst das Include im /pawno/include Verzeichnis haben.
-
Huawei Mate 20 Lite - 200€
Panzerglasfolie - 20€
Dicken Döner mit Schafskäse und 1kg schärfe -
Vielleicht steht sie auf geheime Kommunikation.
Also mir ist sowas, gar nicht bekannt.
Ich weiß wie oft Menschen schon auf ein ähnlich aussehendes Fake - Facebook Login Layout reingefallen sind aber mit Whatsapp kenne ich das nicht. -
Kaliber das letzte wusste ich doch
Okay aber danke wegen der Syntax Information. -
Mal ne klitze kleine Frage zur Pawn Syntax.
Also wenn ich etwas als "Float" deklarieren soll, dann muss ich das F ja auch groß schreiben.
Aber wenn ich float klein schreibe, dann wird es mir Blau gefärbt & ich kriege eine Warnung dass ich es falsch verwende.. was steckt dahinter? -
Ich lese mich da mal durch:) Danke!
Hätte schon früher aufhören müssen, die Fläche nur oberflächlich zu betrachten, sonder mich auch für das zu interessieren, hinter der Kulisse steckt
-
Wenn ich es richtig Verstanden habe, dann sollst du dir für jedes Fahrzeug, ein realistischen Verbrauch ausdenken, deklarieren & die Rechnungsmethode von Kaliber nutzen, es sollte dann automatisch bei jeden gefahrenen 100 Meter, so viel abziehen, dass du auf deine Rechnung kommst.