elitepvpers

elitepvpers (https://www.elitepvpers.com/forum/)
-   Metin2 Private Server (https://www.elitepvpers.com/forum/metin2-private-server/)
-   -   [SERVICE] Die Questkontrolle (https://www.elitepvpers.com/forum/metin2-private-server/654217-service-die-questkontrolle.html)

Pаylasici 07/17/2010 23:58

[SERVICE] Die Questkontrolle
 
Hallo, langer Text kurzer Sinn, kurz Weg, schreibt eure kaputte Quest
hinein oder ladet es hoch.

Ihr könnt es mir auch über eine private Nachricht senden oder auch
in diesen Thread hineinposten, am besten gleich ein Bild vom
FreeBSD "MAKE.SH" Fehler hineinstellen.

So kann ich und andere den Fehler genauer analysieren kann. Mir wäre es
vorteilhaft eure Quests in den Thread hineinzuschreiben, so kann alles viel
schneller verlaufen.

mentalfight 07/18/2010 01:25

hier:
Code:

quest tal_von_ascari begin
        state start begin
                when login or levelup with pc.level >90 begin
                        set_state(tal_von_ascari)
                end
        end
               
        state tal_von_ascari begin
                when 20092.chat."Zugang zum Tal von Ascari" begin
                        say(""..mob_name(20092)..":")
                        say("")
                        say("Sei gegruesst Kämpfer!")
                        say("Seit kurzem habe ich den Schlüssel")
                        say("zum beruechtigten Tal von Ascari")
                        say("Dort im verborgenden leben die")
                        say("letzten Seelen der Krieger,")
                        say("die im schrecklichen Kampf um das Land")
                        say("ihr Leben liessen. Sie sind extrem stark und")
                        say("durch und durch mit Hass, Und ihr Boss!! Ohhh...")
                        say("Ich kann dich hinbringen aber sei gewahnt...")
                        local a= select("Auf nach Ascari!","Ich hab zuviel Angst...")
                        if 1==a then
                                say(""..mob_name(20092)..":")
                                say("")
                                say("Na schoen du hast es so gewollt...")
                                say("Ich hoffe ich sehen dich wieder...")
                                wait()
                                pc.warp(80100,100)
                        elseif 2==a then
                                say(""..mob_name(20092)..":")
                                say("")
                                say("Ok")
                                say("Ist auch besser so...")
                        end
                end
        end
end

Problem:
Wenn ich mich damit warpe sehe ich kuz die Map, dann gehts nach Map1...
PS: per /warp 80100 100 komme ich hin...

LordMampf2 07/18/2010 01:45

Quote:

Originally Posted by mentalfight (Post 6039012)
hier:
Code:

quest tal_von_ascari begin
        state start begin
                when login or levelup with pc.level >90 begin
                        set_state(tal_von_ascari)
                end
        end
               
        state tal_von_ascari begin
                when 20092.chat."Zugang zum Tal von Ascari" begin
                        say(""..mob_name(20092)..":")
                        say("")
                        say("Sei gegruesst Kämpfer!")
                        say("Seit kurzem habe ich den Schlüssel")
                        say("zum beruechtigten Tal von Ascari")
                        say("Dort im verborgenden leben die")
                        say("letzten Seelen der Krieger,")
                        say("die im schrecklichen Kampf um das Land")
                        say("ihr Leben liessen. Sie sind extrem stark und")
                        say("durch und durch mit Hass, Und ihr Boss!! Ohhh...")
                        say("Ich kann dich hinbringen aber sei gewahnt...")
                        local a= select("Auf nach Ascari!","Ich hab zuviel Angst...")
                        if 1==a then
                                say(""..mob_name(20092)..":")
                                say("")
                                say("Na schoen du hast es so gewollt...")
                                say("Ich hoffe ich sehen dich wieder...")
                                wait()
                                pc.warp(80100,100)
                        elseif 2==a then
                                say(""..mob_name(20092)..":")
                                say("")
                                say("Ok")
                                say("Ist auch besser so...")
                        end
                end
        end
end

Problem:
Wenn ich mich damit warpe sehe ich kuz die Map, dann gehts nach Map1...
PS: per /warp 80100 100 komme ich hin...

Da hast du einen fehler mit der map..
die Quest sieht gut aus ;)

.Namenslos 07/18/2010 02:28

Code:

quest m begin
  state start begin
        when 70095.use begin
                say("Dieses Ticket!!")
                say("Es ist sehr selten ..es bringt einen laut der Beschreibung!")
                say("in die 2.Ebene des Spinnendungeons!")
                say("Willst du wirklich dorthin?")
                local s = select("Ja!", "..Nein")
                if 1 == s then
                pc.warp(705000, 465000)
                end
          end
    end
end

Mhh :s Funkt nich

mentalfight 07/18/2010 13:27

Quote:

Originally Posted by LordMampf2 (Post 6039163)
Da hast du einen fehler mit der map..
die Quest sieht gut aus ;)

danke :)
kann mir jemand sagen wo das problem seien könnte bzw per teamviewer nahschauen?
PS:suche noch ein GA der sowas kann =)
greetZ
[SA]Crank aka mentalfight

synox07162 07/18/2010 14:08

Quote:

Originally Posted by .Namenslos (Post 6039386)
Code:

quest m begin
  state start begin
        when 70095.use begin
                say("Dieses Ticket!!")
                say("Es ist sehr selten ..es bringt einen laut der Beschreibung!")
                say("in die 2.Ebene des Spinnendungeons!")
                say("Willst du wirklich dorthin?")
                local s = select("Ja!", "..Nein")
                if 1 == s then
                pc.warp(705000, 465000)
                end
          end
    end
end

Mhh :s Funkt nich

Du hast vergessen die 2. Möglichkeit zu benutzen. Weiß nicht genau wie , aber entweder mit "else" oder mit 2 == s

Pаylasici 07/18/2010 14:53

@ .Namenslos:

PHP Code:

quest m begin
    state start begin
        when 70095.
use begin
            say_title
("Die nächste Etage")
            
say("Dieser Ticket, unglaublich. Es ist sehr")
            
say("selten, es bringt einen in die nächste Etage")
            
say("des Spinnendungeons.")
            
say_reward("Willst du wirklich dorthin?")
        
        
local s select("Ja""Nein")
            if 
== s then
                pc
.warp(705000465000)
            else
                return
            
end
        end 
    end 
end 


LastHealing 07/18/2010 15:20

kannst du auch Quests erstellen? Z.B. eine Quest dafür machen das Pferdezucker endlich seine gewünschte Funktion gibt? Muss nicht umbedingt Def geben aber es sollte aufjedenfall das Pferd benennen können.

MFG

LastHealing

Pаylasici 07/18/2010 15:25

Nein, ich erstelle keine Quests, denn wenn ich welche erstelle, dann lernt ihr nichts daraus, versucht es mal selber und wenn es nicht geklappt hat, bin ich ja da. :D

.Apfel 07/18/2010 15:30

^^
 
Code:

