[SERVICE] Die Questkontrolle

01/31/2015 23:48 shurigeller#10951
Quote:
Originally Posted by G.I Duke View Post
Sieht so aus als fehlt nen end ganz unten.
wo genau
02/01/2015 00:38 G.I Duke#10952
Etwa dort:
Quote:
Originally Posted by G.I Duke View Post
ganz unten
02/01/2015 00:40 Nanashii#10953
Wie macht man aber den zweiten Wert auf 0? Ist doch unmöglich oder? :)
02/01/2015 00:48 Nick#10954
Quote:
Originally Posted by shurigeller View Post
wo genau

Sollte nun funktionieren - möglich, dass ich etwas übersehen habe, ist leider Snake Code.

lg
02/01/2015 09:18 .Horny#10955
Nachdem alle minuten cowntdowns abgelaufen sind crasht der server, map is nur in ch99 und der index ist 113

quest automaticoxevent begin
state start begin
-- Dialogue with Uriel
when 20011.chat."GM: OX - Starten" with pc.is_gm() and pc.get_name() == "[SA]FT" begin
say_title(mob_name(npc.get_race())..":")
say("")

say("OX Starten?")
say("Gewinne werden automatisch vergeben!")
local s = select(locale.yes,locale.no)
if(s == 2) then return end
say_title(mob_name(npc.get_race())..":")
say("")

say("Event Geöffnet")
say("Bitte warte")
server_timer("countdown",10)
game.set_event_flag("oxevent_status",1)
end

--- Start Countdown !.
when countdown.server_timer begin
if(game.get_event_flag("oxevent_status") == 0) then
notice_all("Es ist ein Fehler aufgetaucht.")
notice_all("Das Event wurde Beendet.")
else
notice_all("Uriel: OX-Wettbewerb - Geöffnet")
notice_all("Uriel: 5 Minuten bis die Tore Geschlossen werden!")
server_timer("countdownone",60)
end
end

--- CountDown 2
when countdownone.server_timer begin
if(game.get_event_flag("oxevent_status") == 0) then
notice_all("Es ist ein Fehler aufgetaucht.")
notice_all("Das Event wurde Beendet.")
else
notice_all("Uriel: Tore werden Geschlossen in: 4 Minute/n")
server_timer("countdowntwo",60)
end
end

--- CountDown 3
when countdowntwo.server_timer begin
if(game.get_event_flag("oxevent_status") == 0) then
notice_all("Es ist ein Fehler aufgetaucht.")
notice_all("Das Event wurde Beendet.")
else
notice_all("Uriel: Tore werden Geschlossen in: 3 Minute/n")
server_timer("countdownthre",60)
end
end

--- CountDown 4
when countdownthre.server_timer begin
if(game.get_event_flag("oxevent_status") == 0) then
notice_all("Es ist ein Fehler aufgetaucht.")
notice_all("Das Event wurde Beendet.")
else
notice_all("Uriel: Tore werden Geschlossen in: 2 Minute/n")
server_timer("countdownfour",60)
end
end

--- CountDown 5
when countdownfour.server_timer begin
if(game.get_event_flag("oxevent_status") == 0) then
notice_all("Es ist ein Fehler aufgetaucht.")
notice_all("Das Event wurde Beendet.")
else
notice_all("Uriel: Tore werden Geschlossen in: 1 Minute/n")
server_timer("countdownfive",60)
end
end

--- Countdown 6
when countdownfive.server_timer begin
if(game.get_event_flag("oxevent_status") == 0) then
notice_all("Es ist ein Fehler aufgetaucht.")
notice_all("Das Event wurde Beendet.")
else
notice_all("Uriel: Die Tore Wurden Geschlossen!")
notice_all("Uriel: du Kannst aber noch Zuschauen!")
server_timer("playercheck",5)
game.set_event_flag("oxevent_status",2)
end
end

--- Player Check
when playercheck.server_timer begin
if(oxevent.get_attender() == 0) then
notice_all("Uriel: Das Event wurde Abgebrochen!")
game.set_event_flag("oxevent_status",0)
else
server_timer("startox",5)
end
end

