[SERVICE] Die Questkontrolle

04/21/2011 11:47 .Delta#2026
Quote:
Originally Posted by »Côoper«™ View Post
Koennt ihr fuer mich diesen quest nach checken ob da fehler sind?

PHP Code:
 quest Ueberraschung! begin
    state start begin
        when levelup with pc
.get_level() >= 99 begin
            set_state
( killmonster )
        
end
    end
    state killmonster begin
        when letter begin
            send_letter
("Töte !")
            
pc.setqf("state", 0)
            
q.set_counter("Verbleibend",5)
        
end
        when info 
or button begin
            say_title
("Töte 5 !")
            
say_reward( "Es fehlen noch ".." "..5 - pc.getqf("state").."  .")
            
say("")
        
end
        when 8027.kill begin
            local count 
= pc.getqf("state") + 1

            
if count <= 5 then
                pc
.setqf("state", count)
                
q.set_counter("Verbleibend", 5 - count)

                if 
count == 5 then
                    say_title
("Aufgabe abgeschlossen")
                    
say("Alle 5  wurden vernichtet.")
                    
say("Erhalte deine Belohnung :")
                    
say_reward("1x ")
                    
pc.give_item2(71052,1)
                    
set_state( __COMPLETE__ )
                
end
            end
        end
    end
    state __COMPLETE__ begin
    end
end 
Danke :o
glaube die würde funktionieren, nur wird dein counter nach jedem relog auf 0 gesetzt :p
04/21/2011 11:52 »Côoper«™#2027
Quote:
Originally Posted by .Delta View Post
glaube die würde funktionieren, nur wird dein counter nach jedem relog auf 0 gesetzt :p

Danke fuer dein Feedback, ich werde versuchen es zu editieren ;)
04/21/2011 13:03 Lore7#2028
Habe ein Problem mit meiner Starterquest sie funtzt net -.-
wenn man sich einloggt bekommt man gar nichts.
(Nutze die SF by Computerkrank v2)
Pfad: /usr/rain/channel/share_data/locale/hongkong/quest
give_basic_weapon.quest


wäre über eure hilfe sehr erfreut.
04/21/2011 13:08 .Delta#2029
du musst das ja auch als komplette Quest einfügen und nicht als so halbfertigen Käse da :D

PHP Code:
quest give_basic_weapon begin
    state start begin
        when login with pc
.get_level() == 1 begin
            
if pc.getqf("basic_weapon") == 0 then
            say_title 
( "Willkommen" )
            
say ( "Willkommen auf dem Server Servername." )
            
say ( "Unsere Homepage ist http:/Homepage" )
            
say ( "Viel Spass auf unserem Server!" )
            
say ( "Euer ServerName Team." )
            
say ( "" )
            
pc . give_exp2 ( 100000 )
            
set_quest_state ( "levelup" , "run" )
            
pc . change_money ( 1000000 )
            
pc . give_item2 ( "27003" , 200 )
            
pc . give_item2 ( "27003" , 200 )
            
pc . give_item2 ( "27003" , 200 )
            
pc . give_item2 ( "27003" , 200 )
            
pc . give_item2 ( "27003" , 200 )
            
pc . give_item2 ( "27006" , 200 )
            
pc . give_item2 ( "27006" , 200 )
            
pc . give_item2 ( "71050" , 200 )
            
pc . give_item2 ( "72702" , 1 )
            
pc . give_item2 ( "50052" , 1 )
            
horse.set_level(11)
            
say_reward ( "Du wurdest level 33." )
            
say_reward ( "Du erhielst 1kk." )
            
say_reward ( "Du erhielst 1000 Rote(G)." )
            
say_reward ( "Du erhielst 400 Blaue(G)." )
            
say_reward ( "Du erhielst Items fur Laufgeschwindigkeit." )
            
say_reward ( "Du erhielst ein Kampfpferd." )
            if 
pc . job == 0 then
                pc 
. give_item2 ( "299" , 1 )
                
pc . give_item2 ( "3219" , 1 )
                
pc . give_item2 ( "11249" , 1 )
                
pc . give_item2 ( "12229" , 1 )
                
pc . give_item2 ( "13029" , 1 )
                
pc . give_item2 ( "14009" , 1 )
                
pc . give_item2 ( "15009" , 1 )
                
pc . give_item2 ( "16009" , 1 )
                
pc . give_item2 ( "17009" , 1 )
                
say_reward ( "Du erhielst das Kriegerset!" )
            elseif 
pc . job == 1 then
                pc 
. give_item2 ( "1179" , 1 )
                
pc . give_item2 ( "2159" , 1 )
                
pc . give_item2 ( "8009" , 200 )
                
pc . give_item2 ( "8008" , 200 )
                
pc . give_item2 ( "8007" , 200 )
                
