[SERVICE] Die Questkontrolle

03/12/2011 14:02 LxR'EsoZiaL#1651
@Mr.Online
Du hast habe viele Schöneheits fehler in der Quest drin ^^.

Ich rate dir Quests in .lua Dateien zu schreiben (da sieht man besser die fehler).

PHP Code:
quest markensystem begin
    state start begin
        when letter begin
            send_letter
("Das Markensystem")
        
end
        when info 
or button begin
            say_title
("Das Markensystem")
            
say("")
            
say("Hallo "..pc.get_name().." ")
            
say("Wir haben auf diesem Server ein Markensystem")
            
say("eingeführt. Es handelt sich hierbei um eine Art Währung.")
            
say("Für jeden Spieler, aus einem befeindeten Reich, den")
            
say("du tötest, bekommst du eine Marke")
            
say("Nun gibt es ab einer unterschiedlichen Anzahl von Marken")
            
say("unterschiedliche Belohnungen.")
            
say_reward("Bisher hast du "..pc.getqf("marken").." Marken gesammelt!")
            
say_reward("Töte Spieler aus anderen Reichen, um mehr zu sammeln.")
        
end
        
        when 20011.chat
."Markensystem" begin
            say_title
("Markensystem")
            
say("")
            
say("Hier befindest du dich im Markenbereich.")
            
say("Du erfährst hier, welche Belohnungen es gibt")
            
say("und kannst diese auch gleich gegen Marken eintauschen, wenn du genügend")
            
say("davon hast. Bisher hast du "..pc.getqf("marken").." Marken!")
            
say("")
            
local s select("Belohnungen ansehen","Marken eintauschen","Abbrechen")
            if 
== 3 then
                
return
            
end
            
if == 1 then
                say
("Hier siehst du für wieviele Marken du welche Belohnung bekommst.")
                
say("")
                
