[SERVICE] Die Questkontrolle

01/06/2011 22:33 .Delta#1261
probiers mal so
PHP Code:
quest sommun_lion begin
    state start begin
        when 70045.
use begin
            
if pc.get_level() < 75 then
                say
("Deine Level ist zu niederig")
                
say("um das Siegel benutzen")
                
say("zu können. Du musst mindestens")
                
say("das Level 75 erreicht haben.")
            else
                
say_title("Siegel des Löwen")
                
say("Mit diesen Siegel kannst du")
                
say("einen Löwen herbeirufen, auf")
                
say("dem du dann für 20 Min. reiten")
                
say("kannst.")
                
say("Er erhöht deinen Angriffswert")
                
say("um 200 Punkte.")
                
say("")
                
say("Willst du den Löwen herbeirufen?")
                
local main_set select("Herbeirufen""Abbrechen")
                if 
main_set == 1 then
                    say
("Du hast den Löwen herbeigerufen.")
                    
say("Du kannst jetzt für 20 Min. auf")
                    
say("ihm reiten.")
                    
pc.mount(201131200)
                    
pc.remove_item(700451)
                elseif 
main_set == 2 then
                    
return
                
end
            end
        end
    end
end 
01/07/2011 03:06 snowkitt#1262
Ich habe doch noch einen fehler

Quote:
when devildown_jump2.timer begin
d.jump_all(4426, 12370)
d.regen_file("data/dungeon/dd_regen4.txt")
d.spawn_mob(20073, 1241, 250)
d.spawn_mob(20073, 1246, 242)
d.spawn_mob(20073, 1255, 243)
d.spawn_mob(20073, 1259, 250)
d.spawn_mob(20073, 1254, 258)
d.spawn_mob(20073, 1246, 258)
d.setf("devildownstone_count", 6)
timer('devildownstone1', 300)
d.notice("Um das Portal zum Roten Drache zu aktivieren, müssen");
d.notice("die alten Siegel zerstört werden. Ihr habt nur 20 Minuten,");
d.notice("um alle 6 Siegel zu öffnen.");
end

when devildownstone1.timer begin
d.notice("Verbleibende Zeit: 15 Minuten")
timer('devildownstone2', 300)
end

when devildownstone2.timer begin
d.notice("Verbleibende Zeit: 10 Minuten")
timer('devildownstone3', 300)
end

when devildownstone3.timer begin
d.notice("Verbleibende Zeit: 5 Minuten")
timer('devildownstone4', 300)
end

when devildownstone4.timer begin
d.notice("Die Zeit ist abgelaufen")
d.notice("Ihr werdet nun nach draußen teleportiert")
d.exit_all()
end

when 2510.kill with pc.in_dungeon() and d.getf("devillevel") == 6 begin
local KILL_COUNT_FOR_DROP_DEVIL_KEY = 15
local n =d.getf("count") + 1
d.setf("count", n)

if n == KILL_COUNT_FOR_DROP_DEVIL_KEY then
game.drop_item(50084, 1)
d.setf("count", 0)
end
end

when 20073.take with item.vnum == 50084 and d.getf("devillevel") == 6 begin
npc.purge()
item.remove()
d.setf("devildownstone_count", d.getf("devildownstone_count") - 1)
if d.getf("devildownstone_count") <= 0 then
d.setf("devillevel", 7)
-- Setzt die Timer von der Vorletzen EBENE auf 800000 Sec.
-- Um das nachträgliche herausfliegen zu vermeiden.
timer('devildownstone1', 800000)
timer('devildownstone2', 800000)
timer('devildownstone3', 800000)
timer('devildownstone4', 800000)
--------------------------------------------------------
d.notice("Ihr habt alle alten Siegel geöffnet.")
d.notice("Das Portal zum Roten Drache hat sich geöffnet.")
d.jump_all(4374, 12740)
else
d.notice("Es verbleibt eine Anzahl von "..d.getf("devildownstone_count").." Siegeln")
end
end

