[SERVICE] Die Questkontrolle

01/19/2012 18:11 skurto#4576
Kann jemand mir helfen bitte? :-)
Ich brauche diesem Quest richtig einstellen...
PHP Code:
quest katakomby begin
    state start begin
        when login begin
            
if pc.get_map_index() == 220 then
                pc
.set_warp_location(220, 3072, 12032)
                
end
            end

        when 2501.kill 
or
            
2502.kill or
            
2503.kill or
            
2504.kill with pc.get_map_index()==220 begin
            local KILL_COUNT_FOR_DROP_KEY 
= 50
            end
                local n 
=d.getf("count") + 1
                d
.setf("count", n) 
                if 
n == KILL_COUNT_FOR_DROP_KEY then
            game
.drop_item(30136, 1)
            
d.setf("count", 0)
            
end
        end

    when 30121.chat
."Konečně máš klíč!" begin

        
if pc.count_item(30136) >= 1 then
            say
("Našel si ten klíč?!")
            
say("Si velmi rychlý..")
            
say("Nyní Vás čeká 2. patro!")
            
pc.removeitem("30136", 1)
            
wait()
            
say("Buďte opatrní...")
            
say("Uvidíme se později!")
            
wait()
            
d.new_jump_all(220, 3813, 12250)
            
d.setf("devillevel", 1)
            else
        if 
pc.count_item(30136) < 1 then
            say
("Dám ti malou radu...")
            
say("Ten klíč můžeš sehnat ze všech")
            
say("nestvůr v této lokalitě...")
            
end
        end

    when login with pc
.in_dungeon() and d.getf("devillevel") == 2 begin

            local boxto7
= pc.count_item(30300)
            
pc.remove_item(30300,boxto7)

            
local vid = d.spawn_mob(30122, 741, 215)
            
d.regen_file("data/dungeon/dc_regen2.txt")
            
d.setf("devillevel", 1)
            
d.notice("Zničte brány a dostaňte se až ke strážci 3.patra")
            
end
        end

    when 30122.chat
."3.Patro" begin
        
if pc.count_item(30137) >= 1 then
            say
("Aby jste mohli do 3.patra,")
            
say("Musí alespoň jeden z Vás mít")
            
say("vysušenou hlavu!! Aha, ty ji máš..")
            
pc.removeitem("30137", 1)
            
wait()
            
say("Nyní Vás přemístím do 3.patra")
            
say("Buďte opatrní...")
            
wait()
            
d.setf("devillevel", 2)
            
d.new_jump_all(220, 4439, 12282)
            else
        if 
pc.count_item(30137) < 1 then
            say
("Bez vysušené hlavy Vás")
            
say("bohužel nemohu pustit do 3.patra!")
            
end
        end

    when login with pc
.in_dungeon() and d.getf("devillevel") == 3 begin

            d
.regen_file("data/dungeon/dc_kameny3.txt")
            
d.setf("devillevel", 3)
            
d.notice("Zničte všechny kameny, abyste mohli")
            
d.notice("postoupit do dalšího patra!")
            
end
        end

    when 8033.kill with pc
.in_dungeon() and d.getf("devillevel") == 3 begin

            local n 
=d.getf("count") + 1
            d
.setf("count", n)
            
d.setf("stone_count"), d.getf("stone_count") - 1)
            if 
d.getf("stone_count") <= 0 then
            d
.setf("devillevel", 4)
            
d.clear_regen()
            
d.regen_file("data/dungeon/dc_warps.txt")

            
d.notice("Rozbily jste všechny kameny!")
            
d.notice("Budete teleportování do 4.patra!")
            
d.new_jump_all("220 , 3344, 12831")
            else
            
d.notice("Rozbily jste kámen! Ještě zbývá "..d.getf("stone_count").." kamenů!")
            
end
        end

    when 20083.chat
."Tajemnství katakomb" with pc.in_dungeon() and d.getf("devillevel") == 4 begin
            say_title
("Poeng-Hong")
            
say("")
            
say("Toto místo.. uvádí mne do rozpaků,")
            
say("pokaždé, když pomyslím na to,")
            
say("co se nachází na konci katakomb...")
            
say("Ale žádný strach, vyjste zajisté udatní ")
            
