|
You last visited: Today at 21:48
Advertisement
[SERVICE] Die Questkontrolle
Discussion on [SERVICE] Die Questkontrolle within the Metin2 Private Server forum part of the Metin2 category.
04/21/2015, 16:10
|
#11386
|
elite*gold: 5
Join Date: Mar 2015
Posts: 499
Received Thanks: 376
|
Quote:
Originally Posted by definitely not Sensenmann
Delete from player.quest where dwpid not in(select id from player.player);
3 Fehler in einer Zeile 
|
_ angegeben. Die Query wird doch in Strings getan ? Ob man bei DELETE ein column NICHT angeben darf war mir unbewusst.
|
|
|
04/21/2015, 16:11
|
#11387
|
elite*gold: 0
Join Date: Apr 2009
Posts: 12
Received Thanks: 0
|
Tag miteinander ich habe eine Frage bezüglich eines Quests. Er soll je nach rasse aus einer Truhe die passenden Fb´s ausgeben.
Mein Versuch:
Code:
quest bt begin
state start begin
when 50134.use begin
chat("Du hast " ..item_name(item.vnum).. " geöffnet.")
if pc.job() == 0 then
local b = {
50401, 50402, 50403, 50403, 50404, -- Krieger
50416, 50417, 50418, 50419, 50420}
local rb = number(1, table.getn(b))
pc.give_item2(b[rb], 1)
pc.remove_item(item.vnum)
elseif pc.job() == 1 then
local b == {
50431, 50432, 50433, 50434, 50435, -- NINJA
50446, 50447, 50448, 50449, 50550}
local rb = number(1, table.getn(b))
pc.give_item2(b[rb], 1)
pc.remove_item(item.vnum)
elseif pc.job() == 2 then
local b == {
50461, 50462, 50463, 50464, 50465, 50466, -- SURA
50476, 50477, 50478, 50479, 50480, 50481}
local rb = number(1, table.getn(b))
pc.give_item2(b[rb], 1)
pc.remove_item(item.vnum)
elseif pc.job() == 3 then
local b == {
50491, 50492, 50493, 50494, 50495, 50496, -- SCHAMIE
50506, 50507, 50508, 50509, 50510, 50511}
local rb = number(1, table.getn(b))
pc.give_item2(b[rb], 1)
pc.remove_item(item.vnum)
end
end
end
VB gibt mir die Information das in Zeile 10 nach Start bei der Zeichenfolge "==" ein Fehler ist ich wüsste aber nicht was falsch ist.
Danke schonmal
|
|
|
04/21/2015, 16:26
|
#11388
|
elite*gold: 5
Join Date: Mar 2015
Posts: 499
Received Thanks: 376
|
Quote:
Originally Posted by leas2144
Tag miteinander ich habe eine Frage bezüglich eines Quests. Er soll je nach rasse aus einer Truhe die passenden Fb´s ausgeben.
Mein Versuch:
Code:
quest bt begin
state start begin
when 50134.use begin
chat("Du hast " ..item_name(item.vnum).. " geöffnet.")
if pc.job() == 0 then
local b = {
50401, 50402, 50403, 50403, 50404, -- Krieger
50416, 50417, 50418, 50419, 50420}
local rb = number(1, table.getn(b))
pc.give_item2(b[rb], 1)
pc.remove_item(item.vnum)
elseif pc.job() == 1 then
local b == {
50431, 50432, 50433, 50434, 50435, -- NINJA
50446, 50447, 50448, 50449, 50550}
local rb = number(1, table.getn(b))
pc.give_item2(b[rb], 1)
pc.remove_item(item.vnum)
elseif pc.job() == 2 then
local b == {
50461, 50462, 50463, 50464, 50465, 50466, -- SURA
50476, 50477, 50478, 50479, 50480, 50481}
local rb = number(1, table.getn(b))
pc.give_item2(b[rb], 1)
pc.remove_item(item.vnum)
elseif pc.job() == 3 then
local b == {
50491, 50492, 50493, 50494, 50495, 50496, -- SCHAMIE
50506, 50507, 50508, 50509, 50510, 50511}
local rb = number(1, table.getn(b))
pc.give_item2(b[rb], 1)
pc.remove_item(item.vnum)
end
end
end
VB gibt mir die Information das in Zeile 10 nach Start bei der Zeichenfolge "==" ein Fehler ist ich wüsste aber nicht was falsch ist.
Danke schonmal 
|
Code:
quest bt begin
state start begin
when 50134.use begin
chat("Du hast " ..item_name(50134).. " geöffnet.")
local b = ({
{50401, 50402, 50403, 50403, 50404, -- Krieger
50416, 50417, 50418, 50419, 50420},
{50431, 50432, 50433, 50434, 50435, -- NINJA
50446, 50447, 50448, 50449, 50550},
{50461, 50462, 50463, 50464, 50465, 50466, -- SURA
50476, 50477, 50478, 50479, 50480, 50481},
50491, 50492, 50493, 50494, 50495, 50496, -- SCHAMIE
50506, 50507, 50508, 50509, 50510, 50511}
})[pc.get_job()+1]
for __,i in pairs(b) do
pc.give_item2(b,1)
pc.remove_item(b)
end
end
end
end
|
|
|
04/21/2015, 16:50
|
#11389
|
elite*gold: 0
Join Date: Apr 2009
Posts: 12
Received Thanks: 0
|
Danke aber jetzt kommt in VB das er den befehl pairs nicht kennt.
|
|
|
04/21/2015, 17:03
|
#11390
|
elite*gold: 5
Join Date: Mar 2015
Posts: 499
Received Thanks: 376
|
Quote:
Originally Posted by leas2144
Danke aber jetzt kommt in VB das er den befehl pairs nicht kennt.
|
Füg in deiner Quest_Functions Datei mal pairs ein.
|
|
|
04/21/2015, 17:26
|
#11391
|
elite*gold: 1810
Join Date: Jan 2012
Posts: 2,208
Received Thanks: 1,630
|
Kann mir auch wer bei meiner Quest helfen  ? Hab die vorletzte Seite glaub ich gepostet *_*
|
|
|
04/21/2015, 17:26
|
#11392
|
elite*gold: 35
Join Date: Aug 2014
Posts: 336
Received Thanks: 267
|
Quote:
Originally Posted by EpiicZz
syntax error : [string "killnot npc . is_pc ( )"]:5: unexpected symbol near `,'
anfang.quest:98:Error occured on compile anfang.quest
|
Code:
quest pvm begin
state start begin
when login begin
set_state(information)
end
end
state information begin
when letter begin
send_letter("Anfänger Jagdquest")
end
when info or button begin
say_title("Anfänger Jagdquest")
say("")
say("Hallo Kämpfer deines Reiches!")
say("Da du nun zu unserem Reich gehörst ")
say("und ein Kandidat im Kampf gegen das")
say("Feindliche Reich bist musst du dich")
say("als erstes beweisen!")
say("")
wait()
say("Deine Aufgabe:")
say("")
say_reward("Töte: 50 x Wildhund, 20 x Keiler, 15 x Bär,")
say_reward("20 x Weißer-Eid Soldatin, 20 x Weißer-Eid Bogenschützin,")
say_reward("30 x Wilder Ergebener, 30 x Schwarzwindsoldat,")
say_reward("2 x Brutaler Hauptmann, 50 x Stolzer Ork")
say_reward("und 50 x Schwarzer Ork")
say("")
wait()
say("Deine Belohnung wenn du die Aufgabe absolviert hast:")
say("")
say("10% Stark gegen Monter (dauerhaft)")
say("+1000TP (dauerhaft)")
say("5.000.000 Yang")
say("10 Truhen der Lehre")
say("")
say("Willst du die Aufgabe annhemen?")
if select("Ja","Nein") == 2 then
say("Hmm schade, ich dachte du wärst ein Kämpfer.")
return
end
say("Okay, los gehts!")
say_reward("Töte 50 x Wildhund")
say_reward("Töte 20 x Keiler")
say_reward("Töte 15 x Bär")
say_reward("Töte 20 x Weißer-Eid Soldatin")
say_reward("Töte 20 x Weißer-Eid Bogenschützin")
say_reward("Töte 30 x Wilder Ergebener")
say_reward("Töte 30 x Schwarzwindsoldat")
say_reward("Töte 2 x Brutaler Hauptmann")
say_reward("Töte 50 x Stolzer Ork")
say_reward("Töte 50 x Schwarzer Ork")
pc.setqf("kill_101",50)
pc.setqf("kill_108",20)
pc.setqf("kill_110",15)
pc.setqf("kill_301",20)
pc.setqf("kill_302",20)
pc.setqf("kill_502",30)
pc.setqf("kill_401",30)
pc.setqf("kill_591",20)
pc.setqf("kill_631",50)
pc.setqf("kill_636",50)
set_state(kill)
end
end
state kill begin
when letter begin
send_letter("Anfänger Jagdquest")
end
when button or info begin
ids = {101,108,110,301,302,502,401,591,631,636}
say_title("Anfänger Jagdquest")
say("Status:")
say("")
for i=1, table.getn(ids), 1 do
say_reward("Du musst "..mob_name(ids[i]).." noch "..pc.getqf("kill_"..ids[i]).."x töten.")
end
end
when kill with not npc.is_pc() begin
ids = {101,108,110,301,302,502,401,591,631,636}
for i=1, table.getn(ids), 1 do
if npc.get_race() == (ids[i]) then
if pc.getqf("kill_"..ids[i]) > 0 then
pc.setqf("kill_"..ids[i], (pc.getqf("kill_"..ids[i])-1))
end
end
end
killed_all = 0
for i=1, table.getn(ids), 1 do
if pc.getqf("kill_"..ids[i]) ~= 0 then
killed_all = 1
break
end
end
if killed_all == 0 then
set_state(fertig)
end
end
end
state fertig begin
when letter begin
send_letter("Aufgabe abgeschlossen!")
end
when info or button begin
say_title("Aufgabe abgeschlossen!")
say("Du hast es geschafft")
say("Ich dachte schon du schaffst es nicht")
say("Du bist wirklich Gut. (Ab Level 50 gibt es eine weitere Quest.)")
wait()
say("Natürlich willst du deine Belohnung oder?")
if select("Aufjedenfall","Nein behalt sie") == 2 then return end
say_reward("10% Stark gegen Monter (dauerhaft)")
say_reward("+1000TP (dauerhaft)")
say_reward("5.000.000 Yang")
say_reward("10 Truhen der Lehre")
affect.add_collect(apply.ATT_BONUS_TO_MONSTER,10, 60*60*24*365*60)
affect.add_collect(apply.MAX_HP,1000, 60*60*24*365*60)
pc.change_money(5000000)
pc.give_item2(19, 10)
clear_letter()
set_state(finish)
end
end
state finish begin
end
end
|
|
|
04/21/2015, 17:29
|
#11393
|
elite*gold: 0
Join Date: Sep 2007
Posts: 843
Received Thanks: 155
|
Quote:
Originally Posted by leas2144
Tag miteinander ich habe eine Frage bezüglich eines Quests. Er soll je nach rasse aus einer Truhe die passenden Fb´s ausgeben.
Mein Versuch:
Code:
quest bt begin
state start begin
when 50134.use begin
chat("Du hast " ..item_name(item.vnum).. " geöffnet.")
if pc.job() == 0 then
local b = {
50401, 50402, 50403, 50403, 50404, -- Krieger
50416, 50417, 50418, 50419, 50420}
local rb = number(1, table.getn(b))
pc.give_item2(b[rb], 1)
pc.remove_item(item.vnum)
elseif pc.job() == 1 then
local b == {
50431, 50432, 50433, 50434, 50435, -- NINJA
50446, 50447, 50448, 50449, 50550}
local rb = number(1, table.getn(b))
pc.give_item2(b[rb], 1)
pc.remove_item(item.vnum)
elseif pc.job() == 2 then
local b == {
50461, 50462, 50463, 50464, 50465, 50466, -- SURA
50476, 50477, 50478, 50479, 50480, 50481}
local rb = number(1, table.getn(b))
pc.give_item2(b[rb], 1)
pc.remove_item(item.vnum)
elseif pc.job() == 3 then
local b == {
50491, 50492, 50493, 50494, 50495, 50496, -- SCHAMIE
50506, 50507, 50508, 50509, 50510, 50511}
local rb = number(1, table.getn(b))
pc.give_item2(b[rb], 1)
pc.remove_item(item.vnum)
end
end
end
VB gibt mir die Information das in Zeile 10 nach Start bei der Zeichenfolge "==" ein Fehler ist ich wüsste aber nicht was falsch ist.
Danke schonmal 
|
Also du hast einmal "end" vergessen. Ausserdem heisst die Funktion pc.get_job und nicht pc.job ^^
Versuch mal:
PHP Code:
quest bt begin
state start begin
when 50134.use begin
chat("Du hast " ..item_name(item.vnum).. " geöffnet.")
if pc.get_job() == 0 then
local b = {
50401, 50402, 50403, 50403, 50404, -- Krieger
50416, 50417, 50418, 50419, 50420}
local rb = number(1, table.getn(b))
pc.give_item2(b[rb], 1)
pc.remove_item(item.vnum)
elseif pc.get_job() == 1 then
local b = {
50431, 50432, 50433, 50434, 50435, -- NINJA
50446, 50447, 50448, 50449, 50550}
local rb = number(1, table.getn(b))
pc.give_item2(b[rb], 1)
pc.remove_item(item.vnum)
elseif pc.get_job() == 2 then
local b = {
50461, 50462, 50463, 50464, 50465, 50466, -- SURA
50476, 50477, 50478, 50479, 50480, 50481}
local rb = number(1, table.getn(b))
pc.give_item2(b[rb], 1)
pc.remove_item(item.vnum)
elseif pc.get_job() == 3 then
local b = {
50491, 50492, 50493, 50494, 50495, 50496, -- SCHAMIE
50506, 50507, 50508, 50509, 50510, 50511}
local rb = number(1, table.getn(b))
pc.give_item2(b[rb], 1)
pc.remove_item(item.vnum)
end
end
end
end
Quote:
Originally Posted by C-3PO.
Code:
quest pvm begin
state start begin
when login begin
set_state(information)
end
end
state information begin
when letter begin
send_letter("Anfänger Jagdquest")
end
when info or button begin
say_title("Anfänger Jagdquest")
say("")
say("Hallo Kämpfer deines Reiches!")
say("Da du nun zu unserem Reich gehörst ")
say("und ein Kandidat im Kampf gegen das")
say("Feindliche Reich bist musst du dich")
say("als erstes beweisen!")
say("")
wait()
say("Deine Aufgabe:")
say("")
say_reward("Töte: 50 x Wildhund, 20 x Keiler, 15 x Bär,")
say_reward("20 x Weißer-Eid Soldatin, 20 x Weißer-Eid Bogenschützin,")
say_reward("30 x Wilder Ergebener, 30 x Schwarzwindsoldat,")
say_reward("2 x Brutaler Hauptmann, 50 x Stolzer Ork")
say_reward("und 50 x Schwarzer Ork")
say("")
wait()
say("Deine Belohnung wenn du die Aufgabe absolviert hast:")
say("")
say("10% Stark gegen Monter (dauerhaft)")
say("+1000TP (dauerhaft)")
say("5.000.000 Yang")
say("10 Truhen der Lehre")
say("")
say("Willst du die Aufgabe annhemen?")
if select("Ja","Nein") == 2 then
say("Hmm schade, ich dachte du wärst ein Kämpfer.")
return
end
say("Okay, los gehts!")
say_reward("Töte 50 x Wildhund")
say_reward("Töte 20 x Keiler")
say_reward("Töte 15 x Bär")
say_reward("Töte 20 x Weißer-Eid Soldatin")
say_reward("Töte 20 x Weißer-Eid Bogenschützin")
say_reward("Töte 30 x Wilder Ergebener")
say_reward("Töte 30 x Schwarzwindsoldat")
say_reward("Töte 2 x Brutaler Hauptmann")
say_reward("Töte 50 x Stolzer Ork")
say_reward("Töte 50 x Schwarzer Ork")
pc.setqf("kill_101",50)
pc.setqf("kill_108",20)
pc.setqf("kill_110",15)
pc.setqf("kill_301",20)
pc.setqf("kill_302",20)
pc.setqf("kill_502",30)
pc.setqf("kill_401",30)
pc.setqf("kill_591",20)
pc.setqf("kill_631",50)
pc.setqf("kill_636",50)
set_state(kill)
end
end
state kill begin
when letter begin
send_letter("Anfänger Jagdquest")
end
when button or info begin
ids = {101,108,110,301,302,502,401,591,631,636}
say_title("Anfänger Jagdquest")
say("Status:")
say("")
for i=1, table.getn(ids), 1 do
say_reward("Du musst "..mob_name(ids[i]).." noch "..pc.getqf("kill_"..ids[i]).."x töten.")
end
end
when kill with not npc.is_pc() begin
ids = {101,108,110,301,302,502,401,591,631,636}
for i=1, table.getn(ids), 1 do
if npc.get_race() == (ids[i]) then
if pc.getqf("kill_"..ids[i]) > 0 then
pc.setqf("kill_"..ids[i], (pc.getqf("kill_"..ids[i])-1))
end
end
end
killed_all = 0
for i=1, table.getn(ids), 1 do
if pc.getqf("kill_"..ids[i]) ~= 0 then
killed_all = 1
break
end
end
if killed_all == 0 then
set_state(fertig)
end
end
end
state fertig begin
when letter begin
send_letter("Aufgabe abgeschlossen!")
end
when info or button begin
say_title("Aufgabe abgeschlossen!")
say("Du hast es geschafft")
say("Ich dachte schon du schaffst es nicht")
say("Du bist wirklich Gut. (Ab Level 50 gibt es eine weitere Quest.)")
wait()
say("Natürlich willst du deine Belohnung oder?")
if select("Aufjedenfall","Nein behalt sie") == 2 then return end
say_reward("10% Stark gegen Monter (dauerhaft)")
say_reward("+1000TP (dauerhaft)")
say_reward("5.000.000 Yang")
say_reward("10 Truhen der Lehre")
affect.add_collect(apply.ATT_BONUS_TO_MONSTER,10, 60*60*24*365*60)
affect.add_collect(apply.MAX_HP,1000, 60*60*24*365*60)
pc.change_money(5000000)
pc.give_item2(19, 10)
clear_letter()
set_state(finish)
end
end
state finish begin
end
end
|
Wenn der Fehler in der anfang.quest ist, wieso postet du dann pvm.quest?
Quote:
Originally Posted by MaxChri
Heii Community,
ich habe eine Quest gefunden, die einen Report IG aufnehmen kann und dann abspeichert.
Ich habe sie bereits ein wenig verändert aber bei mir wird immer ein Error angezeigt.
Weiß vielleicht wer woran das liegen könnte?
PHP Code:
quest bug_report begin
state start begin
when login begin
send_letter("Report")
end
when button or info begin
say_title("Bug-Report")
say("Fehler melden")
local s = select("yes", "no")
if s == 1 then
input = input()
file = io.open ("locale/germany/quest/bug_report/"..pc.get_name()..".txt","w")
file:write("Report: "..input)
file:close()
-- say_title("Reported")
end
end
end
end
|
Also wenn ich die Quest auf meinem Server compiliere bekomme ich keinen Fehler...
|
|
|
04/21/2015, 17:40
|
#11394
|
elite*gold: 35
Join Date: Aug 2014
Posts: 336
Received Thanks: 267
|
Quote:
Originally Posted by Reigen
Wenn der Fehler in der anfang.quest ist, wieso postet du dann pvm.quest? 
|
Ne okay, Spaß beiseite. Also die quest heißt bei ihm nur anfang.quest, also in seinem Questordner. Darum schmeißt der Compiler da den Fehler.
|
|
|
04/21/2015, 17:43
|
#11395
|
elite*gold: 0
Join Date: Sep 2007
Posts: 843
Received Thanks: 155
|
xDDD bin ich dumm ^^ Sorry
|
|
|
04/21/2015, 18:28
|
#11396
|
elite*gold: 0
Join Date: Apr 2009
Posts: 12
Received Thanks: 0
|
gemacht getan jetzt nimmt VB es and aber ingame wird die truhe nicht geöfnet und sie verschwindet auch nicht.
Sry das ich dich so stresse
|
|
|
04/21/2015, 18:30
|
#11397
|
elite*gold: 0
Join Date: Sep 2007
Posts: 843
Received Thanks: 155
|
Quote:
Originally Posted by leas2144
gemacht getan jetzt nimmt VB es and aber ingame wird die truhe nicht geöfnet und sie verschwindet auch nicht.
Sry das ich dich so stresse
|
Klingt jetzt vielleicht doof aber kann ja jedem mal passieren - Hast du den "Typ" des items in der DB auf 18 gestellt ? (Falls nicht, denk an den "/reload proto"-GM Befehl)
|
|
|
04/21/2015, 18:43
|
#11398
|
elite*gold: 0
Join Date: Apr 2009
Posts: 12
Received Thanks: 0
|
OMG du bist mein Held wie konnte ich das vergessen XD
EDIT: Geht immer noch nicht Typ ist auf 18 was könnte ich vergessen haben ?
Hab den GM befehl benutzt.
Vielleicht ist es wichtig es sind die Invoice Files und ich hab gerade bemerkt das oberorktruhe usw auch nicht aufgehen.
|
|
|
04/21/2015, 19:21
|
#11399
|
elite*gold: 35
Join Date: Aug 2014
Posts: 336
Received Thanks: 267
|
Quote:
Originally Posted by leas2144
OMG du bist mein Held wie konnte ich das vergessen XD
EDIT: Geht immer noch nicht Typ ist auf 18 was könnte ich vergessen haben ?
Hab den GM befehl benutzt.
Vielleicht ist es wichtig es sind die Invoice Files und ich hab gerade bemerkt das oberorktruhe usw auch nicht aufgehen.
|
Type auf 18
Quest´s neuladen ->Ingame:
/reload
/reload q
#tested
Code:
quest bt begin
state start begin
when 50134.use begin
if pc.get_job() == 0 then
local b = {50401,50402,50403,50403,50404,50416,50417,50418,50419,50420}
local rb = number(1, table.getn(b))
pc.give_item2(b[rb], 1)
pc.remove_item(50134)
elseif pc.get_job() == 1 then
local b = {50431,50432,50433,50434,50435,50446,50447,50448,50449,50550}
pc.give_item2(b[rb], 1)
pc.remove_item(50134)
elseif pc.get_job() == 2 then
local b = {50461, 50462, 50463, 50464, 50465, 50466,50476, 50477, 50478, 50479, 50480, 50481}
pc.give_item2(b[rb], 1)
pc.remove_item(50134)
elseif pc.get_job() == 3 then
local b = {50491, 50492, 50493, 50494, 50495, 50496,50506, 50507, 50508, 50509, 50510, 50511}
pc.give_item2(b[rb], 1)
pc.remove_item(50134)
end
chat("Du hast " ..item.get_name().. " geöffnet.")
end
end
end
|
|
|
04/21/2015, 20:16
|
#11400
|
elite*gold: 0
Join Date: Sep 2007
Posts: 843
Received Thanks: 155
|
^ this
Die Oberorktruhe (und wahrscheinlich auch alle anderen) gehen nicht auf weil es nicht in special_item_drop.txt definiert ist (sofern die Truhen auf Type 23 gesetzt sind)
|
|
|
All times are GMT +1. The time now is 21:49.
|
|