Sziasztok!
Azt hogy tudnám megoldani hogy ha valaki eléri a maximum szintet a szerveren, akkor még tudjon EXP-t gyűjteni hogy készség könyveket tudja olvasni, hogy ha állapot visszaállítót használ?
Válaszokat köszi!
tegyél be egy diffet hogy ne kelljen exp a könyvekhez
állítsd be 1-gyel nagyobbra a max szintet, már ha az nem 255
és questel ellenőrizd a player szintjét és EXP-jét
ha elérte a max szintet és az EXP-je pl 50 v 75%-on van, akkor utána ne kapjon többet,
illetve ha netán szintet lépne, questel rakd vissza 1-gyel kisebb szintre
Idézetet írta: 5310pati Dátum 2014-07-19, 19:44:38
állítsd be 1-gyel nagyobbra a max szintet, már ha az nem 255
és questel ellenőrizd a player szintjét és EXP-jét
ha elérte a max szintet és az EXP-je pl 50 v 75%-on van, akkor utána ne kapjon többet,
illetve ha netán szintet lépne, questel rakd vissza 1-gyel kisebb szintre
or old meg úgy mint ddmt2-n van :)
105 a max lvl.
és erre van valakinek queste? vagy ddmt2 -ös megoldás ,az pontosan milyen?:)
Az öregasszonyhoz berakod hogy rangpontért p-zen 105-ön :)
Ahogy eddig sem, ezután sem adok több DD questet...
[spoiler]quest training_grandmaster_skill begin
state start begin
when 9006.chat."Elvesztettem a készségeimet" with pc.get_level()==105 begin
say_title("Öregasszony:")
say("Te jó ég! Jól látok??")
say("Elvesztetted a készségeidet?")
say("Nincs miért aggódnod, már mindent tudsz")
say("a különleges harci technikákról.")
say("Hunyd be a szemed és koncentrálj egy készségre.")
say("Segítsek emlékezni a harci mozdualtokra?")
say("")
local s=select("Igen","Most nincs erre időm")
if s==2 then return end
if pc.get_skill_group() == 0 then
say_title("Öregasszony:")
say("Nincs semmilyen előképzettséged.")
say("Beszélj az oktatóval és gyere vissza!")
say("")
return
else
say_title("Öregasszony:")
say("Persze áldozat nélkül semmi sincs ezen a világon.")
say_reward("A művelet során elveszítesz 4000 rangpontot.")
say("Feláldozod a rangod a képességekért cserébe?")
local s=select("Igen","Nem, fontosabb a rang")
if s==2 then
say_title("Öregasszony:")
say("Sajnálom, így nem tudok segíteni.")
say("Gyere vissza, ha meggondoltad magad.")
say()
return
end
local result = training_grandmaster_skill.BuildGrandMasterSkillList(pc.get_job(), pc.get_skill_group(), true)
local vnum_list = result[1]
local name_list = result[2]
if table.getn(vnum_list) == 0 then
say_title("Öregasszony:")
say("Nincs Mester készséged amiben segíteni tudnék.")
say("Gyere vissza,ha változika helyzet.")
say("")
return
end
say_title("Öregasszony:")
say("Egyszerre csak egy készségre koncentrálhatsz.")
say("Melyik legyen az?")
say("")
local menu_list = {}
table.foreach(name_list, function(i, name) table.insert(menu_list, name) end)
table.insert(menu_list, "Mégsem")
local s=select_table(menu_list)
if table.getn(menu_list) == s then
return
end
local skill_name=name_list[s]
local skill_vnum=vnum_list[s]
local skill_level = pc.get_skill_level(skill_vnum)
local cur_alignment = pc.get_real_alignment()
local need_alignment = 4000
--test_chat("Jelenlegi Rang: "..cur_alignment)
--test_chat("Szükséges Rang: "..need_alignment)
local title=string.format("%s készség tökéletesítése", skill_name)
if cur_alignment<-19000+need_alignment then
say_title("Öregasszony:")
say_reward("Túl kevés a rangpontod!")
say("Gyere vissza, ha javult kicsit a rangod...")
say("")
return
end
say_title("Öregasszony:")
say("Ne feledd, amit mondtam:")
say_reward("Feláldozandó rangpontok: 4000")
say("Biztosan ezt akarod?")
local s=select("Igen", "Mégsem")
if s==2 then
say_title("Öregasszony:")
say("Csalódtam benned! Nem hittem, hogy")
say("ennyire sajnálod a rangodat...")
say("Tűnj a szemem elől -.-")
say("")
return
end
pc.set_skill_level(skill_vnum, 59)
pc.change_alignment(-need_alignment)
say_title("Öregasszony:")
say("Ugye hogy nem is volt nehéz?")
say(skill_name.." készséged tökéletes lett.")
say("")
say_reward("Az eljárás 4000 rangpontba került!")
say("")
wait()
say("Most dolgom van, hát menj! Örülök, hogy")
say("segíthettem :)")
say("")
end
end
when 50513.use begin
say_title("A Nagymesteri képességek edzése")
say("")
say("Ez a kő tele van lelki energiával,")
say("amely javíthatja a képességeidet.")
say("")
wait()
if pc.get_skill_group() == 0 then
say("Nincs képességed, amit fejleszthetnél!" ..pc.get_skill_group())
return
end
if get_time() < pc.getqf("next_time") then -- and not is_test_server() then
if pc.is_skill_book_no_delay() then
say_title("A Nagymesteri képességek edzése")
say("")
say("Ahhoz, hogy nagymesteri képességeid")
say("fejleszthesd, kattints a 'Tovább' gombra.")
say("")
wait()
say_title("A Nagymesteri képességek edzése")
say("")
else
say("Ma már használtál egy lélek követ!")
say("Ördögűző tekercs segítségével újat használhatsz.")
return
end
end
local result = training_grandmaster_skill.BuildGrandMasterSkillList(pc.get_job(), pc.get_skill_group())
local vnum_list = result[1]
local name_list = result[2]
if table.getn(vnum_list) == 0 then
say("Jelenleg nincs nagymesteri képességed,")
say("amit fejleszthetnél.")
return
end
say("Válaszd ki azt a képességet, amivel el szeretnéd")
say("érni a tökéletes mester szintet.")
local menu_list = {}
table.foreach(name_list, function(i, name) table.insert(menu_list, name) end)
table.insert(menu_list, "Bezár")
local s=select_table(menu_list)
if table.getn(menu_list) == s then
return
end
if pc.count_item(50513)==0 then
say("A mágikus lelkek ereje megszűnt,")
say("mert a kő időközben eltűnt.")
say("")
return
end
local skill_name=name_list[s]
local skill_vnum=vnum_list[s]
local skill_level = pc.get_skill_level(skill_vnum)
local cur_alignment = pc.get_real_alignment()
local need_alignment = 1000+500*(skill_level-30)
test_chat("Jelenlegi rangod: "..cur_alignment)
test_chat("Szükséges rangpontok: "..need_alignment)
local title=string.format("%s fejlesztése G%d-ről", skill_name, skill_level-30+1)
say_title(string.format("%s", title))
say("Ha felhasználod edzés közben a rossz/jó pontjaidat,")
say("akkor megtörténhet, hogy az átlagszint alá esel.")
say("")
if cur_alignment<-19000+need_alignment then
say_reward("Nem lehet tovább rontani a rangod. Muszáj javítanod")
say_reward("rajta, hogy tovább fejleszthesd a képességeid!")
say("")
return
end
if cur_alignment<0 then --Fejlesztés előtti, és utáni rangod: %d -> %d
say_reward(string.format("Fejleszés után levont rang pont ha[ENTER]sikertelen és ha sikeres: %d -> %d", need_alignment, need_alignment*2))
say_reward("Folytatáshoz kattints a 'Tovább' gombra.")
need_alignment=need_alignment*2
elseif cur_alignment<need_alignment then
say_reward(string.format("Szükséges rossz/jó pontok: %d", need_alignment))
say("")
say_reward("Ha most edzed képességed, akkor a rangod negatívba")
say_reward("csökken, ami 50. Szint felett veszélyes is lehet!")
say_reward("Ha biztosan akarod, kattints a 'Tovább' gombra.")
else
say_reward(string.format("Szükséges rossz/jó pontok: %d", need_alignment))
end
say("")
local s=select("Tovább", "Megszakít")
if s==2 then
return
end
if cur_alignment>=0 and cur_alignment<need_alignment then
say_title(string.format("%s megerősítés!", title))
say("")
say("Ha nagymester képességeket akarsz elsajátítani,")
say("akkor a rossz/jó pontjaid az átlagszint alá ")
say("eshetnek, mivel pillanatnyilag csak kevés")
say("rang ponttal rendelkezel.")
say("Ha tényleg edzeni akarsz, akkor írd be az")
say("alábbi sorba a következő szót.")
say("")
say_reward("Fejleszteni")
say()
say("Ha nem akarod edzeni, akkor hagyd üresen a")
say("szövegdobozt és nyomd meg az 'ENTER' billentyűt.")
local s=input()
if s!="Fejleszteni" then
return
end
end
if get_time() < pc.getqf("next_time") then -- and not is_test_server() then
if pc.is_skill_book_no_delay() then
pc.remove_skill_book_no_delay()
else
say("blabla")
return
end
end
pc.setqf("next_time", get_time()+time_hour_to_sec(number(8, 12)))
if need_alignment>0 then
if pc.learn_grand_master_skill(skill_vnum) then
pc.change_alignment(-need_alignment)
say_title(string.format("%s sikeres!", title))
say("")
if 40 == pc.get_skill_level(skill_vnum) then
say(string.format("A %s Tökéletes mester lett.", skill_name))
else
say_reward("Képesség edzése sikeres!")
say("")
say_reward(string.format("%s elérte a G%d szintet.",skill_name, skill_level-30+1+1))
end
say("")
say_reward("Vesztettél néhány rossz/jó rangpontot, és")
say_reward("felhasználtad a lélek követ.")
say("")
else
say_title(string.format("%s sikertelen!", title))
say("")
say_reward("Képesség edzése sikertelen!")
say("")
say("Nem sikerült a képességedet feljavítani.")
say("Próbáld meg később.")
say("")
say_reward("Vesztettél néhány rossz/jó rangpontot, és")
say_reward("felhasználtad a lélek követ.")
pc.change_alignment(-number(need_alignment/3, need_alignment/2))
end
end
pc.removeitem("50513", 1)
end
function BuildGrandMasterSkillList(job, group, master)
GRAND_MASTER_SKILL_LEVEL = master and 20 or 30
PERFECT_MASTER_SKILL_LEVEL = master and 21 or 40
local skill_list = special.active_skill_list[job+1][group]
local ret_vnum_list = {}
local ret_name_list = {}
table.foreach(skill_list,
function(i, skill_vnum)
local skill_level = pc.get_skill_level(skill_vnum)
if skill_level >= GRAND_MASTER_SKILL_LEVEL and skill_level < PERFECT_MASTER_SKILL_LEVEL then
table.insert(ret_vnum_list, skill_vnum)
local name=locale.GM_SKILL_NAME_DICT[skill_vnum]
if name == nil then
name=skill_vnum
end
table.insert(ret_name_list, name)
end
end)
return {ret_vnum_list, ret_name_list}
end
end
end
[/spoiler]
Köszönöm mindenkinek!
A témát zárom!