@^Nike: Wer sagt das?
Im richtigen Einsatz sind ElementDatas überhaupt nicht unsicher.
--
Du brauchst folgende Funktionen/Events:
Ein Inventar zu scripten ist eine der leichten Aufgaben. Da kann man fast nichts falsch machen.
@^Nike: Wer sagt das?
Im richtigen Einsatz sind ElementDatas überhaupt nicht unsicher.
--
Du brauchst folgende Funktionen/Events:
Ein Inventar zu scripten ist eine der leichten Aufgaben. Da kann man fast nichts falsch machen.
revelse: Nein, das hat nämlich keinen direkten Einfluss auf den Treibstoffverbrauch und wird bereits durch die Reibung beinhaltet.
DKong, das weiß ich auch. Nur ist das schwer zu implementieren. Deshalb lieber mit festen Werten oder mit prozentualen Relationen rechnen.
Wofür mit einer Drehzahl arbeiten... Nimm doch einfach irgendwelche festen Werte.
Mit 11 Litern pro 100km kann man gut arbeiten und das ist auch realistisch.
Du hast anscheinend falsche Benutzerdaten in deiner DB-Connection.
Und im PHPMyAdmin hast du keine Datenbank ausgewählt.
Edit: Sorry, sehe gerade, dass das Thema als erledigt markiert war.
Gib doch mal eine Aufgabe an, die du explizit nicht verstehst.
Dann könnte man dir auch helfen.
Ehrlich gesagt habe ich keine Ahnung warum es nicht klappt.
Hier der Code den ich für meine GameModes nutze.
function fileAppend ( typ, ... )
local parametersTable = {...}
local text = table.concat( parametersTable, " " )
local file = checkIfFileExists()
local size = fileGetSize ( file )
fileSetPos ( file, size )
fileWrite ( file, text)
fileFlush ( file )
fileClose ( file )
end
function checkIfFileExists ( )
local file = fileOpen ( "text.txt" )
if not file then
file = fileCreate ( "text.txt" )
fileWrite ( file, "== Test File ==\n" )
fileFlush ( file )
end
return file
end
Alles anzeigen
Dann ist dein mysql_result falsch. Sprich deine Abfrage liefert einen falschen Wert.
Gib deinen SQL Code erstmal im phpmyadmin ein und schaue ob der dir einen Wert zurückgibt.
Hau mal ein "/" vor den Ordnernamen "reports"
$con = mysql_connect("localhost", "root", "123");
if (!$con)
{
die('Verbindungsfehler: ' . mysql_error());
}
$db= mysql_select_db("deinedb",$con);
$sql = "SELECT * from Tabellenname Where *";
$result = mysql_query($sql,$con);
while ($row = mysql_fetch_assoc($result)) {
echo $row["ID"];
echo $row["IP"];
}
Alles anzeigen
An dem Punkt aufzugeben ist ja sehr pessimistisch...
Hast du überhaupt ein Konzept?
Wieso fügst du in den Datensatz Fraktionen beim Command fkasse immer wieder ein?
Warum ist das Feld ID frei? Normalerweise ist ID doch ein AUTO-INCREMENT.
Warum ist die Fraktionskasse = das Geld des Spielers?
Warum die Ablaufzeiten verringern?
Wenn du nichts falsch machst, bekommst du auch keine Verwarnung. Deine Angst vor der dritten Verwarnung zeigt ja, dass du es anscheinend darauf anlegst.
Du solltest serverseitig überprüfen wie der Spieler heißt und das dann einfach per triggerClientEvent ausführen.
Allerdings lohnt sich das bei einem einfachen Namen nicht.
Außerdem ist der PlayerName kaum eine sinnvolle Sicherheitsvorkehrung. Du solltest da lieber die ACL-Rechte abfragen oder ein eigenes Admin-System entwickeln.
InstantNudeln~: Ich sagte doch bereits, dass das Element source nicht existiert.
Ersetze es mit getLocalPlayer()
String-Verarbeitung
In diesem Tutorial möchte ich euch die String-Verarbeitung etwas näher bringen.
Um erst einmal klarzustellen, wofür man überhaupt so etwas braucht, hier ein paar Beispiele:
Fangen wir mal an:
string.find(text, pattern): Hiermit kann man, wie die Funktion eigentlich schon heißt, herausfinden an welcher Stelle ein Muster/Text vorhanden ist.
Beispiel:
Nun wissen wir, dass in dem String, dass Wort "Welt" an der 7 Stelle anfängt und an der 10 endet.
string.match(text, pattern): Mit string.match können wir bestimmte Teile aus einem String extrahieren.
Beispiel:
print(string.match("Hallo Welt 123", "%d"))
> 1
print(string.match("Hallo Welt 123", "%d+")
> 123
Im ersten Beispiel wurde uns die Zahl 1 ausgegeben. Das liegt daran, dass als Pattern "%d" angegeben wurde. Das bedeutet, dass die erste Dezimalzahl, die gefunden wird, ausgegeben wird.
Im zweiten Beispiel spielt das "+" den entscheidenden Faktor, da es angibt, dass beliebig viele Dezimalzahlen dahinter auch ausgegeben werden.
string.gmatch(text, pattern): Der Unterschied zwischen string.match und string.gmatch ist, dass in gmatch ein Iterator nach jeder Instanz, die dem Pattern entspricht sucht. Bei einem Iterator müssen wird dran denken, dass wir eine Schleife benutzen.
Beispiel:
In diesem Beispiel sind wir durch jedes Zeichen durchgegangen und haben nach einer Zahl gesucht. Sobald eine gefunden wurde, wurde diese ausgegeben.
string.gsub(text, pattern, replacewith): Mit string.gsub können wir Teile aus Strings finden und diese mit einem Text ersetzen. Das eignet sich beispielsweise für einen Beleidigungsfilter.
Beispiel:
Hier haben wir jedes kleine "l" in unserem String mit einem großen "L" ersetzt. Doch jetzt steht dahinter noch eine 2. Das liegt daran, dass ausgegeben wird, wie viele matches es letztendlich gab. In Hallo haben wir 2 "l"'s also wird logischerweise eine 2 ausgegeben.
Allerdings können wir das folgendermaßen umgehen:
string.gsub("Gebe das was in {Schweif}[klammern] ist {aus}.", "{(.-)}", function(z) print(z) end)
> Schweif
> aus
string.byte(char): Hiermit können wir die ASCII-Nummer eines Buchstaben herausfinden. Das könnte nützlich sein, um das gleiche wie in string.gmatch zu bezwecken.
Beispiel:
Angenommen wir verändern das zweite Argument, so könnten wir auch die anderen Zahlen ausgeben lassen. Um alle ausgeben zu lassen empfiehlt sich eine for-Schleife.
string.len(text): Gibt uns einfach die Länge eines Strings aus.
Beispiel:
string.lower(text): Verwandelt alle Buchstaben in Kleinbuchstaben.
Beispiel:
string.format(pattern, text): Damit können wir unseren String formatieren. Beispielsweise können wir die Anzahl der Nachkommastellen angeben.
Beispiel:
Rundet auf die 3 Nachkommastelle auf.
Anwendung in MTA:
Beispiele:
Dieses Script bietet sich für allem für Roleplays an, da dieses Script eine Art Vorname_Nachname-String benötigt.
Doch was bedeutet jetzt das Pattern?
%u - Ein Uppercase-Buchstabe wird benötigt
%l - Darauf soll ein lowercase-Buchstabe folgen
* - Nun können beliebig viele Zeichen folgen
_ - Jetzt ein Unterstrich
Und das gleiche nochmal.
Patterns:
%d - Dezimalzahl
%a - Buchstabe
%w+ - Wörter
%l - Kleinbuchstaben
%u - Großbuchstaben
%s - Leerzeichen
%e - Exponent
%q - Anführungszeichen
%f - Float
Weiteres folgt später.
Verbesserungsvorschläge und Ergänzungen bitte posten!
Ich nehme an, dass ist wegen dem "ö".