[SERVICE] Die Questkontrolle

12/26/2014 22:48 .SliceR#10771
Quote:
Originally Posted by .SliceR View Post
Hab aktuell zwei Probleme.

Vorab die Quest:
Code:
quest sd3_bruthoehle begin
	state start begin
		when 30130.chat."In die Bruthöhle" with pc.get_level() > 49 begin
			say_title(string.format("%s:", mob_name(string.format("%d", npc.get_race()))))
			if game.get_event_flag("sd3_frei") == 1 then
				say("Die Bruthöhle ist zur Zeit besetzt.")
				return
			end
			say("Möchtet ihr die Bruthöhle betreten?")
			if select("Ja","Nein") == 2 then return end
			d.join(208) -- Mapindex anpassen
			game.set_event_flag("sd3_frei",1)
			server_timer("exit",60*20)
		end
		when login with pc.get_map_index() >= 2080000 and pc.get_map_index() < 2090000 begin -- Index anpassen
			d.set_regen_file("data/dungeon/sd3/eier.txt")
			d.regen_file("data/dungeon/sd3/boss.txt")
			d.notice("Ihr habt 20 Minuten Zeit, um den Spinnenbaron zu töten.")
		end
		when exit.server_timer begin
			if d.select(get_server_timer_arg()) then
				d.exit_all()
				server_timer("sd3_set_free",60*60)
			end
		end
		when kill with npc.get_race()==2591 and pc.get_level() > 49 begin
			local count = tonumber(party.get_near_count()-1)
			notice_all(string.format("%s und %d weitere Mitglieder haben den Spinnenbaron besiegt!", pc.get_name(), count))
			server_timer("sd3_set_free", 60*60)
			server_timer("exit",60*5)
			d.notice("In 5 Minuten werdet ihr hinausteleportiert")
		end
		when sd3_set_free.server_timer begin
			game.set_event_flag("sd3_frei",0)
		end
	end
end

1. Wenn ich mich ins "Dungeon" teleportiere, dann werde ich an den Anfang des SD3's teleportiert und nicht direkt in Bosskammer. Wie änder ich dies? Der Teleport wird ja mit d.join(208) eingeleitet. Wie setze ich jetzt den Spawn in der Bosskammer und mit d.join?

2. Wenn ich Spinnenbaroness getötet habe werde ich nicht heraus teleportiert. Ebenfalls wenn die Zeit abgelaufen ist.

Syserr:
Code:
AddServerTimer: already registered server timer name:exit arg:0
Bedanke mich im Voraus für alle Antworten! :)

Frohe Weihnachten wünsch ich euch.
Keiner nen Plan?
12/26/2014 23:16 DAS IST VEGAAZ#10772
Code:
quest Expstop begin
	state start begin		
	    when login or levelup with pc.get_level() == 25 then
			syschat("Hallo "..pc.get_name())
			syschat("Du hast eine Mission melde dich beim Hauptmann!")
			pc.setqf("antiexp", 1)
			local ep = pc.get_exp()
			pc.give_exp2(-ep)
			timer("erfahrung", 3)
        end	
		when erfahrung.timer with pc.getqf("antiexp") == 1 begin
			local ep = pc.get_exp()
			pc.give_exp2(-ep)
			timer("erfahrung1", 3)
			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", 3)
			pc.setqf("antiexp", 1)            
		end		
	end
end
Kann keinen Fehler finden... :confused:

Außerdem wollte ich mal fragen wie ich per Quest ein level erhöhen kann pc.get_level == 26 geht z.B. nicht.

Mfg,
Vegaaz
12/26/2014 23:16 Rextrus#10773

Das funktioniert nicht. Wenn man 8005 2x getötet hat, passiert nichts..
Wenn man nur "8005.kill" macht, funktioniert es, es ist dann jedoch nur eine Tötung.^^
d.getf("dBandit") ist 0

Fehlermeldungen kommen nicht. Nachdem man 8005 tötet, wird es nicht gezählt.

edit
Lösung:
12/27/2014 19:54 xAquiZ#10774
PHP Code:
Quest Frage

quest regenbogen begin
state start begin
when 50514.
use begin
say_title
("Regenbogenstein:")
say("Du möchtest also einen deiner Skills ")
say("zur Großmeisterfertigkeit machen?")
say("Achtung: Du musst erst deine Lehre")
say("bei den Lehrern wählen!")

if 
pc.job ==0 then
say
("Wähle deine Lehre aus")
local s=select("Körper","Mental")

if 
s==1 then
local p
=select("Dreiwege-Schnitt","Schwertwirbel","Kampfrausch","Aura Des Schwertes","Sausen")

