|
You last visited: Today at 08:51
Advertisement
[SERVICE] Die Questkontrolle
Discussion on [SERVICE] Die Questkontrolle within the Metin2 Private Server forum part of the Metin2 category.
11/27/2015, 20:36
|
#12001
|
elite*gold: 20
Join Date: Sep 2012
Posts: 579
Received Thanks: 139
|
Quote:
Originally Posted by .Leykas
PHP Code:
quest daily_login begin
state start begin
when login begin
if pc.get_level() >= 80 then
set_state(information)
end
end
end
--[[ Information ]]
state information begin
when letter begin
send_letter("Tägliche Login Belohnung")
set_state(vllt_so)
end
end
state vllt_so begin
when info or button begin
say_title("Tägliche Login Belohnung")
local TODAY = tonumber(os.date("%d"))
local MONTH = tonumber(os.date("%m"))
local MY_PACK = pc.getqf("saved_day")
local SAFTY = pc.getqf("saved_login")
local SAFTY_MONTH = pc.getqf("saved_month")
local REST = TODAY - MY_PACK
local STAGEONE = {146, 147, 148, 149, 186, 188, 189}
local STAGETWO = {50035, 50036, 50031, 50025, 50024, 50031, 50032}
local STAGETHREE = {50035, 50036, 50031, 50025, 50024, 50031, 50032}
local STAGEFOUR = {50035, 50036, 50031, 50025, 50024, 50031, 50032}
local STAGEFIVE = {50035, 50036, 50031, 50025, 50024, 50031, 50032}
local STAGESIX = {50035, 50036, 50031, 50025, 50024, 50031, 50032}
local ITEMS
if REST == 1 then
pc.setqf("saved_day", TODAY)
pc.setqf("saved_month", MONTH)
pc.setqf("saved_login", pc.getqf("saved_login")+1)
say("Du loggst dich zum "..pc.getqf("saved_login").." mal hinter einander ein.")
if SAFTY < 11 then
ITEMS = STAGEONE[number(1, table.getn(STAGEONE))]
elseif SAFTY > 10 and SAFTY < 21 then
ITEMS = STAGETWO[number(1, table.getn(STAGETWO))]
elseif SAFTY > 20 and SAFTY < 31 then
ITEMS = STAGETHREE[number(1, table.getn(STAGETHREE))]
elseif SAFTY > 30 and SAFTY < 41 then
ITEMS = STAGEFOUR[number(1, table.getn(STAGEFOUR))]
elseif SAFTY > 40 and SAFTY < 51 then
ITEMS = STAGEFIVE[number(1, table.getn(STAGEFIVE))]
elseif SAFTY > 50 then
ITEMS = STAGESIX[number(1, table.getn(STAGESIX))]
pc.give_item2(ITEMS, 1)
end
say("Dein tägliches Present ist heute: " ..item_name(ITEMS).."!")
say("pro. Tag einmal auzuführen!")
end
end
end
end
Ist mit Handy geschrieben. Bin auf Arbeit, musste evtl vernünftig einrücken.
|
Leider auch nicht -.- Ich denke mal er hat ein Problem damit dass nach say_title("Tägliche Login Belohnung") die Abfrage kommt. Gibt es eine Möglichkeit die Abfrage schon vor dem eigentlichen Text bzw. der Questscroll einzufügen ? Wäre für jeden Tipp dankbar.
|
|
|
11/28/2015, 14:36
|
#12002
|
elite*gold: 0
Join Date: Jun 2012
Posts: 340
Received Thanks: 114
|
Morgen, ja, ich frage viel, aber Fragen kostet nichts;
Bei meiner Blocksetzung stimmt was nicht; Entweder wird eine Anfrage nicht genommen oder ignoriert...
Beispiel von einen dieser Blöcke;
PHP Code:
when 20016.chat."Der violette Stoff" begin if pc.count_item(104009) >499 then say_title("Was möchtet ihr denn?") say("") say("Achso, violetter Stoff. Ja, ich") say("weiß. Aber ihr habt den violetten Stoff nicht.") say("") say("Kommt wieder, wenn ihr den Stoff habt.") else if pc.count_item(20009) >0 or pc.count_item(20259) >0 or pc.count_item(20759) >0 or pc.count_item(20509) >0 or pc.get_armor() == 20009 or pc.get_armor() == 20259 or pc.get_armor() == 20759 or pc.get_armor() == 20509 then say_title("Oh, hallo " .. pc.get_name()) say("") say("Ah, der violette Stoff. Jetzt fällt") say("es mir wieder ein. Ich weiß nun auch, was") say("Huahn-So vorhat. Ich weiß durchaus auch, was") say("es mit dem *Kristallklaremschlüssel* auf sich hat.") say("Er wird durchaus verwendet, um in den verschlüsselten") say("Raum zu gelangen, worin Beran-Setaou sich aufhält.") say("Aber primär geht es um die Rüstung. Trotzdem") say("möchte gerne wissen, wie mächtig Beran ist.") say("Aber das besprechen wir ein ander Mal.") say("Gerne möchte ich dies herausfinden, aber") say("leider habe ich keine magischen Steine mehr") say("um mir Ausrütung herzustellen.") wait() say("Wärt ihr bitte so frei und würdet mir") say("20x Magischer Stein bringen? Ihr würdet") say("mir damit einen echten Gefallen tun.") say("Kommt zu mir, wenn ihr die magischen") say("Steine bei euch habt.") set_state(magischerstein) else say("Lieber Abenteurer!") say("So leid es mir tut, aber ohne") say("die Drachendämonenrüstung, darf ich euch") say("keine Informationen geben!") say("") say("*200er Rüstung+9*") end end end end
Wäre toll, wenn jemand mir da helfen könnte und die Blocks richtig setzt.
Lerne gerne neues dazu und nehme gerne Tipps entgegen.
Mfg
|
|
|
11/29/2015, 16:44
|
#12003
|
elite*gold: 0
Join Date: Jan 2010
Posts: 57
Received Thanks: 1
|
Hey, hier mal ein etwas schwieriger Fehler.
Immer wenn in der Quest eine Funktion aufgerufen wird taucht dieser Fehler auf, ganz egal um welche Funktion es sich handelt.
- quest entfernt.
bei dem Fehler einfach wie von .Delta beschrieben, bei den selbst erstellen Funktionen, beim aufrufen ein " QUESTNAME. " schreiben. also so das es so aussieht: "QUESTNAME.FUNCTIONNAME"
|
|
|
11/29/2015, 17:35
|
#12004
|
elite*gold: 26
Join Date: Mar 2010
Posts: 3,765
Received Thanks: 2,661
|
setz mal deinen questnamen vor den aufruf der function.
also:
vanitas.spielstand_laden()
usw
|
|
|
11/29/2015, 20:25
|
#12005
|
elite*gold: 0
Join Date: Jan 2010
Posts: 57
Received Thanks: 1
|
Quote:
Originally Posted by .Delta
setz mal deinen questnamen vor den aufruf der function.
also:
vanitas.spielstand_laden()
usw
|
vielen dank :3
|
|
|
11/29/2015, 21:25
|
#12006
|
elite*gold: 20
Join Date: Sep 2012
Posts: 579
Received Thanks: 139
|
PHP Code:
quest daily_login begin state start begin when login begin if pc.get_level() >= 80 then set_state(information) end end end --[[ Information ]] state information begin when letter begin send_letter("Tägliche Login Belohnung") set_state(vllt_so) end end state vllt_so begin when info or button begin say_title("Tägliche Login Belohnung") local TODAY = tonumber(os.date("%d")) local MONTH = tonumber(os.date("%m")) local MY_PACK = pc.getqf("saved_day") local SAFTY = pc.getqf("saved_login") local SAFTY_MONTH = pc.getqf("saved_month") local REST = TODAY - MY_PACK local STAGEONE = {146, 147, 148, 149, 186, 188, 189} local STAGETWO = {50035, 50036, 50031, 50025, 50024, 50031, 50032} local STAGETHREE = {50035, 50036, 50031, 50025, 50024, 50031, 50032} local STAGEFOUR = {50035, 50036, 50031, 50025, 50024, 50031, 50032} local STAGEFIVE = {50035, 50036, 50031, 50025, 50024, 50031, 50032} local STAGESIX = {50035, 50036, 50031, 50025, 50024, 50031, 50032} local ITEMS if REST == 1 then pc.setqf("saved_day", TODAY) pc.setqf("saved_month", MONTH) pc.setqf("saved_login", pc.getqf("saved_login")+1) say("Du loggst dich zum "..pc.getqf("saved_login").." mal hinter einander ein.") if SAFTY < 11 then ITEMS = STAGEONE[number(1, table.getn(STAGEONE))] elseif SAFTY > 10 and SAFTY < 21 then ITEMS = STAGETWO[number(1, table.getn(STAGETWO))] elseif SAFTY > 20 and SAFTY < 31 then ITEMS = STAGETHREE[number(1, table.getn(STAGETHREE))] elseif SAFTY > 30 and SAFTY < 41 then ITEMS = STAGEFOUR[number(1, table.getn(STAGEFOUR))] elseif SAFTY > 40 and SAFTY < 51 then ITEMS = STAGEFIVE[number(1, table.getn(STAGEFIVE))] elseif SAFTY > 50 then ITEMS = STAGESIX[number(1, table.getn(STAGESIX))] pc.give_item2(ITEMS, 1) end say("Dein tägliches Present ist heute: " ..item_name(ITEMS).."!") say("pro. Tag einmal auzuführen!") end end end end
Quote:
Originally Posted by IzeBreakzz
Leider auch nicht -.- Ich denke mal er hat ein Problem damit dass nach say_title("Tägliche Login Belohnung") die Abfrage kommt. Gibt es eine Möglichkeit die Abfrage schon vor dem eigentlichen Text bzw. der Questscroll einzufügen ? Wäre für jeden Tipp dankbar.
|
Bräuchte wirklich Hilfe... Gibts niemanden der eine Idee hätte ?
|
|
|
11/29/2015, 22:28
|
#12007
|
elite*gold: 26
Join Date: Mar 2010
Posts: 3,765
Received Thanks: 2,661
|
leichteste Vermutung:
Dein REST ist nicht gleich 1, schon mal ohne probiert?
Bzw wenn du deinen REST davor explizit auf 1 setzt?
€: und mach diesen extra state zwischen deinem letter und info raus
|
|
|
11/30/2015, 11:32
|
#12008
|
elite*gold: 0
Join Date: Jan 2012
Posts: 42
Received Thanks: 7
|
Empire war
Hello people,
I have a little problem.
When I give the administration and the show scores.
Score appears and makes it into this error sysseru.
Code:
quest list_pro_gm begin
state start begin
when 50116.use begin
say_reward("Administrace")
local sel = select("Spawnout Teleportery ","Zobrazit skóre války říší ", "Zrušit")
if sel == 3 then
return
elseif sel == 1 then
mob.spawn( 9004 , 178 , 249 , 1, 1, 1)
mob.spawn( 9004 , 186 , 190 , 1, 1, 1)
mob.spawn( 9004 , 247 , 186 , 1, 1, 1)
mob.spawn( 9004 , 336 , 185 , 1, 1, 1)
mob.spawn( 9004 , 348 , 147 , 1, 1, 1)
mob.spawn( 9004 , 338 , 210 , 1, 1, 1)
return
elseif sel == 2 then
pp = mysql_query("select rise,kills from player.valka ORDER BY kills desc,empire asc LIMIT 10")
else
pp = mysql_query("select rise,kills from player.valka where (SELECT empire from player.valka where valka.rise =empire) = "..(sel-1).." ORDER BY kills desc,rise asc LIMIT 10")
end
if pp == nil or (pp[1] or {})[1] == nil then
return
end
table.foreachi(pp,function(i,l)
notice_all(i.." - "..l[1].. " - "..l[2].. " bodů ")
end)
end
end
end
Code:
quest valka_risi begin
state start begin
when kill with npc.is_pc() and pc.get_map_index() == 62 and npc.empire != pc.empire begin
local kill_now = mysql_query("SELECT kills from player.valka WHERE empire='"..pc.get_empire().."' LIMIT 1")
local kill_up = mysql_query("UPDATE player.valka SET kills ='"..(kill_now.kills[1]+1).."' WHERE empire ='"..pc.get_empire().."' LIMIT 1")
end
end
end
This error syserr CH1
" attempt to call global `mysql_query' (a nil value) "
|
|
|
11/30/2015, 19:56
|
#12009
|
elite*gold: 0
Join Date: Jun 2012
Posts: 340
Received Thanks: 114
|
Quote:
Originally Posted by stenlykkk
Hello people,
I have a little problem.
When I give the administration and the show scores.
Score appears and makes it into this error sysseru.
Code:
quest list_pro_gm begin
state start begin
when 50116.use begin
say_reward("Administrace")
local sel = select("Spawnout Teleportery ","Zobrazit skóre války říší ", "Zrušit")
if sel == 3 then
return
elseif sel == 1 then
mob.spawn( 9004 , 178 , 249 , 1, 1, 1)
mob.spawn( 9004 , 186 , 190 , 1, 1, 1)
mob.spawn( 9004 , 247 , 186 , 1, 1, 1)
mob.spawn( 9004 , 336 , 185 , 1, 1, 1)
mob.spawn( 9004 , 348 , 147 , 1, 1, 1)
mob.spawn( 9004 , 338 , 210 , 1, 1, 1)
return
elseif sel == 2 then
pp = mysql_query("select rise,kills from player.valka ORDER BY kills desc,empire asc LIMIT 10")
else
pp = mysql_query("select rise,kills from player.valka where (SELECT empire from player.valka where valka.rise =empire) = "..(sel-1).." ORDER BY kills desc,rise asc LIMIT 10")
end
if pp == nil or (pp[1] or {})[1] == nil then
return
end
table.foreachi(pp,function(i,l)
notice_all(i.." - "..l[1].. " - "..l[2].. " bodů ")
end)
end
end
end
Code:
quest valka_risi begin
state start begin
when kill with npc.is_pc() and pc.get_map_index() == 62 and npc.empire != pc.empire begin
local kill_now = mysql_query("SELECT kills from player.valka WHERE empire='"..pc.get_empire().."' LIMIT 1")
local kill_up = mysql_query("UPDATE player.valka SET kills ='"..(kill_now.kills[1]+1).."' WHERE empire ='"..pc.get_empire().."' LIMIT 1")
end
end
end
This error syserr CH1
" attempt to call global `mysql_query' (a nil value) "
|
Did you have the questlib with the Mysql_query function?
|
|
|
11/30/2015, 20:36
|
#12010
|
elite*gold: 0
Join Date: Jan 2012
Posts: 42
Received Thanks: 7
|
Quote:
Originally Posted by Chaosnightx3
Did you have the questlib with the Mysql_query function?
|
Ou thanks  and new error (funkcion on quest is not work)
putty
Warning: Using a password on the command line interface can be insecure.
syserr
SYSERR: Nov 30 21:01:20 :: RunState: LUA_ERROR: [string "valka_risi"]:2: attempt to index field `kills' (a nil value)
SYSERR: Nov 30 21:01:20 :: WriteRunningStateToSyserr: LUA_ERROR: quest valka_risi.start click
(in putty)
|
|
|
11/30/2015, 21:59
|
#12011
|
elite*gold: 0
Join Date: Jun 2012
Posts: 340
Received Thanks: 114
|
Quote:
Originally Posted by Chaosnightx3
Morgen, ja, ich frage viel, aber Fragen kostet nichts;
Bei meiner Blocksetzung stimmt was nicht; Entweder wird eine Anfrage nicht genommen oder ignoriert...
Beispiel von einen dieser Blöcke;
PHP Code:
when 20016.chat."Der violette Stoff" begin
if pc.count_item(104009) >499 then
say_title("Was möchtet ihr denn?")
say("")
say("Achso, violetter Stoff. Ja, ich")
say("weiß. Aber ihr habt den violetten Stoff nicht.")
say("")
say("Kommt wieder, wenn ihr den Stoff habt.")
else
if pc.count_item(20009) >0 or pc.count_item(20259) >0 or pc.count_item(20759) >0 or pc.count_item(20509) >0 or pc.get_armor() == 20009 or pc.get_armor() == 20259 or pc.get_armor() == 20759 or pc.get_armor() == 20509 then
say_title("Oh, hallo " .. pc.get_name())
say("")
say("Ah, der violette Stoff. Jetzt fällt")
say("es mir wieder ein. Ich weiß nun auch, was")
say("Huahn-So vorhat. Ich weiß durchaus auch, was")
say("es mit dem *Kristallklaremschlüssel* auf sich hat.")
say("Er wird durchaus verwendet, um in den verschlüsselten")
say("Raum zu gelangen, worin Beran-Setaou sich aufhält.")
say("Aber primär geht es um die Rüstung. Trotzdem")
say("möchte gerne wissen, wie mächtig Beran ist.")
say("Aber das besprechen wir ein ander Mal.")
say("Gerne möchte ich dies herausfinden, aber")
say("leider habe ich keine magischen Steine mehr")
say("um mir Ausrütung herzustellen.")
wait()
say("Wärt ihr bitte so frei und würdet mir")
say("20x Magischer Stein bringen? Ihr würdet")
say("mir damit einen echten Gefallen tun.")
say("Kommt zu mir, wenn ihr die magischen")
say("Steine bei euch habt.")
set_state(magischerstein)
else
say("Lieber Abenteurer!")
say("So leid es mir tut, aber ohne")
say("die Drachendämonenrüstung, darf ich euch")
say("keine Informationen geben!")
say("")
say("*200er Rüstung+9*")
end
end
end
end
Wäre toll, wenn jemand mir da helfen könnte und die Blocks richtig setzt.
Lerne gerne neues dazu und nehme gerne Tipps entgegen.
Mfg
|
Problem besteht weiter hin.^^
|
|
|
11/30/2015, 22:06
|
#12012
|
elite*gold: 26
Join Date: Mar 2010
Posts: 3,765
Received Thanks: 2,661
|
Du hast für den when block ein end zu viel, vllt auch nur zuviel aus der kompletten quest kopiert, kann ich dir nicht sagen nur anhand des abschnitts.
Sonst verstehe ich nicht, was du willst o.O
|
|
|
11/30/2015, 23:43
|
#12013
|
elite*gold: 0
Join Date: Jun 2012
Posts: 340
Received Thanks: 114
|
Quote:
Originally Posted by .Delta
Du hast für den when block ein end zu viel, vllt auch nur zuviel aus der kompletten quest kopiert, kann ich dir nicht sagen nur anhand des abschnitts.
Sonst verstehe ich nicht, was du willst o.O
|
Ich versuche es mal zu erklären;
Du siehst ja anhand des ersten Ifs; Hat er den violetten Stoff,
wird er in die nächste Schleife gebracht (Rüstung).
Jedoch kriege ich es nicht hin, dass beide Bedingungen
erfolgreich laden. Entweder wird eine Übersprungen, oder die Abfrage wird
obwohl man beide hat, nicht richtig überprüft.
Hat man z.b. beides dabei, sagt der Npc trotzdem " Du hast nicht die Rüstung" etc.
Hoffe, das konnte dir helfen. :x
|
|
|
11/30/2015, 23:55
|
#12014
|
elite*gold: 26
Join Date: Mar 2010
Posts: 3,765
Received Thanks: 2,661
|
Also die Quest verlangt das Item 104009 UNTER 499 mal, dann kommst du in die Abfrage ob du eines der Items 20009, 20259, 20759 oder 20509 besitzt.
Wenn ja kommst du in den nächsten state
hast du dich vllt einfach verschrieben? bei pc.count_item(104009), soll das da vllt < 500 heißen? (Ich nehme an, dass man 500 von den Tüchern braucht)
Wenn das alles nicht stimmt kannste mich gerne mal in skype adden und mir alles haarklein schildern, weil ich dann ja anscheinend zu blöd bin ;D
|
|
|
12/01/2015, 00:18
|
#12015
|
elite*gold: 0
Join Date: Jun 2012
Posts: 340
Received Thanks: 114
|
Quote:
Originally Posted by .Delta
Also die Quest verlangt das Item 104009 UNTER 499 mal, dann kommst du in die Abfrage ob du eines der Items 20009, 20259, 20759 oder 20509 besitzt.
Wenn ja kommst du in den nächsten state
hast du dich vllt einfach verschrieben? bei pc.count_item(104009), soll das da vllt < 500 heißen? (Ich nehme an, dass man 500 von den Tüchern braucht)
Wenn das alles nicht stimmt kannste mich gerne mal in skype adden und mir alles haarklein schildern, weil ich dann ja anscheinend zu blöd bin ;D
|
Weißte, was das lustige ist? Einzeln funktioniert alles, nur wenn ich die Blöcke zusammenfüge, gehts nicht. :x
|
|
|
All times are GMT +1. The time now is 08:52.
|
|