say_title ( "Fertigkeitstraining des GroЯmeisters" ) say ( "Mit diesem Stein, erfьllt mit Seelen," ) say ( "wirst du deine Fertigkeiten verbessern kцnnen." ) say ( "" ) wait ( ) if pc . get_skill_group ( ) == 0 then say ( "§AЁS¦іҐф¦уВѕ·~." .. pc . get_skill_group ( ) ) return end if get_time ( ) < pc . getqf ( "next_time" ) then if pc . is_skill_book_no_delay ( ) then say ( "Um mit dem Fertigkeitstraining des GroЯmeister" ) say ( "fortzufahren klicke auf 'WEITER'." ) say ( "" ) wait ( ) say_title ( "Fertigkeitstraining des GroЯmeister" ) else say ( "Du kannst heute nicht weiter trainieren," ) say ( "auЯer du benutzt eine Exorzismus-Schriftrolle!" ) 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 ( "Fertigkeitstraining des GroЯmeister" ) return end say ( "Wдhle die zu trainierende Fertigkeit!" ) say ( "" ) local menu_list = { } table . foreach ( name_list , function ( i , name ) table . insert ( menu_list , name ) end ) table . insert ( menu_list , "Abbrechen" ) local s = select_table ( menu_list ) if table . getn ( menu_list ) == s then return end if pc . count_item ( 50513 ) == 0 then say ( "Die magische Kraft der Seelen sind erloschen," ) say ( "da du den Stein verloren hast.." ) 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 ( "І{¦bµЅґcИ: " .. cur_alignment ) test_chat ( "»ЭnµЅґcИ: " .. need_alignment ) local title = string . format ( "%s GroЯmeisterstufe %d Training" , skill_name , skill_level - 30 + 1 ) say_title ( title ) say ( "" ) if cur_alignment < - 19000 + need_alignment then say_reward ( "Du hast nicht genьgend Rangpunkte" ) say_reward ( "fьr ein erneutes Training." ) return end if cur_alignment < 0 then say_reward ( string . format ( "Du benцtigst %d Rangpunkte -> %d" , need_alignment , need_alignment * 2 ) ) say_reward ( "(Wenn du den Seelen bereit bist diese Rangpunkte zu opfern)" ) say_reward ( "(drьcke 'WEITER'.)" ) need_alignment = need_alignment * 2 elseif cur_alignment < need_alignment then say_reward ( string . format ( "Du benцtigst %d Rangpunkte " , need_alignment ) ) say_reward ( "(І{¦bЧЅmЄєёЬ, ·|¤U°Ём®ц¤HҐH¤U.)" ) else say_reward ( string . format ( "Du benцtigst %d Rangpunkte " , need_alignment ) ) end say ( "" ) local s = select ( "Weiter" , "Abbrechen" ) if s == 2 then return end if cur_alignment >= 0 and cur_alignment < need_alignment then say_title ( string . format ( "Bestдtigen!" , title ) ) say ( "Wenn du jetzt eine GroЯmeisterfertigkeit" ) say ( "trainierst, kцnnten deine Rangpunkte unter" ) say ( "den Durchschnittslevel fallen, da du bereits zu" ) say ( "diesem Zeitpunkt nur wenige besitzt. Wenn du" ) say ( "wirklich trainieren willst," ) say ( "gib in das Eingabefeld das Wort" ) say_reward ( "Trainieren" ) say ( "ein." ) say ( "" ) say ( "Willst du nicht trainieren, drьcke einfach" ) say ( "die Taste 'ENTER'." ) local s = input ( ) if s ~= "Trainieren" then return end end if get_time ( ) < pc . getqf ( "next_time" ) then if pc . is_skill_book_no_delay ( ) then pc . remove_skill_book_no_delay ( ) else say ( "[°ЄЇЕµҐЇЕ]§ЮЇаЧЅmїщ»~: Ґр®§¤¤" ) 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 ( "Fertigkeitstraining des GroЯmeister erfolgreich!" , title ) ) if 40 == pc . get_skill_level ( skill_vnum ) then say ( string . format ( "Fertigkeitstraining" , skill_name ) ) else say ( string . format ( skill_name , skill_level - 30 + 1 + 1 ) ) end say ( "" ) say_reward ( "Erfolgreich!" ) say_reward ( string . format ( "Du hast ein paar Rangpunkte verbraucht!" ) ) say ( "" ) else say_title ( string . format ( "GroЯmeister Fertigkeitstraining fehlgeschlagen!" , title ) ) say ( "" ) say_reward ( "Fehlgeschlagen!" ) say ( "Du hast deine Fertigkeit nicht verbessern" ) say ( "kцnnen" ) say_reward ( "Du hast einige Rangpunkte verloren" ) say_reward ( "und den Seelenstein verbraucht." ) say ( "" ) pc . change_alignment ( - number ( need_alignment / 3 , need_alignment / 2 ) ) end end pc . removeitem ( "50513" , 1 )
quest training_grandmaster_skill begin state start begin when 50513.use begin say_title(" Камень души ")
if pc.get_skill_group() == 0 then say(" У вас нет навыков "..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(" Вы можете получить высшее ") say(" мастерство в своих навыках. ") say("") wait() say_title(" Камень души ") else say(" Вам придёться подождать. ") 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(" Ваши навыки уже совершенны! ") return end
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 = 1000+500*(skill_level-30)
test_chat(" Ваш ранг: "..cur_alignment) test_chat(" Нужно ранга: "..need_alignment)
local title=string.format(" Тренировка %s. ", skill_name, skill_level-30+1)
say_title(" Камень души ") say(" Хотите продолжить? ")
local s=select(" Далее ", " Отмена ") if s==2 then return end
if 1 > 0 then say_title(string.format(" Тренировка %s ", title)) say(" Настала пора повышать ") say(" свои знания! ") say(" Хотите продолжить? ") local s2=select(" Далее ", " Отмена ") if s2==2 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(" Вам придёться подождать. ") return end end
if 1 > 0 then if pc.learn_grand_master_skill(skill_vnum) then
say_title(string.format("%s ", title)) if 40 == pc.set_skill_level (skill_vnum, 40) then say(string.format(" Уровень навыка %s совершенен. ", skill_name)) else say(string.format(" Уровень навыка %s успешно увеличен. ", skill_name, skill_level-30+1+1)) end say("") say_reward(" Отлично! ") say("") else say_title(string.format("%s ", title)) say(" К сожалению, обучение не удалось. ") say("") say_reward(" Попробуйте ещё раз. ") say("") end end
item.remove() end function BuildGrandMasterSkillList(job, group) GRAND_MASTER_SKILL_LEVEL = 30 PERFECT_MASTER_SKILL_LEVEL = 31
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)
-- test_chat(string.format("[%d]=%d", skill_vnum, skill_level)) 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}
--return {ret_vnum_list, ret_name_list} end end end