Cerere Qust.

Închis
Avatar utilizator
Hardwell
Veteran

Veteran
Mesaje: 1091
Membru din: 14 Ian 2017, 15:46
Regat: Chunjo
Aprecieri: 83  
Mulţumiri: 1603  
Discord: Copiază ID
Medalii

Salut, nu stiu exact cum se numeste quesutl, eu stiu de "quest dragon"

In ce consta acest quest?

In momentul cand vrei sa mergi sa faci dragonul albastru iti cere 3chei si te baga la dragon si dupa ce il bati te scoate automat si trebuie sa astepti un anumit interval de timp pentru a putea intra din nou.. questul este folosit pe anumite servere pvp..
Si din ce stiu, ajuta sa poata face dragonul mai multe persoane dar in camere diferite sa nu se intalneasca unul cu altul.

Nu le am cu questurile deci mai bine am cerut ajutorul vostru, tin sa specific ca am incercat cateva questuri de pe aici dar nimic ce sa ma ajute.
Imagine
Imagine
Afișează semnătura
Avatar utilizator
Sickofitqwert1
Nou Venit

Nou Venit
Mesaje: 19
Membru din: 27 Mai 2020, 15:16
Server: Sony
Regat: Jinno
Aprecieri: 407  
Mulţumiri: 2  
Discord: Copiază ID
 Contact:
Medalii

Poftim.

Cod: Selectaţi tot

if get_time ( ) > game . get_event_flag ( "Grotte_time" ) then 
game . set_event_flag ( "Grotte_zugang" , 0 ) 
end 
if pc . is_gm ( ) or pc . count_item ( 80041 ) >= 1 then 
say_title ( "" .. mob_name ( 30123 ) .. "" ) 
say ( "Bun venit " .. pc . get_name ( ) .. "" ) 
say ( "Nu ai nevoie nici de chei nici de parola" ) 
say ( "esti GM poti intra cand vrei." ) 
wait ( ) 
pc . warp ( 843200 , 1.0669e+06 ) 
return 
end 
if game . get_event_flag ( "Grotte_zugang" ) == 0 and pc . count_item ( 30179 ) < 3 then 
say_title ( "" .. mob_name ( 30123 ) .. "" ) 
say_reward ( "Pentru a intra in templul lui Beran," ) 
say_reward ( "ai nevoie de " .. item_name ( 30179 ) .. "" ) 
say_item_vnum ( 30179 ) 
say_reward ( "Aceasta cheie rasucita pica la Capitanul Setaou." ) 
say_reward ( "Ai nevoie de trei Chei Rasucite pentru a intra." ) 
return 
end 
if game . get_event_flag ( "Grotte_zugang" ) == 1 then 
say_title ( "" .. mob_name ( 30123 ) .. "" ) 
pc . setqf ( "grotte_passworto" , 7.89547e+10 ) 
if pc . getqf ( "abgabe" ) == 1 then 
pc . setqf ( "abgabe" , 0 ) 
say ( "Ai cele trei Chei Rasucite." ) 
say ( "Te voi teleporta imediat in camera de cristal." ) 
pc . setqf ( "erlaubt" , 1 ) 
wait ( ) 
pc . warp ( 843200 , 1.0669e+06 ) 
return 
end 
say ( "Introdu codul ales de liderul grupului." ) 
local passwort = tonumber ( input ( "" ) ) 
if game . get_event_flag ( "Grotte_passwort" ) == passwort then 
say_title ( "" .. mob_name ( 30123 ) .. "" ) 
say ( "Ai introdus codul corect." ) 
if pc . count_item ( 30179 ) < 3 then 
say ( "Nu te pot teleporta deoarece nu ai" ) 
say ( "" .. item_name ( 30179 ) .. "" ) 
say_item_vnum ( 30179 ) 
say ( "Ai nevoie de cele trei Chei Rasucite." ) 
return 
end 
say ( "Te voi teleporta imediat." ) 
pc . setqf ( "erlaubt" , 1 ) 
wait ( ) 
if pc . can_warp ( ) then 
pc . remove_item ( "30179" , 3 ) end 
pc . warp ( 843200 , 1.0669e+06 ) 
elseif passi ~= pc . getqf ( "grotte_passworto" ) then 
say_title ( "" .. mob_name ( 30123 ) .. "" ) 
say ( "" ) 
return 
end 
end 
if game . get_event_flag ( "Grotte_zugang" ) == 0 and pc . count_item ( 30179 ) >= 3 then 
say_title ( "" .. mob_name ( 30123 ) .. "" ) 
say ( "Detin in mine, ultima suflare a zeului dragon." ) 
say ( "Aceasta suflare magica te pot ajuta sa mergi in" ) 
say_reward ( "Camera de cristal." ) 
say ( "" ) 
say ( "Ai nevoie de cele trei chei rasucite." ) 
local i = select ( "Da, Vreau" , "Nu, Multumesc" ) 
if 1 == i then 
say_title ( "" .. mob_name ( 30123 ) .. "" ) 
say ( "Ai nevoie de un cod pentru tine oi grupul tau." ) 
say ( "Codul pe care il vei introduce, va trebui sa " ) 
say ( "contina maxim 2 cifre." ) 
local passwort = tonumber ( input ( "" ) ) 
if passwort and passwort <= 1e+09 and pc . count_item ( 30179 ) >= 1 then 
game . set_event_flag ( "Grotte_zugang" , 1 ) 
game . set_event_flag ( "Grotte_passwort" , passwort ) 
local times = get_time ( ) + 300 
game . set_event_flag ( "Grotte_time" , times ) 
say_title ( "" .. mob_name ( 30123 ) .. "" ) 
pc . setqf ( "abgabe" , 1 ) 
say ( "Parola aleasa este: " .. passwort .. "" ) 
notice ( "Parola camerei alese este " .. passwort .. " " ) 
pc . remove_item ( "30179" , 3 ) 
else 
say_title ( "" .. mob_name ( 30123 ) .. "" ) 
say ( "Nu ai scris codul corect." ) 
end 
end 
end 
Pentru acest mesaj, Sickofitqwert1 for the post:
Hardwell
Avatar utilizator
SuntDevBA
Utilizator interzis !

