[SERVICE] Die Questkontrolle

03/30/2014 16:33 AuRaBuG#9931
Habe gerade keinen Server, aber klappt diese Quest?

PHP Code:
quest levelitem begin
    state start begin
        when ITEM
.use begin 
            say_title
("Erfahrungs Item")
            
say("")
            
say("Mit diesem Item kannst du dir aussuchen,")
            
say("welches Level dein Charakter haben soll.")
            
say("Möglich ist Lv.1 - Lv.15.")
            
say("")
            
local s tonumber(input())
            if 
and 16 then
                pc
.set_level(s)
            else
            
say("Die Eingabe erfüllt nicht die Bedingungen.")
                return
            
end
        end
    end
end 
Das"ITEM" ersetz ich noch durch ne Value
03/30/2014 16:50 [SA]Hiz#9932
Hallo, ich habe den Flammenrun eingebaut.
Allerdings portet er mich nicht auf die Map

Syserr:
PHP Code:
SYSERRMar 30 15:45:35 :: WarpSetcannot find map location index 0 x 780700 y 753800 name [SA]Nice 
Questabschnitt zum porten:
PHP Code:
  d.join(235,7779,6636
Versucht habe ich es auch mit zwei anderen Methoden:
PHP Code:
d.join(235
Dann kam die selbe Fehlermeldung wie oben, wenn ich es mit Koordinaten gemacht habe.

PHP Code:
d.new_jump_party(235,7779,6636
PHP Code:
SYSERRMar 30 15:51:49 :: RunStateLUA_ERROR: [string "blazingpurgatory"]:27attempt to call field `new_jump_party' (a nil value)
SYSERR: Mar 30 15:51:49 :: WriteRunningStateToSyserr: LUA_ERROR: quest blazingpurgatory.(null) click 
03/30/2014 18:33 SyncEdit#9933
Hallo habe ein problem mit meiner Starter quest. Kriege in putty die fehlermeldung:
starter.quest:44:Error occured on compile starter.quest

quest starter begin
state start begin
when login with pc.get_level() == 1 begin


pc . change_money ( 100000 )
pc . give_item2 ( "27003" , 200 )
pc . give_item2 ( "27006" , 200 )
pc . give_item2 ( "71050" , 200 )
pc . give_item2 ( "70038" , 200 )
pc . give_item2 ( "70007" , 1 )
pc . give_item2 ( "72702" , 1 )
pc . give_item2 ( "50053" , 1 )
horse . set_level(30)
horse . summon(10)
pc.give_exp2 ( "10" )
clear_letter ( )
if pc . job == 0 then
pc . give_item2 ( "19" , 1 )
pc . give_item2 ( "11209" , 1 )
pc . give_item2 ( "12209" , 1 )
pc . give_item2 ( "13009" , 1 )
pc . give_item2 ( "15009" , 1 )
elseif pc . job == 1 then
pc . give_item2 ( "1009" , 1 )
pc . give_item2 ( "11409" , 1 )
pc . give_item2 ( "12349" , 1 )
pc . give_item2 ( "13009" , 1 )
pc . give_item2 ( "15009" , 1 )
elseif pc . job == 2 then
pc . give_item2 ( "19" , 1 )
pc . give_item2 ( "11609" , 1 )
pc . give_item2 ( "12489" , 1 )
pc . give_item2 ( "13009" , 1 )
pc . give_item2 ( "15009" , 1 )
elseif pc . job == 3 then
pc . give_item2 ( "7009" , 1 )
pc . give_item2 ( "11809" , 1 )
pc . give_item2 ( "12629" , 1 )
pc . give_item2 ( "13009" , 1 )
pc . give_item2 ( "15009" , 1 )
end
end
end


Habe in dem letter ordner auch keine basic_weapon oder sowas und in der quest war auch keine datei. Aber man bekam bevor ich die quest eingefügt habe ganz normal Schwert+0 (Benutze Invoice files (xGr33n)

Bitte hilft mir :D
03/30/2014 20:51 MGC-NOM#9934
Fehler:
Code:
SYSERR: Mar 30 20:48:34 :: RunState: LUA_ERROR: [string "vip"]:78: attempt to index field `?' (a nil value)
SYSERR: Mar 30 20:48:34 :: WriteRunningStateToSyserr: LUA_ERROR: quest vip.start leave
Quest:
03/30/2014 20:53 AuRaBuG#9935
@SyncEdit: Probiers mal damit, du hattest dein if nicht beendet.

03/30/2014 22:29 Rofelmau#9936
Quote:
Originally Posted by AuRaBuG View Post
Habe gerade keinen Server, aber klappt diese Quest?

PHP Code:
quest levelitem begin
    state start begin
        when ITEM
.use begin 
            say_title
("Erfahrungs Item")
            
say("")
            
say("Mit diesem Item kannst du dir aussuchen,")
            
say("welches Level dein Charakter haben soll.")
            
say("Möglich ist Lv.1 - Lv.15.")
            
say("")
            
local s tonumber(input())
            if 
and 16 then
                pc
.set_level(s)
            else
            
say("Die Eingabe erfüllt nicht die Bedingungen.")
                return
            
end
        end
    end
end 
Das"ITEM" ersetz ich noch durch ne Value
wenn du den Befehl pc.set_level() in deiner questlib usw definiert hast, dann denke ja sonst nicht
03/31/2014 00:12 xSess#9937
Hallo, versuche die ganze Zeit eine Quest einzufügen. Sie soll relativ wie eine Bioquest sein^^

in der VB steht immer syntax error: [String "collect_rubin . count_item {9999} > 0"1;39: <eof> expected near else
Die_erste_Aufgabe.quest:115:Error occured on compile Die_erste_Aufgabe.quest

PHP Code:
 quest Die_erste_Aufgabe begin
     state start begin
         when login 
or levelup with pc.get_level()>= 6 begin
             set_state
(talk_to_disciple_lv6)
         
end    
     end
     state talk_to_disciple_lv6 begin
         when letter begin
             local v 
find_npc_by_vnum(20090)
             if 
!= 0 then target.vid("__TARGET__"v"Asami")
             
end
             send_letter
("Edelsteine Teil 1")
         
end
         when button 
or info begin
             say_title
("Die Forschungen von Asami")
             
say("")
             
say("Asami benötigt deine Hilfe.")
             
say("Sprich mit ihr.")
             
say("")
             
say_reward("Sprich mit Asami")
             
say("")
         
end
         when __TARGET__
.target.click or 20090.chat."Edelsteine Teil 1" begin
             target
.delete("__TARGET__")
             
say("Asami:")
             
say("")
             
say("Oh, wer bist du denn?")
             
say("Ah, du bist noch recht neu, ich verstehe.")
             
say("Ich bin übrigens Asami. Ich sammle verschiedene Edelsteine")
             
say("und suche noch jemanden, der mir dabei hilft.")
             
say("Hey! Könntest du mir nicht helfen?")
             
say("Wenn du mir bei verschiedenen Edelsteinarten hilfst,")
             
say("sie zu sammeln, werde ich dich Reich belohnen!")
             
wait()
             
say("Asami:")
             
say("Spitze! Als erstes suche ich Rubine")
             
say("sie sind nicht sehr selten, aber ich brauche davon sehr viele.")
             
say("Da ich zurzeit recht beschäftig bin wäre es nett, wenn du")
             
say("mir einige Rubine bringen könntest.")
             
say("")
             
wait()
             
say("Asami:")
             
say("Ich benötige 50 Rubine für meine Forschungen.")
             
say("Diese sind zwar sehr robust, aber")
             
say("es kann passieren, dass einige bei")
             
say("meinen Untersuchungen kaputt gehen.")
             
say("Ich benötige alle 50,")
             
say("um meine Forschungen vollenden zu können.")
             
say("")
             
set_state(collect_rubin)
             
pc.setqf("duration",0)
             
pc.setqf("collect_count",0)
         
end
     end
     state collect_rubin begin
         when letter begin
             send_letter
("Edelsteine Teil 1")
         
end
         when button 
or info begin
             say_title
("Rubine")
             
say("")
             
say("Asami gab euch den Auftrag,")
             
say("50 Rubine zu sammeln.")
             
say("Sammelt und bringt sie zu Asami.")
             
say("")
             
say_item_vnum(19
             
say_reward("Du hast derzeit "..pc.getqf("collect_count").." abgegeben!")
             
say("")
         
end
         when 20090.chat
."Rubine" with pc.count_item(9999)>0 begin
                 say
("Einen Moment ...")
                 
say("Vielen Dank,")
                 
say("lasst mich schnell überprüfen")
                 
say("ob dieser Rubin in Ordnung ist ...")
                 
say("")
                 
pc.remove_item("9999"1)
                 
wait()
                 
local rand number(0,99)
                 if 
rand<50 then
                     local count 
pc.getqf("collect_count")+1
                     
if count<10 then
                         pc
.setqf("collect_count"count)
                         
say("Asami:")
                         
say("Hervorragend, dieser Rubin ist in Ordnung.")
                         
say("Bringt mir noch welche, damit ich meine")
                         
say("Forschungen abschließen kann.")
                         
say("")
                         
say_reward("Ihr habt derzeit "..pc.getqf("collect_count").." abgegeben!")
                         
say("")
                     else 
                         
say("Asami:")
                         
say("Du hast mir die 50 Stück gebracht...")
                         
say("Nun bitte ich dich noch, mir den")
                         
say("ein gewisses Schmuckstück zu bringen.")
                         
say("Du bekommst es von jedem Monster in Map1 und Map2! ...")    
                         
say("Ich denke, dafür bist du stark genug.")
                         
say("")
                         
pc.setqf("collect_count",0)
                         
pc.setqf("duration",0
                         
set_state(collect_Schmuckstück)
                     
end
                 
else                                
                     
say("Asami:")
                     
say("Es tut mir leid, aber der Rubin ist bei")
                     
say("meinen Untersuchungen zerbrochen.")
                     
say("Bitte hol mir einen neuen Rubin!")
                     
say("")
                 
end
             
else
                 
say("Asami:")
                 
say("Entschuldige,")
                 
say("ich habe gerade noch alle Hand zutun...")
                 
say("Bitte bring mir den Rubin später.")
                 
say("")
             
end
      end
  end
  state collect_Schmuckstück begin
     when letter begin
         send_letter
("Das Schmuckstück")
     
end
     when button 
or info begin
         say_title
("Das Schmuckstück")
         
say("")
         
say("Du hast Asami alle 50 Rubine gebracht.")
         
say("Nun müsst du das Schmuckstück erbeuten.")
         
say("")
         
say_item_vnum(30141)
         
say("Was das wohl für ein Schmuck sein mag?")
         
say("")
     
end
     when 405.kill 
or 404.kill or 406.kill or 401.kill or 402.kill or 101.kill or 102.kill or 103.kill or 104.kill  begin
         
if pc.count_item(30141)<1 then
             local rand 
number(0,99)
             if 
rand<5 then pc.give_item2(301411)
             
end
         end    
     end
     when 20090.chat
."Das Schmuckstück" begin
         
if pc.count_item(30141)>0 then
             say
("Asami:")
             
say("Dank deiner Hilfe konnte ich einen neuen Rubin herstellen!")
             
say("Ich danke dir von ganzem Herzen.")
             
say("Du hast hart gekämpft.")
             
say("Geh doch bitte zu meinem Freund Sokka,")
             
say("er wird dir eine gute Belohnung geben.")
             
say("")
             
pc.remove_item(30141,1)
             
set_state(Schmuckstück_reward)
         else
             
say("Asami:")
             
say("Du hast mir die 50 Stück gebracht...")
             
say("Nun bitte ich dich noch, mir ein")
             
say("Schmuckstück zu bringen.")
             
say("Du bekommst es von allen Monstern in Map1 und Map2 ...")    
             
say("Ich denke, dafür bist du stark genug.")
             
say("")        
         
end
     end
 end  
 state schmuckstück_reward begin
     when letter begin
         send_letter
("Sprich mit Sokka")
         
local v find_npc_by_vnum(20018)
         if 
!= 0 then target.vid("__TARGET__"v"Sokka")
         
end
     end
     when button 
or info begin
         say
("Um die Belohnung von Asami zu erhalten,")
         
say("suche Sokka auf. Er wird dir eine prächtige Belohnung überreichen.")
         
say("")
     
end
     when __TARGET__
.target.click  or 20018.chat."Belohnung von Asami" begin
         target
.delete("__TARGET__")
         
say_title("Sokka:")
         
say("Ich sehe ...")
         
say("Asami hat dich zu mir geschickt.")
         
say("Hier ist deine Belohnung:")
         
say("")
         
say_reward("Du erhälst:")
         
say_reward("800 Trefferpunkte (permanent) und 10% Monster ")
         
say("")
         
affect.add_collect(apply.MAX_HP80060*60*24*365*60)
         
affect.add_collect(apply.ATTBONUS_MONSTER1060*60*24*365*60)
         
set_state(collect_quest_lv8)
     
end
 end 
03/31/2014 04:51 [SA]Hiz#9938
PHP Code:
quest flamenrun begin
    state start begin
        when 20373.chat
."Flammenrun" with pc.get_level() < 90 begin
            say_title
("Wächter des Flammenruns:")
            
say("Du kannst den Flammenrun nur betreten")
            
say("wenn du Level 90 bist.")
            
say_reward("Komm zurück wenn du level 90 erreicht hast.")
        
end
        when 20373.chat
."In den Flammenrun" with pc.get_level() >= 90 begin
            say_title
("Wächter des Flammenruns:")
            
say("")
            
say("Willst du den Flammenrun betreten?")
            
say("")
            
local s select("Ja, ich möchte""Nein, möchte ich nicht")
            if 
== 1 then
                pc
.warp(777327668731)
            elseif 
== 2 then
                
return
            
end
        end

        when 20091.chat
."Flammenrun starten" begin
            say_title
("Flammenrun Starten")
            
say("Dein Team und du seid bereit")
            
say("für einen langen Kampf?")
            
say("Wenns so ist, dann lasst uns starten!")
            
say_reward("Es kostet den Gruppenleiter 500 Rangpunkte!")
            
say("Fangt an, indem Ihr alle Monster im Norden tötet.")
            
local a =select("Ja wir sind bereit","Nein wir sind noch nicht bereit")
            if 
== 2 then
                
return
            elseif 
== 1 then
                
if not party.is_party() then
                    say
("Du musst dich in einer Gruppe befinden")
                    
say("um inden Falmmenrun zu kommen.")
                    return
                elseif 
not party.is_leader() then
                    say
("Es kann nur der Gruppenleader")
                    
say("den run starten.")
                    
say("")
                    return
                
end
                
if pc.get_alignment() >= 500 then
                    pc
.change_alignment(-500)
                    
d.new_jump_party(23877796636)
                    
d.setf("flammenrun"1)
                    
d.setf("killf1"0)
                    
d.regen_file("data/dungeon/flamerun/regen1.txt")
                elseif 
pc.get_alignment() < 500 then
                    say
("Du hast nicht genügend Rangpunkte")
                    return
                
end
            end
        end


        when kill with d
.getf("flammenrun") == 1 begin
         
if d.getf("killf1") <= 170 then -- 170
            d
.setf("killf1"d.getf("killf1") + 1)
         elseif 
d.getf("killf1") >= 170 then -- 170
            d
.kill_all()
            
d.clear_regen()
            
d.setf("flammenrun"2)
            
d.spawn_mob(8023513487)
            
d.set_regen_file("data/dungeon/flamerun/regen2.txt")
            
d.notice("1. Aufgabe geschafft!")
            
d.notice("Findet nun eure 2. Aufgabe")
         
end
        end


        when kill with npc
.get_race() == 8023 and d.getf("flammenrun") == 2 begin
            d
.kill_all()
            
d.clear_regen()
            
d.notice("Der Kaiserfelsen wurde zerstört")
            
d.notice("Die 3. Aufgabe wartet nun auf euch")
            
d.setf("flammenrun"3)
            
d.setf("killf2"0)
            
d.set_regen_file("data/dungeon/flamerun/regen3.txt")
        
end


        when kill with npc
.get_race() == 6051 and d.getf("flammenrun") == 3 begin
         
if d.getf("killf2") <= 9 then
             d
.setf("killf2"d.getf("killf2") + 1)
             
d.notice("Ihr habt einen Boss gekillt.")
             
d.notice("Ihr habt bereits "..d.getf("killf2").." getötet")
         elseif 
d.getf("killf2") == 10 then
             d
.kill_all()
             
d.clear_regen()
             
d.notice("Ihr habt alle Boss gekillt.")
             
d.notice("Tötet nun 130 Monster im anderen Raum")
             
d.setf("flammenrun"4)
             
d.getf("killf3"0)
             
d.set_regen_file("data/dungeon/flamerun/regen4.txt")
         
end
        end


        when kill with d
.getf("flammenrun") == 4 begin
         
if d.getf("killf3") <= 135 then
            d
.setf("killf3"d.getf("killf3") + 1)
         elseif 
d.getf("killf3") == 136 then
            d
.kill_all()
            
d.clear_regen()
            
d.notice("Aufgabe gemeistert!")
            
d.notice("Die Aufgabe mit den Säulen wartet auf euch")
            
d.setf("flammenrun"5)
            
d.setf("flammenseulen"6)
            
d.set_regen_file("data/dungeon/flamerun/regen5.txt")
            
d.spawn_mob(20386488353)
            
d.spawn_mob(20386524350)
            
d.spawn_mob(20386513337)
            
d.spawn_mob(20386492338)
            
d.spawn_mob(20386496363)
            
d.spawn_mob(20386513363)
         
end
        end


        when kill with d
.getf("flammenrun") == 5 begin
            
if number(1100) <= 3 then
                game
.drop_item(500841)
            
end
        end
        when 20386.take with item
.vnum == 50084 and d.getf("flammenrun") == 5 begin
         
if d.getf("flammenseulen") > 1 then
            
if number(1100) <= 20 then
                npc
.purge()
                
item.remove()
                
d.setf("flammenseulen"d.getf("flammenseulen") - 1)
                
say("Es hat funktioniert")
            elseif 
number(1100) > 50 then
                say
("Etwas ging schief.. Versuche es erneut")
                
item.remove()
                return
            
end
         
elseif d.getf("flammenseulen") == 1 then
            
if number(1100) <= 50 then
                npc
.purge()
                
item.remove()
                
d.kill_all()
                
d.clear_regen()
                
d.setf("flammenseulen"d.getf("flammenseulen") - 1)
                
say("Es hat funktioniert, die letzte Säule wurde entfernt")
                
say("Gibt jetzt bloß nicht auf. Ihr habts fast geschafft")
                
d.notice("Die letzte Säule wurde entfernt")
                
d.notice("Geht nun nach Westen")
                
d.setf("flammenrun"6)
                
d.set_regen_file("data/dungeon/flamerun/regen6.txt")
                
d.spawn_mob(20386194354)
                
local _count pc.count_item(50084)
                
pc.remove_item(50084,_count)
            elseif 
number(1100) > 50 then
                say
("Etwas ging schief.. Versuche es erneut")
                
item.remove()
                return
            
end
         end
        end


        when kill with d
.getf("flammenrun") == 6 begin
            
if number(1100) <= 3 then
                game
.drop_item(500841)
            
end
        end
        when 20386.take with item
.vnum == 50084 and d.getf("flammenrun") == 6 begin
            
if number(1100) <= 5 then
                npc
.purge()
                
item.remove()
                
d.kill_all()
                
d.clear_regen()
                
say("Der Stein hat funktioniert")
                
say("Gibt jetzt bloß nicht auf. Ihr habts fast geschafft")
                
d.notice("Ihr habt es geschafft")
                
d.notice("Ihr werdet in 10 Sekunden zur Kammer")
                
d.notice("von Razador hineingebracht")
                
d.spawn_mob(6091685603)
                
d.set_regen_file("data/dungeon/flamerun/regen7.txt")
                
d.setf("flammenrun"7)
                
local _count pc.count_item(50084)
                
pc.remove_item(50084,_count)
                
timer("flame_boss"10)
            elseif 
number(1100) > 6 then
                say
("Etwas ging schief.. Versuche es erneut")
                
item.remove()
                return
            
end
        end


        when flame_boss
.timer begin
            d
.jump_all(81106859)
        
end
        when kill with npc
.get_race() == 6091 and d.getf("flammenrun") == 7 begin
            d
.kill_all()
            
d.clear_regen()
            
notice_all("Das Team von "..pc.get_name().." hat den Flammenrun gemeistert")
            
d.notice("Ihr habt den Flammenrun geschafft")
            
d.notice("In 20 Sekunden werdet Ihr raus gebracht")
            
timer("flame_exit"20)
        
end
        when flame_exit
.timer begin
            d
.exit_all_to_start_position()
        
end

    end
end 
Mein Problem ist, dass wenn man sich ausloggt oder einen Kick bekommt und man wieder einloggt, man immernoch im Dungeon ist.
Also auf dem Dungeonmapindex z.B 238000, wobei das ja nicht sein darf.
Z.B wit im DT
Jemand eine Lösung?
03/31/2014 04:51 [SA]Hiz#9939
PHP Code:
quest flamenrun begin
    state start begin
        when 20373.chat
."Flammenrun" with pc.get_level() < 90 begin
            say_title
("Wächter des Flammenruns:")
            
say("Du kannst den Flammenrun nur betreten")
            
say("wenn du Level 90 bist.")
            
say_reward("Komm zurück wenn du level 90 erreicht hast.")
        
end
        when 20373.chat
."In den Flammenrun" with pc.get_level() >= 90 begin
            say_title
("Wächter des Flammenruns:")
            
say("")
            
say("Willst du den Flammenrun betreten?")
            
say("")
            
local s select("Ja, ich möchte""Nein, möchte ich nicht")
            if 
== 1 then
                pc
.warp(777327668731)
            elseif 
== 2 then
                
return
            
end
        end

        when 20091.chat
."Flammenrun starten" begin
            say_title
("Flammenrun Starten")
            
say("Dein Team und du seid bereit")
            
say("für einen langen Kampf?")
            
say("Wenns so ist, dann lasst uns starten!")
            
say_reward("Es kostet den Gruppenleiter 500 Rangpunkte!")
            
say("Fangt an, indem Ihr alle Monster im Norden tötet.")
            
local a =select("Ja wir sind bereit","Nein wir sind noch nicht bereit")
            if 
== 2 then
                
return
            elseif 
== 1 then
                
if not party.is_party() then
                    say
("Du musst dich in einer Gruppe befinden")
                    
say("um inden Falmmenrun zu kommen.")
                    return
                elseif 
not party.is_leader() then
                    say
("Es kann nur der Gruppenleader")
                    
say("den run starten.")
                    
say("")
                    return
                
end
                
if pc.get_alignment() >= 500 then
                    pc
.change_alignment(-500)
                    
d.new_jump_party(23877796636)
                    
d.setf("flammenrun"1)
                    
d.setf("killf1"0)
                    
d.regen_file("data/dungeon/flamerun/regen1.txt")
                elseif 
pc.get_alignment() < 500 then
                    say
("Du hast nicht genügend Rangpunkte")
                    return
                
end
            end
        end


        when kill with d
.getf("flammenrun") == 1 begin
         
if d.getf("killf1") <= 170 then -- 170
            d
.setf("killf1"d.getf("killf1") + 1)
         elseif 
d.getf("killf1") >= 170 then -- 170
            d
.kill_all()
            
d.clear_regen()
            
d.setf("flammenrun"2)
            
d.spawn_mob(8023513487)
            
d.set_regen_file("data/dungeon/flamerun/regen2.txt")
            
d.notice("1. Aufgabe geschafft!")
            
d.notice("Findet nun eure 2. Aufgabe")
         
end
        end


        when kill with npc
.get_race() == 8023 and d.getf("flammenrun") == 2 begin
            d
.kill_all()
            
d.clear_regen()
            
d.notice("Der Kaiserfelsen wurde zerstört")
            
d.notice("Die 3. Aufgabe wartet nun auf euch")
            
d.setf("flammenrun"3)
            
d.setf("killf2"0)
            
d.set_regen_file("data/dungeon/flamerun/regen3.txt")
        
end


        when kill with npc
.get_race() == 6051 and d.getf("flammenrun") == 3 begin
         
if d.getf("killf2") <= 9 then
             d
.setf("killf2"d.getf("killf2") + 1)
             
d.notice("Ihr habt einen Boss gekillt.")
             
d.notice("Ihr habt bereits "..d.getf("killf2").." getötet")
         elseif 
d.getf("killf2") == 10 then
             d
.kill_all()
             
d.clear_regen()
             
d.notice("Ihr habt alle Boss gekillt.")
             
d.notice("Tötet nun 130 Monster im anderen Raum")
             
d.setf("flammenrun"4)
             
d.getf("killf3"0)
             
d.set_regen_file("data/dungeon/flamerun/regen4.txt")
         
end
        end


        when kill with d
.getf("flammenrun") == 4 begin
         
if d.getf("killf3") <= 135 then
            d
.setf("killf3"d.getf("killf3") + 1)
         elseif 
d.getf("killf3") == 136 then
            d
.kill_all()
            
d.clear_regen()
            
d.notice("Aufgabe gemeistert!")
            
d.notice("Die Aufgabe mit den Säulen wartet auf euch")
            
d.setf("flammenrun"5)
            
d.setf("flammenseulen"6)
            
d.set_regen_file("data/dungeon/flamerun/regen5.txt")
            
d.spawn_mob(20386488353)
            
d.spawn_mob(20386524350)
            
d.spawn_mob(20386513337)
            
d.spawn_mob(20386492338)
            
d.spawn_mob(20386496363)
            
d.spawn_mob(20386513363)
         
end
        end


        when kill with d
.getf("flammenrun") == 5 begin
            
if number(1100) <= 3 then
                game
.drop_item(500841)
            
end
        end
        when 20386.take with item
.vnum == 50084 and d.getf("flammenrun") == 5 begin
         
if d.getf("flammenseulen") > 1 then
            
if number(1100) <= 20 then
                npc
.purge()
                
item.remove()
                
d.setf("flammenseulen"d.getf("flammenseulen") - 1)
                
say("Es hat funktioniert")
            elseif 
number(1100) > 50 then
                say
("Etwas ging schief.. Versuche es erneut")
                
item.remove()
                return
            
end
         
elseif d.getf("flammenseulen") == 1 then
            
if number(1100) <= 50 then
                npc
.purge()
                
item.remove()
                
d.kill_all()
                
d.clear_regen()
                
d.setf("flammenseulen"d.getf("flammenseulen") - 1)
                
say("Es hat funktioniert, die letzte Säule wurde entfernt")
                
say("Gibt jetzt bloß nicht auf. Ihr habts fast geschafft")
                
d.notice("Die letzte Säule wurde entfernt")
                
d.notice("Geht nun nach Westen")
                
d.setf("flammenrun"6)
                
d.set_regen_file("data/dungeon/flamerun/regen6.txt")
                
d.spawn_mob(20386194354)
                
local _count pc.count_item(50084)
                
pc.remove_item(50084,_count)
            elseif 
number(1100) > 50 then
                say
("Etwas ging schief.. Versuche es erneut")
                
item.remove()
                return
            
end
         end
        end


        when kill with d
.getf("flammenrun") == 6 begin
            
if number(1100) <= 3 then
                game
.drop_item(500841)
            
end
        end
        when 20386.take with item
.vnum == 50084 and d.getf("flammenrun") == 6 begin
            
if number(1100) <= 5 then
                npc
.purge()
                
item.remove()
                
d.kill_all()
                
d.clear_regen()
                
say("Der Stein hat funktioniert")
                
say("Gibt jetzt bloß nicht auf. Ihr habts fast geschafft")
                
d.notice("Ihr habt es geschafft")
                
d.notice("Ihr werdet in 10 Sekunden zur Kammer")
                
d.notice("von Razador hineingebracht")
                
d.spawn_mob(6091685603)
                
d.set_regen_file("data/dungeon/flamerun/regen7.txt")
                
d.setf("flammenrun"7)
                
local _count pc.count_item(50084)
                
pc.remove_item(50084,_count)
                
timer("flame_boss"10)
            elseif 
number(1100) > 6 then
                say
("Etwas ging schief.. Versuche es erneut")
                
item.remove()
                return
            
end
        end


        when flame_boss
.timer begin
            d
.jump_all(81106859)
        
end
        when kill with npc
.get_race() == 6091 and d.getf("flammenrun") == 7 begin
            d
.kill_all()
            
d.clear_regen()
            
notice_all("Das Team von "..pc.get_name().." hat den Flammenrun gemeistert")
            
d.notice("Ihr habt den Flammenrun geschafft")
            
d.notice("In 20 Sekunden werdet Ihr raus gebracht")
            
timer("flame_exit"20)
        
end
        when flame_exit
.timer begin
            d
.exit_all_to_start_position()
        
end

    end
end 
Mein Problem ist, dass wenn man sich ausloggt oder einen Kick bekommt und man wieder einloggt, man immernoch im Dungeon ist.
Also auf dem Dungeonmapindex z.B 238000, wobei das ja nicht sein darf.
Z.B wit im DT
Jemand eine Lösung?
03/31/2014 21:36 BlackBynes#9940
Hallo zusammen,

kennt sich zufällig jemand von euch mit der Datenbank (Mysql) aus? Ich bin gerade dabei eine Bank.quest zu schreiben funktioniert auch alles soweit bis auf der Punkt Überweisung.

hier zu dein einzelnen Punkten

Vielen Dank für eure Hilfe schon einmal
Gruß Blacky
03/31/2014 21:51 .Delta#9941
WHERE Name = ""..sname[1][1].."" das ist strange^^

probier mal
WHERE Name = '"..sname[1][1].."'
04/01/2014 16:09 xSess#9942
PHP Code:
quest Die_erste_Aufgabe begin
     state start begin
         when login 
or levelup with pc.get_level()>= 6 begin
             set_state
(talk_to_disciple_lv6)
         
end    
     end
     state talk_to_disciple_lv6 begin
         when letter begin
             local v 
find_npc_by_vnum(20090)
             if 
!= 0 then target.vid("__TARGET__"v"Asami")
             
end
             send_letter
("Edelsteine Teil 1")
         
end
         when button 
or info begin
             say_title
("Die Forschungen von Asami")
             
say("")
             
say("Asami benötigt deine Hilfe.")
             
say("Sprich mit ihr.")
             
say("")
             
say_reward("Sprich mit Asami")
             
say("")
         
end
         when __TARGET__
.target.click or 20090.chat."Edelsteine Teil 1" begin
             target
.delete("__TARGET__")
             
say("Asami:")
             
say("")
             
say("Oh, wer bist du denn?")
             
say("Ah, du bist noch recht neu, ich verstehe.")
             
say("Ich bin übrigens Asami. Ich sammle verschiedene Edelsteine")
             
say("und suche noch jemanden, der mir dabei hilft.")
             
say("Hey! Könntest du mir nicht helfen?")
             
say("Wenn du mir bei verschiedenen Edelsteinarten hilfst,")
             
say("sie zu sammeln, werde ich dich Reich belohnen!")
             
wait()
             
say("Asami:")
             
say("Spitze! Als erstes suche ich Rubine")
             
say("sie sind nicht sehr selten, aber ich brauche davon sehr viele.")
             
say("Da ich zurzeit recht beschäftig bin wäre es nett, wenn du")
             
say("mir einige Rubine bringen könntest.")
             
say("")
             
wait()
             
say("Asami:")
             
say("Ich benötige 50 Rubine für meine Forschungen.")
             
say("Diese sind zwar sehr robust, aber")
             
say("es kann passieren, dass einige bei")
             
say("meinen Untersuchungen kaputt gehen.")
             
say("Ich benötige alle 50,")
             
say("um meine Forschungen vollenden zu können.")
             
say("")
             
set_state(collect_rubin)
             
pc.setqf("duration",0)
             
pc.setqf("collect_count",0)
         
end
     end
     state collect_rubin begin
         when letter begin
             send_letter
("Edelsteine Teil 1")
         
end
         when button 
or info begin
             say_title
("Rubine")
             
say("")
             
say("Asami gab euch den Auftrag,")
             
say("50 Rubine zu sammeln.")
             
say("Sammelt und bringt sie zu Asami.")
             
say("")
             
say_item_vnum(19
             
say_reward("Du hast derzeit "..pc.getqf("collect_count").." abgegeben!")
             
say("")
         
end
         when 20090.chat
."Rubine" with pc.count_item(9999)>0 begin
                 say
("Einen Moment ...")
                 
say("Vielen Dank,")
                 
say("lasst mich schnell überprüfen")
                 
say("ob dieser Rubin in Ordnung ist ...")
                 
say("")
                 
pc.remove_item("9999"1)
                 
wait()
                 
local rand number(0,99)
                 if 
rand<50 then
                     local count 
pc.getqf("collect_count")+1
                     
if count<10 then
                         pc
.setqf("collect_count"count)
                         
say("Asami:")
                         
say("Hervorragend, dieser Rubin ist in Ordnung.")
                         
say("Bringt mir noch welche, damit ich meine")
                         
say("Forschungen abschließen kann.")
                         
say("")
                         
say_reward("Ihr habt derzeit "..pc.getqf("collect_count").." abgegeben!")
                         
say("")
                     else 
                         
say("Asami:")
                         
say("Du hast mir die 50 Stück gebracht...")
                         
say("Nun bitte ich dich noch, mir den")
                         
say("ein gewisses Schmuckstück zu bringen.")
                         
say("Du bekommst es von jedem Monster in Map1 und Map2! ...")    
                         
say("Ich denke, dafür bist du stark genug.")
                         
say("")
                         
pc.setqf("collect_count",0)
                         
pc.setqf("duration",0
                         
set_state(collect_Schmuckstück)
                     
end
                 
else                                
                     
say("Asami:")
                     
say("Es tut mir leid, aber der Rubin ist bei")
                     
say("meinen Untersuchungen zerbrochen.")
                     
say("Bitte hol mir einen neuen Rubin!")
                     
say("")
                 
end
             
else
                 
say("Asami:")
                 
say("Entschuldige,")
                 
say("ich habe gerade noch alle Hand zutun...")
                 
say("Bitte bring mir den Rubin später.")
                 
say("")
             
end
      end
  end
  state collect_Schmuckstück begin
     when letter begin
         send_letter
("Das Schmuckstück")
     
end
     when button 
or info begin
         say_title
("Das Schmuckstück")
         
say("")
         
say("Du hast Asami alle 50 Rubine gebracht.")
         
say("Nun müsst du das Schmuckstück erbeuten.")
         
say("")
         
say_item_vnum(30141)
         
say("Was das wohl für ein Schmuck sein mag?")
         
say("")
     
end
     when 405.kill 
or 404.kill or 406.kill or 401.kill or 402.kill or 101.kill or 102.kill or 103.kill or 104.kill  begin
         
if pc.count_item(30141)<1 then
             local rand 
number(0,99)
             if 
rand<5 then pc.give_item2(301411)
             
end
         end    
     end
     when 20090.chat
."Das Schmuckstück" begin
         
if pc.count_item(30141)>0 then
             say
("Asami:")
             
say("Dank deiner Hilfe konnte ich einen neuen Rubin herstellen!")
             
say("Ich danke dir von ganzem Herzen.")
             
say("Du hast hart gekämpft.")
             
say("Geh doch bitte zu meinem Freund Sokka,")
             
say("er wird dir eine gute Belohnung geben.")
             
say("")
             
pc.remove_item(30141,1)
             
set_state(Schmuckstück_reward)
         else
             
say("Asami:")
             
say("Du hast mir die 50 Stück gebracht...")
             
say("Nun bitte ich dich noch, mir ein")
             
say("Schmuckstück zu bringen.")
             
say("Du bekommst es von allen Monstern in Map1 und Map2 ...")    
             
say("Ich denke, dafür bist du stark genug.")
             
say("")        
         
end
     end
 end  
 state schmuckstück_reward begin
     when letter begin
         send_letter
("Sprich mit Sokka")
         
local v find_npc_by_vnum(20018)
         if 
!= 0 then target.vid("__TARGET__"v"Sokka")
         
end
     end
     when button 
or info begin
         say
("Um die Belohnung von Asami zu erhalten,")
         
say("suche Sokka auf. Er wird dir eine prächtige Belohnung überreichen.")
         
say("")
     
end
     when __TARGET__
.target.click  or 20018.chat."Belohnung von Asami" begin
         target
.delete("__TARGET__")
         
say_title("Sokka:")
         
say("Ich sehe ...")
         
say("Asami hat dich zu mir geschickt.")
         
say("Hier ist deine Belohnung:")
         
say("")
         
say_reward("Du erhälst:")
         
say_reward("800 Trefferpunkte (permanent) und 10% Monster ")
         
say("")
         
affect.add_collect(apply.MAX_HP80060*60*24*365*60)
         
affect.add_collect(apply.ATTBONUS_MONSTER1060*60*24*365*60)
         
set_state(collect_quest_lv8)
     
end
 end 
push helft mir mal bitte :D
04/01/2014 17:39 Rofelmau#9943
Quote:
Originally Posted by xSess View Post
PHP Code:
quest Die_erste_Aufgabe begin
     state start begin
         when login 
or levelup with pc.get_level()>= 6 begin
             set_state
(talk_to_disciple_lv6)
         
end    
     end
     state talk_to_disciple_lv6 begin
         when letter begin
             local v 
find_npc_by_vnum(20090)
             if 
!= 0 then target.vid("__TARGET__"v"Asami")
             
end
             send_letter
("Edelsteine Teil 1")
         
end
         when button 
or info begin
             say_title
("Die Forschungen von Asami")
             
say("")
             
say("Asami benötigt deine Hilfe.")
             
say("Sprich mit ihr.")
             
say("")
             
say_reward("Sprich mit Asami")
             
say("")
         
end
         when __TARGET__
.target.click or 20090.chat."Edelsteine Teil 1" begin
             target
.delete("__TARGET__")
             
say("Asami:")
             
say("")
             
say("Oh, wer bist du denn?")
             
say("Ah, du bist noch recht neu, ich verstehe.")
             
say("Ich bin übrigens Asami. Ich sammle verschiedene Edelsteine")
             
say("und suche noch jemanden, der mir dabei hilft.")
             
say("Hey! Könntest du mir nicht helfen?")
             
say("Wenn du mir bei verschiedenen Edelsteinarten hilfst,")
             
say("sie zu sammeln, werde ich dich Reich belohnen!")
             
wait()
             
say("Asami:")
             
say("Spitze! Als erstes suche ich Rubine")
             
say("sie sind nicht sehr selten, aber ich brauche davon sehr viele.")
             
say("Da ich zurzeit recht beschäftig bin wäre es nett, wenn du")
             
say("mir einige Rubine bringen könntest.")
             
say("")
             
wait()
             
say("Asami:")
             
say("Ich benötige 50 Rubine für meine Forschungen.")
             
say("Diese sind zwar sehr robust, aber")
             
say("es kann passieren, dass einige bei")
             
say("meinen Untersuchungen kaputt gehen.")
             
say("Ich benötige alle 50,")
             
say("um meine Forschungen vollenden zu können.")
             
say("")
             
set_state(collect_rubin)
             
pc.setqf("duration",0)
             
pc.setqf("collect_count",0)
         
end
     end
     state collect_rubin begin
         when letter begin
             send_letter
("Edelsteine Teil 1")
         
end
         when button 
or info begin
             say_title
("Rubine")
             
say("")
             
say("Asami gab euch den Auftrag,")
             
say("50 Rubine zu sammeln.")
             
say("Sammelt und bringt sie zu Asami.")
             
say("")
             
say_item_vnum(19
             
say_reward("Du hast derzeit "..pc.getqf("collect_count").." abgegeben!")
             
say("")
         
end
         when 20090.chat
."Rubine" with pc.count_item(9999)>0 begin
                 say
("Einen Moment ...")
                 
say("Vielen Dank,")
                 
say("lasst mich schnell überprüfen")
                 
say("ob dieser Rubin in Ordnung ist ...")
                 
say("")
                 
pc.remove_item("9999"1)
                 
wait()
                 
local rand number(0,99)
                 if 
rand<50 then
                     local count 
pc.getqf("collect_count")+1
                     
if count<10 then
                         pc
.setqf("collect_count"count)
                         
say("Asami:")
                         
say("Hervorragend, dieser Rubin ist in Ordnung.")
                         
say("Bringt mir noch welche, damit ich meine")
                         
say("Forschungen abschließen kann.")
                         
say("")
                         
say_reward("Ihr habt derzeit "..pc.getqf("collect_count").." abgegeben!")
                         
say("")
                     else 
                         
say("Asami:")
                         
say("Du hast mir die 50 Stück gebracht...")
                         
say("Nun bitte ich dich noch, mir den")
                         
say("ein gewisses Schmuckstück zu bringen.")
                         
say("Du bekommst es von jedem Monster in Map1 und Map2! ...")    
                         
say("Ich denke, dafür bist du stark genug.")
                         
say("")
                         
pc.setqf("collect_count",0)
                         
pc.setqf("duration",0
                         
set_state(collect_Schmuckstück)
                     
end
                 
else                                
                     
say("Asami:")
                     
say("Es tut mir leid, aber der Rubin ist bei")
                     
say("meinen Untersuchungen zerbrochen.")
                     
say("Bitte hol mir einen neuen Rubin!")
                     
say("")
                 
end
             
else
                 
say("Asami:")
                 
say("Entschuldige,")
                 
say("ich habe gerade noch alle Hand zutun...")
                 
say("Bitte bring mir den Rubin später.")
                 
say("")
             
end
      end
  end
  state collect_Schmuckstück begin
     when letter begin
         send_letter
("Das Schmuckstück")
     
end
     when button 
or info begin
         say_title
("Das Schmuckstück")
         
say("")
         
say("Du hast Asami alle 50 Rubine gebracht.")
         
say("Nun müsst du das Schmuckstück erbeuten.")
         
say("")
         
say_item_vnum(30141)
         
say("Was das wohl für ein Schmuck sein mag?")
         
say("")
     
end
     when 405.kill 
or 404.kill or 406.kill or 401.kill or 402.kill or 101.kill or 102.kill or 103.kill or 104.kill  begin
         
if pc.count_item(30141)<1 then
             local rand 
number(0,99)
             if 
rand<5 then pc.give_item2(301411)
             
end
         end    
     end
     when 20090.chat
."Das Schmuckstück" begin
         
if pc.count_item(30141)>0 then
             say
("Asami:")
             
say("Dank deiner Hilfe konnte ich einen neuen Rubin herstellen!")
             
say("Ich danke dir von ganzem Herzen.")
             
say("Du hast hart gekämpft.")
             
say("Geh doch bitte zu meinem Freund Sokka,")
             
say("er wird dir eine gute Belohnung geben.")
             
say("")
             
pc.remove_item(30141,1)
             
set_state(Schmuckstück_reward)
         else
             
say("Asami:")
             
say("Du hast mir die 50 Stück gebracht...")
             
say("Nun bitte ich dich noch, mir ein")
             
say("Schmuckstück zu bringen.")
             
say("Du bekommst es von allen Monstern in Map1 und Map2 ...")    
             
say("Ich denke, dafür bist du stark genug.")
             
say("")        
         
end
     end
 end  
 state schmuckstück_reward begin
     when letter begin
         send_letter
("Sprich mit Sokka")
         
local v find_npc_by_vnum(20018)
         if 
!= 0 then target.vid("__TARGET__"v"Sokka")
         
end
     end
     when button 
or info begin
         say
("Um die Belohnung von Asami zu erhalten,")
         
say("suche Sokka auf. Er wird dir eine prächtige Belohnung überreichen.")
         
say("")
     
end
     when __TARGET__
.target.click  or 20018.chat."Belohnung von Asami" begin
         target
.delete("__TARGET__")
         
say_title("Sokka:")
         
say("Ich sehe ...")
         
say("Asami hat dich zu mir geschickt.")
         
say("Hier ist deine Belohnung:")
         
say("")
         
say_reward("Du erhälst:")
         
say_reward("800 Trefferpunkte (permanent) und 10% Monster ")
         
say("")
         
affect.add_collect(apply.MAX_HP80060*60*24*365*60)
         
affect.add_collect(apply.ATTBONUS_MONSTER1060*60*24*365*60)
         
set_state(collect_quest_lv8)
     
end
 end 
push helft mir mal bitte :D
Da fehlt nen end am ende
04/01/2014 17:47 .Achi'#9944

Sorry weis nicht wie man des als php code einfügt :'D (Tabs usw alles richtig und und und..)

Problem: Wenn ich Auf & Absteige und das öfters wiederhole bekommt der Char immer mehr DEF aber die Monster % verschwinden..
04/01/2014 17:48 .yorliK#9945
Quote:
Originally Posted by BlackBynes View Post
Hallo zusammen,

kennt sich zufällig jemand von euch mit der Datenbank (Mysql) aus? Ich bin gerade dabei eine Bank.quest zu schreiben funktioniert auch alles soweit bis auf der Punkt Überweisung.

hier zu dein einzelnen Punkten

Vielen Dank für eure Hilfe schon einmal
Gruß Blacky
Quote:
Originally Posted by .Delta View Post
WHERE Name = ""..sname[1][1].."" das ist strange^^

probier mal
WHERE Name = '"..sname[1][1].."'

Ja das ist strange, da [1][1] nur bei der funktion searchname Auswirkungen hätte.
PHP Code:
local searchname mysql_query("select Name from quest.bankgold "
Somit müsste man searchname[1][1] schreiben um den Namen der durch die Select-Funktion gewählt worden ist, auszugeben^^

Dies wirft mich zu einer ganz anderen Frage
PHP Code:
 sname input() 
Man erfährt also dadurch wer der Empfänger ist, danach durch die Select-Funktion kann der Name gar nicht gewählt werden, da du kein WHERE ... setzt.
Richtig müsste es so sein.

Schöner wäre das ganze dann auch noch so:
PHP Code:
local sname input() 
PHP Code:
local searchname mysql_query("SELECT Name FROM quest.bankgold WHERE Name = '"..sname.."';")[1][1
Wieso verwendest du die Funktion pc.get_player_id() wenn du bei dem 2ten Transfer nach den Namen sucht, wäre leichter wenn'de dann auch nach dem Namen(welcher überweist) suchst.
PHP Code:
mysql_query("UPDATE quest.bankgold SET Konto1 = Konto1 - "..goldtrans.." WHERE Name = '"..pc.get_name().."';"
PHP Code:
mysql_query("UPDATE quest.bankgold SET Konto1 = Konto1 + "..goldtrans.." WHERE Name = '"..searchname.."';"
Ich hoffe doch auch das der Ort und die Spalten so heißen wie du sie angibst!