pc . give_item2 ( "8006" , 200 )
                
pc . give_item2 ( "11449" , 1 )
                
pc . give_item2 ( "12369" , 1 )
                
pc . give_item2 ( "13029" , 1 )
                
pc . give_item2 ( "14009" , 1 )
                
pc . give_item2 ( "15009" , 1 )
                
pc . give_item2 ( "16009" , 1 )
                
pc . give_item2 ( "17009" , 1 )
                
say_reward ( "Du erhielst das Ninjaset!" )
            elseif 
pc . job == 2 then
                pc 
. give_item2 ( "299" , 1 )
                
pc . give_item2 ( "11649" , 1 )
                
pc . give_item2 ( "12509" , 1 )
                
pc . give_item2 ( "13029" , 1 )
                
pc . give_item2 ( "14009" , 1 )
                
pc . give_item2 ( "15009" , 1 )
                
pc . give_item2 ( "16009" , 1 )
                
pc . give_item2 ( "17009" , 1 )
                
say_reward ( "Du erhielst das Suraset!" )
            elseif 
pc . job == 3 then
                pc 
. give_item2 ( "5119" , 1 )
                
pc . give_item2 ( "7169" , 1 )
                
pc . give_item2 ( "11849" , 1 )
                
pc . give_item2 ( "12649" , 1 )
                
pc . give_item2 ( "13029" , 1 )
                
pc . give_item2 ( "14009" , 1 )
                
pc . give_item2 ( "15009" , 1 )
                
pc . give_item2 ( "16009" , 1 )
                
pc . give_item2 ( "17009" , 1 )
                
say_reward ( "Du erhielst das Schamiset!" )
            
end
            pc
.setqf("basic_weapon", 1)
            
set_state(__complete)
        
end
    end
    state __complete begin
    end
end 
04/21/2011 15:08 Lore7#2030
Quote:
Originally Posted by .Delta View Post
du musst das ja auch als komplette Quest einfügen und nicht als so halbfertigen Käse da :D

PHP Code:
quest give_basic_weapon begin
    state start begin
        when login with pc
.get_level() == 1 begin
            
if pc.getqf("basic_weapon") == 0 then
            say_title 
( "Willkommen" )
            
say ( "Willkommen auf dem Server Servername." )
            
say ( "Unsere Homepage ist http:/Homepage" )
            
say ( "Viel Spass auf unserem Server!" )
            
say ( "Euer ServerName Team." )
            
say ( "" )
            
pc . give_exp2 ( 100000 )
            
set_quest_state ( "levelup" , "run" )
            
pc . change_money ( 1000000 )
            
pc . give_item2 ( "27003" , 200 )
            
pc . give_item2 ( "27003" , 200 )
            
pc . give_item2 ( "27003" , 200 )
            
pc . give_item2 ( "27003" , 200 )
            
pc . give_item2 ( "27003" , 200 )
            
pc . give_item2 ( "27006" , 200 )
            
pc . give_item2 ( "27006" , 200 )
            
pc . give_item2 ( "71050" , 200 )
            
pc . give_item2 ( "72702" , 1 )
            
pc . give_item2 ( "50052" , 1 )
            
horse.set_level(11)
            
say_reward ( "Du wurdest level 33." )
            
say_reward ( "Du erhielst 1kk." )
            
say_reward ( "Du erhielst 1000 Rote(G)." )
            
say_reward ( "Du erhielst 400 Blaue(G)." )
            
say_reward ( "Du erhielst Items fur Laufgeschwindigkeit." )
            
say_reward ( "Du erhielst ein Kampfpferd." )
            if 
pc . job == 0 then
                pc 
. give_item2 ( "299" , 1 )
                
pc . give_item2 ( "3219" , 1 )
                
pc . give_item2 ( "11249" , 1 )
                
pc . give_item2 ( "12229" , 1 )
                
pc . give_item2 ( "13029" , 1 )
                
pc . give_item2 ( "14009" , 1 )
                
pc . give_item2 ( "15009" , 1 )
                
pc . give_item2 ( "16009" , 1 )
                
pc . give_item2 ( "17009" , 1 )
                
say_reward ( "Du erhielst das Kriegerset!" )
            elseif 
pc . job == 1 then
                pc 
. give_item2 ( "1179" , 1 )
                
pc . give_item2 ( "2159" , 1 )
                
pc . give_item2 ( "8009" , 200 )
                
pc . give_item2 ( "8008" , 200 )
                
pc . give_item2 ( "8007" , 200 )
                
pc . give_item2 ( "8006" , 200 )
                
pc . give_item2 ( "11449" , 1 )
                
pc . give_item2 ( "12369" , 1 )
                
pc . give_item2 ( "13029" , 1 )
                
