Du musst die special.active_skill_list Tabelle bearbeiten und die skill Id eintragen.Quote:
Hallo wie kann ich den 6 skill in dieser quest mit einbinden?
das man auch diesen von M auf P setzen kann
regenbogenstein quest
Quote:
kannst es in ne quest rolle einbinden
HierQuote:
Du musst die special.active_skill_list Tabelle bearbeiten und die skill Id eintragen.
Es müsste eigtl. in der questlib.lua sein
kannst du das bitte mal formatiert posten in php, so ist das anstrengender die quest zu kontrollierenQuote:
Moin... Hab hier n quest.. die mich net machen lassen will :D
so die quest geht an sich.. oder auch nicht . ich will das Item1 {50512} nur geht wenn ich item2 {50513} in mein i habe... aber ... wenn ich item1 anklicke zeigt er mir meine sachen an ich klick auf weiter um meine g skills zu machen.. nunja es geht nicht item2 geht weg und ich habe keine weiter g skill bekommen, wenn ich Item2 2 mal habe dan geht es.. aber ich will das es mit 1 mal item 2 geht..
Hier
quest training_grandmaster_skill begin state start begin when 50512.use begin if pc.count_item(50513) >= 1 then 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 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 thensay_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 thensay_reward(string.format(gameforge.training_grandmaster_skill._130_sayReward, need_alignment)) say_reward(gameforge.training_grandmaster_skill._140_sayReward) elsesay_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 thensay_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 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 = {}
table.foreach(skill_list, function(i, skill_vnum) local skill_level = pc.get_skill_level(skill_vnum)
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) pc.remove_item(50513, 1) end end) return {ret_vnum_list, ret_name_list} end endend
Quote:
Du musst die special.active_skill_list Tabelle bearbeiten und die skill Id eintragen.
Es müsste eigtl. in der questlib.lua sein
habs ;PQuote:
danke das hat schon mal geklappt
Und wo muss ich den name eintragen in welcher liste?
Weil jetzt steht da nur 6
Quote:
Hier :)PHP Code:quest training_grandmaster_skill begin state start begin when 50512.use begin if pc.count_item(50513) >= 1 then 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 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 thensay_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 thensay_reward(string.format(gameforge.training_grandmaster_skill._130_sayReward, need_alignment)) say_reward(gameforge.training_grandmaster_skill._140_sayReward) elsesay_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 thensay_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 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 = {}
table.foreach(skill_list, function(i, skill_vnum) local skill_level = pc.get_skill_level(skill_vnum)
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) pc.remove_item(50513, 1) end end) return {ret_vnum_list, ret_name_list} end endend
habs ;P
es soll nur g skills machen wenn 50513 im inventar isQuote:
du möchtest dass das item 50512 nur verschwindet, wenn man das item 50513 im Inventar hat, wenn man 50513 nicht hat, soll 50512 bleiben und trotzdem G Skills machen?
und beide sollen verschwinden wenn man geskillt hat?
quest Postfach begin
state start begin
when login with tonumber(mysql_query("SELECT count(*) FROM account.postfach where gelesen = 0;")
notice("Du hast ungelese Nachrichten. Gehe zum Briefkasten um dir die Nachrichten aufzurufen.")
end
Quote:
Hey Leute :),
habe Probleme mit folgender Quest:
ich möchte praktisch dass der Spieler die Anzahl(in dem Fall der Nachricht, also ob er ungelesene hat) im Chat als Notiz angezeigt bekommt. Bloß bringt er mir einen compile error..PHP Code:quest Postfach begin
state start begin
when login with tonumber(mysql_query("SELECT count(*) FROM account.postfach where gelesen = 0;")
notice("Du hast ungelese Nachrichten. Gehe zum Briefkasten um dir die Nachrichten aufzurufen.")
end
Und ja ich wei Sensi hat ein sehr gutes offline msg system released. Aber das klappt bei mir in mysql nicht. Nachrichten die da gesendet werden, werden einfach nicht angezeigt, bzw. kann er sie nicht senden.
when login with tonumber(mysql_query("SELECT count(*) FROM account.postfach where gelesen = 0;")
when login with tonumber(mysql_query("SELECT count(*) FROM account.postfach where gelesen = 0;"))
Jetzt bringt er mir folgendes:Quote:
Da fehlt eine Klammer am Ende..Code:when login with tonumber(mysql_query("SELECT count(*) FROM account.postfach where gelesen = 0;")
Code:when login with tonumber(mysql_query("SELECT count(*) FROM account.postfach where gelesen = 0;"))