say("bojovníci...můžete to potvrdit už nyní v 5.patře..")
            
say("")
            
say("Doufám, že Vás ještě někdy uvidím..")
            
wait()
            
d.setf("devillevel", 4)
            
timer("devildown_spawnport", 1)
            
d.new_jump_all(220, 3917, 12928)            
            
end
        end        
        
        when devildown_spawnport
.timer begin
            d
.regen_file("data/dungeon/dc_porty.txt")
            
d.setf("devillevel", 5)
            
end
        end

    when login with pc
.in_dungeon() and d.getf("devillevel") == 5 begin

            local vid 
= d.spawn_mob(9012, 847, 733)
            
d.regen_file("data/dungeon/dc_regen5.txt")
            
d.set_unique("real", vid)
            
d.notice("Zabijte Tartarose a najděte šklebící se totem!")
            
end
        end

    when 2586.kill with pc
.in_dungeon() begin
        
if d.is_unique_dead("real") then
        d
.notice("Tartaros byl zabit...doneste totem k obelisku Basalt..")
        
end
    end
    
    when 9012.take with item
.vnum == 30138 begin
            npc
.purge()
            
item.remove()
            
d.setf("devillevel",6)
            
d.new_jump_all(220, 4437, 12706)
            
end
        end

    when login with pc
.in_dungeon() and d.getf("devillevel") == 6 begin

            d
.regen_file("data/dungeon/dc_regen6.txt")
            
d.notice("Zabijte všechny nepřátele, aby se objevil Charon")
            
end
        end

    when 2587.kill with pc
.in_dungeon() begin
            d
.notice("Zabily jste Erberose a všechna monstra zmizela..")
            
d.notice("Nyní se objeví Charon!")
            
d.spawn_mob(2588, 1302, 707)
            
end
        end

    when 2588.kill with pc
.in_dungeon() begin
            d
.notice("Charon po dlouhém boji padnul a vy postupujete")
            
d.notice("do posledního patra!")
            
d.setf("devillevel", 7)
            
d.regen_file("data/dungeon/dc_regen7.txt")
            
d.new_jump_all(220, 3146, 13187)
            
end
        end

    when login with pc
.in_dungeon() and d.getf("devillevel") == 7 begin
    
            local vid 
= d.spawn_mob(2586, 74, 1104)
            
d.set_unique("real", vid)
            
d.notice("Vítejte v posledním patře katakomb!")
            
d.notice("Poražte Azraela a dokažte, že jste nejlepší!")
            
end
        end

    when 2586.kill with pc
.in_dungeon() begin
        
if d.is_unique_dead("real") then
            d
.notice("Azrael byl úspěšně zdolán! Gratulujeme!")
            
notice_all(pc.get_name().." a jeho skupina zdolali Azraela a celé Katakomby!")
            
end
        end
    end
end 
Danke schön...und sry für schlecht Deutsch :)
01/19/2012 21:15 CZMadman#4577
simple question .. how to creat in quest negation in function if.

for example what i need

if a == b and a != c then
end

but this is not work .. is some metod? thank you
01/19/2012 21:23 Sp0ngeb0b ist cool#4578
this metod work ;)
if you want that all varibales are unequal you must write this:
PHP Code:
if a != b and a != c and b!= c then... 
in your case can be a and c the same but it work too ;)
01/19/2012 21:48 [ShiizoPhreN]™#4579
hi guys ich hab da nen prob mit ner anderen quest

also ich möchte das sich beim anklicken des items nen fenster öffnet mit aktivieren und deaktivieren nur hab ich das problem das nur der aktivieren button funzt sprich mit dem button aktiviere und deaktivere ich die minus exp hier mal der code

