|
You last visited: Today at 21:19
Advertisement
[SERVICE] Die Questkontrolle
Discussion on [SERVICE] Die Questkontrolle within the Metin2 Private Server forum part of the Metin2 category.
12/26/2012, 10:27
|
#7351
|
elite*gold: 2
Join Date: Feb 2012
Posts: 362
Received Thanks: 65
|
Hey.
Wollte in der Quest umändern, das man exp bekommt aber nicht nur bei einem PvP-Kill aus einem anderen Reich. Weiß aber nicht wie.
Code:
quest pvp_exp begin
state start begin
when login with pc.level >= 75 begin
set_state(pvp_exp)
end
end
state pvp_exp begin
when letter begin
send_letter("PvP Erfahrungs Punkte Information")
end
when button or info begin
say_title("Info zum PvP-ExP System")
say("Wenn du jemanden tötest erhältst du")
say("vom Drachengott eine klene Belohnung")
say("Desweiteren werden ab jetzt alle deine Morde gezählt")
say("")
say("Achtung! Es werden nur Morde aus anderen Reichen belohnt!")
pc.setqf("pvp_exp", 0)
q.set_counter("pvp_exp_kills", 0)
set_state (pvp_kill_counter)
end
end
state pvp_kill_counter begin
when letter begin
send_letter("Anzahl deiner Morde")
end
when button or info begin
say_title("Anzahl deiner Morde:")
say_reward("Du hast bereits ".." "..pc.getqf("pvp_exp").." Morde begangen")
say("")
end
when kill begin
if npc.is_pc() and npc.empire != pc.empire then
-- Bonus EXP und so...
local pvp = {
{10, 500000},
{25, 1000000},
{50, 1000000},
{75, 1000000},
{100, 1000000},
{150, 1000000},
{200, 1000000},
}
local count = pc.getqf("pvp_exp")
local pc_name = pc.get_name()
local bonus_exp = 0
local b = 1
local c = b + count
pc.setqf("pvp_exp", c)
q.set_counter("kills", count)
for i=1, table.getn(pvp), 1 do
if count == pvp[i][1] then
notice_all(pc_name.." hat "..count.." Morde begangen!")
bonus_exp = pvp[i][2]
break
end
end
pc.give_exp2(2500000+bonus_exp)
end
end
end
end
Könnt ihr die Quest bitte auf Fehler untersuchen, weil sie so nicht klappt.
|
|
|
12/26/2012, 12:19
|
#7352
|
elite*gold: 20
Join Date: Aug 2012
Posts: 714
Received Thanks: 1,168
|
Hab auch ein Problem und zwar mit einer drop quest die nicht anschlägt:
Code:
quest boss_drop begin
state start begin
when 2598.kill begin
game.drop_item_with_ownership(53005, 1)
game.drop_item(53005, 1)
chat("yOlO digga yolo")
end
end
end
Weder Chat Ausgabe kommt oder die Items droppen.
|
|
|
12/26/2012, 12:49
|
#7353
|
elite*gold: 0
Join Date: Dec 2012
Posts: 46
Received Thanks: 13
|
Quote:
Originally Posted by Yissu
Hab auch ein Problem und zwar mit einer drop quest die nicht anschlägt:
Code:
quest boss_drop begin
state start begin
when 2598.kill begin
game.drop_item_with_ownership(53005, 1)
game.drop_item(53005, 1)
chat("yOlO digga yolo")
end
end
end
Weder Chat Ausgabe kommt oder die Items droppen.
|
quest boss_drop begin
state start begin
when kill with npc.get_race() == 2598 begin
game.drop_item_with_ownership(53005, 1)
game.drop_item(53005, 1)
chat("yOlO digga yolo")
end
end
end
[/code]
|
|
|
12/26/2012, 13:17
|
#7354
|
elite*gold: 20
Join Date: Aug 2012
Posts: 714
Received Thanks: 1,168
|
Funktioniert trotzdem nicht
|
|
|
12/26/2012, 15:21
|
#7355
|
elite*gold: 20
Join Date: Nov 2008
Posts: 741
Received Thanks: 716
|
# Erledigt
|
|
|
12/26/2012, 15:28
|
#7356
|
elite*gold: 0
Join Date: Jun 2010
Posts: 3,146
Received Thanks: 583
|
when SCHATZJAEGER.target.click begin evtl?
|
|
|
12/26/2012, 15:29
|
#7357
|
elite*gold: 20
Join Date: Nov 2008
Posts: 741
Received Thanks: 716
|
Das ist kein Fehler, das funktioniert nur, wenn das target aktiviert wurde.
|
|
|
12/27/2012, 13:10
|
#7358
|
elite*gold: 0
Join Date: Dec 2010
Posts: 88
Received Thanks: 15
|
Quote:
quest Umtausch begin
state start begin
when 20016.chat."Umtausch" begin
say_title("Hey ".. pc.get_name() ..".")
say("Was möchtest du tauschen?")
local s = select("Krieger","Ninja","Sura","Schamane","Nichts ")
if s == 1 then
say_title("Kriegerkingumtausch")
say("Du möchtest also deine Kingrüsstung Tauschen?")
local sc = select("HD zu DE","DE zu HD","Abbrechen")
if sc == 1 then
say_title("Kriegerkingumtausch")
say("Bist du dir sicher dass du die HD-King zu einer DE-King tauschen möchtest?")
local scs = select("Ja, ich bin sicher","Nein, ich möchte nicht tauschen")
if scs == 1 then
if pc.countitem("12019")>=1 then
pc.removeitem("12019", 1)
pc.give_item2("12010", 1)
say("Hier hast du deine DE-King!")
else
say("Du hast keine HD-King!")
end
end
if sc == 2
say_title("Kriegerkingumtausch")
say("Bist du dir sicher dass du die DE-King zu einer HD-King tauschen möchtest?")
local sds = select("Ja, ich bin sicher","Nein, ich möchte nicht tauschen")
if sds == 1 then
if pc.countitem("12010")>=1 then
pc.removeitem("12010", 1)
pc.give_item2("12019", 1)
say("Hier hast du deine HD-King!")
else
say("Du hast keine DE-King!")
end
end
end
end
end
end
end
|
kann mir jemand Helfen wenn ich es dann iwie hin bekomme und Ig mit dem Schmied rede und die Funktion wähle ist es wie Abbrechen..... Ich weiß das ich mit Blaustahlpanzer ids arbeite ^^
|
|
|
12/27/2012, 13:33
|
#7359
|
elite*gold: 0
Join Date: Jan 2012
Posts: 63
Received Thanks: 83
|
Quote:
Originally Posted by new-kingmt2
kann mir jemand Helfen wenn ich es dann iwie hin bekomme und Ig mit dem Schmied rede und die Funktion wähle ist es wie Abbrechen..... Ich weiß das ich mit Blaustahlpanzer ids arbeite ^^
|
wieso sind die item ids bei pc.remove und pc.giveitem unter "" ?
Das sind doch keine Variablen
außerdem muss pc.remove_item mit einem _ getrennt werden
liegt jetzt nicht daran das die quest nicht geht aber du hast if sc == 3 then vergessen also der abbrechen button bei der ersten localen
|
|
|
12/27/2012, 15:19
|
#7360
|
elite*gold: 0
Join Date: Dec 2010
Posts: 88
Received Thanks: 15
|
Quote:
Originally Posted by ~NwD~
wieso sind die item ids bei pc.remove und pc.giveitem unter "" ?
Das sind doch keine Variablen
|
Das hab ich aus einer Quest kopiert die von Anfang an im Questordner liegt und funkt, hab die "" einfach mal weg gemacht....
Quote:
Originally Posted by ~NwD~
außerdem muss pc.remove_item mit einem _ getrennt werden
|
Daran liegts leider auch nicht....
Das mit dem if sc == 3 ist mir klar die lasse ich immer weg.... sind eher unnötig
so jetzt gibt es leider immer noch den Fehler aus oder einen anderen, wenn ich zwei "end" weg mache...
der Fehler von Anfang an lautet:
syntax error : [string "start"]:22: 'then' expected near 'say_title'
Umtausch.quest:45:Error occured on compile Umtausch.quest
der Fehler wenn ich zwei End weg mache:
qc in malloc(): error: allaction failed
Error occured on compile Umtausch.quest
__________________________________________________ _______
|
|
|
12/27/2012, 15:43
|
#7361
|
elite*gold: 0
Join Date: Jan 2012
Posts: 63
Received Thanks: 83
|
Probiers einfach mal so
PHP Code:
quest Umtausch begin state start begin when 20016.chat."Umtausch" begin say_title("Hey ".. pc.get_name() ..".") say("Was möchtest du tauschen?") local s = select("Krieger","Ninja","Sura","Schamane","Nichts ") if s == 1 then say_title("Kriegerkingumtausch") say("Du möchtest also deine Kingrüsstung Tauschen?") local sc = select("HD zu DE","DE zu HD","Abbrechen") if sc == 1 then say_title("Kriegerkingumtausch") say("Bist du dir sicher dass du die HD-King ") say("zu einer DE-King tauschen möchtest?") local scs = select("Ja, ich bin sicher","Nein, ich möchte nicht tauschen") if scs == 1 then if pc.countitem(12019)>=1 then pc.remove_item(12019, 1) pc.give_item2(12010, 1) say("Hier hast du deine DE-King!") else say("Du hast keine HD-King!") end end if sc == 2 then say_title("Kriegerkingumtausch") say("Bist du dir sicher dass du die DE-King") say("zu einer HD-King tauschen möchtest?") local sds = select("Ja, ich bin sicher","Nein, ich möchte nicht tauschen") if sds == 1 then if pc.countitem(12010)>=1 then pc.remove_item(12010, 1) pc.give_item2(12019, 1) say("Hier hast du deine HD-King!") else say("Du hast keine DE-King!") end end end end end end end end
|
|
|
12/27/2012, 15:47
|
#7362
|
elite*gold: 0
Join Date: Dec 2010
Posts: 88
Received Thanks: 15
|
Ich danke dir hab mich aber schon wieder selbst dran gesetzt und komplett neu geschrieben.... Komme auf diese wieder zurück wenn die neue nicht geht!
Thx bekommste für die Mühe
Danke
|
|
|
12/27/2012, 21:51
|
#7363
|
elite*gold: 0
Join Date: Jun 2011
Posts: 1,126
Received Thanks: 928
|
Kann mir jemand sagen warum die quest nicht funzt ?!
Quote:
quest contract begin
state start begin
when 50085.use begin
say_title("Contract2 Buch")
say("Dies ist das Vision World2 Buch,")
say("hiermit kannst du viele tolle")
say("Features nutzen. Du wirst es immer")
say("brauchen!")
say("Pass also gut darauf auf!")
local t = select("Weiter")
if t == 1 then
say("Welches möchtest du nutzen?")
local s = select("Teleportieren", "Lager öffnen", "Tränke Shop", "Statistik", "Spieleronline")
if s == 1 then
say("Wohin möchtest du dich Teleportieren?")
local v = select("Blaues Reich","Gelbes Reich","Rotes Reich","Spinnendungeon", "Dämonenturm", "Orktal", "Feuerland", "Eisland", "Wüste", "Abbrechen")
if v == 1 then
say("Vorsicht! Du wirst ins Blaue Reich teleportiert!")
pc.warp(9601, 2687)
end
if v == 2 then
say("Vorsicht! Du wirst ins Gelbe Reich teleportiert!")
pc.warp(632, 1661)
end
if v == 3 then
say("Vorsicht! Du wirst ins Rote Reich teleportiert!")
pc.warp(4742, 9544)
end
if v == 4 then
say("Vorsicht! Du wirst in den Spinnendungeon teleportiert!")
pc.warp(600, 4964)
end
if v == 5 then
say("Vorsicht! Du wirst in das Dämonenturm teleportiert!")
pc.warp(2048, 6656)
end
if v == 6 then
say("Vorsicht! Du wirst in das Orktal teleportiert!")
pc.warp(3359, 7553)
end
if v == 7 then
say("Vorsicht! Du wirst in das Feuerland teleportiert!")
pc.warp(3359, 7553)
end
if v == 8 then
say("Vorsicht! Du wirst in das Eisland teleportiert!")
pc.warp(4361, 2157)
end
if v == 9 then
say("Vorsicht! Du wirst in die Wüste teleportiert!")
pc.warp(2968, 5471)
end
if v == 10 then
return
end
end
if s == 2 then
game.open_safebox()
end
if s == 3 then
say_title("Tränke")
say("Hier kannst du Tränke kaufen.")
say("Du kannst sowohl Rote und Blaue Tränke,")
say("als auch Violette und Grüne Tränke kaufen.")
say("Das heißt, du musst nicht immer extra")
say("in die Stadt laufen, falls du am Leveln bist.")
say("Was willst du kaufen?")
local a = select("200 Rote Tränke", "200 Blaue Tränke", "200 Violette Tränke", "200 Grüne Tränke", "Nichts")
if a == 5 then
send_letter("Tränke kaufen")
return
elseif a == 1 then
if pc.money>=30000 then
pc.changemoney("-30000")
pc.give_item2(27003, 200)
say_title("Rote Tränke")
say("Du hast folgendes Item erhalten:")
say("")
say("")
say_item_vnum(27003)
elseif a == 2 then
if pc.money>=30000 then
pc.changemoney("-30000")
pc.give_item2(27006, 200)
say_title("Blaue Tränke")
say("Du hast folgendes Item erhalten:")
say("")
say("")
say_item_vnum(27006)
end
elseif a == 3 then
if pc.money>=50000 then
pc.changemoney("-50000")
pc.give_item2(27115, 200)
say_title("Violette Tränke")
say("Du hast folgendes Item erhalten:")
say("")
say("")
say_item_vnum(27115)
end
elseif a == 4 then
if pc.money>=300000 then
pc.changemoney("-300000")
pc.give_item2(27112, 200)
say_title("Grüne Tränke")
say("Du hast folgendes Item erhalten:")
say("")
say("")
say_item_vnum(27112)
send_letter("Tränke kaufen")
end
end
end
if s == 4 then
say_title("Statistiken:")
say("Hallo,")
say("Hier zeige ich dir deine Statistiken:")
say("")
say("Logins: ".." ".. 0 + pc.getqf("login_count") .."")
say("Logouts: ".." ".. 0 + pc.getqf("logout_count") .."")
say("Getöte Spieler: ".." ".. 0 + pc.getqf("killpc_count") .."")
say("Getötete Monster: ".." ".. 0 + pc.getqf("kill_count") .."")
end
if s == 5 then
say_title("Spieler Online?:")
say("")
say("Gebe den Namen des Spielers ein den")
say("du finden möchtest ob dieser Online ist.")
say("Beachte dabei groß und klein schreibung.")
say("")
say_title("Beachte dabei aber bitte auch,")
say_title("das dies nur funktioniert wenn ihr")
say_title("in ein und demselben Channel seit.")
say("")
local find_player_online = input()
local gamer_found = find_pc_by_name(find_player_online)
if gamer_found == 0 then
say_title("Spieler Offline:")
say("")
else
say_title("Spieler Online!:")
say("")
say("Der Spieler "..find_player_online.." ist im moment Online.")
say("")
end
end
end
end
when login begin
local login_count = pc.getqf("login_count") + 1
pc.setqf("login_count", login_count)
q.set_counter("login_count", 0 + login_count)
end
when logout begin
local logout_count = pc.getqf("logout_count") + 1
pc.setqf("logout_count", logout_count)
q.set_counter("logout_count", 0 + logout_count)
end
when kill begin
if npc.is_pc() then
local killpc_count = pc.getqf("killpc_count") +1
pc.setqf("killpc_count", killpc_count)
q.set_counter("killpc_count", 0 + killpc_count)
else
local kill_count = pc.getqf("kill_count") +1
pc.setqf("kill_count", kill_count)
q.set_counter("kill_count", 0 + kill_count)
end
end
end
end
|
|
|
|
12/27/2012, 22:12
|
#7364
|
elite*gold: 0
Join Date: Jan 2012
Posts: 63
Received Thanks: 83
|
Quote:
Originally Posted by Ðαrkbøζζ
Kann mir jemand sagen warum die quest nicht funzt ?!
|
naja ist natürlich immer bisschen schwer wenn du nicht sagst was genau nicht geht, also ob beim hochfahren ne fehlermeldung kommt oder ob die quest nicht das macht was du willst
deswegen hab ich einfach mal drauflos verbessert, fehler zähl ich an dieser stelle nicht auf da es zuviele waren...
PHP Code:
quest contract begin
state start begin
when 50085.use begin
say_title("Contract2 Buch")
say("Dies ist das Vision World2 Buch,")
say("hiermit kannst du viele tolle")
say("Features nutzen. Du wirst es immer")
say("brauchen!")
say("Pass also gut darauf auf!")
local t = select("Weiter")
if t == 1 then
say("Welches möchtest du nutzen?")
local s = select("Teleportieren", "Lager öffnen", "Tränke Shop", "Statistik", "Spieleronline")
if s == 1 then
say("Wohin möchtest du dich Teleportieren?")
local v = select("Blaues Reich","Gelbes Reich","Rotes Reich","Spinnendungeon", "Dämonenturm", "Orktal", "Feuerland", "Eisland", "Wüste", "Abbrechen")
if v == 1 then
say("Vorsicht! Du wirst ins Blaue Reich teleportiert!")
pc.warp(9601, 2687)
elseif v == 2 then
say("Vorsicht! Du wirst ins Gelbe Reich teleportiert!")
pc.warp(632, 1661)
elseif v == 3 then
say("Vorsicht! Du wirst ins Rote Reich teleportiert!")
pc.warp(4742, 9544)
elseif v == 4 then
say("Vorsicht! Du wirst in den Spinnendungeon teleportiert!")
pc.warp(600, 4964)
elseif v == 5 then
say("Vorsicht! Du wirst in das Dämonenturm teleportiert!")
pc.warp(2048, 6656)
elseif v == 6 then
say("Vorsicht! Du wirst in das Orktal teleportiert!")
pc.warp(3359, 7553)
elseif v == 7 then
say("Vorsicht! Du wirst in das Feuerland teleportiert!")
pc.warp(3359, 7553)
elseif v == 8 then
say("Vorsicht! Du wirst in das Eisland teleportiert!")
pc.warp(4361, 2157)
elseif v == 9 then
say("Vorsicht! Du wirst in die Wüste teleportiert!")
pc.warp(2968, 5471)
elseif v == 10 then
return
end
elseif s == 2 then
game.open_safebox()
elseif s == 3 then
say_title("Tränke")
say("Hier kannst du Tränke kaufen.")
say("Du kannst sowohl Rote und Blaue Tränke,")
say("als auch Violette und Grüne Tränke kaufen.")
say("Das heißt, du musst nicht immer extra")
say("in die Stadt laufen, falls du am Leveln bist.")
say("Was willst du kaufen?")
local a = select("200 Rote Tränke", "200 Blaue Tränke", "200 Violette Tränke", "200 Grüne Tränke", "Nichts")
if a == 5 then
return
elseif a == 1 then
if pc.money>=30000 then
pc.changemoney(-30000)
pc.give_item2(27003, 200)
say_title("Rote Tränke")
say("Du hast folgendes Item erhalten:")
say("")
say("")
say_item_vnum(27003)
else
return
end
elseif a == 2 then
if pc.money>=30000 then
pc.changemoney(-30000)
pc.give_item2(27006, 200)
say_title("Blaue Tränke")
say("Du hast folgendes Item erhalten:")
say("")
say("")
say_item_vnum(27006)
else
return
end
elseif a == 3 then
if pc.money>=50000 then
pc.changemoney(-50000)
pc.give_item2(27115, 200)
say_title("Violette Tränke")
say("Du hast folgendes Item erhalten:")
say("")
say("")
say_item_vnum(27115)
else
return
end
elseif a == 4 then
if pc.money>=300000 then
pc.changemoney("-300000")
pc.give_item2(27112, 200)
say_title("Grüne Tränke")
say("Du hast folgendes Item erhalten:")
say("")
say("")
say_item_vnum(27112)
else
return
end
end
elseif s == 4 then
say_title("Statistiken:")
say("Hallo,")
say("Hier zeige ich dir deine Statistiken:")
say("")
say("Logins: ".." ".. 0 + pc.getqf("login_count") .."")
say("Logouts: ".." ".. 0 + pc.getqf("logout_count") .."")
say("Getöte Spieler: ".." ".. 0 + pc.getqf("killpc_count") .."")
say("Getötete Monster: ".." ".. 0 + pc.getqf("kill_count") .."")
end
elseif s == 5 then
say_title("Spieler Online?:")
say("")
say("Gebe den Namen des Spielers ein den")
say("du finden möchtest ob dieser Online ist.")
say("Beachte dabei groß und klein schreibung.")
say("")
say_title("Beachte dabei aber bitte auch,")
say_title("das dies nur funktioniert wenn ihr")
say_title("in ein und demselben Channel seit.")
say("")
local find_player_online = input()
local gamer_found = find_pc_by_name(find_player_online)
if gamer_found == 0 then
say_title("Spieler Offline:")
say("")
else
say_title("Spieler Online!:")
say("")
say("Der Spieler "..find_player_online.." ist im moment Online.")
say("")
end
end
end
end
when login begin
local login_count = pc.getqf("login_count") + 1
pc.setqf("login_count", login_count)
q.set_counter("login_count", 0 + login_count)
end
when logout begin
local logout_count = pc.getqf("logout_count") + 1
pc.setqf("logout_count", logout_count)
q.set_counter("logout_count", 0 + logout_count)
end
when kill begin
if npc.is_pc() then
local killpc_count = pc.getqf("killpc_count") +1
pc.setqf("killpc_count", killpc_count)
q.set_counter("killpc_count", 0 + killpc_count)
else
local kill_count = pc.getqf("kill_count") +1
pc.setqf("kill_count", kill_count)
q.set_counter("kill_count", 0 + kill_count)
end
end
end
end
|
|
|
12/28/2012, 10:06
|
#7365
|
elite*gold: 0
Join Date: Jun 2011
Posts: 1,126
Received Thanks: 928
|
Funktioniert immernoch nicht !
Fehlermeldung:
syntax error_ [string "start"]:146: unexpected symbol near when
contractbuch.quest :171: error blabla
|
|
|
All times are GMT +1. The time now is 21:19.
|
|