when devildown_nexttimer.timer begin
d.jump_all(4374, 12740)
In diesem stück geht das nicht mehr kann jemand mal den fehler suchen?
Wäre nett.
01/08/2011 11:50 .Delta#1263
Quote:
Originally Posted by snowkitt View Post
Ich habe doch noch einen fehler


In diesem stück geht das nicht mehr kann jemand mal den fehler suchen?
Wäre nett.
was isn falsch?
Bekommst du keine Schlüsselsteine oder kommst du nicht in die Ebene des roten Drachen?
Es könnte sein, dass du den Mob 2510 oder die Säule 20073 schon in einer anderen Quest verwendest und es deswegen nicht 100% funktioniert
01/09/2011 11:44 Lowwer#1264
Reittier-Quest vom Freund:
Was ist das der Fehler...?

PHP Code:
quest Reittier begin
    state start begin
        when 30129.
use begin
            say_title
("Hey ".. pc.get_name() ..".")
            
say("Welches Reittier willst du benutzen?")
            
local s select("Löwe","Keiler","Feuertiger","Wolf","Weißer Löwe","Dunkler Keiler","Dunkler Feuertiger","Dunkler Löwe","Dunkler Wolf","Höllenhund","Lykos","Abbrechen")
        if 
== 1 then
            say_reward
("Du hast den Löwen gerufen.")
            
pc.mount(20110)
            
end
        
if == 2 then
            say_reward
("Du hast den Keiler gerufen.")
            
pc.mount(20111)
            
end
        
if == 3 then
            say_reward
("Du hast den Feuertiger gerufen.")
            
pc.mount(20112)
            
end
        
if == 4 then
            say_reward
("Du hast den Wolf gerufen.")
            
pc.mount(20113)
            
end
         
if == 5 then
            say_reward
("Du hast den weißen Löwen gerufen.")
            
pc.mount(20114)
            
end
        
if == 6 then
            say_reward
("Du hast den dunklen Keiler gerufen.")
            
pc.mount(20115)
            
end
        
if == 7 then
            say_reward
("Du hast den dunklen Feuertiger gerufen.")
            
pc.mount(20116)
            
end
        
if == 8 then
            say_reward
("Du hast den dunklen Löwen gerufen.")
            
pc.mount(20117)
            
end
        
if == 9 then
            say_reward
("Du hast den dunklen Wolf gerufen.")
            
pc.mount(20118)
            
end
        
if == 10 then
            say_reward
("Du hast den Höllenhund gerufen.")
            
pc.mount(20119)
            
end
        
if == 11 then
            say_reward
("Du hast den Lykos gerufen.")
            
pc.mount(20120)
            
end
        end
    end
end 
01/09/2011 12:09 .Delta#1265
probiers so
PHP Code:
quest Reittier begin
    state start begin
        when 30129.
use begin
            say_title
("Hey ".. pc.get_name() ..".")
            
say("Welches Reittier willst du benutzen?")
            
local s select("Löwe","Keiler","Feuertiger","Wolf","Weißer Löwe","Dunkler Keiler","Dunkler Feuertiger","Dunkler Löwe","Dunkler Wolf","Höllenhund","Lykos","Abbrechen")
            if 
== 1 then
                say_reward
("Du hast den Löwen gerufen.")
                
pc.mount(20110)
            elseif 
== 2 then
                say_reward
("Du hast den Keiler gerufen.")
                
pc.mount(20111)
            elseif 
== 3 then
                say_reward
("Du hast den Feuertiger gerufen.")
                
pc.mount(20112)
            elseif 
== 4 then
                say_reward
("Du hast den Wolf gerufen.")
                
pc.mount(20113)
            elseif 
== 5 then
                say_reward
("Du hast den weißen Löwen gerufen.")
                
pc.mount(20114)
            elseif 
== 6 then
                say_reward
("Du hast den dunklen Keiler gerufen.")
                
pc.mount(20115)
            elseif 
== 7 then
                say_reward
("Du hast den dunklen Feuertiger gerufen.")
                
pc.mount(20116)
            elseif 
== 8 then
                say_reward
("Du hast den dunklen Löwen gerufen.")
                
pc.mount(20117)
            elseif 
== 9 then
                say_reward