say("20  Marken: Belohnung 1:  3x schwere Metinrufrolle"
                
say("40  Marken: Belohnung 2:  1x Flammenkönigrufrolle")
                
say("60  Marken: Belohnung 3: 50x Segen des Lebens")
                
say("80  Marken: Belohnung 4:  1x Weiße Perle")
                
say("120 Marken: Belohnung 5:  1x Sensenmanntruhe")
                
say("150 Marken: Belohnung 6:  1x Weiße Perle, 1x Blaue Perle, 1x Rote Perle")
                
say("250 Marken: Belohnung 7:  2x Weiße Perle, 2x Blaue Perle, 2x Rote Perle, 2x Sensenmanntruhe.")
        
end
            
if == 2 then
                say
("Du hast "..pc.getqf("marken").." Marken")
                
say("Was möchtest du davon kaufen?")
                
say("")
                
local v select("Belohnung 1","Belohnung 2","Belohnung 3","Belohnung 4","Belohnung 5","Belohnung 6","Belohnung 7","nichts kaufen")
                if 
== 8 then
                
return
                
end
                
elseif == and pc.count_item("1111")>=20  then
                pc
.give_item2("71082,1")
                
pc.give_item2("71082,1")
                
pc.give_item2("71082,1")
                
pc.remove_item("1111,20")
                elseif 
== and pc.count_item("1111")>=40 then
                pc
.give_item2("5504,1")
                
pc.remove_item("1111,40")
                elseif 
== and pc.count_item("1111")>=60 then
                pc
.give_item2("71018,50")
                
pc.remove_item("1111,60")
                elseif 
== and pc.count_item("1111")>=80 then
                pc
.give_item2("27992,1")
                
pc.remove_item("1111,80")
                elseif 
== and pc.count_item("1111")>=120
                pc
.give_item2("50082,1")
                
pc.remove_item("1111,120")
                elseif 
== and pc.count_item("1111")>=150
                pc
.give_item2("27992,1")
                
pc.give_item2("27993,1")
                
pc.give_item2("27994,1")
                
pc.remove_item("1111,150")
                elseif 
== and pc.count_item("1111")>= 250
                pc
.give_item2("27992,1")
                
pc.give_item2("27993,1")
                
pc.give_item2("27994,1")
                
pc.remove_item("1111,250")
                
notice_all(" "..pc.get_name().." hat soeben 250 Marken eingetauscht,")
                
notice_all("viel Spaß mit deiner Belohnung.")
                
end
                
else
                
say("Du hast nicht genug Marken")
            
end    
        end        
    state kill begin
            when npc
.is_pc() and npc.kill() begin and npc.is_pc() and npc.empire != pc.empire and npc.get_level >=40 then
                pc
.give_item("1111,1")
        
end
    end
end 
Ich hoffe ich habe nicht all zuviele end´s weggehaun >.<
03/12/2011 14:04 .ZiPPO#1652
Quote:
Originally Posted by Body aka. iOS Apple View Post
Hey Leute die schöne telequest hängt sich auf....
Ich weiß auch die stelle... Bei
PHP Code:
local guild_map_names = {} 
Dort habe ich eine map entfertn und jetzt bugt es irgendwie bitte helft mir :D
lg
PHP Code:
-- Teleporter
quest map_warp begin
    state start begin
        when 9012.chat
."Möchtest du reisen?"  begin
            say_title
("[COLOR r;0.1|g;1|b;0.1]Takashi-World Teleporter:[/COLOR]")
            
say(" ")
            
say("[COLOR r;1|g;0.1|b;0.1]Du möchtest neue Welten entdecken?[/COLOR]")
            
say("[COLOR r;1|g;0.1|b;0.1]Dafür musst du was bezahlen![/COLOR]")
            
say("[COLOR r;1|g;0.1|b;0.1]Ich bin jung und brauche dein Geld![/COLOR]")
            
say("[COLOR r;1|g;0.1|b;0.1]Möchtest du dennoch teleportiert werden?[/COLOR]")
            
say(" ")

            
local main_set select("Ja","Nein")
            if 
main_set == 2 then
                
return
            
end
            
            
if pc.get_level() <= 10 then
                say_title
("[COLOR r;0.1|g;1|b;0.1]Takashi-World  Teleporter:[/COLOR]")
                
say("[COLOR r;1|g;0.1|b;0.1]Hm… Mit deinem derzeitigen Level bist du noch[/COLOR]")
                
say("[COLOR r;1|g;0.1|b;0.1]zu schwach für die Reise durch Zeit und Raum.[/COLOR]")
                
say("[COLOR r;1|g;0.1|b;0.1]Komm wieder, wenn du höher als Level 10 bist.[/COLOR]")
                return
            
end

            local map 
pc.get_map_index()
            
local empire pc.get_empire()
            
local level pc.get_level()
            
local cost math.floor(level 5) * 1000

            
-- ?? ????
            if 
cost 1000 then
                cost 
1000
            end

            say_title
("[COLOR r;0.1|g;1|b;0.1]Takashi-World  Teleporter:[/COLOR]")
            
say("[COLOR r;1|g;0.1|b;0.1]Wohin möchtest du teleportiert werden?[/COLOR]")
            
say_reward(string.format("Das kostet dich %d Yang."cost))

            -- ?? ?? ???? ?? ?? (? ?? 
1,??)
            if 
map == or map == or map == 21 or map == 23 or map == 41 or map == 43 then

                local guild_map_names 
= {}

                
guild_map_name guild_map_names[empire]
                
local empire_castle={
                    
"Burgschlacht",
                    
"Burgschlacht",
                    
"Burgschlacht",
                }
                
empire_castle =empire_castle[empire]
                
local sub_set 0
                
if level 60 then -- 60?? : ?????, ???, ????, ???
                    
sub_set select(guild_map_name"Tal von Seungryong""Yongbi-Wüste""Berg Sohan"empire_castle,"Andere Gebiete")
                    if 
sub_set == 6 then -- ??
                        return
                    
end

                
else -- 61?? : ????, ???, ????, ????
                    
sub_set select(guild_map_name"Tal von Seungryong""Yongbi-Wüste""Berg Sohan"empire_castle"Andere Gebiete")
                    if 
sub_set == 6 then -- ??
                        
say_title("[COLOR r;0.1|g;1|b;0.1]Takashi-World  Teleporter:[/COLOR]")
                        
say("[COLOR r;1|g;0.1|b;0.1]Wohin möchtest du teleportiert werden?[/COLOR]")
                        
say_reward(string.format("Das kostet dich %d Yang."cost))
                        
sub_set select("Doyyumhwaji""Dämonenturm""Spinnendungeon""Lungsam""Roter Wald""Weiter""Abbrechen") + 5
                        
if sub_set == 12 then -- ??
                            return
                        
end                        
                                
if sub_set == 11 then -- ??
                                
say_title("[COLOR r;0.1|g;1|b;0.1]Takashi-World  Teleporter:[/COLOR]")
                                
say("[COLOR r;1|g;0.1|b;0.1]Wohin möchtest du teleportiert werden?[/COLOR]")
                                                    ---                                                   
l
                            say_reward
(string.format("Das kostet dich %d Yang."cost))
                            
sub_set select("Spinnendungeon 2","Land der Riesen""Weiter""Abbrechen" ) + 10
                            
if sub_set == 14 then -- ??
                                return
                            
end    
                            
if sub_set == 13 then -- ??
                                
say_title("[COLOR r;0.1|g;1|b;0.1]Takashi-World  Teleporter:[/COLOR]")
                                
say("[COLOR r;1|g;0.1|b;0.1]Wohin möchtest du teleportiert werden?[/COLOR]")
                                                    ---                                                   
l
                            say_reward
(string.format("Das kostet dich %d Yang."cost))
                            
sub_set select("Rotes Reich Map 1""Gelbes Reich Map 1""Blaues Reich Map 1""Abbrechen" ) + 12
                            
if sub_set == 16 then -- ??
                                return
                            
end
                                end
                            end
                        end
                    end

                
if pc.gold cost then
                    say
("[COLOR r;1|g;0.1|b;0.1]Du hast nicht genug Geld,[/COLOR]")
                    
say_title("[COLOR r;0.1|g;1|b;0.1]Takashi-World  Teleporter:[/COLOR]")
                    
say("[COLOR r;1|g;0.1|b;0.1]Ich würde dich auch kostenlos teleportieren,[/COLOR]")
                    
say("[COLOR r;1|g;0.1|b;0.1]aber ich habe eine große Familie. Um sie zu[/COLOR]")
                    
say("[COLOR r;1|g;0.1|b;0.1]ernähren, muss ich Geld verdienen.[/COLOR]")
                    
say_reward(string.format("Es kostet %d Yang."cost))
                    return
                
end

                pc
.changegold(-cost)

                
local warp = {
                    -- 
64 map_n_threeway
                    
{
                        { 
402100673900 },
                        { 
270400739900 },
                        { 
321300808000 },
                    },
                    -- 
63 metin2_map_n_desert_01
                    
{
                        { 
217800627200 },
                        { 
221900502700 },
                        { 
344000502500 },
                    },
                    -- 
61 map_n_snowm_01
                    
{
                        { 
434200290600 },
                        { 
375200174900 },
                        { 
491800173600 },
                    },
                    --
empire_castle
                    
{
                        {
975200133000},
                        {
977200185000},
                        {
923900183600},
                    
                    } ,
                    -- 
62 metin2_map_n_flame_01
                    
{
                        { 
599400756300 },
                        { 
597800622200 },
                        { 
730700689800 },
                    },
                    -- 
devil_tower
                    
{
                        { 
590500110500 },
                        { 
590500110500 },
                        { 
590500110500 },
                    },
                    -- 
104 metin2_map_spiderdungeon
                    
{
                        { 
60000496000 },
                        { 
60000496000 },
                        { 
60000496000 },
                    },
                    -- 
67 metin2_map_trent
                    
{
                        { 
2887005700 },
                        { 
2887005700 },
                        { 
2887005700 },
                    },
                    -- 
68 metin2_map_trent02
                    
{
                        { 
111990070800 },
                        { 
111990070800 },
                        { 
111990070800 },
                    },
                    -- 
metin2_map_spiderdungeon 2
                    
{
                        { 
705000465000 },
                        { 
705000465000 },
                        { 
705000465000 },
                    },
                    -- 
70 metin2_map_nusluck01
                    
{
                        { 
845100745900 },
                        { 
845100745900 },
                        { 
845100745900 },
                    },
                    -- 
Rotes_Reich_Map1
                    
{
                        { 
469300964200 },
                        { 
469300964200 },
                        { 
469300964200 },
                    },
                    -- 
Gelbes_Reich_Map1
                    
{
                        { 
55700157900 },
                        { 
55700157900 },
                        { 
55700157900 },
                    },
                    -- 
Blaues_Reich_Map1
                    
{
                        { 
969600278400 },
                        { 
969600278400 },
                        { 
969600278400 },
                    },
                    
                }
                
test_chat(warp[sub_set][empire][1]..warp[sub_set][empire][2])
                
say_title("[COLOR r;0.1|g;1|b;0.1]Takashi-World Teleporter:[/COLOR]")
                
say("[COLOR r;1|g;0.1|b;0.1]Achtung, ich teleportiere dich jetzt. Du wirst[/COLOR]")
                
say("[COLOR r;1|g;0.1|b;0.1]an einem gefährlichen Ort landen, also pass auf[/COLOR]")
                
say("[COLOR r;1|g;0.1|b;0.1]dich auf. Viel Glück![/COLOR]")
                
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
("[COLOR r;0.1|g;1|b;0.1]Takashi-World  Teleporter:[/COLOR]")
                        
say("[COLOR r;1|g;0.1|b;0.1]Ich würde dich auch umsonst teleportieren,[/COLOR]")
                        
say("[COLOR r;1|g;0.1|b;0.1]aber ich habe eine große Familie. Um sie zu[/COLOR]")
                        
say("[COLOR r;1|g;0.1|b;0.1]ernähren, muss ich Geld verdienen.[/COLOR]")
                        
say_reward(string.format("Es kostet %d Yang."cost))
                    else
                        if 
sub_set2 == 1 then
                            say_title
("[COLOR r;0.1|g;1|b;0.1]Takashi-World  Teleporter:[/COLOR]")
                            
say("[COLOR r;1|g;0.1|b;0.1]Ich teleportiere dich dorthin.[/COLOR]")
                            
wait()

                            if 
empire == 1 then
                                pc
.warp(474300,954800)
                            elseif 
empire == 2 then
                                pc
.warp(63800,166400)
                            elseif 
empire == 3 then
                                pc
.warp(959900,269200)
                            
end    
                        
elseif sub_set2 == 2 then
                            say_title
("[COLOR r;0.1|g;1|b;0.1]Takashi-World  Teleporter:[/COLOR]")
                            
say("[COLOR r;1|g;0.1|b;0.1]Ich teleportiere dich dorthin.[/COLOR]")

                            
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 
hilfeee >.<
kann mir jemand helfen ?
03/12/2011 14:30 LxR'EsoZiaL#1653
ich bin kein wirklicher Profi im thema Teleportquest.

Aber vergleiche mal das :
PHP Code:
local guild_map_names = {} 
und
PHP Code:
local map pc.get_map_index() 
03/12/2011 14:44 .ZiPPO#1654
naja ich wollte die map bzw den banner für die map und die koordis nur raus haben das ist es ja :D
03/12/2011 16:40 Jurop#1655
Kann mir jemand sagen was hier falsch gelaufen ist:

PHP Code:
quest pferd_beginning begin
    state start begin
        when login with pc
.level >= 2 begin
            set_state
(information)
        
end
    end

    state information begin
        when letter begin
            send_letter
("Hol dir dein Kampfgaul!")
        
end

        when info 
or button begin
            say_titel
("Hol dir dein Kampfgaul!")
     
say("Hallo Abenteurer!")
     
say("")
     
say("Du hast erfolgreich das 2. Level erreicht! Du bist nun stärker als zuvor und solltest dich um dein Pferd kümmern. ")
     
say("")
     
say("Töte 100 Wildhunde um ein Pferd Level 11 zu erhalten!")
     
say("")
     
say("Wir wünschen dir viel erfolg.")
            
say_reward("Töte 100 Wildhunde")
            
say("")
            
pc.setqf("state", )
            
q.set_counter("", )
        
end

        when 
.kill begin
            local count 
pc.getqf("state") - 1
            
if count <=  then
                pc
.setqf("state"count)
                
q.set_counter(""count)
            
end
            
if count == 0 then
                say_title
("Hol dir dein Kampfgaul!")
                
say("Du hast die Quest erfolgreich abgeschlossen!")
                
say("Du erhälst:")
                
say_reward("System.Windows.Forms.TextBox, Text:  !")
                
say_reward("Außerdem:")
                
say_reward("3000000 Yang")
                
say_reward("1000000 Erfahrung")
                
pc.change_money(3000000)
                
pc.give_exp2(1000000)
                
pc.give_item2(, )
                
clear_letter()
                
set_state(__COMPLETE__)

            
end
        end
    end

    state __COMPLETE__ begin
    end
end 
Irgendwie erscheit die Quest beim erreichen des 2. Levels nicht.

lG Jurop

ps.: Quest wurde mit dem QuestMaker von .best erstellt.
03/12/2011 16:48 .Delta#1656
probiers damit:
PHP Code:
quest pferd_beginning begin
    state start begin
        when login with pc
.get_level() >= 2 begin
            set_state
(information)
        
end
    end

    state information begin
        when letter begin
            send_letter
("Hol dir dein Kampfgaul!")
        
end

        when info 
or button begin
            say_title
("Hol dir dein Kampfgaul!")
     
say("Hallo Abenteurer!")
     
say("")
     
say("Du hast erfolgreich das 2. Level erreicht! Du bist nun stärker als zuvor und solltest dich um dein Pferd kümmern. ")
     
say("")
     
say("Töte 100 Wildhunde um ein Pferd Level 11 zu erhalten!")
     
say("")
     
say("Wir wünschen dir viel erfolg.")
            
say_reward("Töte 100 Wildhunde")
            
say("")
            
pc.setqf("state"0)
            
q.set_counter("Wildhunde"100)
        
end

        when 
.kill begin
            local count 
pc.getqf("state") + 1
            
if count 100  then
                pc
.setqf("state"count)
                
q.set_counter("Wildhunde"100-count)
            
end
            
if count == 100 then
                say_title
("Hol dir dein Kampfgaul!")
                
say("Du hast die Quest erfolgreich abgeschlossen!")
                
say("Du erhälst:")
                
say_reward("System.Windows.Forms.TextBox, Text:  !")
                
say_reward("Außerdem:")
                
say_reward("3000000 Yang")
                
say_reward("1000000 Erfahrung")
                
pc.change_money(3000000)
                
pc.give_exp2(1000000)
                
horse.set_level(11)
                
clear_letter()
                
set_state(__COMPLETE__)

            
end
        end
    end

    state __COMPLETE__ begin
    end
end 
Und benutze keinen Questmaker ;)
die haben alle ein paar Macken
03/12/2011 18:09 Jurop#1657
Quote:
Originally Posted by Delta619 View Post
probiers damit:
PHP Code:
quest pferd_beginning begin
    state start begin
        when login with pc