if 
p==1 then
pc
.set_skill_group(1)
pc.set_skill_level(,+1)
chat("Dreiwege-Schnitt ist jetzt eine Großmeisterfertigkeit.")
end
if p==2 then
pc
.set_skill_group(1)
pc.set_skill_level(,+1)
chat("Schwertwirbel ist jetzt eine Großmeisterfertigkeit.")
end
if p==3 then
pc
.set_skill_group(1)
pc.set_skill_level(,+1)
chat("Kampfrausch ist jetzt eine Großmeisterfertigkeit.")
end
if p==4 then
pc
.set_skill_group(1)
pc.set_skill_level(,+1)
chat("Aura Des Schwertes ist jetzt eine Großmeisterfertigkeit.")
end
if p==5 then
pc
.set_skill_group(1)
pc.set_skill_level(,+1)
chat("Sausen ist jetzt eine Großmeisterfertigkeit.")
end
pc
.remove_item(50512,1)
end

if s==2 then
local p
=select("Durchschlag","Heftiges Schlagen","Stampfer","Starker Körper","Schwertschlag")

if 
p==1 then
pc
.set_skill_group(2)
pc.set_skill_level(16 ,30)
chat("Durchschlag ist jetzt eine Großmeisterfertigkeit.")
end
if p==2 then
pc
.set_skill_group(2)
pc.set_skill_level(17 ,30)
chat("Heftiges Schlagen ist jetzt eine Großmeisterfertigkeit.")
end
if p==3 then
pc
.set_skill_group(2)
pc.set_skill_level(18 ,30)
chat("Stampfer ist jetzt eine Großmeisterfertigkeit.")
end
if p==4 then
pc
.set_skill_group(2)
pc.set_skill_level(19 ,30)
chat("Starker Körper ist jetzt eine Großmeisterfertigkeit.")
end
if p==5 then
pc
.set_skill_group(2)
pc.set_skill_level(20 ,30)
chat("Schwertschlag ist jetzt eine Großmeisterfertigkeit.")
end
pc
.remove_item(50512,1)
end

elseif pc.job ==1 then
say
("Wähle deine Lehre aus")
local s=select("Nahkampf","Fernkampf")

if 
s==1 then
local p
=select("Hinterhalt","Blitzangriff","Degenwirbel" ,"Tarnung","Giftwolke")

if 
p==1 then
pc
.set_skill_group(3)
pc.set_skill_level(31 ,30)
chat("Hinterhalt ist jetzt eine Großmeisterfertigkeit.")
end
if p==2 then
pc
.set_skill_group(3)
pc.set_skill_level(32 ,30)
chat("Blitzangriff ist jetzt eine Großmeisterfertigkeit.")
end
if p==3 then
pc
.set_skill_group(3)
pc.set_skill_level(33 ,30)
chat("Degenwirbel ist jetzt eine Großmeisterfertigkeit.")
end
if p==4 then
pc
.set_skill_group(3)
pc.set_skill_level(34 ,30)
chat("Tarnung ist jetzt eine Großmeisterfertigkeit.")
end
if p==5 then
pc
.set_skill_group(3)
pc.set_skill_level(35 ,30)
chat("Giftwolke ist jetzt eine Großmeisterfertigkeit.")
end
pc
.remove_item(50512,1)
end

if s==2 then
local p
=select("Federschreiten","Gift Pfeil","Feuer Pfeil","Pfeilregen","Wiederholter Schuss")

if 
p==1 then
pc
.set_skill_group(4)
pc.set_skill_level(49 ,30)
chat("Federschreiten ist jetzt eine Großmeisterfertigkeit.")
end
if p==2 then
pc
.set_skill_group(4)
pc.set_skill_level(50 ,30)
chat("Gift Pfeil ist jetzt eine Großmeisterfertigkeit.")
end
if p==3 then
pc
.set_skill_group(4)
pc.set_skill_level(48 ,30)
chat("Feuer Pfeil ist jetzt eine Großmeisterfertigkeit.")
end
if p==4 then
pc
.set_skill_group(4)
pc.set_skill_level(47 ,30)
chat("Pfeilregen ist jetzt eine Großmeisterfertigkeit.")
end
if p==5 then
pc
.set_skill_group(4)
pc.set_skill_level(46 ,30)
chat("Wiederholter Schuss ist jetzt eine Großmeisterfertigkeit.")
end
pc
.remove_item(50512,1)
end

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

if 
s==1 then
local p
=select("Dunkler Schlag","Flammenschlag","Geist der Flamme","Dunkler Schutz","Geisterschlag","Dunkler Stein")