quest vipkristall begin
    state start begin
        when 90003.use with pc.get_level() >= 10 begin
        if get_time() > pc.getqf("vipwartezeit") then
               
                say_title("Verifizierung des VIP-Status")
                        say("")
                        say("Guten Tag,")
                        say("um Deinen VIP-Status nutzen zu können")
                        say("brauchen wir eine Identifizierung von Dir.")
                        say("Gebe deshalb hier nun den Code ein den du von,")
                        say("einem GM erhalten kannst.")
                       
                        local s=input()
                        if s!= "Azeroth2" then
                    return
                        end
         
                          local w = select("Bossmob rufen", "Teleportieren #1", "Teleportieren #2", "Abbrechen")
                               
                        if w == 1 then
                                        local e = select("Oberork", "Neunschwanz", "Gelber Tigergeist", "Königsspinne", "Abbrechen")
                                       
                                        if e == 1 then
                                syschat("Du hast einen Oberork gerufen! - Sei vorsichtig!")
                                        mob.spawn(691, pc.get_x() , pc.get_y() , 1 , 1 , 1)
                                        pc.setqf("vipwartezeit",get_time()+86400)                       
                                        elseif e == 2 then
                                syschat("Du hast einen Neunschwanz gerufen! - Sei vorsichtig!")
                                        mob.spawn(1901, pc.get_x(), pc.get_y() , 1 , 1 , 1)
                                        pc.setqf("vipwartezeit",get_time()+86400)                               
                                        elseif e == 3 then
                                syschat("Du hast einen Gelben Tigergeist gerufen! - Sei vorsichtig!")
                                        mob.spawn(1304, pc.get_x(), pc.get_y() , 1 , 1 , 1)
                                        pc.setqf("vipwartezeit",get_time()+86400)                       
                                        elseif e == 4 then
                                syschat("Du hast eine Königsspinne gerufen! - Sei vorsichtig!")
                                        mob.spawn(2091, pc.get_x(), pc.get_y() , 1 , 1 , 1)
                                        pc.setqf("vipwartezeit",get_time()+86400)                       
                                elseif e == 6 then
                                return
                                else
                                return
                                end
                               
                        elseif w == 2 then
                                local tele = select("SD2 Anfang", "Feuerland", "Dämonenturm", "Berg Sohan", "Orktal", "Tempel", "Schlangenfeld", "Abbrechen")                       
                               
                                if tele == 1 then
                                syschat("<VIP>: Du wirst ins SD2 teleportiert!")
                                pc.warp(704100, 464100)
                                elseif tele == 2 then
                                syschat("<VIP>: Du wirst ins Feuerland teleportiert!")
                                pc.warp(17500, 71500)
                                elseif tele == 3 then
                                syschat("<VIP>: Du wirst in die nähe vom Dämonenturm teleportiert!")
                                pc.warp(591000, 111000)
                                elseif tele == 4 then
                                syschat("<VIP>: Du wirst ins Eisland teleportiert!")
                                pc.warp(435000, 215800)
                                elseif tele == 5 then
                                syschat("<VIP>: Du wirst ins Orktal teleportiert!")
                                pc.warp(333300, 749600)
                                elseif tele == 6 then
                                syschat("<VIP>: Du wirst in den Tempel teleportiert!")
                                pc.warp(553600, 144000)
                                elseif tele == 7 then
                                syschat("<VIP>: Du wirst ins Schlangenfeld teleportiert!")
                                pc.warp(840000, 720000)
                                elseif tele == 8 then
                                return
                               
                                else
                                return
                                end
                               
                        elseif w == 3 then
                                local tele2 = select("Rotes Reich Map1", "Blaues Reich Map1", "Gelbes Reich Map1", "Abbrechen")
                               
                                if tele2 == 1 then
                                syschat("<VIP>: Du wirst ins Rote Reich Map1 teleportiert!")
                                pc.warp(469300, 964200)
                                elseif tele2 == 2 then
                                syschat("<VIP>: Du wirst ins Blaue Reich Map1 teleportiert!")
                                pc.warp(969600, 278400)
                                elseif tele2 == 3 then
                                syschat("<VIP>: Du wirst ins Gelbe Reich Map1 teleportiert!")
                                pc.warp(557, 1579)
                                elseif tele == 4 then
                                return
                               
                                else
                                return
                                end
                        elseif w == 4 then

                                return
                        else
                                return
                       
                        end
               
               
                else
                syschat("<VIP>: Nachdem Du ein Bossmob gerufen hast, muss sich der Kristall,")
                syschat("<VIP>: 1 Tag lang regenerieren!")
                end
                       
                 
        end -- end when use item
    end -- end state start
end -- end quest warpring

Problem: Spawn zu denjenigen Punkten die ich dort angegeben habe, und
den Mob Spawn :-(

Pаylasici 07/18/2010 15:42

Hmm, versuch mal einen Monster bei einem festgesetzter Koordination zu spawnen. Also ohne das er die Koordinaten abruft und schau mal ob es klappt, wenn ja, melde dich nochmal.

Saaja 07/18/2010 15:49

Ka welche Quest :D

Make.sh =
[Only registered and activated users can see links. Click Here To Register...]

Tanhii 07/18/2010 16:19

Quote:

Originally Posted by LastHealing (Post 6044988)
kannst du auch Quests erstellen? Z.B. eine Quest dafür machen das Pferdezucker endlich seine gewünschte Funktion gibt? Muss nicht umbedingt Def geben aber es sollte aufjedenfall das Pferd benennen können.

MFG

LastHealing

Geht nur mit Files von 2009 da es dort neue Questfinktionen und eine neue Spalte in der Datenbank geben muss!

.Apfel 07/18/2010 16:19

Es sind 2 Funktionen, einmal das man sich zu den Koordinaten porten kann (was nicht funktioniert) und die 2. das man Bossmobs spawnen kann!
Problem ist das er mich weder portet, noch den Mob spawnt...

Dragara 07/18/2010 16:35

So Payla ;x My Quest & so... Aber begutachte sie auch so und sag mir dann in Skype was falsch war & so x) Für die anderen nicht wundern, bin kompletter Newbie in sachen Scripten. Jeder anfang ist schwer :p


Spoiler:

Stallbursche möchte ein Date mit Mirine, und man soll für den Stallburschen zu Mirine gehen und sie danach Fragen, als Belohnung gibt es einen Kampfgaul [Lvl20]. Hoffe ist mir einiger massen gelungen ;x


PHP Code:

quest adatefor begin
state start begin
when login with pc
.level<=25 begin
set_state
end
state information begin
when letter begin
send_letter
("Bitte hilf mir!")
end
when button 
or info begin
say title 
("Bitte hilf mir!")
say("Ich habe mich in eine Frau verliebt.")
say("Ihr Name ist Mirine, ich traue mich nicht")
say("sie anzusprechen. Sprech sie bitte an")
say("ich werde dich auch reich belohnen.")
end 
state 
goto begin
when letter begin
when letter begin
local v
=find_npc_by_vnum(GEMIVNUM) -- mache v zu Gemi
if 0==v then -- Wenn keine Gemi gefunden wurde dann mach nichts
else
target.vid("__TARGET__"v"Geh zur Gemi") -- setze die Gemi als neues Ziel
end
send_letter
("Komm zu mir!")
end
when button 
or info begin
say_title
("Kom zu mir!")
say("Geh zu Mirine")
end
when __TARGET__
.target.click begin
target
.delete("__TARGET__")
say("Stallbursche :")
say("Ich habe mich in eine Frau verliebt.")
say("Ihr Name ist Mirine, ich traue mich nicht")
say("sie anzusprechen. Könntet ihr bitte zu Mirine")
say("gehen und sie für mich nach ein Date fragen?")
say("Ich würde dich reichlich belohnen.")
say("Bitte helft mir!")
say("")
local s select("Ich helfe doch gerne","Nein, keine Zeit")
if 
s=1 then
set_state
(goto)
else
say("Schade...")
say("")
clear_letter()
q.done()
end
state 
goto
when letter begin
local v
=find_npc_by_vnum(MIRINEVNUM)
if 
0==v then
else
target.vid("__TARGET__"v"Geh zu Mirine")
end
when letter begin
send_letter
("Komm zu mir!")
end
when button 
or info begin
say_title
("Geh zu Mirine!")
say("")
end
when __TARGET__
.target.click begin
target
.delete("__TARGET__")
say("Mirine :")
say("Der Stallbursche möchte dich näher Kennenlernen?")
say("Sag ihm Nein, ich habe bereits eine Beziehung.")
say("Bis dann...")
say("")
set_state(backto)
end
state backto
when letter begin
local v
=find_npc_by_vnum(VNUM)
if 
0==v then
else
target.vid("__TARGET__"v"Geh zum Stallbursche")
end
when letter begin
send_letter
("Geh zum Stallbursche!")
end
when button 
or info begin
say_title
("Geh zum Stallbursche!")
say("Berichte dem Stallbursche")
say("")
end
when __TARGET__
.target.click begin
target
.delete("__TARGET__")
say("Stallbursche :")
say("Sie hat eine Beziehung?")
say("Schade aber ich hab dir eine belohnung versprochen.")
say("")
say_reward("Der Stallbursche gibt dir ein Kampfpferd")
pc_giveitem(VNUM)
clear_letter()
set_state(__COMPLETE__)
end
state __COMPLETE__ begin
end 


IgorGlock 07/18/2010 17:01

Quote:

Originally Posted by Saaja (Post 6045422)
Ka welche Quest :D

Make.sh =
[Only registered and activated users can see links. Click Here To Register...]

Ich helf' dir... wenn du willst melde dich bei mir im ICQ.
Das Problem steht weiter oben.. also musst nach oben scrollen wo das angefangen hat. Amsonsten kann ich dir [Only registered and activated users can see links. Click Here To Register...] empfehlen.

.Apfel 07/18/2010 17:34

Quote:

Originally Posted by excore (Post 6045915)
Es sind 2 Funktionen, einmal das man sich zu den Koordinaten porten kann (was nicht funktioniert) und die 2. das man Bossmobs spawnen kann!
Problem ist das er mich weder portet, noch den Mob spawnt...