.get_level() >= 2 begin
            set_state
(information)
        
end
    end

    state information begin
        when letter begin
            send_letter
("Hol dir dein Kampfgaul!")
        
end

        when info 
or button begin
            say_title
("Hol dir dein Kampfgaul!")
     
say("Hallo Abenteurer!")
     
say("")
     
say("Du hast erfolgreich das 2. Level erreicht! Du bist nun stärker als zuvor und solltest dich um dein Pferd kümmern. ")
     
say("")
     
say("Töte 100 Wildhunde um ein Pferd Level 11 zu erhalten!")
     
say("")
     
say("Wir wünschen dir viel erfolg.")
            
say_reward("Töte 100 Wildhunde")
            
say("")
            
pc.setqf("state"0)
            
q.set_counter("Wildhunde"100)
        
end

        when 
.kill begin
            local count 
pc.getqf("state") + 1
            
if count 100  then
                pc
.setqf("state"count)
                
q.set_counter("Wildhunde"100-count)
            
end
            
if count == 100 then
                say_title
("Hol dir dein Kampfgaul!")
                
say("Du hast die Quest erfolgreich abgeschlossen!")
                
say("Du erhälst:")
                
say_reward("System.Windows.Forms.TextBox, Text:  !")
                
say_reward("Außerdem:")
                
