PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : ...:::LUA für Anfänger:::..



Pac_187
17.07.2006, 13:48
Kurz und knapp:

Auf folgender Seite ist LUA ziemlich gut erklärkt und ich hoffe es hilft einigen Leuten;)


-->LUA für Anfänger (http://lua.gts-stolberg.de/)





-->dies sollte man anpinnen:D


mfg Pac_187

Blackfinal
17.07.2006, 14:06
Ich habe es mir mal kurz durchgelesen und denke das man wenn man lua lernen will damit anfängt.Man versteht eigentlich alles was Darin erklärt wird

btW: Pinned

Robertico
17.07.2006, 17:00
Ich habe es mir mal kurz durchgelesen und denke das man wenn man lua lernen will damit anfängt.Man versteht eigentlich alles was Darin erklärt wird

btW: Pinned

Danke für die Blumen. Versuche auch, so wie ich Zeit habe, immer zu erweitern. Heute habe ich mit der Erklärung von Metatables angefangen.
Sollte etwas nicht verstanden werden: Ich habe bisher jede Mail beantwortet.

Noch eins. Habe in einem Beitrag hier gelesen, dass jemand, der noch nicht mal wusste was C++ ist, dies zuerst lernen sollte.

Denke das ist das gleiche als wenn man sagt: Mache zuerst den Pilotenschein, dann ist der Führerschein einfach ;)

Gruß Robert

Dark
17.07.2006, 20:53
PAY_DAY = 40; -- How much you recieve on pay day
MONEY = 500;
TIME_BIS_PAY = 1

for TIME_BIS_PAY = 1, 200, 1.0 do
print = TIME_BIS_PAY

if TIME_BIS_PAY = 200 == then

MONEY = MONEY + PAY_DAY
print (MONEY)
TIME_BIS_PAY = TIME_BIS_PAY - 199

end

end

mein erster versuch nur beim roten sacht er

[ERROR]: `then' expected near `=' (8) - 17.07.2006 21:54:48


ach ja dein tut is gooooooood

Robertico
17.07.2006, 21:10
if TIME_BIS_PAY = 200 == then

Wörtlich übersezt heist das:

Wenn (TIME_BIS_PAY du hast jetzt den Wert 200) ist gleich dann:

Kann lua nicht verstehen. (ich auch nicht) ;)

Denke das meinst du :


if TIME_BIS_PAY == 200 then

Das heist:

Wenn TIME_BIS_PAY ist gleich 200 dann:


Kommt aber noch ein Fehler. Schau mal, was du mit print anstellst.

Dark
17.07.2006, 21:14
oh danke umm naja anfänger halt ich mag solche leute ja auch net die immer sawas fragen wie der dark ne (:lol: :lol: :lol: )

aber der printet mir das garnet im output fenster

Robertico
17.07.2006, 21:20
Habe noch etwas erweitert. Du machst die Funktion print zu einer Zahl.

Wundert mich, das er nicht meckert.(der PC)

Dark
17.07.2006, 21:29
function: 00CF0D1C
das sacht der immer wenn ich math.randomseed (os.time() ) mache

ich möchte aber nen zufallswert zwischen 0-100 haben und bei math.random sacht der fast das gleiche


wenn ich nen math.random mach wie mach ich es dann das er die zahl die rauskommt mit einer anderen mal nimmt


for a = 1, 1000, 1 do

if a ==1000 then


math.random ( 1 , 10 )
c = math.random * b
print ( b )


end

end

Robertico
18.07.2006, 18:12
Ich erkläre dir das zwar gerne, aber du solltest zunächst mal intensiv mit den ersten 5 -6 Tutorials anfangen.

math.random ist eine Funktion. Funktionen haben, wenn man sie brauchen will, immer ein (oft_mit_Parameter). Sie übergeben meist etwas an eine oder mehrere Variablen, die davor stehen.

zahl = math.random(1, 10)

Die zahl kannst du dann ausdrucken.

Nimm dir etwas Zeit. Rom ist auch nicht an einem Tag erbaut worden ;)

Und du musst sehen, ob es bei euch überhaupt os gibt. Das wird oft lahmgelegt.

print (type(os)) - muss "table" herauskommen.

Dark
18.07.2006, 19:50
wenn ichs richtig verstanden hab dann soll ich das im luaedit eingeben
hab ich kam auch table raus die dinger wo man sone art menü machen kann oder so sachen zusamen fassen ann die dann z.b. mit print table... angezeigt werden ??

is dat richtig:?: ;)

btw der sacht attempt to call global

Robertico
18.07.2006, 22:12
Das hast du richtig verstanden. Denn ich denke es geht zunächst einmal darum lua zu verstehen.
Nachher fehlen ein paar Möglichkeiten ( aus gut verständlichen Sicherheitsgründen )
Das hat aber mit LUA selbst nichts zu tun, sondern mit den Funktionen, die Lua bereitstellt.

