Sellenstein quest ohne zeit

10/30/2013 05:17 Xaphieron#1
Hallo meine freunde k鰊nte vlt jeman f黵 mich die quest so schreiben
das beim sellenstein lessen keine zeit ist

ich meine zb das man keine zeit braucht um noch eine zu lessen

Code:
quest training_grandmaster_skill begin
state start begin
when 50513.use begin
say_title ( "Seelenstein" )
if pc . get_skill_group ( ) == 0 then
say ( "⊿Τヴ戮穨." .. 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" )
say ( "Fertigkeit perfektionieren." )
say ( "" )
wait ( )
say_title ( "Seelenstein" )
else
say ( "Du kannst erst morgen wieder" )
say ( "einen Seelenstein nutzen!" )
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鋒le eine Fertigkeit 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 ( "瞷到碿: " .. cur_alignment )
test_chat ( "Ben鰐igte Rangpunkte: " .. need_alignment )
local title = string . format ( "Fertigkeit perfektionieren:" , skill_name , skill_level - 30 + 1 )
say_title ( title )
say ( "Beim lesen des Seelensteins" )
say ( "verlierst du Rangpunkte! " )
say ( "" )
if cur_alignment < - 19000 + need_alignment then
say_reward ( "Leider hast du nicht gen黦end Rangpunkte " )
return
end
if cur_alignment < 0 then
say_reward ( string . format ( "Ben鰐igte Rangpunkte: %d -> %d" , need_alignment , need_alignment * 2 ) )
need_alignment = need_alignment * 2
elseif cur_alignment < need_alignment then
say_reward ( string . format ( "Ben鰐igte Rangpunkte: %d" , need_alignment ) )
else
say_reward ( string . format ( "Ben鰐igte 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: Trainieren" )
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 ( "%s Erfolgreich!" , title ) )
if 40 == pc . get_skill_level ( skill_vnum ) then
say ( string . format ( "Herzlichen gl點kwunsch! =)" , skill_name ) )
else
say ( string . format ( "[蔼单]m %s琌 %d 单." , skill_name , skill_level - 30 + 1 + 1 ) )
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
hier die quest ich w黵de mich tierig freuen :)

rechtschreibfehler k鰊nt ihr behalten :)
10/30/2013 10:31 .Inya#2
PHP Code:
quest training_grandmaster_skill begin
state start begin
when 50513.
use begin
say_title 
"Seelenstein" )
if 
pc get_skill_group ( ) == 0 then
say 
"⊿Τヴ戮穨." .. pc get_skill_group ( ) )
return
end
if get_time ( ) < pc getqf "next_time" then
if pc is_skill_book_no_delay ( ) or 1==1 then
say 
"Hiermit kannst du eine" )
say "Fertigkeit perfektionieren." )
say "" )
wait ( )
say_title "Seelenstein" )
else
say "Du kannst erst morgen wieder" )
say "einen Seelenstein nutzen!" )
return
end
end
local result 
training_grandmaster_skill BuildGrandMasterSkillList pc get_job ( ) , pc get_skill_group ( ) )
local vnum_list result ]
local name_list result ]
if 
table getn vnum_list ) == 0 then
say 
"Deine Fertigkeiten sind bereits perfekt!" )
return
end
say 
"W鋒le eine Fertigkeit aus." )
say "" )
local menu_list = { }
table . foreach ( name_list , function ( 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 ]
local skill_vnum vnum_list ]
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 "Ben鰐igte Rangpunkte: " .. need_alignment )
local title string format "Fertigkeit perfektionieren:" skill_name skill_level 30 )
say_title title )
say "Beim lesen des Seelensteins" )
say "verlierst du Rangpunkte! " )
say "" )
if 
cur_alignment < - 19000 need_alignment then
say_reward 
"Leider hast du nicht gen黦end Rangpunkte " )
return
end
if cur_alignment 0 then
say_reward 
string format "Ben鰐igte Rangpunkte: %d -> %d" need_alignment need_alignment ) )
need_alignment need_alignment 2
elseif cur_alignment need_alignment then
say_reward 
string format "Ben鰐igte Rangpunkte: %d" need_alignment ) )
else
say_reward string format "Ben鰐igte Rangpunkte: %d" need_alignment ) )
end
say 
"" )
local s select "Weiter" "Abbrechen" )
if 
== 2 then
return
end
if cur_alignment >= 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: Trainieren" )
local s input ( )
if 
~= "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 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點kwunsch! =)" skill_name ) )
else
say string format "[蔼单]m %s琌 %d 单." skill_name skill_level 30 ) )
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 need_alignment ) )
end
end
item 
remove ( )
end
function BuildGrandMasterSkillList(jobgroup)
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"jobgroup))

table.foreach(skill_list,
function(
iskill_vnum)
local skill_level pc.get_skill_level(skill_vnum)

-- 
test_chat(string.format("[%d]=%d"skill_vnumskill_level))
if 
skill_level >= GRAND_MASTER_SKILL_LEVEL and skill_level PERFECT_MASTER_SKILL_LEVEL then

table
.insert(ret_vnum_listskill_vnum)
local name=locale.GM_SKILL_NAME_DICT[skill_vnum]
if 
name == nil then name=skill_vnum end
table
.insert(ret_name_listname)
end
end
)
return {
ret_vnum_listret_name_list}


--return {
ret_vnum_listret_name_list}
end
end
end 
ist ein wenig dreckig gefixt sollte aber die wartezeit aushebeln indem er dich immer durch die if abfrage l鋝st
10/30/2013 11:29 ihrnervt#3
Nimm die IF-ElSE-Abfrage einfach raus, ich helf Dir mal:

Quote:
if get_time ( ) < pc . getqf ( "next_time" ) then
Ab da f鋘gst Du an zu gucken was dort steht und was Du brauchst. Mit einfachen Schulenglischkenntnissen und etwas Logik findet man von ganz alleine raus, was dort steht und wie das in etwa funktioniert.

Und das w鋜e am Ende auch definitiv perfomancefreundlicher, als eine IF-Abfrage zu behalten, die man gar nicht braucht. So wie Du es im Code des Vorposters tun w黵dest.


Gib einem hungrigem einen Fisch und er hat zu Essen. Bring einem Hungrigem bei zu fischen und er wird nie wieder hungrig sein. :-D
Du f鋒rst am Ende besser damit, wenn Du das lernst. Du brauchst dann auch nicht immer auf die Hilfe anderer angewiesen sein.