say_reward("3000000 Yang")
                
say_reward("1000000 Erfahrung")
                
pc.change_money(3000000)
                
pc.give_exp2(1000000)
                
horse.set_level(11)
                
clear_letter()
                
set_state(__COMPLETE__)

            
end
        end
    end

    state __COMPLETE__ begin
    end
end 
Und benutze keinen Questmaker ;)
die haben alle ein paar Macken
Danke dir für deine Hilfe!

Ich habe jetzt einige Zeit im VPC rumgespielt und vermute das ein (mir unbekannter Fehler) in der Zeile 28 liegt. Begründung, VPC sagt:

pferd_beginning.quest :28:Abort trap (core dumped)

lG Jurop
03/12/2011 18:13 .Delta#1658
probier so :
PHP Code:
quest pferd_beginning begin
    state start begin
        when login with pc
.get_level() >= 2 begin
            set_state
(information)
        
end
    end

    state information begin
        when letter begin
            send_letter
("Hol dir dein Kampfgaul!")
        
end

        when info 
or button begin
            say_title
("Hol dir dein Kampfgaul!")
     
say("Hallo Abenteurer!")
     
say("")
     
say("Du hast erfolgreich das 2. Level erreicht! Du bist nun stärker als zuvor und solltest dich um dein Pferd kümmern. ")
     
say("")
     
say("Töte 100 Wildhunde um ein Pferd Level 11 zu erhalten!")
     
say("")
     
say("Wir wünschen dir viel erfolg.")
            
say_reward("Töte 100 Wildhunde")
            
say("")
            
pc.setqf("state"0)
            
q.set_counter("Wildhunde"100)
        
end

        when 101.kill begin
            local count 
pc.getqf("state") + 1
            
if count 100  then
                pc
.setqf("state"count)
                
q.set_counter("Wildhunde"100-count)
            
end
            
if count == 100 then
                say_title
("Hol dir dein Kampfgaul!")
                
say("Du hast die Quest erfolgreich abgeschlossen!")
                
say("Du erhälst:")
                
say_reward("System.Windows.Forms.TextBox, Text:  !")
                
say_reward("Außerdem:")
                
say_reward("3000000 Yang")
                
say_reward("1000000 Erfahrung")
                
pc.change_money(3000000)
                
pc.give_exp2(1000000)
                
horse.set_level(11)
                
clear_letter()
                
set_state(__COMPLETE__)

            
end
        end
    end

    state __COMPLETE__ begin
    end
end 
sollte es nicht funktionieren, dann schreibe bitte die komplette Fehlermeldung hier rein.
Also auch das, was in der Zeile über pferd_beginning.quest :28:Abort trap (core dumped) steht
03/12/2011 19:09 Jurop#1659
Quote:
Originally Posted by Delta619 View Post
probier so :
PHP Code:
quest pferd_beginning begin
    state start begin
        when login with pc
.get_level() >= 2 begin
            set_state
(information)
        
end
    end

    state information begin
        when letter begin
            send_letter
("Hol dir dein Kampfgaul!")
        
end

        when info 
or button begin
            say_title
("Hol dir dein Kampfgaul!")
     
say("Hallo Abenteurer!")
     
say("")
     
say("Du hast erfolgreich das 2. Level erreicht! Du bist nun stärker als zuvor und solltest dich um dein Pferd kümmern. ")
     
say("")
     
say("Töte 100 Wildhunde um ein Pferd Level 11 zu erhalten!")
     
say("")
     
say("Wir wünschen dir viel erfolg.")
            
say_reward("Töte 100 Wildhunde")
            
say("")
            
pc.setqf("state"0)
            
q.set_counter("Wildhunde"100)
        
end

        when 101.kill begin
            local count 
pc.getqf("state") + 1
            
if count 100  then
                pc
.setqf("state"count)
                
q.set_counter("Wildhunde"100-count)
            
end
            
if count == 100 then
                say_title
("Hol dir dein Kampfgaul!")
                
say("Du hast die Quest erfolgreich abgeschlossen!")
                
say("Du erhälst:")
                
say_reward("System.Windows.Forms.TextBox, Text:  !")
                
say_reward("Außerdem:")
                
say_reward("3000000 Yang")
                
say_reward("1000000 Erfahrung")
                
pc.change_money(3000000)
                
pc.give_exp2(1000000)
                
horse.set_level(11)
                
clear_letter()
                
set_state(__COMPLETE__)

            
end
        end
    end

    state __COMPLETE__ begin
    end
end 
sollte es nicht funktionieren, dann schreibe bitte die komplette Fehlermeldung hier rein.
Also auch das, was in der Zeile über pferd_beginning.quest :28:Abort trap (core dumped) steht
Wunderbar, die Quest klappt endlich. Auch wenn die Quest erst nach einem Relog aufpopt.
Kann mir eventuell jemand sagen warum die "main_quest_lv1.gotoinfomation"-Quest nach jedem Reboot resettet wird?

Nochmal ein Danke an Delta619!
lG Jurop
03/12/2011 19:15 .Delta#1660
Quote:
Originally Posted by Jurop View Post
Wunderbar, die Quest klappt endlich. Auch wenn die Quest erst nach einem Relog aufpopt.
Kann mir eventuell jemand sagen warum die "main_quest_lv1.gotoinfomation"-Quest nach jedem Reboot resettet wird?

Nochmal ein Danke an Delta619!
lG Jurop
hab ich übersehen sorry.
Schreibe statt
PHP Code:
when login with pc.get_level() >= 2 begin 
das hin
PHP Code:
when login or levelup with pc.get_level() >= 2 begin 
dann sollte das funktionieren.

Zu deiner 2. Frage:
mache lieber eine eigene Quest und änder nichts am Object Ordner ;)
Der Object Ordner wird nach jedem ausführen der make.sh aktualisiert, und solange du nichts in der Quest neu einfügst wird das dann dementsprechend immer wieder überschrieben.
03/13/2011 01:46 Jurop#1661
So,

zunächst eine schöne gute Nacht. ;) Melden tue ich mich mal wieder wegen einem Fehler in meiner Quest:

PHP Code:
-- Teleporter
quest map_warp begin
    state start begin
        when 9012.chat
."Möchtest du reisen?"  begin
            say_title
("Teleporter:")
            
say("Dies ist eine faszinierende Gegend. Aber")
            
say("passiert hier denn auch mal etwas")
            
say("Außergewöhnliches? Eher wohl nicht. In anderen")
            
say("Teilen des Landes sieht es mitunter ganz anders.")
            
say("aus! Es gibt daher sicher einen intressanten")
            
say("Ort, an den ich dich teleportieren könnte. Da")
            
say("jedoch die Kräfte des Bösen wieder stärker")
            
say("geworden sind, wurden Raum und Zeit ins Chaos")
            
say("gestürzt. Dadurch kann es passieren, dass deine")
            
say("Rückkehr nicht immer augenblicklich funktioniert.")
            
say("Möchtest du dennoch teleportiert werden?")

            
local main_set select("Ja","Nein")
            if 
main_set == 2 then
                
return
            
end
            
            
if pc.get_level() <= 10 then
                say_title
("Teleporter:")
                
say("Hm… Mit deinem derzeitigen Level bist du noch")
                
say("zu schwach für die Reise durch Zeit und Raum.")
                
say("Komm wieder, wenn du höher als Level 10 bist.")
                return
            
end

            local map 
pc.get_map_index()
            
local empire pc.get_empire()
            
local level pc.get_level()
            
local cost math.floor(level 5) * 1000

            
-- ?? ????
            if 
cost 1000 then
                cost 
1000
            end

            say_title
("Teleporter:")
            
say("Wohin möchtest du teleportiert werden?")
            