if 
p==1 then
pc
.set_skill_group(5)
pc.set_skill_level(76 ,30)
chat("Dunkler Schlag ist jetzt eine Großmeisterfertigkeit.")
end
if p==2 then
pc
.set_skill_group(5)
pc.set_skill_level(77 ,30)
chat("Flammenschlag ist jetzt eine Großmeisterfertigkeit.")
end
if p==3 then
pc
.set_skill_group(5)
pc.set_skill_level(78 ,30)
chat("Geist der Flamme ist jetzt eine Großmeisterfertigkeit.")
end
if p==4 then
pc
.set_skill_group(5)
pc.set_skill_level(79 ,30)
chat("Dunkler Schutz ist jetzt eine Großmeisterfertigkeit.")
end
if p==5 then
pc
.set_skill_group(5)
pc.set_skill_level(80 ,30)
chat("Geisterschlag ist jetzt eine Großmeisterfertigkeit.")
end
if p==6 then
pc
.set_skill_group(5)
pc.set_skill_level(81 ,30)
chat("Dunkler Stein ist jetzt eine Großmeisterfertigkeit.")
end
pc
.remove_item(50512,1)
end

if s==2 then
local p
=select("Fingerschlag","Drachenwirbel","Verzauber te Klinge","Furcht","Verzauberte Rüstung","Zauber Aufheben")

if 
p==1 then
pc
.set_skill_group(6)
pc.set_skill_level(61 ,30)
chat("Fingerschlag ist jetzt eine Großmeisterfertigkeit.")
end
if p==2 then
pc
.set_skill_group(6)
pc.set_skill_level(62 ,30)
chat("Drachenwirbel ist jetzt eine Großmeisterfertigkeit.")
end
if p==3 then
pc
.set_skill_group(6)
pc.set_skill_level(63 ,30)
chat("Verzauberte Klinge ist jetzt eine Großmeisterfertigkeit.")
end
if p==4 then
pc
.set_skill_group(6)
pc.set_skill_level(64 ,30)
chat("Furcht ist jetzt eine Großmeisterfertigkeit.")
end
if p==5 then
pc
.set_skill_group(6)
pc.set_skill_level(65 ,30)
chat("Verzauberte Rüstung ist jetzt eine Großmeisterfertigkeit.")
end
if p==6 then
pc
.set_skill_group(6)
pc.set_skill_level(66 ,30)
chat("Zauber Aufheben ist jetzt eine Großmeisterfertigkeit.")
end
pc
.remove_item(50512,1)
end

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

if 
s==1 then
local p
=select("Angriff +","Schnelligkeit","Kurieren","Blitzkralle","Bl itz Heraufbeschwören","Blitzwurf")

if 
p==1 then
pc
.set_skill_group(7)
pc.set_skill_level(111 ,30)
chat("Angriff + ist jetzt eine Großmeisterfertigkeit.")
end
if p==2 then
pc
.set_skill_group(7)
pc.set_skill_level(110 ,30)
chat("Schnelligkeit ist jetzt eine Großmeisterfertigkeit.")
end
if p==3 then
pc
.set_skill_group(7)
pc.set_skill_level(109 ,30)
chat("Kurieren ist jetzt eine Großmeisterfertigkeit.")
end
if p==4 then
pc
.set_skill_group(7)
pc.set_skill_level(108 ,30)
chat("Blitzkralle ist jetzt eine Großmeisterfertigkeit.")
end
if p==5 then
pc
.set_skill_group(7)
pc.set_skill_level(107 ,30)
chat("Blitz Heraufbeschwören ist jetzt eine Großmeisterfertigkeit.")
end
if p==6 then
pc
.set_skill_group(7)
pc.set_skill_level(106 ,30)
chat("Blitzwurf ist jetzt eine Großmeisterfertigkeit.")
end
pc
.remove_item(50512,1)
end

if s==2 then
local p
=select("Fliegender Talisman","Drachenschießen","Drachengebrüll","Sege n","Reflektieren","Hilfe des Drachens")

