German / Hilfe für LUA

Author
Message
grinseengel
8
Years of Service
User Offline
Joined: 27th Jul 2015
Location:
Posted: 6th Jan 2016 17:52
Hallo,

ich benötige Hilfe für das Erlernen von LUA. Die für GG spezielle Syntax ist ja im Forum nachlesbar. Mir geht es jetzt aber um die allgemeine syntax.
wo kann ich denn etwas über z.B. TextCenterOnX, WindowHeight, Panel ...... finden?
Corno_1
GameGuru Tool Maker
13
Years of Service
User Offline
Joined: 3rd Nov 2010
Location:
Posted: 6th Jan 2016 23:10
Was?

Also alle Kommandos von GG stehen im global.lua. Eine Erklärung gibt es allerdings nicht. Schau dir andere Skripte an oder trail and error. So habs ich gelernt. Außerdem was ist denn WindowHeight? Bist du sicher das des in Lua von GG ist?
My dream is to develope games, which makes fun when I create it and fun when other people play it.
PM
grinseengel
8
Years of Service
User Offline
Joined: 27th Jul 2015
Location:
Posted: 10th Jan 2016 10:10
Ok, danke für den Hinweis. Das eine war tatsächlich eine Variable.

Jetzt scheitert bereits mein erster kleiner Versuch ein eigenes Script zu erstellen bzw. zu erweitern.

Also ich habe eine eindimensionales Datenfeld Inventar {}definiert und habe Werte vorgegeben. Inventar = {11, 11, 10, 12, 88}.
Jetzt möchte ich während der Laufzeit den 3. Wert um 1 erhöhen. Wie schreibe ich das im lua?
Corno_1
GameGuru Tool Maker
13
Years of Service
User Offline
Joined: 3rd Nov 2010
Location:
Posted: 10th Jan 2016 13:38
Ok, ich sehe du hast absolut keine Ahnung von Lua.
https://forum.game-guru.com/thread/211236
Im zweiten post erkläre ich grundsätzliches zum Lua lernen. Die deutsche Seite steht leider unter bearbeitung im Moment.

Les dir zumindest die Crash Kurse durch und benutze einen Editor den ich vorgebe. Und dann fang klein an und nicht gleich mit einem Inventar. Wenn du gar keine Ahnung von Programmieren hast ist das definitiv ein paar Level zu hoch für dich.
My dream is to develope games, which makes fun when I create it and fun when other people play it.
PM
grinseengel
8
Years of Service
User Offline
Joined: 27th Jul 2015
Location:
Posted: 10th Jan 2016 14:42
Hallo,

scripten kann schon. Habe unter lite-c bereits viele Dinge für mein RPG für das Gamestudio progammiert. Inventarsystem, Handelssystem etc. LUA hat natürlich seine eigene Syntax. Vieles ist mir schon verständlich. Allerdings habe ich da wohl in diesem Bereich einen Knoten im Kopf.

Entweder bin ich zu blöd, aber in den Csripten die ich mir hier angesehen habe, muss ich wohl die Rechnung von Array-Variablen übersehen haben.
grinseengel
8
Years of Service
User Offline
Joined: 27th Jul 2015
Location:
Posted: 10th Jan 2016 15:03
Ich würde dann folgendes skripten:

InvItem [3] = InvItem [3] + 1

Wäre das so richtig?
Corno_1
GameGuru Tool Maker
13
Years of Service
User Offline
Joined: 3rd Nov 2010
Location:
Posted: 10th Jan 2016 15:26
Ja, denke schon. Geht das etwa nicht?
My dream is to develope games, which makes fun when I create it and fun when other people play it.
PM
grinseengel
8
Years of Service
User Offline
Joined: 27th Jul 2015
Location:
Posted: 12th Jan 2016 13:13
Also ich habe mich jetzt an etwas einfacheres herngetraut. Auch hier gleich wieder ein Misserfolg (Anfängerfehler?).

Ich möchte gerne das folgende Script in mein Programm einbinden. https://forum.game-guru.com/thread/207801?page=9#msg2522535

Als Editor verwende ich den LuaEdit.

1. Ordner angelegt - scriptbank/images/note - 000.png, 001.png
2. Modell das script zugewiesen , aktiv gesetzt

3. nichts passiert

Hast du eine Idee?
Corno_1
GameGuru Tool Maker
13
Years of Service
User Offline
Joined: 3rd Nov 2010
Location:
Posted: 12th Jan 2016 15:49
ok das kann an mehreren sachen liegen.
Ist das objekt dynamisch(wenn du mit der maus drüber fährst, grün umrandet. Falls rot, ist es statisch)
Ist es noch an dem ort wo du es aufgestellt hast?
Ist es zu groß das Objekt(nimm doch mal ne kiste oder so)?
Bist du nah genug dran? Kannst du "Read Note" lesen?

