[SERVICE] Die Questkontrolle

03/11/2012 14:08 Mijago#5041
Aus der questlib.lua:
PHP Code:
item_index_table = {
    [
'vnum']        = item.get_vnum,
    [
'name']        = item.get_name,
    [
'size']        = item.get_size,
    [
'count']        = item.get_count,
    [
'type']        = item.get_type,
    [
'sub_type']    = item.get_sub_type,
    [
'refine_vnum']    = item.get_refine_vnum,
    [
'level']        = item.get_level,

Vll hilft dir der Subtype :)

(also item.get_sub_type() oder item_index_table["sub_type"])
03/11/2012 14:46 .SonGoku™#5042
quest drachenraum begin

state start begin
when login or levelup with pc.level >0 begin
set_state(zone_enter)
end
end

state zone_enter begin
when 20014.chat."Ich will in die LvL-Map !" begin
say("")
say(""..mob_name(20014).."")
say("Du benötigst einen Kristall")
say("um in die LvL-Map zu gelangen!")
say("Diesen bekommt man von den Monstern inder Unterwelt!")
say("Gehe zum Teleporter er bring dich dort hin!")
say("Mach dich auf alles gefasst es ist nicht leich um an den Kristall zu gelangen!")
wait()
say("")
say("")
say("In den LvL-Map triffst du auf gefährliche")
say("Monster! Rüsste Dich gut!")
say("es sind die stärksten Mobs in ganz Metin2! Willst du immernoch")
say("in die LvL-Map?")
say("")
say_reward("Hast du einen Kristall?")
wait()
say("")
say("")

if pc.get_level() <= 95 then
say_title("Spielkind")
say("Haha dich Wicht werde ich nicht in die")
say("LvL-Map lassen!! Lvl erstmal auf Lv 95")
say("dann reden wir weiter.")
say("")
say_reward("Du benötigst mindestens Lv 95 um in die")
say_reward("LvL-Map zu gelangen!")
return
end

if pc.count_item(30203)>0 then
say("")
say(""..mob_name(20014).."")
say("Ich bringe dich nun in die LvL-Map")
say("")
pc.remove_item(30203)

elseif pc.count_item(30203) >0 then
say("")
say(""..mob_name(20014).."")
say("Du besitzt einen Passierschein! !")
say("")

else
say("")
say(""..mob_name(20014).."")
say("Du bist nicht im Besitz eines Passierscheins!")
say("Ohne einen kannst du den LvL-Map nicht erreichen.")
return
end

say("Du wirst nun teleportiert!")
say("Aber sei vorsichtig!")
wait()
notice_all("Der Spieler ".. pc.get_name() .." Versucht sich in den");
notice_all("LvL-Map!");
pc.remove_item(30203, 1)
pc.warp(307200,1203200)
end

end

end





Wo ist fehler?
03/11/2012 15:06 Kriegergeist^^#5043
Habe leider immer noch ein problem
Hier mal die quest:
alle notice_in_map gehen nicht, außer die bei den kill ausgelöst wird.
Ich weiß echt nicht mehr weiter :(
Wär nett wen ihr mir helfen könntet

MfG
Kriegergeist^^
03/11/2012 16:13 collado#5044
@Zysios
PHP Code:

quest zysios begin
    state start begin
        when login 
or levelup with pc.level >0 begin
            set_state
(zone_enter)
        
end
    end
    
    state zone_enter begin
        when 20014.chat
."Ich will in die LvL-Map!" begin
        say
("")
        
say(""..mob_name(20014).."")
        
say("Du benötigst einen Kristall")
        
say("um in die LvL-Map zu gelangen!")
        
say("Diesen bekommt man von den Monstern inder Unterwelt!")
        
say("Gehe zum Teleporter er bring dich dort hin!")
        
say("Mach dich auf alles gefasst es ist nicht leich um an den Kristall zu gelangen!")
        
wait()
        
say("")
        
say("")
        
say("In den LvL-Map triffst du auf gefährliche")
        
say("Monster! Rüsste Dich gut!")
        
say("es sind die stärksten Mobs in ganz Metin2! Willst du immernoch")
        
say("in die LvL-Map?")
        
say("")
        
say_reward("Hast du einen Kristall?")
        
wait()
        
say("")
        
say("")
        
        if 
pc.get_level() <= 95 then
            say_title
("Spielkind")
            
say("Haha dich Wicht werde ich nicht in die")
            
say("LvL-Map lassen!! Lvl erstmal auf Lv 95")
            
say("dann reden wir weiter.")
            
say("")
            
say_reward("Du benötigst mindestens Lv 95 um in die")
            
say_reward("LvL-Map zu gelangen!")
            return
        
end
        
        
if pc.count_item(30203)>0 then
            say
("")
            
say(""..mob_name(20014).."")
            
say("Ich bringe dich nun in die LvL-Map")
            
say("")
            
pc.remove_item(30203)
        elseif 
pc.count_item(30203) == 0 then
            say
("")
            
say(""..mob_name(20014).."")
            
say("Du besitzt einen Passierschein!")
            
say("")
            
        else
            
say("")
            
say(""..mob_name(20014).."")
            
say("Du bist nicht im Besitz eines Passierscheins!")
            
say("Ohne einen kannst du den LvL-Map nicht erreichen.")
            return
            
end
            
            say
("Du wirst nun teleportiert!")
            
say("Aber sei vorsichtig!")
            
wait()
            
notice_all("Der Spieler ".. pc.get_name() .." Versucht sich in den")
            
notice_all("LvL-Map!")
            
pc.remove_item(302031)
            
pc.warp(307200,1203200)    
        
end
    end
end 

@Tihurina

PHP Code:
quest give_basic_weapon begin 
    state start begin 
        when login begin 
            local item_vnum 
19 
            local item_vnum2 
11209 
            
if pc.get_job() == 1 then 
                item_vnum 
1009 
                item_vnum2 
11409 
            
elseif pc.get_job() == 2 then                 
                item_vnum2 
11609 
            
elseif pc.get_job() == 3 then 
                item_vnum 
7009 
                item_vnum2 
11809 
            end 
            pc
.give_item2(item_vnum
            
pc.give_item2(item_vnum2
            
pc.give_item2(270031000
            
pc.give_item2(27006400
            
pc.give_item2(72702
            
pc.give_item2(7105010
            
pc.give_item2(70038400
            
pc.give_item2(14009
            
pc.give_item2(16009
            
pc.give_item2(17009
            
set_state(weiter
        
end 
    end     
    state weiter begin 
        when letter begin 
            send_letter
("Willkommen auf Server!"
        
end 
        when button 
or info begin 
            say_title
("Willkommen auf Server, "..pc.get_name()..""
            
say("Willkommen junger Rekrut, du hast die Aufnahmeprüfung"
            
say("bestanden. Das heißt aber nicht das du hier nun Eier"
            
say("schaukeln darfst, sondern jetzt geht es erst richtig"
            
say("los! Wir haben dir eine Ausrüstung, ein paar Tränke,"
            
say("Windschuhe und Tapferkeitsumhänge besorgt."
            
say("Bist du gut genug dich zu Beweisen und einer der"
            
say("besten zu werden? Wir werden sehen!"
            
set_state(ende
        
end 
    end 
    state ende begin 
    end 
end 
03/11/2012 17:38 Lеlouch#5045
Quote:
Originally Posted by derkiler View Post
Technisch nicht möglich.

Bzw. funktioniert nur wenn paar mins davor ein anderer Npc angeklickt wurde.
Würde sonst so ausschauen »

PHP Code:
quest test begin
    state start begin
        when VNUM
.use begin
               npc 
open_shop13 )
        
setskin(NOWINDOW)
        
end
    end
end 
Ich hoffe ich konnte dir weiterhelfen.
Mfg derkiler
Geht weder wenn ich davor ein NPC geöffnet habe,
noch wenn ich kein NPC davor öffne -.-
Wie könnte man es noch amchen, ich will einfach, dass man
die Items die im Inventar sind verkaufbar/verkaufen kann.
Denn man kann die nicht rnuterschmeißen (Schutz gegen Downer)
Wie kann ich es sonst klären?
03/11/2012 18:04 warrockplayer4#5046
Hey,

ich möchte auf den Rüssihändler mehrere Läden machen aber wenn ich ihn anklick kommt da nix

PHP Code:
quest shops begin
state start begin
when 9002.chat
."Sura Rüssis" begin
say_title
("Rüssi Händler:")
say("")
say("Möchtest du Sura Rüssis ansehen?")
local s select("Ja""Nein")

if 
== 1 then
npc
.open_shop(20)
else
return
end
end

when 9002.chat
."Krieger Rüssis" begin
say_title
("Rüssi Händler:")
say("")
say("Möchtest du Krieger Rüssis ansehen?")
local s select("Ja""Nein")

if 
== 1 then
npc
.open_shop(21)
else
return
end
end

when 9002.chat
."Ninja Rüssis" begin
say_title
("Rüssi Händler:")
say("")
say("Möchtest du Ninja Rüssis ansehen?")
local s select("Ja""Nein")

if 
== 1 then
npc
.open_shop(22)
else
return
end
end

when 9002.chat
."Schami Rüssis" begin
say_title
("Rüssi Händler:")
say("")
say("Möchtest du Schami Rüssis ansehen?")
local s select("Ja""Nein")

if 
== 1 then
npc
.open_shop(23)
else
return
end
end

when 9002.chat
."Juwelier" begin
say_title
("Rüssi Händler:")
say("")
say("Möchtest du zum Juwelier?")
local s select("Ja""Nein")

if 
== 1 then
say_title
("Juwelier:")
say("")
say("Welchen Laden willst du ansehen?")
local s select("Schilder","Schuhe","Schmuck")
if 
== 1 then
npc
.open_shop(24)
if 
== 2 then
npc
.open_shop(25)
if 
== 3 then
npc
.open_shop(26)
else
return
end
end
end 

Was ist da faslch?


Thx+MfG warrockplayer4
03/11/2012 19:25 collado#5047
@warrockplayer4

PHP Code:
quest shops begin
    state start begin
        when 9002.chat
."Sura Rüssis" begin
            say_title
("Rüssi Händler:")
            
say("")
            
say("Möchtest du Sura Rüssis ansehen?")
            
local s select("Ja""Nein")
            if 
== 1 then
                npc
.open_shop(20)
            else
            return
            
end
        end
        when 9002.chat
."Krieger Rüssis" begin
            say_title
("Rüssi Händler:")
            
say("")
            
say("Möchtest du Krieger Rüssis ansehen?")
            
local s select("Ja""Nein")
            if 
== 1 then
                npc
.open_shop(21)
            else
            return
            
end
        end
        when 9002.chat
."Ninja Rüssis" begin
            say_title
("Rüssi Händler:")
            
say("")
            
say("Möchtest du Ninja Rüssis ansehen?")
            
local s select("Ja""Nein")
            if 
== 1 then
                npc
.open_shop(22)
            else
            return
            
end
        end
    
        when 9002.chat
."Schami Rüssis" begin
            say_title
("Rüssi Händler:")
            
say("")
            
say("Möchtest du Schami Rüssis ansehen?")
            
local s select("Ja""Nein")
            if 
== 1 then
                npc
.open_shop(23)
            else
            return
            
end
        end
    
        when 9002.chat
."Juwelier" begin
            say_title
("Rüssi Händler:")
            
say("")
            
say("Möchtest du zum Juwelier?")
            
local s select("Ja""Nein")
            if 
== 1 then
                say_title
("Juwelier:")
                
say("")
                
say("Welchen Laden willst du ansehen?")
                
local s select("Schilder","Schuhe","Schmuck")
                if 
== 1 then
                    npc
.open_shop(24)
                elseif 
== 2 then
                    npc
.open_shop(25)
                elseif 
== 3 then
                    npc
.open_shop(26)
                return
                
end
            end
        end
    end
end 
03/11/2012 20:31 warrockplayer4#5048
Quote:
Originally Posted by collado View Post
@warrockplayer4

PHP Code:
quest shops begin
    state start begin
        when 9002.chat
."Sura Rüssis" begin
            say_title
("Rüssi Händler:")
            
say("")
            
say("Möchtest du Sura Rüssis ansehen?")
            
local s select("Ja""Nein")
            if 
== 1 then
                npc
.open_shop(20)
            else
            return
            
end
        end
        when 9002.chat
."Krieger Rüssis" begin
            say_title
("Rüssi Händler:")
            
say("")
            
say("Möchtest du Krieger Rüssis ansehen?")
            
local s select("Ja""Nein")
            if 
== 1 then
                npc
.open_shop(21)
            else
            return
            
end
        end
        when 9002.chat
."Ninja Rüssis" begin
            say_title
("Rüssi Händler:")
            
say("")
            
say("Möchtest du Ninja Rüssis ansehen?")
            
local s select("Ja""Nein")
            if 
== 1 then
                npc
.open_shop(22)
            else
            return
            
end
        end
    
        when 9002.chat
."Schami Rüssis" begin
            say_title
("Rüssi Händler:")
            
say("")
            
say("Möchtest du Schami Rüssis ansehen?")
            
local s select("Ja""Nein")
            if 
== 1 then
                npc
.open_shop(23)
            else
            return
            
end
        end
    
        when 9002.chat
."Juwelier" begin
            say_title
("Rüssi Händler:")
            
say("")
            
say("Möchtest du zum Juwelier?")
            
local s select("Ja""Nein")
            if 
== 1 then
                say_title
("Juwelier:")
                
say("")
                
say("Welchen Laden willst du ansehen?")
                
local s select("Schilder","Schuhe","Schmuck")
                if 
== 1 then
                    npc
.open_shop(24)
                elseif 
== 2 then
                    npc
.open_shop(25)
                elseif 
== 3 then
                    npc
.open_shop(26)
                return
                
end
            end
        end
    end
end 
Geht immer noch nicht :(
03/11/2012 22:05 collado#5049
sorry xD

now no have errors, i think, maked and no have errors :o

03/11/2012 22:46 .Shiraka™#5050
abend. ich bin neu im questen & habe jetzt einfach mal 2 geschrieben.
ein mal eine starterset quest (selber geschrieben nicht kopiert)
und einmal eine quest für einen kampfgaul.

würde nun gerne wissen ob ich alles richtig gesetzt habe & die quest so funktionieren würde. eig würde ich es ja testen ob es geht, allerdings hab ich grade nichteinmal einen hamachi server zu verfügung wo ich dies machen könnte & auch kb jetzt noch einen zu basteln^^

Starterset:

Kampfgaul:

danke fürs angucken & korrigieren!
wie gesagt selber geschrieben will nur wissen ob se so gehen würden
03/11/2012 23:03 collado#5051
@Shiraka™

forget 'end'



quest2: surplus end and "if s=1 then" must be "if s==1 then"
03/11/2012 23:17 .Shiraka™#5052
Quote:
Originally Posted by collado View Post
@Shiraka™

forget 'end'



quest2: surplus end and "if s=1 then" must be "if s==1 then"

thanks alot!
03/12/2012 02:13 i.Quin#5053
PHP Code:
quest arvore_maligna begin
    state start begin
        when login begin
            
if map_index == 181 or map_index == 182 or map_index == 183 then
            when 5.timer begin
            timer
("5"60*5) --
                
d.notice("Os mobs serão evocados em 5minutos.")
                
end
            end
            when respaw begin
                    d
.spawn_mob(209200)
                    
d.spawn_mob(220700)
                    
d.spawn_mob(268000)
                    
d.spawn_mob(219200)
                    
d.spawn_mob(500200)
                    
d.spawn_mob(209300)
                    
d.spawn_mob(109500)    
                
d.notice("Os mobs foram evocados.")    
            
end
        end 
--w
    end 
--s
end 
--
Erro: syntax error : [string "start"]:2: unexpected symbol near 'when'
help pls :x
03/12/2012 02:56 collado#5054
im not sure if its

pc.get_map_index() == 181 or 182 or 183

o

pc.get_map_index() == 181 or map_index() == 182 or map_index() == 183


PHP Code:
quest arvore_maligna begin
    state start begin
        when login begin
            
if pc.get_map_index() == 181 or 182 or 183 begin
                when 5.timer begin
                    timer
("5"60*5)
                    
d.notice("Os mobs serão evocados em 5minutos.")
                
end
                when respaw begin
                    d
.spawn_mob(2092xxyy)
                    
d.spawn_mob(2207xxyy)
                    
d.spawn_mob(2680xxyy)
                    
d.spawn_mob(2192xxyy)
                    
d.spawn_mob(5002xxyy)
                    
d.spawn_mob(2093xxyy)
                    
d.spawn_mob(1095xxyy)
                    
d.notice("Os mobs foram evocados.")
                
end
            end
        end
    end
end 
test, and tell us ;)
03/12/2012 03:18 i.Quin#5055
PHP Code:
quest arvore_maligna begin
    state start begin
        when login begin
            
if pc.get_map_index() == 181 or map_index() == 182 or map_index() == 183 begin
                when 5.timer begin
                    timer
("5"60*5)
                    
d.notice("Os mobs serão evocados em 5minutos.")
                
end
                when respaw begin
                    d
.spawn_mob(2092xxyy)
                    
d.spawn_mob(2207xxyy)
                    
d.spawn_mob(2680xxyy)
                    
d.spawn_mob(2192xxyy)
                    
d.spawn_mob(5002xxyy)
                    
d.spawn_mob(2093xxyy)
                    
d.spawn_mob(1095xxyy)
                    
d.notice("Os mobs foram evocados.")
                
end
            end
        end
    end
end 
syntax error : [string "start"]:2: unexpected symbol near `when'
arvore_maligna.quest:20:Abort (core dumped)
:X