pc . give_item2 ( "14009" , 1 )
                
pc . give_item2 ( "15009" , 1 )
                
pc . give_item2 ( "16009" , 1 )
                
pc . give_item2 ( "17009" , 1 )
                
say_reward ( "Du erhielst das Ninjaset!" )
            elseif 
pc . job == 2 then
                pc 
. give_item2 ( "299" , 1 )
                
pc . give_item2 ( "11649" , 1 )
                
pc . give_item2 ( "12509" , 1 )
                
pc . give_item2 ( "13029" , 1 )
                
pc . give_item2 ( "14009" , 1 )
                
pc . give_item2 ( "15009" , 1 )
                
pc . give_item2 ( "16009" , 1 )
                
pc . give_item2 ( "17009" , 1 )
                
say_reward ( "Du erhielst das Suraset!" )
            elseif 
pc . job == 3 then
                pc 
. give_item2 ( "5119" , 1 )
                
pc . give_item2 ( "7169" , 1 )
                
pc . give_item2 ( "11849" , 1 )
                
pc . give_item2 ( "12649" , 1 )
                
pc . give_item2 ( "13029" , 1 )
                
pc . give_item2 ( "14009" , 1 )
                
pc . give_item2 ( "15009" , 1 )
                
pc . give_item2 ( "16009" , 1 )
                
pc . give_item2 ( "17009" , 1 )
                
say_reward ( "Du erhielst das Schamiset!" )
            
end
            pc
.setqf("basic_weapon", 1)
            
set_state(__complete)
        
end
    end
    state __complete begin
    end
end 
klappt nicht -.-
04/21/2011 15:09 .Delta#2031
Quote:
Originally Posted by Lore7 View Post
klappt nicht -.-
und mit welcher Fehlermeldung?
04/21/2011 15:44 TTrollo#2032
Hab volgendes prob:

Zu erst ma das quest script (text zensiert das man nich klaut)

PHP Code:
quest give_king begin
    state start begin
        when 
*item*.use begin
            say_title
(".....")
            
say("")
            
say(".....")
            
say(".....")
            
say("......")
            
say("")
        
end
        when letter begin
            send_letter
(".....")
            
local v=find_npc_by_vnum(*npc*)
            if 
0==v then
                
else
                
target.vid("__TARGET__", v, ".....")
            
end
        end    
        when button 
or info begin
            say_title
("...")
            
say("")
            
say("....")
            
say("....")
            
say("......")
            
say("")
        
end
        when __TARGET__
.target.click begin
            target
.delete("__TARGET__")
            
say_title("....")
            
say("")
            
say(".....")
            
say(".....")
            
say("")
            
say("....")
            
say("...")
            
say("....")
            
wait()
            
say("[DELAY value;400]. . .[/DELAY]")
            
wait()
            
say("....")
            
say("....:")
            
say("")
            
say("....,")
            
say(".....")
            
say(".....")
            
say("....")
            
say("")
            
pc.remove_item(*item*)
            
set_state(goseul)
        
end
    end
    state goseul begin
        when letter begin
            send_letter
("....")
            
local v=find_npc_by_vnum(*npc*)
            if 
0==v then
            
else
                
target.vid("__TARGET__", v, "....")
            
end
        end
        when button 
or info begin
            say_title
("....")
            
say("")
            
say("....")
            
say("....")
            
say(".....")
            
say("")
        
end
        when __TARGET__
.target.click begin
            target
.delete("__TARGET__")
            
say_title("....")
            
say("")
            
say(".....")
            
say("")
            
say("......")
            
say("....")
            
say("....")
            
say("....")
            
say("")
            
say_reward(".....")
            
pc.give_item2(*item*,1)
            
set_state(__COMPLETE__)
        
end
    end
    state __COMPLETE__ begin
    end  
end 
Das script läuft so weit.

Ich hätte es allerdings gerne so, das man die quest immer wieder machen kann so bald man das questitem erhält.

im moment ist es so das die quest sich einmal aktiviert dauer wiederholt, oder sie wieder auf state goseul springt, oder sie nich nochmal angeht (so wie jetzt)

Hoffe das jemand weis wies geht :handsdown:
04/21/2011 15:46 .Delta#2033
try
PHP Code:
quest give_king begin
    state start begin
        when 
*item*.use begin
            say_title
(".....")
            
say("")
            
say(".....")
            
say(".....")
            
say("......")
            
say("")
        
end
        when letter begin
            send_letter
(".....")
            
local v=find_npc_by_vnum(*npc*)
            if 
0==v then
                
else
                
target.vid("__TARGET__", v, ".....")
            
end
        end    
        when button 
or info begin
            say_title
("...")
            
say("")
            
say("....")
            
say("....")
            
say("......")
            
say("")
        