Ich hab es getestet, das script funktioniert.
My dream is to develope games, which makes fun when I create it and fun when other people play it.
PM
grinseengel
8
Years of Service
User Offline
Joined: 27th Jul 2015
Location:
Posted: 12th Jan 2016 16:11
Objekt ist grün. Objekt ist ganz in der Nähe des Spielers. Läuft aber nicht.

Eine grundsätzliche Frage.

Kann es sein, dass ein Script zwar beim Debug keinen Fehler zeigt, aber trotzdem nicht läuft?
Gibt es bei der Größe der .png Bilder etwas zu beachten?
grinseengel
8
Years of Service
User Offline
Joined: 27th Jul 2015
Location:
Posted: 12th Jan 2016 16:28
Ach ja,

Objekt ist eine Flasche. Read note erscheint nicht auf dem Bildschirm.
Corno_1
GameGuru Tool Maker
13
Years of Service
User Offline
Joined: 3rd Nov 2010
Location:
Posted: 12th Jan 2016 18:24 Edited at: 12th Jan 2016 18:32
Quote: "Kann es sein, dass ein Script zwar beim Debug keinen Fehler zeigt, aber trotzdem nicht läuft?"

Das weiß ich nicht genau, aber im Moment scheint es so. Also wenn du meinst das GG Skripte nicht benutzt, die nicht korrekt sind.

Hast du was geändert am Skript? Kannst du es mal posten?
Benutze doch mal das script unten angehängt und teste das:
My dream is to develope games, which makes fun when I create it and fun when other people play it.

Attachments

Login to view attachments
PM
grinseengel
8
Years of Service
User Offline
Joined: 27th Jul 2015
Location:
Posted: 12th Jan 2016 21:17
Ok, danke für dein Script.

Das läuft auch. Ich habe, glaube ich auch den Fehler gefunden. Wenn das Script nicht unter dem Namen note.lua abspeichere, dann funktioniert es nicht.
Mit note1.lua geht es nicht mehr. Warum ist das so?

Die Bilder kann ich aber immer noch nicht sehen.
grinseengel
8
Years of Service
User Offline
Joined: 27th Jul 2015
Location:
Posted: 13th Jan 2016 07:14
Ich habe jetzt versucht die images z.b. 001.png in unterschiedlicher Größe und Farbtiefe von 8 bis 32 bit zu ändern. Sie werden aber trotzdem nicht angezeigt. Gibt es eine bestimmte Vorgabe bezüglich der .png Datei?

Entschuldige meine evtl. doofen Fragen, aber mich wurmt das immer, wenn Dinge bei mir nicht funktionieren und ich keinerlei Erklärung habe. GG hat doch viele vorgegebene Restriktionen.
grinseengel
8
Years of Service
User Offline
Joined: 27th Jul 2015
Location:
Posted: 13th Jan 2016 08:19
Ok, jetzt habe ich es hinbekommen. Ich glaube da hat sich etwas in der Syntax geändert.

In dem Script was du mir als Anhang gemailt hast und auch die Scripte die hier im Forum zu "take a note" gezeigt werden müssten geändert werden.

Zeile 26 und 36 und 56:

Den Befehl "GetInKey()" scheint es nicht mehr zu geben.

Alt: if GetInKey() == use_key and pressed == 0 then


Neu:

Zeile 26:

if g_KeyPressE == 1 and pressed == 0 then

Zeile 36:

if g_KeyPressE == 1 and pressed == 0 then

Zeile 56:

if pressed == 1 and g_KeyPressE == 0 then

Jedenfalls läuft es dann bei mir.
Corno_1
GameGuru Tool Maker
13
Years of Service
User Offline
Joined: 3rd Nov 2010
Location:
Posted: 13th Jan 2016 09:35
Quote: "Mit note1.lua geht es nicht mehr. Warum ist das so? "

Es geht schon du must nur alle functionen mit den endungen _init _main _exit auch ändern
also function note1_init() usw. Das hat damit zu tun das die funktionen sich ansonsten gegenseitig aufheben würden. Das ist leider so im Programmieren in jeder Sprache. Auch Java, C++ usw

Quote: "Gibt es eine bestimmte Vorgabe bezüglich der .png Datei?"

Eig nicht.

Quote: "Entschuldige meine evtl. doofen Fragen, aber mich wurmt das immer, wenn Dinge bei mir nicht funktionieren und ich keinerlei Erklärung habe."

Das ist am Anfang ganz normal. War bei mir und jedem anderen auch so. Man muss halt erst mal verstehen wie GG funktioniert, wenn man es mal raushat ist es kein Problem mehr

Quote: "Jedenfalls läuft es dann bei mir."

