Slender_Man 173 Posted March 27, 2015 quest: Maxmi 4.1 pedra da alma quest training_grandmaster_skill begin state start begin when 50513.use begin say_title ( "Pedra da Alma:" ) if pc . get_skill_group ( ) == 0 then say ( "Nao tens skils a G." .. pc . get_skill_group ( ) ) return end if get_time ( ) < pc . getqf ( "next_time" ) then if pc . is_skill_book_no_delay ( ) then say ( "A pedra da alma tem a funcao de" ) say ( "subir as habilidades de Grande Mestre" ) say ( "a Perfeitas" ) wait ( ) say_title ( "Pedra da Alma:" ) else say ( "Tenta de novo, dentro de 24 Horas" )say ( "Tu podes ler exorcismos!" )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 ( "Nao tens nenhuma abilidade a Grande Mestre!" ) return end say ( "Que abilidade queres subir?" ) say ( "" ) local menu_list = { } table . foreach ( name_list , function ( i , name ) table . insert ( menu_list , name ) end ) table . insert ( menu_list , "Cancelar" ) 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 ( "Karma: " .. cur_alignment ) test_chat ( "Karma necesario: " .. need_alignment ) local title = string . format ( "Pedra da Alma:" , skill_name , skill_level - 30 + 1 ) say_title ( title ) say ( "Quando se le uma pedra da alma," ) say ( "Perdes pontos de Karma! " ) say ( "" ) if cur_alignment < - 19000 + need_alignment then say_reward ( "Tenho pena mas nao tens pontos Karma." ) return end if cur_alignment < 0 then say_reward ( string . format ( "Karma necesario: %d -> %d" , need_alignment , need_alignment * 2 ) ) need_alignment = need_alignment * 2 elseif cur_alignment < need_alignment then say_reward ( string . format ( "Karma necesario: %d" , need_alignment ) ) else say_reward ( string . format ( "Karma necesario: %d" , need_alignment ) ) end say ( "" ) local s = select ( "Continuar" , "Cancelar" ) if s == 2 then return end if cur_alignment >= 0 and cur_alignment < need_alignment then say_title ( string . format ( "Pedra da Alma:" , title ) ) say ( "Chegou o monento!" ) say ( "Pra subir a sua abilidade," ) say ( "Escreve a palavra: Sim" ) local s = input ( ) if s ~= "Sim" 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 ( "[高級等級]技能修練錯誤: 休息中" ) 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 Felicidades!" , title ) ) if 40 == pc . get_skill_level ( skill_vnum ) then say ( string . format ( "Felicidades!" , skill_name ) ) else say ( string . format ( "A abilidade foi melhorada %s com exito." , skill_name , skill_level - 30 + 1 + 1 ) ) end say ( "" ) say_reward ( "Felicidades!" ) say_reward ( string . format ( "Karma restante: %d " , need_alignment ) ) say ( "" ) else say_title ( string . format ( "%s Falhaste!" , title ) ) say ( "O treino falhou!" ) say ( "" ) say_reward ( "Lamento!" ) say ( "" ) pc . change_alignment ( - number ( need_alignment / 3 , need_alignment / 2 ) ) end end item . remove ( ) end function BuildGrandMasterSkillList(job, group) GRAND_MASTER_SKILL_LEVEL = 30 PERFECT_MASTER_SKILL_LEVEL = 40 local skill_list = special.active_skill_list[job+1][group] local ret_vnum_list = {} local ret_name_list = {} -- test_chat(string.format("job=%d, group=%d", job, group)) 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 endend 1 Mastema reacted to this Share this post Link to post Share on other sites