("Du hast den dunklen Wolf gerufen.")
                
pc.mount(20118)
            elseif 
== 10 then
                say_reward
("Du hast den Höllenhund gerufen.")
                
pc.mount(20119)
            elseif 
== 11 then
                say_reward
("Du hast den Lykos gerufen.")
                
pc.mount(20120)
            elseif 
== 12 then
                
return
            
end
        end
    end
end 
01/09/2011 14:15 Endless.#1266
Hier mein Drachenrun.. eben fertig runtergeladen.. ich verstehe nicht
was hier mit ma_index gemeint ist.. ob ich die so lassen soll
oder auf 456 ändern soll..wie bei mir

PHP Code:
quest devildown begin
    state start begin
        when login begin
            
if pc.get_map_index() == 220 then
                pc
.set_warp_location(220391712931)
            
end
        end
    
        when 20067.chat
."Das Geheimnis Ascarias" begin
            say_title
("Kriegergeist")
            
say("")
            
say("Ich war einst Krieger der Kaiserlichen Armee.")
            
say("Vor vielen Jahren gab es einen Ort, der von einem")
            
say("Drache bewacht wurde. Heute kennt man ihn unter dem")
            
say("Name - Tal von Ascaria. Eigentlich wurde es mir")
            
say("verboten Informationen über die Lage dieses Ortes zu")
            
say("geben aber ich könnte dich trotzdem")
            
say("dort hin teleportieren.")
            
say("")
            
say_reward("Soll ich dich ins Tal von Ascaria teleportieren?")
            
            
local s select("Teleportieren""Hier bleiben")
                if 
== 1 then
                    pc
.warp(3917001293100)
                else
                    return
                
end
        end
        
        when 8024.kill with pc
.get_map_index()==220 begin
            local jump1 
number(120)
            if 
jump1<=10 then
                chat
("Das muss der Teil einer Karte sein.")
                
chat("Bringe ihn dem Surageist.")
                
game.drop_item(301361)
            else
                
chat("An diesem Metin war anscheinend keine Karte..")
            
end
        end
        
        when 20067.chat
."Teil einer Karte" begin
        
            
if pc.count_item(30136)>=1 then
                say
("Du hast eine Karte gefunden?!")
                
say("Lass mal sehen!")
                
pc.removeitem("30136"1)
                
wait()
                
say("Okay, ich denke als nächstes..")
                
say("Ja das ist okay.. Bis später!")
                
wait()                
                
d.new_jump_all(220318212142)
                
d.setf("devillevel"1)
            else
                
say("Ich habe gehört, dass man an den Metinsteine,")
                
say("hier in der Umgebung Teile von Karten finden kann,")
                
say("wenn man sie zerstört. Wenn du mir ein solches")
                
say("Teil bringen könntest, köntne ich dich in das")
                
say("nächste Gebiet teleportieren, da ich dann das")
                
say("Gebiet genauer untersuchen könnte.")
            
end
        end
        
        when login with pc
.in_dungeon() and d.getf("devillevel") == 1 begin
        
            
-- Removed Schlüsselsteine aus deinem Inventar falls vorhandenum Bugusing vorzubeugen. --
                
local boxto7pc.count_item(30300)  
                
