Initial commit: server + serverfiles
This commit is contained in:
+112
@@ -0,0 +1,112 @@
|
||||
if pc . get_skill_group ( ) == 0 then
|
||||
say_title ( gameforge . training_grandmaster_skill . _10_sayTitle )
|
||||
say ( gameforge . training_grandmaster_skill . _20_say )
|
||||
return
|
||||
end
|
||||
if get_time ( ) < pc . getqf ( "next_time" ) then
|
||||
if pc . is_skill_book_no_delay ( ) then
|
||||
say_title ( gameforge . training_grandmaster_skill . _10_sayTitle )
|
||||
say ( gameforge . training_grandmaster_skill . _30_say )
|
||||
wait ( )
|
||||
else
|
||||
say_title ( gameforge . training_grandmaster_skill . _10_sayTitle )
|
||||
say ( gameforge . training_grandmaster_skill . _40_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_title ( gameforge . training_grandmaster_skill . _10_sayTitle )
|
||||
say ( gameforge . training_grandmaster_skill . _50_say )
|
||||
return
|
||||
end
|
||||
say_title ( gameforge . training_grandmaster_skill . _10_sayTitle )
|
||||
say ( gameforge . training_grandmaster_skill . _60_say )
|
||||
local menu_list = { }
|
||||
table . foreach ( name_list , function ( i , name ) table . insert ( menu_list , name ) end )
|
||||
table . insert ( menu_list , gameforge . locale . cancel )
|
||||
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 ( string . format ( gameforge . training_grandmaster_skill . _70_chat , cur_alignment .. gameforge . training_grandmaster_skill . _75_chat .. need_alignment ) )
|
||||
local title = string . format ( gameforge . training_grandmaster_skill . _80_stringFormat , skill_name , skill_level - 30 + 1 )
|
||||
say_title ( gameforge . training_grandmaster_skill . _10_sayTitle )
|
||||
say ( gameforge . training_grandmaster_skill . _90_say )
|
||||
if cur_alignment < - 19000 + need_alignment then
|
||||
say_reward ( gameforge . training_grandmaster_skill . _100_sayReward )
|
||||
return
|
||||
end
|
||||
if cur_alignment < 0 then
|
||||
say_reward ( string . format ( gameforge . training_grandmaster_skill . _110_sayReward , need_alignment , need_alignment * 2 ) )
|
||||
say_reward ( gameforge . training_grandmaster_skill . _120_sayReward )
|
||||
need_alignment = need_alignment * 2
|
||||
elseif cur_alignment < need_alignment then
|
||||
say_reward ( string . format ( gameforge . training_grandmaster_skill . _130_sayReward , need_alignment ) )
|
||||
say_reward ( gameforge . training_grandmaster_skill . _140_sayReward )
|
||||
else
|
||||
say_reward ( string . format ( gameforge . training_grandmaster_skill . _130_sayReward , need_alignment ) )
|
||||
end
|
||||
local s = select ( gameforge . locale . levelup . prev_quest_go , gameforge . locale . cancel )
|
||||
if s == 2 then
|
||||
return
|
||||
end
|
||||
if cur_alignment >= 0 and cur_alignment < need_alignment then
|
||||
say_title ( title )
|
||||
say_reward ( gameforge . training_grandmaster_skill . _150_sayReward )
|
||||
say ( gameforge . training_grandmaster_skill . _160_say )
|
||||
say_reward ( gameforge . training_grandmaster_skill . _170_sayReward )
|
||||
say ( gameforge . training_grandmaster_skill . _180_say )
|
||||
local s = input ( )
|
||||
s = string . gsub ( s , "(%a*)%s*" , "%1" )
|
||||
s = string . lower ( string . gsub ( s , "(%a*)%s*" , "%1" ) )
|
||||
local t = string . gsub ( gameforge . training_grandmaster_skill . _10_answer , "(%a*)%s*" , "%1" )
|
||||
t = string . lower ( string . gsub ( gameforge . training_grandmaster_skill . _10_answer , "(%a*)%s*" , "%1" ) )
|
||||
if s ~= t 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_title ( gameforge . training_grandmaster_skill . _10_sayTitle )
|
||||
return
|
||||
end
|
||||
end
|
||||
pc . setqf ( "next_time" , get_time ( ) + time_hour_to_sec ( number ( 8 , 12 ) ) )
|
||||
if need_alignment > 0 then
|
||||
if pc . count_item ( 50513 ) > 0 then
|
||||
if pc . learn_grand_master_skill ( skill_vnum ) then
|
||||
pc . change_alignment ( - need_alignment )
|
||||
say_title ( title )
|
||||
say_reward ( gameforge . training_grandmaster_skill . _190_sayReward )
|
||||
if 40 == pc . get_skill_level ( skill_vnum ) then
|
||||
say ( gameforge . training_grandmaster_skill . _200_say )
|
||||
say ( string . format ( gameforge . training_grandmaster_skill . _210_say , skill_name ) )
|
||||
say ( gameforge . training_grandmaster_skill . _220_say )
|
||||
else
|
||||
say ( gameforge . training_grandmaster_skill . _230_say )
|
||||
say ( string . format ( gameforge . training_grandmaster_skill . _240_say , skill_name , skill_level - 30 + 1 + 1 ) )
|
||||
end
|
||||
say_reward ( gameforge . training_grandmaster_skill . _250_sayReward )
|
||||
say_reward ( string . format ( gameforge . training_grandmaster_skill . _260_sayReward , need_alignment ) )
|
||||
else
|
||||
say_title ( title )
|
||||
say_reward ( gameforge . training_grandmaster_skill . _270_sayReward )
|
||||
say ( gameforge . training_grandmaster_skill . _280_say )
|
||||
say_reward ( gameforge . training_grandmaster_skill . _290_sayReward )
|
||||
pc . change_alignment ( - number ( need_alignment / 3 , need_alignment / 2 ) )
|
||||
end
|
||||
pc . remove_item ( 50513 )
|
||||
else
|
||||
char_log ( 0 , "HACK 50513" , pc . getname ( ) )
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user