Code:
quest stop_erfahrung begin
	state start begin
		when 72503.use begin
			say_title("Stoppe die Erfahrung")
			say("")
			say("Mit diesen Stück Edlen Metall")
			say("kannst du die Macht der Erfahrung Stoppen")
			say("")
		
			local s = select("Aktivieren", "Deaktivieren")
		
			if s == 1 then
				if pc.getqf("antiexp") == 0 then
					pc.setqf("antiexp", 1)
					say("Anti EXP aktiviert. Deine Erfahrungspunkte werden jede Sekunde auf 0 gesetzt!")
					local ep = pc.get_exp()
					pc.give_exp2(-ep)
					timer("erfahrung", 1)
		
			elseif s == 2 then
				elseif pc.getqf("antiexp") == 1 then
					pc.setqf("antiexp", 0)
					chat("Anti EXP deaktiviert. Viel Spaß weiterhin!")
					end
			end
		end
		
		when erfahrung.timer with pc.getqf("antiexp") == 1 begin
			local ep = pc.get_exp()
			pc.give_exp2(-ep)
			timer("erfahrung1", 1)
			pc.setqf("antiexp", 1)
		end	
			
		when erfahrung1.timer with pc.getqf("antiexp") == 1 begin
			local ep = pc.get_exp()
			pc.give_exp2(-ep)
			timer("erfahrung", 1)
			pc.setqf("antiexp", 1)			
		end
		
		when login with pc.getqf("antiexp") == 1 begin
			local ep = pc.get_exp()
			pc.give_exp2(-ep)
			timer("erfahrung", 1)
			pc.setqf("antiexp", 1)	
		end	
	end
end
MFG
01/19/2012 22:27 .Delta#4580
Code:
quest stop_erfahrung begin
	state start begin
		when 72503.use begin
			say_title("Stoppe die Erfahrung")
			say("")
			say("Mit diesen Stück Edlen Metall")
			say("kannst du die Macht der Erfahrung Stoppen")
			say("")		
			local s = select("Aktivieren", "Deaktivieren")		
			if s == 1 then
				if pc.getqf("antiexp") == 0 then
					pc.setqf("antiexp", 1)
					say("Anti EXP aktiviert. Deine Erfahrungspunkte werden jede Sekunde auf 0 gesetzt!")
					local ep = pc.get_exp()
					pc.give_exp2(-ep)
					timer("erfahrung", 1)
				end
			elseif s == 2 then
				if pc.getqf("antiexp") == 1 then
					pc.setqf("antiexp", 0)
					chat("Anti EXP deaktiviert. Viel Spaß weiterhin!")
				end
			end
		end		
		when erfahrung.timer with pc.getqf("antiexp") == 1 begin
			local ep = pc.get_exp()
			pc.give_exp2(-ep)
			timer("erfahrung1", 1)
			pc.setqf("antiexp", 1)
		end			
		when erfahrung1.timer with pc.getqf("antiexp") == 1 begin
			local ep = pc.get_exp()
			pc.give_exp2(-ep)
			timer("erfahrung", 1)
			pc.setqf("antiexp", 1)			
		end		
		when login with pc.getqf("antiexp") == 1 begin
			local ep = pc.get_exp()
			pc.give_exp2(-ep)
			timer("erfahrung", 1)
			pc.setqf("antiexp", 1)	
		end	
	end
end
01/20/2012 19:49 iW0X#4581
kann mir da:

Quote:
quest Loewe begin
state start begin
when 71114.use begin
pc.mount(20116)
affect.add_collect(apply.ATT_GRADE_BONUS,50,900)
affect.add_collect(apply.MOV_SPEED,50,900)
end
end
end
einer einbauen das wenn ich das Reittier verlasse die Bonis wieder weg sind?!

?.?
01/20/2012 20:08 Łαšεℜ™#4582
Einfach so umändern wie du willst :D

PHP Code:
quest lion begin  
    state start begin  
        when 71122.
use begin  
            
if pc.get_level() >= 1 then  
                chat
("Du hast nun einen Weißen Loewen als Reittier!")  
                
affect.remove_collect()   
                
pc.mount(20114, 3600)  
                
pc.mount_bonus(apply.ATT_GRADE_BONUS,200,300)
                
pc.mount_bonus(apply.DEF_GRADE_BONUS,200,300)
            else  
                
chat("Du bist noch zu jung!Versuch es mit lvl 1 wieder!") 
            
end
            
            
if horse.unride() then
                affect
.remove_collect()            
            
end
        end  
    end  
end 
01/21/2012 14:03 xLobo™#4583
PHP Code:
quest chagne_name_item begin
    state start begin
        when 71055.
use begin
            say_title
("Tinktur der Namen")
            if 
pc.is_married() then
                say
("Während du verheiratet bist kannst du")
                
say("deinen Namen nicht ändern.")
                return
            elseif 
