Register for your free account! | Forgot your password?

You last visited: Today at 05:06

  • Please register to post and access all features, it's quick, easy and FREE!

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.

Reply
 
Old   #1
 
Mijago's Avatar
 
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
Mijago is offline  
Thanks
9 Users
Old 10/15/2012, 18:05   #2
 
Red Firestar's Avatar
 
elite*gold: 0
The Black Market: 185/0/0
Join Date: Jul 2012
Posts: 5,520
Received Thanks: 1,350
Nice *-* Thanks
Red Firestar is offline  
Old 10/15/2012, 18:43   #3


 
Benhero's Avatar
 
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
Benhero is offline  
Thanks
2 Users
Old 10/15/2012, 18:49   #4
 
xCPx's Avatar
 
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.
xCPx is offline  
Old 10/15/2012, 19:01   #5
 
Mijago's Avatar
 
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
Mijago is offline  
Old 10/15/2012, 19:10   #6
 
.SkyneT.'s Avatar
 
elite*gold: 273
Join Date: Sep 2010
Posts: 1,831
Received Thanks: 786
Quote:
Originally Posted by Mijago View Post
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 .
.SkyneT. is offline  
Old 10/15/2012, 19:15   #7
 
Mijago's Avatar
 
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
Mijago is offline  
Old 10/15/2012, 20:54   #8
 
.SkyneT.'s Avatar
 
elite*gold: 273
Join Date: Sep 2010
Posts: 1,831
Received Thanks: 786
Quote:
Originally Posted by Mijago View Post
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
.SkyneT. is offline  
Old 10/15/2012, 20:54   #9
 
elite*gold: 0
Join Date: Sep 2012
Posts: 4,905
Received Thanks: 608
Danke für die Arbeit
ηice is offline  
Old 10/15/2012, 22:08   #10
 
miguelmig's Avatar
 
elite*gold: 0
Join Date: Dec 2009
Posts: 113
Received Thanks: 44
English please... :\
miguelmig is offline  
Old 10/16/2012, 16:16   #11
 
Mijago's Avatar
 
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..
Mijago is offline  
Reply


Similar Threads 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.


Powered by vBulletin®
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2024 elitepvpers All Rights Reserved.