Das heißt es läuft alles bei dir?
Aber der Kommand GetInKey() ist noch vorhanden. Und er funktioniert auch noch. Hmmm weiß auch nicht so genau.
Das könntest du ja mal testen. Dann lernst du auch gleich noch was
My dream is to develope games, which makes fun when I create it and fun when other people play it.
PM
grinseengel
8
Years of Service
User Offline
Joined: 27th Jul 2015
Location:
Posted: 13th Jan 2016 09:51 Edited at: 13th Jan 2016 09:53
Ok!

.... und gleich noch einer.

Ist es möglich für ein Bild einen Layer zu vergeben? Im Moment ist das Bild immer im Vordergrund und verdeckt Schrift und Panels.
Corno_1
GameGuru Tool Maker
13
Years of Service
User Offline
Joined: 3rd Nov 2010
Location:
Posted: 13th Jan 2016 10:52
Es ist möglich einem Sprite ein Layer zu zu weisen.
Sprite = CreateSprite(LoadImage ( "scriptbank\\images\\folder\\spritefile.dds" ))
SetSpriteDepth( Sprite , "Wert wie z.B. 100. 10 ist Standart" )

In welchem layer allerdings Schrift und Panels sind weiß ich nicht. Vllt sind die in der untersten Ebene. Wie Sprites functionieren schau dir radar.lua an Ist ein Standart Skript
My dream is to develope games, which makes fun when I create it and fun when other people play it.
PM
grinseengel
8
Years of Service
User Offline
Joined: 27th Jul 2015
Location:
Posted: 14th Jan 2016 08:34 Edited at: 14th Jan 2016 08:35
Ok, ich habe das jetzt mit einem transparenten Image über Alphakanal gelöst. Das mit den Sprites versuche ich noch.

Habe aber wieder ein neues Problem. Das liegt aber denke ich mal an meinen schlechten Englisch Kentnissen. Ich versuche durch fertige Scripte zu lernen und habe gerade dieses Script angesehen. https://forum.game-guru.com/thread/207801?page=7#msg2514628

Bin natürlich die Beschreibung durchgegangen, verstehe aber nicht wirklich, was jetzt Entity-Nummer etc. bedeutet.



Das Script verstehe ich im Prinzip schon. Zur Vereifachung habe ich jetzt nur zwei Teleporter (local max_dest = 2) benutzt.
Script zeigt mir dann während der Laufzeit auch nur zwei Teleporterorte an. Beim Auswählen und warten von drei Sekunden friert der Spieler ein, oder ich erhalte einen Scriptfehler.

Nur zum Verständnis. Ich habe ein Port-Panel (Decal) was ich einmal in den Level setze, richtig?
Jetzt platziere ich zwei weitere Modelle, denen ich jetzt jeweils die teleport.lua zuweise.
Bezieht jetzt das port.pad die Koordinaten aus dem zweiten Teleporter?
Was macht TransportToIfUsed(e) ?
Baumgard
8
Years of Service
User Offline
Joined: 8th Aug 2015
Location:
Posted: 23rd Jan 2016 19:11
Also ich verstehe das Skript so:
du erstellst ein Decal, welches quasi zur Position an die du teleportieren möchtest immer vorrausgeschickt wird.
Daher muss die ID des Decals in das Skript unter der Zeile

eingetragen werden. Die ID kannst du auslesen, wenn du auf das Decal im Editor mit der Maus gehst und in der unteren Leiste nachliest.
Außerdem musst du im Editor in die IfUsed Eigenschaft noch den Namen deines Decals eintragen: (Bsp: würde ich das Decal auf "Transportdingens" umbennen muss in der IfUsed Eigenschaft ebenfalls "Transportdingens" stehen)
Ebenfalls musst du die IDs aller Teleporter in diesem Codeblock einfügen:

Wenn ich nichts vergessen/übersehen habe sollte mit diesen Anpassungen das Skript dann funktionieren
PM
grinseengel
8
Years of Service
User Offline
Joined: 27th Jul 2015
Location:
Posted: 25th Jan 2016 07:47
Hallo Baumgard,

danke für den Hinweis. Das mit der Anzeige der Entity-Nummer war die Rettung. Ich hatte immer nur wahlweise Nummern eingesetzt und habe mich gewundert, dass z.B. dann ein Haus oder Baum teleportiert wurde.

Jetzt funktioniert es wie es soll
Baumgard
8
Years of Service
User Offline
Joined: 8th Aug 2015
Location:
Posted: 25th Jan 2016 08:34
Freut mich, dass ich helfen konnte
Wenn wieder etwas sein sollte, versuche ich gerne wieder dir zu helfen
PM

Login to post a reply

Server time is: 2024-04-19 04:28:28
Your offset time is: 2024-04-19 04:28:28