cyber1
16.09.2006, 11:30
kann mir bitte einer erklären warum dieser hier nicht funktioniert?

gordondied = false
gordonisstillalive = true

if gordondied == false then
print ("Game Over")

else gordonisstillalive == true then

print ("He saved the world")


end

Fun47
17.09.2006, 13:08
Bei dem Problem kann ich nicht helfen, aber Lua für Anfänger ist nicht schlecht, werde mich mal ransetzen

killuah
16.12.2006, 16:01
Hm, hab n paar Fehler gefunden, was syntax und so etwas angeht..
Doppelpost-Edit:

kann mir bitte einer erklären warum dieser hier nicht funktioniert?

gordondied = false
gordonisstillalive = true

if gordondied == false then
print ("Game Over")

else gordonisstillalive == true then

print ("He saved the world")


end


else if statt else, nur mal so...

Robertico
11.02.2007, 18:50
Für alle.

Habe an einem einfachen Editor für Lua angefangen.

Er soll nicht einfach bleiben. ;)

Aber um etwas in Lua zu versuchen, kann man ihn schon brauchen.

Kein Schnickschnak einfach zu benutzen.

Zu finden:http://robertico.ro.funpic.de/phpBB2/portal.php

Gruß Robert

Killer_13
23.02.2007, 16:56
Da werd ich mich auch ma dran versuchen.

Neico
27.02.2007, 00:51
Hm, hab n paar Fehler gefunden, was syntax und so etwas angeht..
Doppelpost-Edit:



else if statt else, nur mal so...


elseif nich else if isn unterschied ;) sprich am ende siehts so aus:




gordondied = false
gordonisstillalive = true

if gordondied == false then
print("Game Over");

elseif gordonisstillalive == true then

print("He saved the world");

end


du kanns das ganz nun auch so machen:



function gordon_dead()
for k,v in pairs( player.GetAll ) do
v:PrintMessage( HUD_PRINTCENTER, "You died press left mouse button to respawn" );
end
end

hook.Add( "PlayerDeath", "Gordon Dead", gordon_dead );

function gordon_alive( user )
for k,v in pairs( player.GetAll ) do
if v:Alive then
v:PrintMessage( HUD_PRINTCENTER, "You are Alive but your death rate is now +1" );
end
end
end

// Die function is optional aber man kann es auch alternative wie das obrige machen
/*function gordon_alive()
for k,v in pairs( player.GetAll ) do
v:PrintMessage( HUD_PRINTCENTER, "You are Alive but your death rate is now +1" );
end
end
hook.Add( "PlayerSpawn", "Gordon Alive", gordon_alive );*/


achso das is atm mehr so das es jedem angezeigt wird (Serverside) wenn de willst das es nur die person sieht die das script hat dann musst einfach die for schleife weglassen und stat denn v: einfach LocalPlayer(): machen also ClientSide dann musst aber auch AddCSLuaFile("<name dieser Datei>"); machen wenn des aufm server laufen lässt was schwachsinnig wär einfach unter autorun client rienmachen dann siehts nur der eine hoff das ncih zu kompliziert erklärt Oo

wenn noch fragen sind stellt se einfach :D aber eigendlich is das doch eher Off-Topic in dem Thread naja egal :D

Scarecrow
03.04.2007, 10:57
Für alle.

Habe an einem einfachen Editor für Lua angefangen.

Er soll nicht einfach bleiben. ;)

Aber um etwas in Lua zu versuchen, kann man ihn schon brauchen.

Kein Schnickschnak einfach zu benutzen.

Zu finden:http://robertico.ro.funpic.de/phpBB2/portal.php

Gruß Robert

Hast du den in C++ gemacht? Wen ja, könntest du mir mal den Source-Code schicken? Oder wenigstens einen kleinen Teil?

Robertico
14.06.2007, 18:36
Hallo alle,

Bin in eine werbefreie Umgebung Umgebung umgezogen.

Wäre nett, wenn ein Admin das oben ändern würde.Die Seite leitet zwar um, hat dann eine Meldung und man weis nicht wie lange das noch gestattet wird.

http://lua.gts-stolberg.de/

Gruß Robert

guckuck
14.06.2007, 20:11
Done.

*DEAD*Pr0no0b
14.06.2007, 20:44
Der Link zum einfachen Lua-Editor geht nicht.

Scarecrow
15.06.2007, 07:02
Der Link zum einfachen Lua-Editor geht nicht.

Du brauchst ihn auch nicht, nimm lieber Notepad++ (http://notepad-plus.sourceforge.net/de/site.htm)

Damit machen das, unter Anderem auch ich, viele Lua-Scripter ;)

