[SERVICE] Die Questkontrolle

07/16/2014 11:50 AntikerGolem#10366
Quote:
WHEN : 20011.chat ("Das Geheimniss der Fertigkeitsb▒cher")
with pc . count_item ( 81007 ) > 4
qc in malloc(): error: allocation failed
Error occured on compile Quests/npcquest/cube.quest
Quest :
Code:
quest urielfbt begin
	state start begin
		when 20011.chat."Das Geheimniss der Fertigkeitsbücher" with pc.count_item(81007) > 4 begin
		say_title("Uriel:")
		say("Sei gegrüßt Schüler,")
		say("Wie ich sehe bist du gekommen um die Geheimnisse der")
		say("Fertigkeitsbücher herrauszufinden.")
		say("Es ist ganz einfach zu verstehen, also für mich.")
		say("Es dir zu Erklären wäre jetzt Zeitverschwendung.")
		say("Nun gut, 5 von den Fertigkeitsbücher kann ich dir gegen 1")
		say("Meisterbuch tauschen, ist das nicht abgefahren?")
		say("Wähle jetzt deine Lehre.")
		local lehre1 = select("Körper", "Mental")
		if lehre1 == 1 then
			if pc.count_item(81007) == 0 then
			say_title("Uriel:")
			say("Tja, wie es aussieht, versuchst du mich zu verarschen.")
			chat("Betrüger gehören gebannt")
		else
			say_title("Uriel:")
			say("Wähle jetzt noch ein Buch aus, welches du willst")
			local mbk = select("Aura", "Kampfrausch", "Schwertwirbel", "DreiWege", "Sausen")
				if mbk == 1 then
					if pc.count_item(81007) == 0 then
					say_title("Uriel:")
					say("....")
					notice_all(""..pc.get_name().." versuchte den Uriel zu betrügen.")
				else
					pc.give_item2(50404, 1)
					pc.remove_item(81007, 5)
				elseif mbk == 2 then
					if pc.count_item(81007) == 0 then
					say_title("Uriel:")
					say("....")
					notice_all(""..pc.get_name().." versuchte den Uriel zu betrügen.")
					else
					pc.give_item2(50403, 1)
					pc.remove_item(81007, 5)
				elseif mbk == 3 then
					if pc.count_item(81007) == 0 then
					say_title("Uriel:")
					say("....")
					notice_all(""..pc.get_name().." versuchte den Uriel zu betrügen.")
					else
					pc.give_item2(50402, 1)
					pc.remove_item(81007, 5)
				elseif mbk == 4 then
					if pc.count_item(81007) == 0 then
					say_title("Uriel:")
					say("....")
					notice_all(""..pc.get_name().." versuchte den Uriel zu betrügen.")
					else
					pc.give_item2(50401, 1)
					pc.remove_item(81007, 5)
				elseif mbk == 5 then
					if pc.count_item(81007) == 0 then
					say_title("Uriel:")
					say("....")
					notice_all(""..pc.get_name().." versuchte den Uriel zu betrügen.")
					else
					pc.give_item2(50405, 1)
					pc.remove_item(81007, 5)
				end
			elseif lehre1 == 2 then
				if pc.count_item(81007) == 0 then
				say_title("Uriel:")
				say("Tja, wie es aussieht, versuchst du mich zu verarschen..")
				chat("Betrüge gehören gebannt")
			else
				say_title("Uriel:")
				say("Wähle jetzt noch ein Buch aus, welches du willst")
				local mbm = select("Durchschlag", "Heftiges Schlagen", "Stampfen", "Starker Körper", "Schwertschlag")
				if mbm == 1 then
					if pc.count_item(81007) == 0 then
					say_title("Uriel:")
					say("....")
					notice_all(""..pc.get_name().." versuchte den Uriel zu betrügen.")
					else
					pc.give_item2(50416, 1)
					pc.remove_item(81007, 5)
				elseif mbm == 2 then
					if pc.count_item(81007) == 0 then
					say_title("Uriel:")
					say("....")
					notice_all(""..pc.get_name().." versuchte den Uriel zu betrügen.")
					else
					pc.give_item2(50417, 1)
					pc.remove_item(81007, 5)
				elseif mbm == 3 then
					if pc.count_item(81007) == 0 then
					say_title("Uriel:")
					say("....")
					notice_all(""..pc.get_name().." versuchte den Uriel zu betrügen.")
					else
					pc.give_item2(50418, 1)
					pc.remove_item(81007, 5)
				elseif mbm == 4 then
					if pc.count_item(81007) == 0 then
					say_title("Uriel:")
					say("....")
					notice_all(""..pc.get_name().." versuchte den Uriel zu betrügen.")
					else
					pc.give_item2(50419, 1)
					pc.remove_item(81007, 5)
				elseif mbm == 5 then
					if pc.count_item(81007) == 0 then
					say_title("Uriel:")
					say("....")
					notice_all(""..pc.get_name().." versuchte den Uriel zu betrügen.")
					else
					pc.give_item2(50405, 1)
					pc.remove_item(81007, 5)
				end
			end
		end
	end
