Register for your free account! | Forgot your password?
Rust Cheats

You last visited: Today at 16:11

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

Advertisement



Quest Tabelle?

Discussion on Quest Tabelle? within the Metin2 Private Server forum part of the Metin2 category.

Reply
 
Old   #1
 
Yiv's Avatar
 
elite*gold: 47
Join Date: Feb 2012
Posts: 2,282
Received Thanks: 2,579
Quest Tabelle?

Liebe Community,

ich habe hier eine Frage bezüglich einer Tabelle in einer Quest.

Meine Tabelle ([MAPINDEX] = {MOB, X}:
PHP Code:
                [1] = {1011}
                [
21] = {1011}
                [
41] = {1011
Nun möchte ich bei jedem Kill abfragen, ob der Mapindex einem der Mapindexe der Tabelle entspricht (Die Tabelle wird vorraussichtlich noch sehr viel länger werden). Wenn ja, soll gecheckt werden, ob "npc.get_race()" = Der Mob ist. Wenn auch dies stimmt, soll in die Variable "bsp" X gespeichert werden.

Wer kann mir helfen?

MfG
Yiv is offline  
Old 07/14/2013, 14:15   #2
 
elite*gold: 2
Join Date: Jun 2013
Posts: 1,063
Received Thanks: 1,724
Quote:
Originally Posted by DaJuBi View Post
Liebe Community,

ich habe hier eine Frage bezüglich einer Tabelle in einer Quest.

Meine Tabelle ([MAPINDEX] = {MOB, X}:
PHP Code:
                [1] = {1011}
                [
21] = {1011}
                [
41] = {1011
Nun möchte ich bei jedem Kill abfragen, ob der Mapindex einem der Mapindexe der Tabelle entspricht (Die Tabelle wird vorraussichtlich noch sehr viel länger werden). Wenn ja, soll gecheckt werden, ob "npc.get_race()" = Der Mob ist. Wenn auch dies stimmt, soll in die Variable "bsp" X gespeichert werden.

Wer kann mir helfen?

MfG
Hey,
auf die schnelle haett ich es jetzt so gemacht:

PHP Code:
when kill begin
            local tab 

            {  
            [
1] = {1021},
            [
21] = {1031},
            [
41] = {1011}  
            }
            
local mapIndex pc.get_map_index()
            if 
tab[mapIndex] and npc.get_race() == tab[mapIndex][1then
                pc
.setqf("VARIABLEX",tab[mapIndex][2]) -- variable X speichern
            
else
                
chat("Der Mapindex/Mob ist nicht in der Tabelle vorhanden!")
            
end
        end 
wird dann halt in der questtable gespeichert.
ProfessorEnte is offline  
Thanks
1 User
Old 07/14/2013, 15:36   #3
 
Yiv's Avatar
 
elite*gold: 47
Join Date: Feb 2012
Posts: 2,282
Received Thanks: 2,579
Werde ich mal testen Was ist, wenn ich den MapIndex 2 mal habe?

MfG
Yiv is offline  
Old 07/14/2013, 15:40   #4
 
elite*gold: 2
Join Date: Jun 2013
Posts: 1,063
Received Thanks: 1,724
Quote:
Originally Posted by DaJuBi View Post
Werde ich mal testen Was ist, wenn ich den MapIndex 2 mal habe?

MfG
Dann wird denke mal der erste aus der Table genommen.
Ich hab die Quest jetzt nur so nach der Tabelle gemacht.
Dachte du gibst pro Mapindex nur eine Mobvnum und eine "variable x" an.

Wenn du es anders moechtest, sag bescheid.
ProfessorEnte is offline  
Thanks
1 User
Old 07/14/2013, 15:49   #5
 
|★|554's Avatar
 
elite*gold: 150
Join Date: Sep 2009
Posts: 855
Received Thanks: 486
table.foreach ist das Zauberwort:

PHP Code:
        when kill begin    
            local tab 
= {  
                [
1] = {1011},
                [
21] = {1011},
                [
41] = {1011}  
            }
            
table.foreach(tab, function(ip)
                if 
== pc.get_map_index() then
                    
if p[1] == npc.get_race() then
                        local bsp 
p[1]
                    
end
                end
            end
)
        
end 
Die 2 if's kanste natürlich auch zusammenpacken.
Er geht bei table.foreach jede Position der Tabelle durch und "i" nimmt dabei den Wort des Schlüssels an (das was in den [ ] steht).
Sobald i (und damit der jeweilie Map-Index) mit dem Map-Index des SPielers übereinstimmt überprüft er noch ob "p[1]" (der 1. Wert der aktuellen Position) der Mob-Vnum übereinstimmt und speichert diese wenn ja.

table.foreach ist nicht einfach zu verstehen, ich werds hier jetzt aber auch nicht ausführlich erklären...

EDIT: Da du in einer Tabelle nicht 2x (oder öfters) den selben Schlüssel vergeben darfst, rate ich dir die "Mapgruppen" in Tabellen zu sammeln, mit diesem Tabellendesign sähe die Abfrage so aus:
PHP Code:
        when kill begin    
            local tab 
= {  
                [
1] = {
                    {
1011}
                },
                [
21] = {
                    {
1011},
                    {
1021}
                },
                [
41] = {
                    {
1011},
                    [
1031}
                }
            }
            
table.foreach(tab, function(ip)
                if 
== pc.get_map_index() then
                    
for 1table.getn(p), do
                        if 
p[e][1] == npc.get_race() then
                            local bsp 
p[e][1]
                        
end
                    end
                end
            end
)
        
end 
|★|554 is offline  
Thanks
1 User
Old 07/14/2013, 17:08   #6
 
Yiv's Avatar
 
elite*gold: 47
Join Date: Feb 2012
Posts: 2,282
Received Thanks: 2,579
Vielen, vielen Dank dafür

MfG

€dit: Irgendwie funktioniert die Quest nicht:
PHP Code:
quest testbsp begin
    state start begin        
        when kill begin
            local tab 
= {  
                [
1] = {
                    {
1921}
                },
                [
21] = {
                    {
1921}
                },
                [
41] = {
                    {
1921}
                },
                [
3] = {
                    {
5911}
                },
                [
23] = {
                    {
5911}
                },
                [
43] = {
                    {
5911}
                },
                [
64] = {
                    {
6911}
                },
                [
63] = {
                    {
21921}
                },
                [
62] = {
                    {
22912},
                    {
22061}
                },
                [
61] = {
                    {
19011}
                },
                [
65] = {
                    {
13041}
                },
                [
68] = {
                    {
2301}
                },
                [
104] = {
                    {
20911}
                },
                [
71] = {
                    {
20931}
                },
                [
72] = {
                    {
11921}
                },
                [
73] = {
                    {
24911},
                    {
24922},
                    {
24932}
                }
            }
            
table.foreach(tab, function(ip)
                if 
== pc.get_map_index() then
                    
for 1table.getn(p), do
                        if 
p[e][1] == npc.get_race() then
                            local bsp 
p[e][1]
                        
end
                    end
                end
            
)
            
chat(bsp)
        
end  
    end
end 
Code:
testbsp.quest:68:syntax error : [string "start"]:62: unexpected symbol near `)'
Error occured on compile testbsp.quest
Kann niemand helfen?

MfG
Yiv is offline  
Old 07/16/2013, 16:45   #7
 
Yiv's Avatar
 
elite*gold: 47
Join Date: Feb 2012
Posts: 2,282
Received Thanks: 2,579
Kann niemand helfen?

MfG
Yiv is offline  
Old 07/16/2013, 17:03   #8
 
Sp0ngeb0b ist cool's Avatar
 
elite*gold: 15
Join Date: Sep 2010
Posts: 844
Received Thanks: 975
huhu

PHP Code:
quest testbsp begin
    state start begin        
        when kill begin
            local tab 
= {  
                [
1] = {
                    {
1921}
                },
                [
21] = {
                    {
1921}
                },
                [
41] = {
                    {
1921}
                },
                [
3] = {
                    {
5911}
                },
                [
23] = {
                    {
5911}
                },
                [
43] = {
                    {
5911}
                },
                [
64] = {
                    {
6911}
                },
                [
63] = {
                    {
21921}
                },
                [
62] = {
                    {
22912},
                    {
22061}
                },
                [
61] = {
                    {
19011}
                },
                [
65] = {
                    {
13041}
                },
                [
68] = {
                    {
2301}
                },
                [
104] = {
                    {
20911}
                },
                [
71] = {
                    {
20931}
                },
                [
72] = {
                    {
11921}
                },
                [
73] = {
                    {
24911},
                    {
24922},
                    {
24932}
                },
            }
            for 
1table.getn(tab[pc.get_map_index()]) do
                if 
npc.get_race() == tab[pc.get_map_index()][1then
                    local bsp 
tab[pc.get_map_index()][1]
                    
local x tab[pc.get_map_index()][2]
                
end
            end    
            chat
('Mobvnum: '..bsp)
            
chat('Name: '..mob_name(bsp))
            
chat('X = '..x)
        
end  
    end
end 
Teste das mal
Sp0ngeb0b ist cool is offline  
Old 07/16/2013, 17:21   #9

 
elite*gold: 0
Join Date: Mar 2013
Posts: 2,449
Received Thanks: 6,446
Code:
for i = 1, table.getn(tab[pc.get_map_index()]) do
                if npc.get_race() == tab[pc.get_map_index()][1] then
                    local bsp = tab[pc.get_map_index()][1]
                    local x = tab[pc.get_map_index()][2]
                end
            end    
            chat('Mobvnum: '..bsp)
            chat('Name: '..mob_name(bsp))
            chat('X = '..x)
Sicher, dass es da keine Probleme geben wird?
Immerhin sind es lokale Variablen und nur im dem Block definiert.
Lord iRemix is offline  
Old 07/16/2013, 18:16   #10
 
elite*gold: 2
Join Date: Jun 2013
Posts: 1,063
Received Thanks: 1,724
Quote:
Originally Posted by DaJuBi View Post
Vielen, vielen Dank dafür

MfG

€dit: Irgendwie funktioniert die Quest nicht:
PHP Code:
quest testbsp begin
    state start begin        
        when kill begin
            local tab 
= {  
                [
1] = {
                    {
1921}
                },
                [
21] = {
                    {
1921}
                },
                [
41] = {
                    {
1921}
                },
                [
3] = {
                    {
5911}
                },
                [
23] = {
                    {
5911}
                },
                [
43] = {
                    {
5911}
                },
                [
64] = {
                    {
6911}
                },
                [
63] = {
                    {
21921}
                },
                [
62] = {
                    {
22912},
                    {
22061}
                },
                [
61] = {
                    {
19011}
                },
                [
65] = {
                    {
13041}
                },
                [
68] = {
                    {
2301}
                },
                [
104] = {
                    {
20911}
                },
                [
71] = {
                    {
20931}
                },
                [
72] = {
                    {
11921}
                },
                [
73] = {
                    {
24911},
                    {
24922},
                    {
24932}
                }
            }
            
table.foreach(tab, function(ip)
                if 
== pc.get_map_index() then
                    
for 1table.getn(p), do
                        if 
p[e][1] == npc.get_race() then
                            local bsp 
p[e][1]
                        
end
                    end
                end
            
)
            
chat(bsp)
        
end  
    end
end 
Code:
testbsp.quest:68:syntax error : [string "start"]:62: unexpected symbol near `)'
Error occured on compile testbsp.quest
Kann niemand helfen?

MfG
Hey, bei deiner Quest fehlt ein end.
Du musst die function auch wieder beenden, sollte dann compilen ohne Error.

- nun wird aber nichts im chat ausgegeben wahrscheinlich.

Dazu lesen wir noch .Remix. sein Beitrag:

Quote:
Originally Posted by .Remix. View Post
Code:
for i = 1, table.getn(tab[pc.get_map_index()]) do
                if npc.get_race() == tab[pc.get_map_index()][1] then
                    local bsp = tab[pc.get_map_index()][1]
                    local x = tab[pc.get_map_index()][2]
                end
            end    
            chat('Mobvnum: '..bsp)
            chat('Name: '..mob_name(bsp))
            chat('X = '..x)
Sicher, dass es da keine Probleme geben wird?
Immerhin sind es lokale Variablen und nur im dem Block definiert.
Wo er recht hat, hat er recht.

Was in dem Block ist bleibt im Block. Also definieren wir die vorher und zack wuerde deine Quest so aussehen:

PHP Code:
quest testbsp begin
    state start begin        
        when kill begin
            local tab 
= {  
                [
1] = {
                    {
1921}
                },
                [
21] = {
                    {
1921}
                },
                [
41] = {
                    {
1921}
                },
                [
3] = {
                    {
5911}
                },
                [
23] = {
                    {
5911}
                },
                [
43] = {
                    {
5911}
                },
                [
64] = {
                    {
6911}
                },
                [
63] = {
                    {
21921}
                },
                [
62] = {
                    {
22912},
                    {
22061}
                },
                [
61] = {
                    {
19011}
                },
                [
65] = {
                    {
13041}
                },
                [
68] = {
                    {
2301}
                },
                [
104] = {
                    {
20911}
                },
                [
71] = {
                    {
20931}
                },
                [
72] = {
                    {
11921}
                },
                [
73] = {
                    {
24911},
                    {
24922},
                    {
24932}
                }
            }
            
local bsp nil
            table
.foreach(tab, function(ip)
                if 
== pc.get_map_index() then
                    
for 1table.getn(p), do
                        if 
p[e][1] == npc.get_race() then
                            bsp 
p[e][1]
                        
end
                    end
                end
            end
)
            
chat(bsp)
        
end  
    end
end 
ProfessorEnte is offline  
Thanks
1 User
Old 07/16/2013, 18:19   #11
 
Sp0ngeb0b ist cool's Avatar
 
elite*gold: 15
Join Date: Sep 2010
Posts: 844
Received Thanks: 975
Nope
Die Aussage "Was in dem Block ist, bleibt im Block" ist zwar richtig, aber dafür gilt als Block der When-Block
Sp0ngeb0b ist cool is offline  
Old 07/16/2013, 18:36   #12
 
elite*gold: 2
Join Date: Jun 2013
Posts: 1,063
Received Thanks: 1,724
Ich spreche von der function wo nichts nach draußen dringt.

hier ein simples Beispiel:
ProfessorEnte is offline  
Old 07/16/2013, 18:48   #13
 
Sp0ngeb0b ist cool's Avatar
 
elite*gold: 15
Join Date: Sep 2010
Posts: 844
Received Thanks: 975
Ja in diesem Fall ist es aber eine Schleife & keine Funktion.
Probiers einfach!
Sp0ngeb0b ist cool is offline  
Old 07/16/2013, 18:58   #14
 
elite*gold: 2
Join Date: Jun 2013
Posts: 1,063
Received Thanks: 1,724
Hast du deine Quest mal selbst getestet?
Die kann nicht funktionieren.
Die spricht doch nichtmal die richtigen tabellenwerte an, bzw kommt nichtmal bis dahin und wenn sie bis dahin kommen wuerde und sie in deinen variablen speichert, wird nichts ausgegeben!

so waere deine quest richtig!:

PHP Code:
quest testbsp begin
    state start begin        
        when kill begin
            local tab 
= {  
                [
1] = {
                    {
1921}
                },
                [
21] = {
                    {
1921}
                },
                [
41] = {
                    {
1921}
                },
                [
3] = {
                    {
5911}
                },
                [
23] = {
                    {
5911}
                },
                [
43] = {
                    {
5911}
                },
                [
64] = {
                    {
6911}
                },
                [
63] = {
                    {
21921}
                },
                [
62] = {
                    {
22912},
                    {
22061}
                },
                [
61] = {
                    {
19011}
                },
                [
65] = {
                    {
13041}
                },
                [
68] = {
                    {
2301}
                },
                [
104] = {
                    {
20911}
                },
                [
71] = {
                    {
20931}
                },
                [
72] = {
                    {
11921}
                },
                [
73] = {
                    {
24911},
                    {
24922},
                    {
24932}
                },
            }
            
local bsp nil
            local x 
nil
            
for 1table.getn(tab[pc.get_map_index()]) do
                if 
npc.get_race() == tab[pc.get_map_index()][i][1then
                     bsp 
tab[pc.get_map_index()][i][1]
                     
tab[pc.get_map_index()][i][2]
                
end
            end    
            chat
('Mobvnum: '..bsp)
            
chat('Name: '..mob_name(bsp))
            
chat('X = '..x)
        
end  
    end
end 
Quote:
Originally Posted by Sp0ngeb0b ist cool View Post
Ja in diesem Fall ist es aber eine Schleife & keine Funktion.
Probiers einfach!
Und hier das selbe beispiel mit einer for schleife:

ProfessorEnte is offline  
Old 07/16/2013, 19:04   #15
 
Sp0ngeb0b ist cool's Avatar
 
elite*gold: 15
Join Date: Sep 2010
Posts: 844
Received Thanks: 975
Stimmt da hast du recht! Hab auch seit einigen Monaten nichts mehr mit Lua gemacht, aber gerade geht es auch um die variablen. Ich meine, dass ginge, ohne vorherige Zuordnung. Und den Variabeln nil (kein Wert) zuzuordnen ist ja wohl mehr als schwachsinnig. Eine Variable dient dazu Werte zu speichern & wozu soll man bitte "keinen Wert" speichern?
Selbst wenn das mit den Variabeln in der for-Schleife nicht ginge, würde ein
local bsp,x völlig ausreichen

lg sponge
Sp0ngeb0b ist cool is offline  
Thanks
1 User
Reply


Similar Threads Similar Threads
Datenbank Quest Tabelle.
11/03/2011 - Metin2 Private Server - 5 Replies
Einen Wunderschönen Guten Morgen liebe Com. Und zwar es geht um die Quest Tabelle in der Datenbank ich habe ein kleines Problem. In dieser Quest Tabelle wird ja alles geloggt die ganzen States usw. Sagen wir mal ich lasse den Server über 2 Wochen Online ohne zu rebooten.
Skyfire Quest tabelle
07/17/2011 - WoW Private Server - 5 Replies
Hey, kann mir wer sagen wo ich in skyfire die quest tabelle finde ? Grüße.....
Für was ist die Quest Tabelle
06/21/2011 - Metin2 Private Server - 4 Replies
Für was ist die Quest Tabelle und was passiert,wenn man sie löscht
Brauche die quest Tabelle
11/06/2010 - Metin2 Private Server - 0 Replies
Bitte closen# hat sich schon erledigt danke Mfg zagrosX
quest tabelle
02/19/2010 - Metin2 Private Server - 3 Replies
Hi, kann mir ma kurz jmd ne Kopie von seiner Quest Tabelle in der DB schicken bzw. eine hochladen? hab meine gelöscht



All times are GMT +1. The time now is 16:15.


Powered by vBulletin®
Copyright ©2000 - 2026, 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 ©2026 elitepvpers All Rights Reserved.