Tipologie server:PVM
*Resursă folosită:
*ServerFiles utilizat:serverfiles/serverfiles-just4metin-cura ... 82055.html
*Syserr:
*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 .