if 
p==1 then
pc
.set_skill_group(8)
pc.set_skill_level(91 ,30)
chat("Fliegender Talisman ist jetzt eine Großmeisterfertigkeit.")
end
if p==2 then
pc
.set_skill_group(8)
pc.set_skill_level(92 ,30)
chat("Drachenschießen ist jetzt eine Großmeisterfertigkeit.")
end
if p==3 then
pc
.set_skill_group(8)
pc.set_skill_level(93 ,30)
chat("Drachengebrüll ist jetzt eine Großmeisterfertigkeit.")
end
if p==4 then
pc
.set_skill_group(8)
pc.set_skill_level(94 ,30)
chat("Segen ist jetzt eine Großmeisterfertigkeit.")
end
if p==5 then
pc
.set_skill_group(8)
pc.set_skill_level(95 ,30)
chat("Reflektieren ist jetzt eine Großmeisterfertigkeit.")
end
if p==6 then
pc
.set_skill_group(8)
pc.set_skill_level(96 ,30)
chat("Hilfe des Drachens ist jetzt eine Großmeisterfertigkeit.")
end
pc
.remove_item(50512,1)
end
end
end
end
end 
12/28/2014 15:08 .Merzah#10775
say("/shutdown")
12/28/2014 21:33 .SliceR#10776
Quote:
Originally Posted by .SliceR View Post
Hab aktuell zwei Probleme.

Vorab die Quest:
Code:
quest sd3_bruthoehle begin
	state start begin
		when 30130.chat."In die Bruthöhle" with pc.get_level() > 49 begin
			say_title(string.format("%s:", mob_name(string.format("%d", npc.get_race()))))
			if game.get_event_flag("sd3_frei") == 1 then
				say("Die Bruthöhle ist zur Zeit besetzt.")
				return
			end
			say("Möchtet ihr die Bruthöhle betreten?")
			if select("Ja","Nein") == 2 then return end
			d.join(208) -- Mapindex anpassen
			game.set_event_flag("sd3_frei",1)
			server_timer("exit",60*20)
		end
		when login with pc.get_map_index() >= 2080000 and pc.get_map_index() < 2090000 begin -- Index anpassen
			d.set_regen_file("data/dungeon/sd3/eier.txt")
			d.regen_file("data/dungeon/sd3/boss.txt")
			d.notice("Ihr habt 20 Minuten Zeit, um den Spinnenbaron zu töten.")
		end
		when exit.server_timer begin
			if d.select(get_server_timer_arg()) then
				d.exit_all()
				server_timer("sd3_set_free",60*60)
			end
		end
		when kill with npc.get_race()==2591 and pc.get_level() > 49 begin
			local count = tonumber(party.get_near_count()-1)
			notice_all(string.format("%s und %d weitere Mitglieder haben den Spinnenbaron besiegt!", pc.get_name(), count))
			server_timer("sd3_set_free", 60*60)
			server_timer("exit",60*5)
			d.notice("In 5 Minuten werdet ihr hinausteleportiert")
		end
		when sd3_set_free.server_timer begin
			game.set_event_flag("sd3_frei",0)
		end
	end
end

1. Wenn ich mich ins "Dungeon" teleportiere, dann werde ich an den Anfang des SD3's teleportiert und nicht direkt in Bosskammer. Wie änder ich dies? Der Teleport wird ja mit d.join(208) eingeleitet. Wie setze ich jetzt den Spawn in der Bosskammer und mit d.join?

2. Wenn ich Spinnenbaroness getötet habe werde ich nicht heraus teleportiert. Ebenfalls wenn die Zeit abgelaufen ist.

Syserr:
Code:
AddServerTimer: already registered server timer name:exit arg:0
Bedanke mich im Voraus für alle Antworten! :)

Frohe Weihnachten wünsch ich euch.
Keiner nen Plan?
12/28/2014 21:46 .Delta#10777
1) Du kannst mal probieren bei d.join noch Koordinaten mit anzugeben (/state)
Ich meine mich zu erinnern, dass das ging.

2)
Du initilisierst 2 Timer mit dem gleichen Namen. Nenn einen um :)
PHP Code:
quest sd3_bruthoehle begin
    state start begin
        when 30130.chat
."In die Bruthöhle" with pc.get_level() > 49 begin
            say_title
(string.format("%s:"mob_name(string.format("%d"npc.get_race()))))
            if 
game.get_event_flag("sd3_frei") == 1 then
                say
("Die Bruthöhle ist zur Zeit besetzt.")
                return
            
end
            say
("Möchtet ihr die Bruthöhle betreten?")
            if 
select("Ja","Nein") == 2 then return end
            d
.join(208) -- Mapindex anpassen
            game
.set_event_flag("sd3_frei",1)
            
server_timer("exit",60*20)
        
end
        when login with pc
.get_map_index() >= 2080000 and pc.get_map_index() < 2090000 begin -- Index anpassen
            d
.set_regen_file("data/dungeon/sd3/eier.txt")
            
d.regen_file("data/dungeon/sd3/boss.txt")
            
d.notice("Ihr habt 20 Minuten Zeit, um den Spinnenbaron zu töten.")
        
end
        when 
exit.server_timer begin
            
if d.select(get_server_timer_arg()) then
                d
