[SERVICE] Die Questkontrolle

10/08/2010 22:59 '-SkyLiiNe-'#616
also muss ich denke ich mal einen counter setzten vielleicht setqf("kill",0) und dann setqf("kill",0)+1 ??? aber wo hin .....
10/08/2010 23:07 CoreDump#617
ok da ich sehe das du so verzweifelt bist...
mache ich es dir etwas einfacher.
aber einfügen musst du selber versuchen (NACHDENKEN!)

PHP Code:
.....
    
state...
        
when...
            
falls IF---
            
pc.setqf("state1"0)
            
q.set_counter("mobname"anzahl)
            
end---if muss beendet werden
        end
    end
    state kill begin
        when mob
-ID.kill begin
            local count1
=pc.getqf("state1")+1
            
if count1<=anzahl then
                pc
.setqf("state1"count1)
                
q.set_counter("mobname"anzahl count1)
            
end
            
if pc.getqf("state1")>=anzahl then
                set_state
("nächstes state")
            
end
        end
    end
    state 
"nächstes state" begin
        when npc
.chat."Auftrag abgeschlossen!" begin....... 
jetz hab ich zwar das meiste geschrieben aber den rest einfügen musst du selber versuchen

EIN TIPP: nicht 1:1 abschreiben. is dafür gedacht das du selber nachdenkst.
der best weg questen zu lernen ist wenn man sich die einzelnen quests aus dem quest ordner ansieht.
davon habe ich das questen gelernt und MEINE PERSÖNLICHE MOB-KILL QUEST geschrieben.

Diese Quest hat niemand ausser 3leute. und die sind aus unserem Server-Team
10/08/2010 23:14 '-SkyLiiNe-'#618
danke dir ich setz mich jetzt dran ;)
10/08/2010 23:44 .Flynn.#619
PHP Code:
quest event_map5 begin
    state start begin
        when login 
or levelup with pc.get_level() >90 begin
            set_state
(event_map5)
        
end
    end
        
    state event_map5 begin
        when 20087.chat
."BossMap" begin
            say
(""..mob_name(20087)..":")
            
say("Hallo mein Freund!")
            
say("Wir haben ein Gebiet entdeckt,")
            
say("das völlig ausgestorben ist so,")
            
say("wie unser Dorf. Doch auch dort")
            
say("sind schreckliche Monster!")
            
say("")
            
say("Möchtest du zur BossMap?")
            
say("")
                
            
local aselect("Teleportier mich!""Nein ich bleib hier!")
            if 
1==a then
                say
(""..mob_name(20087)..":")
                
say("")
                
say("Ok")
                
say("Viel Glück")
                
wait()
                
pc.warp(28129200 28129200)
            elseif 
2==a then
                say
(""..mob_name(20087)..":")
                
say("")
                
say("Ok")
                
say("Eine Weise Entscheidung!")
            
end


        end
            

    end

end 
wo ist der fehler die quest funztz nur das ab Level 90 nich ^^ man kann scho vorher rein
10/09/2010 00:11 CoreDump#620
welche klasse bist du?
in mathe noch nie was mit >= zeichen gemacht?

PHP Code:
 if 1==a then 
bei sowas würd ich mir am liebsten die augen auskratzen xDD
is zwar kein fehler aber alles hat seine ordnung
PHP Code:
 if a==1 then 
10/09/2010 00:57 RootIt#621
PHP Code:
quest kristal begin
    state start begin
        when 30133.
use with pc.get_level() >= 50 begin

            
if pc.countitem("30133")>=1 then
                pc
.removeitem("30133"1)
            
end

            say_title
("Magischer Kristall:")
            
say("Ich bringe dich nun in die mysterioesen, gefaehrlichen Ebenen -")
            
say("Dem sogenannten SpinnenDungeon3")
            
say("Er birgt viele Gefahren.")
            
say("Man sagt, dort befinden sich die legendaeren Zombie Monster!")
            
say("Soll ich dich dorthin bringen?")


            
local aselect("Teleportier mich!""Nein ich bleib hier!")
            if 
1==a then
                say
("Magischer Kristall:")
                
say("")
                
say("Ok")
                
say("Viel Glück")
                
wait()
                
pc.warp(474700 484800)
            elseif 
2==a then
                say
("Magischer Kristall:")
                
say("")
                
say("Ok")
                
say("Eine Weise Entscheidung!")
            
end


        end
            

    end