Utilizator interzis !
Mesaje: 51
Membru din: 07 Dec 2020, 19:35
Server: Nuzicba2
Aprecieri: 38  
Mulţumiri: 13  
Discord: Copiază ID
Medalii

Iti scriu un quest rapid , mai ai nevoie?
Avatar utilizator
SuntDevBA
Utilizator interzis !

Utilizator interzis !
Mesaje: 51
Membru din: 07 Dec 2020, 19:35
Server: Nuzicba2
Aprecieri: 38  
Mulţumiri: 13  
Discord: Copiază ID
Medalii

Ti-am scris un mic quest , sper ca intelegi ce e pe acolo . Nu am apucat sa-l testez , vnum-urile , coordonatele , indecsii mapelor... le pui tu corect acolo. Lasi mesaj unde nu intelegi .

Cod: Selectaţi tot

--for Hardwell--
--02-01-2K21--
--12:38--
quest dragon_room begin
	state start begin
	function sett()
	return
	{
		["boss_room_index"] = 50, --camera de cristal
		["dragon_room_tp"] = {1234, 1234}, --~~123400 , 123400
		["out_map_index"] = 100, --v3
		["out_coord"] = {1234, 1234}, --~~123400, 123400
		["ticket"] = 30500 , --key vnum
		["dragon_vnum"] = 2493, --cred
		["dragon_position"] = {100,200,3} --3 reprezinta pozitia , adica cracanat , lepadat, etc
	};
	
	end --function

	function is_dragon_room()
		local inf = dragon_room.sett();
		local map_index = inf["boss_room_index"];
		local pcMapIndex = pc.get_map_index();
		return pc.in_dungeon() and pcMapIndex >= map_index*10000 and pcMapIndex < (map_index+1)*10000;
	end --function is_dragon_room
	
	function party_get_member_pids()
		local pids = {party.get_member_pids()}
		
		return pids
	end --function

	function clear_boss_room()
		d.clear_regen();
		d.kill_all();
	end --function
	
	function check_enter()
		say("")
		say("Sal")
		local settings = dragon_room.sett()
		
		if((get_global_time() - pc.getf("dragon_room","exit_dragon_room_time"))< 60*60) then
			local wait_time = (pc.getf("dragon_room","exit_dragon_room_time") - get_global_time() + 60*60)
			say("You have to wait until you can enter the dungeon again.")
			say_reward("You can enter dragon_room again in: " ..get_time_remaining(wait_time)..'[ENTER]')
			return
		end --if

		if party.is_party() then
			if not party.is_leader() then
				say_reward("Let me talk with your leader firstly.")
				return
			end --if

			if party.get_near_count() < 2 then
				say_reward("Your group must have atleast 2 players and")
				say_reward("they have to be around.")
				say_reward("Otherwise i can not let you there. ")
				return false;
			end --if

			local ticketCheck = true
			local MemberHaveNoTicket = {}
			local pids = {party.get_member_pids()}	

			if not party.is_map_member_flag_lt("exit_dragon_room_time", get_global_time() - 60 * 60 ) then
				say_reward("Some people of the group still")
				say_reward("have to wait.")
				return false;
			end --if

-----------------------------------ticket check---------------------------------------------------------------------
			for i, pid in next, pids, nil do
				q.begin_other_pc_block(pid)
				if pc.count_item(settings.ticket) < 3 then
					table.insert(MemberHaveNoTicket, pc.get_name())
					ticketCheck = false
				end --if

				q.end_other_pc_block()
			end --if

			if not ticketCheck then
				say_reward("If you want to enter dragon room,")
				say_reward("every each member must have 3x ")
				say_item("Cheie rasucita", settings["ticket"], "")
				say("")
				say_reward("These members don't have the")
				say_reward("Earth ticket:")
				for i, n in next, MemberHaveNoTicket, nil do
					say_title("- "..n)
				end --for
				return
			end --if

-----------------------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------------------
		else --solo mode
			if ((get_global_time() - pc.getf("dragon_room","exit_dragon_room_time")) < 60*60)  then
				local wait_time = (pc.getf("dragon_room","exit_dragon_room_time") - get_global_time() + 60*60)
				say("You have to wait until you can enter the dungeon again.")
				say_reward("You can go there again in: "..get_time_remaining(wait_time)..'[ENTER]')
				return
			end --if

			if pc.count_item(settings["ticket"]) < 3 then
				say_reward("If you want to enter the dragon room")
				say_reward("you must have 3x")
				say_item("Cheie rasucita", settings["ticket"], "")
				return false;
			end --if
		end --if

		return true;
	end --function check_enter
---------------------------------------------------------------------------------------------------------------------------
		when login with dragon_room.is_dragon_room() begin
			local settings = dragon_room.sett()
			d.set_warp_location(settings["out_map_index"], settings["out_coord"][1],settings["out_coord"][2]);
			if not pc.is_gm() then
				if not pc.in_dungeon() then
					pc.warp(settings["out_map_index"],settings["out_coord"][1]*100,settings["out_coord"][2]*100)
				end --if
			end --if
		end --when
---------------------------------------------------------------------------------------------------------------------------
--CREATE DUNGEON ---------------
--------------------------------
		function create_dungeon()
			local setting = dragon_room.sett()
			local pids = {party.get_member_pids()}
	
			if party.is_party() then
				for i, pid in next, pids, nil do
					q.begin_other_pc_block(pid)
					pc.remove_item(setting["ticket"], 3)
					q.end_other_pc_block()
				end --for
				d.new_jump_party(setting["dragon_room_index"],setting["dragon_room_tp"][1], setting["dragon_room_tp"][2])
				d.setf("dragon_room_level",1)
				d.spawn_mob_dir(setting["dragon_vnum"],setting["dragon_position"][1],setting["dragon_position"][2],setting["dragon_position"][3])
				server_timer("kill_dragon_timer10",5,d.get_map_index())
			else -- solo mode
				pc.remove_item(setting["ticket"],3)
				d.new_jump(setting["dragon_room_index"],setting["dragon_room_tp"][1]*100, setting["dragon_room_tp"][2]*100)
				d.setf("dragon_room_level",1)
				d.spawn_mob_dir(setting["dragon_vnum"],setting["dragon_position"][1],setting["dragon_position"][2],setting["dragon_position"][3])
				server_timer("kill_dragon_timer10",5,d.get_map_index())
			end --if
		end --function create_dungeon
