[SERVICE] Die Questkontrolle

06/22/2012 11:31 maximuss00#6106
PHP Code:
quest warpring begin
    state start    begin
        when 70007.
use begin
            
            say_title
("Warpring:")
            
say("Hallo, ich bin der Warpring!")
            
say("Möchtest du wirklich teleportiert werden?")
            
            
local main_set select("Fix","Niiiicht")
            if 
main_set == 2 then
                
return
            
end
            
            local map 
pc.get_map_index()
            
local empire pc.get_empire()
            
local level pc.get_level
            
            say_title
("Warpring:")
            
say("Wohin möchtest du teleportiert werden?")

            if 
level 100 then -- 100?? : ?????, ???, 
                    
sub_set select("Orktalmitte""Spinnendungeon2 mitte""Level und Farmmap 0-100""Abbrechen")
                    if 
sub_set == 5 then -- ??
                        return
                    
end

                
else -- 101?? : ????, ???, ????, ????
                    
sub_set select("Orktalmitte""Spinnendungeon2 mitte""Level und Farmmap 0-100""High Maps""Abbrechen")
                    if 
sub_set == 5 then -- ??
                        return

                    
end
                    
if sub_set == 4 then -- ??
            
            
say_title("Warpring:")
            
say("Wohin möchtest du teleportiert warden?")

                        
sub_set select("Level und Farmmap ab 100""Dämonenturm""Zurück""Abbrechen") + 3
                        
if sub_set == 9 then -- ??
                            return
                        
end
                        
if sub_set == 8 then -- ??
            
            
say_title("Warpring:")
            
say("Wohin möchtest du teleportiert werden?")
                            
sub_set select("Orktalmitte""Spinnendungeon2 mitte""Level und Farmmap 0-100""High Maps")
                            if 
sub_set == 4 then -- ??
                                                                ---                                                   
l
            say_title
("Warpring:")
            
say("Wohin möchtest du teleportiert werden?")
                                
sub_set select ("Level und Farmmap ab 100""Dämonenturm""Abbrechen") + 3
                                
if sub_set == 6 then -- ??
                                    return
                                
end
                            end
                        end
                    end
                end    
                
                
if pc.gold cost then
                    say_title
("Teleporter:")    
                    
say("Du hast nicht genug Geld,")
                    
say("Ich würde dich auch kostenlos teleportieren,")
                    
say("aber ich habe große Schulden. Um sie zu")
                    
say("ernähren, muss ich Geld verdienen.")
                    
say_reward(string.format("Es kostet %d Yang."cost))
                    return
                
end
                
                pc
.changegold(-cost)
                
                
local warp = {
                     -- 
64 map_n_threeway
                    
{
                        { 
332900746100 },
                        { 
332900746100 },
                        { 
332900746100 },
                    },
                     --
metin2_map_spiderdungeon_02
                    
{
                        { 
684400502400 },
                        { 
684400502400 },
                        { 
684400502400 },
                    },
                    --
metin2_map_n_flame_01
                    
{
                        { 
599400756300 },
                        { 
599400756300 },
                        { 
599400756300 },
                    },
                    --
metin2_map_marco_a
                    
{
                        { 
26432002694300 },
                        { 
26432002694300 },
                        { 
26432002694300 },
                    
                    },
                    -- 
devil_tower
                    
{
                        { 
590500110500 },
                        { 
590500110500 },
                        { 
590500110500 },
                    },
                    
                }
                
test_chat(warp[sub_set][empire][1]..warp[sub_set][empire][2])
                
say_title("Warpring:")
                   
say("Achtung, ich teleportiere dich jetzt. Du wirst")
                
say("an einem gefährlichen Ort landen, also pass auf")
                
say("dich auf. Viel Glück!")
                
wait()
                
pc.warp(warp[sub_set][empire][1], warp[sub_set][empire][2])
                
                else -- ? ?? 
1,? ??? ?????? ? ?? 1,? ??? ?? ??    
                
local sub_set2 3

                
--sub_set2 select(locale.vileage1_name[empire], locale.vileage2_name[empire], locale.cancel)
                if 
empire==1 then    
                    sub_set2 
select("Yongan","Jayang" locale.cancel)
                elseif  
empire ==2 then  
                    sub_set2 
select("Joan","Bokjung" locale.cancel)
                elseif  