end 
Wenn ich Rechtsklick auf das item 30133 mache (Per DB Type auf 18 gesetzt) passiert nichts -.-
10/09/2010 09:58 DerEgoist#622
Hey!
Kann mir einer sagen wo der Fehler ist?
Wollte nur einstellen das man sich in eine Map mehr porten kánn!

PHP Code:
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 ) * 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 ) ) 
if 
map == or map == or map == 21 or map == 23 or map == 41 or map == 43 then 
local guild_map_names 
= { 
"Tempel 2" 
"Tempel 2" 
"Tempel 2" 

guild_map_name guild_map_names empire 
local empire_castle = { 
"Burgschlacht" 
"Burgschlacht" 
"Burgschlacht" 

empire_castle empire_castle empire 
local sub_set 
if pc count_item 30180 ) >= 1 then 
if level 60 then 
sub_set 
select guild_map_name "Tal von Seungryong" "Yongbi-Wüste" "Berg Sohan" empire_castle "Drachengottamulett benutzen" "Andere Gebiete" 
if 
sub_set == 6 then 
return 
end 
else 
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" "Feuerland 2" "Zurück" "Abbrechen" ) + 
if sub_set == 10 then 
return 
end 
if sub_set == 9 then 
say_title 
"Teleporter:" 
say "Wohin möchtest du teleportiert werden?" 
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" "Feuerland 2" "Abbrechen" ) + 
if sub_set == 10 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 = { 

153600 1049600 } , 
153600 1049600 } , 
153600 1049600 } , 
} , 

402100 673900 } , 
270400 739900 } , 
321300 808000 } , 
} , 

217800 627200 } , 
221900 502700 } , 
344000 502500 } , 
} , 

434200 290600 } , 
375200 174900 } , 
491800 173600 } , 
} , 

975200 133000 } , 
977200 185000 } , 
923900 183600 } , 
} , 

283600 808300 } , 
283600 808300 } , 
283600 808300 } , 
} , 

599400 756300 } , 
597800 622200 } , 
730700 689800 } , 
} , 

590500 110500 } , 
590500 110500 } , 
590500 110500 } , 
} , 
}
460800 1049600 } , 
460800 1049600 } , 
460800 1049600 } , 
} , 
}  
test_chat warp sub_set ] [ empire ] [ ] .. warp sub_set ] [ empire ] [ ] ) 
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 ] [ ] , warp sub_set ] [ empire ] [ ] ) 
else 
if 
level 60 then 
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 
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" "Feuerland 2" "Zurück" "Abbrechen" ) + 
if sub_set == 10 then 
return 
end 
if sub_set == 9 then 
say_title 
"Teleporter:" 
say "Wohin möchtest du teleportiert werden?" 
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" "Feuerland 2" "Abbrechen" ) + 
if sub_set == 9 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 = { 

153600 1049600 } , 
153600 1049600 } , 
153600 1049600 } , 
} , 

402100 673900 } , 
270400 739900 } , 
321300 808000 } , 
} , 

217800 627200 } , 
221900 502700 } , 
344000 502500 } , 
} , 

434200 290600 } , 
375200 174900 } , 
491800 173600 } , 
} , 

975200 133000 } , 
977200 185000 } , 
923900 183600 } , 
} , 

599400 756300 } , 
597800 622200 } , 
730700 689800 } , 
} , 

590500 110500 } , 
590500 110500 } , 
590500 110500 } , 
} ,
{
460800 1049600 } , 
460800 1049600 } , 
460800 1049600 } , 
} , 

test_chat warp sub_set ] [ empire ] [ ] .. warp sub_set ] [ empire ] [ ] ) 
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 ] [ ] , warp sub_set ] [ empire ] [ ] ) 
end 
else 
local sub_set2 
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 469300 964200 
elseif 
empire == 2 then 
pc 
warp 55700 157900 
elseif 
empire == 3 then 
pc 
warp 969600 278400 
end 
elseif sub_set2 == 2 then 
say_title 
"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 
mfg
10/09/2010 12:29 .Flynn.#623
Quote:
Originally Posted by CoreDump View Post
welche klasse bist du?
in mathe noch nie was mit >= zeichen gemacht?

PHP Code:
 if 1==a then 
bei sowas würd ich mir am liebsten die augen auskratzen xDD
is zwar kein fehler aber alles hat seine ordnung
PHP Code:
 if a==1 then 
schön und gut aber wie lösen wir jetzt das problem das man erst ab 90 darein kann?
10/09/2010 12:43 CoreDump#624
@RootIt er war erster:
PHP Code:
quest kristal begin
    state start begin
        when 30133.
use with pc.get_level() >= 50 begin

            say_title