pc.remove_item(30300,boxto7
gibt THX



Gruß Endless^^
01/09/2011 15:53 Lowwer#1267
Quote:
Originally Posted by Delta619 View Post
probiers so
PHP Code:
quest Reittier begin
    state start begin
        when 30129.
use begin
            say_title
("Hey ".. pc.get_name() ..".")
            
say("Welches Reittier willst du benutzen?")
            
local s select("Löwe","Keiler","Feuertiger","Wolf","Weißer Löwe","Dunkler Keiler","Dunkler Feuertiger","Dunkler Löwe","Dunkler Wolf","Höllenhund","Lykos","Abbrechen")
            if 
== 1 then
                say_reward
("Du hast den Löwen gerufen.")
                
pc.mount(20110)
            elseif 
== 2 then
                say_reward
("Du hast den Keiler gerufen.")
                
pc.mount(20111)
            elseif 
== 3 then
                say_reward
("Du hast den Feuertiger gerufen.")
                
pc.mount(20112)
            elseif 
== 4 then
                say_reward
("Du hast den Wolf gerufen.")
                
pc.mount(20113)
            elseif 
== 5 then
                say_reward
("Du hast den weißen Löwen gerufen.")
                
pc.mount(20114)
            elseif 
== 6 then
                say_reward
("Du hast den dunklen Keiler gerufen.")
                
pc.mount(20115)
            elseif 
== 7 then
                say_reward
("Du hast den dunklen Feuertiger gerufen.")
                
pc.mount(20116)
            elseif 
== 8 then
                say_reward
("Du hast den dunklen Löwen gerufen.")
                
pc.mount(20117)
            elseif 
== 9 then
                say_reward
("Du hast den dunklen Wolf gerufen.")
                
pc.mount(20118)
            elseif 
== 10 then
                say_reward
("Du hast den Höllenhund gerufen.")
                
pc.mount(20119)
            elseif 
== 11 then
                say_reward
("Du hast den Lykos gerufen.")
                
pc.mount(20120)
            elseif 
== 12 then
                
return
            
end
        end
    end
end 
Nee, geht immer noch nicht ._.
01/09/2011 15:58 .Delta#1268
müsste eigentlich...

hast du dem item den type 18 gegeben?
Rechte gegeben?
01/09/2011 18:33 Lowwer#1269
Achso. Das hat gefehlt nun gehts. Danke sehr *_*
Nur eine Frage:
Die ganzen auswählbaren Reittiere ragen über den einen Kasten. Kannst du vllt das du zwei Seiten machen wie beim Teleporter, dass man auch zurück kann ? Wär nett. Kann nämlich nicht so gut Quests-Scripten.^^
01/09/2011 23:11 Endless.#1270
Wäre nett wenn man mir bei meiner Quest noch helfen würde :S bzw sagen würde
ob ich die map_index dort auf 456 (wie in Filezilla ) ändern soll
oder nicht.. oder sagen warum der Drachenrun nicht los geht..
01/10/2011 15:56 .Delta#1271
@ Lowwer
PHP Code:
quest Reittier begin
    state start begin
        when 30129.
use begin
            say_title
("Hey ".. pc.get_name() ..".")
            
say("Welches Reittier willst du benutzen?")
            
local s select("Löwe","Keiler","Feuertiger","Wolf","Weißer Löwe""Weitere","Abbrechen")
            if 
== 1 then
                say_reward
("Du hast den Löwen gerufen.")
                
pc.mount(20110)
            elseif 
== 2 then
                say_reward
("Du hast den Keiler gerufen.")
                
pc.mount(20111)
            elseif 
== 3 then
                say_reward
("Du hast den Feuertiger gerufen.")
                
pc.mount(20112)
            elseif 
== 4 then
                say_reward
("Du hast den Wolf gerufen.")
                
pc.mount(20113)
            elseif 
== 5 then
                say_reward
("Du hast den weißen Löwen gerufen.")
                
pc.mount(20114)
            elseif 
== 6 then
                say
("Welches Reittier willst du benutzen?")
                
local w select("Dunkler Keiler","Dunkler Feuertiger","Dunkler Löwe","Dunkler Wolf","Höllenhund","Lykos","Abbrechen")
                if 
== 1 then
                    say_reward
("Du hast den dunklen Keiler gerufen.")
                    
pc.mount(20115)
                elseif 
== 2 then
                    say_reward
("Du hast den dunklen Feuertiger gerufen.")
                    
pc.mount(20116)
                elseif 
== 3 then
                    say_reward
("Du hast den dunklen Löwen gerufen.")
                    
pc.mount(20117)
                elseif 
== 4 then
                    say_reward
("Du hast den dunklen Wolf gerufen.")
                    
pc.mount(20118)
                elseif 
== 5 then
                    say_reward
("Du hast den Höllenhund gerufen.")
                    
pc.mount(20119)
                elseif 
== 6 then
                    say_reward
("Du hast den Lykos gerufen.")
                    
pc.mount(20120)
                elseif 
== 7 then
                    
return
                
end
            
elseif == 7 then
                
return
            
end
        end
    end
end 
dürfte so funktionieren.

@ xEndless
probiers doch einfach mal. Wenn es dann immer noch nicht funktioniert liegts an was anderem
01/10/2011 19:50 Endless.#1272
Delta.. der Drachenrun geht nicht ;(
01/11/2011 14:57 Lowwer#1273
Ich mal wieder :awesome:

1. Quest

PHP Code:
quest map3 begin
    state start begin
        when login begin
            
if pc.get("basic_weapon") == 0 then
                pc
.set("basic_weapon"1)
                    if 
pc.get_level() == 1 then
                    say_title
("Willkommensgruß")
                    
say("")
                    
say("Hallo Neuling!")
                    
say("Viele spannende Abenteuer und starke")
                    
say("Monster werden dich hier in der Welt")
                    
say("von Phorio erwarten. Hier wirst du")
                    
say("in einer angenehmen Atmosphäre spielen")
                    
say("können und Spaß haben. Am Besten")
                    
say("beginnst du deine Reise sofort, und suchst")
                    
say("Herausforderungen. Zum Start haben wir dir")
                    
say("ein kleines Starterpaket gegeben.")
                
end            
            end
        end
    end
end 
2. Quest.

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

    state information begin
        when letter begin
            send_letter
("Reiterprüfung")
        
end

        when info 
or button begin
            say_titel
("Reiterprüfung")
            
say("")
            
say("Nun, wo du etwas mehr Wissen und Stärke besitzt, wollen die")
            
say("Reichsgötter nun sehen, dass du in der Lage bist gutes zu")
            
say("vollbringen um später viele Metins zu zerstören. Deswegen")
            
say("haben sie sich eine Mission für dich ausgedacht. Aber sie")
            
say("wird nicht zu leicht sein, deswegen höre nun gut zu.")
            
say("")
            
say("Du musst insgesamt 100 Schwarze Orks und 100 Schwarzer")
            
say("Ork-Riesen töten.")
            
say("")
            
say("Rüste dich gut aus. Diese Monster sollte man nicht auf die")
            
say("leichte Schulter nehmen.")
            
say("")
            
say("Solltest du dich beweißen können werden die Reichsgötter dich")
            
say("gut belohnen. Mach lieber hin, sie können ungeduldig werden!")
            
say("")
            
say("")
            
pc.setqf("state"100)
            
q.set_counter("kills"100)
        
end

        when kill begin
            
if 636 and 637 then 
            local count 
pc.getqf("state") - 1
            
if count <= 100 then
                pc
.setqf("state"count)
                
q.set_counter("kills"count)
            
end
            
if count == 0 then
                say_title
("mob_kill1")
                
say("Du hast die Quest erfolgreich abgeschlossen!")
                
say("Du erhälst:")
                
say_reward("-Waffen-Pferdebuch!")
                
say_reward("-200 Karotten!")
                
say_reward("-Kraut der normalen Affen!")
                
say_reward("-Kampfgaul
                say_reward("
Außerdem:")
                say_reward("
1000000 Yang")
                say_reward("
5000000 Erfahrung")
                pc.change_money(1000000)
                pc.give_exp2(5000000)
                pc.give_item2(50052, 1)
                pc.give_item2(50055, 200)
                pc.give_item2(50058, 1)
                horse.set_level("
11")
                clear_letter()
                set_state(__COMPLETE__)

            end
        end
    end

    state __COMPLETE__ begin
    end
end 
01/11/2011 20:30 iYoshix3#1274

Bei der 2ten quest , was soll das "if 636 and 637 then" ... er gibt doch keinen
sinn xD

du musst es direkt ins when einbaun :

01/11/2011 20:52 Lowwer#1275
Quote:
Originally Posted by Yoshix3 View Post
Bei der 2ten quest , was soll das "if 636 and 637 then" ... er gibt doch keinen
sinn xD

du musst es direkt ins when einbaun
Sorry, Questanfänger ._. :D

Und danke dir :mofo: