Max szinten jöjjön EXP (k)

Indította Mondyf, 2014-07-19, 17:50:04

2014-07-19, 17:50:04 Utolsó szerkesztés: 2014-07-19, 17:52:50 Szerző: Mondyf
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!
"Mindenki tudja, hogy bizonyos dolgokat nem lehet megvalósítani, mígnem jön valaki, aki errÅ'l nem tud, és megvalósítja." Albert Einstein

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?:)
"Mindenki tudja, hogy bizonyos dolgokat nem lehet megvalósítani, mígnem jön valaki, aki errÅ'l nem tud, és megvalósítja." Albert Einstein

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!
"Mindenki tudja, hogy bizonyos dolgokat nem lehet megvalósítani, mígnem jön valaki, aki errÅ'l nem tud, és megvalósítja." Albert Einstein