pc.is_polymorphed() then
                say
("Während du verwandelt bist kannst du")
                
say("deinen Namen nicht ändern.")
                return
            elseif 
pc.has_guild() then
                say
("Während du in einer Gilde bist kannst du")
                
say("deinen Namen nicht ändern.")
                return
            elseif 
party.is_party() then
                say
("Während du in einer Gruppe bist kannst du")
                
say("deinen Namen nicht ändern.")
                return
            elseif 
pc.get_level() < 50 then
                say
("Du kannst deinen Namen erst ab Level 50")
                
say("ändern.")
                return
            elseif 
get_time() < pc.getqf("next_time") then
                say
("Du kannst das jetzt nicht benutzen.")
                return
            
end
            say
("Gib deinen zukünftigen Namen ein.")
            
local name = pc.name
            local str 
= input()
            
local ret = pc.change_name(str)
            
say_title("Tinktur der Namen")
            if 
ret == 0 then
                say
("Du hast nicht gereloggt nachdem du deinen")
                
say("Namen geändert hast. Relogge bitte.")
            elseif 
ret == 1 then
                say
("Während du das Item benutzt hast ist ein")
                
say("Problem aufgetreten. Probiers nochmal.")
            elseif 
ret == 2 then
                say
("Der Name ist nicht mehr verfügbar.")
                
say("Gib einen anderen Namen ein.")
            elseif 
ret == 3 then
                say
("Der Name ist nicht verfügbar.")
                
say("Gib einen anderen Namen ein.")
            elseif 
ret == 4 then
                say
("Du hast erfolgreich deinen Namen geändert.")
                
say("Relogge bitte.")
                
pc.remove_item("71055", 1)
                
pc.setqf("next_time", get_time() + time_hour_to_sec(24*15))
            else
                
say("Unbekannter Fehler.")
                
say("Bitte die Zahl:")
                
say(ret)
                
say("Der Administration melden")
            
end
        end
    end
end 
Will nich geh'n :'(
01/22/2012 15:15 Kriegergeist^^#4584
Habe gerade eine kleine quest aus Langeweile geschrieben.
Bei make.py ausführen kein fehler.
Hier erst mal die Quest:
Geht soweit alles, aber wen ich mit den befehl:
Code:
/setqf dungeonpoint 5 [SA]Test
eingebe, bleibt der dungeonpoint status bei dem NPC trotzdem bei 0
weiß jemand vielleicht woran das liegen könnte?

MfG
Kriegergeist^^
01/22/2012 15:33 Łαšεℜ™#4585
mach es doch über mysql abfragen dann müsste das gehen
01/22/2012 15:44 Kriegergeist^^#4586
#Łαšεℜ™
Und wie mache ich das?

MfG
Kriegergeist^^
01/22/2012 16:22 Retrograd#4587
wollte mal fragen wie das mit dem bonus für reittiere ist wie der befehl für EXP bonus ist
01/22/2012 16:44 Łαšεℜ™#4588
@Retrograd

PHP Code:
pc.mount_bonus(apply.EXP_GRADE_BONUS,200,300) 
@Kriegergeist^^

Neue tabellen in navicat und dann peer quest abrufen ich kann dir da nicht helfen da ich 0 plan von mysql abfragn habe aber andere helfen dr sicher wie .Delta oder sponge
01/22/2012 19:13 Kriegergeist^^#4589
Mal wieder ein kleines Problem mit der Quest :p
Hier die Quest:
Wenn ich den NPC 23005 anspreche wen eventflag "dungeonpunkte" auf 1 gestellt ist, tut sich nichts, aber wen eventflag "dungeonpunkte" auf 0 ist öffnet sich wie ich es will.
Nicht wundern, die quest ist noch nicht ganz fertig, aber will erst mal das sie so funktioniert.
Habe in db on_click auf 1 gestellt bei den NPC
Was habe ich falsch gemacht?

MfG
Kriegergeist^^
01/22/2012 20:50 Łαšεℜ™#4590
versuch mal
npc on_click 2

wenn du das mit dem dongenpunkten machen willst schau dir mal die vit quest an da das sit fast das gleiche man kann ihn nur ansprechen wenn man auf 1 ist oder verstehe ich das falsch?