|
You last visited: Today at 05:06
Advertisement
[Lua] Teil-Globale Coroutinen in Quests
Discussion on [Lua] Teil-Globale Coroutinen in Quests within the Metin2 PServer Guides & Strategies forum part of the Metin2 Private Server category.
10/15/2012, 17:43
|
#1
|
elite*gold: 191
Join Date: May 2009
Posts: 1,214
Received Thanks: 2,594
|
[Lua] Teil-Globale Coroutinen in Quests
Dieser Thread ist eine Kopie meines Releases im . Ich gebe in ePvP keinen aktiven Support mehr.
Hiermit könnt ihr Coroutinen in Quests benutzen.
Erstellen geht beispielsweise so:
PHP Code:
quest bla begin state stat begin function coro_load() -- Coroutinen Funktionscode end end end
Diese Coroutine würde nun über coroutine.resume(bla.load) aufgerufen werden.
Also gilt:
- Erstellen durch das voransetzen von coro_
- Aufrufen durch questname.functionsname (ohne coro_)
- die Funktion wird weiterhin in coro_NAME gespeichert.
- eine Coroutine hat den type "thread".
Vielen von euch wird der Begriff "Coroutine" nichts sagen, doch für diejenigen, die etwas davon verstehen, biete ich hiermit eine Erweiterungsmöglichkeit für Quests an. Natürlich gingen Coroutinen vorher auch, doch mit diesem Code wird ihr Nutzen etwas vereinfacht.
Hier der Funktionscode, der in eure questlib.lua oder in eine Outsource-Datei muss (an das Ende!).
PHP Code:
setmetatable(_G,{ __newindex = function(tab,name,value) if type(value) == 'table' then for i,l in value do if type(l) == 'function' and string.find(i,'coro_%w+') then value[string.sub(i,6)] = coroutine.create(l) end end end rawset(tab,name,value) end, })
Es folgen einige Links zu Coroutinen:
Mögliche Nutzung:
-- Multithreading
Grüße, Mijago
|
|
|
10/15/2012, 18:05
|
#2
|
elite*gold: 0
Join Date: Jul 2012
Posts: 5,520
Received Thanks: 1,350
|
Nice *-* Thanks
|
|
|
10/15/2012, 18:43
|
#3
|
elite*gold: 964
Join Date: Mar 2008
Posts: 2,629
Received Thanks: 1,636
|
@Scorpion ? weißt du wie man es benutzt ? wenn ja erklär ma ^^ich Blick nicht durch..
Mfg. Benhero
|
|
|
10/15/2012, 18:49
|
#4
|
elite*gold: 20
Join Date: Jun 2011
Posts: 2,897
Received Thanks: 3,336
|
Also ich hab so verstanden:
Mit Coroutinen lassen sich in Lua mehrere Tasks gleichzeitig ausführen.
Wenn man im Hauptthread eine Coroutine aufruft, so wird sie in einem 2. Task aufgerufen (schneller als einzeln) und beendet sich automatisch nachdem sie am Ende angekommen ist.
Also sogesehen Multitasking.
Falls ich falsch liege bitte korrigieren.
|
|
|
10/15/2012, 19:01
|
#5
|
elite*gold: 191
Join Date: May 2009
Posts: 1,214
Received Thanks: 2,594
|
Nein, es gibt in Lua nur einen Thread
Aber man kann die Coroutine so schreiben, dass sie mehrere Dinge hintereinander abruft, bzw mit etwas übung nahezu gleichzeitig -> simuliert dann Multithreading
|
|
|
10/15/2012, 19:10
|
#6
|
elite*gold: 273
Join Date: Sep 2010
Posts: 1,831
Received Thanks: 786
|
Quote:
Originally Posted by Mijago
Nein, es gibt in Lua nur einen Thread
Aber man kann die Coroutine so schreiben, dass sie mehrere Dinge hintereinander abruft, bzw mit etwas übung nahezu gleichzeitig -> simuliert dann Multithreading
|
Wenn man es ganz genau nimmt gibts kein Multithreading (in dem Sinn),
da das genauso nur nahezu gleichzeitig ist .
|
|
|
10/15/2012, 19:15
|
#7
|
elite*gold: 191
Join Date: May 2009
Posts: 1,214
Received Thanks: 2,594
|
Hab ich das nicht grade gesagt? Es simuliert ja nur.. Habe nicht gesagt dass es welches ist ^.^
Sorry dennoch für die nicht vollständige Aussage.
Grüße, Mijago
|
|
|
10/15/2012, 20:54
|
#8
|
elite*gold: 273
Join Date: Sep 2010
Posts: 1,831
Received Thanks: 786
|
Quote:
Originally Posted by Mijago
Hab ich das nicht grade gesagt? Es simuliert ja nur.. Habe nicht gesagt dass es welches ist ^.^
Sorry dennoch für die nicht vollständige Aussage.
Grüße, Mijago
|
Hab es so interpretiert das er "echtes" Multithreading simuliert,
und dieses streng genommen nicht exisitert.
Kann mir zwar nicht vorstellen das Multithreading in
lua gut funktioniert, aber ich kann auch sogut wie kein lua
|
|
|
10/15/2012, 20:54
|
#9
|
elite*gold: 0
Join Date: Sep 2012
Posts: 4,905
Received Thanks: 608
|
Danke für die Arbeit
|
|
|
10/15/2012, 22:08
|
#10
|
elite*gold: 0
Join Date: Dec 2009
Posts: 113
Received Thanks: 44
|
English please... :\
|
|
|
10/16/2012, 16:16
|
#11
|
elite*gold: 191
Join Date: May 2009
Posts: 1,214
Received Thanks: 2,594
|
@Skynet:
Naja, um Multithreading in Lua zu simulieren, muss man Lua schon sehr gut beherrschen..
|
|
|
|
Similar Threads
|
[RLS] Globale Ankündigung
08/01/2012 - Metin2 PServer Guides & Strategies - 15 Replies
Hallo Liebe Com
Da ich öfters lese das viele sowas suchen wo man auf einem item drückt und dann direckt aufgelistet wird was angekündigt werden soll habe ich hier mal eine quest umgeschrieben,
Die quest soll dazu sein wenn ihr GM´s etc keine vollen rechte geben wollt aber ihr wollt auch gleichzeitig das er ./n Nachrichten schreiben kann dazu ist das item da
Mit dem Item kannst du .
GM-Info", "Page-Info", "Vote-Info", "Event-Info", "Ankündigung"
|
i'm looking for a Europe Globale 2
03/28/2012 - Browsergames Trading - 1 Replies
My looking:
- LF4
- Iris + Apis , if you have zeus will be fine
- upgrade a little ...
- ....
A good account , i will give 250 € , propose me guys ! This searching account is not for me , for a friends ...
|
[Quest-Ordner] ohne nervige Quests! + neue Kill-Quests [1.Teil der Idee Map1-SF]
05/01/2011 - Metin2 PServer Guides & Strategies - 16 Replies
Heute will ich euch meinen Questordner ohne nervigen Quests vorstellen ( z.B. Biologenaufgaben,Rüssisaufgaben etc.). Der Download befindet sich im Anhang. Heute ist mein Server schrottgegangen, wollte mit meinen anderen Serverfiles neuinstallen ging nicht -> deswegen gibs keine Pics or Video etc..
Weil es so mager war, habe ich noch eigene neue Kill-Quests reingetan:
- Ab lvl 80 Auftrag 1 Wüstenschildkröte töten -> Belohnung 3 Gegenstratagie
- Ab lvl 90 Auftrag 1 Roten Drache killen ->...
|
Gehen die Hacks vom S4 Patch 24 teil 1 auf teil 2?
12/05/2010 - S4 League - 9 Replies
Die Frage steht Obenn....bitteee beantworten xD:D
|
All times are GMT +1. The time now is 05:06.
|
|