.exit_all()
                
server_timer("sd3_set_free",60*60)
            
end
        end
        when kill with npc
.get_race()==2591 and pc.get_level() > 49 begin
            local count 
tonumber(party.get_near_count()-1)
            
notice_all(string.format("%s und %d weitere Mitglieder haben den Spinnenbaron besiegt!"pc.get_name(), count))
            
server_timer("sd3_set_free"60*60)
            
server_timer("exitcomp",60*5)
            
d.notice("In 5 Minuten werdet ihr hinausteleportiert")
        
end
        when exitcomp
.server_timer begin
            
if d.select(get_server_timer_arg()) then
                d
.exit_all()
            
end
        end
        when sd3_set_free
.server_timer begin
            game
.set_event_flag("sd3_frei",0)
        
end
    end
end 
12/29/2014 01:38 °Ace°#10778
Kann einer mit die Quest bitte so einstellen, dass die Seelenschlüsseln genau passend zu der Zeit droppt. Gerade jetzt ist es so, dass man die Schlüsseln direkt von nem Mob droppt.
12/29/2014 03:00 .Boa Hancock#10779
Habe ein Quest gefunden
Jedoch funktioniert es nicht
Jemand eine Idee warum?

12/29/2014 22:04 Rofelmau#10780
Quote:
Originally Posted by .Boa Hancock View Post
Habe ein Quest gefunden
Jedoch funktioniert es nicht
Jemand eine Idee warum?

Da fehlte einmal "
12/29/2014 22:15 .Boa Hancock#10781
Klappt immer noch nicht :s

Quest

Fehler
Code:
bambi.quest:2:must start with 'quest'
Error occured on compile bambi.quest
12/29/2014 22:22 .Delta#10782
Du hattest das when schon geschlossen, und der restliche Code hing quasi in der Luft :D

PHP Code:
quest bambi begin
    state start begin
      when 20031.chat
."Imi vreau animalutul" begin
         say_title
("Mos Craciun")
            
say("Salutare  "..pc.get_name().." ")
            
say("Acum ca sarbatorile de craciun au sosit")
            
say("ma-m gandit sa fiu darnic si sa le dau luptatorilor")
            
say("viteji un mic ajutor de craciun. Pe mine cel putin")
            
say("ma ajuta mereu!")
            
say("Te intrebi ce este? Pai este sigiliul caprioarei Bambi!")
            
say("Cu acel sigiliu poti chema caprioara Bambi la tine!")
            
say("Ea iti va da un bonus mare care iti va usura lupta")
            
say("impotriva monstrilor!")
            
say_reward("Dar atentie. Sigiliul il primesti doar o data la 24 de ore!")
         
wait()
         
say_title("Mos Craciun")
            
say("Vrei sa iti dau sigiliul?")
         
local a select("Da te rog!""Nu, il iau mai tarziu")
         if 
== 2 then
            
return
         elseif 
== and get_time() < pc.getqf("next_time"then
            say
("Mai ai de asteptat pana poti lua sigiliul din nou!")
         elseif 
get_time() > pc.getqf("next_time"then
            say
("Poftim!Aici ai sigiliu!")
            
say("Mult succes!")
            
pc.give_item2("53007")
            
say_reward("Ai primit sigiliul caprioarei Bambi!Vei primi altul in 24 de ore!")
            
pc.setqf("next_time"get_time() + 86400)
         
end
      end
   end
end 
12/29/2014 22:23 Rofelmau#10783
Quote:
Originally Posted by .Boa Hancock View Post
Klappt immer noch nicht :s

Quest

Fehler
Code:
bambi.quest:2:must start with 'quest'
Error occured on compile bambi.quest
da ist ein end zu viel oder ein when zu wenig,
kann nur das end weg nehmen weil ich nicht weiß welches when dort vlt sein sollte
12/29/2014 23:07 #AnymRolex*#10784
Habe ein Problem mit der Pet_name.quest wie man den Namen ändert.
Wenn ich es eingebe steht da Error ocured , i-was dann noch mit col.gold or so
Kann wer nachschauen was da nicht stimmt?
12/29/2014 23:19 Rofelmau#10785
Liegt an den zeilen
PHP Code:
say(col.gold("Bei mir kannst du den Namen deiner Haustiere ändern!"))
            
say(col.lightgreen("Um dies zu tun, musst du nur dein Haustier-Siegel"))
            
say(col.lightgreen("auf mich ziehen!")) 
sowas kenn ich auch nicht kenne nur
PHP Code:
say_gold("bla"
aber die müssen auch in deiner questlib und deinen questfunctions definiert sein