[SERVICE] Die Questkontrolle

04/06/2012 08:57 ismaily86#5356
kann mal jemand hier schauen und ggf helfen ?
[Only registered and activated users can see links. Click Here To Register...]
04/06/2012 12:51 Azemi6#5357
Quote:
Originally Posted by acme256 View Post
Ich denke mal das hat was damit zu tun, das der Seeli teilweise mit der questlib.lua arbeitet?
Mhhh..... Wie sollte ich denn die quest dann schreiben? Oder welche quest als vorlage nehmen-.-
04/06/2012 14:54 lυхor#5358
Ich habe ein Error in meiner Quest und möchte deshalb Fragen, was der Fehler hier sein könnte.

PHP Code:
quest Anfang begin
    state start begin
        when login 
or levelup with pc.get_level() >= 1 begin
            set_state
(go)
        
end
    end
    state go begin
        when letter begin
            local v 
find_npc_by_vnum(9003)
            if 
!= 0 then
                target
.vid("__TARGET__"v"Quest")
            
end
            send_letter
("Der Anfang")
        
end
        when button 
or info begin
            say_title
("Der Anfang")
            
say("")
            
say("Willkommen Neuling auf Lasorie3")
            
say("Um dein Equitment zu erhalten, begebe")
            
say("dich zur Gemischtwarenhändlerin.")
        
end
        when 9003.click begin
            say_title
("Der Anfang")
            
say("")
            
say("Hallo "..pc.get_name()..",")
            
say("Tut mir leid. Ich besitze leider das Equitment noch nicht. Frage doch den Schmied.")
            
say("Er hat seid kurzen neue Waren von dem Rüstungshändler bekommen.")
            
clear_letter()
            
set_state(go_smith)
        
end
    end
    state go_smith begin
        when letter begin
            local v 
find_npc_by_vnum(20016)
            if 
!= 0 then
                target
.vid("__TARGET__"v"Quest")
            
end
            send_letter
("Der Anfang")
        
end
        when button 
or info begin
            say_title