("Magischer Kristall:")
            
say("Ich bringe dich nun in die mysterioesen, gefaehrlichen Ebenen -")
            
say("Dem sogenannten SpinnenDungeon3")
            
say("Er birgt viele Gefahren.")
            
say("Man sagt, dort befinden sich die legendaeren Zombie Monster!")
            
say("Soll ich dich dorthin bringen?")


            
local aselect("Teleportier mich!""Nein ich bleib hier!")
            if 
1==a then
                say
("Magischer Kristall:")
                
say("")
                
say("Ok")
                
say("Viel Glück")
                
wait()
                
pc.warp(474700 484800)
                
pc.remove_item(30133,1)
            elseif 
2==a then
                say
("Magischer Kristall:")
                
say("")
                
say("Ok")
                
say("Eine Weise Entscheidung!")
            
end


        end
            

    end

end 
also deine lehrstunde:
Code:
when 30133.use with pc.get_level() >= 50 begin
wenn du das schreibst musst du das item besitzen.(muss vorhanden sein)
also brauchst du das nicht schreiben. und wenn der spieler doch nicht porten will, verliert er nur das item. also lhabe ich die abfrage weggelöscht und durch das hier ersetzt
Code:
pc.remove_item(30133,1)
(der kristall wird einmal entfernt)
Und das wichtigste ist in der Datenbank auf type 18 setzen
und wenn das alles nicht geht dann schau dir die fehlermeldung in VPC an

-------------------------------------------------------------------------
@Shadow329
die lösung steht im 2ten satz den ich geschrieben habe. >= verwenden!
denk mal mit und nicht fragen

-------------------------------------------------------------------------
@LoLIsBack
ich schau mir das teleporter-scrip sicher nicht an.
es gibt genau fertige die funzen. wozu noch selber schreiben? und mit einer fehlermeldung würd ich gezielt suchen.
10/09/2010 13:23 iYoshix3#625
@ CoreDump, die quest für RootIt ist immer noch falsch, da man sie auch nutzen kann, wenn man das item nicht hat hier die quest
@ RootIt



Mfg, Yoshix3
10/09/2010 14:03 RootIt#626
Ich muss leider sagen, dass keine der beiden Varianten funktioniert. Beim Item 30133 habe ich "Type" auf 18 gesetzt , krital.quest (ich weiß, dass kristall mit doppel "l" geschrieben wird, ist nur aufgund von Zeiteinsparung so gelaufen :D ) in die hongkong_list eingetragen und die kristal.quest datei in den quest ordner hochgeladen. Dann ingame quests reloaded, doch bei rechtsklick aufs item tut sich gar nichts >.<'
Jedoch schonmal Danke für die bisherige Hilfe
10/09/2010 15:00 CoreDump#627
LOL
wie kann man dieses item anklicken wenn man es nicht hat????
brain.exe vergessen oder was? xD
PHP Code:
when 30133.use with pc.get_level() >= 50 begin 
wie kann man dieses item benutzen ohne das man es besitzt?

Normalerweise wenn das item in der DB auf type 18 ist sollte es funktionieren
meine haben bis jetzt gefunzt
10/09/2010 15:18 RootIt#628
ich muss dir sagen, ich hab keine ahnung wovon du redest. Ich habe noch nie ne Quest geschrieben und ich weiß nicht, was mit " Wie kann man dieses item benutzen ohne das man es besitzt" und der darüberstehenden questzeile auf sich hat.
Klär mich auf.
Ich verstehs nicht.
10/09/2010 15:19 syηтaχ#629
Was ist an dieser Quest falsch?
Die Quest funktioniert nicht wenn ich den NPC (Kriegergeist) anspreche.
Tal von Ascaria ist auch entbuggt.
Der quest 777 Rechte gegeben und den anderen Dateien auch.
Sh make auch ausgeführt.

Kriegergeist Query:


Quest:


€: Gelöst

MfG Eazy
10/09/2010 15:29 CoreDump#630
PHP Code:
when 30133.use with pc.get_level() >= 50 begin 
bedeutet:
wenn(when) du den kristall(30133) mit level >=50 (pc.get_level()>=50)verwendetst(.use) ...dann fängt das quest an(begin)
englisch ist gefragt. wers nicht kann solls lernen
also wenn man den kristall mit lvl>=50 verwendet/anklickt -> begin
ich seh da nichts schweres daran.

also klartext: das is logischer menschenverstand. wenn man dieses item nicht hat dann kommt auch nix.
wie sollte das sonst funktionieren?