^Problem :(

Pаylasici 07/18/2010 17:37

Quote:

Originally Posted by Saaja (Post 6045422)
Ka welche Quest :D

Make.sh =
[Only registered and activated users can see links. Click Here To Register...]

Deine Libs sind kaputt, reinstallieren, wenns nichts nützt deinen kompletten Questordner mal "777" Zugriffsrechte geben.

------------------------------------------------------------

@ Dragara:

Spoiler:
PHP Code:

quest adatefor begin
    state start begin
        when login 
or levelup with pc.get_level() <= 25 begin
            set_state
(information)
        
end
    end

    state information begin
        when letter begin
            send_letter
("Bitte hilf mir!")
        
end

        when button 
or info begin
            say_title
("Bitte hilf mir!")
            
say("Ich habe mich in eine Frau verliebt.")
            
say("Sie ist die Gemischtwarenhändlerin, ich")
            
say("traue mich nicht sie anzusprechen.")
            
say("sie bitte an ich werde dich auch sehr")
            
say("reich belohnen.")
            
set_state(goto)
        
end

    state 
goto begin
        when letter begin
            local v
=find_npc_by_vnum(9003)
                if 
0==v then
            
else
                
target.vid("__TARGET__"v"Gemischtwarenhändlerin")
            
end
        end
        
        when letter begin
            send_letter
("Suche einer Geliebten!")
        
end

        when button 
or info begin
            say_title
("Suche einer Geliebten!")
            
say("Der junge Herr liebt die nette süße")
            
say("Gemischtwarenhändlerin, doch er ist zu")
            
say("schüchtern, deshalb hat er dir die")
            
say("Aufgabe gegeben, sie für ihn")
            
say("anzusprechen.
        end
        
        when __TARGET__.target.click begin
            target.delete("
__TARGET__")
                say_title("
Gemischtwarenhändlerin:")
                say("
WasDer junge Herr von den hinteren")
                say("
Berges liebt michStimmt das?")
                say("
Reizenvolldoch warum hat er mir das")
                say("
Geheimnis nicht selber gesagtSchüchtern?")
                say("
Süßer Kauzich nehme sein Date an.")
                clear_letter()
                set_state( __COMPLETE__ )
            end
        end
            state __COMPLETE__ begin
        end
    end 


.Apfel 07/18/2010 18:11

@Payla$ici
Weisste auch was bei mir das PRoblem ist?

Pаylasici 07/18/2010 18:27

Nicht wirklich, wenn du willst kannst du meine Warpringquest haben und das Problem für Monster, machst du einfach neue Bossrufrollen, dafür gibts auch Tutorials, anschließend stellst du ein das man die Rufrollen mit dem V.I.P Item hervorholen kann. Aber Oberork und weitere Bosse haben schon Bossrufrollen, also muss du keine neuen machen. Wenn du Fragen bei Funktionen hast, kannst du auch gerne bei mir Fragen. Ist eigentlich der gleiche Sinn, du baust meine Warpringquest einfach in dein Item ein. Wie währe es?

.Apfel 07/18/2010 18:46

Nehm ich gerne an^^ Kannste dann gerne über PN schicken^^

Pаylasici 07/18/2010 21:05

Gut, dann ist meine Warteliste leer. Ich warte auf die nächsten Kontrollen.

jumpstyle31 07/18/2010 21:46

Quote:

quest kampfgaulquest begin
state start begin
when login with pc.level >= 5 begin
set_state(information)
end
end

state information begin
when letter begin
send_letter("Du willst einen Kampfgaul?")
end

when info or button begin
say("Du willst einen Kampfgaul?")
say("Hallo Nachwuchskaempfer!")
say("So nun geht es darum noch staerker zu werden.")
say("Dies erfordert das du mit einem Kampfgaul kaempfst!")
say_reward("Toete 10 Weisse Tiger")
say("")
pc.setqf("state", 10)
q.set_counter("Weisser Tiger", 10)
end

when 115.kill begin
local count = pc.getqf("state") - 1
if count <= 10 then
pc.setqf("state", count)
q.set_counter("Weisser Tiger", count)
end
if count == 0 then
say_title("Du willst einen Kampfgaul?")
say("Du hast die Quest erfolgreich abgeschlossen!")
say("Du erhälst:")
say_reward("Waffen-Pferdebuch")
say_reward("und")
say_reward("5 Handbuch Pferdezaehmen")
say_reward("Außerdem:")
say_reward("1.500.000 Yang")
say_reward("800 Erfahrung")
say_reward("11 Pferdelevel")
pc.change_money(1500000)
pc.give_exp2(800)
pc.give_item2(50052, 1)
pc.give_item2(50061, 5)
horse.set_level("11")
clear_letter()
set_state(__COMPLETE__)

end
end
end

state __COMPLETE__ begin
end
end

in VPC kommt:

must start with 'quest'
kampfgaulquest:1:Abort trap (core dumped)

.BasH^# 07/18/2010 23:45

deviltower_zone

PHP Code:

quest deviltower_zone begin
    state start begin
    when login begin
        
if pc.get_map_index() == 66 then
        
-- Nicht in einer Etage, die wieder nach drau¡¼n .
        -- 
Layer Range 
        
-- 1F   88  577  236 737
        
-- 2F   91  343  238 504
        
-- 3F  104  107  248 269
        
if pc.get_x() < 2048+88 or pc.get_y() < 6656+577 or pc.get_x() > 2048+236 or pc.get_y() > 6656+737 then
            pc
.warp((5376+532)*100, (512+596+4)*10065)
        
end
        pc
.set_warp_location(655376+532512+596+4)
        elseif 
pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 then
        pc
.set_warp_location(655376+532512+596+4)
        
end
    end
    when deviltower_man
.chat.locale.deviltower_man_chat begin
        
if pc.get_level() < 40 then
        say
(locale.deviltower_man_say_you_cant)
        else
        
say(locale.deviltower_man_say)
        
local s select(locale.deviltower_enter,locale.deviltower_no_enter)
        if 
== 1 then
            
-- warp into!
            
pc.warp(216500,727000)
        
end
        end
    end
    when devil_stone1
.kill begin
        timer
("devil_stone1_1"6)
    
end
    when devil_stone1_1
.timer begin
        local mapto7
pc.count_item(30302)  -- Ich weiß nichtdas wahre Tilgung der die Existenz der Seele des Turms 
        pc
.remove_item(30302,mapto7)

        
local boxto7pc.count_item(30300)  -- Beseitigung des unbekannten weiß nichtob es sich um ein Feld 
        pc
.remove_item(30300,boxto7)

        
d.new_jump_all(66special.devil_tower[1][1], special.devil_tower[1][2])
        
d.regen_file("data/dungeon/deviltower2_regen.txt")
        
d.set_warp_at_eliminate(4d.get_map_index(), special.devil_tower[2][1], special.devil_tower[2][2], "data/dungeon/deviltower3_regen.txt")
    
end
    
--when devil_stone2.kill begin
    
--d.jump_all_local(special.devil_tower[2][1], special.devil_tower[2][2])
    --
end
    when devil_stone3
.kill begin
        
--d.jump_all_local(special.devil_tower[3][1], special.devil_tower[3][2])
        --
d.set_exit_all_at_eliminate(6)
        --
d.set_warp_at_eliminate(6d.get_map_index(), 100100)
        --
d.set_warp_at_eliminate(4655376+532512+596+4)
        
d.set_warp_at_eliminate(4d.get_map_index(), special.devil_tower[3][1], special.devil_tower[3][2], "data/dungeon/deviltower4_regen.txt")
        
d.check_eliminated()
        --
d.exit_all()
    
end
    
function get_4floor_stone_pos()
        
local positions = {
        {
368629},
        {
419630},
        {
428653},
        {
422679},
        {
395689},
        {
369679},
        {
361658},
        }
        for 
1do
        
local j number(i7)
        if 
!= j then
            local t 
positions[i];
            
positions[i] = positions[j];
            
positions[j] = t;
        
end
        end
        
--for 1do
    --    
positions[i][1] = positions[i][1] * 100
    
--    positions[i][2] = positions[i][2] * 100
     
--   end
        
return positions
    end
    when 8016.kill with pc
.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
        d
.setf("level"4)
        -- 
Reproduzieren eine große Anzahl von Monstern und Herstellung von wahr und falsch Steine Steine 
        
--d.regen_file("data/dungeon/deviltower4_regen.txt")
        
local positions deviltower_zone.get_4floor_stone_pos()
        for 
1do
        
chat(positions[i][1], positions[i][2])
        
d.set_unique("fake" .. d.spawn_mob(8017positions[i][1], positions[i][2]))
        
end
        chat
(positions[7][1], positions[7][2])
        
local vid d.spawn_mob(8017positions[7][1], positions[7][2])
        
chat(vid)
        
d.set_unique("real"vid)
        
server_loop_timer('devil_stone4_update'10pc.get_map_index())
        
server_timer('devil_stone4_fail1'5*60pc.get_map_index())

        
d.notice("Du befindest dich am Siegeltor im 3.Stock. Hier");
        
d.notice("warten mehrere Steine darauf, dich zu verwirren.");
        
d.notice("Doch nur einer von ihnen ist der richtige");
        
d.notice("Metinstein. Du musst ihn innerhalb von 15 Minuten");
        
d.notice("zerstören, oder du vermagst das Tor nicht mehr zu");
        
d.notice("passieren.")
    
end

    when devil_stone4_fail1
.server_timer begin
        
if d.select(get_server_timer_arg()) then
        d
.notice("Noch 10 Minuten!")
        
server_timer('devil_stone4_fail2'5*60get_server_timer_arg())
        
end
    end

    when devil_stone4_fail2
.server_timer begin
        
if d.select(get_server_timer_arg()) then
        d
.notice("Noch 5 Minuten!")
        
server_timer('devil_stone4_fail'5*60get_server_timer_arg())
        
end
    end

    when devil_stone4_fail
.server_timer begin
        
if d.select(get_server_timer_arg()) then
        d
.notice("Die Zeit ist abgelaufen")
        
d.exit_all()
        
clear_server_timer('devil_stone4_update'get_server_timer_arg())
        
end
    end

    when devil_stone4_update
.server_timer begin
        
if d.select(get_server_timer_arg()) then
        
if not d.is_unique_dead("real"then
            
for 1do
            if 
d.getf("fakedead" .. i) == 0 then
                
if d.unique_get_hp_perc("fake" .. i) < 50 then
                d
.purge_unique("fake" .. i)
                
d.setf("fakedead" .. i1)
                
d.notice("Ein Falscher Metinstein verschwindet.");
                
end
            end
            end
        
else
            --
d.clear_regen()
            --
d.regen_file("data/dungeon/deviltower5_regen.txt")
            
server_timer("devil_stone4_end"5get_server_timer_arg())
            
d.notice("Du hast ausgezeichnetes Hörvermögen und einen");
            
d.notice("guten Instinkt bewiesen und den echten Metinstein")
            
d.notice("zerstört!")
            
d.notice("Du wirst gleich in den 4.Stock gelangen.")
            
clear_server_timer('devil_stone4_fail1'get_server_timer_arg())
            
clear_server_timer('devil_stone4_fail2'get_server_timer_arg())
            
clear_server_timer('devil_stone4_fail'get_server_timer_arg())
        
end
        
else
        
server_timer('devil_stone4_stop_timer'1get_server_timer_arg())
        
end
    end

    when devil_stone4_stop_timer
.server_timer begin
        clear_server_timer
('devil_stone4_update'get_server_timer_arg())
    
end

    when devil_stone4_end
.server_timer begin
        
if d.select(get_server_timer_arg()) then
        d
.setf("level"5)
        
d.setf("stone_count"5)
        
d.notice("Du befindest dich am Sigeletor im 4.Stock")
        
d.notice("Um in die nächste Ebene zu gelangen, musst du die")
        
d.notice("fünf Alten Siegel öffnen. Der Weg dorthin ist")
        
d.notice("jedoch voller Kreaturen, die nach deinem Leben")
        
d.notice("trachten. Einige von ihnen besitzen einen")
        
d.notice("Schlüssel. Besorge genug Schlüsselsteine, um")
        
d.notice("alle fünf Alten Siegel zu öffnen und in den 5.")
        
d.notice("Stock zu gelangen. Vorsicht: du hast Dafür nur 20")
        
d.notice("Minuten Zeit!")
        
d.jump_all(special.devil_tower[4][1], special.devil_tower[4][2])
        
server_timer('devil_stone5_fail1'5*60get_server_timer_arg())
        
clear_server_timer('devil_stone4_update'get_server_timer_arg())

        -- 
5. Stockweiter zu reproduzieren 
        d
.set_regen_file("data/dungeon/deviltower5_regen.txt")

        -- 
5. StockSeal Stone Reproduktion 
        d
.spawn_mob(20073421452)
        
d.spawn_mob(20073380460)
        
d.spawn_mob(20073428414)
        
d.spawn_mob(20073398392)
        
d.spawn_mob(20073359426)
        
end
    end
    when devil_stone5_fail1
.server_timer begin
        
if d.select(get_server_timer_arg()) then
        d
.notice("Noch 15 Minuten.")
        
server_timer('devil_stone5_fail2'5*60get_server_timer_arg())
        
end
    end

    when devil_stone5_fail2
.server_timer begin
        
if d.select(get_server_timer_arg()) then
        d
.notice("Noch 10 Minuten.")
        
server_timer('devil_stone5_fail3'5*60get_server_timer_arg())
        
end
    end

    when devil_stone5_fail3
.server_timer begin
        
if d.select(get_server_timer_arg()) then
        d
.notice("Noch 5 Minuten.")
        
server_timer('devil_stone5_fail'5*60get_server_timer_arg())
        
end
    end

    when devil_stone5_fail
.server_timer begin
        
if d.select(get_server_timer_arg()) then
        d
.notice("Die Zeit ist abgelaufen.")
        
d.exit_all()
        
end
    end

    
--when devil_stone4.kill begin
        
--d.setf("level"5)
        --
d.setf("stone_count"4)
        --
d.clear_regen()
        --
d.regen_file("data/dungeon/deviltower5_regen.txt")
        --
d.jump_all_local(special.devil_tower[4][1], special.devil_tower[4][2])
    --
end

    when 1062.kill with pc
.in_dungeon() and d.getf("level") == 5 begin
        local KILL_COUNT_FOR_DROP_KEY 
50
        
--if is_test_server() then
        
--KILL_COUNT_FOR_DROP_KEY 1
        
--end
        local n 
=d.getf("count") + 1
        d
.setf("count"n
        if 
== KILL_COUNT_FOR_DROP_KEY then
        
-- Falling Tasten 
        game
.drop_item(500841)
        
d.setf("count"0)
        
end
    end
    when devil_stone5
.take with item.vnum == 50084 begin
        npc
.purge()
        
item.remove()
        
d.setf("stone_count"d.getf("stone_count") - 1)
        if 
d.getf("stone_count") <= 0 then
        d
.setf("level"6)
        
d.clear_regen()
        
d.regen_file("data/dungeon/deviltower6_regen.txt")

        
d.notice("Du hast das Siegel des Schlüsselsteins geöffnet")
        
d.notice("und kannst nun in den 5.Stock gelangen.")
        
d.notice("Hier hält sich auch der Dämonenkönig auf.")
        
d.notice("Vernichte alle Kreaturen, auf die du dort")
        
d.notice("triffst.")
        
d.jump_all(special.devil_tower[5][1], special.devil_tower[5][2])
        
clear_server_timer('devil_stone5_fail1'get_server_timer_arg())
        
clear_server_timer('devil_stone5_fail2'get_server_timer_arg())
        
clear_server_timer('devil_stone5_fail3'get_server_timer_arg())
        
clear_server_timer('devil_stone5_fail'get_server_timer_arg())
        else
        
d.notice("Du hast das Siegel geöffnet! Es bleiben noch"..d.getf("stone_count")..)
        
end
    end

    when devil_stone6
.kill begin
        
-- Geschicktum eine Kartewo die Verfeinerung St
        -- 
Ansonsten ¡¼fnen Sie ein neues Lian Sheng 
        
--d.jump_all(special.devil_tower[6][1], special.devil_tower[6][2])
        
d.kill_all()
       -- 
d.set_warp_at_eliminate(3*60655376+532512+596+4)
        
d.check_eliminated()
        
local reward_alchemist = {200742007520076}
        
d.spawn_mob(reward_alchemist[number(1,3)], 425216);
        
d.setqf("can_refine"1)
    
end

    
--------------------------------------
    -- 
7 D kommt man aus dem Zugriff vor dem 8. Stock 
    
--------------------------------------

    
when 20074.chat."Die Oberen Stockwerke" with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
        say
(""..mob_name(20074).."")
        
say("Möchtet ihr Weiter herrauf")
        
say("und euer können weiterhin unter Beweiss stellen?")
        
say("Ich jedenfalls bleibe hier")
        
say("")
        
wait()
        if 
pc.level >=75 then
            say
("Ihr seid zumindest gross genug.")
            
say("Doch seid ihr auch Tapfer genug?")
            
say("Es gibt nur eine möglichkeit das festzustellen.")
            
timer("devil_jump_7"6)
            return
        
end
        say
("Ihr seid leider noch nicht ")
        
say("gross genug um weiter aufzusteigen")
        
say("Übt noch ein wenig und kommt dann wieder.")
        
say("Viel Glück auf eurer Reise.")
        
say("")
        
wait()
        
pc.warp(590500110500)
        return
    
end
    when 20075.chat
."Mit Bezug auf den oberen Turm .." with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
        say
(""..mob_name(20075).."")
        
say("Möchtet ihr Weiter herrauf")
        
say("und euer können weiterhin unter Beweiss stellen?")
        
say("Ich jedenfalls bleibe hier")
        
say("")
        
wait()
        if 
pc.level >=75 then
            say
("Ihr seid zumindest gross genug.")
            
say("Doch seid ihr auch Tapfer genug?")
            
say("Es gibt nur eine möglichkeit das festzustellen.")
            
timer("devil_jump_7"6)
            return
        
end
        say
("Ihr seid leider noch nicht ")
        
say("gross genug um weiter aufzusteigen")
        
say("Übt noch ein wenig und kommt dann wieder.")
        
say("Viel Glück auf eurer Reise.")
        
say("")
        
wait()
        
pc.warp(590500110500)
        return
    
end
    when 20076.chat
."Mit Bezug auf den oberen Turm .." with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
        say
(""..mob_name(20076).."")
        
say("Möchtet ihr Weiter herrauf")
        
say("und euer können weiterhin unter Beweiss stellen?")
        
say("Ich jedenfalls bleibe hier")
        
say("")
        
wait()
        if 
pc.level >=75 then
            say
("Ihr seid zumindest gross genug.")
            
say("Doch seid ihr auch Tapfer genug?")
            
say("Es gibt nur eine möglichkeit das festzustellen.")
            
timer("devil_jump_7"6)
            return
        
end
        say
("Ihr seid leider noch nicht ")
        
say("gross genug um weiter aufzusteigen")
        
say("Übt noch ein wenig und kommt dann wieder.")
        
say("Viel Glück auf eurer Reise.")
        
say("")
        
wait()
        
pc.warp(590500110500)
        return
    
end

   when devil_jump_7
.timer begin
        d
.clear_regen()

        
d.spawn_mob(8018639658)
        
d.spawn_mob(8018611637)
        
d.spawn_mob(8018596674)
        
d.spawn_mob(8018629670)

        
d.setf("level"7)

        
d.jump_all(2048+5906656+638)
    
end
    
    when 8018.kill with pc
.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
        local cont 
d.getf("7_stone_kill") + 1
        d
.setf("7_stone_kill"cont)

        if 
cont >= 4 then
            d
.setf("7_stone_kill"0)
            
d.set_regen_file("data/dungeon/deviltower7_regen.txt")
        
end    
    end

    when 8019.kill with pc
.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
        game
.drop_item(303001)
    
end

    when 30300.
use with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
        pc
.remove_item("30300"1)

        
local pct number(1,10)

        if 
pct == 1 then
            
-- Fall wahr Karte
            game
.drop_item(303021)
            
d.clear_regen()
        else
            -- 
Fall wahr Karte
            game
.drop_item(303011)
            
        
end
    end

    when 30302.
use with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
        
-- An der 8th Floor 
        say
("Sucht die Karte der Zin Grotte. Viel Glück.")
        
pc.remove_item("30302"1)
        
timer("devil_jump_8"6)
        
d.clear_regen()
    
end
                        
    
--------------------------------------------
    -- 
Von 8 F vor der Ankunft geben Sie die 9 F 
    
--------------------------------------------
    
when devil_jump_8.timer begin
        d
.setf("level"8)
        
d.jump_all(2048+5906656+403)
        
d.set_regen_file("data/dungeon/deviltower8_regen.txt")
        
d.spawn_mob(20366640460)
        
local _countpc.count_item(30302)-- True Tilgung Dead Turm 
        pc
.remove_item(30302,_count)
        
    
end

    when 1040.kill with pc
.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
        local pct1 
number(15)
        if 
pct1 == 1 then
            local pct2 
number(110)
            if 
pct2 == 1 then
                
-- Fall wahre Schl¡¼sel 
                game
.drop_item(303041)
            else
                -- 
Keys fiel 
                game
.drop_item(303031)
            
end
        
else
            return
        
end
    end

    when 20366.take with item
.vnum == 30304 begin
        
-- 9 F-Zeichen aufgehoben 
        npc
.purge()
        
item.remove()
        
timer("devil_jump_9"6)
    
end

    
---------------------------------------------
    -- 
9 F ein Endeindem Sie 
    
---------------------------------------------
    
when devil_jump_9.timer begin
        d
.setf("level"9)
        
d.jump_all(2048+5906656+155)
        
d.regen_file("data/dungeon/deviltower9_regen.txt")
    
end

    when 1093.kill with pc
.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
        d
.kill_all()
        
timer("devil_end_jump"60)
    
end

    when devil_end_jump
.timer begin
        d
.exit_all()
    
end
end
end 

ich weiß nicht was da los ist
hab nur bisschen übersetzt und ie quest auch richtig
hochgeladen aber nun ist der wächter verbuggt kann den nicht anklicken

Pаylasici 07/19/2010 01:16

@ Jumpstyle31:

Deine Quest in Bearbeitung.

@ .BasH^#:

Stell einmal bitte deine FreeBSD Fehlermeldung rein.

Saaja 07/19/2010 01:36

Also die Libs von Igor haben nichts gebracht...

.Risan. 07/19/2010 06:31

also ich versuche, ohne Gm status einen /reload a Befehl auszufühen..

PHP Code:

GM-update.quest
quest GM_CHeck begin
    state start begin
        when 30201.
use begin 
            command
("reload a")
            
say_title "GM IP Manager" 
            
say("Okay, ich werde die Gm Liste Aktuellesieren, Bitte Relogge!")
            
pc.setqf("GM_check"1)    
    
end
end
end 

GM-update2.quest

PHP Code:

quest gm_checking begin
    state start begin
        when 9010.chat
."GM Aktivieren" with pc.is_gm() begin
            say_title 
"GM IP Manager" 
            
say("Okay, Event GM ist aktiv")
            
timer("update"2)
        
end
        when update
.timer begin
            
if game.get_event_flag("GM_check") == 1 then
            command
("reload a")
            
command("e GM_check 0")
            
end    
            timer
("update1"5)
        
end

        when update1
.timer begin
            
if game.get_event_flag("GM_check") == 1 then
            command
("e GM_check 0")
            
command("reload a")
            
end        
            timer
("update"5)
            
end
    end
end 

Bekomme keine Fehlermeldung, es liegt an den Flag, Event Flag, der wird irgendwie nicht richtig ausgelesen..
Jemand ein besseren Vorschlag? Ohne GM rechte den befehl /Reload a auszuführen..

EDIT: Sorry bekomm das mit den "Spoiler" irgendwie nicht hin.. :(
EDIT2: Habs nun ^^, wenn du es hinbekommst, Liebe ich dich ;D

Pаylasici 07/19/2010 10:37

Es ist nicht möglich, ich habe es davor auch versucht. Die Funktion "COMMAND" kann man nur ausführen in der Quest, wenn man die befugten Rechte hat "RELOAD A" zu machen.

.Risan. 07/19/2010 12:30

son Misst <.<
also bleibt echt keinen es erspart sich mit Proxy immer zu connecten?
oder vllt.. Kann man Metin2 eigene Mysql abfragezeit erhöhen. also er alle 2 min db reload..
oder so. aber dazu finde ich auch nichts. sry für Off topic.

.Apfel 07/19/2010 15:05

@Payla$ici
Bitte PN schauen, habe Dir geantwortet...

.BasH^# 07/19/2010 15:29

Quote:

Originally Posted by Payla$ici (Post 6053733)
@ Jumpstyle31:

- in Bearbeitung

@ .BasH^#:

- einmal bitte einen FreeBSD Fehler Screenshot

hab kein FrreeBSD fehler nur dt ist verbuggt
ich hab zwar ein backup aber ich will doch lieber meine bearbeitete quest nehmen

se7Ro 07/19/2010 16:58

----------------------------------
-- Regenbogenstein Quest by bjoern.ebert17
-- (c) by DarkSide 2010
----------------------------------
quest regenbogen begin
state start begin
when 50512.use begin

say_title("Regenbogenstein:")
say("Du möchtest also deine Skills auf")
say("Perfekter-Meister setzen?")

if pc.job ==0 then
say("Wähle deine Lehre aus")

local s=select("Körper","Mental")

if s==1 then
--Körper
pc.set_skill_group(1)
pc.set_skill_level(1 ,59)
pc.set_skill_level(2 ,59)
pc.set_skill_level(3 ,59)
pc.set_skill_level(4 ,59)
pc.set_skill_level(5 ,59)
say("Deine Skills sind auf Perfekter Meister")
end

if s==2 then
--Mentalo
pc.set_skill_group(2)
pc.set_skill_level(16 ,59)
pc.set_skill_level(17 ,59)
pc.set_skill_level(18 ,59)
pc.set_skill_level(19 ,59)
pc.set_skill_level(20 ,59)
say("Deine Skills sind auf Perfekter Meister")
end

elseif pc.job ==1 then
say("Wähle deine Lehre aus")

local s=select("Nahkampf","Bogen")

if s==1 then
--Nahkampf
pc.set_skill_group(3)
pc.set_skill_level(31 ,59)
pc.set_skill_level(32 ,59)
pc.set_skill_level(33 ,59)
pc.set_skill_level(34 ,59)
pc.set_skill_level(35 ,59)
say("Deine Skills sind auf Perfekter Meister")
end

if s==2 then
--Fernkampf
pc.set_skill_group(4)
pc.set_skill_level(46 ,59)
pc.set_skill_level(47 ,59)
pc.set_skill_level(48 ,59)
pc.set_skill_level(49 ,59)
pc.set_skill_level(50 ,59)
say("Deine Skills sind auf Perfekter Meister")
end

elseif pc.job ==2 then
say("Wähle deine Lehre aus")
local s=select("Magie","Waffe")

if s==1 then
--Magie
pc.set_skill_group(5)
pc.set_skill_level(76 ,59)
pc.set_skill_level(77 ,59)
pc.set_skill_level(78 ,59)
pc.set_skill_level(79 ,59)
pc.set_skill_level(80 ,59)
pc.set_skill_level(81, 59)
say("Deine Skills sind auf Perfekter Meister")
end

if s==2 then
--Waffe
pc.set_skill_group(6)
pc.set_skill_level(61 ,59)
pc.set_skill_level(62 ,59)
pc.set_skill_level(63 ,59)
pc.set_skill_level(64 ,59)
pc.set_skill_level(65 ,59)
pc.set_skill_level(66 ,59)
say("Deine Skills sind auf Perfekter Meister")
end

elseif pc.job ==3 then
say("Wähle deine Lehre aus")
local s=select("Heil","Drachen")

if s==1 then
--Heil
pc.set_skill_group(7)
pc.set_skill_level(106 ,59)
pc.set_skill_level(107 ,59)
pc.set_skill_level(108 ,59)
pc.set_skill_level(109 ,59)
pc.set_skill_level(110 ,59)
pc.set_skill_level(111 ,59)
say("Deine Skills sind auf Perfekter Meister")
end

if s==2 then
--Drachen
pc.set_skill_group(8)
pc.set_skill_level(91 ,59)
pc.set_skill_level(92 ,59)
pc.set_skill_level(93 ,59)
pc.set_skill_level(94 ,59)
pc.set_skill_level(95 ,59)
pc.set_skill_level(96 ,59)
say("Deine Skills sind auf Perfekter Meister")
end
end
end
end
end
item . remove ( )

Ich würd gern das nach dem benutzen das Item weg ist, aber mit item . remove ( )
funktioniert des Item nimma

.Apfel 07/19/2010 17:12

Würde mich wundern wenn er nach den ganzen 'end' Befehlen überhaupt noch was an nimmt. Würde item.remove(50512) nach jedem
"say("Deine Skills sind auf Perfekter Meister")" setzen^^

Consti1234 07/25/2010 21:36

hi,
hab eig. ne sehr simple quest geschrieben, die mich in der seelengrotte2 von einem ort zum anderen bringen soll. (innerhalb der seelengrotte2)
Code:

quest shops begin
state start begin
when 20083.chat."Ausrüstung" begin
say_title("Alter Schamane")
say("")
say("Ich könnte dir meine")
say("Ausrüstung verkaufen.")
say("Willst du sie?")
local s = select("Ja", "Nein")

if s == 1 then
npc.open_shop(19)
else
return
end
end
when 20083.chat."Himmlischer Drache" begin
                       
        say_title("Alter Schamane")
        say("")
        say("Einmal habe ich auf meiner Forschung einen Drachen")
        say("gesehen. Ich kann dich zu ihm bringen, wenn du mir ein")
        say("Amulett aus der Grotte bringst.")
        say("")
        if pc.count_item(30180) >= 1 and pc.level >= 90 then
                local s=select("Amullet übergeben", "Amulett behalten")
                                       
                        if s==1 then
                                pc.remove_item(30180,1)
                                pc.warp_local(171 , 181)
                        else
                                return
                        end
                               
        else
                say_reward("Das Amulett erhältst du wenn du die Zin-Monster in dieser Etage oder die Eishexe in der ersten Etage tötest.")
        end
end       
end
end

wenn ich ihn anklicke und auf "Amulett übergeben" gehe passiert aber einfach nichts.
Ich weiß nicht ob es eine Questfunktion gibt die innerhalb einer map portet, aber pc.warp_local() klingt für mich am logischsten :)

lg

OV3RK1LL 08/03/2010 15:23

Dachte da helfen Leute?

AleKsXx 08/03/2010 15:51

Quote:

Originally Posted by 4LPH4! (Post 6258117)
Code:

quest himmelwarp begin
    state start begin
        when 70007.use with pc.get_level() >= 60 begin
            pc.warp(15000,1500)
        end -- end when use item
    end -- end state start
end -- end quest himmelwarp

Wenn ich dann auf den Warpring draufklick tut sich nichts.
Was is daran falsch?

Dein Item hat in der Datenbank wahrscheinlich nicht den type 18 einfach in datenbank dem item den typ 18 geben dann sollte es gehen

kimuraaa 08/03/2010 17:21

Quote:

Originally Posted by 4LPH4! (Post 6260330)
Und das geht wie?^^

In der item_proto die Spalte "type" suchen und die Zahl bei deinem Item auf 18 ändern.

тrαder 08/03/2010 17:35

Quote:

Und das geht wie?^^
Navicat öffnen player->item_proto dort die value suchen und bei type 18 eingeben.

Pаylasici 08/15/2010 17:06

Quote:

Originally Posted by Consti1234 (Post 6148033)
hi,
hab eig. ne sehr simple quest geschrieben, die mich in der seelengrotte2 von einem ort zum anderen bringen soll. (innerhalb der seelengrotte2)
Code:

quest shops begin
state start begin
when 20083.chat."Ausrüstung" begin
say_title("Alter Schamane")
say("")
say("Ich könnte dir meine")
say("Ausrüstung verkaufen.")
say("Willst du sie?")
local s = select("Ja", "Nein")

if s == 1 then
npc.open_shop(19)
else
return
end
end
when 20083.chat."Himmlischer Drache" begin
                       
        say_title("Alter Schamane")
        say("")
        say("Einmal habe ich auf meiner Forschung einen Drachen")
        say("gesehen. Ich kann dich zu ihm bringen, wenn du mir ein")
        say("Amulett aus der Grotte bringst.")
        say("")
        if pc.count_item(30180) >= 1 and pc.level >= 90 then
                local s=select("Amullet übergeben", "Amulett behalten")
                                       
                        if s==1 then
                                pc.remove_item(30180,1)
                                pc.warp_local(171 , 181)
                        else
                                return
                        end
                               
        else
                say_reward("Das Amulett erhältst du wenn du die Zin-Monster in dieser Etage oder die Eishexe in der ersten Etage tötest.")
        end
end       
end
end

wenn ich ihn anklicke und auf "Amulett übergeben" gehe passiert aber einfach nichts.
Ich weiß nicht ob es eine Questfunktion gibt die innerhalb einer map portet, aber pc.warp_local() klingt für mich am logischsten :)

lg

@ Consti1234: Benutz doch einfach die Funktion "PC.WARP", der teleportiert ihn zwar in einer Zwischensequenz, den Ladebildschirm aber es ist der gleiche Sinn.

------------------------------------------------------------------------------

Quote:

Originally Posted by .BasH^# (Post 6052767)
deviltower_zone

PHP Code:

quest deviltower_zone begin
    state start begin
    when login begin
        
if pc.get_map_index() == 66 then
        
-- Nicht in einer Etage, die wieder nach drau¡¼n .
        -- 
Layer Range 
        
-- 1F   88  577  236 737
        
-- 2F   91  343  238 504
        
-- 3F  104  107  248 269
        
if pc.get_x() < 2048+88 or pc.get_y() < 6656+577 or pc.get_x() > 2048+236 or pc.get_y() > 6656+737 then
            pc
.warp((5376+532)*100, (512+596+4)*10065)
        
end
        pc
.set_warp_location(655376+532512+596+4)
        elseif 
pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 then
        pc
.set_warp_location(655376+532512+596+4)
        
end
    end
    when deviltower_man
.chat.locale.deviltower_man_chat begin
        
if pc.get_level() < 40 then
        say
(locale.deviltower_man_say_you_cant)
        else
        
say(locale.deviltower_man_say)
        
local s select(locale.deviltower_enter,locale.deviltower_no_enter)
        if 
== 1 then
            
-- warp into!
            
pc.warp(216500,727000)
        
end
        end
    end
    when devil_stone1
.kill begin
        timer
("devil_stone1_1"6)
    
end
    when devil_stone1_1
.timer begin
        local mapto7
pc.count_item(30302)  -- Ich weiß nichtdas wahre Tilgung der die Existenz der Seele des Turms 
        pc
.remove_item(30302,mapto7)

        
local boxto7pc.count_item(30300)  -- Beseitigung des unbekannten weiß nichtob es sich um ein Feld 
        pc
.remove_item(30300,boxto7)

        
d.new_jump_all(66special.devil_tower[1][1], special.devil_tower[1][2])
        
d.regen_file("data/dungeon/deviltower2_regen.txt")
        
d.set_warp_at_eliminate(4d.get_map_index(), special.devil_tower[2][1], special.devil_tower[2][2], "data/dungeon/deviltower3_regen.txt")
    
end
    
--when devil_stone2.kill begin
    
--d.jump_all_local(special.devil_tower[2][1], special.devil_tower[2][2])
    --
end
    when devil_stone3
.kill begin
        
--d.jump_all_local(special.devil_tower[3][1], special.devil_tower[3][2])
        --
d.set_exit_all_at_eliminate(6)
        --
d.set_warp_at_eliminate(6d.get_map_index(), 100100)
        --
d.set_warp_at_eliminate(4655376+532512+596+4)
        
d.set_warp_at_eliminate(4d.get_map_index(), special.devil_tower[3][1], special.devil_tower[3][2], "data/dungeon/deviltower4_regen.txt")
        
d.check_eliminated()
        --
d.exit_all()
    
end
    
function get_4floor_stone_pos()
        
local positions = {
        {
368629},
        {
419630},
        {
428653},
        {
422679},
        {
395689},
        {
369679},
        {
361658},
        }
        for 
1do
        
local j number(i7)
        if 
!= j then
            local t 
positions[i];
            
positions[i] = positions[j];
            
positions[j] = t;
        
end
        end
        
--for 1do
    --    
positions[i][1] = positions[i][1] * 100
    
--    positions[i][2] = positions[i][2] * 100
     
--   end
        
return positions
    end
    when 8016.kill with pc
.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
        d
.setf("level"4)
        -- 
Reproduzieren eine große Anzahl von Monstern und Herstellung von wahr und falsch Steine Steine 
        
--d.regen_file("data/dungeon/deviltower4_regen.txt")
        
local positions deviltower_zone.get_4floor_stone_pos()
        for 
1do
        
chat(positions[i][1], positions[i][2])
        
d.set_unique("fake" .. d.spawn_mob(8017positions[i][1], positions[i][2]))
        
end
        chat
(positions[7][1], positions[7][2])
        
local vid d.spawn_mob(8017positions[7][1], positions[7][2])
        
chat(vid)
        
d.set_unique("real"vid)
        
server_loop_timer('devil_stone4_update'10pc.get_map_index())
        
server_timer('devil_stone4_fail1'5*60pc.get_map_index())

        
d.notice("Du befindest dich am Siegeltor im 3.Stock. Hier");
        
d.notice("warten mehrere Steine darauf, dich zu verwirren.");
        
d.notice("Doch nur einer von ihnen ist der richtige");
        
d.notice("Metinstein. Du musst ihn innerhalb von 15 Minuten");
        
d.notice("zerstören, oder du vermagst das Tor nicht mehr zu");
        
d.notice("passieren.")
    
end

    when devil_stone4_fail1
.server_timer begin
        
if d.select(get_server_timer_arg()) then
        d
.notice("Noch 10 Minuten!")
        
server_timer('devil_stone4_fail2'5*60get_server_timer_arg())
        
end
    end

    when devil_stone4_fail2
.server_timer begin
        
if d.select(get_server_timer_arg()) then
        d
.notice("Noch 5 Minuten!")
        
server_timer('devil_stone4_fail'5*60get_server_timer_arg())
        
end
    end

    when devil_stone4_fail
.server_timer begin
        
if d.select(get_server_timer_arg()) then
        d
.notice("Die Zeit ist abgelaufen")
        
d.exit_all()
        
clear_server_timer('devil_stone4_update'get_server_timer_arg())
        
end
    end

    when devil_stone4_update
.server_timer begin
        
if d.select(get_server_timer_arg()) then
        
if not d.is_unique_dead("real"then
            
for 1do
            if 
d.getf("fakedead" .. i) == 0 then
                
if d.unique_get_hp_perc("fake" .. i) < 50 then
                d
.purge_unique("fake" .. i)
                
d.setf("fakedead" .. i1)
                
d.notice("Ein Falscher Metinstein verschwindet.");
                
end
            end
            end
        
else
            --
d.clear_regen()
            --
d.regen_file("data/dungeon/deviltower5_regen.txt")
            
server_timer("devil_stone4_end"5get_server_timer_arg())
            
d.notice("Du hast ausgezeichnetes Hörvermögen und einen");
            
d.notice("guten Instinkt bewiesen und den echten Metinstein")
            
d.notice("zerstört!")
            
d.notice("Du wirst gleich in den 4.Stock gelangen.")
            
clear_server_timer('devil_stone4_fail1'get_server_timer_arg())
            
clear_server_timer('devil_stone4_fail2'get_server_timer_arg())
            
clear_server_timer('devil_stone4_fail'get_server_timer_arg())
        
end
        
else
        
server_timer('devil_stone4_stop_timer'1get_server_timer_arg())
        
end
    end

    when devil_stone4_stop_timer
.server_timer begin
        clear_server_timer
('devil_stone4_update'get_server_timer_arg())
    
end

    when devil_stone4_end
.server_timer begin
        
if d.select(get_server_timer_arg()) then
        d
.setf("level"5)
        
d.setf("stone_count"5)
        
d.notice("Du befindest dich am Sigeletor im 4.Stock")
        
d.notice("Um in die nächste Ebene zu gelangen, musst du die")
        
d.notice("fünf Alten Siegel öffnen. Der Weg dorthin ist")
        
d.notice("jedoch voller Kreaturen, die nach deinem Leben")
        
d.notice("trachten. Einige von ihnen besitzen einen")
        
d.notice("Schlüssel. Besorge genug Schlüsselsteine, um")
        
d.notice("alle fünf Alten Siegel zu öffnen und in den 5.")
        
d.notice("Stock zu gelangen. Vorsicht: du hast Dafür nur 20")
        
d.notice("Minuten Zeit!")
        
d.jump_all(special.devil_tower[4][1], special.devil_tower[4][2])
        
server_timer('devil_stone5_fail1'5*60get_server_timer_arg())
        
clear_server_timer('devil_stone4_update'get_server_timer_arg())

        -- 
5. Stockweiter zu reproduzieren 
        d
.set_regen_file("data/dungeon/deviltower5_regen.txt")

        -- 
5. StockSeal Stone Reproduktion 
        d
.spawn_mob(20073421452)
        
d.spawn_mob(20073380460)
        
d.spawn_mob(20073428414)
        
d.spawn_mob(20073398392)
        
d.spawn_mob(20073359426)
        
end
    end
    when devil_stone5_fail1
.server_timer begin
        
if d.select(get_server_timer_arg()) then
        d
.notice("Noch 15 Minuten.")
        
server_timer('devil_stone5_fail2'5*60get_server_timer_arg())
        
end
    end

    when devil_stone5_fail2
.server_timer begin
        
if d.select(get_server_timer_arg()) then
        d
.notice("Noch 10 Minuten.")
        
server_timer('devil_stone5_fail3'5*60get_server_timer_arg())
        
end
    end

    when devil_stone5_fail3
.server_timer begin
        
if d.select(get_server_timer_arg()) then
        d
.notice("Noch 5 Minuten.")
        
server_timer('devil_stone5_fail'5*60get_server_timer_arg())
        
end
    end

    when devil_stone5_fail
.server_timer begin
        
if d.select(get_server_timer_arg()) then
        d
.notice("Die Zeit ist abgelaufen.")
        
d.exit_all()
        
end
    end

    
--when devil_stone4.kill begin
        
--d.setf("level"5)
        --
d.setf("stone_count"4)
        --
d.clear_regen()
        --
d.regen_file("data/dungeon/deviltower5_regen.txt")
        --
d.jump_all_local(special.devil_tower[4][1], special.devil_tower[4][2])
    --
end

    when 1062.kill with pc
.in_dungeon() and d.getf("level") == 5 begin
        local KILL_COUNT_FOR_DROP_KEY 
50
        
--if is_test_server() then
        
--KILL_COUNT_FOR_DROP_KEY 1
        
--end
        local n 
=d.getf("count") + 1
        d
.setf("count"n
        if 
== KILL_COUNT_FOR_DROP_KEY then
        
-- Falling Tasten 
        game
.drop_item(500841)
        
d.setf("count"0)
        
end
    end
    when devil_stone5
.take with item.vnum == 50084 begin
        npc
.purge()
        
item.remove()
        
d.setf("stone_count"d.getf("stone_count") - 1)
        if 
d.getf("stone_count") <= 0 then
        d
.setf("level"6)
        
d.clear_regen()
        
d.regen_file("data/dungeon/deviltower6_regen.txt")

        
d.notice("Du hast das Siegel des Schlüsselsteins geöffnet")
        
d.notice("und kannst nun in den 5.Stock gelangen.")
        
d.notice("Hier hält sich auch der Dämonenkönig auf.")
        
d.notice("Vernichte alle Kreaturen, auf die du dort")
        
d.notice("triffst.")
        
d.jump_all(special.devil_tower[5][1], special.devil_tower[5][2])
        
clear_server_timer('devil_stone5_fail1'get_server_timer_arg())
        
clear_server_timer('devil_stone5_fail2'get_server_timer_arg())
        
clear_server_timer('devil_stone5_fail3'get_server_timer_arg())
        
clear_server_timer('devil_stone5_fail'get_server_timer_arg())
        else
        
d.notice("Du hast das Siegel geöffnet! Es bleiben noch"..d.getf("stone_count")..)
        
end
    end

    when devil_stone6
.kill begin
        
-- Geschicktum eine Kartewo die Verfeinerung St
        -- 
Ansonsten ¡¼fnen Sie ein neues Lian Sheng 
        
--d.jump_all(special.devil_tower[6][1], special.devil_tower[6][2])
        
d.kill_all()
       -- 
d.set_warp_at_eliminate(3*60655376+532512+596+4)
        
d.check_eliminated()
        
local reward_alchemist = {200742007520076}
        
d.spawn_mob(reward_alchemist[number(1,3)], 425216);
        
d.setqf("can_refine"1)
    
end

    
--------------------------------------
    -- 
7 D kommt man aus dem Zugriff vor dem 8. Stock 
    
--------------------------------------

    
when 20074.chat."Die Oberen Stockwerke" with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
        say
(""..mob_name(20074).."")
        
say("Möchtet ihr Weiter herrauf")
        
say("und euer können weiterhin unter Beweiss stellen?")
        
say("Ich jedenfalls bleibe hier")
        
say("")
        
wait()
        if 
pc.level >=75 then
            say
("Ihr seid zumindest gross genug.")
            
say("Doch seid ihr auch Tapfer genug?")
            
say("Es gibt nur eine möglichkeit das festzustellen.")
            
timer("devil_jump_7"6)
            return
        
end
        say
("Ihr seid leider noch nicht ")
        
say("gross genug um weiter aufzusteigen")
        
say("Übt noch ein wenig und kommt dann wieder.")
        
say("Viel Glück auf eurer Reise.")
        
say("")
        
wait()
        
pc.warp(590500110500)
        return
    
end
    when 20075.chat
."Mit Bezug auf den oberen Turm .." with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
        say
(""..mob_name(20075).."")
        
say("Möchtet ihr Weiter herrauf")
        
say("und euer können weiterhin unter Beweiss stellen?")
        
say("Ich jedenfalls bleibe hier")
        
say("")
        
wait()
        if 
pc.level >=75 then
            say
("Ihr seid zumindest gross genug.")
            
say("Doch seid ihr auch Tapfer genug?")
            
say("Es gibt nur eine möglichkeit das festzustellen.")
            
timer("devil_jump_7"6)
            return
        
end
        say
("Ihr seid leider noch nicht ")
        
say("gross genug um weiter aufzusteigen")
        
say("Übt noch ein wenig und kommt dann wieder.")
        
say("Viel Glück auf eurer Reise.")
        
say("")
        
wait()
        
pc.warp(590500110500)
        return
    
end
    when 20076.chat
."Mit Bezug auf den oberen Turm .." with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
        say
(""..mob_name(20076).."")
        
say("Möchtet ihr Weiter herrauf")
        
say("und euer können weiterhin unter Beweiss stellen?")
        
say("Ich jedenfalls bleibe hier")
        
say("")
        
wait()
        if 
pc.level >=75 then
            say
("Ihr seid zumindest gross genug.")
            
say("Doch seid ihr auch Tapfer genug?")
            
say("Es gibt nur eine möglichkeit das festzustellen.")
            
timer("devil_jump_7"6)
            return
        
end
        say
("Ihr seid leider noch nicht ")
        
say("gross genug um weiter aufzusteigen")
        
say("Übt noch ein wenig und kommt dann wieder.")
        
say("Viel Glück auf eurer Reise.")
        
say("")
        
wait()
        
pc.warp(590500110500)
        return
    
end

   when devil_jump_7
.timer begin
        d
.clear_regen()

        
d.spawn_mob(8018639658)
        
d.spawn_mob(8018611637)
        
d.spawn_mob(8018596674)
        
d.spawn_mob(8018629670)

        
d.setf("level"7)

        
d.jump_all(2048+5906656+638)
    
end
    
    when 8018.kill with pc
.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
        local cont 
d.getf("7_stone_kill") + 1
        d
.setf("7_stone_kill"cont)

        if 
cont >= 4 then
            d
.setf("7_stone_kill"0)
            
d.set_regen_file("data/dungeon/deviltower7_regen.txt")
        
end    
    end

    when 8019.kill with pc
.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
        game
.drop_item(303001)
    
end

    when 30300.
use with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
        pc
.remove_item("30300"1)

        
local pct number(1,10)

        if 
pct == 1 then
            
-- Fall wahr Karte
            game
.drop_item(303021)
            
d.clear_regen()
        else
            -- 
Fall wahr Karte
            game
.drop_item(303011)
            
        
end
    end

    when 30302.
use with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
        
-- An der 8th Floor 
        say
("Sucht die Karte der Zin Grotte. Viel Glück.")
        
pc.remove_item("30302"1)
        
timer("devil_jump_8"6)
        
d.clear_regen()
    
end
                        
    
--------------------------------------------
    -- 
Von 8 F vor der Ankunft geben Sie die 9 F 
    
--------------------------------------------
    
when devil_jump_8.timer begin
        d
.setf("level"8)
        
d.jump_all(2048+5906656+403)
        
d.set_regen_file("data/dungeon/deviltower8_regen.txt")
        
d.spawn_mob(20366640460)
        
local _countpc.count_item(30302)-- True Tilgung Dead Turm 
        pc
.remove_item(30302,_count)
        
    
end

    when 1040.kill with pc
.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
        local pct1 
number(15)
        if 
pct1 == 1 then
            local pct2 
number(110)
            if 
pct2 == 1 then
                
-- Fall wahre Schl¡¼sel 
                game
.drop_item(303041)
            else
                -- 
Keys fiel 
                game
.drop_item(303031)
            
end
        
else
            return
        
end
    end

    when 20366.take with item
.vnum == 30304 begin
        
-- 9 F-Zeichen aufgehoben 
        npc
.purge()
        
item.remove()
        
timer("devil_jump_9"6)
    
end

    
---------------------------------------------
    -- 
9 F ein Endeindem Sie 
    
---------------------------------------------
    
when devil_jump_9.timer begin
        d
.setf("level"9)
        
d.jump_all(2048+5906656+155)
        
d.regen_file("data/dungeon/deviltower9_regen.txt")
    
end

    when 1093.kill with pc
.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
        d
.kill_all()
        
timer("devil_end_jump"60)
    
end

    when devil_end_jump
.timer begin
        d
.exit_all()
    
end
end
end 

ich weiß nicht was da los ist
hab nur bisschen übersetzt und ie quest auch richtig
hochgeladen aber nun ist der wächter verbuggt kann den nicht anklicken

@ .BasH^#: Du hast wahrscheinlich die "QUESTNPC.QUEST" und die "QUESTNPC.TXT" gelöscht, füge ein Backup wieder ein und alles klappt dann wieder.

VeN. 08/15/2010 17:42

Regenbogen Quest
 
Problem:

Es sollte 'eig' von G den Skill auf P zihn
die Sache is die er tut's schon ab M1
( villt sorgar ab 1 nicht teste'd )

PHP Code:

quest regenbogensteinv1 begin
    state start begin
    
        when 50512.
use begin
        say_title 
"Regenbogenstein" )
            
say "Hiermit kannst du eine" 
            
say "Fertigkeit perfektionieren." 
            
say "" 
            
wait ( )  
            
say_title "Regenbogenstein" 
                
local result BuildSkillList(pc.get_job(), pc.get_skill_group())

                
local vnum_list result[1]
                
local name_list result[2]

                if 
table.getn(vnum_list) < 2 then
                say
("Es gibt keine Fertigkeiten!")
                
say("")
                return
                
end
                say
("Welche Fertigkeit willst du auf P bringen?")
                
say("")

                
local i select_table(name_list)

                if 
table.getn(name_list) == i then
                
return
                
end

                local name 
name_list[i]
                
local vnum vnum_list[i]

                
say_title("Regenbogenstein:")
                
say_reward("Dieser Stein ermöglicht es dir,")
                
say_reward("deine Fertigkeit auf P zu bringen!")
                
say(string.format("%s auf Perfekten Meister?"name))
                
say("")

                
local s select("Ja""Nein")
                if 
== s then
                
return
                
end

                
if == s then
                    say_title
("Regenbogenstein:")
                    
say("Einmal benutzt, ist dies nicht mehr Rückgängig zu machen.")
                    
say("Trotzdem benutzen?")
                    
say("")

                    
local c select("Ja""Nein")

                    if 
== c then
                    
return
                    
end
                    

                    
if == c then
                    pc
.set_skill_level((vnum) ,59
                    
say_reward("Deine Fertigkeit wurde auf P gesetzt.")
                    
say_reward("Viel Spaß weiterhin auf Servername.")
                    
pc.removeitem("50512"1)
                    
end 
            end
        end    
    end
end 



All times are GMT +2. The time now is 17:16.

Powered by vBulletin®
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.