("Der Anfang)
            say("")
            say("
Begebe dich zum Schmied!")
        end
        when 20016.chat."
Der Anfang" begin
            target.delete("
__TARGET__")
            say_title("
Der Anfang")
            say("")
            say("
Hallo "..pc.get_name()..",")
            say("
Du möchtes also ein Equitment für den Anfang?")
            say("
Ich habe zufällig eine Ausrüstung für dich.Du kannst Sie haben.")
            if pc.job == 0 then
                    pc.give_item2(19, 1)
                    pc.give_item2(70038,100)
                    pc.give_item2(11209,1)
                    pc.give_item2(12209,1)
                    pc.give_item2(13009,1)
                elseif pc.job == 1 then
                    pc.give_item2(1009, 1)
                    pc.give_item2(70038,100)
                    pc.give_item2(11409,1)
                    pc.give_item2(12349,1)
                    pc.give_item2(13009,1)
                elseif pc.job == 2 then
                    pc.give_item2(19, 1)
                    pc.give_item2(70038,100)
                    pc.give_item2(11609,1)
                    pc.give_item2(12489,1)
                    pc.give_item2(13009,1)
                elseif pc.job == 3 then
                    pc.give_item2(7009, 1)
                    pc.give_item2(70038,100)
                    pc.give_item2(11809,1)
                    pc.give_item2(12629,1)
                    pc.give_item2(13009,1 
            end
            say("
Viel Glück bei deiner Reise!")
            clear_letter()
            set_state(ende)
        end
    end
    state ende begin
    end
end 
04/06/2012 16:19 Retrograd#5359
du hast einmal " vergessen.

PHP Code:
quest Anfang begin
    state start begin
        when login 
or levelup with pc.get_level() >= 1 begin
            set_state
(go)
        
end
    end
    state go begin
        when letter begin
            local v 
find_npc_by_vnum(9003)
            if 
!= 0 then
                target
.vid("__TARGET__"v"Quest")
            
end
            send_letter
("Der Anfang")
        
end
        when button 
or info begin
            say_title
("Der Anfang")
            
say("")
            
say("Willkommen Neuling auf Lasorie3")
            
say("Um dein Equitment zu erhalten, begebe")
            
say("dich zur Gemischtwarenhändlerin.")
        
end
        when 9003.click begin
            say_title
("Der Anfang")
            
say("")
            
say("Hallo "..pc.get_name()..",")
            
say("Tut mir leid. Ich besitze leider das Equitment noch nicht. Frage doch den Schmied.")
            
say("Er hat seid kurzen neue Waren von dem Rüstungshändler bekommen.")
            
clear_letter()
            
set_state(go_smith)
        
end
    end
    state go_smith begin
        when letter begin
            local v 
find_npc_by_vnum(20016)
            if 
!= 0 then
                target
.vid("__TARGET__"v"Quest")
            
end
            send_letter
("Der Anfang")
        
end
        when button 
or info begin
            say_title
("Der Anfang")
            
say("")
            
say("Begebe dich zum Schmied!")
        
end
        when 20016.chat
."Der Anfang" begin
            target
.delete("__TARGET__")
            
say_title("Der Anfang")
            
say("")
            
say("Hallo "..pc.get_name()..",")
            
say("Du möchtes also ein Equitment für den Anfang?")
            
say("Ich habe zufällig eine Ausrüstung für dich.Du kannst Sie haben.")
            if 
pc.job == 0 then
                    pc
.give_item2(191)
                    
pc.give_item2(70038,100)
                    
pc.give_item2(11209,1)
                    
pc.give_item2(12209,1)
                    
pc.give_item2(13009,1)
                elseif 
pc.job == 1 then
                    pc
.give_item2(10091)
                    
pc.give_item2(70038,100)
                    
pc.give_item2(11409,1)
                    
pc.give_item2(12349,1)
                    
pc.give_item2(13009,1)
                elseif 
pc.job == 2 then
                    pc
.give_item2(191)
                    
pc.give_item2(70038,100)
                    
pc.give_item2(11609,1)
                    
pc.give_item2(12489,1)
                    
pc.give_item2(13009,1)
                elseif 
pc.job == 3 then
                    pc
.give_item2(70091)
                    
pc.give_item2(70038,100)
                    
pc.give_item2(11809,1)
                    
pc.give_item2(12629,1)
                    
pc.give_item2(13009,
            end
            say
("Viel Glück bei deiner Reise!")
            
clear_letter()
            
set_state(ende)
        
end
    end
    state ende begin
    end
end 
04/06/2012 17:06 lυхor#5360
Quote:
Originally Posted by Retrograd View Post
du hast einmal " vergessen.

PHP Code:
quest Anfang begin
    state start begin
        when login 
or levelup with pc.get_level() >= 1 begin
            set_state
(go)
        
end
    end
    state go begin
        when letter begin
            local v 
find_npc_by_vnum(9003)
            if 
!= 0 then
                target
.vid("__TARGET__"v"Quest")
            
end
            send_letter
("Der Anfang")
        
end
        when button 
or info begin
            say_title
("Der Anfang")
            
say("")
            
say("Willkommen Neuling auf Lasorie3")
            
say("Um dein Equitment zu erhalten, begebe")
            
say("dich zur Gemischtwarenhändlerin.")
        
end
        when 9003.click begin
            say_title
("Der Anfang")
            
say("")
            
say("Hallo "..pc.get_name()..",")
            
say("Tut mir leid. Ich besitze leider das Equitment noch nicht. Frage doch den Schmied.")
            
say("Er hat seid kurzen neue Waren von dem Rüstungshändler bekommen.")
            
clear_letter()
            
set_state(go_smith)
        
end
    end
    state go_smith begin
        when letter begin
            local v 
find_npc_by_vnum(20016)
            if 
!= 0 then
                target
.vid("__TARGET__"v"Quest")
            
end
            send_letter
("Der Anfang")
        
end
        when button 
or info begin
            say_title
("Der Anfang")
            
say("")
            
say("Begebe dich zum Schmied!")
        
end
        when 20016.chat
."Der Anfang" begin
            target
.delete("__TARGET__")
            
say_title("Der Anfang")
            
say("")
            
say("Hallo "..pc.get_name()..",")
            
say("Du möchtes also ein Equitment für den Anfang?")
            
say("Ich habe zufällig eine Ausrüstung für dich.Du kannst Sie haben.")
            if 
pc.job == 0 then
                    pc
.give_item2(191)
                    
pc.give_item2(70038,100)
                    
pc.give_item2(11209,1)
                    
pc.give_item2(12209,1)
                    
pc.give_item2(13009,1)
                elseif 
pc.job == 1 then
                    pc
.give_item2(10091)
                    
pc.give_item2(70038,100)
                    
pc.give_item2(11409,1)
                    
pc.give_item2(12349,1)
                    
pc.give_item2(13009,1)
                elseif 
pc.job == 2 then
                    pc
.give_item2(191)
                    
pc.give_item2(70038,100)
                    
pc.give_item2(11609,1)
                    
pc.give_item2(12489,1)
                    
pc.give_item2(13009,1)
                elseif 
pc.job == 3 then
                    pc
.give_item2(70091)
                    
pc.give_item2(70038,100)
                    
pc.give_item2(11809,1)
                    
pc.give_item2(12629,1)
                    
pc.give_item2(13009,
            end
            say
("Viel Glück bei deiner Reise!")
            
clear_letter()
            
set_state(ende)
        
end
    end
    state ende begin
    end
end 
So jetzt noch ein Fehler in der Quest und zwar: syntax error : [string "go_smith"] :31: ')' expected (to close '(' at line 30) near 'end'
04/06/2012 18:00 havmonster#5361
Quote:
Originally Posted by lυхor View Post
So jetzt noch ein Fehler in der Quest und zwar: syntax error : [string "go_smith"] :31: ')' expected (to close '(' at line 30) near 'end'
hast am ende auch ne ")" vergessen schau mal deine ganze Quest nach solchen Fehlern durch
04/06/2012 18:44 127.6.6.6#5362
PHP Code:
quest anti_exp begin
    state start begin
        when exp
.timer with pc.get_exp()>1000 begin            
            pc
.give_exp2(-pc.get_exp())
        
end
        when 31003.
use begin
            
if pc.getqf("exp_block")==0 then
                pc
.setqf("exp_block"1)    
                
loop_timer("exp"5)
            else
                
pc.setqf("exp_block"0)
                
cleartimer("exp")
            
end
        end        
    end
end 
Problem:

Wenn ich das Item anziehe, bekomme ich keine Exp mehr. Ist ja auch richtig. Doch wenn ich es wieder ausziehe, bekomme ich immer noch keine EXP mehr.
Wenn ich relogge, muss ich es immer neu aktivieren.
04/06/2012 18:53 Retrograd#5363
Kann man in einer Quest zu viele wait() drin haben?
04/06/2012 19:06 He3o Sippel#5364
Quote:
Originally Posted by Retrograd View Post
Kann man in einer Quest zu viele wait() drin haben?
Nein eig. nicht da
PHP Code:
wait() 
nur den Spielern vllt auf die nerver gehen wird.
04/06/2012 19:08 DasSchwarzeT#5365
Quote:
Originally Posted by acme256 View Post
PHP Code:
quest azraels_truhe begin
    state start begin
        when 50080.
use begin
            local item 

            {
                { 
27112},
                { 
27115},
                { 
140},
                { 
150},
                { 
160},
                { 
180},
                { 
3130},
                { 
3140},
                { 
3150},
                { 
3160},
                { 
1100},
                { 
1110},
                { 
1130},
                { 
11286},
                { 
11286},
                { 
11286},
                { 
11286},
                { 
11294},
                { 
11294},
                { 
11294},
                { 
11294},
                { 
5120},
                { 
5090},
                { 
5100},
                { 
7140},
                { 
7130},
                { 
30190},
                { 
71094},
                { 
72001},
                { 
72002},
                { 
72003},
                { 
72004},
                { 
72005},
                { 
72006},
                { 
72022},
                { 
72023},
                { 
72024},
                { 
71132},
                { 
30193},
                { 
30195},
                { 
30178},
                { 
71107},
                { 
30319},
                { 
7100410 },
                { 
27992},
                { 
27993},
                { 
27994},
                { 
27998},
                { 
27987},
                { 
2798715 },
                { 
50523},
                { 
50524},
                { 
2700350 },
                { 
2700650 },
                { 
50513},
                { 
50514},
                { 
7101850 },
                { 
7102025 },
                { 
71021},
                { 
25040},
                { 
25041},
                { 
71032},
                { 
70024},
                { 
71044},
                { 
71045},
                { 
71101},
                { 
30021},
                { 
30064},
                { 
71101},
                { 
72037},
                { 
72038},
                { 
72031},
                { 
72032},
                { 
72034},
                { 
72035},
                { 
72040},
                { 
72041},
            }
            for 
176 do
            
local b number(a77)
            if 
!= b then
                local c 
item[a];
                
item[a] = item[b];
                
item[b] = c;
            
end
            end
            pc
.give_item2(item[a][1], item[a][2])
        
end
    end
end 
Server : Kein Fehler

Problem : Aus der Truhe kommt kein Item raus (das die Truhe nicht verschwindet ist im Moment unwichtig)

Ohne Quest wäre das viel einfacher..

Wie man das macht bitte in der SuFu suchen.
04/06/2012 19:20 DarkNessWorld2#5366
PHP Code:
quest rubintruhe begin    
    state start begin
        when 50132.
use with pc.count_item(50150) >=1 begin
            local n 
number(14)
            if 
== 1 then
                pc
.give_item2(410121)
            elseif 
== 2 then
                pc
.give_item2(41022,1)
            elseif 
== 3 then
                pc
.give_item2(410231)
            elseif 
== 4 then
                pc
.give_item2(410421)
            
pc.remove_item(501321
            
pc.remove_item(501501)
           
        
end
        when 50132.
use with pc.count_item(50150) <=0 begin
            chat
("Dir fehlt der richtige Schlüssel.")
        
end
    end
end 
die core dumped pls help
04/06/2012 19:26 DasSchwarzeT#5367
Quote:
Originally Posted by DarkNessWorld2 View Post
PHP Code:
quest rubintruhe begin    
    state start begin
        when 50132.
use with pc.count_item(50150) >=1 begin
            local n 
number(14)
            if 
== 1 then
                pc
.give_item2(410121)
            elseif 
== 2 then
                pc
.give_item2(41022,1)
            elseif 
== 3 then
                pc
.give_item2(410231)
            elseif 
== 4 then
                pc
.give_item2(410421)
            
pc.remove_item(501321
            
pc.remove_item(501501)
           
        
end
        when 50132.
use with pc.count_item(50150) <=0 begin
            chat
("Dir fehlt der richtige Schlüssel.")
        
end
    end
end 
die core dumped pls help
Hier fehlt ein Endif...
04/06/2012 19:28 DarkNessWorld2#5368
wo ich blicke da grade net duch
04/06/2012 19:31 [uLow]Heinii#5369
Quote:
Originally Posted by DarkNessWorld2 View Post
PHP Code:
quest rubintruhe begin    
    state start begin
        when 50132.
use with pc.count_item(50150) >=1 begin
            local n 
number(14)
            if 
== 1 then
                pc
.give_item2(410121)
            elseif 
== 2 then
                pc
.give_item2(41022,1)
            elseif 
== 3 then
                pc
.give_item2(410231)
            elseif 
== 4 then
                pc
.give_item2(410421)
            
pc.remove_item(501321
            
pc.remove_item(501501)
           
        
end
        when 50132.
use with pc.count_item(50150) <=0 begin
            chat
("Dir fehlt der richtige Schlüssel.")
        
end
    end
end 
die core dumped pls help
So müsste es richtig sein.
PHP Code:
quest rubintruhe begin    
    state start begin
        when 50132.
use with pc.count_item(50150) >=1 begin
            local n 
number(14)
            if 
== 1 then
                pc
.give_item2(410121)
            elseif 
== 2 then
                pc
.give_item2(41022,1)
            elseif 
== 3 then
                pc
.give_item2(410231)
            elseif 
== 4 then
                pc
.give_item2(410421)
            
end
            pc
.remove_item(501321
            
pc.remove_item(501501)         
        
end
        when 50132.
use with pc.count_item(50150) <=0 begin
            chat
("Dir fehlt der richtige Schlüssel.")
        
end
    end
end 
04/06/2012 19:47 127.6.6.6#5370
PHP Code:
quest frisuren_shop begin
state start begin
when 20090.chat
."Sie sind ein Friseur?" with pc.job == 0 begin
say
(" ")
say(" ")
say(" ")
say(" ")
say(" ")
local s select ("Ja""Nein")
if 
== 2 then
return
else
npc.open_shop(1
end    
end    
when 20090.chat
."Frisuren Kauf" with pc.job == 1 begin
say
("1")
say("2")
say("3")
say("4")
local s select ("Ja""Nein")
if 
== 2 then
return
else
npc.open_shop(1
end    
end    
when 20090.chat
."Frisuren Kauf" with pc.job == 2 begin
say
("1")
say("2")
say("3")
say("4")
local s select ("Ja""Nein")
if 
== 2 then
return
else
npc.open_shop(1
end    
end
when 20090.chat
."Frisuren Kauf" with pc.job == 3 begin
say
("1")
say("2")
say("3")
say("4")
local s select ("Ja""Nein")
if 
== 2 then
return
else
npc.open_shop(1
end    
end
end
end 
Problem:

Nachdem man was aus dem Shop gekauft hat, passiert nichts.