end
07/16/2014 15:28 BlackVIP94#10367
Code:
quest gaul begin 
    state start begin 
        when login begin
            set_state(kill) 
        end 
    end 
    state kill begin 
        when letter begin 
            send_letter("Töte 20 Wölfe & 5 Keiler") 
        end 
        when button or info begin 
            say_title("Töte die Tiere") 
            say("Wenn du ein Milligaul haben willst.
				Musst du Folgendes machen:
					Darin steht töte 20 Wölfe und 5 Keiler.
						Dannach kehre zum Hauptmann zurrück") 
        end 
        when kill with npc.get_race()==108 begin 
            if pc.getqf("kill") == 4 then  
            else 
                pc.setqf("kill",pc.getqf("kill")+1) 
            end 
        end 
        when kill with npc.get_race()==102 begin
            if pc.getqf("kill") == 19 then 
                set_state(killed) 
            else 
                pc.setqf("kill",pc.getqf("affen_kill")+1) 
            end 
        end 
    end 
    state killed begin 
        when letter begin 
            send_letter("Erfolg") 
        end 
        when button or info begin 
            say_title("Erfolg") 
            say("Oh, du hast 20 Wölfe und 5 Keiler getötet.
				Nun bist du bereit ein starkes Pferd zu führen.
					Du erhälst Miligaulbuch!")
            pc.give_item(50053, 1) 
            horse.set_level(21) 
            set_state(COMPLETE) 
        end 
    end 
    state COMPLETE begin 
    end 
end
irgenwas stimmt daran nicht
07/16/2014 18:41 dopeness'#10368
PHP Code:
quest altd begin
    state start begin
        when kill with not npc
.is_pc() begin  
        local tb 
={
      --|
ID| %|
        {
25040,3}, -- Segenschriftrolle 100%
--
Komma's nicht vergessen und beim letzten Eintrag das Komma weglassen.
}
-- Ab hier nichts ändern
        table.foreach(tb,
            function(i, p)
                zf = number(1, 100)
                    if zf <= p[2] then
                        game.drop_item_with_ownership(p[1], 1)
                    end
                end
            )
        end
    end
end 
Bräuchte in der Quest noch ne Levelbegrenzung, dass man maximal 10 Level über einem Monster noch was droppt, und maximal 10 level unter einem was droppt. Bei der quest ist es derzeit so, dass man mit 105 noch was bei den wildhunden droppen kann..
07/16/2014 19:50 nOa##10369
Quote:
Originally Posted by 'Awu View Post
Sollte laufen:

Quote:
Originally Posted by BlackVIP94 View Post

irgenwas stimmt daran nicht
Des jetzt auch. Hier bitte:
PHP Code:
quest gaul begin 
    state start begin 
        when login begin
            set_state
(kill) 
        
end 
    end 
    state kill begin 
        when letter begin 
            send_letter
("Töte 20 Wölfe & 5 Keiler") 
        
end 
        when button 
or info begin 
            say_title
("Töte die Tiere") 
            
say("Wenn du ein Milligaul haben willst.")
            
say("Musst du Folgendes machen:")
            
say("Darin steht töte 20 Wölfe und 5 Keiler.")
            
say("Dannach kehre zum Hauptmann zurrück")
            
loop_timer("checkkilled", 3)
        
end 
        when kill with npc
.get_race()==108 begin 
            
if pc.getqf("kkill") == 4 then
                pc
.setqf("killed1", 1)
            else 
                
pc.setqf("kkill", pc.getqf("kkill")+1) 
            
end 
        end 
        when kill with npc
.get_race()==102 begin
            
if pc.getqf("wkill") == 4 then
                pc
.setqf("killed2", 1)
            else 
                
pc.setqf("wkill", pc.getqf("wkill")+1) 
            
end 
        end
        when checkkilled
.timer begin
            
if pc.getqf("killed1") > 0 and pc.getqf("killed2") > 0 then
                clear_letter
()
                
set_state(killed)
            
end
        end
    end 
    state killed begin 
        when letter begin 
            send_letter
("Erfolg") 
        
end 
        when button 
or info begin 
            say_title
("Erfolg") 
            
say("Oh, du hast 20 Wölfe und 5 Keiler getötet.")
            
say("Nun bist du bereit ein starkes Pferd zu führen.")
            
say("Du erhälst Miligaulbuch!")
            
pc.give_item2(50053, 1) 
            
horse.set_level(21) 
            
set_state(COMPLETE) 
        
end 
    end 
    state COMPLETE begin 
    end 
end 
Quote:
Originally Posted by dopeness' View Post

Bräuchte in der Quest noch ne Levelbegrenzung, dass man maximal 10 Level über einem Monster noch was droppt, und maximal 10 level unter einem was droppt. Bei der quest ist es derzeit so, dass man mit 105 noch was bei den wildhunden droppen kann..
Ist nicht sonderlich schön, aber geht.
PHP Code:
quest altd begin
    state start begin
        when kill with not npc
.is_pc() begin  
            local tb 
={
          --|
ID| %|
            {
25040,3}, -- Segenschriftrolle 100%
    --
Komma's nicht vergessen und beim letzten Eintrag das Komma weglassen.
    }
    -- Ab hier nichts ändern
            table.foreach(tb,
                function(i, p)
                    zf = number(1, 100)
                        if zf <= p[2] then
                            local npclvl = npc.get_level()
                            pc.setqf("plvl", pc.get_level())
                            if pc.getqf("plvl")+10 <= npclvl and pc.getqf("plvl")-10 >= npclvl then
                                game.drop_item_with_ownership(p[1], 1)
                            end
                        end
                    end
                )
            end
    end
end 
07/16/2014 21:02 dopeness'#10370
Quest lässt sich zwar Problemlos einfügen, aber man droppt das eingetragene Item nicht mehr. Selbst auf 100% nicht..
07/16/2014 21:35 nOa##10371
Quote:
Originally Posted by dopeness' View Post
Quest lässt sich zwar Problemlos einfügen, aber man droppt das eingetragene Item nicht mehr. Selbst auf 100% nicht..
Sry Brain afk. War von der Logik an sich total fail. Hier so ist es logisch und sollte gehen:
PHP Code:
quest altd begin
    state start begin
        when kill with not npc
.is_pc() begin  
            local tb 
={
          --|
ID| %|
            {
25040,3}, -- Segenschriftrolle 100%
    --
Komma's nicht vergessen und beim letzten Eintrag das Komma weglassen.
    }
    -- Ab hier nichts ändern
            table.foreach(tb,
                function(i, p)
                    zf = number(1, 100)
                        if zf <= p[2] then
                            local npclvl = npc.get_level()
                            pc.setqf("plvl", pc.get_level())
                            if pc.getqf("plvl") < npclvl +10 and pc.getqf("plvl") > npclvl -10 then
                                game.drop_item_with_ownership(p[1], 1)
                            end                            
                        end
                    end
                )
            end
    end
end 
07/16/2014 21:48 dopeness'#10372
Quote:
Originally Posted by nOa# View Post
Sry Brain afk. War von der Logik an sich total fail. Hier so ist es logisch und sollte gehen:
PHP Code:
quest altd begin
    state start begin
        when kill with not npc
.is_pc() begin  
            local tb 
={
          --|
ID| %|
            {
25040,3}, -- Segenschriftrolle 100%
    --
Komma's nicht vergessen und beim letzten Eintrag das Komma weglassen.
    }
    -- Ab hier nichts ändern
            table.foreach(tb,
                function(i, p)
                    zf = number(1, 100)
                        if zf <= p[2] then
                            local npclvl = npc.get_level()
                            pc.setqf("plvl", pc.get_level())
                            if pc.getqf("plvl") < npclvl +10 and pc.getqf("plvl") > npclvl -10 then
                                game.drop_item_with_ownership(p[1], 1)
                            end                            
                        end
                    end
                )
            end
    end
end 
Leider immer noch nicht :/ Kenne mich mit questen nicht wirklich aus, kann es sein das die "end's" da unten bisschen versetzt sind?
07/17/2014 23:08 BlackVIP94#10373
Code:
quest rates begin  
    state start begin  
        when 20011.chat."Ingame Rates" with pc.is_gm() begin 
            say_title("Ingame Rates") 
            say("") 
            say("Welche Rates willst du erhöhen/erniedrigen?")  
            rate = {"Exp-Rate", "Yang-Rate", "Drop-Rate", "Yangbomben-Rate", "Abbrechen"} 
            com = { "priv 0 4 ", "priv 0 2 ", "priv 0 1 ", "priv 0 3 " } 
            local s = select_table(rate)  
            if s == table.getn(rate) then return end 
            say_title(rate[s]) 
            say("") 
            say("Alles klar. Dann gib die "..rate[s].." ein:")  
            local zahl = tonumber(input())  
            if zahl <= 0 then say("Die Zahl ist zu niedrig!") return end 
            say_title(rate[s]) 
            say("") 
            say("Wie lange soll die "..rate[s].." bestehen bleiben?") 
            local zahl2 = tonumber(input())  
            if zahl2 <= 0 then say("Die Zahl ist zu niedrig!") return end 
            if zahl2 > 24 then zahl2 = 24 end 
            say_title(rate[s]) 
            say("") 
            say("Willst du die "..rate[s].." wirklich auf "..zahl.." %") 
            say("für "..zahl2.." Stunde/en setzen?") 
            if select("Ja", "Nein")==2 then return end 
            command(""..com[s]..""..zahl.." "..zahl2.."") 
        end 
    end 
e
Die ist falsch aber ka an was, und wo kann ich die venum von npc eintragen wenn ich von nem anderen will??
07/17/2014 23:30 Therulas#10374
Quote:
Originally Posted by BlackVIP94 View Post
Code:
quest rates begin  
    state start begin  
        when 20011.chat."Ingame Rates" with pc.is_gm() begin 
            say_title("Ingame Rates") 
            say("") 
            say("Welche Rates willst du erhöhen/erniedrigen?")  
            rate = {"Exp-Rate", "Yang-Rate", "Drop-Rate", "Yangbomben-Rate", "Abbrechen"} 
            com = { "priv 0 4 ", "priv 0 2 ", "priv 0 1 ", "priv 0 3 " } 
            local s = select_table(rate)  
            if s == table.getn(rate) then return end 
            say_title(rate[s]) 
            say("") 
            say("Alles klar. Dann gib die "..rate[s].." ein:")  
            local zahl = tonumber(input())  
            if zahl <= 0 then say("Die Zahl ist zu niedrig!") return end 
            say_title(rate[s]) 
            say("") 
            say("Wie lange soll die "..rate[s].." bestehen bleiben?") 
            local zahl2 = tonumber(input())  
            if zahl2 <= 0 then say("Die Zahl ist zu niedrig!") return end 
            if zahl2 > 24 then zahl2 = 24 end 
            say_title(rate[s]) 
            say("") 
            say("Willst du die "..rate[s].." wirklich auf "..zahl.." %") 
            say("für "..zahl2.." Stunde/en setzen?") 
            if select("Ja", "Nein")==2 then return end 
            command(""..com[s]..""..zahl.." "..zahl2.."") 
        end 
    end 
e
Die ist falsch aber ka an was, und wo kann ich die venum von npc eintragen wenn ich von nem anderen will??
Oben bei when 20011.chat."Ingame Rates" with pc.is_gm() begin

die 20011 steht für die Npc Vnum einfach austauschen.



lg Therulas
07/18/2014 10:49 .yorliK#10375
Quote:
Originally Posted by BlackVIP94 View Post

Die ist falsch aber ka an was, und wo kann ich die venum von npc eintragen wenn ich von nem anderen will??
Die Quest funktioniert..
[Only registered and activated users can see links. Click Here To Register...]

Kopieren soll gelernt sein. Das letzte end ist nicht vollständig.... und in der Questerstellung wurde schon gesagt wie man nen anderen NPC nimmt!

when 20011.chat."Ingame Rates" with pc.is_gm() begin

~ 20011 ist die ID von Uriel nimm also irgendeine andere!
07/18/2014 11:09 BlackVIP94#10376
Quote:
Originally Posted by Kilroy. View Post
Die Quest funktioniert..
[Only registered and activated users can see links. Click Here To Register...]

Kopieren soll gelernt sein. Das letzte end ist nicht vollständig.... und in der Questerstellung wurde schon gesagt wie man nen anderen NPC nimmt!

when 20011.chat."Ingame Rates" with pc.is_gm() begin

~ 20011 ist die ID von Uriel nimm also irgendeine andere!
Das mit dem NPC hab ich schon verstanden
07/19/2014 12:31 Triiton#10377
Hallo,

Ich habe ein Problem mit der DT quest..Die Kill funktionen muss man ja umschreiben (Vanilla Core) und ich komme hier nicht weiter:

when kill with npc.get_race() == 1091 begin
--d.jump_all(special.devil_tower[6][1], special.devil_tower[6][2])
d.kill_all()
-- d.set_warp_at_eliminate(3*60, 65, 5376+532, 512+596+4)
d.check_eliminated()
local reward_alchemist = {20074, 20075, 20076}
d.spawn_mob(reward_alchemist[number(1,3)], 425, 216);
d.setqf("can_refine", 1)
end

Das ist die ebene wo man den DK killen muss und dann sofort alle sterben und iein schmied kommt aber wenn wir ihn killen sterben die mobs nicht und kommt kein schmied

Wäre nett wenn mir jemand helfen könnte.
07/19/2014 17:36 iTepzHD#10378
Hey,
hab ein Problem mit meiner Lehrlingstruhen Quest.
Sobald ich diese öffne sollte eigentlich für jeweils die bestimmte Klasse ( also Krieger , Ninja etc. ) was anderes rauskommen. Aber sobald ich diese öffne bekomme ich ( als Krieger zumindest ) nur den Helm ..
Hier die Quest:

Edit:

Hab noch eine Fehlerhafte Quest...

Hier der Fehler bei make.sh :

Hier die Quest:

07/20/2014 16:59 .Delta#10379
PHP Code:
[0] = {19, 1},        -- Schwert+9
                            
[0] = {11209, 1},    -- Mönchsplattenpanzer+9
                            
[0] = {12209, 1},    -- Traditoneller Helm+9 
Du überschreibst das schwert erst mit der rüstung, dann mit dem helm,.
Mit der Quest ist's so, dass du ein item pro rasse bekommst. musste umschreiben^^
----------------------------------------------------------------------------
07/20/2014 23:31 Drαεth#10380
Die Quest soll insgm. nur 30 minuten an & ausschaltbar sein.
d.h nach 30minuten soll das Item nicht mehr Bonis geben oder sonstiges.