empire ==3 then 
                    sub_set2 
select("Pyungmoo","Bakra" locale.cancel)
                
end    
                
if sub_set2 != 3 then
                    
if pc.gold cost then
                    say_title
("Warpring:")
                       
say("Ich würde dich auch umsonst teleportieren,")
                    
say("aber ich habe große Schulden. Um sie zu")
                    
say("ernähren, muss ich Geld verdienen.")
                    
say_reward(string.format("Es kostet %d Yang."cost))
                    else
                        if 
sub_set2 == 1 then
                say_title
("Warpring")
                
say("Ich teleportiere dich dorthin.")
                            
wait()

                            if 
empire == 1 then
                                pc
.warp(469300,964200
                            elseif 
empire == 2 then
                                pc
.warp(55700,157900)
                            elseif 
empire == 3 then
                                pc
.warp(969600,278400)
                            
end    
                        
elseif sub_set2 == 2 then
                            say_title
("Warpring:")
                            
say("Ich teleportiere dich dorthin.")
                            
wait()
                            if 
empire == 1 then
                                pc
.warp(353100,882900)
                            elseif 
empire == 2 then
                                pc
.warp(145500,240000)
                            elseif 
empire == 3 then
                                pc
.warp(863900,246000)
                            
end    
                        end
            

                        pc
.changegold(-cost)
                    
end
                end
            end
        end 
-- end_of_chat
     end 
-- end_of_state
end 
-- end_of_quest 




was ist falsch ??? bei mir kommt ein fehler von wegen string "start" und <eof> expected near else ... falls das was weiter hilft :/ thx:handsdown:
06/22/2012 14:38 Fuzzy111#6107
Bekomme make-fehler...
Die quest ist noch nicht ganz fertig, weil ich erst gucken wollte ob ich ein Fehler in VB bekomme.
Naja hat sich bestätigt und ich weiß nicht wo mein Fehler ist.
Das ist die Quest:
PHP Code:
quest gm_panel begin 
    state start begin 
        when 20095.chat
."GM-Panel" with pc.is_gm() begin
            say_title
("GM-Panel")
            
say("Hallo GM, was möchstest du?")
            
local gm select("Rates""Abbruch")
            if 
gm == 2 then
                
return
            
end
            
if gm == 1 then
                say_title
("GM-Panel")
                
say_reward("Welchem Reich?")
                
local r select("Rotes Reich""Gelbes Reich""Blaues Reich""Alle Reiche""Abbruch")
                if 
== 5 then
                    
return
                
end
                
if == 1 then
                    say_title
("GM-Panel")
                    
say_reward("Was für Rates?")
                    
local rr select("Itemdrop""Yangdrop""Exp-Rate""Abbruch")
                    if 
rr == 4 then
                        
return
                    
end
                    
if rr == 1 then
                        say_title
("GM-Panel")
                        
say_reward("Wieviel?")
                        
local rvi select("200""500""800""Abbruch")
                        if 
rvi == 4 then
                            
return
                        
end
                        
if rvi == 1 then
                            command
("priv_empire 1 1 200 24")
                        
end
                        
if rvi == 2 then
                            command
("priv_empire 1 1 500 24")
                        
end
                        
if rvi == 3 then
                            command
("priv_empire 1 1 800 24")
                        
end
                
                    
if rr == 2 then
                        say_title
("GM-Panel")
                        
say_reward("Wieviel?")
                        
local rvy select("200""500""800""Abbruch")
                        if 
rvy == 4 then
                            
return
                        
end
                        
if rvy == 1 then
                            command
("priv_empire 1 2 200 24")
                        
end
                        
if rvy == 2 then
                            command
("priv_empire 1 2 500 24")
                        
end
                        
if rvy == 3 then
                            command
("priv_empire 1 2 800 24")
                        
end
                    
if rr == 3 then
                        say_title
("GM-Panel")
                        
say_reward("Wieviel?")
                        
local rve select("200""500""800""Abbruch")
                        if 
rve == 4 then
                            
return
                        
end
                        
if rve == 1 then
                            command
("priv_empire 1 4 200 24")
                        
end
                        
if rve == 2 then
                            command
("priv_empire 1 4 500 24")
                        
end
                        
if rve == 3 then
                            command
("priv_empire 1 4 800 24")
                
                if 
== 2 then
                    say_title
("GM-Panel")
                    
say_reward("Was für Rates?")
                    
local gr select("Itemdrop""Yangdrop"Exp-Rate", "Abbruch")
                    if gr == 4 then
                        return
                    end
                    if gr == 1 then
                        say_title("
GM-Panel")
                        say_reward("
Wieviel?")
                        local gri = select("
200"500""800""Abbruch")
                        if 
gri == 4 then
                            
return
                        
end
                        
if gri == 1 then
                            command
("priv_empire 2 1 200 24")
                        
end
                        
if gri == 2 then
                            command
("priv_empire 2 1 500 24")
                        
end
                        
if gri == 3 then
                            command
("priv_empire 2 1 800 24")
                        
end
                    
if gr == 2 then
                        say_title
("GM-Panel")
                        
say_reward("Wieviel?")
                        
local gry select("200""500""800""Abbruch")
                        if 
gry == 4 then
                            
return
                        
end
                        
if gry == 1 then
                            command
("priv_empire 2 2 200 24")
                        
end
                        
if gry == 2 then
                            command
("priv_empire 2 2 500 24")
                        
end
                        
if gry == 3 then
                            command
("priv_empire 2 2 800 24")
                        
end    
                    
if gr == 3 then
                        say_title
("GM-Panel")
                        
say_reward("Wieviel?")
                        
local gre select("200""500""800""Abbruch")
                        if 
gre == 4 then
                            
return
                        
end
                        
if gre == 1 then
                            command
("priv_empire 2 4 200 24")
                        
end
                        
if gre == 2 then
                            command
("priv_empire 2 4 500 24")
                        
end
                        
if gre == 3 then
                            command
("priv_empire 2 4 800 24")
                        
end
                
if == 3 then
                    say_title
("GM-Panel")
                    
say_reward("Was für Rates?")
                    
local br select("Itemdrop""Yangdrop""Exp-Rates""Abbruch")
                    if 
br == 4 then
                        
return
                    
end
                    
if br == 1 then
                        say_title
("GM-Panel")
                        
say_reward("Wieviel?")
                        
local bri select("200""500""800""Abbruch")
                        if 
bri == 4 then
                            
return
                        
end
                        
if bri == 1 then
                            command
("priv_empire 3 1 200 24")
                        
end
                        
if bri == 2 then
                            command
("priv_empire 3 1 500 24")
                        
end
                        
if bri == 3 then
                            command
("priv_empire 3 1 800 24")
                        
end
                    
if br == 2 then
                        say_title
("GM-Panel")
                        
say_reward("Wieviel?")
                        
local bry select("200""500""800""Abbruch")
                        if 
bvy == 4 then
                            
return
                        
end
                        
if bry == 1 then
                            command
("priv_empire 3 2 200 24")
                        
end
                        
if bry == 2 then
                            command
("priv_empire 3 2 500 24")
                        
end
                        
if bry == 3 then
                            command
("priv_empire 3 2 800 24")
                        
end
                    
if br == 3 then
                        say_title
("GM-Panel")
                        
say_reward("Wieviel?")
                        
local bre select("200""500""800""Abbruch")
                        if 
bre == 4 then
                            
return
                        
end
                        
if bre == 1 then
                            command
("priv_empire 3 4 200 24")
                        
end
                        
if bre == 2 then
                            command
("priv_empire 3 4 500 24")
                        
end
                        
if bre == 3 then
                            command
("priv_empire 3 4 800 24")
                        
end
                
if == 3 then
                    say_title
("GM-Panel")
                    
say_reward("Was für Rates?")
                    
local ar select("Itemdrop""Yangdrop""Exp-Rate""Abbruch")
                    if 
ar == 4 then
                        
return
                    
end
                    
if ar == 1 then
                        say_title
("GM-Panel")
                        
say_reward("Wieviel?")
                        
local ari select("200""500""800""Abbruch")
                        if 
ari == 4 then
                            
return
                        
end
                        
if ari == 1 then
                            command
("priv_empire 0 1 200 24")
                        
end
                        
if ari == 2 then
                            command
("priv_empire 0 1 500 24")
                        
end
                        
if ari == 3 then
                            command
("priv_empire 0 1 800 24")
                        
end
                    
if ar == 2 then
                        say_title
("GM-Panel")
                        
say_reward("Wieviel?")
                        
local ary local("200""500""800""Abbruch")
                        if 
ary == 4 then
                            
return
                        
end
                        
if ary == 1 then
                            command
("priv_empire 0 2 200 24")
                        
end
                        
if ary == 2 then
                            command
("priv_empire 0 2 500 24")
                        
end
                        
if ary == 3 then
                            command
("priv_empire 0 2 800 24")
                        
end
                    
if ar == 3 then
                        say_title
("GM-Panel")
                        
say_reward("Wieviel?")
                        
local are select("200""500""800""Abbruch")
                        if 
are == 4 then
                            
return
                        
end
                        
if are == 1 then
                            command
("priv_empire 0 4 200 24")
                        
end
                        
if are == 2 then
                            command
("priv_empire 0 4 500 24")
                        
end
                        
if are == 3 then
                            command
("priv_empire 0 4 800 24")
                        
end
                    end
                end
            end
        end
    end
end 
06/22/2012 15:27 MetinLegende#6108
Da fehlen einige ends und du hast einmal ein " vergessen
06/22/2012 15:45 Sp0ngeb0b ist cool#6109
PHP Code:
quest gm_panel begin 
    state start begin 
        when 20095.chat
."GM-Panel" with pc.is_gm() begin
            local ar 
= {"Itemdrop""Yangdrop""Exp-Rate""Abbruch"}
            
local r = {"Alle Reiche","Rotes Reich""Gelbes Reich""Blaues Reich""Abbruch"}
            
say_title("GM-Panel")
            
say("Hallo GM, was möchstest du?")
            
local gm select("Rates""Abbruch")
            if 
gm == 2 then return end
            say_title
("GM-Panel")
            
say_reward("Welchem Reich?")
            
local sel select2(r)
            if 
sel == table.getn(rthen return end
            local sel2 
select2(ar)
            if 
sel2 == table.getn(arthen return end
            
if ar[sel2] == "Exp-Rate" then sel2 4 end
            say
('Gebe die Höhe der Rate ein:')
            
local h tonumber(input())
            if 
1 then return end
            command
('priv_empire '..sel-1..' '..sel2..' '..h..' 24')
        
end
    end
end 
machs doc einfach so ;)

Ps: dafür brauchste die select2 func in deiner lib
06/22/2012 17:13 Azemi6#6110
Quote:
Originally Posted by Azemi6 View Post
Wenn ich diese quest hochlade und die python make.py "durchlaufen" lasse failt es immer -.-

Folgender Fehler erscheint!:

syntax error : [string "start"]:66: unexpected symbol near ','
gm_panel.quest:129:Abort trab (core dumped)
Error occured on compile gm_panle.quest


Wäre echt froh wenn jemand sagen könnte wo der fehler ist ich finde es selber nicht raus -.-
Dachte zu erst etwas mit den End's aber da steht ist in der nähe von einem ,
ICH PEIL DA NICH DURCH :D:D:D:D
Immer noch nicht gelöst^^
06/22/2012 18:11 MetinLegende#6111
Dir fehlen ca 5 ends in der quest
06/22/2012 19:15 Azemi6#6112
Quote:
Originally Posted by xBlix View Post
Dir fehlen ca 5 ends in der quest
5 ends am ende hinzugefügt und nichts ist ;)
06/22/2012 19:39 LEL0UCH'#6113
SPONGE SPONGE SPONGE SPONGE - ICH BRAUCHE DEINE HILFE!!!!

PHP Code:
quest tausch begin
    state start begin
        when 9009.chat
."Steinstücke eintauschen" begin
        say_title
("Steinstücke eintauschen")
            
say("")
            
say("Hallo lieber Euphoria-Abenteurer,")
            
say("willst du deine Steinstücke, bei mir eintauschen.")
            
say("Hier eine kleine Liste für dich:")
            
say("")
            
say("5 Steinstücke: 2 Muscheln")
            
say("25 Steinstücke: beliebige Perle")
            
say("")
            
say_reward("Gegen was willst du deine Steinstücke eintauschen?:")
            
say("")
            
local s select("2 Muscheln""Perlen""Abbrechen!")
            
            if 
== 3 then
                
return
            
end
            
            
if == and pc.count_item(27990) >=5 then
                    say_reward
("Du hast erfolgreich gegen zwei Muscheln getauscht.")
                    
pc.give_item2(279872)
                    
pc.remove_item(279905)
                elseif 
== and pc.count_item(27990) ==0 then
                    say_reward
("Du hast keine 5 Steinstücke!")
            
end
            
            
if == and pc.count_item(27990) >=25 then
                    say_reward
("Gegen welche Perle willst du tauschen?")
                    
say("")
                    
local main_set select("Weiße Perle""Blaue Perle""Rote Perle""Abbrechen!")
                    
                if 
main_set == 4 then
                    
return
                
then
                
                
if main_set == 1 then and pc.count_item(27990) >=25 then
                    say_reward
("Du hast erfolgreich gegen eine Weiße Perle getauscht.")
                        
pc.give_item2(279921)
                        
pc.remove_item(2799025)
                    elseif 
main_set == and pc.count_item(27990) ==0 then
                        say_reward
("Du hast keine 25 Steinstücke!")
                
end
                
                
if main_set == 2 then and pc.count_item(27990) >=25 then
                    say_reward
("Du hast erfolgreich gegen eine Blaue Perle getauscht.")
                        
pc.give_item2(279931)
                        
pc.remove_item(2799025)
                    elseif 
main_set == and pc.count_item(27990) ==0 then
                        say_reward
("Du hast keine 25 Steinstücke!")
                
end
                
                
if main_set == 3 then and pc.count_item(27990) >=25 then
                    say_reward
("Du hast erfolgreich gegen eine Rote Perle getauscht.")
                        
pc.give_item2(279931)
                        
pc.remove_item(2799025)
                    elseif 
main_set == and pc.count_item(27990) ==0 then
                        say_reward
("Du hast keine 25 Steinstücke!")
                
end
            end
        end
    end
end 
Fehler:
PHP Code:
syntax error : [string "start"]:29unexpected symbol near 'then'
npc_quest/steinstueck_tausch.quest:63:Abort trap (core dumped
_________________

Anschließend suche ich eine Quest,
womit man wenn man Level 99 erreicht hat,
jede Klasse (Krieger, Ninja, Sura, Schami) eine
jeweilige Rüstung bekommt. Wie macht man das,
dass er überprüft, nach der Klasse, und dann die
jeweilige Rüstunge ausgibt? Mag mir jemand so eine
Quest schreiben, bitte? Danke.
06/22/2012 20:26 vpser#6114
Code:
quest exchange begin
	state start begin
	when 20081.take with item.vnum == 50089 begin
	if pc.get_item == 40002 then
	item.remove()
	pc.give_item2(40001)
end
end
end
end
it's not work why?
06/22/2012 21:44 LEL0UCH'#6115
#gelöst.
06/22/2012 22:36 Cereth#6116
Hiho..
hätte mal gerne gewusst, ob man seinen Server sowas zumuten kann.
Sind meine ersten Quests die ich geschrieben habe....


06/22/2012 22:48 MetinLegende#6117
@ lelouch
Das musst du über diesen Job Befehl machen der auch in der give_basic_weapon ist
Und @cereth
Die 2te ist kein Problem aber die erste hat sehr viele flags könnte laggs produzieren
06/22/2012 22:59 LEL0UCH'#6118
#gelöööööööööööst :D
06/23/2012 16:31 Azemi6#6119
es kommt immer noch das selbe egal wie viele ends ich einfüge -.-

Folgender Fehler erscheint!:

syntax error : [string "start"]:66: unexpected symbol near ','
gm_panel.quest:129:Abort trab (core dumped)
Error occured on compile gm_panle.quest


kann oder will mir niemand helfen?:confused:
06/23/2012 17:08 losser123456789#6120
Hi kann ir jemand bei der quest helfen muss in map1 20 schwarze orks töten wäre cool danke schn mal im voraus

quest boo begin
state start begin
when 636.kill with pc.get_map_index() == 41
local count = pc.getqf("state") - 1
if count <= 20 then
pc.setqf("state", count)
q.set_counter("Schwarzer Ork", count)
end

if count == 0 then
say("Du hast alle 20 Schwarzer Ork erledigt.")
say("Nun gehe zum OT-Schmidt!")
set_state(goback)
end
end
end