|
You last visited: Today at 01:05
Advertisement
[SERVICE] Die Questkontrolle
Discussion on [SERVICE] Die Questkontrolle within the Metin2 Private Server forum part of the Metin2 category.
06/29/2019, 21:15
|
#12616
|
elite*gold: 0
Join Date: Sep 2017
Posts: 20
Received Thanks: 0
|
Nächstes problem xD, bei meiner quest (Regenbogenstein) benötigt man 20k rang-punkte, dass mit dem abziehen habe ich schon hin bekommen, aber mann kann das trotzdem nutzen obwohl man -20k rang-punkte hat, ich hätte es gerne so das man wieder auf neutrale rang-punkte kommen muss das man es erst wieder nutzen kann.
DIE QUEST
Quote:
quest regenbogenstein begin
state start begin
function BuildPerfectMasterSkillList(job, group)
GRAND_MASTER_SKILL_LEVEL = 20
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
when 50512.use begin
local count = pc.count_item(50512)
pc.setqf("regen_count", count)
if pc.get_skill_group() == 0 then
say("Du hast noch keine Fertigkeiten.")
say("Versuche es später erneut.")
return
end
local result = regenbogenstein.BuildPerfectMasterSkillList(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("Du hast keine Meister-Fertigkeiten.")
return
end
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]
say_title(""..pc.get_name().." : Fortsetzung deines Trainings?")
say("Möchtest du "..skill_name.."")
say("auf Perfekt Meister Trainieren?")
say("")
say("Du verlierst dadurch Rangpunkte.")
say("")
say_reward("Das Training kostet - 20.000 Rangpunkte!")
local wahl = select("Ja", "Nein")
if wahl == 1 then
if pc.count_item(50512) == pc.getqf("regen_count") then
pc.set_skill_level(skill_vnum, 59)
say(skill_name.." wurde auf Perfekten Meister Trainiert!")
say_reward("Du hast nun - 20.000 Rangpunke!")
say("")
else
say("Buguser bekommen keine P-Skills ! ")
end
elseif wahl == 2 then
return
end
pc.remove_item(50512)
pc.change_alignment(-20000)
end
end
end
|
|
|
|
06/30/2019, 13:32
|
#12617
|
elite*gold: 0
Join Date: May 2018
Posts: 25
Received Thanks: 19
|
Quote:
Originally Posted by levita2
Nächstes problem xD, bei meiner quest (Regenbogenstein) benötigt man 20k rang-punkte, dass mit dem abziehen habe ich schon hin bekommen, aber mann kann das trotzdem nutzen obwohl man -20k rang-punkte hat, ich hätte es gerne so das man wieder auf neutrale rang-punkte kommen muss das man es erst wieder nutzen kann.
DIE QUEST
|
Versuch es mal so:
|
|
|
07/01/2019, 13:02
|
#12618
|
elite*gold: 0
Join Date: Sep 2017
Posts: 20
Received Thanks: 0
|
Quote:
Originally Posted by .Moon
Versuch es mal so:
|
nein funkt nicht
|
|
|
07/09/2019, 11:46
|
#12619
|
elite*gold: 313
Join Date: Apr 2013
Posts: 585
Received Thanks: 122
|
Servus Leute, folgendes Problem: es handelt sich um die PowerMount quest
funktioniert auch soweit einwandfrei, nur was mich stört ist wenn ich bereits auf
dem Mount sitze und das Siegel nochmal anklicke setzt er mich ab und wieder auf
das möchte ich nicht...
PHP Code:
---------------------------------------------------- -- Power Mount System -- lvl x -- Copyright ©Zymos ---------------------------------------------------- quest p_mount begin state start begin when 80024.use begin chat("hi") end when 20349.take begin if pc.is_mount() then say_title(""..mob_name(20349).."") say("") say("könntest du bitte von deinem Mount absteigen,") say("solange wir miteinander reden? Ich habe einen") say("steifen Nacken und es ist ziemlich anstregend,") say("die ganze Zeit zu dir aufzuschauen zu müssen.") say("") return end chat("time "..item.get_socket(2).."") chat("pos "..item.get_cell().."") item.set_socket( 2,1 ) local vnum = item.get_vnum() if vnum >= 20201 and vnum <= 52090 then if pc.count_item(38100) >= 1 --Powersnack (7 Tage) or pc.count_item(38101) >= 1 --Powersnack (15 Tage) or pc.count_item(38102) >= 1 --Powersnack (30 Tage) then say_title(""..mob_name(20349).."") say("") say("Ich sehe, du besitzt einen Powersnack. Diese") say("wertvolle Heilplane versorgt dein Power Mount") say("mit reiner Energie, um seine Lebenszeit für") say("einige Tage zu verlängern. Was soll ich für dich") say("tun? Möchtest du, dass ich das Leben deines") say("Mounts verlängere oder möchtest du es verbessern") say("lassen?") say("") local i = select ("Verlängern","Verbessern","Abrechen") if i == 1 then local t = select("7 Tage","15 Tage","30 Tage","Abrechen") if t == 1 then --7 Tage if pc.count_item(38100) >= 1 then --Powersnack (7 Tage) say("verlängern 7 tage") pc.removeitem(38100,1) else p_mount.fail_message() end elseif t == 2 then --15 Tage if pc.count_item(38101) >= 1 then --Powersnack (15 Tage) say("verlängern 15 tage") pc.removeitem(38101,1) else p_mount.fail_message() end elseif t == 3 then --30 Tage if pc.count_item(38102) >= 1 then --Powersnack (30 Tage) say("verlängern 30 tage") pc.removeitem(38102,1) else p_mount.fail_message() end else return end elseif i == 2 then if p_mount.upgrade(vnum) == true then pc.give_item2(vnum +5,1) item.remove() else p_mount.fail_message() end end local blub = 1 elseif blub == 2 then --item.get_socket(2) <= 1440 then say_title(""..mob_name(20349).."") say("") say("Dein Mountsiegel hält weniger als 1 Tag noch.") say("Text... Text.. Text..") local f = select("Ja möchte ich","Nein noch nicht") say(""..pc.get_gold().." "..pc.count_item(50068).."") say(""..f.."") if f == 1 then if pc.get_gold() <= 200000 then say_title(""..mob_name(20349).."") say("") say("Um die Laufzeit deines Mounts zu verlängern.") say("Benötigst du 200.000 Yang.") return elseif pc.count_item(50068) == 0 then --Rolle der Mutation say_title(""..mob_name(20349).."") say("") say("Um die Laufzeit deines Mounts zu verlängern.") say("Benötigst du eine "..item_name(50068)..".") say("") say_item_vnum(50068) return elseif pc.get_gold() >= 200000 and pc.count_item(50068) >= 1 then pc.remove_item(50068,1) pc.changegold(-200000) if number(1,2) == 1 then local wert = item.get_socket(2) item.set_socket(2,wert + 60*24* number(1,3)) say("Zeit wurde verlängert") else say("Die Zeitaufwertung ist fehlgeschlagen") end else p_mount.fail_message() end else --Nein noch nicht return end elseif vnum >= 52011 and vnum <= 52015 or vnum >= 52026 and vnum <= 52030 or vnum >= 52041 and vnum <= 52045 or vnum >= 52056 and vnum <= 52060 or vnum >= 52071 and vnum <= 52075 or vnum >= 52086 and vnum <= 52090 then --Tapferere Mounts say_title(""..mob_name(20349).."") say("") say("Dieses Siegel kannst du nicht weiter verbessern.") return elseif pc.count_item(50067) >= 1 or pc.count_item(50068) >= 1 then say_title(""..mob_name(20349).."") say("") say("Wie ich sehe möchtest du wohl dein Mount verbessern.") say("") say("Möchtest du dies?") say("") local m = select("Ja","Nein") if m == 1 then --Ja if p_mount.upgrade(vnum) == true then pc.give_item2(vnum +5,1) --local wert = item.get_socket(2) --Upgrade 1-4 erhöhen laufzeit? ? item.set_socket(2,wert + 60*24* number(1,3)) item.remove() else p_mount.fail_message() end else --Nein return end else p_mount.fail_message() end end end function upgrade(vnum) if (vnum >= 52001 and vnum <= 52005 or vnum >= 52016 and vnum <= 52020 or vnum >= 52031 and vnum <= 52035 or vnum >= 52046 and vnum <= 52050 or vnum >= 52061 and vnum <= 52065 or vnum >= 52076 and vnum <= 52080) and pc.count_item(50067) >= 1 then --junge Mounts und Rolle der Evolution pc.remove_item(50067,1) return true elseif (vnum >= 52006 and vnum <= 52010 or vnum >= 52021 and vnum <= 52025 or vnum >= 52036 and vnum <= 52040 or vnum >= 52051 and vnum <= 52055 or vnum >= 52066 and vnum <= 52070 or vnum >= 52081 and vnum <= 52085) and pc.count_item(50068) >= 1 then --Wilde Mounts und Rolle der Mutation pc.remove_item(50068,1) return true else return false end end when 20349.chat."Ich will mein Mount verbessern" begin say_title(""..mob_name(20349).."") say("") say("Du willst also dein Mount verbessern? Weisst du") say("weißt du denn, wie das geht? Also gut,") say("ich werde es dir erklären.") wait() say_title(""..mob_name(20349).."") say("") say("Um den Mount zu einem Wilden Reittier zu") say("verwandeln, musst du dich auf der Suche nach der") say("Rolle der Evolution begeben. Finde die Rolle der") say("Mutation, damit du das Wilde zu einem Tapferen") say("Reittier ausbilden kanns. Es heisst, sie seien in") say("eineim fernen Land, bewohnt von gefährlichen") say("giganen versteckt!") wait() say_title(""..mob_name(20349).."") say("") say("Bring mir eine dieser Rollen und ich werde den") say("Mount verbessern. Du hast sie nicht zuäfflig") say("schon bei dir?") local v = select("Ja, ich möchte mein Mount verbessern!","Nein, jetzt nicht.") if v == 1 then say("Ziehe das Mount Siegel auf mich hierfür") end end when 20349.chat."Urkunde gegen Mount eintauschen" begin say_title(""..mob_name(20349).."") say("") say("Du möchtest deine Urkunde gegen ein Mount") say("eintauschen? Lass mich sehen, welche du dabei") say("hast. Besitzt du mehere Urkunden, kannst du") say("dich in den folgenden Schritten für eine") say("entscheiden.") wait() say_title(""..mob_name(20349).."") say("") if pc.count_item(52701) >= 1 then --Löwen-Urkunde say("du bringst mir ein "..item_name(52701).."") pc.setqf("mount",1) elseif pc.count_item(52702) >= 1 then --Tiger-Urkunde say("du bringst mir ein "..item_name(52702).."") pc.setqf("mount",2) elseif pc.count_item(52703) >= 1 then --Keiler-Urkunde say("du bringst mir ein "..item_name(52703).."") pc.setqf("mount",3) elseif pc.count_item(52704) >= 1 then --Wolfs-Urkunde say("du bringst mir ein "..item_name(52704).."") pc.setqf("mount",4) elseif pc.count_item(52705) >= 1 then --Rentier-Urkunde (m) say("du bringst mir ein "..item_name(52705).."") pc.setqf("mount",5) elseif pc.count_item(52706) >= 1 then --Rentier-Urkunde (w) say("du bringst mir ein "..item_name(52706).."") pc.setqf("mount",6) else say("Du hast keine Mount-Urkunde bei dir") return end -- say("Für Welcchen Boni entscheidest du dich?") say("") local b = select("Stark gegen Monster","Erfahrung (EXP)","Trefferpunkte (TP)","Verteidigung (DEF)","Angriffswert (AW)","Nein, lieber doch nichht.") if b == 1 then --Stark gegen Monster p_mount.give_seal(pc.getqf("mount"),1) elseif b == 2 then --Erfahrung (EXP) p_mount.give_seal(pc.getqf("mount"),2) elseif b == 3 then --Trefferpunkte (TP) p_mount.give_seal(pc.getqf("mount"),3) elseif b == 4 then --Verteidigung(DEF) p_mount.give_seal(pc.getqf("mount"),4) elseif b == 5 then --Angriffswert (AW) p_mount.give_seal(pc.getqf("mount"),5) end end function fail_message() say_title(""..mob_name(20349).."") say("") say("Tut mir leid, ohne die richtigen Dokumente kann") say("ich nichts für dich tun, Versuche nicht nochmal,") say("mich übers Ohr zu hauenn, sonst lass ich dich") say("dafür bezahlen.") end function give_seal(a,b) if a == 1 then --Löwen-Urkunde if b == 1 then --Start pc.give_item2( 52031 ) item.set_socket( 52031 , 100 ) --pc.give_item2(52031,1) --Stark gegen Monster pc.remove_item(52701,1) --Löwen-Urkunde return true elseif b == 2 then pc.give_item2(52032,1) --Erfahrung pc.remove_item(52701,1) --Löwen-Urkunde elseif b == 3 then pc.give_item2(52033,1) --Tp pc.remove_item(52701,1) --Löwen-Urkunde elseif b == 4 then pc.give_item2(52034,1) --Verteidigungswert pc.remove_item(52701,1) --Löwen-Urkunde elseif b == 5 then pc.give_item2(52035,1) --Angriffswert pc.remove_item(52701,1) --Löwen-Urkunde else return end elseif a == 2 then --Tiger-Urkunde if b == 1 then --Start pc.give_item2(52046,1) --Stark gegen Monster pc.remove_item(52702,1) --Tiger-Urkunde elseif b == 2 then pc.give_item2(52047,1) --Erfahrung pc.remove_item(52702,1) --Tiger-Urkunde elseif b == 3 then pc.give_item2(52048,1) --Tp pc.remove_item(52702,1) --Tiger-Urkunde elseif b == 4 then pc.give_item2(52049,1) --Verteidigungswert pc.remove_item(52702,1) --Tiger-Urkunde elseif b == 5 then pc.give_item2(52050,1) --Angriffswert pc.remove_item(52702,1) --Tiger-Urkunde else return end elseif a == 3 then --Keiler-Urkunde if b == 1 then --Start pc.give_item2(52001,1) --Stark gegen Monster pc.remove_item(52703,1) --Keiler-Urkunde elseif b == 2 then pc.give_item2(52002,1) --Erfahrung pc.remove_item(52703,1) --Keiler-Urkunde elseif b == 3 then pc.give_item2(52003,1) --Tp pc.remove_item(52703,1) --Keiler-Urkunde elseif b == 4 then pc.give_item2(52004,1) --Verteidigungswert pc.remove_item(52703,1) --Keiler-Urkunde elseif b == 5 then pc.give_item2(52005,1) --Angriffswert pc.remove_item(52703,1) --Keiler-Urkunde else return end elseif a == 4 then --Wolfs-Urkunde if b == 1 then --Start pc.give_item2(52016,1) --Stark gegen Monster pc.remove_item(52704,1) --Wolfs-Urkunde elseif b == 2 then pc.give_item2(52017,1) --Erfahrung pc.remove_item(52704,1) --Wolfs-Urkunde elseif b == 3 then pc.give_item2(52018,1) --Tp pc.remove_item(52704,1) --Wolfs-Urkunde elseif b == 4 then pc.give_item2(52019,1) --Verteidigungswert pc.remove_item(52704,1) --Wolfs-Urkunde elseif b == 5 then pc.give_item2(52020,1) --Angriffswert pc.remove_item(52704,1) --Wolfs-Urkunde else return end elseif a == 5 then --Rentier-Urkunde m if b == 1 then --Start pc.give_item2(52016,1) --Stark gegen Monster pc.remove_item(52705,1) --Rentier-Urkunde elseif b == 2 then pc.give_item2(52062,1) --Erfahrung pc.remove_item(52705,1) --Rentier-Urkunde elseif b == 3 then pc.give_item2(52063,1) --Tp pc.remove_item(52705,1) --Rentier-Urkunde elseif b == 4 then pc.give_item2(52064,1) --Verteidigungswert pc.remove_item(52705,1) --Rentier-Urkunde elseif b == 5 then pc.give_item2(52065,1) --Angriffswert pc.remove_item(52705,1) --Rentier-Urkunde else return end elseif a == 6 then --Rentier-Urkunde w if b == 1 then --Start pc.give_item2(52076,1) --Stark gegen Monster pc.remove_item(52706,1) --Rentier-Urkunde elseif b == 2 then pc.give_item2(52077,1) --Erfahrung pc.remove_item(52706,1) --Rentier-Urkunde elseif b == 3 then pc.give_item2(52078,1) --Tp pc.remove_item(52706,1) --Rentier-Urkunde elseif b == 4 then pc.give_item2(52079,1) --Verteidigungswert pc.remove_item(52706,1) --Rentier-Urkunde elseif b == 5 then pc.give_item2(52080,1) --Angriffswert pc.remove_item(52706,1) --Rentier-Urkunde else return end end end when 52001.use or 52002.use or 52003.use or 52004.use or 52005.use or 52006.use or 52007.use or 52008.use or 52009.use or 52010.use or 52011.use or 52012.use or 52013.use or 52014.use or 52015.use or 52016.use or 52017.use or 52018.use or 52019.use or 52020.use or 52021.use or 52022.use or 52023.use or 52024.use or 52025.use or 52026.use or 52027.use or 52028.use or 52029.use or 52030.use or 52031.use or 52032.use or 52033.use or 52034.use or 52035.use or 52036.use or 52037.use or 52038.use or 52039.use or 52040.use or 52041.use or 52042.use or 52043.use or 52044.use or 52045.use or 52046.use or 52047.use or 52048.use or 52049.use or 52050.use or 52051.use or 52052.use or 52053.use or 52054.use or 52055.use or 52056.use or 52057.use or 52058.use or 52059.use or 52060.use or 52061.use or 52062.use or 52063.use or 52064.use or 52065.use or 52066.use or 52067.use or 52068.use or 52069.use or 52070.use or 52071.use or 52072.use or 52073.use or 52074.use or 52075.use or 52076.use or 52077.use or 52078.use or 52079.use or 52080.use or 52081.use or 52082.use or 52083.use or 52084.use or 52085.use or 52086.use or 52087.use or 52088.use or 52089.use or 52090.use begin local vnum = item.get_vnum() local mounts_horse_lvl = horse.get_level() local player_level = pc.get_level() if pc.getf("pets","pet_active") == 1 or horse.is_summon() and horse.get_level() >= 22 then mounts_horse_lvl = pc.getf("pets","old_horse_level") end if pc.is_polymorphed() then say("Du kannst nicht reiten während du Verwandelt bist!") return elseif pc.is_mount() then pc.unmount() return end if vnum >= 52006 and vnum <= 52010 or vnum >= 52021 and vnum <= 52025 or vnum >= 52036 and vnum <= 52040 or vnum >= 52051 and vnum <= 52055 or vnum >= 52066 and vnum <= 52070 or vnum >= 52081 and vnum <= 52085 then --Wilde Mounts if player_level < 35 then syschat("Dein Level ist zu niedrig um dieses Mount zu benutzen!") return end if mounts_horse_lvl < 11 then syschat("Dein Pferde-level ist zu niedrig um dieses Mount zu benutzen!") return end elseif vnum >= 52011 and vnum <= 52015 or vnum >= 52026 and vnum <= 52030 or vnum >= 52041 and vnum <= 52045 or vnum >= 52056 and vnum <= 52060 or vnum >= 52071 and vnum <= 52075 or vnum >= 52086 and vnum <= 52090 then --Tapferere Mounts if player_level < 50 then syschat("Dein Level ist zu niedrig um dieses Mount zu benutzen!") return end if mounts_horse_lvl < 21 then syschat("Dein Pferde-level ist zu niedrig um dieses Mount zu benutzen!") return end end local check = p_mount.give_mount_bonus(vnum) if check == true then local timee = 3600 --item.get_socket(2)*60 syschat("Dein Mount wurde erfolgreich gerufen.") else syschat("Es ist ein Fehler aufgetreten als du dein Mount rufen wolltest.") end end function give_mount_bonus(a) pc.delqf("mount") local vnum = a local mounts_bonus = { [20201] = { 20201,'NO_SKILL',0}, --Junger Keiler [52002] = { 20201,'NO_SKILL',0}, --Junger Keiler [52003] = { 20201,'NO_SKILL',0}, --Junger Keiler [52004] = { 20201,'NO_SKILL',0}, --Junger Keiler [52005] = { 20201,'NO_SKILL',0}, --Junger Keiler [52006] = { 20205,apply.ATTBONUS_MONSTER,3}, --Wilder Keiler [52007] = { 20205,apply.EXP_DOUBLE_BONUS,3}, --Wilder Keiler [52008] = { 20205,apply.MAX_HP,250}, --Wilder Keiler [52009] = { 20205,apply.DEF_GRADE_BONUS,50}, --Wilder Keiler [52010] = { 20205,apply.ATT_GRADE_BONUS,30}, --Wilder Keiler [52011] = { 20209,apply.ATTBONUS_MONSTER,5}, --Tapferer Keiler [52012] = { 20209,apply.EXP_DOUBLE_BONUS,5}, --Tapferer Keiler [52013] = { 20209,apply.MAX_HP,500}, --Tapferer Keiler [52014] = { 20209,apply.DEF_GRADE_BONUS,150}, --Tapferer Keiler [52015] = { 20209,apply.ATT_GRADE_BONUS,100}, --Tapferer Keiler
[52016] = { 20202,'NO_SKILL',0}, --Junger Wolf [52017] = { 20202,'NO_SKILL',0}, --Junger Wolf [52018] = { 20202,'NO_SKILL',0}, --Junger Wolf [52019] = { 20202,'NO_SKILL',0}, --Junger Wolf [52020] = { 20202,'NO_SKILL',0}, --Junger Wolf [52021] = { 20206,apply.ATTBONUS_MONSTER,3}, --Wilder Wolf [52022] = { 20206,apply.EXP_DOUBLE_BONUS,3}, --Wilder Wolf [52023] = { 20206,apply.MAX_HP,250}, --Wilder Wolf [52024] = { 20206,apply.DEF_GRADE_BONUS,50}, --Wilder Wolf [52025] = { 20206,apply.ATT_GRADE_BONUS,30}, --Wilder Wolf [52026] = { 20210,apply.ATTBONUS_MONSTER,5}, --Tapferer Wolf [52027] = { 20210,apply.EXP_DOUBLE_BONUS,5}, --Tapferer Wolf [52028] = { 20210,apply.MAX_HP,500}, --Tapferer Wolf [52029] = { 20210,apply.DEF_GRADE_BONUS,150}, --Tapferer Wolf [52030] = { 20210,apply.ATT_GRADE_BONUS,100}, --Tapferer Wolf [52031] = { 20204,'NO_SKILL',0}, --Junger Löwe [52032] = { 20204,'NO_SKILL',0}, --Junger Löwe [52033] = { 20204,'NO_SKILL',0}, --Junger Löwe [52034] = { 20204,'NO_SKILL',0}, --Junger Löwe [52035] = { 20204,'NO_SKILL',0}, --Junger Löwe [52036] = { 20208,apply.ATTBONUS_MONSTER,3}, --Wilder Löwe [52037] = { 20208,apply.EXP_DOUBLE_BONUS,3}, --Wilder Löwe [52038] = { 20208,apply.MAX_HP,250}, --Wilder Löwe [52039] = { 20208,apply.DEF_GRADE_BONUS,50}, --Wilder Löwe [52040] = { 20208,apply.ATT_GRADE_BONUS,30}, --Wilder Löwe [52041] = { 20212,apply.ATTBONUS_MONSTER,5}, --Tapferer Löwe [52042] = { 20212,apply.EXP_DOUBLE_BONUS,5}, --Tapferer Löwe [52043] = { 20212,apply.MAX_HP,500}, --Tapferer Löwe [52044] = { 20212,apply.DEF_GRADE_BONUS,150}, --Tapferer Löwe [52045] = { 20212,apply.ATT_GRADE_BONUS,100}, --Tapferer Löwe [52046] = { 20203,'NO_SKILL',0}, --Junger Tiger [52047] = { 20203,'NO_SKILL',0}, --Junger Tiger [52048] = { 20203,'NO_SKILL',0}, --Junger Tiger [52049] = { 20203,'NO_SKILL',0}, --Junger Tiger [52050] = { 20203,'NO_SKILL',0}, --Junger Tiger [52051] = { 20207,apply.ATTBONUS_MONSTER,3}, --Wilder Tiger [52052] = { 20207,apply.EXP_DOUBLE_BONUS,3}, --Wilder Tiger [52053] = { 20207,apply.MAX_HP,250}, --Wilder Tiger [52054] = { 20207,apply.DEF_GRADE_BONUS,50}, --Wilder Tiger [52055] = { 20207,apply.ATT_GRADE_BONUS,30}, --Wilder Tiger [52056] = { 20211,apply.ATTBONUS_MONSTER,5}, --Tapferer Tiger [52057] = { 20211,apply.EXP_DOUBLE_BONUS,5}, --Tapferer Tiger [52058] = { 20211,apply.MAX_HP,500}, --Tapferer Tiger [52059] = { 20211,apply.DEF_GRADE_BONUS,150}, --Tapferer Tiger [52060] = { 20211,apply.ATT_GRADE_BONUS,100}, --Tapferer Tiger [52061] = { 20213,'NO_SKILL',0}, --Junger Rentier-Siegel (m) [52062] = { 20213,'NO_SKILL',0}, --Junger Rentier-Siegel (m) [52063] = { 20213,'NO_SKILL',0}, --Junger Rentier-Siegel (m) [52064] = { 20213,'NO_SKILL',0}, --Junger Rentier-Siegel (m) [52065] = { 20213,'NO_SKILL',0}, --Junger Rentier-Siegel (m) [52066] = { 20214,apply.ATTBONUS_MONSTER,3}, --Wilder Rentier-Siegel (m) [52067] = { 20214,apply.EXP_DOUBLE_BONUS,3}, --Wilder Rentier-Siegel (m) [52068] = { 20214,apply.MAX_HP,250}, --Wilder Rentier-Siegel (m) [52069] = { 20214,apply.DEF_GRADE_BONUS,50}, --Wilder Rentier-Siegel (m) [52070] = { 20214,apply.ATT_GRADE_BONUS,30}, --Wilder Rentier-Siegel (m) [52071] = { 20215,apply.ATTBONUS_MONSTER,5}, --Tapferer Rentier-Siegel (m) [52072] = { 20215,apply.EXP_DOUBLE_BONUS,5}, --Tapferer Rentier-Siegel (m) [52073] = { 20215,apply.MAX_HP,500}, --Tapferer Rentier-Siegel (m) [52074] = { 20215,apply.DEF_GRADE_BONUS,150}, --Tapferer Rentier-Siegel (m) [52075] = { 20215,apply.ATT_GRADE_BONUS,100}, --Tapferer Rentier-Siegel (m) [52076] = { 20216,'NO_SKILL',0}, --Junger Rentier-Siegel (w) [52077] = { 20216,'NO_SKILL',0}, --Junger Rentier-Siegel (w) [52078] = { 20216,'NO_SKILL',0}, --Junger Rentier-Siegel (w) [52079] = { 20216,'NO_SKILL',0}, --Junger Rentier-Siegel (w) [52080] = { 20216,'NO_SKILL',0}, --Junger Rentier-Siegel (w) [52081] = { 20217,apply.ATTBONUS_MONSTER,3}, --Wilder Rentier-Siegel (w) [52082] = { 20217,apply.EXP_DOUBLE_BONUS,3}, --Wilder Rentier-Siegel (w) [52083] = { 20217,apply.MAX_HP,250}, --Wilder Rentier-Siegel (w) [52084] = { 20217,apply.DEF_GRADE_BONUS,50}, --Wilder Rentier-Siegel (w) [52085] = { 20217,apply.ATT_GRADE_BONUS,30}, --Wilder Rentier-Siegel (w) [52086] = { 20218,apply.ATTBONUS_MONSTER,5}, --Tapferer Rentier-Siegel (w) [52087] = { 20218,apply.EXP_DOUBLE_BONUS,5}, --Tapferer Rentier-Siegel (w) [52088] = { 20218,apply.MAX_HP,500}, --Tapferer Rentier-Siegel (w) [52089] = { 20218,apply.DEF_GRADE_BONUS,150}, --Tapferer Rentier-Siegel (w) [52090] = { 20218,apply.ATT_GRADE_BONUS,100} --Tapferer Rentier-Siegel (w) --20201 boar_0 --junger --20202 dog_god_0 --junger --20203 fire_tiger_0 --junger --20204 lion_0 --junger
--20205 boar_2 --Wilder --20206 dog_god_2 --Wilder --20207 fire_tiger_2 --Wilder --20208 lion_2 --Wilder
--20209 boar_3 --Tapfer --20210 dog_god_3 --Tapfer --20211 fire_tiger_3 --Tapfer --20212 lion_3 --Tapfer --Tapfer
--20213 reindeer_male1 --junger --20214 reindeer_male2 --Wilder --20215 reindeer_male3
--20216 reindeer_female1 --junger --20217 reindeer_female2 --Wilder --20218 reindeer_female3 --Tapfer } local ride_npc = mounts_bonus[a][1] local ride_time = 60*60*5 --item.get_socket(2)*60 local ride_skill = mounts_bonus[a][2] local ride_value = mounts_bonus[a][3] pc.mount(ride_npc,ride_time) if vnum >= 52001 and vnum <= 52005 or vnum >= 52016 and vnum <= 52020 or vnum >= 52031 and vnum <= 52035 or vnum >= 52046 and vnum <= 52050 or vnum >= 52061 and vnum <= 52065 or vnum >= 52076 and vnum <= 52080 then --Junge Mounts (30+ Bewegungspeed) pc.mount_bonus(apply.MOV_SPEED, 30, ride_time ) return true elseif vnum >= 52006 and vnum <= 52010 or vnum >= 52021 and vnum <= 52025 or vnum >= 52036 and vnum <= 52040 or vnum >= 52051 and vnum <= 52055 or vnum >= 52066 and vnum <= 52070 or vnum >= 52081 and vnum <= 52085 then --Wilde Mounts (40+ Bewegungspeed) pc.mount_bonus(apply.MOV_SPEED, 40, ride_time ) pc.mount_bonus(ride_skill, ride_value, ride_time) return true elseif vnum >= 52011 and vnum <= 52015 or vnum >= 52026 and vnum <= 52030 or vnum >= 52041 and vnum <= 52045 or vnum >= 52056 and vnum <= 52060 or vnum >= 52071 and vnum <= 52075 or vnum >= 52086 and vnum <= 52090 then --Tapferere Mounts (50+ Bewegungspeed) pc.mount_bonus(apply.MOV_SPEED, 50, ride_time) pc.mount_bonus(ride_skill, ride_value, ride_time ) return true else syschat("Power Mount: FEHLERCODE #00123#") return false end end end end
ich kanns mir auch nicht ganz erklären da in Zeile 396-399
PHP Code:
elseif pc.is_mount() then pc.unmount() return end
eingetragen ist.
Danke für die Hilfe im Voraus
kind regards
|
|
|
08/20/2019, 09:50
|
#12620
|
elite*gold: 0
Join Date: Apr 2010
Posts: 16
Received Thanks: 0
|
SD3 Bossquest
Moin, kann jemand helfen?
Fehlermeldung:
PHP Code:
Runs/sd3boss.quest:184:syntax error : [string "startpc . in_dungeon ( )"]:1: `then' expected near `begin' Error occured on compile Runs/sd3boss.quest
Quest:
PHP Code:
quest sd3boss begin state start begin function setting() return { ["object"] = 30324, ["droped_object"] = 30327, ["sp"] = { ["MinLv"] = 49, ["MaxLv"] = 75}, ["map"] = { ["index_map"] = 217, ["coordx"] = 880, ["coordy"] = 6143}, ["monster"] = { ["vnum"] = 2094, ["coordx"] = 368, ["coordy"] = 562} } end ---***npc when 20404.chat."Die Bruthöhle betreten!" begin if not party.is_party then say("Du brauchst eine Gruppe für die Bruthöhle!") return end ---***party check :3 local pids = {party.get_member_pids()} local notEnoughLevelMembers = {} local noTicketMembers = {} local notEnoughtTime = {} local levelCheck = true local ticketCheck = true for i, pid in next, pids, nil do q.begin_other_pc_block(pid) local canPass = false if pc.count_item(spider_dungeon3.setting().object) >= 1 then canPass = true end if not canPass then table.insert(noTicketMembers, pc.get_name()) ticketCheck = false end if pc.get_level() < spider_dungeon3.setting().sp.MinLv or pc.get_level() > spider_dungeon3.setting().sp.MaxLv then table.insert(notEnoughLevelMembers, pc.get_name()) levelCheck = false end q.end_other_pc_block(pid) end if not ticketCheck then say("Folgende Gruppenmitglieder haben keinen Arachnidenschlüssel:") for i, name in next, noTicketMembers, nil do say(" "..name) end return end if not levelCheck then say_title(mob_name(20404)) say() say("Folgende Gruppenmitglieder sind nicht Lv 50 - 74:") for i, name in next, notEnoughLevelMembers, nil do say(" "..name) end return end if party.is_leader() then say_title("Guardian Spider dungeon") say("") say("Du willst die Spinnenbaroness töten?") local s = select("Ja ich will!", "Nein doch nicht...") if s == 1 then timer("spider_one", 4) notice_all("Die Gruppe von "..pc.get_name().." versucht die Spinnenbaroness zu töten!") else return end end end ---*** login for remove object when login with pc.in_dungeon() begin if d.getf("spider_dungeon") == 1 and pc.getqf("object") == 0 begin pc.remove_item(spider_dungeon3.setting().object , 1) pc.setqf("object", 1) end end ---****logout when logout with d.getf("spider_dungeon") == 1 begin pc.setqf("object", 0) end ---***timer dungeon when spider_one.timer begin d.new_jump_party(spider_dungeon3.setting().map.index_map, spider_dungeon3.setting().map.coordx, spider_dungeon3.setting().map.coordy) d.setf("spider_dungeon", 1) d.spawn_mob(spider_dungeon3.setting().monster.vnum, spider_dungeon3.setting().monster.coordx, spider_dungeon3.setting().monster.coordy) d.regen_file("data/dungeon/spider_dungeon3/spiders.txt") end ---***kill first monster when 2094.kill with d.getf("spider_dungeon") == 1 and pc.in_dungeon() begin pc.give_item2(spider_dungeon3.setting().droped_object ,1) d.notice("Du hast die Arachnidenflöte in dein Inventar gelegt! Spiele sie um die Eier zu spawnen!") end ----****use object droped by the monster when 30327.use with d.getf("spider_dungeon") == 1 and pc.in_dungeon() begin d.setf("little_spiders", 6) local t = { {393, 571}, {391, 591}, {378, 593}, {354, 583}, {351, 559}, {370, 548}, } for i = 1,6 do d.spawn_mob(2095, t[i][1], t[i][2]) end end ---***kill little spiders when 2095.kill with d.getf("spider_dungeon") == 1 and pc.in_dungeon() begin d.setf("little_spiders", d.getf("little_spiders")-1) if d.getf("little_spiders") == 0 then d.notice("Du hast alle Eier zerstört! Nun erscheint die Spinnenbaroness!") vid = d.spawn_mob(2092, 370, 587) d.set_unique("boss", vid) else d.notice("Ein Spinnen-Ei wurde zerstört! Die Spinnenbaroness ist wütend!") end ---d.unique_set_def_grade("boss", -50) end ---***boss queen when 2092.kill with d.getf("spider_dungeon") == 1 and pc.in_dungeon() begin d.notice("Gute Arbeit, die Spinne wurde besiegt!") notice_all("Die Gruppe von "..pc.get_name().." hat die Spinnenbaroness getötet! ") d.notice("Ihr habt anschließend 45 Sekunden um die Drops aufzuheben!") timer("bye_spiders", 45) end when bye_spiders.timer begin d.exit_all() end end end
Danke!
|
|
|
08/21/2019, 00:00
|
#12621
|
elite*gold: 70
Join Date: Oct 2015
Posts: 102
Received Thanks: 121
|
Quote:
Originally Posted by Bossunso
Moin, kann jemand helfen?
Fehlermeldung:
PHP Code:
Runs/sd3boss.quest:184:syntax error : [string "startpc . in_dungeon ( )"]:1: `then' expected near `begin' Error occured on compile Runs/sd3boss.quest
Quest:
PHP Code:
quest sd3boss begin state start begin function setting() return { ["object"] = 30324, ["droped_object"] = 30327, ["sp"] = { ["MinLv"] = 49, ["MaxLv"] = 75}, ["map"] = { ["index_map"] = 217, ["coordx"] = 880, ["coordy"] = 6143}, ["monster"] = { ["vnum"] = 2094, ["coordx"] = 368, ["coordy"] = 562} } end ---***npc when 20404.chat."Die Bruthöhle betreten!" begin if not party.is_party then say("Du brauchst eine Gruppe für die Bruthöhle!") return end ---***party check :3 local pids = {party.get_member_pids()} local notEnoughLevelMembers = {} local noTicketMembers = {} local notEnoughtTime = {} local levelCheck = true local ticketCheck = true for i, pid in next, pids, nil do q.begin_other_pc_block(pid) local canPass = false if pc.count_item(spider_dungeon3.setting().object) >= 1 then canPass = true end if not canPass then table.insert(noTicketMembers, pc.get_name()) ticketCheck = false end if pc.get_level() < spider_dungeon3.setting().sp.MinLv or pc.get_level() > spider_dungeon3.setting().sp.MaxLv then table.insert(notEnoughLevelMembers, pc.get_name()) levelCheck = false end q.end_other_pc_block(pid) end if not ticketCheck then say("Folgende Gruppenmitglieder haben keinen Arachnidenschlüssel:") for i, name in next, noTicketMembers, nil do say(" "..name) end return end if not levelCheck then say_title(mob_name(20404)) say() say("Folgende Gruppenmitglieder sind nicht Lv 50 - 74:") for i, name in next, notEnoughLevelMembers, nil do say(" "..name) end return end if party.is_leader() then say_title("Guardian Spider dungeon") say("") say("Du willst die Spinnenbaroness töten?") local s = select("Ja ich will!", "Nein doch nicht...") if s == 1 then timer("spider_one", 4) notice_all("Die Gruppe von "..pc.get_name().." versucht die Spinnenbaroness zu töten!") else return end end end ---*** login for remove object when login with pc.in_dungeon() begin if d.getf("spider_dungeon") == 1 and pc.getqf("object") == 0 begin pc.remove_item(spider_dungeon3.setting().object , 1) pc.setqf("object", 1) end end ---****logout when logout with d.getf("spider_dungeon") == 1 begin pc.setqf("object", 0) end ---***timer dungeon when spider_one.timer begin d.new_jump_party(spider_dungeon3.setting().map.index_map, spider_dungeon3.setting().map.coordx, spider_dungeon3.setting().map.coordy) d.setf("spider_dungeon", 1) d.spawn_mob(spider_dungeon3.setting().monster.vnum, spider_dungeon3.setting().monster.coordx, spider_dungeon3.setting().monster.coordy) d.regen_file("data/dungeon/spider_dungeon3/spiders.txt") end ---***kill first monster when 2094.kill with d.getf("spider_dungeon") == 1 and pc.in_dungeon() begin pc.give_item2(spider_dungeon3.setting().droped_object ,1) d.notice("Du hast die Arachnidenflöte in dein Inventar gelegt! Spiele sie um die Eier zu spawnen!") end ----****use object droped by the monster when 30327.use with d.getf("spider_dungeon") == 1 and pc.in_dungeon() begin d.setf("little_spiders", 6) local t = { {393, 571}, {391, 591}, {378, 593}, {354, 583}, {351, 559}, {370, 548}, } for i = 1,6 do d.spawn_mob(2095, t[i][1], t[i][2]) end end ---***kill little spiders when 2095.kill with d.getf("spider_dungeon") == 1 and pc.in_dungeon() begin d.setf("little_spiders", d.getf("little_spiders")-1) if d.getf("little_spiders") == 0 then d.notice("Du hast alle Eier zerstört! Nun erscheint die Spinnenbaroness!") vid = d.spawn_mob(2092, 370, 587) d.set_unique("boss", vid) else d.notice("Ein Spinnen-Ei wurde zerstört! Die Spinnenbaroness ist wütend!") end ---d.unique_set_def_grade("boss", -50) end ---***boss queen when 2092.kill with d.getf("spider_dungeon") == 1 and pc.in_dungeon() begin d.notice("Gute Arbeit, die Spinne wurde besiegt!") notice_all("Die Gruppe von "..pc.get_name().." hat die Spinnenbaroness getötet! ") d.notice("Ihr habt anschließend 45 Sekunden um die Drops aufzuheben!") timer("bye_spiders", 45) end when bye_spiders.timer begin d.exit_all() end end end
Danke!
|
ein "when" beendet man in der zeile immer mit einem "begin".
Ein "if" beendet man in der zeile immer mit einem "then".
Code:
when login with pc.in_dungeon() begin
if d.getf("spider_dungeon") == 1 and pc.getqf("object") == 0 begin
pc.remove_item(spider_dungeon3.setting().object , 1)
pc.setqf("object", 1)
end
end
MfG
|
|
|
09/07/2019, 16:23
|
#12622
|
elite*gold: 0
Join Date: Dec 2011
Posts: 37
Received Thanks: 2
|
Exclamation [Quest] Nochmal eine Quest frage nach Tot in stadt porten
Guten Tag,
Bin gerade am Quest schreiben und stehe vor dem Problem ich möchte, dass wenn sich ein Spieler Ausloggt oder gestorben ist in sein Dorf zurück teleportiert wird.
LG
Quote:
quest pvp begin
state start begin
when login or levelup with pc.get_level() > 14 begin
set_state(information)
end
end
state information begin
when letter begin
send_letter("Battle Royal")
end
when button or info begin
say_title("Guten Tag tapferer Krieger du hast nun lvl 15 erreicht und bist bereit um zu kämpfen.")
say("Viel spass beim duelieren.")
end
when kill begin
if npc.is_pc() then
if pc.get_map_index() == 121 then
pc.give_exp2(50000)
say("Du hast 50.000 Erfahrung erhalten.")
game.set_event_flag("mapi", game.get_event_flag("mapi")+1)
if game.get_event_flag("mapi")== 4 then
notice_all("".. pc.get_name() .." hat gerade das")
notice_all("Tunier gewonnen!")
warp_all_to_village( pc.get_map_index() , 1 )
end
end
end
end
end
end
|
|
|
|
02/07/2020, 08:42
|
#12623
|
elite*gold: 0
Join Date: Feb 2020
Posts: 31
Received Thanks: 55
|
Quote:
Originally Posted by losser123456789
Exclamation [Quest] Nochmal eine Quest frage nach Tot in stadt porten
Guten Tag,
Bin gerade am Quest schreiben und stehe vor dem Problem ich möchte, dass wenn sich ein Spieler Ausloggt oder gestorben ist in sein Dorf zurück teleportiert wird.
LG
|
Dafür benötigst du einen passenden Event Trigger, der dann quasi ausgelöst wird wenn diese Aktionen ausgeführt werden.
Falls du diesen besitzen solltest, kann man das ganz einfach umsetzen.
Meld dich dann bei mir & ich helfe dir gerne dabei.
|
|
|
02/15/2020, 06:46
|
#12624
|
elite*gold: 0
Join Date: Feb 2020
Posts: 1
Received Thanks: 0
|
This code is my quest:
quest blocage_experience begin
state start begin
when login begin
if pc.getqf("antiexp") == 1 then
pc.block_exp()
chat("Rappel : Vérifier si votre anneau est bien bloquer ou débloquer.")
end
end
when 40004.use begin
if pc.getqf("antiexp") == 0 then
pc.block_exp()
pc.setqf("antiexp", 1)
chat("Le blocage d'expérience à été activer")
elseif pc.getqf("antiexp") == 1 then
pc.unblock_exp()
pc.setqf("antiexp", 0)
chat("Le blocage d'expérience à été désactiver.")
end
end
end
end
This error on Syserr:
WriteRunningStateToSyserr: LUA_ERROR: quest blocage_experience.start click
and
....
attempt to call field `block_exp' (a nil value)
Thanks for all
|
|
|
02/21/2020, 13:20
|
#12625
|
elite*gold: 581
Join Date: Jun 2016
Posts: 12,620
Received Thanks: 2,275
|
Quote:
Originally Posted by NeXuS0248
This code is my quest:
quest blocage_experience begin
state start begin
when login begin
if pc.getqf("antiexp") == 1 then
pc.block_exp()
chat("Rappel : Vérifier si votre anneau est bien bloquer ou débloquer.")
end
end
when 40004.use begin
if pc.getqf("antiexp") == 0 then
pc.block_exp()
pc.setqf("antiexp", 1)
chat("Le blocage d'expérience à été activer")
elseif pc.getqf("antiexp") == 1 then
pc.unblock_exp()
pc.setqf("antiexp", 0)
chat("Le blocage d'expérience à été désactiver.")
end
end
end
end
This error on Syserr:
WriteRunningStateToSyserr: LUA_ERROR: quest blocage_experience.start click
and
....
attempt to call field `block_exp' (a nil value)
Thanks for all
|
Hey, is it possible that you use old-serverfiles?
maybe try this quest:
Code:
quest antiexpring begin
state start begin
when 72501.use with pc.getqf("antiexp") == 0 begin
local anti = pc.get_exp()
pc.setqf("exp", anti)
pc.setqf("antiexp", 1)
timer("antiexptimer", 1)
chat("Der Anti Expring wurde aktiviert! Du erhältst in diesem Zeitraum keine EXP!")
end
when 72501.use with pc.getqf("antiexp") == 1 begin
pc.setqf("antiexp", 0)
chat("Der Anti Expring wurde deaktiviert! Du erhältst nun wieder EXP!")
end
when kill with pc.getqf("antiexp") == 1 begin
local exp = pc.get_exp()
pc.give_exp2(-exp+pc.getqf("exp"))
end
when antiexptimer.timer with pc.getqf("antiexp") == 1 begin
local exp = pc.get_exp()
pc.give_exp2(-exp+pc.getqf("exp"))
end
end
end
|
|
|
04/07/2020, 23:33
|
#12626
|
elite*gold: 0
Join Date: Mar 2016
Posts: 43
Received Thanks: 15
|
Hallo.
Ich kann keine Gilde gründen , weil dort steht ich bin nicht Level 145.
Ich habe die Quets kontrolliert und sie passen zu 1000% auch andere benutzt, in welcher Datei finde ich es oder kann es ändern? Ich weiß es leider nicht mehr , thanks
<Gilde> Du bist nicht Level ...
Und kann deswegen keine Gilde gründen.
die Quest:
quest guild_manage begin
state start begin
when 11000.chat."Gilde verlassen" or 11002.chat."Gilde verlassen" or 11004.chat."Gilde verlassen" with pc.hasguild() and not pc.isguildmaster() and npc.get_empire() == pc.get_empire() begin
say_title("Wächter des Dorfplatzes")
say("Möchtest du deine Gilde wirklich")
say("verlassen? Ich denke deine Member")
say("werden enttäuscht von dir sein..")
local s = select("Ja", "Nein")
if s==1 then
say_title("Wächter des Dorfplatzes")
say("Du bist nun wieder Gildenlos!")
pc.remove_from_guild()
end
end
when 11000.chat."Gilde auflösen" or 11002.chat."Gilde auflösen" or 11004.chat."Gilde auflösen" with pc.hasguild() and pc.isguildmaster() and npc.get_empire() == pc.get_empire() begin
say_title("Wächter des Dorfplatzes")
say("Möchtest du deine Gilde wirklich")
say("auflösen? Ich denke deine Member")
say("werden enttäuscht von dir sein..")
local s = select("Ja", "Nein")
if s==1 then
say_title("Wächter des Dorfplatzes")
say("Deine Gilde ist nun aufgelöst!")
pc.destroy_guild()
end
end
when 11000.chat."Gilde gründen" or 11002.chat."Gilde gründen" or 11004.chat."Gilde gründen" with not pc.hasguild() and not pc.isguildmaster() and npc.get_empire() == pc.get_empire() begin
say_title("Wächter des Dorfplatzes")
say("Möchtest du eine Gilde gründen?")
local s = select("Ja", "Nein")
if s == 2 then
return
end
if s == 1 then
game.request_make_guild()
end
end
end
end
|
|
|
04/08/2020, 10:19
|
#12627
|
elite*gold: 19
Join Date: Aug 2011
Posts: 588
Received Thanks: 217
|
Quote:
Originally Posted by levita2
Nächstes problem xD, bei meiner quest (Regenbogenstein) benötigt man 20k rang-punkte, dass mit dem abziehen habe ich schon hin bekommen, aber mann kann das trotzdem nutzen obwohl man -20k rang-punkte hat, ich hätte es gerne so das man wieder auf neutrale rang-punkte kommen muss das man es erst wieder nutzen kann.
DIE QUEST
|
@
Code:
quest regenbogenstein begin
state start begin
function BuildPerfectMasterSkillList(job, group)
GRAND_MASTER_SKILL_LEVEL = 20
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}
end
when 50512.use begin
local count = pc.count_item(50512)
pc.setqf("regen_count", count)
if pc.get_skill_group() == 0 then
say("Du hast noch keine Fertigkeiten.")
say("Versuche es später erneut.")
return
end
local result = regenbogenstein.BuildPerfectMasterSkillList(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("Du hast keine Meister-Fertigkeiten.")
return
end
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]
say_title(""..pc.get_name().." : Fortsetzung deines Trainings?")
say("Möchtest du "..skill_name.."")
say("auf Perfekt Meister Trainieren?")
say("")
say("Du verlierst dadurch Rangpunkte.")
say("")
say_reward("Das Training kostet - 20.000 Rangpunkte!")
if select("Ja", "Nein") == 2 then return end
if pc.count_item(50512) < pc.getqf("regen_count") then
return syschat('Buguser bekommen keine Pskills!')
elseif pc.get_alignment() < 0 then
return syschat('Du benötigst mindestens 0 Rangpunkte.')
end
say(string.format(" %s wurde auf Perfekten Meister Trainiert!", skill_name))
say_reward("Du hast nun - 20.000 Rangpunke![ENTER]")
pc.remove_item(50512)
pc.change_alignment(-20000)
pc.set_skill_level(skill_vnum, 59)
end
end
end
____________________________________
@
Liegt nicht an der Quest sondern Source funktion.
Suche in deinem Server src nach "request_make_guild".
Dort solltest du die Level Voraussetzung für eine Gilde anpassen können.
_____________________________________
@
Hier passende Funktion:
Code:
quest pvp begin
state start begin
function pvp_settings()
return
{
['pvp_map_index'] = 121,
['pvp_exp_reward'] = 50000,
}
end
when login or levelup with pc.get_level() > 14 begin
set_state(information)
end
end
state information begin
when letter begin
send_letter("Battle Royal")
end
when button or info begin
say_title("Guten Tag tapferer Krieger du hast nun lvl 15 erreicht und bist bereit um zu kämpfen.")
say("Viel spass beim duelieren.")
end
when kill with npc.is_pc() begin
local settings = pvp.pvp_settings()
if pc.get_map_index() == settings.pvp_map_index then
say("Du hast 50.000 Erfahrung erhalten.")
pc.give_exp2(settings.pvp_exp_reward)
game.set_event_flag("mapi", game.get_event_flag("mapi")+1)
if game.get_event_flag("mapi") >= 4 then
notice_all(string.format("%s hat gerade das Turnier gewonnen!", pc.get_name()))
warp_all_to_village()
end
end
end -- when kill end
when logout or disconnect begin
local settings = pvp.pvp_settings()
if pc.get_map_index() == settings.pvp_map_index then
warp_to_village()
end
end
-- Nur aktivieren wenn "dead" event vorhanden
--when dead begin
-- syschat('Du bist gestorben und somit ausgeschieden.')
-- syschat('Du wirst in 10 Sekunden zurück teleportiert.')
-- timer('warp_back_to_village', 10)
-- end
-- when warp_back_to_village.timer begin
-- warp_to_village()
-- end
end -- state end
end -- quest end
|
|
|
04/08/2020, 16:31
|
#12628
|
elite*gold: 0
Join Date: Mar 2016
Posts: 43
Received Thanks: 15
|
Quote:
Originally Posted by .Karuzo
@
Code:
quest regenbogenstein begin
state start begin
function BuildPerfectMasterSkillList(job, group)
GRAND_MASTER_SKILL_LEVEL = 20
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}
end
when 50512.use begin
local count = pc.count_item(50512)
pc.setqf("regen_count", count)
if pc.get_skill_group() == 0 then
say("Du hast noch keine Fertigkeiten.")
say("Versuche es später erneut.")
return
end
local result = regenbogenstein.BuildPerfectMasterSkillList(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("Du hast keine Meister-Fertigkeiten.")
return
end
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]
say_title(""..pc.get_name().." : Fortsetzung deines Trainings?")
say("Möchtest du "..skill_name.."")
say("auf Perfekt Meister Trainieren?")
say("")
say("Du verlierst dadurch Rangpunkte.")
say("")
say_reward("Das Training kostet - 20.000 Rangpunkte!")
if select("Ja", "Nein") == 2 then return end
if pc.count_item(50512) < pc.getqf("regen_count") then
return syschat('Buguser bekommen keine Pskills!')
elseif pc.get_alignment() < 0 then
return syschat('Du benötigst mindestens 0 Rangpunkte.')
end
say(string.format(" %s wurde auf Perfekten Meister Trainiert!", skill_name))
say_reward("Du hast nun - 20.000 Rangpunke![ENTER]")
pc.remove_item(50512)
pc.change_alignment(-20000)
pc.set_skill_level(skill_vnum, 59)
end
end
end
____________________________________
@
Liegt nicht an der Quest sondern Source funktion.
Suche in deinem Server src nach "request_make_guild".
Dort solltest du die Level Voraussetzung für eine Gilde anpassen können.
_____________________________________
@
Hier passende Funktion:
Code:
quest pvp begin
state start begin
function pvp_settings()
return
{
['pvp_map_index'] = 121,
['pvp_exp_reward'] = 50000,
}
end
when login or levelup with pc.get_level() > 14 begin
set_state(information)
end
end
state information begin
when letter begin
send_letter("Battle Royal")
end
when button or info begin
say_title("Guten Tag tapferer Krieger du hast nun lvl 15 erreicht und bist bereit um zu kämpfen.")
say("Viel spass beim duelieren.")
end
when kill with npc.is_pc() begin
local settings = pvp.pvp_settings()
if pc.get_map_index() == settings.pvp_map_index then
say("Du hast 50.000 Erfahrung erhalten.")
pc.give_exp2(settings.pvp_exp_reward)
game.set_event_flag("mapi", game.get_event_flag("mapi")+1)
if game.get_event_flag("mapi") >= 4 then
notice_all(string.format("%s hat gerade das Turnier gewonnen!", pc.get_name()))
warp_all_to_village()
end
end
end -- when kill end
when logout or disconnect begin
local settings = pvp.pvp_settings()
if pc.get_map_index() == settings.pvp_map_index then
warp_to_village()
end
end
-- Nur aktivieren wenn "dead" event vorhanden
--when dead begin
-- syschat('Du bist gestorben und somit ausgeschieden.')
-- syschat('Du wirst in 10 Sekunden zurück teleportiert.')
-- timer('warp_back_to_village', 10)
-- end
-- when warp_back_to_village.timer begin
-- warp_to_village()
-- end
end -- state end
end -- quest end
|
Könntest du Discord mal vorbei kommen?
Wäre mies korrekt
|
|
|
04/13/2020, 21:05
|
#12629
|
elite*gold: 0
Join Date: Jul 2016
Posts: 1
Received Thanks: 0
|
Select führt keinen neuen Dialog aus
Guten Tag bin neu im Questen und habe einen fehler in meinem Beispiel, könnte mir jemand sagen, wieso nach Buttonklick kein weiterer Dialog kommt und das bild sich "aufhängt". Danke im vorraus
PHP Code:
quest xxx begin state start begin when login with pc.getqf("firstlogin") == 0 begin notice_all("Wir begrüßen "..pc.get_name().." auf xx") say_red("xxx, "..pc.get_name().." .") say_white("xx") say_white("xxx") say_white("xxx") local auswahl=select("Weiter reden","Schließen") if auswahl==1 then say("xxx") elseif auswahl==2 then say("xxx") return end end end end
|
|
|
04/15/2020, 12:35
|
#12630
|
elite*gold: 313
Join Date: Apr 2013
Posts: 585
Received Thanks: 122
|
Quote:
Originally Posted by FrenchToast99
Guten Tag bin neu im Questen und habe einen fehler in meinem Beispiel, könnte mir jemand sagen, wieso nach Buttonklick kein weiterer Dialog kommt und das bild sich "aufhängt". Danke im vorraus
PHP Code:
quest xxx begin state start begin when login with pc.getqf("firstlogin") == 0 begin notice_all("Wir begrüßen "..pc.get_name().." auf xx") say_red("xxx, "..pc.get_name().." .") say_white("xx") say_white("xxx") say_white("xxx") local auswahl=select("Weiter reden","Schließen") if auswahl==1 then say("xxx") elseif auswahl==2 then say("xxx") return end end end end
|
PHP Code:
quest xxx begin state start begin when login with pc.getqf("firstlogin") == 0 begin notice_all("Wir begrüßen "..pc.get_name().." auf xx") say_red("xxx, "..pc.get_name().." .") say_white("xx") say_white("xxx") say_white("xxx") local auswahl = select("Weiter reden","Schließen") if 1 == auswahl then say("xxx") elseif 2 == auswahl then say("xxx") end end end end
Das Return brauchst du dort nicht, was genau meinst du mit weiterem Dialog? Das er xxx sagen soll?
Vergiss nicht nach Abschluss die questflag auf 1 zu setzen [ pc.setqf("firstlogin", 1) ] sonst wiederholt sich die Quest
|
|
|
All times are GMT +2. The time now is 01:05.
|
|