|
You last visited: Today at 05:46
Advertisement
[SERVICE] Die Questkontrolle
Discussion on [SERVICE] Die Questkontrolle within the Metin2 Private Server forum part of the Metin2 category.
08/29/2013, 12:18
|
#8881
|
elite*gold: 313
Join Date: Apr 2013
Posts: 585
Received Thanks: 122
|
Quote:
Originally Posted by ΞΠ∪Μ
versuch's mal so
PHP Code:
quest new_skill_group begin state start begin when login or levelup with pc.get_level() >= 5 and pc.get_skill_group() == 0 begin timer('new_skill_group',0.5) end when new_skill_group.timer begin cleartimer('new_skill_group') say_title("Lehre auswählen:") local MegaTable={ {'"Körperkampflehre", "Mentalkampflehre"',{4,19}}, {'"Nahkampflehre", "Fernkampflehre"',{31,48}}, {'"Waffenlehre", "Magielehre"',{63,79}}, {'"Drachenlehre", "Heillehre"',{96,107}}, } local lehre = select(loadstring('return '..MegaTable[pc.get_job()+1][1])()) say('Du hast dich für die '..({loadstring('return '..MegaTable[pc.get_job()+1][1])()})[lehre]..' \nentschieden!') say('Es wird dir sofort '..locale.GM_SKILL_NAME_DICT[MegaTable[pc.get_job()+1][2][lehre]]) say('auf perfekten Meister gesetzt.') say('Wird erst sichtbar sobald ein Fertigkeitspunkt') say('verteilt hast.') setskin(NOWINDOW) pc.set_skill_group(lehre) pc.set_skill_level(MegaTable[pc.get_job()+1][2][lehre], 59) end end end
die variable lehre ist immer 1 oder 2 also zb körper oder mental, seine Denkweise war schon richtig.
|
wenne meinst. und wo soll er den Index auslesen für
die variable "lehre" bei seiner Quest..?
|
|
|
08/29/2013, 13:34
|
#8882
|
elite*gold: 0
Join Date: May 2013
Posts: 605
Received Thanks: 580
|
bei mir jetzt in der quest habe ich das mit der tabelle geregelt, es ist dynamischer und Benutzerfreundlicher**HUST** ;D
Wir wir wissen gibt ja die Funktion "select()" zahlen zurück, je nachdem wie viel man zur Auswahl hat und was man von der Auswahl drückt.
Diese Zahlen werden benutzt um die skill_group zu bestimmen, da bei der Auswahl maximal 2 werte beinhalten, ist somit lehre= 1-2 denke aber das ich es recht verständlich erklärt habe, wenn du es noch nicht verstanden hast, sollte ich mir in deiner stelle nochmal die basic's angucken
|
|
|
08/29/2013, 15:03
|
#8883
|
elite*gold: 0
Join Date: Sep 2012
Posts: 591
Received Thanks: 37
|
Code:
quest levelup begin
state start begin
when levelup begin
if pc.get_level() == 75 then
notice_all("".. pc.get_name() .." hat das Level 75 gemeistert")
if pc.get_level() == 100 then
notice_all("".. pc.get_name() .." hat das Level 100 gemeistert")
if pc.get_level() == 125 then
notice_all("".. pc.get_name() .." hat das Level 125 gemeistert")
if pc.get_level() == 150 then
notice_all("".. pc.get_name() .." hat das Level 150 gemeistert")
if pc.get_level() == 175 then
notice_all("".. pc.get_name() .." hat das Level 175 gemeistert")
pc.give_item2(ITEM VNUM)
end
end
end
end
könnte jmd schauen ob dieser code richtig ist
PS: das letzte "pc.give_item2" soll nur ein item dem geben, der lv 175 erreich hat, nicht jeden!
|
|
|
08/29/2013, 15:23
|
#8884
|
elite*gold: 10
Join Date: Jun 2013
Posts: 314
Received Thanks: 24
|
Hallo ne frage gibt es ne quest wenn einer schimpfwörter schreibt das er automatisch Chatblock bekommt für 15 bis 30 min ? wenn ja kann mir einer geben wäre echt nett Bitte
|
|
|
08/29/2013, 16:05
|
#8885
|
elite*gold: 47
Join Date: Feb 2012
Posts: 2,282
Received Thanks: 2,579
|
Nicht möglich, soviel ich weiss. Nur unter Verbindung von Python und Lua. Du müsstest im SendChatPacket Funktion ne Abfrage einbauen, die dann gegebenenfalls die Quest ausführt.
Aber du kannst die Banwords doch unter player.banwords festlegen?
MfG
|
|
|
08/29/2013, 16:23
|
#8886
|
elite*gold: 10
Join Date: Jun 2013
Posts: 314
Received Thanks: 24
|
wie geht das denn ?
|
|
|
08/29/2013, 16:54
|
#8887
|
elite*gold: 0
Join Date: Sep 2012
Posts: 269
Received Thanks: 125
|
Hab kein Problem aber eine Frage, ist es möglich ein Item rauszugeben das direkt schon einen socket type 2 Value hat?
Weil derzeit mache ich es so:
PHP Code:
quest blabla begin state start begin when 9010.take begin say_title("") say() say("Du haben willst Coupon aufladen?") say()
if select("Ja, haben will","Nein ich nigs haben")==2 then return end
say_title("") say() say("Gib die mange ein:") say()
local wert input = tonumber(input())
if wert == "" or " " or nil then chat("Ungültige eingabe!") return end
if pc.get_gold() < wert then say("Zu wenig Yang!") end
item.set_socket(2, wert)
say_title("") say() say("Dein Ticket ist nun "..wert.." Yang mehr wert.") say()
Quest grad nur so in die php Zeilen geklatschst nicht wundern.
Meine Frage jetzt ist, ist es möglich den item.set_socket befehl zu nutzen ohne die .take funktion?
|
|
|
08/29/2013, 20:15
|
#8888
|
elite*gold: 0
Join Date: Mar 2013
Posts: 67
Received Thanks: 3
|
Lvl Ansage quest !
Ja moin,
Ich wollte mal fragen ob irgendwer von euch noch irgendwo eine quest rumgammeln hat die einen beglückwünscht wenn man ein lvl erreicht hat!D.h wenn man von lvl 9 auf lvl 10 kommt das dann geschrieben steht (für ALLE lesbar) das man lvl 10 erreicht hat und Glückwunsch oder so !
meine klappt iwie nicht weil das immer wieder kommt also wenn ich lvl 10 binb kommt das immer wieder wenn ich mich einlogge das soll da nur einmal stehen
danke im vorraus
mfg Verox™
|
|
|
08/29/2013, 20:50
|
#8889
|
elite*gold: 0
Join Date: Sep 2012
Posts: 269
Received Thanks: 125
|
Quote:
Originally Posted by VeRoX ™
Ja moin,
Ich wollte mal fragen ob irgendwer von euch noch irgendwo eine quest rumgammeln hat die einen beglückwünscht wenn man ein lvl erreicht hat!D.h wenn man von lvl 9 auf lvl 10 kommt das dann geschrieben steht (für ALLE lesbar) das man lvl 10 erreicht hat und Glückwunsch oder so !
meine klappt iwie nicht weil das immer wieder kommt also wenn ich lvl 10 binb kommt das immer wieder wenn ich mich einlogge das soll da nur einmal stehen
danke im vorraus
mfg Verox™
|
Hier:
PHP Code:
quest ankündigung begin state start begin when login or levelup with pc.get_level() == 10 and pc.getqf("ankündigung")== 0 begin pc.setqf("ankündigung", 1) notice_all(""..pc.get_name().." hat level "..pc.get_level().." erreicht, Herzlichen Glückwunsch!") end end end
|
|
|
08/29/2013, 21:13
|
#8890
|
elite*gold: 0
Join Date: Mar 2013
Posts: 67
Received Thanks: 3
|
Lvl Ansage
Ja moin zum zweiten mal  ,
hier habe ich eine quest und ich hoffe jemand kann mir das problem sagen denn es klappt alles aber es kommt immer nur die meldung das er lvl 10 geworden ist und nie die anderen wie 30 , 50 ... was ist das prooblem?
quest lvlansage begin
state start begin
when levelup begin
if pc.get_level() >= 10 then
notice_all(""..pc.get_name().." hat gerade")
notice_all("Level 10 erreicht!")
notice_all("Weiter so!")
elseif pc.get_level() >= 30 then
notice_all(""..pc.get_name().." hat gerade")
notice_all("Level 30 erreicht!")
notice_all("Weiter so!")
elseif pc.get_level() >= 50 then
notice_all(""..pc.get_name().." hat gerade")
notice_all("Level 50 erreicht!")
notice_all("Weiter so!")
elseif pc.get_level() >= 75 then
notice_all(""..pc.get_name().." hat gerade")
notice_all("Level 75 erreicht!")
notice_all("Weiter so!")
elseif pc.get_level() >= 90 then
notice_all(""..pc.get_name().." hat gerade")
notice_all("Level 90 erreicht!")
notice_all("Weiter so!")
elseif pc.get_level() >= 100 then
notice_all(""..pc.get_name().." hat gerade")
notice_all("Level 100 erreicht!")
notice_all("Weiter so!")
elseif pc.get_level() >= 120 then
notice_all(""..pc.get_name().." hat gerade")
notice_all("Level 120 erreicht!")
notice_all("Weiter so!")
elseif pc.get_level() >= 135 then
notice_all(""..pc.get_name().." hat gerade")
notice_all("Level 135 erreicht!")
notice_all("Weiter so!")
elseif pc.get_level() >= 150 then
notice_all(""..pc.get_name().." hat gerade")
notice_all("Level 150 erreicht!")
notice_all("Glückwunsch!")
notice_all("Gratuliert ihm!")
notice_all("Er/Sie hat nun das Endlevel erreicht")
notice_all("Gratulation")
end
end
end
end
Bei mir ist alles formatiert
|
|
|
08/29/2013, 21:18
|
#8891
|
elite*gold: 2
Join Date: Jun 2013
Posts: 1,063
Received Thanks: 1,724
|
Quote:
Originally Posted by VeRoX ™
Ja moin zum zweiten mal  ,
hier habe ich eine quest und ich hoffe jemand kann mir das problem sagen denn es klappt alles aber es kommt immer nur die meldung das er lvl 10 geworden ist und nie die anderen wie 30 , 50 ... was ist das prooblem?
quest lvlansage begin
state start begin
when levelup begin
if pc.get_level() >= 10 then
notice_all(""..pc.get_name().." hat gerade")
notice_all("Level 10 erreicht!")
notice_all("Weiter so!")
elseif pc.get_level() >= 30 then
notice_all(""..pc.get_name().." hat gerade")
notice_all("Level 30 erreicht!")
notice_all("Weiter so!")
elseif pc.get_level() >= 50 then
notice_all(""..pc.get_name().." hat gerade")
notice_all("Level 50 erreicht!")
notice_all("Weiter so!")
elseif pc.get_level() >= 75 then
notice_all(""..pc.get_name().." hat gerade")
notice_all("Level 75 erreicht!")
notice_all("Weiter so!")
elseif pc.get_level() >= 90 then
notice_all(""..pc.get_name().." hat gerade")
notice_all("Level 90 erreicht!")
notice_all("Weiter so!")
elseif pc.get_level() >= 100 then
notice_all(""..pc.get_name().." hat gerade")
notice_all("Level 100 erreicht!")
notice_all("Weiter so!")
elseif pc.get_level() >= 120 then
notice_all(""..pc.get_name().." hat gerade")
notice_all("Level 120 erreicht!")
notice_all("Weiter so!")
elseif pc.get_level() >= 135 then
notice_all(""..pc.get_name().." hat gerade")
notice_all("Level 135 erreicht!")
notice_all("Weiter so!")
elseif pc.get_level() >= 150 then
notice_all(""..pc.get_name().." hat gerade")
notice_all("Level 150 erreicht!")
notice_all("Glückwunsch!")
notice_all("Gratuliert ihm!")
notice_all("Er/Sie hat nun das Endlevel erreicht")
notice_all("Gratulation")
end
end
end
end
Bei mir ist alles formatiert
|
PHP Code:
if pc.get_level() >= 10 then
Bedeuted: wenn das level hoeher oder gleich 10 ist.
Deine elesif Abteilung wird nie ausgefuehrt da das erste immer wahr ist!
Bist du level 39 dann ist 39 > 10 also wahr.
In dem Post hast du das was du suchst.
Nimm einfach noch die Login notice raus.
PHP Code:
when login begin...
|
|
|
08/29/2013, 22:09
|
#8892
|
elite*gold: 0
Join Date: Mar 2013
Posts: 67
Received Thanks: 3
|
lvlansage
hey jetz bekomme ich gar nichtsmehr im chat ich habe sie so bearbeitet was ist dran falsch?
quest info begin
state lvlansage begin
when login or levelup begin
local lv = pc.get_level()
if lv != 10 and lv != 30 and lv != 50 and lv != 70 and lv != 90 and lv != 100 and lv != 120 and lv != 130 and lv != 150 then return end
if pc.getqf("anti_bug_info") == lv then return end
notice_all(string.format("%s hat Level %d erreicht!", pc.get_name(), lv))
syschat(string.format("Gratulation!, %s", pc.get_name()))
pc.setqf("anti_bug_info", lv)
if lv == 130 then
set_state(__COMPLETE__)
end
end
end
state __COMPLETE__ begin
end
end
mfg verox
|
|
|
08/29/2013, 22:15
|
#8893
|
elite*gold: 2
Join Date: Jun 2013
Posts: 1,063
Received Thanks: 1,724
|
Quote:
Originally Posted by VeRoX ™
hey jetz bekomme ich gar nichtsmehr im chat ich habe sie so bearbeitet was ist dran falsch?
quest info begin
state lvlansage begin
when login or levelup begin
local lv = pc.get_level()
if lv != 10 and lv != 30 and lv != 50 and lv != 70 and lv != 90 and lv != 100 and lv != 120 and lv != 130 and lv != 150 then return end
if pc.getqf("anti_bug_info") == lv then return end
notice_all(string.format("%s hat Level %d erreicht!", pc.get_name(), lv))
syschat(string.format("Gratulation!, %s", pc.get_name()))
pc.setqf("anti_bug_info", lv)
if lv == 130 then
set_state(__COMPLETE__)
end
end
end
state __COMPLETE__ begin
end
end
mfg verox
|
PHP Code:
state lvlansage begin
zu->
PHP Code:
state start begin
|
|
|
08/29/2013, 22:41
|
#8894
|
elite*gold: 2
Join Date: Nov 2008
Posts: 628
Received Thanks: 1,633
|
Quote:
Originally Posted by ΞΠ∪Μ
versuch's mal so
PHP Code:
quest new_skill_group begin
state start begin
when login or levelup with pc.get_level() >= 5 and pc.get_skill_group() == 0 begin
timer('new_skill_group',0.5)
end
when new_skill_group.timer begin
cleartimer('new_skill_group')
say_title("Lehre auswählen:")
local MegaTable={
{'"Körperkampflehre", "Mentalkampflehre"',{4,19}},
{'"Nahkampflehre", "Fernkampflehre"',{31,48}},
{'"Waffenlehre", "Magielehre"',{63,79}},
{'"Drachenlehre", "Heillehre"',{96,107}},
}
local lehre = select(loadstring('return '..MegaTable[pc.get_job()+1][1])())
say('Du hast dich für die '..({loadstring('return '..MegaTable[pc.get_job()+1][1])()})[lehre]..' \nentschieden!')
say('Es wird dir sofort '..locale.GM_SKILL_NAME_DICT[MegaTable[pc.get_job()+1][2][lehre]])
say('auf perfekten Meister gesetzt.')
say('Wird erst sichtbar sobald ein Fertigkeitspunkt')
say('verteilt hast.')
setskin(NOWINDOW)
pc.set_skill_group(lehre)
pc.set_skill_level(MegaTable[pc.get_job()+1][2][lehre], 59)
end
end
end
die variable lehre ist immer 1 oder 2 also zb körper oder mental, seine Denkweise war schon richtig.
|
Code:
syntax error : [string "start"]:4: `}' expected near `Körperkampflehre'
new_skill_group.quest:24:Error occured on compile new_skill_group.quest
Sieht mir nich so aus als ob da ne } zu viel wäre oder so
|
|
|
08/29/2013, 22:54
|
#8895
|
elite*gold: 0
Join Date: Sep 2012
Posts: 56
Received Thanks: 0
|
Kann nicht in die FarmMap2 teleportieren ist hier irgendwasfalsch bei then 7 ?
PHP 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 2","FarmMap 1","FarmMap2","Abbrechen")
if selectmap2 == 7 then
return
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 roterselect == 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(241300, 1275400)
elseif selectmap2 == 6 then
say_title("Warpring")
say("Wohin möchtest du Teleportiert werden?")
pc.warp(271800,13000)
elseif selectmap2 == 7 then
say_title("Warpring")
say("Wohin möchtest du Teleportiert werden?")
pc.warp(2641300,2694300)
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
|
|
|
All times are GMT +1. The time now is 05:51.
|
|