say_reward(string.format("Das kostet dich %d Yang."cost))

            -- ?? ?? ???? ?? ?? (? ?? 
1,??)
            if 
map == or map == or map == 21 or map == 23 or map == 41 or map == 43 then

                local guild_map_names 
= {
                    
"Gildenzone",
                    
"Gildenzone",
                    
"Gildenzone",
                }

                
guild_map_name guild_map_names[empire]
                
local empire_castle={
                    
"Burgschlacht",
                    
"Burgschlacht",
                    
"Burgschlacht",
                }
                
empire_castle =empire_castle[empire]
                
local sub_set 0
                
if level 60 then -- 60?? : ?????, ???, ????, ???
                    
sub_set select(guild_map_name"Tal von Seungryong""Yongbi-Wüste""Berg Sohan"empire_castle,"Andere Gebiete")
                    if 
sub_set == 6 then -- ??
                        return
                    
end

                
else -- 61?? : ????, ???, ????, ????
                    
sub_set select(guild_map_name"Tal von Seungryong""Yongbi-Wüste""Berg Sohan",  empire_castle,"Andere Gebiete")
                    if 
sub_set == 6 then -- ??
                        
say_title("Teleporter:")
                        
say("Wohin möchtest du teleportiert werden?")
                        
say_reward(string.format("Das kostet dich %d Yang."cost))
                        
sub_set select("Doyyumhwaji""Dämonenturm""Farm-Map" "Zurück""Abbrechen") + 5
                        
if sub_set == 9 then -- ??
                            return
                        
end
                        
if sub_set == 8 then -- ??
                            
say_title("Teleporter:")
                            
say("Wohin möchtest du teleportiert werden?")
                                                 ---                                                   
l
                            say_reward
(string.format("Das kostet dich %d Yang."cost))
                            
sub_set select(guild_map_name"Tal von Seungryong""Yongbi-Wüste""Berg Sohan",  empire_castle,"Andere Gebiete")
                            if 
sub_set == 6 then -- ??
                                
say_title("Teleporter:")
                                
say("Wohin möchtest du teleportiert werden?")
                                
say_reward(string.format("Das kostet dich %d Yang."cost))
                                
sub_set select("Doyyumhwaji""Dämonenturm""Abbrechen") + 5
                                
if sub_set == 8 then -- ??
                                    return
                                
end
                            end
                        end
                    end
                end

                
if pc.gold cost then
                    say
("Du hast nicht genug Geld,")
                    
say_title("Teleporter:")
                    
say("Ich würde dich auch kostenlos teleportieren,")
                    
say("aber ich habe eine große Familie. 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 = {
                    -- 
guild_map
                    
{
                        { 
1285001000 },
                        { 
1795001000 },
                        { 
27180013000 },
                    },
                    -- 
64 map_n_threeway
                    
{
                        { 
402100673900 },
                        { 
270400739900 },
                        { 
321300808000 },
                    },
                    -- 
63 metin2_map_n_desert_01
                    
{
                        { 
217800627200 },
                        { 
221900502700 },
                        { 
344000502500 },
                    },
                    -- 
61 map_n_snowm_01
                    
{
                        { 
434200290600 },
                        { 
375200174900 },
                        { 
491800173600 },
                    },
                    {--
empire_castle
                        
{975200133000},
                        {
977200185000},
                        {
923900183600},
                    
                    } ,
                    -- 
62 metin2_map_n_flame_01
                    
{
                        { 
599400756300 },
                        { 
597800622200 },
                        { 
730700689800 },
                    },
                    -- 
devil_tower
                    
{
                        { 
590500110500 },
                        { 
590500110500 },
                        { 
590500110500 },
                    },
                    -- 
farmmap
                        
383000640000 }
                        { 
383000640000 }
                        { 
383000640000 }
                    }
                            }
                
test_chat(warp[sub_set][empire][1]..warp[sub_set][empire][2])
                
say_title("Teleporter:")
                
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
("Teleporter:")
                        
say("Ich würde dich auch umsonst teleportieren,")
                        