end
        when __TARGET__
.target.click begin
            target
.delete("__TARGET__")
            
say_title("....")
            
say("")
            
say(".....")
            
say(".....")
            
say("")
            
say("....")
            
say("...")
            
say("....")
            
wait()
            
say("[DELAY value;400]. . .[/DELAY]")
            
wait()
            
say("....")
            
say("....:")
            
say("")
            
say("....,")
            
say(".....")
            
say(".....")
            
say("....")
            
say("")
            
pc.remove_item(*item*)
            
set_state(goseul)
        
end
    end
    state goseul begin
        when letter begin
            send_letter
("....")
            
local v=find_npc_by_vnum(*npc*)
            if 
0==v then
            
else
                
target.vid("__TARGET__", v, "....")
            
end
        end
        when button 
or info begin
            say_title
("....")
            
say("")
            
say("....")
            
say("....")
            
say(".....")
            
say("")
        
end
        when __TARGET__
.target.click begin
            target
.delete("__TARGET__")
            
say_title("....")
            
say("")
            
say(".....")
            
say("")
            
say("......")
            
say("....")
            
say("....")
            
say("....")
            
say("")
            
say_reward(".....")
            
pc.give_item2(*item*,1)
            
set_state(start)
        
end
    end
end 
04/21/2011 15:48 TTrollo#2034
hab ich auch schon probiert da tritt dann der fall ein das sich die guest dauer wiederholt wenn man das item einmal aktiviert hat (dennoch THX)
04/21/2011 15:49 .Delta#2035
Quote:
Originally Posted by TTrollo View Post
hab ich auch schon probiert da tritt dann der fall ein das sich die guest dauer wiederholt wenn man das item einmal aktiviert hat (dennoch THX)
dann sag doch mal genau was du haben willst^^
Wie oft soll die quest wiederholbar sein?
usw
04/21/2011 16:00 TTrollo#2036
habs grad nochmal getestet. ist wirklich so das man bei deiner version die quest abschliest , und sich im selben moment das hier öffnet:

Code:
when letter begin
            send_letter(".....")
            local v=find_npc_by_vnum(*npc*)
            if 0==v then
                else
                target.vid("__TARGET__", v, ".....")
            end
        end
und dann gehts von da an von vorne los-.-
als wenn er den anfang des states überspringen würde.
04/21/2011 16:02 .Delta#2037
? ja?
wenn du in den state start gehst wird ein letter gesendet.
Auch in deiner version eigentlich ;)
04/21/2011 16:04 TTrollo#2038
ja ist ja auch soweit richtig.

es soll sich letter aber erst öffnen nach dem das item "geused" wurde.
04/21/2011 16:08 .Delta#2039
na dann vllt so ...
PHP Code:
quest give_king begin
    state start begin
        when 
*item*.use begin
            say_title
(".....")
            
say("")
            
say(".....")
            
say(".....")
            
say("......")
            
say("")
            
set_state(information)
        
end
    end
    state information
        when letter begin
            send_letter
(".....")
            
local v=find_npc_by_vnum(*npc*)
            if 
0==v then
                
else
                
target.vid("__TARGET__", v, ".....")
            
end
        end    
        when button 
or info begin
            say_title
("...")
            
say("")
            
say("....")
            
say("....")
            
say("......")
            
say("")
        
end
        when __TARGET__
.target.click begin
            target
.delete("__TARGET__")
            
say_title("....")
            
say("")
            
say(".....")
            
say(".....")
            
say("")
            
say("....")
            
say("...")
            
say("....")
            
wait()
            
say("[DELAY value;400]. . .[/DELAY]")
            
wait()
            
say("....")
            
say("....:")
            
say("")
            
say("....,")
            
say(".....")
            
say(".....")
            
say("....")
            
say("")
            
pc.remove_item(*item*)
            
set_state(goseul)
        
end
    end
    state goseul begin
        when letter begin
            send_letter
("....")
            
local v=find_npc_by_vnum(*npc*)
            if 
0==v then
            
else
                
target.vid("__TARGET__", v, "....")
            
end
        end
        when button 
or info begin
            say_title
("....")
            
say("")
            
say("....")
            
say("....")
            
say(".....")
            
say("")
        
end
        when __TARGET__
.target.click begin
            target
.delete("__TARGET__")
            
say_title("....")
            
say("")
            
say(".....")
            
say("")
            
say("......")
            
say("....")
            
say("....")
            
say("....")
            
say("")
            
say_reward(".....")
            
pc.give_item2(*item*,1)
            
set_state(start)
        
end
    end
end 
04/21/2011 17:21 Lore7#2040
Quote:
Originally Posted by .Delta View Post
und mit welcher Fehlermeldung?
gar keiner-.- es kommt einfach GAR NICHTS