Kann mir jemand sagen warum diese Quest nicht funktioniert?
Wenn ich auf den Alkoholkrug klicke startet die Quest nicht mal, dass konnte ich herausfinden indem ich noch "chat("Test test Test")" hinzugefügt habe. Alle anderen Quests funktionieren einwandfrei.
Code:
quest alkoholkrug begin
state start begin
when 30013.use begin
chat("Test test Test")
pc.give_exp2(pc.get_next_exp())
end
end
end
- In der Datenbank den Type auf 18 stellen.
- Die Quest in die locale/quest_list eintragen.
- ingame /reload q & die Quests in Putty/Virtual Box reloaden.
quest warpring begin
state start begin
when 70007.use begin
local warp = {--koord Pflicht, rest optional!
{--Map1
name = "[01-20] Map 1",
{--Rotes Reich
name = "[01-20] Rotes Reich",
koord = {474100, 955000},
},
{--Gelbes Reich
name = "[01-20] Gelbes Reich",
koord = {63525, 166543},
},
{--Blaues Reich
name = "[01-20] Blaues Reich",
koord = {960100, 268800},
}
},
{--Map2
name = "[20-35] Map 2",
{--Rotes Reich
name = "[20-35] Rotes Reich",
koord = {352200, 882200},
},
{--Gelbes Reich
name = "[20-35] Gelbes Reich",
koord = {145900, 239800},
},
{--Blaues Reich
name = "[20-35] Blaues Reich",
koord = {863700, 246300},
}
},
{--Standart Maps
name = "[35-55] Standart Maps",
{--Orktal Mitte
name = "[35-55] Orktal",
koord = {333074, 747167},
},
{--Hwang-Tempel
name = "[35-55] Tempel",
koord = {553600, 144100},
},
{--Wüste Mitte
name = "[35-55] Wüste",
koord = {297300, 547900},
},
{--Eisland Mitte
name = "[35-55] Eisland",
koord = {436900, 216100},
},
{--Feuerland Mitte
name = "[35-55] Feuerland",
koord = {601300, 687900},
},
{--Dämonenturm
name = "[35-55] Dämonenturm",
koord = {590406, 110717},
},
{--Schlangenfeld
name = "[35-55] Schlangenfeld",
koord = {1059000, 726200},
}
},
{--Spinnendungeons
name = "[55-75] Anspruchsvolle Maps",
{--Spinnendungeons 1
name = "[55-65] Spinnendungeon 1",
koord = {60000, 497000},
},
{--Spinnendungeons 2
name = "[65-75] Spinnendungeon 2",
koord = {703800, 462500},
}
},
{--Grotte der Verbannung
name = "[150-200] Besondere Maps",
{--Grotte 1
name = "[150-200] Grotte(FP)",
koord = {10000, 1207800},
},
{--Grotte 2
name = "[150-200] Grotte (SP)",
koord = {241800, 1275000},
},
{--Drachenraum
name = "[200-Dungeon] Drachenraum",
koord = {181473, 1220674},
}
},
{--90er Maps
name = "[55-120] Farmmaps",
{--Donnerberge
name = "[55-89] Donnerberge",
koord = {1134500, 1654600},
},
{--Gautamakliff
name = "[90-120] Gautamakliff",
koord = {1226300, 1681100},
}
},
{--100er Maps
name = "[90-200] Levelmaps",
{--Rotdrachen-Festung
name = "[90-100] Rotdrachen-Festung",
koord = {614265, 706964},
},
{--Nemeres Warte
name = "[100-125] Nemeres Warte",
koord = {433025, 167605},
},
{--Verwunschener Wald
name = "[125-140] Verwunschener Wald",
koord = {801800, 1499000},
},
{--Tempel der Ochao
name = "[140-160]Tempel der Ochao",
koord = {884800, 1447000},
},
{--Kap des Drachenfeuers
name = "[160-190] Drachenkap",
koord = {1104300, 1788500},
},
{--Nephritbucht
name = "[190-200] Nephritbucht",
koord = {1086900, 1655800},
}
}
}
warpring.showwarps(warp)
end
function warp(tbl)
local level = pc.get_level()
if tbl.minlevel and level < tbl.minlevel then
say("Dein Level ist zu niedrig, um diese Map zu betreten.")
say("Minimal Level: "..tbl.minlevel)
select("Abbrechen")
return
elseif tbl.maxlevel and level > tbl.maxlevel then
say("Dein Level ist zu hoch, um diese Map zu betreten.")
say("Maximal Level: "..tbl.maxlevel)
select("Abbrechen")
return
end
while not pc.can_warp() do
say("Du kannst dich noch nicht teleportieren, da du in")
say("den letzten 10 Sekunden gehandelt hast.")
if select("Erneut versuchen", "Abbrechen") == 2 then return end
end
local warpneedstrings = warpring.get_warpneedstrings(tbl)
if table.getn(warpneedstrings) > 0 then
say("Um diese Map zu betreten benötigst du folgende")
say("Dinge:")
for _,v in ipairs(warpneedstrings) do
say(v)
end
say("")
say("Möchtest du trotzdem fortfahren?")
if select("Teleportieren", "Abbrechen") == 2 then return end
end
if not warpring.check_and_remove_warpneeds(tbl) then
say("Dir fehlt mindestens eins der benötigten Dinge.")
select("Abbrechen")
return
end
pc.warp(tbl.koord[1], tbl.koord[2])
end
function get_warpneedstrings(tbl)
local warpneeds = {}
if tbl.itemneed and table.getn(tbl.itemneed) > 0 then
for _,v in ipairs(tbl.itemneed) do
table.insert(warpneeds, "- "..v[2].."x "..item_name(v[1]))
end
end
if tbl.goldneed and tbl.goldneed > 0 then
table.insert(warpneeds, "- "..tbl.goldneed.." Yang")
end
return warpneeds
end
function check_warpneeds(tbl)
if tbl.itemneed and table.getn(tbl.itemneed) > 0 then
for _,v in ipairs(tbl.itemneed) do
if pc.count_item(v[1]) < v[2] then
return false
end
end
end
if tbl.goldneed and tbl.goldneed > 0 then
if pc.get_gold() < tbl.goldneed then
return false
end
end
return true
end
function remove_warpneeds(tbl)
if tbl.itemneed and table.getn(tbl.itemneed) > 0 then
for _,v in ipairs(tbl.itemneed) do
pc.remove_item(v[1], v[2])
end
end
if tbl.goldneed and tbl.goldneed > 0 then
pc.change_gold(-tbl.goldneed)
end
end
function check_and_remove_warpneeds(tbl)
if not warpring.check_warpneeds(tbl) then
return false
end
warpring.remove_warpneeds(tbl)
return true
end
function get_warpnames(tbl)
local level = pc.get_level()
local names = {}
for _,v in ipairs(tbl) do
if v.minlevel and level < v.minlevel then
v.name = v.name.." (ab Lv. "..v.minlevel..")"
elseif v.maxlevel and level > v.maxlevel then
v.name = v.name.." (bis Lv. "..v.maxlevel..")"
end
table.insert(names, v.name)
end
return names
end
function showwarps(tbl)
local warpnames = warpring.get_warpnames(tbl)
local s = tbl[select3(warpnames)] or false
if not s then return end
if s.koord then
warpring.warp(s)
return
end
warpring.showwarps(s)
end
end
end
kriege folgenden fehler :
Calls undeclared function !:
ipairs
select3
Error occured on compile warp_ring.quest
quest warpring begin
state start begin
when 70007.use begin
local warp = {--koord Pflicht, rest optional!
{--Map1
name = "[01-20] Map 1",
{--Rotes Reich
name = "[01-20] Rotes Reich",
koord = {474100, 955000},
},
{--Gelbes Reich
name = "[01-20] Gelbes Reich",
koord = {63525, 166543},
},
{--Blaues Reich
name = "[01-20] Blaues Reich",
koord = {960100, 268800},
}
},
{--Map2
name = "[20-35] Map 2",
{--Rotes Reich
name = "[20-35] Rotes Reich",
koord = {352200, 882200},
},
{--Gelbes Reich
name = "[20-35] Gelbes Reich",
koord = {145900, 239800},
},
{--Blaues Reich
name = "[20-35] Blaues Reich",
koord = {863700, 246300},
}
},
{--Standart Maps
name = "[35-55] Standart Maps",
{--Orktal Mitte
name = "[35-55] Orktal",
koord = {333074, 747167},
},
{--Hwang-Tempel
name = "[35-55] Tempel",
koord = {553600, 144100},
},
{--Wüste Mitte
name = "[35-55] Wüste",
koord = {297300, 547900},
},
{--Eisland Mitte
name = "[35-55] Eisland",
koord = {436900, 216100},
},
{--Feuerland Mitte
name = "[35-55] Feuerland",
koord = {601300, 687900},
},
{--Dämonenturm
name = "[35-55] Dämonenturm",
koord = {590406, 110717},
},
{--Schlangenfeld
name = "[35-55] Schlangenfeld",
koord = {1059000, 726200},
}
},
{--Spinnendungeons
name = "[55-75] Anspruchsvolle Maps",
{--Spinnendungeons 1
name = "[55-65] Spinnendungeon 1",
koord = {60000, 497000},
},
{--Spinnendungeons 2
name = "[65-75] Spinnendungeon 2",
koord = {703800, 462500},
}
},
{--Grotte der Verbannung
name = "[150-200] Besondere Maps",
{--Grotte 1
name = "[150-200] Grotte(FP)",
koord = {10000, 1207800},
},
{--Grotte 2
name = "[150-200] Grotte (SP)",
koord = {241800, 1275000},
},
{--Drachenraum
name = "[200-Dungeon] Drachenraum",
koord = {181473, 1220674},
}
},
{--90er Maps
name = "[55-120] Farmmaps",
{--Donnerberge
name = "[55-89] Donnerberge",
koord = {1134500, 1654600},
},
{--Gautamakliff
name = "[90-120] Gautamakliff",
koord = {1226300, 1681100},
}
},
{--100er Maps
name = "[90-200] Levelmaps",
{--Rotdrachen-Festung
name = "[90-100] Rotdrachen-Festung",
koord = {614265, 706964},
},
{--Nemeres Warte
name = "[100-125] Nemeres Warte",
koord = {433025, 167605},
},
{--Verwunschener Wald
name = "[125-140] Verwunschener Wald",
koord = {801800, 1499000},
},
{--Tempel der Ochao
name = "[140-160]Tempel der Ochao",
koord = {884800, 1447000},
},
{--Kap des Drachenfeuers
name = "[160-190] Drachenkap",
koord = {1104300, 1788500},
},
{--Nephritbucht
name = "[190-200] Nephritbucht",
koord = {1086900, 1655800},
}
}
}
warpring.showwarps(warp)
end
function warp(tbl)
local level = pc.get_level()
if tbl.minlevel and level < tbl.minlevel then
say("Dein Level ist zu niedrig, um diese Map zu betreten.")
say("Minimal Level: "..tbl.minlevel)
select("Abbrechen")
return
elseif tbl.maxlevel and level > tbl.maxlevel then
say("Dein Level ist zu hoch, um diese Map zu betreten.")
say("Maximal Level: "..tbl.maxlevel)
select("Abbrechen")
return
end
while not pc.can_warp() do
say("Du kannst dich noch nicht teleportieren, da du in")
say("den letzten 10 Sekunden gehandelt hast.")
if select("Erneut versuchen", "Abbrechen") == 2 then return end
end
local warpneedstrings = warpring.get_warpneedstrings(tbl)
if table.getn(warpneedstrings) > 0 then
say("Um diese Map zu betreten benötigst du folgende")
say("Dinge:")
for _,v in ipairs(warpneedstrings) do
say(v)
end
say("")
say("Möchtest du trotzdem fortfahren?")
if select("Teleportieren", "Abbrechen") == 2 then return end
end
if not warpring.check_and_remove_warpneeds(tbl) then
say("Dir fehlt mindestens eins der benötigten Dinge.")
select("Abbrechen")
return
end
pc.warp(tbl.koord[1], tbl.koord[2])
end
function get_warpneedstrings(tbl)
local warpneeds = {}
if tbl.itemneed and table.getn(tbl.itemneed) > 0 then
for _,v in ipairs(tbl.itemneed) do
table.insert(warpneeds, "- "..v[2].."x "..item_name(v[1]))
end
end
if tbl.goldneed and tbl.goldneed > 0 then
table.insert(warpneeds, "- "..tbl.goldneed.." Yang")
end
return warpneeds
end
function check_warpneeds(tbl)
if tbl.itemneed and table.getn(tbl.itemneed) > 0 then
for _,v in ipairs(tbl.itemneed) do
if pc.count_item(v[1]) < v[2] then
return false
end
end
end
if tbl.goldneed and tbl.goldneed > 0 then
if pc.get_gold() < tbl.goldneed then
return false
end
end
return true
end
function remove_warpneeds(tbl)
if tbl.itemneed and table.getn(tbl.itemneed) > 0 then
for _,v in ipairs(tbl.itemneed) do
pc.remove_item(v[1], v[2])
end
end
if tbl.goldneed and tbl.goldneed > 0 then
pc.change_gold(-tbl.goldneed)
end
end
function check_and_remove_warpneeds(tbl)
if not warpring.check_warpneeds(tbl) then
return false
end
warpring.remove_warpneeds(tbl)
return true
end
function get_warpnames(tbl)
local level = pc.get_level()
local names = {}
for _,v in ipairs(tbl) do
if v.minlevel and level < v.minlevel then
v.name = v.name.." (ab Lv. "..v.minlevel..")"
elseif v.maxlevel and level > v.maxlevel then
v.name = v.name.." (bis Lv. "..v.maxlevel..")"
end
table.insert(names, v.name)
end
return names
end
function showwarps(tbl)
local warpnames = warpring.get_warpnames(tbl)
local s = tbl[select3(warpnames)] or false
if not s then return end
if s.koord then
warpring.warp(s)
return
end
warpring.showwarps(s)
end
end
end
kriege folgenden fehler :
Calls undeclared function !:
ipairs
select3
Error occured on compile warp_ring.quest
ipairs & select3 in die quest_functions eintragen und ggf deine questlib dementsprechend erweitern.
Danke =)also die quest wird jetz erfolgreich eingelesen aber bräuchte hilfe bei der questlib.lua für die funktionen ipairs & select3 kenne mich da leider null aus kann mir da einer helfen?würde mich echt freuen :hands down:
--quest.create = function(f) return coroutine.create(f) end
--quest.process = function(co,args) return coroutine.resume(co, args) end
setstate = q.setstate
newstate = q.setstate
q.set_clock = function(name, value) q.set_clock_name(name) q.set_clock_value(value) end
q.set_counter = function(name, value) q.set_counter_name(name) q.set_counter_value(value) end
c_item_name = function(vnum) return ("[ITEM value;"..vnum.."]") end
c_mob_name = function(vnum) return ("[MOB value;"..vnum.."]") end
-- d.set_folder = function (path) raw_script("[SET_PATH path;"..path.."]") end
-- d.set_folder = function (path) path.show_cinematic("[SET_PATH path;"..path.."]") end
-- party.run_cinematic = function (path) party.show_cinematic("[RUN_CINEMATIC value;"..path.."]") end
newline = "[ENTER]"
function color256(r, g, b) return "[COLOR r;"..(r/255.0).."|g;"..(g/255.0).."|b;"..(b/255.0).."]" end
function color(r,g,b) return "[COLOR r;"..r.."|g;"..g.."|b;"..b.."]" end
function delay(v) return "[DELAY value;"..v.."]" end
function setcolor(r,g,b) raw_script(color(r,g,b)) end
function setdelay(v) raw_script(delay(v)) end
function resetcolor(r,g,b) raw_script("[/COLOR]") end
function resetdelay(v) raw_script("[/DELAY]") end
-- minimap에 동그라미 표시
function addmapsignal(x,y) raw_script("[ADDMAPSIGNAL x;"..x.."|y;"..y.."]") end
-- minimap 동그라미들 모두 클리어
function clearmapsignal() raw_script("[CLEARMAPSIGNAL]") end
-- 클라이언트에서 보여줄 대화창 배경 그림을 정한다.
function setbgimage(src) raw_script("[BGIMAGE src;") raw_script(src) raw_script("]") end
-- 대화창에 이미지를 보여준다.
function addimage(x,y,src) raw_script("[IMAGE x;"..x.."|y;"..y) raw_script("|src;") raw_script(src) raw_script("]") end
function makequestbutton(name)
raw_script("[QUESTBUTTON idx;")
raw_script(""..q.getcurrentquestindex())
raw_script("|name;")
raw_script(name) raw_script("]")
end
function make_quest_button_ex(name, icon_type, icon_name)
test_chat(icon_type)
test_chat(icon_name)
raw_script("[QUESTBUTTON idx;")
raw_script(""..q.getcurrentquestindex())
raw_script("|name;")
raw_script(name)
raw_script("|icon_type;")
raw_script(icon_type)
raw_script("|icon_name;")
raw_script(icon_name)
raw_script("]")
end
-- Levelbegrenzungen
local lvl = {35, 65, 99}
----
local k=0
for i=1, 3 do
if level<=lvl[i] and k==0 then
k = i
end
end
for i=1, table.getn(mobs[k]) do
for p=mobs[k][i][1], mobs[k][i][2] do
if vnum==p then
return true
end
end
end
for p=metin[k][1], metin[k][2] do
if vnum==p then
return true
end
end
return false
end
function make_quest_button(name) makequestbutton(name) end
function send_letter_ex(name, icon_type, icon_name) make_quest_button_ex(name, icon_type, icon_name) setskin(NOWINDOW) q.set_title(name) q.start() end
function send_letter(name) makequestbutton(name) setskin(NOWINDOW) q.set_title(name) q.start() end
function clear_letter() q.done() end
function say_title(name) say(color256(255, 230, 186)..name..color256(196, 196, 196)) end
function say_reward(name) say(color256(255, 200, 200)..name..color256(196, 196, 196)) end
function say_pc_name() say(pc.get_name()..":") end
function say_size(width, height) say("[WINDOW_SIZE width;"..width.."|height;"..height.."]") end
function setmapcenterposition(x,y)
raw_script("[SETCMAPPOS x;")
raw_script(x.."|y;")
raw_script(y.."]")
end
function say_item(name, vnum, desc)
say("[INSERT_IMAGE image_type;item|idx;"..vnum.."|title;"..name.."|desc;"..desc.."]")
end
function say_item_vnum(vnum)
say_item(item_name(vnum), vnum, "")
end
function setvarchar(name, var)
local laenge = string.len (var)
local setchar = 0
local save_name = 0
local letter = 0
while laenge > setchar do
setchar = setchar + 1
letter = string.sub (var, setchar, setchar)
letter = string.byte(letter, 1)
save_name = ""..name.."_char_"..setchar..""
pc.setqf(save_name, letter)
end
local save_laenge=""..name.."laenge"
pc.setqf(save_laenge, laenge)
end
function getvarchar(name)
local save_laenge = ""..name.."laenge"
local laenge = pc.getqf(save_laenge)
local save_name = 0
local var = ""
local letter = 0
local getchar = 0
while laenge > getchar do
getchar = getchar + 1
save_name = ""..name.."_char_"..getchar..""
letter = pc.getqf(save_name)
if letter!=0 then
letter = string.char(letter)
else
letter = ""
end
var = ""..var..""..letter..""
end
return var
end
function delvarchar(name)
local save_laenge = ""..name.."laenge"
local laenge = pc.getqf(save_laenge)
local getchar = 0
while laenge > getchar do
getchar = getchar + 1
local save_name = ""..name.."_char_"..getchar..""
pc.delqf(save_name)
end
pc.delqf(save_laenge)
end
function global_setvarchar(name, var)
local laenge = string.len (var)
local setchar = 0
local save_name = 0
local letter = 0
while laenge > setchar do
setchar = setchar + 1
letter = string.sub (var, setchar, setchar)
letter = string.byte(letter)
if letter==91 or letter==93 then
letter=32
end
save_name = ""..name.."_char_"..setchar..""
game.set_event_flag(save_name, letter)
end
local save_laenge=""..name.."laenge"
game.set_event_flag(save_laenge, laenge)
end
function global_getvarchar(name)
local save_laenge = ""..name.."laenge"
local laenge = game.get_event_flag(save_laenge)
local save_name = 0
local var = ""
local letter = 0
local getchar = 0
while laenge > getchar do
getchar = getchar + 1
save_name = ""..name.."_char_"..getchar..""
letter = game.get_event_flag(save_name)
if letter!=0 then
letter = string.char(letter)
else
letter = ""
end
var = ""..var..""..letter..""
end
return var
end
function pc_is_novice()
if pc.get_skill_group()==0 then
return true
else
return false
end
end
function pc_get_exp_bonus(exp, text)
say_reward(text)
pc.give_exp2(exp)
set_quest_state("levelup", "run")
end
function pc_get_village_map_index(index)
return village_map[pc.get_empire()][index]
end
village_map = {
{1, 3},
{21, 23},
{41, 43},
}
function npc_is_same_empire()
if pc.get_empire()==npc.empire then
return true
else
return false
end
end
function npc_get_skill_teacher_race(pc_empire, pc_job, sub_job)
if 1==sub_job then
if 0==pc_job then
return WARRIOR1_NPC_LIST[pc_empire]
elseif 1==pc_job then
return ASSASSIN1_NPC_LIST[pc_empire]
elseif 2==pc_job then
return SURA1_NPC_LIST[pc_empire]
elseif 3==pc_job then
return SHAMAN1_NPC_LIST[pc_empire]
end
elseif 2==sub_job then
if 0==pc_job then
return WARRIOR2_NPC_LIST[pc_empire]
elseif 1==pc_job then
return ASSASSIN2_NPC_LIST[pc_empire]
elseif 2==pc_job then
return SURA2_NPC_LIST[pc_empire]
elseif 3==pc_job then
return SHAMAN2_NPC_LIST[pc_empire]
end
end
return 0
end
function pc_find_square_guard_vid()
if pc.get_empire()==1 then
return find_npc_by_vnum(11000)
elseif pc.get_empire()==2 then
return find_npc_by_vnum(11002)
elseif pc.get_empire()==3 then
return find_npc_by_vnum(11004)
end
return 0
end
function pc_find_skill_teacher_vid(sub_job)
local vnum=npc_get_skill_teacher_race(pc.get_empire(), pc.get_job(), sub_job)
return find_npc_by_vnum(vnum)
end
function pc_find_square_guard_vid()
local pc_empire=pc.get_empire()
if pc_empire==1 then
return find_npc_by_vnum(11000)
elseif pc_empire==2 then
return find_npc_by_vnum(11002)
elseif pc_empire==3 then
return find_npc_by_vnum(11004)
end
end
function npc_is_same_job()
local pc_job=pc.get_job()
local npc_vnum=npc.get_race()
-- test_chat("pc.job:"..pc.get_job())
-- test_chat("npc_race:"..npc.get_race())
-- test_chat("pc.skill_group:"..pc.get_skill_group())
if pc_job==0 then
if table_is_in(WARRIOR1_NPC_LIST, npc_vnum) then return true end
if table_is_in(WARRIOR2_NPC_LIST, npc_vnum) then return true end
elseif pc_job==1 then
if table_is_in(ASSASSIN1_NPC_LIST, npc_vnum) then return true end
if table_is_in(ASSASSIN2_NPC_LIST, npc_vnum) then return true end
elseif pc_job==2 then
if table_is_in(SURA1_NPC_LIST, npc_vnum) then return true end
if table_is_in(SURA2_NPC_LIST, npc_vnum) then return true end
elseif pc_job==3 then
if table_is_in(SHAMAN1_NPC_LIST, npc_vnum) then return true end
if table_is_in(SHAMAN2_NPC_LIST, npc_vnum) then return true end
end
return false
end
function npc_get_job()
local npc_vnum=npc.get_race()
if table_is_in(WARRIOR1_NPC_LIST, npc_vnum) then return COND_WARRIOR_1 end
if table_is_in(WARRIOR2_NPC_LIST, npc_vnum) then return COND_WARRIOR_2 end
if table_is_in(ASSASSIN1_NPC_LIST, npc_vnum) then return COND_ASSASSIN_1 end
if table_is_in(ASSASSIN2_NPC_LIST, npc_vnum) then return COND_ASSASSIN_2 end
if table_is_in(SURA1_NPC_LIST, npc_vnum) then return COND_SURA_1 end
if table_is_in(SURA2_NPC_LIST, npc_vnum) then return COND_SURA_2 end
if table_is_in(SHAMAN1_NPC_LIST, npc_vnum) then return COND_SHAMAN_1 end
if table_is_in(SHAMAN2_NPC_LIST, npc_vnum) then return COND_SHAMAN_2 end
return 0
end
function time_min_to_sec(value)
return 60*value
end
function time_hour_to_sec(value)
return 3600*value
end
function next_time_set(value, test_value)
local nextTime=get_time()+value
if is_test_server() then
nextTime=get_time()+test_value
end
pc.setqf("__NEXT_TIME__", nextTime)
end
function next_time_is_now(value)
if get_time()>=pc.getqf("__NEXT_TIME__") then
return true
else
return false
end
end
function table_get_random_item(self)
return self[number(1, table.getn(self))]
end
function table_is_in(self, test)
for i = 1, table.getn(self) do
if self[i]==test then
return true
end
end
return false
end
function giveup_quest_menu(title)
local s=select("진행한다", "포기한다")
if 2==s then
say(title.." 퀘스트를 정말로")
say("포기하시겠습니까?")
local s=select("네, 그렇습니다", "아닙니다")
if 1==s then
say(title.."퀘스트를 포기했습니다")
restart_quest()
end
end
end
function restart_quest()
set_state("start")
q.done()
end
function complete_quest()
set_state("__COMPLETE__")
q.done()
end
function giveup_quest()
set_state("__GIVEUP__")
q.done()
end
function complete_quest_state(state_name)
set_state(state_name)
q.done()
end
function test_chat(log)
if is_test_server() then
chat(log)
end
end
function bool_to_str(is)
if is then
return "true"
else
return "false"
end
end
function skill_group_dialog(e, j, g) -- e = 제국, j = 직업, g = 그룹
e = 1 -- XXX 메시지가 나라별로 있다가 하나로 통합되었음
-- 다른 직업이거나 다른 제국일 경우
if pc.job != j then
say(locale.skill_group.dialog[e][pc.job][3])
elseif pc.get_skill_group() == 0 then
if pc.level < 5 then
say(locale.skill_group.dialog[e][j][g][1])
return
end
say(locale.skill_group.dialog[e][j][g][2])
local answer = select(locale.yes, locale.no)
if answer == 1 then
--say(locale.skill_group.dialog[e][j][g][2])
pc.set_skill_group(g)
else
--say(locale.skill_group.dialog[e][j][g][3])
end
--elseif pc.get_skill_group() == g then
--say(locale.skill_group.dialog[e][j][g][4])
--else
--say(locale.skill_group.dialog[e][j][g][5])
end
end
function show_horse_menu()
if horse.is_mine() then
say(locale.horse_menu.menu)
local s = 0
if horse.is_dead() then
s = select(locale.horse_menu.revive, locale.horse_menu.ride, locale.horse_menu.unsummon, locale.horse_menu.close)
else
s = select(locale.horse_menu.feed, locale.horse_menu.ride, locale.horse_menu.unsummon, locale.horse_menu.close)
end
if s==1 then
if horse.is_dead() then
horse.revive()
else
local food = horse.get_grade() + 50054 - 1
if pc.countitem(food) > 0 then
pc.removeitem(food, 1)
horse.feed()
else
say(locale.need_item_prefix..item_name(food)..locale.need_item_postfix);
end
end
elseif s==2 then
horse.ride()
elseif s==3 then
horse.unsummon()
elseif s==4 then
-- do nothing
end
end
end
POINT_POISON_PCT = 37 --독 확률
POINT_STUN_PCT = 38 --기절 확률
POINT_SLOW_PCT = 39 --슬로우 확률
POINT_CRITICAL_PCT = 40 --크리티컬 확률
POINT_PENETRATE_PCT = 41 --관통타격 확률
POINT_CURSE_PCT = 42 --저주 확률
-- DEFEND_BONUS_ATTRIBUTES
POINT_SKILL_DEFEND_BONUS = 123 --스킬 방어 데미지
POINT_NORMAL_HIT_DEFEND_BONUS = 124 --평타 방어 데미지
-- END_OF_DEFEND_BONUS_ATTRIBUTES
-- PC_BANG_ITEM_ADD
POINT_PC_BANG_EXP_BONUS = 125 --PC방 전용 경험치 보너스
POINT_PC_BANG_DROP_BONUS = 126 --PC방 전용 드롭률 보너스
-- END_PC_BANG_ITEM_ADD
-- POINT_MAX_NUM = 128 common/length.h
-- point type start
function say_blue(name) say(color256(0, 0, 255)..name..color256(0, 0, 255)) end
function say_red(name) say(color256(255, 0, 0)..name..color256(255, 0, 0)) end
function say_green(name) say(color256(0, 238, 0)..name..color256(0, 238, 0)) end
function say_gold(name) say(color256(255, 215, 0)..name..color256(255, 215, 0)) end
function say_black(name) say(color256(0, 0, 0)..name..color256(0, 0, 0)) end
function say_white(name) say(color256(255, 255, 255)..name..color256(255, 255, 255)) end
function say_yellow(name) say(color256(255, 255, 0)..name..color256(255, 255, 0)) end
function say_blue2(name) say(color256(0, 206, 209)..name..color256(0, 206, 209)) end
function npc.is_metin()
local nr = mysql_query("select metin from player.mob_proto where vnum = '"..npc.get_race().."';")
if tonumber(nr) == 1 then return true
else return false
end
end
function give_dm(z)
os.execute("mysql -u root account --execute='UPDATE account SET cash = cash + ".. z .." WHERE id = ".. pc.get_account_id() ..";'")
os.execute("mysql -u root log --execute='INSERT INTO voucher_log (account_id, pocet, cas) VALUES (".. pc.get_account_id() ..", ".. z ..", NOW());'")
end
function setenergy(typ,value,timez)
pc.setqf("energy_value", value)
pc.setqf("energy_date", get_time() + timez)
pc.setqf("energy_typ", typ)
end
function setenergytime(timez)
pc.setqf("energy_date", timez)
end
function getenergytyp()
return pc.getqf("energy_typ")
end
function getenergyvalue()
return pc.getqf("energy_value")
end
function getenergytime()
return pc.getqf("energy_date")
end
function split(str, delim, maxNb)
if str == nil then return str end
if string.find(str, delim) == nil then return { str } end
if maxNb == nil or maxNb < 1 then maxNb = 0 end
local result = {}
local pat = "(.-)" .. delim .. "()"
local nb = 0
local lastPos
for part, pos in string.gfind(str, pat) do
nb = nb + 1
result[nb] = part
lastPos = pos
if nb == maxNb then break end
end
if nb ~= maxNb then result[nb + 1] = string.sub(str, lastPos) end
return result
end
mysql_query = function(query)
if not pre then
local rt = io.open('CONFIG','r'):read('*all')
pre,_= string.gsub(rt,'.+PLAYER_SQL:%s(%S+)%s(%S+)%s(%S+)%s(%S+).+','-h%1 -u%2 -p%3 -D%4')
end
math.randomseed(os.time())
local fi,t,out = 'mysql_data_'..math.random(10^9)+math.random(2^4,2^10),{},{}
--os.execute('mysql '..pre..' --e='..string.format('%q',query)..' > '..fi) -- f? MySQL51
os.execute('mysql '..pre..' -e'..string.format('%q',query)..' > '..fi) -- f? MySQL55
for av in io.open(fi,'r'):lines() do table.insert(t,split(av,'\t')) end; os.remove(fi);
for i = 2, table.getn(t) do table.foreach(t[i],function(a,b)
out[i-1] = out[i-1] or {}
out[i-1][a] = tonumber(b) or b or 'NULL'
out[t[1][a]] = out[t[1][a]] or {}
out[t[1][a]][i-1] = tonumber(b) or b or 'NULL'
end) end
return out
end
-- Entferne Leerzeichen vor und nach dem String
function string.trim(str)
return (string.gsub(str, "^%s*(.-)%s*$", "%1"))
end
-- String zu Array ?er Seperator
function string.explode(str, sep)
if sep == "" or str == "" then
error("Fehlende Parameter")
end
local pos, t = 1, {}
for s, e in function() return string.find(str, sep, pos) end do
table.insert(t, string.trim(string.sub(str, pos, s-1)))
pos = e+1
end
table.insert(t, string.trim(string.sub(str, pos)))
return t
end
Danke =)also die quest wird jetz erfolgreich eingelesen aber bräuchte hilfe bei der questlib.lua für die funktionen ipairs & select3 kenne mich da leider null aus kann mir da einer helfen?würde mich echt freuen :hands down:
--quest.create = function(f) return coroutine.create(f) end
--quest.process = function(co,args) return coroutine.resume(co, args) end
setstate = q.setstate
newstate = q.setstate
q.set_clock = function(name, value) q.set_clock_name(name) q.set_clock_value(value) end
q.set_counter = function(name, value) q.set_counter_name(name) q.set_counter_value(value) end
c_item_name = function(vnum) return ("[ITEM value;"..vnum.."]") end
c_mob_name = function(vnum) return ("[MOB value;"..vnum.."]") end
-- d.set_folder = function (path) raw_script("[SET_PATH path;"..path.."]") end
-- d.set_folder = function (path) path.show_cinematic("[SET_PATH path;"..path.."]") end
-- party.run_cinematic = function (path) party.show_cinematic("[RUN_CINEMATIC value;"..path.."]") end
newline = "[ENTER]"
function color256(r, g, b) return "[COLOR r;"..(r/255.0).."|g;"..(g/255.0).."|b;"..(b/255.0).."]" end
function color(r,g,b) return "[COLOR r;"..r.."|g;"..g.."|b;"..b.."]" end
function delay(v) return "[DELAY value;"..v.."]" end
function setcolor(r,g,b) raw_script(color(r,g,b)) end
function setdelay(v) raw_script(delay(v)) end
function resetcolor(r,g,b) raw_script("[/COLOR]") end
function resetdelay(v) raw_script("[/DELAY]") end
-- minimap에 동그라미 표시
function addmapsignal(x,y) raw_script("[ADDMAPSIGNAL x;"..x.."|y;"..y.."]") end
-- minimap 동그라미들 모두 클리어
function clearmapsignal() raw_script("[CLEARMAPSIGNAL]") end
-- 클라이언트에서 보여줄 대화창 배경 그림을 정한다.
function setbgimage(src) raw_script("[BGIMAGE src;") raw_script(src) raw_script("]") end
-- 대화창에 이미지를 보여준다.
function addimage(x,y,src) raw_script("[IMAGE x;"..x.."|y;"..y) raw_script("|src;") raw_script(src) raw_script("]") end
function makequestbutton(name)
raw_script("[QUESTBUTTON idx;")
raw_script(""..q.getcurrentquestindex())
raw_script("|name;")
raw_script(name) raw_script("]")
end
function make_quest_button_ex(name, icon_type, icon_name)
test_chat(icon_type)
test_chat(icon_name)
raw_script("[QUESTBUTTON idx;")
raw_script(""..q.getcurrentquestindex())
raw_script("|name;")
raw_script(name)
raw_script("|icon_type;")
raw_script(icon_type)
raw_script("|icon_name;")
raw_script(icon_name)
raw_script("]")
end
-- Levelbegrenzungen
local lvl = {35, 65, 99}
----
local k=0
for i=1, 3 do
if level<=lvl[i] and k==0 then
k = i
end
end
for i=1, table.getn(mobs[k]) do
for p=mobs[k][i][1], mobs[k][i][2] do
if vnum==p then
return true
end
end
end
for p=metin[k][1], metin[k][2] do
if vnum==p then
return true
end
end
return false
end
function make_quest_button(name) makequestbutton(name) end
function send_letter_ex(name, icon_type, icon_name) make_quest_button_ex(name, icon_type, icon_name) setskin(NOWINDOW) q.set_title(name) q.start() end
function send_letter(name) makequestbutton(name) setskin(NOWINDOW) q.set_title(name) q.start() end
function clear_letter() q.done() end
function say_title(name) say(color256(255, 230, 186)..name..color256(196, 196, 196)) end
function say_reward(name) say(color256(255, 200, 200)..name..color256(196, 196, 196)) end
function say_pc_name() say(pc.get_name()..":") end
function say_size(width, height) say("[WINDOW_SIZE width;"..width.."|height;"..height.."]") end
function setmapcenterposition(x,y)
raw_script("[SETCMAPPOS x;")
raw_script(x.."|y;")
raw_script(y.."]")
end
function say_item(name, vnum, desc)
say("[INSERT_IMAGE image_type;item|idx;"..vnum.."|title;"..name.."|desc;"..desc.."]")
end
function say_item_vnum(vnum)
say_item(item_name(vnum), vnum, "")
end
function setvarchar(name, var)
local laenge = string.len (var)
local setchar = 0
local save_name = 0
local letter = 0
while laenge > setchar do
setchar = setchar + 1
letter = string.sub (var, setchar, setchar)
letter = string.byte(letter, 1)
save_name = ""..name.."_char_"..setchar..""
pc.setqf(save_name, letter)
end
local save_laenge=""..name.."laenge"
pc.setqf(save_laenge, laenge)
end
function getvarchar(name)
local save_laenge = ""..name.."laenge"
local laenge = pc.getqf(save_laenge)
local save_name = 0
local var = ""
local letter = 0
local getchar = 0
while laenge > getchar do
getchar = getchar + 1
save_name = ""..name.."_char_"..getchar..""
letter = pc.getqf(save_name)
if letter!=0 then
letter = string.char(letter)
else
letter = ""
end
var = ""..var..""..letter..""
end
return var
end
function delvarchar(name)
local save_laenge = ""..name.."laenge"
local laenge = pc.getqf(save_laenge)
local getchar = 0
while laenge > getchar do
getchar = getchar + 1
local save_name = ""..name.."_char_"..getchar..""
pc.delqf(save_name)
end
pc.delqf(save_laenge)
end
function global_setvarchar(name, var)
local laenge = string.len (var)
local setchar = 0
local save_name = 0
local letter = 0
while laenge > setchar do
setchar = setchar + 1
letter = string.sub (var, setchar, setchar)
letter = string.byte(letter)
if letter==91 or letter==93 then
letter=32
end
save_name = ""..name.."_char_"..setchar..""
game.set_event_flag(save_name, letter)
end
local save_laenge=""..name.."laenge"
game.set_event_flag(save_laenge, laenge)
end
function global_getvarchar(name)
local save_laenge = ""..name.."laenge"
local laenge = game.get_event_flag(save_laenge)
local save_name = 0
local var = ""
local letter = 0
local getchar = 0
while laenge > getchar do
getchar = getchar + 1
save_name = ""..name.."_char_"..getchar..""
letter = game.get_event_flag(save_name)
if letter!=0 then
letter = string.char(letter)
else
letter = ""
end
var = ""..var..""..letter..""
end
return var
end
function pc_is_novice()
if pc.get_skill_group()==0 then
return true
else
return false
end
end
function pc_get_exp_bonus(exp, text)
say_reward(text)
pc.give_exp2(exp)
set_quest_state("levelup", "run")
end
function pc_get_village_map_index(index)
return village_map[pc.get_empire()][index]
end
village_map = {
{1, 3},
{21, 23},
{41, 43},
}
function npc_is_same_empire()
if pc.get_empire()==npc.empire then
return true
else
return false
end
end
function npc_get_skill_teacher_race(pc_empire, pc_job, sub_job)
if 1==sub_job then
if 0==pc_job then
return WARRIOR1_NPC_LIST[pc_empire]
elseif 1==pc_job then
return ASSASSIN1_NPC_LIST[pc_empire]
elseif 2==pc_job then
return SURA1_NPC_LIST[pc_empire]
elseif 3==pc_job then
return SHAMAN1_NPC_LIST[pc_empire]
end
elseif 2==sub_job then
if 0==pc_job then
return WARRIOR2_NPC_LIST[pc_empire]
elseif 1==pc_job then
return ASSASSIN2_NPC_LIST[pc_empire]
elseif 2==pc_job then
return SURA2_NPC_LIST[pc_empire]
elseif 3==pc_job then
return SHAMAN2_NPC_LIST[pc_empire]
end
end
return 0
end
function pc_find_square_guard_vid()
if pc.get_empire()==1 then
return find_npc_by_vnum(11000)
elseif pc.get_empire()==2 then
return find_npc_by_vnum(11002)
elseif pc.get_empire()==3 then
return find_npc_by_vnum(11004)
end
return 0
end
function pc_find_skill_teacher_vid(sub_job)
local vnum=npc_get_skill_teacher_race(pc.get_empire(), pc.get_job(), sub_job)
return find_npc_by_vnum(vnum)
end
function pc_find_square_guard_vid()
local pc_empire=pc.get_empire()
if pc_empire==1 then
return find_npc_by_vnum(11000)
elseif pc_empire==2 then
return find_npc_by_vnum(11002)
elseif pc_empire==3 then
return find_npc_by_vnum(11004)
end
end
function npc_is_same_job()
local pc_job=pc.get_job()
local npc_vnum=npc.get_race()
-- test_chat("pc.job:"..pc.get_job())
-- test_chat("npc_race:"..npc.get_race())
-- test_chat("pc.skill_group:"..pc.get_skill_group())
if pc_job==0 then
if table_is_in(WARRIOR1_NPC_LIST, npc_vnum) then return true end
if table_is_in(WARRIOR2_NPC_LIST, npc_vnum) then return true end
elseif pc_job==1 then
if table_is_in(ASSASSIN1_NPC_LIST, npc_vnum) then return true end
if table_is_in(ASSASSIN2_NPC_LIST, npc_vnum) then return true end
elseif pc_job==2 then
if table_is_in(SURA1_NPC_LIST, npc_vnum) then return true end
if table_is_in(SURA2_NPC_LIST, npc_vnum) then return true end
elseif pc_job==3 then
if table_is_in(SHAMAN1_NPC_LIST, npc_vnum) then return true end
if table_is_in(SHAMAN2_NPC_LIST, npc_vnum) then return true end
end
return false
end
function npc_get_job()
local npc_vnum=npc.get_race()
if table_is_in(WARRIOR1_NPC_LIST, npc_vnum) then return COND_WARRIOR_1 end
if table_is_in(WARRIOR2_NPC_LIST, npc_vnum) then return COND_WARRIOR_2 end
if table_is_in(ASSASSIN1_NPC_LIST, npc_vnum) then return COND_ASSASSIN_1 end
if table_is_in(ASSASSIN2_NPC_LIST, npc_vnum) then return COND_ASSASSIN_2 end
if table_is_in(SURA1_NPC_LIST, npc_vnum) then return COND_SURA_1 end
if table_is_in(SURA2_NPC_LIST, npc_vnum) then return COND_SURA_2 end
if table_is_in(SHAMAN1_NPC_LIST, npc_vnum) then return COND_SHAMAN_1 end
if table_is_in(SHAMAN2_NPC_LIST, npc_vnum) then return COND_SHAMAN_2 end
return 0
end
function time_min_to_sec(value)
return 60*value
end
function time_hour_to_sec(value)
return 3600*value
end
function next_time_set(value, test_value)
local nextTime=get_time()+value
if is_test_server() then
nextTime=get_time()+test_value
end
pc.setqf("__NEXT_TIME__", nextTime)
end
function next_time_is_now(value)
if get_time()>=pc.getqf("__NEXT_TIME__") then
return true
else
return false
end
end
function table_get_random_item(self)
return self[number(1, table.getn(self))]
end
function table_is_in(self, test)
for i = 1, table.getn(self) do
if self[i]==test then
return true
end
end
return false
end
function giveup_quest_menu(title)
local s=select("진행한다", "포기한다")
if 2==s then
say(title.." 퀘스트를 정말로")
say("포기하시겠습니까?")
local s=select("네, 그렇습니다", "아닙니다")
if 1==s then
say(title.."퀘스트를 포기했습니다")
restart_quest()
end
end
end
function restart_quest()
set_state("start")
q.done()
end
function complete_quest()
set_state("__COMPLETE__")
q.done()
end
function giveup_quest()
set_state("__GIVEUP__")
q.done()
end
function complete_quest_state(state_name)
set_state(state_name)
q.done()
end
function test_chat(log)
if is_test_server() then
chat(log)
end
end
function bool_to_str(is)
if is then
return "true"
else
return "false"
end
end
function skill_group_dialog(e, j, g) -- e = 제국, j = 직업, g = 그룹
e = 1 -- XXX 메시지가 나라별로 있다가 하나로 통합되었음
-- 다른 직업이거나 다른 제국일 경우
if pc.job != j then
say(locale.skill_group.dialog[e][pc.job][3])
elseif pc.get_skill_group() == 0 then
if pc.level < 5 then
say(locale.skill_group.dialog[e][j][g][1])
return
end
say(locale.skill_group.dialog[e][j][g][2])
local answer = select(locale.yes, locale.no)
if answer == 1 then
--say(locale.skill_group.dialog[e][j][g][2])
pc.set_skill_group(g)
else
--say(locale.skill_group.dialog[e][j][g][3])
end
--elseif pc.get_skill_group() == g then
--say(locale.skill_group.dialog[e][j][g][4])
--else
--say(locale.skill_group.dialog[e][j][g][5])
end
end
function show_horse_menu()
if horse.is_mine() then
say(locale.horse_menu.menu)
local s = 0
if horse.is_dead() then
s = select(locale.horse_menu.revive, locale.horse_menu.ride, locale.horse_menu.unsummon, locale.horse_menu.close)
else
s = select(locale.horse_menu.feed, locale.horse_menu.ride, locale.horse_menu.unsummon, locale.horse_menu.close)
end
if s==1 then
if horse.is_dead() then
horse.revive()
else
local food = horse.get_grade() + 50054 - 1
if pc.countitem(food) > 0 then
pc.removeitem(food, 1)
horse.feed()
else
say(locale.need_item_prefix..item_name(food)..locale.need_item_postfix);
end
end
elseif s==2 then
horse.ride()
elseif s==3 then
horse.unsummon()
elseif s==4 then
-- do nothing
end
end
end
POINT_POISON_PCT = 37 --독 확률
POINT_STUN_PCT = 38 --기절 확률
POINT_SLOW_PCT = 39 --슬로우 확률
POINT_CRITICAL_PCT = 40 --크리티컬 확률
POINT_PENETRATE_PCT = 41 --관통타격 확률
POINT_CURSE_PCT = 42 --저주 확률
-- DEFEND_BONUS_ATTRIBUTES
POINT_SKILL_DEFEND_BONUS = 123 --스킬 방어 데미지
POINT_NORMAL_HIT_DEFEND_BONUS = 124 --평타 방어 데미지
-- END_OF_DEFEND_BONUS_ATTRIBUTES
-- PC_BANG_ITEM_ADD
POINT_PC_BANG_EXP_BONUS = 125 --PC방 전용 경험치 보너스
POINT_PC_BANG_DROP_BONUS = 126 --PC방 전용 드롭률 보너스
-- END_PC_BANG_ITEM_ADD
-- POINT_MAX_NUM = 128 common/length.h
-- point type start
function say_blue(name) say(color256(0, 0, 255)..name..color256(0, 0, 255)) end
function say_red(name) say(color256(255, 0, 0)..name..color256(255, 0, 0)) end
function say_green(name) say(color256(0, 238, 0)..name..color256(0, 238, 0)) end
function say_gold(name) say(color256(255, 215, 0)..name..color256(255, 215, 0)) end
function say_black(name) say(color256(0, 0, 0)..name..color256(0, 0, 0)) end
function say_white(name) say(color256(255, 255, 255)..name..color256(255, 255, 255)) end
function say_yellow(name) say(color256(255, 255, 0)..name..color256(255, 255, 0)) end
function say_blue2(name) say(color256(0, 206, 209)..name..color256(0, 206, 209)) end
function npc.is_metin()
local nr = mysql_query("select metin from player.mob_proto where vnum = '"..npc.get_race().."';")
if tonumber(nr) == 1 then return true
else return false
end
end
function give_dm(z)
os.execute("mysql -u root account --execute='UPDATE account SET cash = cash + ".. z .." WHERE id = ".. pc.get_account_id() ..";'")
os.execute("mysql -u root log --execute='INSERT INTO voucher_log (account_id, pocet, cas) VALUES (".. pc.get_account_id() ..", ".. z ..", NOW());'")
end
function setenergy(typ,value,timez)
pc.setqf("energy_value", value)
pc.setqf("energy_date", get_time() + timez)
pc.setqf("energy_typ", typ)
end
function setenergytime(timez)
pc.setqf("energy_date", timez)
end
function getenergytyp()
return pc.getqf("energy_typ")
end
function getenergyvalue()
return pc.getqf("energy_value")
end
function getenergytime()
return pc.getqf("energy_date")
end
function split(str, delim, maxNb)
if str == nil then return str end
if string.find(str, delim) == nil then return { str } end
if maxNb == nil or maxNb < 1 then maxNb = 0 end
local result = {}
local pat = "(.-)" .. delim .. "()"
local nb = 0
local lastPos
for part, pos in string.gfind(str, pat) do
nb = nb + 1
result[nb] = part
lastPos = pos
if nb == maxNb then break end
end
if nb ~= maxNb then result[nb + 1] = string.sub(str, lastPos) end
return result
end
mysql_query = function(query)
if not pre then
local rt = io.open('CONFIG','r'):read('*all')
pre,_= string.gsub(rt,'.+PLAYER_SQL:%s(%S+)%s(%S+)%s(%S+)%s(%S+).+','-h%1 -u%2 -p%3 -D%4')
end
math.randomseed(os.time())
local fi,t,out = 'mysql_data_'..math.random(10^9)+math.random(2^4,2^10),{},{}
--os.execute('mysql '..pre..' --e='..string.format('%q',query)..' > '..fi) -- f? MySQL51
os.execute('mysql '..pre..' -e'..string.format('%q',query)..' > '..fi) -- f? MySQL55
for av in io.open(fi,'r'):lines() do table.insert(t,split(av,'\t')) end; os.remove(fi);
for i = 2, table.getn(t) do table.foreach(t[i],function(a,b)
out[i-1] = out[i-1] or {}
out[i-1][a] = tonumber(b) or b or 'NULL'
out[t[1][a]] = out[t[1][a]] or {}
out[t[1][a]][i-1] = tonumber(b) or b or 'NULL'
end) end
return out
end
-- Entferne Leerzeichen vor und nach dem String
function string.trim(str)
return (string.gsub(str, "^%s*(.-)%s*$", "%1"))
end
-- String zu Array ?er Seperator
function string.explode(str, sep)
if sep == "" or str == "" then
error("Fehlende Parameter")
end
local pos, t = 1, {}
for s, e in function() return string.find(str, sep, pos) end do
table.insert(t, string.trim(string.sub(str, pos, s-1)))
pos = e+1
end
table.insert(t, string.trim(string.sub(str, pos)))
return t
end
dofile("/usr/home/game/quest/cube.lua")
In der questlib musst du dafür nichts machen, das ist eine Standardfunktion. Einfach in die quest_functions eintragen.
select3 dürfte jetzt nicht mehr vorkommen (solltest du ja ersetzen)
Das liegt daran, dass du in einem select keine eckigen Klammern nutzen darfst.
Wenn du das Min. und Maxlv direkt über die Einstellungen einträgst, wird automatisch das Min. und Maxlv dazugeschrieben.
quest haustiere begin state start begin -- Setzt den neuen Petnamen in die Datenbank ein function set_pet_name(name) mysql_query("DELETE FROM player.pet_name WHERE id = \\'"..pc.get_player_id().."\\'") mysql_query("INSERT INTO player.pet_name(id, name) VALUES(\\'"..pc.get_player_id().."\\', \\'"..name.."\\')") end -- Holt sich den Petnamen aus der Datenbank function get_pet_name() local pet_name = mysql_query("SELECT * FROM player.pet_name WHERE id = \\'"..pc.get_player_id().."\\'") return (pet_name.name or {pc.get_name().."'s Haustier"})[1] end -- Feuer-Phönix when 53001.use begin if pet.is_summon() then pet.unsummon() chat("Dein Haustier verabschiedet sich nun von dir!") affect.remove_collect(apply.ATT_GRADE_BONUS, 100, 60*60*8) affect.remove_collect(apply.DEF_GRADE_BONUS, 100, 60*60*8) affect.remove_collect(apply.MAX_HP, 1000, 60*60*8) else local old_level = horse.get_level() local old_name = horse.get_name() horse.set_level(22) horse.set_name(haustiere.get_pet_name()) pet.summon() horse.set_level(old_level) horse.set_name(old_name) affect.add_collect(apply.ATT_GRADE_BONUS, 100, 60*60*8) affect.add_collect(apply.DEF_GRADE_BONUS, 100, 60*60*8) affect.add_collect(apply.MAX_HP, 1000, 60*60*8) end end -- Rentierjunges when 53002.use begin if pet.is_summon() then pet.unsummon() chat("Dein Haustier verabschiedet sich nun von dir!") affect.remove_collect(apply.ATT_GRADE_BONUS, 150, 60*60*8) affect.remove_collect(apply.ATT_BONUS_TO_MONSTER, 15, 60*60*8) affect.remove_collect(apply.DEF_GRADE_BONUS, 100, 60*60*8) affect.remove_collect(apply.MAX_HP, 1500, 60*60*8) else local old_level = horse.get_level() local old_name = horse.get_name() horse.set_level(24) horse.set_name(haustiere.get_pet_name()) pet.summon() horse.set_level(old_level) horse.set_name(old_name) affect.add_collect(apply.ATT_GRADE_BONUS, 150, 60*60*8) affect.add_collect(apply.ATT_BONUS_TO_MONSTER, 15, 60*60*8) affect.add_collect(apply.DEF_GRADE_BONUS, 100, 60*60*8) affect.add_collect(apply.MAX_HP, 1500, 60*60*8) end end -- Eis-Phönix when 53003.use begin if pet.is_summon() then pet.unsummon() chat("Dein Haustier verabschiedet sich nun von dir!") affect.remove_collect(apply.ATT_GRADE_BONUS, 100, 60*60*8) affect.remove_collect(apply.DEF_GRADE_BONUS, 100, 60*60*8) affect.remove_collect(apply.MAX_HP, 1000, 60*60*8) else local old_level = horse.get_level() local old_name = horse.get_name() horse.set_level(23) horse.set_name(haustiere.get_pet_name()) pet.summon() horse.set_level(old_level) horse.set_name(old_name) affect.add_collect(apply.ATT_GRADE_BONUS, 100, 60*60*8) affect.add_collect(apply.DEF_GRADE_BONUS, 100, 60*60*8) affect.add_collect(apply.MAX_HP, 1000, 60*60*8) end end -- Baby-Azrael when 53005.use begin if pet.is_summon() then pet.unsummon() chat("Dein Haustier verabschiedet sich nun von dir!") affect.remove_collect(apply.ATT_GRADE_BONUS, 150, 60*60*8) affect.remove_collect(apply.ATT_BONUS_TO_MONSTER, 15, 60*60*8) affect.remove_collect(apply.DEF_GRADE_BONUS, 100, 60*60*8) affect.remove_collect(apply.MAX_HP, 1500, 60*60*8) else local old_level = horse.get_level() local old_name = horse.get_name() horse.set_level(25) horse.set_name(haustiere.get_pet_name()) pet.summon() horse.set_level(old_level) horse.set_name(old_name) affect.add_collect(apply.ATT_GRADE_BONUS, 150, 60*60*8) affect.add_collect(apply.ATT_BONUS_TO_MONSTER, 15, 60*60*8) affect.add_collect(apply.DEF_GRADE_BONUS, 100, 60*60*8) affect.add_collect(apply.MAX_HP, 1500, 60*60*8) end end -- Baby-Wolfs when 53006.use begin if pet.is_summon() then pet.unsummon() chat("Dein Haustier verabschiedet sich nun von dir!") affect.remove_collect(apply.ATT_GRADE_BONUS, 100, 60*60*8) affect.remove_collect(apply.DEF_GRADE_BONUS, 100, 60*60*8) affect.remove_collect(apply.MAX_HP, 1000, 60*60*8) else local old_level = horse.get_level() local old_name = horse.get_name() horse.set_level(26) horse.set_name(haustiere.get_pet_name()) pet.summon() horse.set_level(old_level) horse.set_name(old_name) affect.add_collect(apply.ATT_GRADE_BONUS, 100, 60*60*8) affect.add_collect(apply.DEF_GRADE_BONUS, 100, 60*60*8) affect.add_collect(apply.MAX_HP, 1000, 60*60*8) end end -- Baby-Löwen when 53007.use begin if pet.is_summon() then pet.unsummon() chat("Dein Haustier verabschiedet sich nun von dir!") affect.remove_collect(apply.ATT_GRADE_BONUS, 100, 60*60*8) affect.remove_collect(apply.DEF_GRADE_BONUS, 100, 60*60*8) affect.remove_collect(apply.MAX_HP, 1000, 60*60*8) else local old_level = horse.get_level() local old_name = horse.get_name() horse.set_level(27) horse.set_name(haustiere.get_pet_name()) pet.summon() horse.set_level(old_level) horse.set_name(old_name) affect.add_collect(apply.ATT_GRADE_BONUS, 100, 60*60*8) affect.add_collect(apply.DEF_GRADE_BONUS, 100, 60*60*8) affect.add_collect(apply.MAX_HP, 1000, 60*60*8) end end -- Baby-Keiler when 53008.use begin if pet.is_summon() then pet.unsummon() chat("Dein Haustier verabschiedet sich nun von dir!") affect.remove_collect(apply.ATT_GRADE_BONUS, 100, 60*60*8) affect.remove_collect(apply.DEF_GRADE_BONUS, 100, 60*60*8) affect.remove_collect(apply.MAX_HP, 1000, 60*60*8) else local old_level = horse.get_level() local old_name = horse.get_name() horse.set_level(28) horse.set_name(haustiere.get_pet_name()) pet.summon() horse.set_level(old_level) horse.set_name(old_name) affect.add_collect(apply.ATT_GRADE_BONUS, 100, 60*60*8) affect.add_collect(apply.DEF_GRADE_BONUS, 100, 60*60*8) affect.add_collect(apply.MAX_HP, 1000, 60*60*8) end end -- Baby-Tiger when 53009.use begin if pet.is_summon() then pet.unsummon() chat("Dein Haustier verabschiedet sich nun von dir!") affect.remove_collect(apply.ATT_GRADE_BONUS, 100, 60*60*8) affect.remove_collect(apply.DEF_GRADE_BONUS, 100, 60*60*8) affect.remove_collect(apply.MAX_HP, 1000, 60*60*8) else local old_level = horse.get_level() local old_name = horse.get_name() horse.set_level(29) horse.set_name(haustiere.get_pet_name()) pet.summon() horse.set_level(old_level) horse.set_name(old_name) affect.add_collect(apply.ATT_GRADE_BONUS, 100, 60*60*8) affect.add_collect(apply.DEF_GRADE_BONUS, 100, 60*60*8) affect.add_collect(apply.MAX_HP, 1000, 60*60*8) end end -- Baby-Leonidas when 53010.use begin if pet.is_summon() then pet.unsummon() chat("Dein Haustier verabschiedet sich nun von dir!") affect.remove_collect(apply.ATT_GRADE_BONUS, 100, 60*60*8) affect.remove_collect(apply.DEF_GRADE_BONUS, 100, 60*60*8) affect.remove_collect(apply.MAX_HP, 1000, 60*60*8) else local old_level = horse.get_level() local old_name = horse.get_name() horse.set_level(29) horse.set_name(haustiere.get_pet_name()) pet.summon() horse.set_level(old_level) horse.set_name(old_name) affect.add_collect(apply.ATT_GRADE_BONUS, 100, 60*60*8) affect.add_collect(apply.DEF_GRADE_BONUS, 100, 60*60*8) affect.add_collect(apply.MAX_HP, 1000, 60*60*8) end end -- Baby-Eisbär when 53014.use begin if pet.is_summon() then pet.unsummon() chat("Dein Haustier verabschiedet sich nun von dir!") affect.remove_collect(apply.ATT_GRADE_BONUS, 100, 60*60*8) affect.remove_collect(apply.DEF_GRADE_BONUS, 100, 60*60*8) affect.remove_collect(apply.MAX_HP, 1000, 60*60*8) else local old_level = horse.get_level() local old_name = horse.get_name() horse.set_level(30) horse.set_name(haustiere.get_pet_name()) pet.summon() horse.set_level(old_level) horse.set_name(old_name) affect.add_collect(apply.ATT_GRADE_BONUS, 100, 60*60*8) affect.add_collect(apply.DEF_GRADE_BONUS, 100, 60*60*8) affect.add_collect(apply.MAX_HP, 1000, 60*60*8) end end -- Namenskette - Namensändung des Haustiers when 71110.use begin say_title("Namenskette :") say("") say("Hier kannst du deinem Haustier einen neuen") say("Namen geben. Damit kannst du dein Haustier") say("über alle anderen hervorheben.") say("")
akna = haustiere.get_pet_name()
if string.len(akna) == 0 then say_reward("Dein Haustier besitzt bis jetzt keinen Namen.") else say_reward("Der aktuelle Name deines Haustieres lautet: "..akna) end
say("") say("Möchtest du fortfahren?") say("")
local s=select("Umbenennen", "Abbrechen") if s==2 then return end
say_title("Namenskette :") say("") say("Bitte gib hier den neuen Namen deines") say("Haustieres ein.")
local x = input()
if string.len(x) < 2 then say_title("Namenskette :") say("Der eingegeben Name ist zu kurz.") say("") say_reward("Der neue Name muss aus") say_reward("mind. 2 Zeichen bestehen.") say("") return elseif string.len(x) > 12 then say_title("Namenskette :") say("Der eingegeben Name ist zu lang.") say("") say_reward("Der neue Name darf max.") say_reward("aus 12 Zeichen bestehen.") say("") return end
haustiere.set_pet_name(x) chat("Haustier erfolgreich umbenannt") pc.remove_item(71110, 1) end end end
was stimmt mir der quest nicht die pets bringen nicht die dort angezeigten bonis zb will ich das baby azrael 15 monster bringt doch wenn ich den anktiviere mach ich nicht mehr dmg.
PS. danke nochma für die warpring quest funktioniert jetz super =)
Hi kann mir bitte einer sagen was mit der Quest nicht stimmt?
Type steht auf 18, es kommt keine Fehlermeldung aber der Stein lässt sich nicht anklicken.
Code:
quest regenbogen begin
state start begin
when 50512.use begin
say_title("Regenbogenstein:")
say("Du möchtest also deine Skills ")
say("Perfektionieren?")
if pc.job ==0 then
say("Wähle deine Lehre aus")
local s=select("Körper","Mental")
if s==1 then
pc.set_skill_group(1)
pc.set_skill_level(1 ,59)
pc.set_skill_level(2 ,59)
pc.set_skill_level(3 ,59)
pc.set_skill_level(4 ,59)
pc.set_skill_level(5 ,59)
pc.set_skill_level(124 ,50)
pc.set_skill_level(131 ,50)
pc.set_skill_level(121 ,50)
pc.set_skill_level(129 ,50)
pc.set_skill_level(126 ,50)
pc.set_skill_level(127 ,50)
pc.set_skill_level(128 ,50)
pc.set_skill_level(137 ,20)
pc.set_skill_level(138 ,20)
pc.set_skill_level(139 ,20)
pc.set_skill_level(140 ,20)
pc.set_skill_level(125 ,59)
pc.set_skill_level(130 ,59)
say("Alle deine Skills sind nun Perfekt! Viel Spaß")
end
if s==2 then
pc.set_skill_group(2)
pc.set_skill_level(16 ,59)
pc.set_skill_level(17 ,59)
pc.set_skill_level(18 ,59)
pc.set_skill_level(19 ,59)
pc.set_skill_level(20 ,59)
pc.set_skill_level(124 ,50)
pc.set_skill_level(131 ,50)
pc.set_skill_level(121 ,50)
pc.set_skill_level(129 ,50)
pc.set_skill_level(126 ,50)
pc.set_skill_level(127 ,50)
pc.set_skill_level(128 ,50)
pc.set_skill_level(137 ,20)
pc.set_skill_level(138 ,20)
pc.set_skill_level(139 ,20)
pc.set_skill_level(140 ,20)
pc.set_skill_level(125 ,59)
pc.set_skill_level(130 ,59)
say("Alle deine Skills sind nun Perfekt! Viel Spaß")
end
elseif pc.job ==1 then
say("Wähle deine Lehre aus")
local s=select("Nahkampf","Fernkampf")
if s==1 then
pc.set_skill_group(3)
pc.set_skill_level(31 ,59)
pc.set_skill_level(32 ,59)
pc.set_skill_level(33 ,59)
pc.set_skill_level(34 ,59)
pc.set_skill_level(35 ,59)
pc.set_skill_level(124 ,50)
pc.set_skill_level(131 ,50)
pc.set_skill_level(121 ,50)
pc.set_skill_level(129 ,50)
pc.set_skill_level(126 ,50)
pc.set_skill_level(127 ,50)
pc.set_skill_level(128 ,50)
pc.set_skill_level(137 ,20)
pc.set_skill_level(138 ,20)
pc.set_skill_level(139 ,20)
pc.set_skill_level(140 ,20)
pc.set_skill_level(125 ,59)
pc.set_skill_level(130 ,59)
say("Alle deine Skills sind nun Perfekt! Viel Spaß")
end
if s==2 then
pc.set_skill_group(4)
pc.set_skill_level(46 ,59)
pc.set_skill_level(47 ,59)
pc.set_skill_level(48 ,59)
pc.set_skill_level(49 ,59)
pc.set_skill_level(50 ,59)
pc.set_skill_level(124 ,50)
pc.set_skill_level(131 ,50)
pc.set_skill_level(121 ,50)
pc.set_skill_level(129 ,50)
pc.set_skill_level(126 ,50)
pc.set_skill_level(127 ,50)
pc.set_skill_level(128 ,50)
pc.set_skill_level(137 ,20)
pc.set_skill_level(138 ,20)
pc.set_skill_level(139 ,20)
pc.set_skill_level(140 ,20)
pc.set_skill_level(125 ,59)
pc.set_skill_level(130 ,59)
say("Alle deine Skills sind nun Perfekt! Viel Spaß")
end
elseif pc.job ==2 then
say("Wähle deine Lehre aus")
local s=select("Magie","Waffe")
if s==1 then
pc.set_skill_group(5)
pc.set_skill_level(76 ,59)
pc.set_skill_level(77 ,59)
pc.set_skill_level(78 ,59)
pc.set_skill_level(79 ,59)
pc.set_skill_level(80 ,59)
pc.set_skill_level(81, 59)
pc.set_skill_level(124 ,50)
pc.set_skill_level(131 ,50)
pc.set_skill_level(121 ,50)
pc.set_skill_level(129 ,50)
pc.set_skill_level(126 ,50)
pc.set_skill_level(127 ,50)
pc.set_skill_level(128 ,50)
pc.set_skill_level(137 ,20)
pc.set_skill_level(138 ,20)
pc.set_skill_level(139 ,20)
pc.set_skill_level(140 ,20)
pc.set_skill_level(125 ,59)
pc.set_skill_level(130 ,59)
say("Alle deine Skills sind nun Perfekt! Viel Spaß")
end
if s==2 then
--Waffe
pc.set_skill_group(6)
pc.set_skill_level(61 ,59)
pc.set_skill_level(62 ,59)
pc.set_skill_level(63 ,59)
pc.set_skill_level(64 ,59)
pc.set_skill_level(65 ,59)
pc.set_skill_level(66 ,59)
pc.set_skill_level(124 ,50)
pc.set_skill_level(131 ,50)
pc.set_skill_level(121 ,50)
pc.set_skill_level(129 ,50)
pc.set_skill_level(126 ,50)
pc.set_skill_level(127 ,50)
pc.set_skill_level(128 ,50)
pc.set_skill_level(137 ,20)
pc.set_skill_level(138 ,20)
pc.set_skill_level(139 ,20)
pc.set_skill_level(140 ,20)
pc.set_skill_level(125 ,59)
pc.set_skill_level(130 ,59)
say("Alle deine Skills sind nun Perfekt! Viel Spaß")
end
elseif pc.job ==3 then
say("Wähle deine Lehre aus")
local s=select("Heilung","Drache")
if s==1 then
pc.set_skill_group(7)
pc.set_skill_level(106 ,59)
pc.set_skill_level(107 ,59)
pc.set_skill_level(108 ,59)
pc.set_skill_level(109 ,59)
pc.set_skill_level(110 ,59)
pc.set_skill_level(111 ,59)
pc.set_skill_level(124 ,50)
pc.set_skill_level(131 ,50)
pc.set_skill_level(121 ,50)
pc.set_skill_level(129 ,50)
pc.set_skill_level(126 ,50)
pc.set_skill_level(127 ,50)
pc.set_skill_level(128 ,50)
pc.set_skill_level(137 ,20)
pc.set_skill_level(138 ,20)
pc.set_skill_level(139 ,20)
pc.set_skill_level(140 ,20)
pc.set_skill_level(125 ,59)
pc.set_skill_level(130 ,59)
say("Alle deine Skills sind nun Perfekt! Viel Spaß")
end
if s==2 then
pc.set_skill_group(8)
pc.set_skill_level(91 ,59)
pc.set_skill_level(92 ,59)
pc.set_skill_level(93 ,59)
pc.set_skill_level(94 ,59)
pc.set_skill_level(95 ,59)
pc.set_skill_level(96 ,59)
pc.set_skill_level(124 ,50)
pc.set_skill_level(131 ,50)
pc.set_skill_level(121 ,50)
pc.set_skill_level(129 ,50)
pc.set_skill_level(126 ,50)
pc.set_skill_level(127 ,50)
pc.set_skill_level(128 ,50)
pc.set_skill_level(137 ,20)
pc.set_skill_level(138 ,20)
pc.set_skill_level(139 ,20)
pc.set_skill_level(140 ,20)
pc.set_skill_level(125 ,59)
pc.set_skill_level(130 ,59)
say("Alle deine Skills sind nun Perfekt! Viel Spaß")
end
end
end
end
end
Bitte keine Antwort von [SA]xAmnezia da er echt keine Hilfe ist. Danke.
Hi kann mir bitte einer sagen was mit der Quest nicht stimmt?
Type steht auf 18, es kommt keine Fehlermeldung aber der Stein lässt sich nicht anklicken.
Code:
quest regenbogen begin
state start begin
when 50512.use begin
say_title("Regenbogenstein:")
say("Du möchtest also deine Skills ")
say("Perfektionieren?")
if pc.job ==0 then
say("Wähle deine Lehre aus")
local s=select("Körper","Mental")
if s==1 then
pc.set_skill_group(1)
pc.set_skill_level(1 ,59)
pc.set_skill_level(2 ,59)
pc.set_skill_level(3 ,59)
pc.set_skill_level(4 ,59)
pc.set_skill_level(5 ,59)
pc.set_skill_level(124 ,50)
pc.set_skill_level(131 ,50)
pc.set_skill_level(121 ,50)
pc.set_skill_level(129 ,50)
pc.set_skill_level(126 ,50)
pc.set_skill_level(127 ,50)
pc.set_skill_level(128 ,50)
pc.set_skill_level(137 ,20)
pc.set_skill_level(138 ,20)
pc.set_skill_level(139 ,20)
pc.set_skill_level(140 ,20)
pc.set_skill_level(125 ,59)
pc.set_skill_level(130 ,59)
say("Alle deine Skills sind nun Perfekt! Viel Spaß")
end
if s==2 then
pc.set_skill_group(2)
pc.set_skill_level(16 ,59)
pc.set_skill_level(17 ,59)
pc.set_skill_level(18 ,59)
pc.set_skill_level(19 ,59)
pc.set_skill_level(20 ,59)
pc.set_skill_level(124 ,50)
pc.set_skill_level(131 ,50)
pc.set_skill_level(121 ,50)
pc.set_skill_level(129 ,50)
pc.set_skill_level(126 ,50)
pc.set_skill_level(127 ,50)
pc.set_skill_level(128 ,50)
pc.set_skill_level(137 ,20)
pc.set_skill_level(138 ,20)
pc.set_skill_level(139 ,20)
pc.set_skill_level(140 ,20)
pc.set_skill_level(125 ,59)
pc.set_skill_level(130 ,59)
say("Alle deine Skills sind nun Perfekt! Viel Spaß")
end
elseif pc.job ==1 then
say("Wähle deine Lehre aus")
local s=select("Nahkampf","Fernkampf")
if s==1 then
pc.set_skill_group(3)
pc.set_skill_level(31 ,59)
pc.set_skill_level(32 ,59)
pc.set_skill_level(33 ,59)
pc.set_skill_level(34 ,59)
pc.set_skill_level(35 ,59)
pc.set_skill_level(124 ,50)
pc.set_skill_level(131 ,50)
pc.set_skill_level(121 ,50)
pc.set_skill_level(129 ,50)
pc.set_skill_level(126 ,50)
pc.set_skill_level(127 ,50)
pc.set_skill_level(128 ,50)
pc.set_skill_level(137 ,20)
pc.set_skill_level(138 ,20)
pc.set_skill_level(139 ,20)
pc.set_skill_level(140 ,20)
pc.set_skill_level(125 ,59)
pc.set_skill_level(130 ,59)
say("Alle deine Skills sind nun Perfekt! Viel Spaß")
end
if s==2 then
pc.set_skill_group(4)
pc.set_skill_level(46 ,59)
pc.set_skill_level(47 ,59)
pc.set_skill_level(48 ,59)
pc.set_skill_level(49 ,59)
pc.set_skill_level(50 ,59)
pc.set_skill_level(124 ,50)
pc.set_skill_level(131 ,50)
pc.set_skill_level(121 ,50)
pc.set_skill_level(129 ,50)
pc.set_skill_level(126 ,50)
pc.set_skill_level(127 ,50)
pc.set_skill_level(128 ,50)
pc.set_skill_level(137 ,20)
pc.set_skill_level(138 ,20)
pc.set_skill_level(139 ,20)
pc.set_skill_level(140 ,20)
pc.set_skill_level(125 ,59)
pc.set_skill_level(130 ,59)
say("Alle deine Skills sind nun Perfekt! Viel Spaß")
end
elseif pc.job ==2 then
say("Wähle deine Lehre aus")
local s=select("Magie","Waffe")
if s==1 then
pc.set_skill_group(5)
pc.set_skill_level(76 ,59)
pc.set_skill_level(77 ,59)
pc.set_skill_level(78 ,59)
pc.set_skill_level(79 ,59)
pc.set_skill_level(80 ,59)
pc.set_skill_level(81, 59)
pc.set_skill_level(124 ,50)
pc.set_skill_level(131 ,50)
pc.set_skill_level(121 ,50)
pc.set_skill_level(129 ,50)
pc.set_skill_level(126 ,50)
pc.set_skill_level(127 ,50)
pc.set_skill_level(128 ,50)
pc.set_skill_level(137 ,20)
pc.set_skill_level(138 ,20)
pc.set_skill_level(139 ,20)
pc.set_skill_level(140 ,20)
pc.set_skill_level(125 ,59)
pc.set_skill_level(130 ,59)
say("Alle deine Skills sind nun Perfekt! Viel Spaß")
end
if s==2 then
--Waffe
pc.set_skill_group(6)
pc.set_skill_level(61 ,59)
pc.set_skill_level(62 ,59)
pc.set_skill_level(63 ,59)
pc.set_skill_level(64 ,59)
pc.set_skill_level(65 ,59)
pc.set_skill_level(66 ,59)
pc.set_skill_level(124 ,50)
pc.set_skill_level(131 ,50)
pc.set_skill_level(121 ,50)
pc.set_skill_level(129 ,50)
pc.set_skill_level(126 ,50)
pc.set_skill_level(127 ,50)
pc.set_skill_level(128 ,50)
pc.set_skill_level(137 ,20)
pc.set_skill_level(138 ,20)
pc.set_skill_level(139 ,20)
pc.set_skill_level(140 ,20)
pc.set_skill_level(125 ,59)
pc.set_skill_level(130 ,59)
say("Alle deine Skills sind nun Perfekt! Viel Spaß")
end
elseif pc.job ==3 then
say("Wähle deine Lehre aus")
local s=select("Heilung","Drache")
if s==1 then
pc.set_skill_group(7)
pc.set_skill_level(106 ,59)
pc.set_skill_level(107 ,59)
pc.set_skill_level(108 ,59)
pc.set_skill_level(109 ,59)
pc.set_skill_level(110 ,59)
pc.set_skill_level(111 ,59)
pc.set_skill_level(124 ,50)
pc.set_skill_level(131 ,50)
pc.set_skill_level(121 ,50)
pc.set_skill_level(129 ,50)
pc.set_skill_level(126 ,50)
pc.set_skill_level(127 ,50)
pc.set_skill_level(128 ,50)
pc.set_skill_level(137 ,20)
pc.set_skill_level(138 ,20)
pc.set_skill_level(139 ,20)
pc.set_skill_level(140 ,20)
pc.set_skill_level(125 ,59)
pc.set_skill_level(130 ,59)
say("Alle deine Skills sind nun Perfekt! Viel Spaß")
end
if s==2 then
pc.set_skill_group(8)
pc.set_skill_level(91 ,59)
pc.set_skill_level(92 ,59)
pc.set_skill_level(93 ,59)
pc.set_skill_level(94 ,59)
pc.set_skill_level(95 ,59)
pc.set_skill_level(96 ,59)
pc.set_skill_level(124 ,50)
pc.set_skill_level(131 ,50)
pc.set_skill_level(121 ,50)
pc.set_skill_level(129 ,50)
pc.set_skill_level(126 ,50)
pc.set_skill_level(127 ,50)
pc.set_skill_level(128 ,50)
pc.set_skill_level(137 ,20)
pc.set_skill_level(138 ,20)
pc.set_skill_level(139 ,20)
pc.set_skill_level(140 ,20)
pc.set_skill_level(125 ,59)
pc.set_skill_level(130 ,59)
say("Alle deine Skills sind nun Perfekt! Viel Spaß")
end
end
end
end
end
Bitte keine Antwort von [SA]xAmnezia da er echt keine Hilfe ist. Danke.
Würdest du nur ein Gott verdammtes mal deine Augen auf machen würdest du es sehen. Und da du von mir meine Hilfe mehr willst nur weil
du nichts bekommst was du wolltest tut mir leid Schnorrer Tab Fehler, falsch gelistet falsch geschrieben. Einfach mal mit ner anderen Quest angleichen dann solltest du es checken mehr verate ich dir nicht mehr dank der netten Zeilen
Und wenn man 2 Wochen an einer Regenbogenstein Quest sitzt, ist man nicht für einen eigenen Server gemacht.
Hallo ich ein Problem bei meinen Daroo Files an den Quests
Da ich 1 Quest eingefügt habe und zwar Gm Online Quest
seit dem Funktionieren meine ganzen Quest nicht mehr woran liegt das ?
Hallo ich ein Problem bei meinen Daroo Files an den Quests
Da ich 1 Quest eingefügt habe und zwar Gm Online Quest
seit dem Funktionieren meine ganzen Quest nicht mehr woran liegt das ?
Pls help
Na schau mal in deine Quest list und lösche die Anti Ex quest da raus weil sie nicht vorhanden ist
quest pvp_quest2 begin
state start begin
when login or levelup with pc.get_level() == 180 and pc.getqf("level") == 0 begin
say("Gratuliere!")
say("Du hast das Level 180 erreicht!")
say("Töte Spieler um Itemshop Coins zu erhalten!")
say("Hier siehst du die Belohnungen, die du erhalten kannst!")
say_reward("50 Spieler getötet = 300 Coins")
say_reward("100 Spieler getötet = 500 Coins")
say_reward("250 Spieler getötet = 500 Coins, Besonderes Kostüm")
say_reward("500 Spieler getötet = 750 Coins, Besonderes Kostüm")
say_reward("1000 Spieler getötet = 1000 Coins, Besonderes Kostüm")
pc.setqf("level", 1)
end
when kill with npc.is_pc() begin
if get_time() < pc.getqf("kill_time") then
chat("Die 2 Minuten sind noch nicht vergangen.")
chat("Du erhielst keinen Punkt!")
return
end
chat("Du hast einen Punkt erhalten Gratuliere! Du hast derzeit ")
chat("Du musst zwei Minuten warten um den nächsten Punkt zu erhalten!")
chat("Derzeit besitz du "..pc.getqf("kill_punkte").." Punkt(e)")
pc.setqf("kill_punkte", pc.getqf("kill_punkte")+1)
pc.setqf("kill_time", get_time() + 60*2)
if pc.getqf("kill_punkte") == 50 then
pc.give_item2(80014, 3)
notice_all("pc.get_name().." hat soeben die erste PvP-Quest abgeschlossen!")
notice_all("Er hat 50 Spieler getötet!")
elseif pc.getqf("kill_punkte") == 100 then
pc.give_item2(80015, 1)
notice_all("pc.get_name().." hat soeben die zweite PvP-Quest abgeschlossen!")
notice_all("Er hat 100 Spieler getötet!")
elseif pc.getqf("kill_punkte") == 250 then
pc.give_item2(80015, 1)
pc.give_item2(10001, 1)
notice_all("pc.get_name().." hat soeben die dritte PvP-Quest abgeschlossen!")
notice_all("Er hat 250 Spieler getötet!")
elseif pc.getqf("kill_punkte") == 500 then
pc.give_item2(80015, 1)
pc.give_item2(80017, 1)
pc.give_item2(80017, 1)
pc.give_item2(10002, 2)
notice_all("pc.get_name().." hat soeben die vierte PvP-Quest abgeschlossen!")
notice_all("Er hat 500 Spieler getötet!")
elseif pc.getqf("kill_punkte") == 1000 then
pc.give_item2(80017, 1)
pc.give_item2(10003, 1)
notice_all("pc.get_name().." hat soeben die fünfte PvP-Quest abgeschlossen!")
notice_all("Er hat 1000 Spieler getötet und ist einer der stärksten Spieler!")
end
end
end
end
Error occured on compile maxim/pvp_quest2.quest ist die fehlermeldung.
Syssr: