|
You last visited: Today at 08:08
Advertisement
[SERVICE] Die Questkontrolle
Discussion on [SERVICE] Die Questkontrolle within the Metin2 Private Server forum part of the Metin2 category.
11/06/2015, 12:49
|
#11956
|
elite*gold: 0
Join Date: Sep 2014
Posts: 58
Received Thanks: 4
|
Hey EPvP,
Ich habe gerade eben eine Quest geschrieben und laut dem Compiler funktioniert auch alles, nur sie funktioniert ingame nicht.
Wäre nett, wenn ihr mir helfen könnt.
Code:
quest dragonball begin
state start begin
when login or levelup with pc.level > 79 begin
set_state(dragonball1)
end
end
state dragonball1 begin
when 2493.kill begin
pc.give_item2("1000100")
notice("Du hast den ersten von sieben Dragonballs gefunden")
notice("Töte 6 weitere Male den Drachen um alle Dragonballs")
notice("zu erlangen.")
set_state(dragonball2)
end
end
state dragonball2 begin
when 2493.kill begin
pc.give_item2("1000200")
notice("Du hast den zweiten von sieben Dragonballs gefunden")
notice("Töte 5 weitere Male den Drachen um alle Dragonballs")
notice("zu erlangen.")
set_state(dragonball3)
end
end
state dragonball3 begin
when 2493.kill begin
pc.give_item2("1000300")
notice("Du hast den dritten von sieben Dragonballs gefunden")
notice("Töte 4 weitere Male den Drachen um alle Dragonballs")
notice("zu erlangen.")
set_state(dragonball4)
end
end
state dragonball4 begin
when 2493.kill begin
pc.give_item2("1000400")
notice("Du hast den vierten von sieben Dragonballs gefunden")
notice("Töte 3 weitere Male den Drachen um alle Dragonballs")
notice("zu erlangen.")
set_state(dragonball5)
end
end
state dragonball5 begin
when 2493.kill begin
pc.give_item2("1000500")
notice("Du hast den fünften von sieben Dragonballs gefunden")
notice("Töte 2 weitere Male den Drachen um alle Dragonballs")
notice("zu erlangen.")
set_state(dragonball6)
end
end
state dragonball6 begin
when 2493.kill begin
pc.give_item2("1000600")
notice("Du hast den sechsten von sieben Dragonballs gefunden")
notice("Töte 1 weiteres Mal den Drachen um alle Dragonballs")
notice("zu erlangen.")
set_state(dragonball7)
end
end
state dragonball7 begin
when 2493.kill begin
pc.give_item2("1000700")
notice("Du hast alle sieben Dragonballs gefungen")
notice("Gehe nun zu Heuk-Young um eine Belohnung")
notice("zu erlangen.")
set_state(complete)
end
end
state complete begin
end
end
|
|
|
11/06/2015, 13:03
|
#11957
|
elite*gold: 83
Join Date: Nov 2013
Posts: 2,891
Received Thanks: 2,764
|
Quote:
Originally Posted by MinaaToEU
Hey EPvP,
Ich habe gerade eben eine Quest geschrieben und laut dem Compiler funktioniert auch alles, nur sie funktioniert ingame nicht.
Wäre nett, wenn ihr mir helfen könnt.
Code:
quest dragonball begin
state start begin
when login or levelup with pc.level > 79 begin
set_state(dragonball1)
end
end
state dragonball1 begin
when 2493.kill begin
pc.give_item2("1000100")
notice("Du hast den ersten von sieben Dragonballs gefunden")
notice("Töte 6 weitere Male den Drachen um alle Dragonballs")
notice("zu erlangen.")
set_state(dragonball2)
end
end
state dragonball2 begin
when 2493.kill begin
pc.give_item2("1000200")
notice("Du hast den zweiten von sieben Dragonballs gefunden")
notice("Töte 5 weitere Male den Drachen um alle Dragonballs")
notice("zu erlangen.")
set_state(dragonball3)
end
end
state dragonball3 begin
when 2493.kill begin
pc.give_item2("1000300")
notice("Du hast den dritten von sieben Dragonballs gefunden")
notice("Töte 4 weitere Male den Drachen um alle Dragonballs")
notice("zu erlangen.")
set_state(dragonball4)
end
end
state dragonball4 begin
when 2493.kill begin
pc.give_item2("1000400")
notice("Du hast den vierten von sieben Dragonballs gefunden")
notice("Töte 3 weitere Male den Drachen um alle Dragonballs")
notice("zu erlangen.")
set_state(dragonball5)
end
end
state dragonball5 begin
when 2493.kill begin
pc.give_item2("1000500")
notice("Du hast den fünften von sieben Dragonballs gefunden")
notice("Töte 2 weitere Male den Drachen um alle Dragonballs")
notice("zu erlangen.")
set_state(dragonball6)
end
end
state dragonball6 begin
when 2493.kill begin
pc.give_item2("1000600")
notice("Du hast den sechsten von sieben Dragonballs gefunden")
notice("Töte 1 weiteres Mal den Drachen um alle Dragonballs")
notice("zu erlangen.")
set_state(dragonball7)
end
end
state dragonball7 begin
when 2493.kill begin
pc.give_item2("1000700")
notice("Du hast alle sieben Dragonballs gefungen")
notice("Gehe nun zu Heuk-Young um eine Belohnung")
notice("zu erlangen.")
set_state(complete)
end
end
state complete begin
end
end
|
vnums zu lang, ausserdem sollten die vnums als number und nicht als string übergeben werden
|
|
|
11/06/2015, 14:34
|
#11958
|
elite*gold: 0
Join Date: Sep 2014
Posts: 58
Received Thanks: 4
|
Quote:
Originally Posted by Seחsi
vnums zu lang, ausserdem sollten die vnums als number und nicht als string übergeben werden
|
Das Prolbem ist ja dass auch das notice nicht funktioniert ingame. einfach nichts
|
|
|
11/06/2015, 15:20
|
#11959
|
elite*gold: 83
Join Date: Nov 2013
Posts: 2,891
Received Thanks: 2,764
|
Quote:
Originally Posted by MinaaToEU
Das Prolbem ist ja dass auch das notice nicht funktioniert ingame. einfach nichts
|
liegt daran, dass pc.give_item2 nicht korrekt ausgeführt wird (weswegen hab ich dir ja geschrieben). An der Stelle bricht es dann ab.
|
|
|
11/06/2015, 15:40
|
#11960
|
elite*gold: 0
Join Date: Sep 2014
Posts: 58
Received Thanks: 4
|
Quote:
Originally Posted by Seחsi
liegt daran, dass pc.give_item2 nicht korrekt ausgeführt wird (weswegen hab ich dir ja geschrieben). An der Stelle bricht es dann ab.
|
Habs jetzt mal einfach mit Gifti+9 getestet. Das Problem besteht weiterhin.
Ich habe es auch mit anderen Mobs ausprobiert, aber es funktioniert einfach nicht.
Code:
quest dragonball begin
state start begin
when login or levelup with pc.level > 79 begin
set_state(dragonball1)
end
end
state dragonball1 begin
when 2493.kill begin
pc.give_item2(189)
notice("Du hast den ersten von sieben Dragonballs gefunden.")
notice("Töte 6 weitere Male den Drachen um alle Dragonballs")
notice("zu erlangen.")
set_state(dragonball2)
end
end
state dragonball2 begin
when 2493.kill begin
pc.give_item2(189)
notice("Du hast den zweiten von sieben Dragonballs gefunden.")
notice("Töte 5 weitere Male den Drachen um alle Dragonballs")
notice("zu erlangen.")
set_state(dragonball3)
end
end
state dragonball3 begin
when 2493.kill begin
pc.give_item2(189)
notice("Du hast den dritten von sieben Dragonballs gefunden.")
notice("Töte 4 weitere Male den Drachen um alle Dragonballs")
notice("zu erlangen.")
set_state(dragonball4)
end
end
state dragonball4 begin
when 2493.kill begin
pc.give_item2(189)
notice("Du hast den vierten von sieben Dragonballs gefunden.")
notice("Töte 3 weitere Male den Drachen um alle Dragonballs")
notice("zu erlangen.")
set_state(dragonball5)
end
end
state dragonball5 begin
when 2493.kill begin
pc.give_item2(189)
notice("Du hast den fünften von sieben Dragonballs gefunden.")
notice("Töte 2 weitere Male den Drachen um alle Dragonballs")
notice("zu erlangen.")
set_state(dragonball6)
end
end
state dragonball6 begin
when 2493.kill begin
pc.give_item2(189)
notice("Du hast den sechsten von sieben Dragonballs gefunden.")
notice("Töte 1 weiteres Mal den Drachen um alle Dragonballs")
notice("zu erlangen.")
set_state(dragonball7)
end
end
state dragonball7 begin
when 2493.kill begin
pc.give_item2(189)
notice("Du hast alle sieben Dragonballs gefungen")
notice("Gehe nun zu Heuk-Young um eine Belohnung")
notice("zu erlangen.")
set_state(complete)
end
end
state complete begin
end
end
|
|
|
11/06/2015, 19:24
|
#11961
|
elite*gold: 0
Join Date: May 2010
Posts: 294
Received Thanks: 157
|
dann solltest du die npc.get_race() benutzen
also
when kill begin
if npc.get_race() == 1234 then
|
|
|
11/07/2015, 17:10
|
#11962
|
elite*gold: 0
Join Date: Jun 2012
Posts: 141
Received Thanks: 12
|
Kann mir bitte einer den Fehler rausbauen? komme nicht dahinter was da falsch ist. Danke
Quote:
quest gm_tool begin
state start begin
when 80002.use begin
if not pc.is_gm() then
say("Du hast nicht die dazu nötige Berechtigung")
item.remove()
return
end
gmtool.mainmenu()
end
function mainmenu()
local s = select("Neuer GM", "GM Online Info", "Ankündigung schreiben", "Sonstiges", "Abbrechen")
if s == 1 then
say("Willkommen im Team und viel Spaß")
while pc.get_level() < 150 do
pc.give_exp2(pc.get_next_exp()-pc.get_exp())
end
pc.change_alignment(20000)
pc.change_gold(1999888777-pc.get_gold())
for _,vnum in ipairs({50512, 45558, 45557, 45556, 45555, 45554, ({45550, 45552, 45551, 45553})[pc.get_job()+1], ({11971, 11972, 11973, 11974})[pc.get_job()+1]}) do
pc.give_item2(vnum)
end
if gmtool.to_mainmenu() then
gmtool.mainmenu()
end
return
elseif s == 2 then
notice_all(pc.get_name().." ist Online! Er/Sie ist nun für Eure Fragen verfügbar.")
if gmtool.to_mainmenu() then
gmtool.mainmenu()
end
return
elseif s == 3 then
gmtool.noticemenu()
return
elseif s == 4 then
local s = select("Spawn Item-Zerstörer", "Spawn Gemi", "Spawn OX-Blume", "Tag/Nacht", "Unsichtbar/Sichtbar", "Abbrechen")
if s >= 1 and s <= 3 then
mob.spawn(({20363, 9003, 20358})[s], pc.get_local_x(), pc.get_local_y(), 10)
if gmtool.to_mainmenu() then
gmtool.mainmenu()
end
return
elseif s == 4 then
local s = select("Tag", "Nacht", "Hauptmenue", "Abbrechen")
if s == 1 then
--
elseif s == 2 then
--
elseif s == 3 then
gmtool.mainmenu()
return
else
return
end
elseif s == 5 then
--
if gmtool.to_mainmenu() then
gmtool.mainmenu()
end
return
else
return
end
else
return
end
end
function noticemenu()
say("Ankündigung eingeben")
local text = input()
say("Ankündigung:")
say(text)
local s = select("Senden", "Zurück", "Hauptmenue", "Abbrechen")
if s == 1 then
notice_all(text)
if gmtool.to_mainmenu() then
gmtool.mainmenu()
end
return
elseif s == 2 then
gmtool.noticemenu()
return
elseif s == 3 then
gmtool.mainmenu()
return
else
return
end
end
function to_mainmenu()
return select("Hauptmenue", "Abbrechen") == 1
end
end
end
|
|
|
|
11/07/2015, 18:41
|
#11963
|
elite*gold: 0
Join Date: May 2010
Posts: 294
Received Thanks: 157
|
Quote:
Originally Posted by TommyH99
Kann mir bitte einer den Fehler rausbauen? komme nicht dahinter was da falsch ist. Danke
|
cool währe es wenn du sagst was denn ncith funktioniert oder ob es eine fehlermeldung gibt und wenn du das ganze als php code postest
du musst wenn du in einer quest functionen aufrufst dieses genauso nenn wie die quest
also
bei
PHP Code:
quest gm_tool begin
musst du die funktion
PHP Code:
function mainmenu()
mit
PHP Code:
gm_tool.mainmenu()
aufrufen und nicht
PHP Code:
gmtool.mainmenu()
weil es einfacher ist habe ich nur die quest umbenannt
PHP Code:
quest gmtool begin state start begin when 80002.use begin if not pc.is_gm() then say("Du hast nicht die dazu nötige Berechtigung") item.remove() return end gmtool.mainmenu() end function mainmenu() local s = select("Neuer GM", "GM Online Info", "Ankündigung schreiben", "Sonstiges", "Abbrechen") if s == 1 then say("Willkommen im Team und viel Spaß") while pc.get_level() < 150 do pc.give_exp2(pc.get_next_exp()-pc.get_exp()) end pc.change_alignment(20000) pc.change_gold(1999888777-pc.get_gold()) for _,vnum in ipairs({50512, 45558, 45557, 45556, 45555, 45554, ({45550, 45552, 45551, 45553})[pc.get_job()+1], ({11971, 11972, 11973, 11974})[pc.get_job()+1]}) do pc.give_item2(vnum) end if gmtool.to_mainmenu() then gmtool.mainmenu() end return elseif s == 2 then notice_all(pc.get_name().." ist Online! Er/Sie ist nun für Eure Fragen verfügbar.") if gmtool.to_mainmenu() then gmtool.mainmenu() end return elseif s == 3 then gmtool.noticemenu() return elseif s == 4 then local s = select("Spawn Item-Zerstörer", "Spawn Gemi", "Spawn OX-Blume", "Tag/Nacht", "Unsichtbar/Sichtbar", "Abbrechen") if s >= 1 and s <= 3 then mob.spawn(({20363, 9003, 20358})[s], pc.get_local_x(), pc.get_local_y(), 10) if gmtool.to_mainmenu() then gmtool.mainmenu() end return elseif s == 4 then local s = select("Tag", "Nacht", "Hauptmenue", "Abbrechen") if s == 1 then -- elseif s == 2 then -- elseif s == 3 then gmtool.mainmenu() return else return end elseif s == 5 then -- if gmtool.to_mainmenu() then gmtool.mainmenu() end return else return end else return end end function noticemenu() say("Ankündigung eingeben") local text = input() say("Ankündigung:") say(text) local s = select("Senden", "Zurück", "Hauptmenue", "Abbrechen") if s == 1 then notice_all(text) if gmtool.to_mainmenu() then gmtool.mainmenu() end return elseif s == 2 then gmtool.noticemenu() return elseif s == 3 then gmtool.mainmenu() return else return end end function to_mainmenu() return select("Hauptmenue", "Abbrechen") == 1 end end end
viel hübscher oder?
|
|
|
11/08/2015, 15:40
|
#11964
|
elite*gold: 76
Join Date: Mar 2015
Posts: 698
Received Thanks: 245
|
Hallo,
ich habe eine quest etwas umgeschrieben, dass die Ab level 5 erscheint und man sich direkt die fertigkeiten auswählen kann. Jedoch funktioniert das ganze nicht so wie es soll.
Die Quest:
Code:
quest ryu32zaki begin
state start begin
when levelup with pc.get_level() == 5 begin
say_title("Die Ausbildung:")
say("Da du das Level 5 erreicht hast, kannst du")
say("dir jetzt deine Fertigkeiten holen")
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 ,0)
pc.set_skill_level(2 ,0)
pc.set_skill_level(3 ,0)
pc.set_skill_level(4 ,0)
pc.set_skill_level(5 ,0)
chat("Du hast 4 Fertigkeitspunkte erhalten.")
end
if s==2 then
pc.set_skill_group(2)
pc.set_skill_level(16 ,0)
pc.set_skill_level(17 ,0)
pc.set_skill_level(18 ,0)
pc.set_skill_level(19 ,0)
pc.set_skill_level(20 ,0)
chat("Du hast 4 Fertigkeitspunkte erhalten.")
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 ,0)
pc.set_skill_level(32 ,0)
pc.set_skill_level(33 ,0)
pc.set_skill_level(34 ,0)
pc.set_skill_level(35 ,0)
chat("Du hast 4 Fertigkeitspunkte erhalten.")
end
if s==2 then
pc.set_skill_group(4)
pc.set_skill_level(46 ,0)
pc.set_skill_level(47 ,0)
pc.set_skill_level(48 ,0)
pc.set_skill_level(49 ,0)
pc.set_skill_level(50 ,0)
chat("Du hast 4 Fertigkeitspunkte erhalten.")
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 ,0)
pc.set_skill_level(77 ,0)
pc.set_skill_level(78 ,0)
pc.set_skill_level(79 ,0)
pc.set_skill_level(80 ,0)
pc.set_skill_level(81 ,0)
chat("Du hast 4 Fertigkeitspunkte erhalten.")
end
if s==2 then
pc.set_skill_group(6)
pc.set_skill_level(61 ,0)
pc.set_skill_level(62 ,0)
pc.set_skill_level(63 ,0)
pc.set_skill_level(64 ,0)
pc.set_skill_level(65 ,0)
pc.set_skill_level(66 ,0)
chat("Du hast 4 Fertigkeitspunkte erhalten.")
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 ,0)
pc.set_skill_level(107 ,0)
pc.set_skill_level(108 ,0)
pc.set_skill_level(109 ,0)
pc.set_skill_level(110 ,0)
pc.set_skill_level(111 ,0)
chat("Du hast 4 Fertigkeitspunkte erhalten.")
end
if s==2 then
pc.set_skill_group(8)
pc.set_skill_level(91 ,0)
pc.set_skill_level(92 ,0)
pc.set_skill_level(93 ,0)
pc.set_skill_level(94 ,0)
pc.set_skill_level(95 ,0)
pc.set_skill_level(96 ,0)
chat("Du hast 4 Fertigkeitspunkte erhalten.")
end
end
end
end
end
Die quest funktioniert bis zum punkt wo man die lehre auswählt, danach bekommt man trzd. die lehre nicht.
|
|
|
11/08/2015, 16:15
|
#11965
|
elite*gold: 83
Join Date: Nov 2013
Posts: 2,891
Received Thanks: 2,764
|
Quote:
Originally Posted by Core ツ
Hallo,
ich habe eine quest etwas umgeschrieben, dass die Ab level 5 erscheint und man sich direkt die fertigkeiten auswählen kann. Jedoch funktioniert das ganze nicht so wie es soll.
Die Quest:
Code:
quest ryu32zaki begin
state start begin
when levelup with pc.get_level() == 5 begin
say_title("Die Ausbildung:")
say("Da du das Level 5 erreicht hast, kannst du")
say("dir jetzt deine Fertigkeiten holen")
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 ,0)
pc.set_skill_level(2 ,0)
pc.set_skill_level(3 ,0)
pc.set_skill_level(4 ,0)
pc.set_skill_level(5 ,0)
chat("Du hast 4 Fertigkeitspunkte erhalten.")
end
if s==2 then
pc.set_skill_group(2)
pc.set_skill_level(16 ,0)
pc.set_skill_level(17 ,0)
pc.set_skill_level(18 ,0)
pc.set_skill_level(19 ,0)
pc.set_skill_level(20 ,0)
chat("Du hast 4 Fertigkeitspunkte erhalten.")
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 ,0)
pc.set_skill_level(32 ,0)
pc.set_skill_level(33 ,0)
pc.set_skill_level(34 ,0)
pc.set_skill_level(35 ,0)
chat("Du hast 4 Fertigkeitspunkte erhalten.")
end
if s==2 then
pc.set_skill_group(4)
pc.set_skill_level(46 ,0)
pc.set_skill_level(47 ,0)
pc.set_skill_level(48 ,0)
pc.set_skill_level(49 ,0)
pc.set_skill_level(50 ,0)
chat("Du hast 4 Fertigkeitspunkte erhalten.")
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 ,0)
pc.set_skill_level(77 ,0)
pc.set_skill_level(78 ,0)
pc.set_skill_level(79 ,0)
pc.set_skill_level(80 ,0)
pc.set_skill_level(81 ,0)
chat("Du hast 4 Fertigkeitspunkte erhalten.")
end
if s==2 then
pc.set_skill_group(6)
pc.set_skill_level(61 ,0)
pc.set_skill_level(62 ,0)
pc.set_skill_level(63 ,0)
pc.set_skill_level(64 ,0)
pc.set_skill_level(65 ,0)
pc.set_skill_level(66 ,0)
chat("Du hast 4 Fertigkeitspunkte erhalten.")
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 ,0)
pc.set_skill_level(107 ,0)
pc.set_skill_level(108 ,0)
pc.set_skill_level(109 ,0)
pc.set_skill_level(110 ,0)
pc.set_skill_level(111 ,0)
chat("Du hast 4 Fertigkeitspunkte erhalten.")
end
if s==2 then
pc.set_skill_group(8)
pc.set_skill_level(91 ,0)
pc.set_skill_level(92 ,0)
pc.set_skill_level(93 ,0)
pc.set_skill_level(94 ,0)
pc.set_skill_level(95 ,0)
pc.set_skill_level(96 ,0)
chat("Du hast 4 Fertigkeitspunkte erhalten.")
end
end
end
end
end
Die quest funktioniert bis zum punkt wo man die lehre auswählt, danach bekommt man trzd. die lehre nicht.
|
Code:
quest ryu32zaki begin
state start begin
when levelup with pc.get_level() == 5 begin
send_letter("Lehre wählen")
ryu32zaki.letter()
end
when login or enter with pc.get_level() >= 5 begin
send_letter("Lehre wählen")
end
when button or info with pc.get_level() >= 5 begin
ryu32zaki.letter()
end
function letter()
local __chat = chat
local function chat(str, ...)
__chat(string.format(str, unpack(arg)))
end
local skillgroups = ({
[0] = {"Körper", "Mental"},
[1] = {"Nahkampf", "Fernkampf"},
[2] = {"Magie", "Waffe"},
[3] = {"Heilung", "Drache"}
})[pc.get_job()]
table.insert(skillgroups, "Später wählen")
say_title("Die Ausbildung:")
say("Da du das Level 5 erreicht hast, kannst du")
say("dir jetzt deine Fertigkeiten holen")
say("Wähle deine Lehre aus")
local skillgroup = ({1, 2})[select_table(skillgroups)]
if not skillgroup then return end
pc.set_skill_group(skillgroup)
chat("Du hast %d Fertigkeitspunkte erhalten.", pc.get_level() - 1)
set_state("__COMPLETE__")
end
end
state __COMPLETE__ begin
when login with pc.get_skill_group() == 0 begin
set_state("start")
end
end
end
|
|
|
11/10/2015, 17:11
|
#11966
|
elite*gold: 76
Join Date: Mar 2015
Posts: 698
Received Thanks: 245
|
Quote:
Originally Posted by Seחsi
Code:
quest ryu32zaki begin
state start begin
when levelup with pc.get_level() == 5 begin
send_letter("Lehre wählen")
ryu32zaki.letter()
end
when login or enter with pc.get_level() >= 5 begin
send_letter("Lehre wählen")
end
when button or info with pc.get_level() >= 5 begin
ryu32zaki.letter()
end
function letter()
local __chat = chat
local function chat(str, ...)
__chat(string.format(str, unpack(arg)))
end
local skillgroups = ({
[0] = {"Körper", "Mental"},
[1] = {"Nahkampf", "Fernkampf"},
[2] = {"Magie", "Waffe"},
[3] = {"Heilung", "Drache"}
})[pc.get_job()]
table.insert(skillgroups, "Später wählen")
say_title("Die Ausbildung:")
say("Da du das Level 5 erreicht hast, kannst du")
say("dir jetzt deine Fertigkeiten holen")
say("Wähle deine Lehre aus")
local skillgroup = ({1, 2})[select_table(skillgroups)]
if not skillgroup then return end
pc.set_skill_group(skillgroup)
chat("Du hast %d Fertigkeitspunkte erhalten.", pc.get_level() - 1)
set_state("__COMPLETE__")
end
end
state __COMPLETE__ begin
when login with pc.get_skill_group() == 0 begin
set_state("start")
end
end
end
|
Hey,
erstmal danke für die quest.
Jedoch hab ich ne kleine frage.
ist es möglich das man die fertigkeiten auch ohne relog direkt bekommt.
So wie es bis jetzt war:
Lvl 5 erreicht-> Fertigkeiten geholt-> Erst nach relog konnte man fertigkeitspunkte verteilen.
Lg
|
|
|
11/10/2015, 17:24
|
#11967
|
elite*gold: 83
Join Date: Nov 2013
Posts: 2,891
Received Thanks: 2,764
|
Quote:
Originally Posted by Core ツ
Hey,
erstmal danke für die quest.
Jedoch hab ich ne kleine frage.
ist es möglich das man die fertigkeiten auch ohne relog direkt bekommt.
So wie es bis jetzt war:
Lvl 5 erreicht-> Fertigkeiten geholt-> Erst nach relog konnte man fertigkeitspunkte verteilen.
Lg
|
Glaube es reicht aufs Pferd zu steigen, könntest also in der quest einmal den Spieler kurz aufs Pferd setzen
|
|
|
11/10/2015, 18:16
|
#11968
|
elite*gold: 76
Join Date: Mar 2015
Posts: 698
Received Thanks: 245
|
Okey danke werde ich versuchen.
|
|
|
11/12/2015, 11:11
|
#11969
|
elite*gold: 727
Join Date: Feb 2012
Posts: 1,206
Received Thanks: 303
|
Habe 2 Quests welche einen Fehler haben:
1. Quest - Regenbogenstein
Wenn ich die die Quests aktualisieren will, dann kommt "must start with 'quest'"
Code:
quest regenbogenstein begin
state start begin
when 50512.use begin
say_title("Regenbogenstein:")
say("Du möchtest also deine Skills auf")
say("Perfekter-Meister setzen?")
if pc.job ==0 then
say("Wäe deine Lehre aus")
local s=select("Körper","Mental")
if s==1 then
--Körper
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)
say("Deine Skills sind auf Perfekter Meister")
end
if s==2 then
--Mentalo
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)
say("Deine Skills sind auf Perfekter Meister")
end
elseif pc.job ==1 then
say("Wähle deine Lehre aus")
local s=select("Nahkampf","Bogen")
if s==1 then
--Nahkampf
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)
say("Deine Skills sind auf Perfekter Meister")
end
if s==2 then
--Fernkampf
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)
say("Deine Skills sind auf Perfekter Meister")
end
elseif pc.job ==2 then
say("Wähle deine Lehre aus")
local s=select("Magie","Waffe")
if s==1 then
--Magie
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)
say("Deine Skills sind auf Perfekter Meister")
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)
say("Deine Skills sind auf Perfekter Meister")
end
elseif pc.job ==3 then
say("Wähle deine Lehre aus")
local s=select("Heil","Drachen")
if s==1 then
--Heil
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)
say("Deine Skills sind auf Perfekter Meister")
end
if s==2 then
--Drachen
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)
say("Deine Skills sind auf Perfekter Meister")
pc.remove_item(50512)
end
end
end
end
end
end
2. Quest - Warpring
Hier kann ich mich nur zu den letzten 4 Maps teleportieren, also selectmap3.
Will ich aber z.B. Map1, klicke ich drauf und es passiert garnichts.
Code:
quest warpring begin
state start begin
when 70007.use begin
say_title("Warpring")
say("Wohin möchtest du Teleportiert werden?")
local empire = pc.get_empire()
local selectmap = select("Map1","Map2","Orktal","Wüste","Eisland","Feuerland","Weiter","Abbrechen")
if selectmap == 8 then
return
elseif selectmap == 7 then
say_title("Warpring")
say("Wohin möchtest du Teleportiert werden?")
local selectmap2 = select("Dämonenturm","Geisterwald","Roter Wald","Spinnendungeon","Grotte der Verbannung","Land der Riesen","Weiter","Abbrechen")
if selectmap2 == 8 then
return
elseif selectmap2 == 7 then
say_title("Warpring")
say("Wohin möchtest du Teleportiert werden?")
local selectmap3 = select("Schwarzersand","Dracheninseln","MistWood","Thunder Wüste","Abbrechen")
if selectmap3 == 5 then
return
elseif selectmap3 == 1 then
say_title("Warpring")
say("Wohin möchtest du Teleportiert werden?")
pc.warp(1086900,1655800)
elseif selectmap3 == 2 then
say_title("Warpring")
say("Wohin möchtest du Teleportiert werden?")
pc.warp(1104300,1788500)
elseif selectmap3 == 3 then
say_title("Warpring")
say("Wohin möchtest du Teleportiert werden?")
pc.warp(1226300,1681100)
elseif selectmap3 == 4 then
say_title("Warpring")
say("Wohin möchtest du Teleportiert werden?")
pc.warp(1134500,1654600)
elseif selectmap2 == 1 then
say_title("Warpring")
say("Wohin möchtest du Teleportiert werden?")
pc.warp(590500,110800)
elseif selectmap2 == 2 then
say_title("Warpring")
say("Wohin möchtest du Teleportiert werden?")
local geisterselect = select("Anfang","Ende","Abbrechen")
if geisterselect == 3 then
return
elseif geisterselect == 1 then
pc.warp(290500,5700)
elseif geisterselect == 2 then
pc.warp(286400,44200)
end
elseif selectmap2 == 3 then
say_title("Warpring")
say("Wohin möchtest du Teleportiert werden?")
local roterselect = select("Anfang","Ende","Abbrechen")
if roterselect == 3 then
return
elseif roterselect == 1 then
pc.warp(1119900,70800)
elseif geisterselect == 2 then
pc.warp(1119100,7700)
end
elseif selectmap2 == 4 then
say_title("Warpring")
say("Wohin möchtest du Teleportiert werden?")
pc.warp(91700, 525300)
elseif selectmap2 == 5 then
say_title("Warpring")
say("Wohin möchtest du Teleportiert werden?")
pc.warp(27600, 142700)
elseif selectmap2 == 6 then
say_title("Warpring")
say("Wohin möchtest du Teleportiert werden?")
pc.warp(819200, 716800)
end
elseif selectmap == 1 then
say_title("Warpring")
say("Wohin möchtest du Teleportiert werden?")
local map1select = select("Rotes Reich","Gelbes Reich","Blaues Reich","Abbrechen")
if map1select == 4 then
return
elseif map1select == 1 then
pc.warp(474300, 954800)
elseif map1select == 2 then
pc.warp(63800, 166400)
elseif map1select == 3 then
pc.warp(959900, 269200)
end
elseif selectmap == 2 then
say_title("Warpring")
say("Wohin möchtest du Teleportiert werden?")
local map2select = select("Rotes Reich","Gelbes Reich","Blaues Reich","Abbrechen")
if map2select == 4 then
return
elseif map2select == 1 then
pc.warp(353100, 882900)
elseif map2select == 2 then
pc.warp(145500, 240000)
elseif map2select == 3 then
pc.warp(863900, 246000)
end
elseif selectmap == 3 then
say_title("Warpring")
say("Wohin möchtest du Teleportiert werden?")
local otselect = select("Anfang","Mitte","Abbrechen")
if otselect == 3 then
return
elseif otselect == 1 then
if empire == 1 then
pc.warp(402100, 673900)
elseif empire == 2 then
pc.warp(270400, 739900)
elseif empire == 3 then
pc.warp(321300, 808000)
end
elseif otselect == 2 then
pc.warp(332800, 745600)
end
elseif selectmap == 4 then
say_title("Warpring")
say("Wohin möchtest du Teleportiert werden?")
local wuesteselect = select("Anfang","Mitte","Abbrechen")
if wuesteselect == 3 then
return
elseif wuesteselect == 1 then
if empire == 1 then
pc.warp(217800, 627200)
elseif empire == 2 then
pc.warp(221900, 502700)
elseif empire == 3 then
pc.warp(344000, 502500)
end
elseif wuesteselect == 2 then
pc.warp(296800, 547100)
end
elseif selectmap == 5 then
say_title("Warpring")
say("Wohin möchtest du Teleportiert werden?")
local eisselect = select("Anfang","Mitte","Abbrechen")
if eisselect == 3 then
return
elseif eisselect == 1 then
if empire == 1 then
pc.warp(434200, 290600)
elseif empire == 2 then
pc.warp(375200, 174900)
elseif empire == 3 then
pc.warp(491800, 173600)
end
elseif eisselect == 2 then
pc.warp(436500, 215400)
end
elseif selectmap == 6 then
say_title("Warpring")
say("Wohin möchtest du Teleportiert werden?")
local feuerselect = select("Anfang","Mitte","Abbrechen")
if feuerselect == 3 then
return
elseif feuerselect == 1 then
if empire == 1 then
pc.warp(599400, 756300)
elseif empire == 2 then
pc.warp(597800, 622200)
elseif empire == 3 then
pc.warp(730700, 689800)
end
elseif feuerselect == 2 then
pc.warp(600800, 687100)
end
end
end
end
end
end
Danke schon mal für die Hilfe!
|
|
|
11/12/2015, 12:44
|
#11970
|
elite*gold: 0
Join Date: Sep 2013
Posts: 491
Received Thanks: 675
|
Quote:
Originally Posted by DasPrinzip.
Habe 2 Quests welche einen Fehler haben:
1. Quest - Regenbogenstein
Wenn ich die die Quests aktualisieren will, dann kommt "must start with 'quest'"
Code:
quest regenbogenstein begin
state start begin
when 50512.use begin
say_title("Regenbogenstein:")
say("Du möchtest also deine Skills auf")
say("Perfekter-Meister setzen?")
if pc.job ==0 then
say("Wäe deine Lehre aus")
local s=select("Körper","Mental")
if s==1 then
--Körper
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)
say("Deine Skills sind auf Perfekter Meister")
end
if s==2 then
--Mentalo
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)
say("Deine Skills sind auf Perfekter Meister")
end
elseif pc.job ==1 then
say("Wähle deine Lehre aus")
local s=select("Nahkampf","Bogen")
if s==1 then
--Nahkampf
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)
say("Deine Skills sind auf Perfekter Meister")
end
if s==2 then
--Fernkampf
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)
say("Deine Skills sind auf Perfekter Meister")
end
elseif pc.job ==2 then
say("Wähle deine Lehre aus")
local s=select("Magie","Waffe")
if s==1 then
--Magie
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)
say("Deine Skills sind auf Perfekter Meister")
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)
say("Deine Skills sind auf Perfekter Meister")
end
elseif pc.job ==3 then
say("Wähle deine Lehre aus")
local s=select("Heil","Drachen")
if s==1 then
--Heil
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)
say("Deine Skills sind auf Perfekter Meister")
end
if s==2 then
--Drachen
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)
say("Deine Skills sind auf Perfekter Meister")
pc.remove_item(50512)
end
end
end
end
end
end
2. Quest - Warpring
Hier kann ich mich nur zu den letzten 4 Maps teleportieren, also selectmap3.
Will ich aber z.B. Map1, klicke ich drauf und es passiert garnichts.
Code:
quest warpring begin
state start begin
when 70007.use begin
say_title("Warpring")
say("Wohin möchtest du Teleportiert werden?")
local empire = pc.get_empire()
local selectmap = select("Map1","Map2","Orktal","Wüste","Eisland","Feuerland","Weiter","Abbrechen")
if selectmap == 8 then
return
elseif selectmap == 7 then
say_title("Warpring")
say("Wohin möchtest du Teleportiert werden?")
local selectmap2 = select("Dämonenturm","Geisterwald","Roter Wald","Spinnendungeon","Grotte der Verbannung","Land der Riesen","Weiter","Abbrechen")
if selectmap2 == 8 then
return
elseif selectmap2 == 7 then
say_title("Warpring")
say("Wohin möchtest du Teleportiert werden?")
local selectmap3 = select("Schwarzersand","Dracheninseln","MistWood","Thunder Wüste","Abbrechen")
if selectmap3 == 5 then
return
elseif selectmap3 == 1 then
say_title("Warpring")
say("Wohin möchtest du Teleportiert werden?")
pc.warp(1086900,1655800)
elseif selectmap3 == 2 then
say_title("Warpring")
say("Wohin möchtest du Teleportiert werden?")
pc.warp(1104300,1788500)
elseif selectmap3 == 3 then
say_title("Warpring")
say("Wohin möchtest du Teleportiert werden?")
pc.warp(1226300,1681100)
elseif selectmap3 == 4 then
say_title("Warpring")
say("Wohin möchtest du Teleportiert werden?")
pc.warp(1134500,1654600)
elseif selectmap2 == 1 then
say_title("Warpring")
say("Wohin möchtest du Teleportiert werden?")
pc.warp(590500,110800)
elseif selectmap2 == 2 then
say_title("Warpring")
say("Wohin möchtest du Teleportiert werden?")
local geisterselect = select("Anfang","Ende","Abbrechen")
if geisterselect == 3 then
return
elseif geisterselect == 1 then
pc.warp(290500,5700)
elseif geisterselect == 2 then
pc.warp(286400,44200)
end
elseif selectmap2 == 3 then
say_title("Warpring")
say("Wohin möchtest du Teleportiert werden?")
local roterselect = select("Anfang","Ende","Abbrechen")
if roterselect == 3 then
return
elseif roterselect == 1 then
pc.warp(1119900,70800)
elseif geisterselect == 2 then
pc.warp(1119100,7700)
end
elseif selectmap2 == 4 then
say_title("Warpring")
say("Wohin möchtest du Teleportiert werden?")
pc.warp(91700, 525300)
elseif selectmap2 == 5 then
say_title("Warpring")
say("Wohin möchtest du Teleportiert werden?")
pc.warp(27600, 142700)
elseif selectmap2 == 6 then
say_title("Warpring")
say("Wohin möchtest du Teleportiert werden?")
pc.warp(819200, 716800)
end
elseif selectmap == 1 then
say_title("Warpring")
say("Wohin möchtest du Teleportiert werden?")
local map1select = select("Rotes Reich","Gelbes Reich","Blaues Reich","Abbrechen")
if map1select == 4 then
return
elseif map1select == 1 then
pc.warp(474300, 954800)
elseif map1select == 2 then
pc.warp(63800, 166400)
elseif map1select == 3 then
pc.warp(959900, 269200)
end
elseif selectmap == 2 then
say_title("Warpring")
say("Wohin möchtest du Teleportiert werden?")
local map2select = select("Rotes Reich","Gelbes Reich","Blaues Reich","Abbrechen")
if map2select == 4 then
return
elseif map2select == 1 then
pc.warp(353100, 882900)
elseif map2select == 2 then
pc.warp(145500, 240000)
elseif map2select == 3 then
pc.warp(863900, 246000)
end
elseif selectmap == 3 then
say_title("Warpring")
say("Wohin möchtest du Teleportiert werden?")
local otselect = select("Anfang","Mitte","Abbrechen")
if otselect == 3 then
return
elseif otselect == 1 then
if empire == 1 then
pc.warp(402100, 673900)
elseif empire == 2 then
pc.warp(270400, 739900)
elseif empire == 3 then
pc.warp(321300, 808000)
end
elseif otselect == 2 then
pc.warp(332800, 745600)
end
elseif selectmap == 4 then
say_title("Warpring")
say("Wohin möchtest du Teleportiert werden?")
local wuesteselect = select("Anfang","Mitte","Abbrechen")
if wuesteselect == 3 then
return
elseif wuesteselect == 1 then
if empire == 1 then
pc.warp(217800, 627200)
elseif empire == 2 then
pc.warp(221900, 502700)
elseif empire == 3 then
pc.warp(344000, 502500)
end
elseif wuesteselect == 2 then
pc.warp(296800, 547100)
end
elseif selectmap == 5 then
say_title("Warpring")
say("Wohin möchtest du Teleportiert werden?")
local eisselect = select("Anfang","Mitte","Abbrechen")
if eisselect == 3 then
return
elseif eisselect == 1 then
if empire == 1 then
pc.warp(434200, 290600)
elseif empire == 2 then
pc.warp(375200, 174900)
elseif empire == 3 then
pc.warp(491800, 173600)
end
elseif eisselect == 2 then
pc.warp(436500, 215400)
end
elseif selectmap == 6 then
say_title("Warpring")
say("Wohin möchtest du Teleportiert werden?")
local feuerselect = select("Anfang","Mitte","Abbrechen")
if feuerselect == 3 then
return
elseif feuerselect == 1 then
if empire == 1 then
pc.warp(599400, 756300)
elseif empire == 2 then
pc.warp(597800, 622200)
elseif empire == 3 then
pc.warp(730700, 689800)
end
elseif feuerselect == 2 then
pc.warp(600800, 687100)
end
end
end
end
end
end
Danke schon mal für die Hilfe!
|
Regenbogen (ka ob es so funzt hab lange keine quest mehr geschrieben):
Code:
quest regenbogenstein begin
state start begin
when 50512.use begin
local jobs = {
[0] = {"Körper","Mental",1,2},
[1] = {"Nahkampf","Bogen",3,4},
[2] = {"Magie","Waffen",5,6},
[3] = {"Heil","Drachen",7,8},
}
say_title("Regenbogenstein:")
say("Du möchtest also deine Skills auf")
say("Perfekter-Meister setzen?")
local r = select("Ja","Nein")
if r == 1 then
say("Bitte wähle nun deine Klasse aus:")
local s = select(jobs[pc.get_job()][1],jobs[pc.get_job()][2],"Abbrechen")
if s == 3 then return end
pc.set_skill_group(jobs[pc.get_job()][s+2])
local result = regenbogenstein.BuildGrandMasterSkillList(pc.get_job(), pc.get_skill_group())
local vnum_list = result[1]
for v in pairs(vnum_list) do
pc.set_skill_level(v ,59)
end
say("Deine Skills sind auf Perfekter Meister")
end
end
function BuildGrandMasterSkillList(job, group)
local skill_list = special.active_skill_list[job+1][group]
local ret_vnum_list = {}
local ret_name_list = {}
table.foreach(skill_list,
function(i, skill_vnum)
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)
return {ret_vnum_list, ret_name_list}
end
end
end
|
|
|
All times are GMT +1. The time now is 08:09.
|
|