say("aber ich habe eine große Familie. 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
("Teleporter:")
                            
say("Ich teleportiere dich dorthin.")
                            
wait()

                            if 
empire == 1 then
                                pc
.warp(474300,954800)
                            elseif 
empire == 2 then
                                pc
.warp(63800,166400)
                            elseif 
empire == 3 then
                                pc
.warp(959900,269200)
                            
end    
                        
elseif sub_set2 == 2 then
                            say_title
("Teleporter:")
                            
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 
Schlau wie ich bin, wollte ich ein weiteres Feld in die Menu-Auswahl des Teleporters einfügen. Nun ist nicht mal mehr der Teleporter anklickbar. *.*

Danke für den bestimmt (wiederholt) schnellen Support!

lG Jurop
03/13/2011 10:03 .Delta#1662
probiers so, hab eine { hinzugefügt.
PHP Code:
-- Teleporter
quest map_warp begin
    state start begin
        when 9012.chat
."Möchtest du reisen?"  begin
            say_title
("Teleporter:")
            
say("Dies ist eine faszinierende Gegend. Aber")
            
say("passiert hier denn auch mal etwas")
            
say("Außergewöhnliches? Eher wohl nicht. In anderen")
            
say("Teilen des Landes sieht es mitunter ganz anders.")
            
say("aus! Es gibt daher sicher einen intressanten")
            
say("Ort, an den ich dich teleportieren könnte. Da")
            
say("jedoch die Kräfte des Bösen wieder stärker")
            
say("geworden sind, wurden Raum und Zeit ins Chaos")
            
say("gestürzt. Dadurch kann es passieren, dass deine")
            
say("Rückkehr nicht immer augenblicklich funktioniert.")
            
say("Möchtest du dennoch teleportiert werden?")

            
local main_set select("Ja","Nein")
            if 
main_set == 2 then
                
return
            
end
            
            
if pc.get_level() <= 10 then
                say_title
("Teleporter:")
                
say("Hm… Mit deinem derzeitigen Level bist du noch")
                
say("zu schwach für die Reise durch Zeit und Raum.")
                
say("Komm wieder, wenn du höher als Level 10 bist.")
                return
            
end

            local map 
pc.get_map_index()
            
local empire pc.get_empire()
            
local level pc.get_level()
            
local cost math.floor(level 5) * 1000

            
-- ?? ????
            if 
cost 1000 then
                cost 
1000
            end

            say_title
("Teleporter:")
            
say("Wohin möchtest du teleportiert werden?")
            
say_reward(string.format("Das kostet dich %d Yang."cost))

            -- ?? ?? ???? ?? ?? (? ?? 
1,??)
            if 
map == or map == or map == 21 or map == 23 or map == 41 or map == 43 then

                local guild_map_names 
= {
                    
"Gildenzone",
                    
"Gildenzone",
                    
"Gildenzone",
                }

                
guild_map_name guild_map_names[empire]
                
local empire_castle={
                    
"Burgschlacht",
                    
"Burgschlacht",
                    
"Burgschlacht",
                }
                
empire_castle =empire_castle[empire]
                
local sub_set 0
                
if level 60 then -- 60?? : ?????, ???, ????, ???
                    
sub_set select(guild_map_name"Tal von Seungryong""Yongbi-Wüste""Berg Sohan"empire_castle,"Andere Gebiete")
                    if 
sub_set == 6 then -- ??
                        return
                    
end

                
else -- 61?? : ????, ???, ????, ????
                    
sub_set select(guild_map_name"Tal von Seungryong""Yongbi-Wüste""Berg Sohan",  empire_castle,"Andere Gebiete")
                    if 
sub_set == 6 then -- ??
                        
say_title("Teleporter:")
                        
say("Wohin möchtest du teleportiert werden?")
                        
say_reward(string.format("Das kostet dich %d Yang."cost))
                        
sub_set select("Doyyumhwaji""Dämonenturm""Farm-Map" "Zurück""Abbrechen") + 5
                        
if sub_set == 9 then -- ??
                            return
                        
end
                        
if sub_set == 8 then -- ??
                            
say_title("Teleporter:")
                            
say("Wohin möchtest du teleportiert werden?")
                                                 ---                                                   
l
                            say_reward
(string.format("Das kostet dich %d Yang."cost))
                            
sub_set select(guild_map_name"Tal von Seungryong""Yongbi-Wüste""Berg Sohan",  empire_castle,"Andere Gebiete")
                            if 
sub_set == 6 then -- ??
                                
say_title("Teleporter:")
                                
say("Wohin möchtest du teleportiert werden?")
                                
say_reward(string.format("Das kostet dich %d Yang."cost))
                                
sub_set select("Doyyumhwaji""Dämonenturm""Abbrechen") + 5
                                
if sub_set == 8 then -- ??
                                    return
                                
end
                            end
                        end
                    end
                end

                
if pc.gold cost then
                    say
("Du hast nicht genug Geld,")
                    
say_title("Teleporter:")
                    
say("Ich würde dich auch kostenlos teleportieren,")
                    
say("aber ich habe eine große Familie. 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 = {
                    -- 
guild_map
                    
{
                        { 
1285001000 },
                        { 
1795001000 },
                        { 
27180013000 },
                    },
                    -- 
64 map_n_threeway
                    
{
                        { 
402100673900 },
                        { 
270400739900 },
                        { 
321300808000 },
                    },
                    -- 
63 metin2_map_n_desert_01
                    
{
                        { 
217800627200 },
                        { 
221900502700 },
                        { 
344000502500 },
                    },
                    -- 
61 map_n_snowm_01
                    
{
                        { 
434200290600 },
                        { 
375200174900 },
                        { 
491800173600 },
                    },
                    {--
empire_castle
                        
{975200133000},
                        {
977200185000},
                        {
923900183600},
                    
                    } ,
                    -- 
62 metin2_map_n_flame_01
                    
{
                        { 
599400756300 },
                        { 
597800622200 },
                        { 
730700689800 },
                    },
                    -- 
devil_tower
                    
{
                        { 
590500110500 },
                        { 
590500110500 },
                        { 
590500110500 },
                    },
                    -- 
farmmap
                    
{
                        { 
383000640000 }
                        { 
383000640000 }
                        { 
383000640000 }
                    }
                            }
                
test_chat(warp[sub_set][empire][1]..warp[sub_set][empire][2])
                
say_title("Teleporter:")
                
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
("Teleporter:")
                        
say("Ich würde dich auch umsonst teleportieren,")
                        
say("aber ich habe eine große Familie. 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
("Teleporter:")
                            
say("Ich teleportiere dich dorthin.")
                            
wait()

                            if 
empire == 1 then
                                pc
.warp(474300,954800)
                            elseif 
empire == 2 then
                                pc
.warp(63800,166400)
                            elseif 
empire == 3 then
                                pc
.warp(959900,269200)
                            
end    
                        
elseif sub_set2 == 2 then
                            say_title
("Teleporter:")
                            
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 
03/13/2011 11:02 .iXream.#1663
Quote:
quest login begin
state start begin
when login begin
comment("n Willkommen auf xxx!")
comment("n Die Homepage befindet sich noch in Arbeit )
comment("n Das Forum ebenfalls.")
comment("n Das Team:")
comment("n [xx]xx [xx]xx")
comment("n [xx]xx [xx]xx")
end
end
end
Das soll Jeder Spieler sehen als ob das ein GM Schreiben würde.Er is kein GM und hat keine Rechte soll aber das lesen
03/13/2011 11:05 .Delta#1664
mach das so:
PHP Code:
quest login begin
    state start begin
        when login begin
            chat
(" Willkommen auf xxx!")
            
chat(" Die Homepage befindet sich noch in Arbeit")
            
chat(" Das Forum ebenfalls.")
            
chat(" Das Team:")
            
chat(" [xx]xx [xx]xx")
            
chat(" [xx]xx [xx]xx")
        
end
    end
end 
steht allerdings nur im Chat unten und nicht in der Ankündigungszeile.
03/13/2011 12:42 Geister-Fliege#1665
PHP Code:
----------------------------------------------------
--
Alkohol
----------------------------------------------------
quest Alkohol  begin
    state start begin
        when login 
or levelup with pc.get_level() >=100  begin
            set_state
(information)
        
end    
    end

    state information begin
        when letter begin
            local v 
find_npc_by_vnum(20041)
            if 
!= 0 then
                target
.vid("__TARGET__"v"Quest")
            
end
            send_letter
("Alkohol")
        
end

        when button 
or info begin
            say_title
("Alkohol")
            
say("")
            
say("Begebt euch zum Betrunkenen Bürger")
            
say("Er braucht dringend eure Hilfe.")
            
say("Er ist jetzt schon 5 Wochen clean,")
            
say("kann es aber nichtmehr aushalten.")
            
say("Er braucht einfach den Alk")
            
say("......")
            
say("")
        
end

        when __TARGET__
.target.click or
            
20041.chat."Quest" begin
            target
.delete("__TARGET__")
            
say("Betrunkener Bürger:")
            --- 
            
say("Könnt ihr mir helfen ?")
            
say("Ich benötige 10 Roter Stab")
            
say("um meinen Alkohol fertig zu stellen.")
            
say("Ihr könnt ihn von den Wildhunden")
            
say("droppen, es wird aber sicherlich")
            
say("nicht einfach werden.")
            
say("")    
            
set_state(go_to_disciple)
            
pc.setqf("collect_count",0)
            
pc.setqf("drink_drug",0
        
end
    end

    state go_to_disciple begin
        when letter begin
            send_letter
("Auftrag von Betrunkener Bürger")

        
end
        when button 
or info begin
            say_title
("Quest")
            ---
            
say("")
            
say("Betrunkener Bürger gab euch den Auftrag")
            
say("10 Rote Stäbe zu sammeln!")
            
say("Das Item bekommt ihr von Wildhund.")
            
say("Viel Glueck!")
            
say("")
            
say_item_vnum(70029)
            
say_reward("   Du hast".." "..pc.getqf("collect_count").." bis jetzt gesammelt!")
            
say("")
        
end

        when 71035.
use begin
            
if pc.getqf("drink_drug")==1 then
                say
("")
                
say("Bessere Droppchance!")
                
say("")

                return
            
end
            
if pc.count_item(70029)==0 then
                say
("")
                
say("Du hast keine!")
                
say("Lauf los und besorg mir welche!")
                
say("")
                return
            
end
            item
.remove()    
            
pc.setqf("drink_drug",1)
        
end


        when 101.kill begin
            
if pc.count_item(70029)<10-pc.getqf("collect_count"then
                pc
.give_item2(700291)
            
end
        end

        when 20041.chat
."Quest" with pc.count_item(70029) >0   begin
                say
("Einen Moment!")
                ---   
                
say("Ich werde das Item")
                
say("schnell mal ueberpruefen.")
                
say("Hoffentlich klappt alles!")
                
say("")
                
pc.remove_item(700291)
                
wait()

                
local pass_percent
                
if pc.getqf("drink_drug")==0 then
                    pass_percent
=25040
                
else        
                    
pass_percent=25040
                end

                local s
number(1,100)
            if 
s<= pass_percent  then
               
if pc.getqf("collect_count")< 9 then     --5*Ó¥H¤U 
                        local index 
=pc.getqf("collect_count")+
                        pc
.setqf("collect_count",index)  
                        
say("Betrunkener Bürger:")
                        
say("Perfekt! Das Item ist in Ordnung")
                        
say("Du hast bis jetzt ".." "..10-pc.getqf("collect_count").. " abgegeben!")
                        
say("Bring mir die restlichen!")
                        
say("")
                        
pc.setqf("drink_drug",0)    
                        return
                    
end
                    say
("Betrunkener Bürger:")
                    
say("Yuhu! Du hast mir")
                    
say("alles gebracht!")
                    
say("Dafür werde ich dich wie versprochen")
                    
say("belohnen!")
                    
say("")
                    
say_reward("Du bekommst ein Segensschriftrolle!")
                    
say_reward("Du bekommst ein Bündel!")
                    
say_reward("Du bekommst 10.000.000 Yang!")
                    
say_reward("Du bekommst 10.000.000 Erfahrung!")
                    
pc.setqf("collect_count",0)
                    
pc.setqf("drink_drug",0)
                    
clear_letter()
                    
set_state(__complete)

                    
pc.give_item2(25040)
                    
pc.give_item2(50200)
                    
pc.change_money(10000000)
                    
pc.give_exp2(10000000)
                    
set_quest_state("levelup","run")


                    return
                else                                
                
say("Betrunkener Bürger:")
                
say("Dieses Item ist von schlechter Qualität!")
                
say("Es kann nicht verwendet werden.")
                
say("Hole mir ein neues!")
                
say("")
                
pc.setqf("drink_drug",0)    
                return
                
end
    end
end


        
    state __complete begin
    end
end 
Hab mich mal aus Spaß rangesetzt und wollte einfach wissen ob die funktionieren würde oder ob da irgendein Fehler ist.
Danke für die Antwort :P