ugrmhmt adlı üyeden alıntı: mesajı görüntüle
quest training_grandmaster_skill begin    
     state start begin
        when 50513.use begin
            say_title ( "Grand Masterların Beceri Eğitimi " ) 
if pc . get_skill_group ( ) == 0 then
 say ( "Henüz beceri eğitimine başlamadın. " ) 
say ( "" .. pc . get_skill_group ( ) ) 
return 
end 
if get_time ( ) < pc . getqf ( "next_time" ) then 
if pc . is_skill_book_no_delay ( ) then
say ( "Kötü Ruhları Kovma kağıdı okuduktan sonra, ara " ) 
say ( "vermeden eğitime devam edebilirsin." )   
wait ( ) 
say_title ( "Grand Masterların beceri eğitimi " ) 
else 
say ( "Eğitim tamamlandıktan sonra yarım gün " ) 
say ( "dinlenmen gerekir." ) 
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 ( "Grand Master seviyesinde olan" ) 
say ( "bir becerin yok." ) 
return 
end 
say ( "Grand Master seviyesini artırmak istediğin " ) 
say ( "beceriyi seç. " )  
local menu_list = { } 
table . foreach ( name_list , function ( i , name ) table . insert ( menu_list , name ) end ) 
table . insert ( menu_list , "Kapat" ) 
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 ( "Güncel Derece:" .. cur_alignment ) 
test_chat ( "Gereken Derece: " .. need_alignment )  
local title = string . format ( "%s grand master beceri eğitimi" , skill_name )
say_title ( string . format ( "%s" , title ) )
say_title ( "Devam" )         
say ( "Grand Master becerisi için sıralama puanı " ) 
say ( "harcanır.Yani sıralama puanın negatif değere " ) 
say ( "düşebilir. " )  
if cur_alignment < - 19000 + need_alignment then 
say_reward ( "Eğitim için yeterli derece " ) 
say_reward ( "yok." ) 
return 
end 
if cur_alignment < 0 then
say_reward ( string . format ( "Gereken sıralama puanı: %s -> %d" , need_alignment , need_alignment * 2 ) )
say_reward ( "Bu da demek oluyor ki, grand master becerilerini yükseltmek için " ) 
say_reward ( "sıralama puanı pozitif olan bir kişiye göre " )
say_reward ( "iki kat puan harcamalısın. " ) 
 
need_alignment = need_alignment * 2 
elseif cur_alignment < need_alignment then
say_reward ( string . format ( "Gereken sıralama puanı: %d" , need_alignment ) ) 
say_reward ( "Eğer şimdi eğitim alırsan, sıralama puanın " ) 
say_reward ( "negatif değere düşecek. " ) 
else 
say_reward ( string . format ( "Gereken sıralama puanı: %d" , need_alignment ) ) 
end  
local s = select ( "Devam" , "Vazgeç " ) 
if s == 2 then 
return 
end 
if cur_alignment >= 0 and cur_alignment < need_alignment then 
say_title ( string . format ( "%s" , title ) ) 
say_title ( "Devam" ) 
say ( "Eğer şimdi grand master beceri eğitimini" ) 
say ( "denersen, sıralama puanlarının azalması ve" ) 
say ( "negatif değere düşmesi mümkün olabilir.Eğer hala" )
say ( "eğitimi istiyorsan aşağıda gördüğün cümleyi yaz." ) 
say_reward ( "Eğitim istiyorum." )  
say ( "Eğer eğitim istemiyorsan, 'ENTER' tuşuna bas." )
local s = input ( ) 
if s ~= "Eğitim İstiyorum" then
if pc . count_item ( 50513 ) < 1 then
say_title ( "Bug Kontrol" ) 
say ( "Envanterindeki Ruh Tasi Kaybolmus" )
return
end
if pc . learn_grand_master_skill ( skill_vnum ) then 
pc . change_alignment ( - need_alignment ) 
say_title ( string . format ( "%s" , title ) )
say_title ( "Başarılı!" ) 
if 40 == pc . get_skill_level ( skill_vnum ) then 
say ("Tebrikler! Başardın.")
say ( string . format ( "%s Perfect Master oldu." , skill_name ) ) 
say ("Bu beceri için Perfect seviyesine ulaştınız ve daha fazla geliştirilemez.")
pc.remove_item(50513,1)
else 
say("Tebrikler Başardın. Grand master beceri eğitimi için teşekkürler.")


say ( string . format ( "%s ulaştığı seviye %d." , skill_name , skill_level - 30 + 1 + 1 ) ) 
pc.remove_item(50513,1)
end  
say_reward ( "Seviyeni başarı ile yükselttin!" ) 
say_reward ( string . format ( "%d sıralama puanı kullandın. " , need_alignment ) ) 
else 
if pc . count_item ( 50513 ) < 1 then
say_title ( "Bug Kontrol" ) 
say ( "Envanterindeki Ruh Tasi Kaybolmus" )
return
end
say_title ( string . format ( "%s" , title ) )
say_title ( "Hata!" )  
say ( "Becerini geliştiremedin." )   
say_reward ( "Bir miktar sıralama puanı kaybettin ve bir Ruh Taşı kullandın." )  
pc . change_alignment ( - number ( need_alignment / 3 , need_alignment / 2 ) )
pc.remove_item(50513,1)
end 
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_title ( "Grand Masterların beceri eğitimi" )return 
end 
end
pc . setqf ( "next_time" , get_time ( ) + time_hour_to_sec ( number ( 8 , 12 ) ) ) 
if cur_alignment < 0 or cur_alignment >= need_alignment then 
if pc . learn_grand_master_skill ( skill_vnum ) then 
pc . change_alignment ( - need_alignment ) 
say_title ( string . format ( "%s" , title ) )
say_title ( "Başarılı!" )   
if 40 == pc . get_skill_level ( skill_vnum ) then 
if pc . count_item ( 50513 ) < 1 then
say_title ( "Bug Kontrol" ) 
say ( "Envanterindeki Ruh Tasi Kaybolmus" )
return
end
say ("Tebrikler! Başardın.")
say ( string . format ( "%s Perfect Master oldu." , skill_name ) ) 
say ("Bu beceri için Perfect seviyesine ulaştınız ve daha fazla geliştirilemez.")
pc.remove_item(50513,1)
else 
if pc . count_item ( 50513 ) < 1 then
say_title ( "Bug Kontrol" ) 
say ( "Envanterindeki Ruh Tasi Kaybolmus" )
return
end
say("Tebrikler Başardın. Grand master beceri eğitimi için teşekkürler.")


say ( string . format ( "%s ulastığı seviye %d." , skill_name , skill_level - 30 + 1 + 1 ) )
pc.remove_item(50513,1) 
end  
say_reward ( "Seviyeni başarı ile yükselttin!" ) 
say_reward ( string . format ( "%d sıralama puanı kullandın." , need_alignment ) ) 
else 
if pc . count_item ( 50513 ) < 1 then
say_title ( "Bug Kontrol" ) 
say ( "Envanterindeki Ruh Tasi Kaybolmus" )
return
end
say_title ( string . format ( "%s" , title ) )
say_title ( "Hata!" )   
say ( "Becerini geliştiremedin." )   
say_reward ( "Bir miktar sıralama puanı kaybettin ve bir Ruh Taşı kullandın." )  
pc . change_alignment ( - number ( need_alignment / 3 , need_alignment / 2 ) )
pc.remove_item(50513,1)
end 
end 
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("is=%d, Grup=%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
    end
Renkli kısıma dikkatli bakın..
test sunucu hazır olunca deniyicem teşekkürler