Hey leute ...
Ich wollte mal versuchen einen Regenbogenstein zu machen...
So wie bei New-World2. Ich habe mir als Vorlage den Selenstein genommen...
und ihn "verändert"...
Ich will erreichen das die Fertigkeiten von G1 Direkt auf P springen ...
Doch es klappt nicht so ganz, es gibt 2 Probleme:
1. Wenn ich den Regenbogenstein ändere (Neue Quest) überträgt er sich auf den Selenstein.
2. Ingame wird trotzdem nur 1 Stufe rauf gerechnet ...
Ich bedanke mich bei Jeder Antwort...
Ich wollte mal versuchen einen Regenbogenstein zu machen...
So wie bei New-World2. Ich habe mir als Vorlage den Selenstein genommen...
und ihn "verändert"...
Ich will erreichen das die Fertigkeiten von G1 Direkt auf P springen ...
Doch es klappt nicht so ganz, es gibt 2 Probleme:
1. Wenn ich den Regenbogenstein ändere (Neue Quest) überträgt er sich auf den Selenstein.
2. Ingame wird trotzdem nur 1 Stufe rauf gerechnet ...
PHP Code:
quest stone begin
state start begin
when 50512.use begin
say_title ( "Regenbogenstein" )
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 ( "Hiermit kannst du eine Fertigkeit perfektionieren." )
say ( "Drücke weiter." )
say ( "" )
wait ( )
say_title ( "Regenbogenstein" )
else
say ( "Du kannst erst morgen wieder" )
say ( "einen Regenbogenstein lesen!" )
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 ( "Deine Fertigkeiten sind bereits perfekt!" )
return
end
say ( "Wähle einen skill aus." )
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
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 ( "Benötigte Rangpunkte: " .. need_alignment )
local title = string . format ( "Fertigkeit perfektionieren:" , skill_name , skill_level - 30 + 1 )
say_title ( title )
say ( "Beim lesen des Regenbogensteins" )
say ( "verlierst du Rangpunkte! " )
say ( "" )
if cur_alignment < - 19000 + need_alignment then
say_reward ( "Leider hast du nicht genügend Rangpunkte" )
return
end
if cur_alignment < 0 then
say_reward ( string . format ( "Benötigte Rangpunkte: %d -> %d" , need_alignment , need_alignment * 2 ) )
need_alignment = need_alignment * 2
elseif cur_alignment < need_alignment then
say_reward ( string . format ( "Benötigte Rangpunkte: %d" , need_alignment ) )
else
say_reward ( string . format ( "Benötigte Rangpunkte: %d" , 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 ( "Fertigkeit perfektionieren:" , title ) )
say ( "Es ist soweit!" )
say ( "Um zu trainieren," )
say ( "gib bitte ein: Stein" )
local s = input ( )
if s ~= "Stein" 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 ( "%s Erfolgreich!" , title ) )
if 40 == pc . get_skill_level ( skill_vnum ) then
say ( string . format ( "Herzlichen glückwunsch! =)" , skill_name ) )
else
say ( string . format ( "[°ª¯Åµ¥¯Å]*×½mªº %s¬O %d µ¥¯Å." , skill_name , skill_level - 30 + 10 + 10 ) )
end
say ( "" )
say_reward ( "Perfektionieren erfolgreich!" )
say_reward ( string . format ( "Rangpunkte verloren: %d " , need_alignment ) )
say ( "" )
else
say_title ( string . format ( "%s Fehlgeschlagen!" , title ) )
say ( "Pech gehabt" )
say ( "" )
say_reward ( "Perfektionieren fehlgeschlagen!" )
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
end
end
Ich bedanke mich bei Jeder Antwort...