Hilfe zu minimalen Grundlagen

  • Aufbau

    -Einleitung
    -Syntax
    -Definieren
    -tonumber/tostring
    -end
    -Ich verstehe den Syntax einer Funktion nicht oder weiß nicht was wie definiert wird.
    -Ich möchte Scripten lernen.

    Einleitung

    Sehr geehrte User,
    hiermit möchte ich euch ein wenig die minimalen Grundlagen des Scripten näher bringen, um eventuell einige Themen zu verhindern bzw. Probleme zu lösen.
    Syntax, Parameter, String, Integer... "What?!" Genau das möchte ich aufklären.

    Syntax

    Was ist denn ein Syntax?!
    Syntax bedeutet Reihenfolge bzw. Ordnung und ist die Struktur einer Funktion.
    Nehmen wir outputChatBox, weil diese Funktion einen Serverseitigen und einen Clientseitigen Syntax hat.

    Externer Inhalt i.imgur.com
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.


    Alles was durch [ ] gekennzeichnet ist, ist optional, Standartwerte werden angezeigt.
    Als erstes wird als String der Text angegeben, ein String ist eine Zeichenkette in Anführungszeichen z.B "HALLO ICH BIN EIN STRING".
    Wie man sieht, sagt uns der Syntax hier schon was benötigt wird: string, int = integer, bool = boolean (true/false).

    Lua
    outputChatBox("HALLO")


    Danach geben wir an, an welchen Spieler die Nachricht geschickt werden soll, da wir keinen Spieler definiert haben, nehmen wir einen zufälligen.

    Lua
    outputChatBox("HALLO",getRandomPlayer())

    Jetzt möchten wir die Farbe einstellen, in der der Text angezeigt wird.
    Der Aufbau ist R G B (Rot, Grün, Blau).
    Genau zu finden auf colorpicker.com

    Lua
    outputChatBox("HALLO",getRandomPlayer(),255,255,255)

    Als letztes geben wir an ob wir colorcodes ( z.B #123456 ) im Text erlauben möchten.

    Lua
    outputChatBox("HALLO",getRandomPlayer(),255,255,255,true)


    Externer Inhalt i.imgur.com
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.

    Da dies clientseitig ist, brauchen wir keinen Spieler angeben, der Rest ist oben zu entnehmen. Es wird nur an den lokalen Spieler gesendet.

    Definieren

    Wie definiere ich etwas?

    Alles was definiert wurde, ist eine Variable, wie auch in Mathe x für eine Zahl steht.

    z.B Möchten wir unseren Text als variable speichern um ihn im Script jederzeit einfach per text ausgeben lassen zu können.
    ( Siehe für local/global Noneatmes Erklärung [Tutorial] Globale und lokale Variablen )

    Lua
    local text = "HALLO"
    
    
    addCommandHandler("gibmirdentext",
    function(player)
    outputChatBox(text,player,255,255,255) --Player wurde nun durch den CommandHandler definiert (Serverseitig).
    end)

    Würde text oben nicht mit "Hallo" definiert werden, würde keine outputChatBox möglich sein, auch wenn text in einer Funktion definiert wird, diese aber noch nicht aufgerufen wurde.

    Eine Variable ändert man ganz einfach


    Lua
    Text = "Hallo" --String
    Text = "Nicht mehr Hallo" --String
    Text = "Gummi" --String
    Text = 123456 --Integer
    Text = false --Boolean
    Text = true --Boolean


    tonumber/tostring

    Ich befürchte meine Zahl ist ein String!

    Ganz einfach gelöst, mit tonumber(variable) oder andersrum mit tostring(variable)

    end

    Oft wird ein end vergessen z.B


    Lua
    function soso(player)
    if player then
    end

    Jedes "function","if","for" "while" etc. braucht ein end.

    Ich verstehe den Syntax einer Funktion nicht oder weiß nicht was wie definiert wird.

    Ihr findet zu jeder Funktion, einem EventHandler etc. einen Eintrag im MTA Wiki ( wiki.mtasa.com )

    Eine definierung durch einen EventHandler ist einfach.


    Lua
    function playerConnect(playerNick,playerIP,playerUsername,playerSerial,playerVersionNumber,playerVersionString) --Kann beliebig benannt werden, auch Kartoffel.
    
    
    
    
    end
    addEventHandler("onPlayerConnect",getRootElement(),playerConnect)

    Sieht man sich den Wiki Eintrag an, weiß man ob man es mit einem String oder sonstigem zu tun hat.

    Wird etwas nicht definiert, wie z.B oben playerNick, so kann man es auch nicht aufrufen.

    Sonstiges
    Wenn ihr einen Fehler bekommt, nicht direkt ein Thema eröffnen, weil ihr ihn nicht versteht (gemeint ist Englisch - Deutsch). Übersetzt ihn, sowas wie z.B "No Database selected" sollte eigentlich selbst erklärend sein.

    Ich möchte Scripten lernen.
    http://wiki.multitheftauto.com/wiki/DE/MTA_Scripting_Grundlagen

    Abschluss

    Ich hoffe das ich ein wenig geholfen habe, ich wollte kein Scripting Tutorial erstellen, sondern nur Grundlagen näher bringen.
    In letzter Zeit, habe ich häufiger Themen gesehen, die dadurch hätten nicht sein müssen.
    Dieses Thema, werde ich immer erweitern um die meisten Unklarheiten zu beseitigen, Vorschläge können gerne per PM, cChat oder in diesem Thema geäußert werden, aber wie gesagt ich möchte kein scripting Tutorial erstellen.
    Mit freundlichen Grüßen
    Dawi

    7 Mal editiert, zuletzt von Dawi (17. Februar 2016 um 13:42)

  • Dieses Thema enthält 3 weitere Beiträge, die nur für registrierte Benutzer sichtbar sind, bitte registrieren Sie sich oder melden Sie sich an um diese lesen zu können.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!