naloxx
04.03.2008, 15:47
Ich habe dieses Tutorial auch genutzt, nach etwa einer Stunde hatte ich es dann drauf

ich fand mich schnell zurecht, da ich bereits Visual Basic, HTML und ein klitzekleinesbisschen C++ und Delphi beherrsche

aber ansonsten: top!

WeltEnSTurm
19.07.2008, 10:49
Man wirds nicht glauben, aber ich habe ein Problem :gmod:

Da man in Gmod ja viel zu schnell läuft hab ich mir gedacht, ich bau ne eigene kleine autorun, die auch meldet wenn ein Spieler spawnt.
function playerRespawn( ply )
ply:SetWalkSpeed(100)
ply:SetRunSpeed(150)
playerName = ply:GetName()

Msg( "The player, " .. playerName .. " has respawned.\n" )
end
hook.Add( "PlayerSpawn", "playerRespawnTest", playerRespawn )

Das Problem ist, dass er beim spawnen überhaupt nichts macht D:
Und per console lua_run_cl LocalPlayer():SetWalkSpeed(100) oder SetJumpPower funktioniert auch nicht.

BennyG
19.07.2008, 11:01
Vielleicht weil das alles Serverside Hook's und Funktionen sind?

WeltEnSTurm
19.07.2008, 11:31
Ich habs in ner autorun/server lua.

BennyG
19.07.2008, 12:09
Und warum benutzt du dann lua_run_cl zum testen?

Hast du auch die File mal mit lua_openscript autorun/server..
Gehöffnet?

WeltEnSTurm
19.07.2008, 12:29
Und warum benutzt du dann lua_run_cl zum testen?


(hat) funktioniert im Singleplayer.

Er schreibt es in die console, aber er verändert nicht meine gehgeschwindigkeit.

Scarecrow
19.07.2008, 16:45
(hat) funktioniert im Singleplayer.

Er schreibt es in die console, aber er verändert nicht meine gehgeschwindigkeit.

Benutzt lua_run und nicht lua_run_cl. Zwar sind Client und Server bei dir auf einem Rechner (SP), aber das ändert nichts an der Trennung zwischen CL und SV ;)

PS: Gibts die Funktionen SetWalkSpeed und SetRunSpeed eigentlich? In der Library hab ich nix gefunden :|

WeltEnSTurm
19.07.2008, 16:50
Wenn ich lua_run benütze kommt ein error, ich glaube da muss man ply.GetByID(1) machen, aber wenn ich das mache passiert das gleiche wie bei lua_run_cl: garnichts.
Ich hab probiert direkt in der base/gamemode/player_shd.lua zu ändern, hat nichts gebracht.

http://wiki.garrysmod.com/wiki/?title=GAMEMODE:SetPlayerSpeed

Seht mal die source und die echte player_shd, garry hat wieder mal mist gebaut D:

Ich hab auch mal lua_run GAMEMODE:SetPlayerSpeed(1, 90, 140) probiert, funktioniert auch nicht.

nowai
19.07.2008, 19:37
Ich möchte Pac hier einmal danken, durch das Tutorial bin ich zu C++ gekommen und habe es nie bereut! :bow

KrystalCroft
24.03.2010, 07:48
Ich denke mal das ich mit LUA heute mal anfangen werde. ;)

Danke für diesen Thread, ist echt hilfreich! Danke!

BOBI2111
10.02.2011, 13:13
Wenn ich bei gmod server öffne steht bei fast jedem oben llinks Lua cache couldnt be downloaded und es funktioniert nicht...ich bin aber auch tzu blöd das hier zu verstehen

Tom07
29.04.2018, 18:57
Schade, diese Seite existiert nicht mehr. Der Beitrag hier ist schon etwas in die Jahre gekommen. Würde aber gerne doch noch Fragen ob es sich im Jahr 2018 überhaupt lohnt LUA zu lernen? Und wenn ich das richtig verstanden habe, Lua ist eine Programmiersprache für Spiele? Was kann man denn so programmieren mit LUA?

monky2k6
07.05.2018, 16:03
Neben den Verwendungen hier:
https://en.wikipedia.org/wiki/List_of_applications_using_Lua

Wird LUA z.B. auch für die Addons für World of Warcraft genutzt.
Auch gibt es Gaming-Frameworks für LUA. Als Beispiel https://love2d.org/
Das Spiel Mari0 wurde z.B. damit entwickelt. Soweit ich weiß sogar von unserem (inaktivem) Community-Mitglied Maurice.

Dominikk
10.05.2018, 12:55
LUA hat so eine Mischung von JavaScript, TypeScript und ein paar anderen Sprachen, ist also relativ anstrengend. Ich empfehle daher eine gute IDE zu verwenden, welche euch viel Tipparbeit abnimmt. Intellij mit dem LUA Plugin ist hier vermutlich die beste Wahl.