--- Start Ox Event
when startox.server_timer begin
setskin(NOWINDOW)
quiz = oxevent.quiz(1,30)
if(quiz == 0) then
notice_all("Es ist ein Fehler aufgetaucht.")
notice_all("Das Event wurde Beendet.")
game.set_event_flag("oxevent_status",0)
warp_all_to_village()
elseif(quiz == 1) then
if(oxevent.get_attender() == 1) then
game.set_event_flag("oxevent_status",0)
notice_all("Uriel: Das Event ist nun Vorbei!")
warp_all_to_village()
else
server_timer("startoxone",40)
end
else
notice_all("Es ist ein Fehler aufgetaucht.")
notice_all("Das Event wurde Beendet.")
game.set_event_flag("oxevent_status",0)
warp_all_to_village()
end
end

--- Start Ox 1
when startoxone.server_timer begin
setskin(NOWINDOW)
quiz = oxevent.quiz(1,30)
if(quiz == 0) then
notice_all("Es ist ein Fehler aufgetaucht.")
notice_all("Das Event wurde Beendet.")
game.set_event_flag("oxevent_status",0)
warp_all_to_village()
elseif(quiz == 1) then
if(oxevent.get_attender() == 1) then
game.set_event_flag("oxevent_status",0)
notice_all("Uriel: Das Event ist nun Vorbei!")
oxevent.give_item(71129, 1)
oxevent.give_item(71123, 2)
oxevent.give_item(38055, 2)
oxevent.give_item(39001, 10)
warp_all_to_village()
else
server_timer("startox",40)
end
else
notice_all("Es ist ein Fehler aufgetaucht.")
notice_all("Das Event wurde Beendet.")
game.set_event_flag("oxevent_status",0)
warp_all_to_village()
end
end

when 20011.chat."Der OX-Wettbewerb" begin
say_title(mob_name(npc.get_race())..":")
say("")
---
if(game.get_event_flag("oxevent_status") == 2) then
say("Der OX-Wettbwerb läuft bereits, du kannst")
say("nur noch als Zuschauer beitreten!")
say_reward("Möchtest du Zuschauen?")
local s = select(locale.yes,locale.no)
if(s == 2) then return end
pc.warp(896300, 28900)
elseif(game.get_event_flag("oxevent_status") == 1) then
say("Der OX-Wettbewerb ist noch Offen.")
say("Möchtest du beitreten?")
local s = select(locale.yes,locale.no,"Nur Zuschauen")
if(s == 1) then
pc.warp(896500, 24600)
elseif(s == 3) then
pc.warp(896300, 28900)
end
end
end
end
end
02/01/2015 12:10 shurigeller#10956
PHP Code:
quest shop4 begin
    state start begin
    
        when 9002.chat
."Kriegershop" begin
            npc
.open_shop(4)
        
setskin(NOWINDOW)
        
end

        when 9002.chat
."ninjashop" begin
            npc
.open_shop(18)
        
setskin(NOWINDOW)
        
end
        
        when 9002.chat
."surashop" begin
            npc
.open_shop(19)
        
setskin(NOWINDOW)
        
end

        when 9002.chat
."schamishop" begin
             npc
.open_shop(20)
        
setskin(NOWINDOW)

        
when 9002.chat."schmuck" begin
             npc
.open_shop(21)
        
setskin(NOWINDOW)
        
end
    end
end 
wieso funzt die net
02/01/2015 12:18 .yorliK#10957
Quote:
Originally Posted by shurigeller View Post

wieso funzt die net

Fehlermeldung vielleicht? Bei solchen Sachen haste überhaupt erstmal Glück, das dir geholfen wird..

Code:
quest shop4 begin 
	state start begin  
		when 9002.chat."Kriegershop" begin 
			npc.open_shop(4) 
			setskin(NOWINDOW) 
		end 

		when 9002.chat."ninjashop" begin 
			npc.open_shop(18) 
			setskin(NOWINDOW) 
		end 

		when 9002.chat."surashop" begin 
			npc.open_shop(19) 
			setskin(NOWINDOW) 
		end 

		when 9002.chat."schamishop" begin 
			npc.open_shop(20) 
			setskin(NOWINDOW) 
		end 

		when 9002.chat."schmuck" begin 
			npc.open_shop(21) 
			setskin(NOWINDOW) 
		end 
	end 
end
02/01/2015 12:39 shurigeller#10958
Quote:
Originally Posted by Kilroy. View Post
Fehlermeldung vielleicht? Bei solchen Sachen haste überhaupt erstmal Glück, das dir geholfen wird..

