[Tool] pri-nt() (Bindestrich wegdenken)
Da das lua print in S6 ja keine Funktion mehr hat, habe ich es mir für meine Zwecke gekapert, heraus kam ein kleines Testwerkzeug, um zum Beispiel zu prüfen was für Werte eine Funktion zurückgibt.
(Ausserdem ist es kürzer als Logic.DEBUG_AddNote und wird im Notepad++ farblich hervorgehoben)
Code:
function print(...)
local arg = { ... }
if #arg > 1 then
Logic.DEBUG_AddNote(#arg .. " values")
end
local String = arg[1]
local t = type(String)
String = (t == "table" and t .. " " .. #String)
or (t == "function" and t)
or (t == "nil" and t)
or (t == "boolean" and (t .. (_String and " true" or " false")))
or (tostring(String) and String)
or "Type Unsupported"
Logic.DEBUG_AddNote(String)
end
Anwendung: Man kann ALLES in beliebiger Anzahl übergeben.
Also:
print("text")
--text
print(14)
--14
print(Entities)
--table 0 (0 weil Entities ein lexikalisches Table ist)
print({1,3,6})
--table 3 (3: Die Anzahl der Einträge bei nummernindizierten Tables)
print(true)
--boolean true
print()
--nil
print(nil)
--nil
print(Logic.GetEntityPosition(Logic.GetStoreHouse( 1)))
--2 values
--(hier dann die x-Koordinate)
Bei mehreren Rückgabewerten erhält man also darüber einen Hinweis, und auch wieviele es sind.
Ich hoffe es gefällt euch
Britta
AW: [Tool] pri-nt() (Bindestrich wegdenken)
Ich habe den Titel des Themas repariert, sodass man nun richtig auf es zugreifen kann.
Ich hoffe, dass Du mir nicht böse bist dafür, Britta :)
AW: [Tool] pri-nt() (Bindestrich wegdenken)
Oh, gab es da Probleme? Ich hatte da nichts bemerkt, danke natürlich, Old McDonald
AW: [Tool] pri-nt() (Bindestrich wegdenken)
Ja, ich hatt mich schon gewundert, das die Seite so ganz anders aussah.
Nun ist auch mir das klar geworden.
AW: [Tool] pri-nt() (Bindestrich wegdenken)
Ist mir jetzt erst aufgefallen, nachdem Marius die Funktion ins Wiki gestellt hat.
Ich bin aber ganz entschieden dagegen, eine original Lua Funktion "zu kapern".
Erstens könnte print in S6 durch einen Patch wieder zu einer Funktion gelangen, zweitens ist es für diejenigen, die auch sonst mit Lua arbeiten verwirrend, drittens ist es entgegen allen Konventionen, die man beim Programmieren so gewöhnt ist, viertens ...!
Ich habe das auch auf der Seite im Wiki angemerkt, um meinen Einwand/ meine Bedenken zur Diskussion zu stellen. Vielleicht sehe ich das ja auch falsch oder es gibt Argumente, die dafür sprechen, es so zu machen?
Ich lasse mich ja auch vom Gegenteil überzeugen (natürlich nur mit stichhaltigen Argumenten ;)).
Gunther
AW: [Tool] pri-nt() (Bindestrich wegdenken)
Zitat:
Zitat von
Netsurfer
Ist mir jetzt erst aufgefallen, nachdem Marius die Funktion ins Wiki gestellt hat.
Du lässt nach ;)
Zitat:
Ich bin aber ganz entschieden dagegen, eine original Lua Funktion "zu kapern".
Da bin ich dafür.
Zitat:
Erstens könnte print in S6 durch einen Patch wieder zu einer Funktion gelangen,
BB KÖNNTE für den nächsten Patch auch mindestens die Hälfte von Old McDonalds Vorschlägen umsetzen. Nein, ernsthaft, hälst du das auch nur ansatzweise für möglich?
Zitat:
zweitens ist es für diejenigen, die auch sonst mit Lua arbeiten verwirrend,
...das print nicht funktioniert, richtig.
Zitat:
drittens ist es entgegen allen Konventionen, die man beim Programmieren so gewöhnt ist,
Ich bin konfessionslos Du hast ja völlig recht. Ich hatte auch Bedenken es zu veröffentlichen, aber es macht sich halt wirklich gut im Einsatz. Gerade auch die farbliche Markierung in Notepad++
Zitat:
Ich habe das auch auf der Seite im Wiki angemerkt, um meinen Einwand/ meine Bedenken zur Diskussion zu stellen.
Das ist ja auch in Ordnung
Zitat:
Vielleicht sehe ich das ja auch falsch oder es gibt Argumente, die dafür sprechen, es so zu machen?
von meiner Seite aus keine weiteren ausser denen die im ersten Post gleich zu Anfang stehen.
Zitat:
Ich lasse mich ja auch vom Gegenteil überzeugen
Allerdings nicht oft
Zitat:
(natürlich nur mit stichhaltigen Argumenten ;)).
Selbst dann nicht Britta :D
AW: [Tool] pri-nt() (Bindestrich wegdenken)
Du kannst das halten wie du willst. :p
Allerdings finde ich es zumindest ein wenig kontraproduktiv, wenn man Script-Anfängern und -einsteigern hier gewisse Grundsätze vermitteln will, und sich dann selber nicht daran hält (in Veröffentlichungen). :rolleyes:
Und wenn ich das richtig verstanden habe, dann ist dein einziges Argument dafür, das der farblichen Markierung in Notepad++.
AW: [Tool] pri-nt() (Bindestrich wegdenken)
Zitat:
Zitat von
Netsurfer
Und wenn ich das richtig verstanden habe, dann ist dein einziges Argument dafür, das der farblichen Markierung in Notepad++.
Dafür es schlussendlich print() zu nennen, ja. Von mir aus kann dass auch output oder drucken oder println heissen.
(Ich wills trotzdem farblich markiert haben, dass kann man doch im Notepad++, oder? Meine da mal was gelesen zu haben dass man die Kontrollwörter dort selbst einstellen kann)
AW: [Tool] pri-nt() (Bindestrich wegdenken)
Zitat:
Zitat von
BVernheim
Dafür es schlussendlich print() zu nennen, ja.
Schwaches Argument ;) (weil man sich mit dem Werkzeug nicht auskennt mit dem man arbeitet, verunstaltet man also dann das Werkstück? :p)
Zitat:
Von mir aus kann dass auch output oder drucken oder println heissen.
(Ich wills trotzdem farblich markiert haben, dass kann man doch im Notepad++, oder? Meine da mal was gelesen zu haben dass man die Kontrollwörter dort selbst einstellen kann)
Siehe .:: NOTEPAD++ ::. => Benutzerdefinierte Syntax-Hervorhebung
Viel Spaß beim Erstellen!
Aber warum so kompliziert - man kann auch die Suchen Funktion dafür benutzen mit der Option "Lesezeichen setzen" und dann "Alle suchen". Anschließend kann man ganz bequem rauf und runter zu jedem Vorkommen des gewünschten Begriffs/ Namens springen.
Oder einfach nur ein Vorkommen des Begriffs durch Doppelklick markieren - schwupps sind alle anderen Vorkommen auch hervorgehoben (die Farben dafür kann man einstellen).
Oder, oder, oder ... (es gibt zig Möglichkeiten)!
Also dafür die ganzen anderen Nachteile in Kauf zu nehmen, ist nach meinem Dafürhalten nicht gerechtfertigt.
AW: [Tool] pri-nt() (Bindestrich wegdenken)
Normalerweise sollte ein neues print() die gleiche Semantik haben wie das Original-Lua-print() haben. Das sähe so aus:
Code:
function print(...)
local arg = { ... }
for i = 1, select("#", ...) do
arg[i] = tostring(arg[i])
end
Logic.DEBUG_AddNote(table.concat(arg, " ") .. '\n');
end
Liste der Anhänge anzeigen (Anzahl: 1)
AW: [Tool] pri-nt() (Bindestrich wegdenken)
Zitat:
Zitat von
Netsurfer
Siehe
.:: NOTEPAD++ ::. =>
Benutzerdefinierte Syntax-Hervorhebung
Viel Spaß beim Erstellen!
Tsis Tsis Tsis:rolleyes: wieso gleich eine neue Programmiersprache erstellen, und alle einstellungen aus lua zu übernemen? Man kann doch über folgendes menü viel einstellen: