WriteRunningStateToSyserr: LUA_ERROR: quest marriage_manage.start click

Totalitatea subiectelor care nu respectă regulamentul impus in sectiunea "Probleme şi Întrebări" vor fi stocate aici.
Închis
Avatar utilizator
skristy96
Nivel 4

Nivel 4
Mesaje: 559
Membru din: 29 Noi 2013, 21:38
Server: OficialMT2
Regat: Jinno
Aprecieri: 364  
Mulţumiri: 50  
  Rezolvări prob.: 1
Discord: Copiază ID
 Contact:
Medalii

*Problemă/Întrebare:Problema marriage_manage.quest
Tipologie server:PVM
*Resursă folosită:
*ServerFiles utilizat:serverfiles/serverfiles-just4metin-cura ... 82055.html
*Syserr:
SYSERR: Feb 17 10:25:37 :: RunState: LUA_ERROR: locale/romania/quest/object/state/marriage_manage:9: attempt to call global `is_test_server' (a nil value)
SYSERR: Feb 17 10:25:37 :: WriteRunningStateToSyserr: LUA_ERROR: quest marriage_manage.start click
Poză:
*Detalii suplimentare:Din ce inteleg eu aici e ca este o problema la `is_test_server' , am intrat in locale/romania/quest/object/state/marriage_manage si la linia 9 este is_test_server , eu doar atat am inteles , dar nu stiu care este rezolvarea si ce este cu acel is_test_server . Practic mie nu imi functioneaza divortul , cand dau click pe "Divort" nu imi apare nimic.
Am incercat mai multe questuri dar tot asa .
Aici este questul meu de pe server:
quest marriage_manage begin
    	 state start begin
		when oldwoman.chat."Vreau sa ma casatoresc !" with not pc.is_engaged_or_married() begin
			if not npc.lock() then
				say("Buna ziua !")
				say("vrei sa te casatoresti ?")
				return
			end
			if pc.level < 25 then
				say("Esti prea mic...")
				say("Nu te poti casatori daca ai ")
				say("sub lv 25")
				say("Ai inteles ?")
				say("Intoarcete cand vei fi mai mare !")
				say("")
				say_reward("!")
				say("")
				npc.unlock()
				return
			end

			local m_ring_num = pc.countitem(70301)
			local m_has_ring = m_ring_num > 0
			if not m_has_ring then
				say("Nu ai inel de logodna !")
				say("")
				say_item("Inel de logodna", 70301, "")
				say_reward("Ai nevoie de acest inel pentru a te casatori !")
				say("")
				npc.unlock()

				return
			end

			local m_sex = pc.get_sex()
			if not marriage_manage.is_equip_wedding_dress() then
				say("Rochia de mireasa ?")
				say("Nu poti face o casatorie, ")
				say("in haine normale !")
				say("")

				if m_sex == 0 then
					say_item("Rochie:", marriage_manage.get_wedding_dress(pc.get_job()), "")
					say_reward("Trebuie sa ai acest lucru")
					say_reward("pentru a te putea casatori !")
				else
					say_item("Rochie:", marriage_manage.get_wedding_dress(pc.get_job()), "")
					say_reward("Trebuie sa ai acest lucru")
					say_reward("pentru a te putea casatori !")
				end
				say("")
				npc.unlock()
				return
			end

			local NEED_MONEY = 1000000
			if pc.get_money() < NEED_MONEY then
				say("Evident , nunta te costa!")
				say("Daca vrei sa te casatoresti ai nevoie")
				say("de 1.000.000 yang.")
				say("Ce crezi ca te vei casatori pe gratis ?")
				say("")
				say_reward(string.format("Nu ai suficient Yang", NEED_MONEY/10000))
				say("")
				npc.unlock()
				return
			end

			say("Deci vrei sa te casatoresti  .")
			say("Care e persoana norocoasa ?")
			say("")
			say_reward("Introduceti nume :")

			local sname = input()
			if sname == "" then
				say("Nu sunt aici sa glumim ...")
				say("")
				npc.unlock()
				return
			end

			local u_vid = find_pc_by_name(sname)
			local m_vid = pc.get_vid()
			if u_vid == 0 then
				say("Sunteti sigur ca asa o cheama ?.")
				say("Nu exista niciun nume !")
				say("")
				say_reward(string.format("%s nu exista!", sname))
				say("")
				npc.unlock()
				return
			end

			if not npc.is_near_vid(u_vid, 10) then
				say("Persoana cu care vrei sa faci nunta")
				say("nu a fost gasita..")
				say("Spunei sa se apropie de tine !")
				say("")
				say_reward(string.format("%s nu este aproape !", sname))
				say("")
				npc.unlock()
				return
			end

			local old = pc.select(u_vid)
			local u_level = pc.get_level()
			local u_job = pc.get_job()
			local u_sex = pc.get_sex()
			local u_name = pc.name
			local u_gold = pc.get_money()
			local u_married = pc.is_married()
			local u_has_ring = pc.countitem(70301) > 0
			local u_wear = marriage_manage.is_equip_wedding_dress()
			pc.select(old)
			local m_level = pc.get_level()

			if u_vid == m_vid then
				say("Nu puteti face nunta !")
				say("")
				say_reward("Casatorie anulata .")
				say("")
				npc.unlock()
				return
			end

			if u_sex == m_sex then
				say("Nu puteti face ")
				say("nunta !")
				say("")
				say_reward("Persoanele de acelasi sex nu se pot casatorii .")
				say("")
				npc.unlock()
				return
			end

			if u_married then
				say("Va veti casatori din nou ?")
				say("In primul rand trebuie sa")
				say("divortezi ")
				say("")
				say_reward(string.format("%s nu va fi fericit !", sname))
				say("")
				npc.unlock()
				return
			end

			if u_level < 25 then
				say("Ai nevoie de")
				say("lv 25.")
				say("")
				say_reward("Vino inapoi cand vei face lv  25.")
				say("")
				npc.unlock()
				return
			end

			if not u_has_ring then
				if m_ring_num >= 2 then
					say("Trebuie sa aveti amandoi inel de logodna .")
					say("Dupa putem continua .")
				else
					say("Este nevoie de 2 inele de logodna ,")
					say("cate unul pentru fiecare !")
					say("")
				end

				say_item("Inel de logodna", 70301, "")
				say_reward("Trebuie sa aveti , ")
				say_reward("amandoi inelul .")
				say("")
				npc.unlock()
				return
			end

			if not u_wear then
				say("Trebuie sa aveti ")
				say("amandoi costume de nunta !")
				say("Fara ele nu pot incepe ceremonia !")
				say("")
				if u_sex == 0 then
					say_item("Rochie:", marriage_manage.get_wedding_dress(u_job), "")
					say_reward("Trebuie sa ai acest lucru")
					say_reward("pentru a te putea casatori !")
				else
					say_item("Rochie:", marriage_manage.get_wedding_dress(u_job), "")
					say_reward("Trebuie sa ai acest lucru")
					say_reward("pentru a te putea casatori !")
				end
				say("")
				npc.unlock()
				return
			end


			local ok_sign = confirm(  u_vid, ""..pc.name.. "", 30)
			if ok_sign == CONFIRM_OK then
				local m_name = pc.name
				if pc.get_gold()>=NEED_MONEY then
					pc.change_gold(-NEED_MONEY)

					pc.removeitem(70301, 1)
					pc.give_item2(70302, 1)
					local old = pc.select(u_vid)
					pc.removeitem(70301, 1)
					pc.give_item2(70302, 1)
					pc.select(old)

					
					say("Acum esti casatorit !")
					say("Felicitari ! Du-te si sarbatoreste ")
					say("in sala de casatorii!")
					say("La multi ani !")
					say("")
					say_reward("Ai primit credinta !")
					say("")
					wait()
					setskin(NOWINDOW)
					marriage.engage_to(u_vid)
				end
			else
				
				say("Imi pare rau , dar ")
				say("nu sunt ambele persoane de acord .!")
				say("")
				say_reward("Reintoarcete !")
			end
			say("")
			npc.unlock()
		end

		when oldwoman.chat."Informatii" with pc.is_engaged() begin
			
			say("Casatoria este foarte importanta ")
			say("atat pentru formarea profesionala cat si pentu joc .")
			say("Ai posibilitatea sa te teleportezi")
			say("dupa iubit .")
			say("")
			wait()
			setskin(NOWINDOW)
			marriage.warp_to_my_marriage_map()
		end


		when 9011.chat."Incep festivitatile" with pc.is_engaged() and marriage.in_my_wedding() begin
			if not npc.lock() then
				
				say("Ati incheiat casatoria ?")
				say("")
				return
			end
			
			say("Sa incepem celebrarea casatoriei")
			say("pentru a finaliza unirea")
			say("acestor doua persoane .")
			say("")

			local sname = input()
			local u_vid = find_pc_by_name(sname)
			local m_vid = pc.get_vid()

			if u_vid == 0 then
				
				say("Sunteti sigur ca partenerul")
				say("este de acord ?")
				say("")
				say_reward(string.format("%s nu e aici!", sname))
				say("")
				npc.unlock()
				return
			end

			if not npc.is_near_vid(u_vid, 10) then
				
				say("Sunteti sigur ca partenerul")
				say("este de acord ?")
				say("")
				say("")
				say_reward(string.format("%s nu e aici !", sname))
				say("")
				npc.unlock()
				return
			end

			if u_vid == m_vid then
				
				say("Tanrul se marita !")
				say("")
				say_reward("Esti gata de treaba ?")
				say("")
				npc.unlock()
				return
			end

			if u_vid != marriage.find_married_vid() then
				
				say("Trebuie sa fie ambele persoane aici ")
				say("pentru a avea loc casatoria .")
				say("")
				npc.unlock()
				return
			end

			local ok_sign = confirm(u_vid, "vrei sa te casatoresti "..pc.name.. "?", 30)
			if ok_sign != CONFIRM_OK then
				
				say("Bine . Acum totrul este clar")
				say("Petrecerea va incepe !")
				say("")
				npc.unlock()
				return
			end
			
			say("Un nou cuplu printre noi !")
			say("")
			marriage.set_to_marriage()

			say("")
			say_reward("Ai primit inel de nunta ")
			say("")
			npc.unlock()
		end

		function give_wedding_gift()
			local male_item = {71072, 71073, 71074}
			local female_item = {71069, 71070, 71071} 
			if pc.get_sex() == MALE then
				pc.give_item2(male_item[number(1, 3)], 1)
			else
				pc.give_item2(female_item[number(1, 3)], 1)
			end
		end

		when 9011.chat."Porneste muzica de nunta" with 
			(pc.is_engaged() or pc.is_married()) and 
			marriage.in_my_wedding() and
			not marriage.wedding_is_playing_music() begin
			marriage.wedding_music(true, "wedding.mp3")
			setskin(NOWINDOW)
		end
		when 9011.chat."Opreste muzica de nunta" with 
			(pc.is_engaged() or pc.is_married()) and 
			marriage.in_my_wedding() and
			marriage.wedding_is_playing_music() begin
			marriage.wedding_music(false, "default")
			setskin(NOWINDOW)
		end
		when 9011.chat."Noapte" with 
			pc.is_married() and 
			marriage.in_my_wedding() begin
			marriage.wedding_dark(true)
			setskin(NOWINDOW)
		end

		when 9011.chat."Noapte si zapada" with pc.is_married() and marriage.in_my_wedding() begin
			marriage.wedding_snow(true)
			setskin(NOWINDOW)
		end

		when 9011.chat."Incheie nunta" with pc.is_married() and marriage.in_my_wedding() begin
			if not npc.lock() then
				
				say("Esti sigur ca vrei sa inchiei nunta ?")
				say("")
				return
			end

			
			say("Vrei sa termini nunta ?")
			say("")
			local s = select("Da","Nu")
			if s == 1 then
				local u_vid = marriage.find_married_vid()
				if u_vid == 0 then
					say("Ajutor de evenimente")
					say("Ai venit singur ?")
					say("Nu poti incheia casatoria")
					say("fara confirmarea partenerei .")
					say("")
					npc.unlock()
					return
				end
				
				say("Bine . Daca doriti sa incheiati nunta")
				say("trebuie sa asteptati confirmarea partenerului .")
				say("")
				local ok_sign = confirm(u_vid, "Inchiei nunta ?", 30)
				if ok_sign == CONFIRM_OK then
					marriage.end_wedding()
				else
					
					say("Nu puteti incheia casatoria .")
					say("")
				end

			end

				npc.unlock()
		end
		when 	11000.chat."Divortul" or
			11002.chat."Divortul" or
			11004.chat."Divortul" with pc.is_married() begin

			if not marriage_manage.check_divorce_time() then
				return
			end

			local u_vid = marriage.find_married_vid()
			if u_vid == 0 or not npc.is_near_vid(u_vid, 10) then
				say("Gardianul orasului:")
				say("Divortul este o problema serioasa")
				say("Daca vrei sa divortezi")
				say("trebuie sa fie de acord si partenerul tau .")
				say("")
				return
			end

			say("Gardianul orasului:")
			say("Divortul te costa 500.000 Yang.")
			say("Partenerul trebuie")
			say("sa fie de acord.")
			say("")

			local MONEY_NEED_FOR_ONE = 500000
			local s = select("Divorteaza", "Anuleaza")

			if s == 1 then
				local m_enough_money = pc.gold > MONEY_NEED_FOR_ONE
				local m_have_ring = pc.countitem(70302) > 0

				local old = pc.select(u_vid)
				local u_enough_money = pc.gold > MONEY_NEED_FOR_ONE
				local u_have_ring = pc.countitem(70302) > 0
				pc.select(old)

				if not m_have_ring then
					say("Trebuie sa ai inelul de nunta la tine .")
					return;
				end
				if not u_have_ring then
					say("Si partenerul tau are nevoie de inel .")
					return;
				end

				if not m_enough_money then
					say("Gardianul orasului:")
					say("Nu ai suficient Yang.")
					say("")
					say_reward(string.format("Divortul costa %d Yang", MONEY_NEED_FOR_ONE/10000))
					say("")
					return;
				end
				if not u_enough_money then
					say("Gardianul orasului:")
					say("Cealalta persoana nu are Yang.")
					say("")
					say_reward("Amandoi aveti nevoie de 500.000 Yang pentru a divorta .")
					say("")
					return;
				end

				say("Divortul este un lucru rau.")
				say("")
				say("Vrei sa divortezi ?")
				say("")

				local c=select("Da", "Nu")
				if 2 == c then
					say_pc_name()
					say("Aceasta este decizia mea .")
					say("")
					wait()
					say("Gardianul orasului:")
					say("Asa sa fie !")
					say("Daca nu ati fost facuti unul pentru celalalt.")
					say("")
					say_reward("Terminarea casatoriei.")
					say("")
					return
				end

				local ok_sign = confirm(u_vid, pc.name.."Vreti sa divortati ?", 30)
				if ok_sign == CONFIRM_OK then

					local m_enough_money = pc.gold > MONEY_NEED_FOR_ONE
					local m_have_ring = pc.countitem(70302) > 0

					local old = pc.select(u_vid)
					local u_enough_money = pc.gold > MONEY_NEED_FOR_ONE
					local u_have_ring = pc.countitem(70302) > 0
					pc.select(old)

					if m_have_ring and m_enough_money and u_have_ring and u_enough_money then
						pc.removeitem(70302, 1)
						pc.change_money(-MONEY_NEED_FOR_ONE)

						local old = pc.select(u_vid)
						pc.removeitem(70302, 1)
						pc.change_money(-MONEY_NEED_FOR_ONE)
						pc.select(old)

						say("Gardianul orasului:")
						say("Ati divortat cu succes.")
						say("")
						say_reward("Divortul a fost facut cu succes!")
						say("")
						marriage.remove()
					else
						say("Gardianul orasului:")
						say("A aparut o eroare !")
						say("Reincercati mai tarziu")
						say("")
						say_reward("E imposibil sa divortezi !")
						say("")
					end
				else
					say("Gardianul orasului:")
					say("Cealalta persoana nu este de acord")
					say("sa divortati")
					say("")
					say_reward("Divortul nu are loc .")
					say("")
				end
			end
		end

		when 	11000.chat."Sterge inelul de cununie" or
			11002.chat."Sterge inelul de cununie" or
			11004.chat."Sterge inelul de cununie" with 
			not pc.is_married() 	and 
			pc.count_item(70302)>0
			begin
			say("Gardianul orasului:")
			say("Vrei sa uiti de amintirile neplacute ...")
			say("")
			say_reward("Inelul a fost sters.")
			pc.remove_item(70302)
		end

		when 	11000.chat."Divorteaza rapid" or
			11002.chat."Divort Rapid" or
			11004.chat."Divort Rapid" with pc.is_married() begin

			if not marriage_manage.check_divorce_time() then
				return
			end

			say("Gardianul orasului:")
			say("Pentru a divorta rapid ai nevoie de 1.000.000 Yang")
			say("Vrei sa platesti pentru a divorta fara acordul partenerului ?")
			say("")

			local s = select("Di", "Nu")

			local NEED_MONEY = 1000000
			if s == 2 then
				return
			end

			if pc.money < NEED_MONEY then
				say("Gardianul orasului:")
				say("Nu ai destul Yang")
				say("pentru acest tip de divort.")
				say("Intoarcete cand vei avea Yang destul .")
				say("")
				return
			end

			say("Gardianul orasului:")
			say("Vrei cu adevarat sa divoertezi ?")
			local c = select("Vreau un divort !", "Nu cred ca este nevoie.")

			if c == 2 then
				say("Gardianul orasului:")
				say("Aceasta este decizia corecta .")
				say("Nu intotdeauna sunt aceleasi ganduri .")
				say("")
				say_reward("Divortul finalizat .")
				say("")
				return
			end

			pc.removeitem(70302, 1)
			pc.change_gold(-NEED_MONEY)

			marriage.remove()

			say("Gardianul orasului:")
			say("Poate ca nu va-ti inteles .")
			say("Sper ca esti fericit ")
			say("")
			say_reward("Divortul sa efectuat cu succes .")
			say("")
		end

		when oldwoman.chat."Nunti in desfasurare" with not pc.is_engaged() begin
			local t = marriage.get_wedding_list()
			if table.getn(t) == 0 then
				say("Nu sunt nunti in desfasurare !")
				say("")
			else
				local wedding_names = {}
				table.foreachi(t, function(n, p) wedding_names[n] = p[3].." & "..p[4].."" end)
				wedding_names[table.getn(t)+1] = locale.confirm
				local s = select_table(wedding_names)

				if s != table.getn(wedding_names) then
					marriage.join_wedding(t[1], t[2])
				end
			end
		end
		when 9011.click with not pc.is_engaged() and not pc.is_married() begin
			
			say("Ne-am adunat astazi aici pentru a sarbatorii")
			say("aceasta nunta !")
			say("")
		end

		function check_divorce_time()

			local DIVORCE_LIMIT_TIME = 86400

			if is_test_server() then
				DIVORCE_LIMIT_TIME = 60
			end

			if marriage.get_married_time() < DIVORCE_LIMIT_TIME then 
				say("Gardianul orasului:")
				say("Casatoria e un lucru important !!!")
				say("Toata lumea e aici .")
				say("")
				return false
			end

			return true
		end

		function is_equip_wedding_dress()
			local a = pc.get_armor()
			return a >= 11901 and a <= 11904
		end
		function get_wedding_dress(pc_job)
			if 0==pc_job then
				return 11901
			elseif 1==pc_job then
				return 11903
			elseif 2==pc_job then
				return 11902
			elseif 3==pc_job then
				return 11904
			else
				return 0;
			end
		end
	end
end




Ma poate ajuta cineva sa rezolv , banuiesc ca nu e ceva foarte complicat dar este ineadjuns de complicat pentru mine sa rezolv . :(
Imagine
Afișează semnătura
Avatar utilizator
kDogg
Nivel 1

Nivel 1
Mesaje: 124
Membru din: 13 Oct 2014, 21:09
Server: M2Moonlight
Regat: Jinno
Aprecieri: 213  
Mulţumiri: 12  
 Contact:
Medalii

ia questlib.lua dintr-un server cu divortul functional. de preferat ia si divortul dintr-un serverfiles mai nou.
Imagine
Afișează semnătura
Închis
Răspunsuri
13
Vizualizări
10598
Răspunsuri
0
Vizualizări
174
Răspunsuri
4
Vizualizări
502
Răspunsuri
4
Vizualizări
338

Înapoi la “Arhivă Probleme şi Întrebări”

  • Informaţie