Code:
quest shop4 begin 
	state start begin  
		when 9002.chat."Kriegershop" begin 
			npc.open_shop(4) 
			setskin(NOWINDOW) 
		end 

		when 9002.chat."ninjashop" begin 
			npc.open_shop(18) 
			setskin(NOWINDOW) 
		end 

		when 9002.chat."surashop" begin 
			npc.open_shop(19) 
			setskin(NOWINDOW) 
		end 

		when 9002.chat."schamishop" begin 
			npc.open_shop(20) 
			setskin(NOWINDOW) 
		end 

		when 9002.chat."schmuck" begin 
			npc.open_shop(21) 
			setskin(NOWINDOW) 
		end 
	end 
end


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

Quote:
Originally Posted by .JayZoN View Post

Sollte nun funktionieren - möglich, dass ich etwas übersehen habe, ist leider Snake Code.

lg
[Only registered and activated users can see links. Click Here To Register...]
02/01/2015 13:34 .Nirgendwer.#10959

Fehler in Putty :
syntax error : [string "startpc . get_level ( ) <= 30"]:2: `then' expected near `set_state'
dailyquest.quest:7:Error occured on compile dailyquest.quest


Wäre hilfreich wenn es schnell gehen würde.
02/01/2015 13:35 .Delta#10960
dir fehlt ein then nach if get_global_time()> pc.getqf(tempo)
PHP Code:
if get_global_time()> pc.getqf(tempothen 
02/01/2015 13:51 .Horny#10961
Nachdem alle minuten cowntdowns abgelaufen sind crasht der server, map is nur in ch99 und der index ist 113

quest automaticoxevent begin
state start begin
-- Dialogue with Uriel
when 20011.chat."GM: OX - Starten" with pc.is_gm() and pc.get_name() == "[SA]FT" begin
say_title(mob_name(npc.get_race())..":")
say("")

say("OX Starten?")
say("Gewinne werden automatisch vergeben!")
local s = select(locale.yes,locale.no)
if(s == 2) then return end
say_title(mob_name(npc.get_race())..":")
say("")

say("Event Geöffnet")
say("Bitte warte")
server_timer("countdown",10)
game.set_event_flag("oxevent_status",1)
end

--- Start Countdown !.
when countdown.server_timer begin
if(game.get_event_flag("oxevent_status") == 0) then
notice_all("Es ist ein Fehler aufgetaucht.")
notice_all("Das Event wurde Beendet.")
else
notice_all("Uriel: OX-Wettbewerb - Geöffnet")
notice_all("Uriel: 5 Minuten bis die Tore Geschlossen werden!")
server_timer("countdownone",60)
end
end

--- CountDown 2
when countdownone.server_timer begin
if(game.get_event_flag("oxevent_status") == 0) then
notice_all("Es ist ein Fehler aufgetaucht.")
notice_all("Das Event wurde Beendet.")
else
notice_all("Uriel: Tore werden Geschlossen in: 4 Minute/n")
server_timer("countdowntwo",60)
end
end

--- CountDown 3
when countdowntwo.server_timer begin
if(game.get_event_flag("oxevent_status") == 0) then
notice_all("Es ist ein Fehler aufgetaucht.")
notice_all("Das Event wurde Beendet.")
else
notice_all("Uriel: Tore werden Geschlossen in: 3 Minute/n")
server_timer("countdownthre",60)
end
end

--- CountDown 4
when countdownthre.server_timer begin
if(game.get_event_flag("oxevent_status") == 0) then
notice_all("Es ist ein Fehler aufgetaucht.")
notice_all("Das Event wurde Beendet.")
else
notice_all("Uriel: Tore werden Geschlossen in: 2 Minute/n")
server_timer("countdownfour",60)
end
end

--- CountDown 5
when countdownfour.server_timer begin
if(game.get_event_flag("oxevent_status") == 0) then
notice_all("Es ist ein Fehler aufgetaucht.")
notice_all("Das Event wurde Beendet.")
else
notice_all("Uriel: Tore werden Geschlossen in: 1 Minute/n")
server_timer("countdownfive",60)
end
end

--- Countdown 6
when countdownfive.server_timer begin
if(game.get_event_flag("oxevent_status") == 0) then
notice_all("Es ist ein Fehler aufgetaucht.")
notice_all("Das Event wurde Beendet.")
else
notice_all("Uriel: Die Tore Wurden Geschlossen!")
notice_all("Uriel: du Kannst aber noch Zuschauen!")
server_timer("playercheck",5)
game.set_event_flag("oxevent_status",2)
end
end

--- Player Check
when playercheck.server_timer begin
if(oxevent.get_attender() == 0) then
notice_all("Uriel: Das Event wurde Abgebrochen!")
game.set_event_flag("oxevent_status",0)
else
server_timer("startox",5)
end
end

--- Start Ox Event
when startox.server_timer begin
setskin(NOWINDOW)
quiz = oxevent.quiz(1,30)
if(quiz == 0) then
notice_all("Es ist ein Fehler aufgetaucht.")
notice_all("Das Event wurde Beendet.")
game.set_event_flag("oxevent_status",0)
warp_all_to_village()
elseif(quiz == 1) then
if(oxevent.get_attender() == 1) then
game.set_event_flag("oxevent_status",0)
notice_all("Uriel: Das Event ist nun Vorbei!")
warp_all_to_village()
else
server_timer("startoxone",40)
end
else
notice_all("Es ist ein Fehler aufgetaucht.")
notice_all("Das Event wurde Beendet.")
game.set_event_flag("oxevent_status",0)
warp_all_to_village()
end
end

--- Start Ox 1
when startoxone.server_timer begin
setskin(NOWINDOW)
quiz = oxevent.quiz(1,30)
if(quiz == 0) then
notice_all("Es ist ein Fehler aufgetaucht.")
notice_all("Das Event wurde Beendet.")
game.set_event_flag("oxevent_status",0)
warp_all_to_village()
elseif(quiz == 1) then
if(oxevent.get_attender() == 1) then
game.set_event_flag("oxevent_status",0)
notice_all("Uriel: Das Event ist nun Vorbei!")
oxevent.give_item(71129, 1)
oxevent.give_item(71123, 2)
oxevent.give_item(38055, 2)
oxevent.give_item(39001, 10)
warp_all_to_village()
else
server_timer("startox",40)
end
else
notice_all("Es ist ein Fehler aufgetaucht.")
notice_all("Das Event wurde Beendet.")
game.set_event_flag("oxevent_status",0)
warp_all_to_village()
end
end

when 20011.chat."Der OX-Wettbewerb" begin
say_title(mob_name(npc.get_race())..":")
say("")
---
if(game.get_event_flag("oxevent_status") == 2) then
say("Der OX-Wettbwerb läuft bereits, du kannst")
say("nur noch als Zuschauer beitreten!")
say_reward("Möchtest du Zuschauen?")
local s = select(locale.yes,locale.no)
if(s == 2) then return end
pc.warp(896300, 28900)
elseif(game.get_event_flag("oxevent_status") == 1) then
say("Der OX-Wettbewerb ist noch Offen.")
say("Möchtest du beitreten?")
local s = select(locale.yes,locale.no,"Nur Zuschauen")
if(s == 1) then
pc.warp(896500, 24600)
elseif(s == 3) then
pc.warp(896300, 28900)
end
end
end
end
end
02/01/2015 14:13 .Nirgendwer.#10962
Quote:
Originally Posted by .Delta View Post
dir fehlt ein then nach if get_global_time()> pc.getqf(tempo)
PHP Code:
if get_global_time()> pc.getqf(tempothen 
Fehler besteht immer noch.
02/01/2015 14:25 DarkCry96#10963
PHP Code:
local s select("Hier, nimm ihn und bring mich rein""Abbrechen")
                if 
== 1 then
                    
if pc.count_item(71095) >= 1 then
                        pc
.remove_item(710951)
                        if 
game.get_event_flag("dragontemple_notfinished") == 0 then
                            local ret 
DragonLair.startRaid(73)
                        else
                            
pc.warp(8432831066935, (82*10000)) 

Ehm an dieser Stelle nimmt er das Item, aber teleportiert einen nicht,
muss vielleicht das else weg? Kann mir einer die Stelle schnell korrigieren?
02/01/2015 14:42 .yorliK#10964
Quote:
Originally Posted by .Nirgendwer. View Post
Fehler besteht immer noch.
Es gibt jetzt keinen Error mehr. Ob sie funktioniert ist ne andere Sache, austesten bitte.

PS: Da es ne Daily ist, sicher das das set_state(__COMPLETE__) dahin gehört? Sollte es nicht eher set_state(start) sein? Damit die Quest wenn die Zeit um ist wieder neustartet?

Code:
quest dailyquest begin
	state start begin 
		when login or levelup with pc.get_level() <= 30 begin
			if get_global_time()> pc.getqf("tempo") then
				set_state(infos)
			end
		end
	end
	state infos begin -- info about the mission
		when letter begin
			send_letter("Daily quest")
		end -- letter sent
		when button or info begin
			say_title("Daily quest")
			say("Hi, " .. pc.get_name() .. ".")
			say("You can choose the easy way,")
			say("with a poor reward or")
			say("the hard way, for a better reward")
			say("")
			local risp = select("Easy","Hard", "Cancel")
			if risp==3 then -- Cancel
				return
			elseif risp == 1 then -- Easy
				pc.setqf("dif",0) -- difficulty FLAG (0=easy, 1=hard)
				set_state(running)
			else -- Hard
				pc.setqf("dif",1)
				set_state(running)
			end
		end -- when closed
	end -- INFO closed

	state running begin
		when enter begin
			pc.setqf("done",0) -- quest completed FLAG (0=not completed, 1=completed)
			if pc.getqf("dif")==0 then
				pc.setqf("mob_to_kill", math.random(2411, 2414))
				-- how many kills
				local qta = {
								100, 125, 150, 175, 200,
								225, 250, 275, 300
							}
				pc.setqf("qta_to_kill",qta[math.random(1, 9)])
				-- 50k yang for each kill, max=15M yang
				pc.setqf("reward",50000 * (pc.getqf("qta_to_kill")))
			else
				local vmob = {
								1093, 1191, 1901, 2092, 2191, 2491, 2492, 2493
							 }
				pc.setqf("mob_to_kill",(vmob[math.random(1, 8)]))
				pc.setqf("qta_to_kill",(math.random(1, 10)))
				-- 3M exp for each kill, max=30M exp
				pc.setqf("reward",3000000 * (pc.getqf("qta_to_kill")))
			end
		end
		when letter begin
			if pc.getqf("dif") == 0 then
				send_letter("Daily mission, Easy")
			else
				send_letter("Daily mission, Hard")
			end
		end
		when button or info begin -- info about the quest
			if pc.getqf("done") == 0 then -- if he didn't complete the quest
				if pc.getqf("dif") == 0 then
					say_title("Daily quest, Hasy")
				else
					say_title("Daily quest, Hard")
				end
				say("So, you have chosen the easy way..")
				say("Here is your objective.")
				say("")
				say_reward("You have to kill: " .. pc.getqf("qta_to_kill") .. mob_name(pc.getqf("mob_to_kill")))
				if pc.getqf("dif") == 0 then
					say_reward("That's what you'll got: " .. pc.getqf("reward") .. " yang.")
				else
					say_reward("That's what you'll got: " .. pc.getqf("reward") .. " experience.")
				end
			else
				say_title("Daily mission reward")
				say("Congratulations " ..pc.get_name() .. " !!")
				say("You've earned a nice reward..")
				wait()
				if pc.getqf("dif")==0 then
					say_reward("You have earned: " .. pc.getqf("reward") .. " yang.")
					pc.changegold(pc.getqf("reward"))
				else
					say_reward("You have earned: " .. pc.getqf("reward") .. " experience.")
					pc.give_exp2(pc.getqf("reward"))
				end
				-- timer FLAG, this quest is repeatable once per day (24h)
				pc.setqf("tempo", get_global_time()+86400) -- 60*60*24
				-- deleting FLAGS
				pc.delqf("mob_to_kill")
				pc.delqf("reward")
				pc.delqf("qta_to_kill")
				pc.delqf("dif")
				pc.delqf("done")
				set_state(__COMPLETE__)
			end
		end
		when kill with npc.get_race()==pc.getqf("mob_to_kill") begin
			pc.setqf("qta_to_kill",(pc.getqf("qta_to_kill"))-1)
			if pc.getqf("qta_to_kill") == 0 then
				pc.setqf("done", 1)
				send_letter("Daily mission, Reward")
			end
		end
	end -- closed RUNNING
	state __COMPLETE__ begin
		when enter begin
			q.done()
		end
	end
end
02/01/2015 14:44 VeyZ#10965
Guten Tag,

ich habe 3 eigentlich simple Quest die nicht funktionieren..

1. 3 Shops auf einen NPC (In diesem fall Gemi)


2. Warpring-Quest (mit Map1,Map2 & Dämonenturm)


3. Regegnbogensteinquest (Von m1 auf P)