---------------------------------------------------------------------------------------------------------------------------

		when 2000.chat."Dragon Room" with dragon_room.is_dragon_room() and pc.get_map_index() == 100 begin --100 index v3
			local setting = dragon_room.sett()
			say("")
			say("")
			say("")
			say("There is no more gold, no crystals, nothing.")
			say(string.format("The biggest problem is %s ",mob_name(2493)))
			say("Help us to kill him")
			say("")
			say("Can you help us?")
			if (select("Yes","No") == 1) then
				if dragon_room.check_enter() then
					say("Be careful, you have only 10 minutes")
					say("to finish whole dungeon.")
					say("The you will be teleported back here.")
					wait()
					dragon_room.create_dungeon()
				end --if
			end --if
		end --when
	
		when 2493.kill with dragon_room.is_dragon_room() and d.getf("dragon_room_level") == 1 begin
			local settings = dragon_room.sett()
			d.notice("GG , cya")
			d.notice(string.format("You killed %s , nice!", mob_name(2493)))
			d.notice("Take your drop")
			d.notice("In 2 minutes you will be teleported back to v3")
			dragon_room.clear_all_dungeon_timers()
			server_timer("kill_dragon_timer0",2*60,d.get_map_index())
			d.setf("dragon_room_level",d.getf("dragon_room_level")+1) --2
		end --when
	
		when kill_dragon_timer10.server_timer begin
			if d.select(get_server_timer_arg()) then
				d.notice("You have 10 minutes to kill the Dragon")
				server_timer("kill_dragon_timer5",5*60,d.get_map_index())
			end --if
		end --when

		when kill_dragon_timer5.server_timer begin
			if d.select(get_server_timer_arg()) then
				d.notice("You have 10 minutes to kill the Dragon")
				server_timer("kill_dragon_timer1",4*60,d.get_map_index())
			end --if
		end --when
		when kill_dragon_timer1.server_timer begin
			if d.select(get_server_timer_arg()) then
				d.notice("You have 10 minutes to kill the Dragon")
				server_timer("kill_dragon_timer0",60,d.get_map_index())
			end --if
		end --when
		when kill_dragon_timer0.server_timer begin
			if d.select(get_server_timer_arg()) then
				d.exit_all()
			end --if
		end --when
		when logout with dragon_room.is_dragon_room() begin
			pc.setf("dragon_room","exit_dragon_room_time",get_global_time())
			pc.setqf("dragon_room",get_time()+ 3600)
		end --when
		
		function clear_all_dungeon_timers()
			clear_server_timer("kill_dragon_timer10",get_server_timer_arg())
			clear_server_timer("kill_dragon_timer5",get_server_timer_arg())
			clear_server_timer("kill_dragon_timer1",get_server_timer_arg())
			clear_server_timer("kill_dragon_timer0",get_server_timer_arg())
		end --funct
			
	end--state
end --quest
	
Pentru acest mesaj, SuntDevBA for the post:
Hardwell
Avatar utilizator
Hardwell
Veteran

Veteran
Mesaje: 1091
Membru din: 14 Ian 2017, 15:46
Regat: Chunjo
Aprecieri: 83  
Mulţumiri: 1603  
Discord: Copiază ID
Medalii

Multumesc, o sa le incerc cand o sa pot, mutat in cereri rezolvate.
Imagine
Imagine
Afișează semnătura
Închis
Răspunsuri
12
Vizualizări
1322
Răspunsuri
1
Vizualizări
279
Răspunsuri
10
Vizualizări
7289
Răspunsuri
7
Vizualizări
382

Înapoi la “Cereri Rezolvate”

  • Informaţie
  • Cine este conectat

    Utilizatori ce ce navighează pe acest forum: Niciun utilizator înregistrat și 6 vizitatori