|
You last visited: Today at 14:24
Advertisement
[SERVICE] Die Questkontrolle
Discussion on [SERVICE] Die Questkontrolle within the Metin2 Private Server forum part of the Metin2 category.
01/08/2016, 16:01
|
#12091
|
elite*gold: 0
Join Date: Apr 2013
Posts: 329
Received Thanks: 5
|
Habe ein Problem in der DC quest werde von der 6 Ebende nicht zur 7 Geportet weiß nicht wo der Fehler sein soll bitte um hilfe
Quote:
quest devilscave begin
state start begin
--Konfiguration
when 20351.chat."DC Configuration!" with game.get_event_flag("block_dc_config") == 0 and pc.is_gm begin
game.set_event_flag("dc_is_ok",1)
game.set_event_flag("block_dc_config",1)
game.set_event_flag("dc_versuche",1)
end
--Eintritt fehlgeschlagen
--when 20351.chat."The Devils Catacomb" with game.get_event_flag("dc_is_ok") == 1 and pc.getqf("can_in_dc") == 0 and pc.get_level() > 80 begin
--say_title("Wächter der Katakombe")
--say("")
--say_reward("Du darfst noch nicht in die Devils Catacomb!")
--say("")
--say_reward("Bring mir ein Sensenmannrelikt zieh es einfach auf mich!")
--say_reward("und du darfst Passieren!")
--end
--when 20351.chat."Devils Catacomb (lv.80)" with game.get_event_flag("dc_is_ok") == 1 and pc.getqf("can_in_dc") == 1 and pc.get_level() < 80 begin
--say_title("Wächter der Katakombe")
--say("")
--say_reward("Du bist noch zu Schwach!")
--say("")
--end
--Sensenmannrelikt Abgabe!
--when 20351.take with item.vnum == 30315 and pc.getqf("can_in_dc") == 0 begin
--if pc.get_level() < 80 then
--say_title("Wächter der Katakombe")
--say("")
--say_reward("Du musst lv.80 sein um ein Sensenmannrelikt abzugeben!")
--say("")
--else
--item.remove()
--say_title("Wächter der Katakombe")
--say("")
--say_reward("Du darfst nun die Devils Catacomb betreten!")
--say("")
--pc.setqf("can_in_dc", 1)
--end
--end
--Eintritt
when 20351.chat."The Devils Catacomb" with game.get_event_flag("dc_is_ok") == 1 and pc.getqf("can_in_dc") == 0 begin
if pc.get_level() < 80 then
say_title("Wächter der Katakombe")
say("")
say_reward("Du bist noch zu schwach für die Katakomben!")
say("")
else
say_title("Wächter der Katakombe")
say("")
say("Bisher haben "..game.get_event_flag("dcgamer").." Soldaten es versucht ")
say("und "..game.get_event_flag("dc_geschaft").." haben es tatsächlich geschaft")
say("Azrael zu besiegen!")
wait()
say_title("Wächter der Katakombe")
say("")
say_reward("Willst du es versuchen?")
say_reward("du wärst der "..game.get_event_flag("dc_versuche")..". Kämpfer der es")
say_reward("versucht!")
say("")
pc.setqf("Ebene", 1)
local dc_login = select("Betreten", "Abbrechen")
if dc_login == 1 then
pc.warp(415200, 4209200)
elseif dc_login == 2 then
return
end
end
end
--Ebene 1
when login with pc.get_map_index() == 216 begin
say_title("Devils Catacomb")
if pc.get_level() > 149 then
say("Um in die 2.Ebene zu kommen, musst du")
say_item("Seelenkristall-Schlüssel", 30311, "")
say("auf die Statue des Kud ziehen!")
say("Du droppst ihn bei den Monstern.")
say("Ihr habt ingesamt 90 Minuten Zeit!")
say("")
say_reward("Viel Glück!")
say("")
timer("dc10", 600)
pc.setqf("sksgedroppt", 0)
else
warp_all_to_village()
end
end
when kill with not npc.is_pc() and pc.get_map_index() == 216 begin
local sks = number(1,15)
if sks==1 and pc.getqf("sksgedroppt")==0 then
pc.setqf("sksgedroppt", 1)
chat("Du hast den Seelenkristall-Schlüssel gedroppt!")
game.drop_item(30311, 1)
else
chat("Dieses Monster hatte keinen Schlüssel.")
end
end
when 30101.take with item.vnum == 30311 begin
chat("Du wirst jetzt in die 2. Ebene gebracht.")
pc.remove_item("30311")
d.new_jump_all(216, 4632, 42082)
d.regen_file("data/dungeon/devilcave/dc_regen_ebene2.txt")
d.regen_file("data/dungeon/devilcave/dc_regen_tore_unten.txt")
d.regen_file("data/dungeon/devilcave/dc_regen_tore_left.txt")
d.spawn_mob(30103, 741, 221)
d.setf("Ebene", 2)
end
when login with pc.in_dungeon() begin
if d.getf("Ebene") == 2 then
chat("Ihr befindet euch jetzt in der 2. Ebene!")
chat("Schlagt euch zum Schildkrötenfels durch!")
chat("Ihr habt nur 10 minuten Zeit!")
timer("dc1", 600)
end
if d.getf("Ebene") == 3 then
chat("Findet und zerstört den richtigen Metin.")
chat("Ihr habt 20 Minuten Zeit.")
timer("dc2", 1200)
end
if d.getf("Ebene") == 4 then
chat("Findet den Weg aus dem Labyrinth.")
chat("Und findet die Inschrift am Runenpfahl.")
chat("Ihr habt 15 Minuten Zeit.")
timer("dc3", 900)
d.spawn_mob(30104, 500, 800)
d.spawn_mob(10800, 328, 779)
d.spawn_mob(10801, 70, 672)
d.spawn_mob(10802, 142, 865)
d.spawn_mob(10803, 433, 935)
d.spawn_mob(10804, 243, 854)
d.spawn_mob(10805, 182, 667)
end
if d.getf("Ebene") == 5 then
chat("Findet und tötet den Höllenbastard um das Fratzen-Totem zu bekommen!")
chat("Zieht es anschließend auf den Basalt-Obelisk auf dem Berg.")
chat("Ihr habt 15 Minuten Zeit.")
timer("dc4", 900)
d.spawn_mob(30104, 500, 800)
end
if d.getf("Ebene") == 6 then
chat("Tötet Tartaros um zur letzten Ebene zu kommen!")
chat("Ihr habt 15 Minuten Zeit.")
timer("dc5", 900)
d.spawn_mob(30104, 500, 800)
end
if d.getf("Ebene") == 7 then
chat("Tötet Azrael und setzt dem Unheil ein Ende!")
chat("Ihr habt 15 Minuten Zeit!")
timer("dc6", 900)
d.spawn_mob(30104, 500, 800)
end
end
when dc1.timer begin
chat("Die Zeit ist Abgelaufen!")
warp_all_to_village( pc.get_map_index() , 5 )
end
when dc10.timer begin
chat("Ihr habt noch 80 Minuten Zeit, Azrael zu finden und zu töten!")
timer("dc20", 600)
end
when dc20.timer begin
chat("Ihr habt noch 70 Minuten zeit!")
timer("dc30", 600)
end
when dc30.timer begin
chat("Ihr habt noch 60 Minuten zeit!")
timer("dc40", 600)
end
when dc40.timer begin
chat("Ihr habt noch 50 Minuten zeit!")
timer("dc50", 600)
end
when dc50.timer begin
chat("Ihr habt noch 40 Minuten zeit!")
timer("dc60", 600)
end
when dc60.timer begin
chat("Ihr habt noch 30 Minuten zeit!")
timer("dc70", 600)
end
when dc70.timer begin
chat("Ihr habt noch 20 Minuten zeit!")
timer("dc80", 600)
end
when dc80.timer begin
chat("Ihr habt noch 10 Minuten zeit!")
timer("dc110", 600)
end
when dc110.timer begin
chat("Die Zeit ist Abgelaufen!")
warp_all_to_village( pc.get_map_index() , 5 )
end
--Ebene 2
when 30103.chat."Weiter zur 3. Ebene" begin
npc.purge()
say_reward("Inschrift:")
say("Es ist noch ein weiter weg.")
wait()
d.new_jump_all(216, 5427, 42282)
d.setf("Ebene", 3)
d.regen_file("data/dungeon/devilcave/dc_regen_ebene3.txt")
local metindv = number(1,4)
if metindv==1 then
d.spawn_mob(8020, 1351, 348)
d.spawn_mob(8021, 1148, 350)
d.spawn_mob(8022, 1151, 155)
d.spawn_mob(8023, 1351, 149)
end
if metindv==2 then
d.spawn_mob(8023, 1351, 348)
d.spawn_mob(8022, 1148, 350)
d.spawn_mob(8021, 1151, 155)
d.spawn_mob(8020, 1351, 149)
end
if metindv==3 then
d.spawn_mob(8022, 1351, 348)
d.spawn_mob(8023, 1148, 350)
d.spawn_mob(8020, 1151, 155)
d.spawn_mob(8021, 1351, 149)
end
if metindv==4 then
d.spawn_mob(8021, 1351, 348)
d.spawn_mob(8020, 1148, 350)
d.spawn_mob(8023, 1151, 155)
d.spawn_mob(8022, 1351, 149)
end
end
when 8023.kill with pc.in_dungeon() begin
chat("Ein Falscher Metin wurde zerstört.")
end
when 8022.kill with pc.in_dungeon() begin
chat("Ein Falscher Metin wurde zerstört.")
end
when 8021.kill with pc.in_dungeon() begin
chat("Ein Falscher Metin wurde zerstört.")
end
when 8020.kill with pc.in_dungeon() begin
chat("Der richtige Metin wurde zerstört.")
chat("Ihr kommt nun in die 4. Ebene.")
timer("devils_catacomb_goto_ebene5", 10)
end
when dc2.timer begin
chat("Die Zeit ist Abgelaufen!")
warp_all_to_village( pc.get_map_index() , 5 )
end
--Ebene 4 (Labyrinth)
when devils_catacomb_goto_ebene4.timer begin
d.new_jump_all(216, 4143, 42657)
d.setf("Ebene", 4)
end
when 30104.chat."Inschrift" with pc.in_dungeon() begin
say_title("Ihr seid schon ziemlich weit gekommen.")
timer("dc3", 6000)
chat("Ihr habt den richtigen Weg gefunden.")
chat("Ihr kommt jetzt in die 5. Ebene.")
timer("devils_catacomb_goto_ebene5", 5)
end
when dc3.timer begin
chat("Die Zeit ist Abgelaufen!")
warp_all_to_village( pc.get_map_index() , 5 )
end
--Ebene 6 (Tartaros)
when devils_catacomb_goto_ebene5.timer begin
d.new_jump_all(216, 4917, 42925)
d.spawn_mob(30102, 848, 739)
d.setf("Ebene", 5)
d.regen_file("data/dungeon/devilcave/dc_regen_ebene5.txt")
local tartaros = number(1,4)
if tartaros==1 then
d.spawn_mob(2593, 991, 848)
end
if tartaros==2 then
d.spawn_mob(2593, 999, 652)
end
if tartaros==3 then
d.spawn_mob(2593, 848, 577)
end
if tartaros==4 then
d.spawn_mob(2593, 703, 644)
end
if tartaros==5 then
d.spawn_mob(2593, 692, 817)
end
end
when 2593.kill with pc.in_dungeon() begin
chat("Der Höllenbastard wurde besiegt und das Fratzen-Totem wurde Fallengelassen!")
chat("Begebt euch mit dem Fratzen-Totem auf den Berg in der Mitte.")
game.drop_item(30312, 1)
end
when 30102.take with item.vnum == 30312 begin
timer("dc4", 6000)
item.remove()
npc.purge()
say_reward("...")
chat("Ihr werdet jetzt in die 6. Ebene gebracht.")
timer("devils_catacomb_goto_ebene6", 5)
end
when dc4.timer begin
chat("Die Zeit ist Abgelaufen!")
warp_all_to_village( pc.get_map_index() , 5 )
end
--Ebene 7 (Charon)
when devils_catacomb_goto_ebene6.timer begin
d.new_jump_all(216, 5422, 42782)
d.setf("Ebene", 6)
d.regen_file("data/dungeon/devilcave/dc_regen_ebene6.txt")
end
when 2591.kill with pc.in_dungeon() begin
timer("dc5", 6000)
d.kill_all()
chat("Ihr habt Tartaros besiegt!")
chat("Bereitet euch auf den Kampf mit Azrael vor!")
timer("devils_catacomb_goto_ebene7", 10)
end
when dc5.timer begin
chat("Die Zeit ist Abgelaufen!")
warp_all_to_village( pc.get_map_index() , 5 )
end
--Ebene 8 (Azrael)
when devils_catacomb_goto_ebene7.timer begin
d.new_jump_all(216, 41216, 43191)
d.setf("Ebene", 7)
d.regen_file("data/dungeon/devilcave/dc_regen_ebene7.txt")
end
when 2598.kill with pc.in_dungeon() begin
game.set_event_flag(("dc_geschaft"), game.get_event_flag("dc_geschaft")+1)
local level = pc.get_level()
chat("Ihr habt ihn Besiegt und das Böse vertrieben.")
chat("Ihr werdet in 2 Minuten herrausteleportiert!")
chat("Sammelt schnell die Schätze ein, bevor es zu spät ist.")
d.kill_all()
d.kill_all()
notice_all("Die Gruppe von "..pc.get_name().." hat Azrael besiegt!")
timer("goout_from_dc", 120)
d.spawn_mob(9012, 74, 1159)
end
when dc6.timer begin
chat("Die Zeit ist Abgelaufen!")
warp_all_to_village( pc.get_map_index() , 5 )
end
when goout_from_dc.timer begin
warp_all_to_village( pc.get_map_index() , 3 )
end
end
end
|
|
|
|
01/08/2016, 22:14
|
#12092
|
elite*gold: 0
Join Date: Jul 2012
Posts: 5,520
Received Thanks: 1,350
|
Könnte mir bitte jemand sagen ob diese Quest Fehler hat.
Code:
quest viptausch begin
state start begin
function GetNameForItem(vnum)
return ({ [35002]= "[VIP]", [85006] = "[SEX]", [85007] = "[PVP]", [85008] = "[HOT]", [85009] = "[LOW]", [85010] = "[BOB]", [85011] = "[PVM]", [85012] = "[POW]", [85013] = "[KID]", [85014] = "[FAN]"})[vnum] or false -- Hier einfach ItemID und den dazugehörigen String z.B. "[MVP]" eintragen.
end
function HasATitle(title)
return ({ ["[VIP]"] = 1, ["[SEX]"] = 1, ["[PVP]"] = 1, ["[HOT]"] = 1, ["[LOW]"] = 1, ["[BOB]"] = 1, ["[PVM]"] = 1, ["[POW]"] = 1, ["[KID]"] = 1, ["[FAN]"] = 1})[title] or false -- Alle Titel die es geben kann auch in die Tabelle und immer =1 setzen.
end
when 22005.take begin -- NpcId eintragen
local Vnum = item.get_vnum() -- Vnum darf hier nicht durch ne Zahl verändert werden, es ist eine Variable.
local Name = viptausch.GetNameForItem(Vnum) -- Achtung Quest Name verwendet.
local DieVariableKappa = string.sub(pc.get_name(), 1, 4) or "undefiniert"
if Name then
if viptausch.HasATitle(DieVariableKappa) then
say("Du hast schon nen Titel!")
else
local ChatName = viptausch.MakeKlammerWeg(Name)
say_title("Heyhooo,")
say("")
say("das ist ja ein sehr schönes Item, was")
say("du da hast. Das Item verleiht mir die Kraft.")
say("Ich ändere deinen Namen in "..ChatName..""..pc.get_name().."!")
say("Im Questfenster gehen keine GM Klammern, daher")
say("normale als Anzeige, nachher richtige")
say("Ich arbeite nicht mit der Mafia, daher")
say("musst für die Namensänderung 20 Min gebannt sein.")
if select("Item geben, Name ändern","Nichts da, es bleibt wie es ist.")==2 then return end
if viptausch.CheckPremise(Vnum, Name) then -- Achtung Quest Name verwendet.
if string.len(pc.get_name())<= 7 and not viptausch.player_exists(Name..""..pc.get_name()) then -- Achtung Questname verwendet.
say_title("Erfolgreich!")
say("")
say_reward("Bereite dich auf einen Kick vor.")
say_reward("")
say_reward("Klicke auf 'Weiter' um fortzufahren.")
wait()
mysql_query("UPDATE player.player SET name='"..Name..""..pc.get_name().."' WHERE name='"..pc.get_name().."'")
mysql_query("UPDATE account.account SET availDt = NOW() + INTERVAL 20 MINUTE WHERE id = (SELECT account_id FROM player.player WHERE name='"..Name..""..pc.get_name().."');")
pc.remove_item(Vnum, 1)
cmdchat("exit")
else
say_title(pc.get_name().."!")
say("")
say("Die Vorraussetzungen zwingen dich einen")
say("neuen Namen zuwählen. Mögliche Gründe")
say("sind ein zu langer Name oder dein")
say("Name existiert mit "..ChatName.." bereits.")
say("")
say_reward("Möchtest du ihn ändern um "..ChatName.." zuwerden?")
if select("Ja", "Nein")==2 then return end
say_title("Name wechseln")
say("Gib bitte deinen Wunschnamen ein:")
say_reward("Beachte!")
say_reward("Nicht mehr als 7 oder weniger als 2 Buchstaben.")
say_reward("Sonderzeichen sind nicht erlaubt.")
local inp = input()
if viptausch.NamePremise(inp, 7, 2, 1) then -- Achtung Questname verwendet.
say_title("Name wechseln")
say("")
say("Dein neuer Name besitzt entweder mehr als 7,")
say("weniger als 2 Buchstaben oder enthält ein")
say("unzulässiges Zeichen.")
return
elseif viptausch.player_exists(Name..""..inp) then -- Achtung Questname verwendet.
say_title("Name wechseln")
say("")
say("Dieser Name existiert bereits,")
say("versuch es mit einem neuen erneut!")
return
end
say_title("Super!")
say("Dein Name erfüllt alle Voraussetzungen.")
say("")
say_title("Letzter Check")
say("Möchtest du wirklich mit dem Namen")
say(ChatName..""..inp.." den Namen aktivieren?")
if select("Ja", "Nein")==2 then return end
say_title("Erfolgreich!")
say("")
say_reward("Bereite dich auf einen Kick vor.")
say_reward("")
say_reward("Klicke auf 'Weiter' um fortzufahren.")
wait()
mysql_query("UPDATE player.player SET name='"..Name..""..inp.."' WHERE name='"..pc.get_name().."'")
mysql_query("UPDATE account.account SET availDt = NOW() + INTERVAL 20 MINUTE WHERE id = (SELECT account_id FROM player.player WHERE name='"..Name..""..inp.."');")
pc.remove_item(Vnum, 1)
cmdchat("exit")
end
end
end
end
end
function player_exists(name)
return (tonumber(mysql_query("select count(*) from player.player where name = '"..name.."';")[1][1]) >= 1)
end
function NamePremise(name, maxi, mini, sonder)
return (sonder == 0 and (string.len(name) > maxi or name == "" or string.len(name) < mini) or (string.len(name) > maxi or name == "" or string.len(name) < mini or string.find(name, "(%W)") != nil))
end
function MakeKlammerWeg(dd)
return string.gsub(string.gsub(dd, "%[", "("), "%]", ")")
end
function CheckPremise(Vnum, Name)
if pc.is_married() then
say("Während du verheiratet bist kannst du")
say("kein Namen erhalten.")
return 0
elseif pc.is_polymorphed() then
say("Während du verwandelt bist kannst du")
say("kein Namen erhalten.")
return 0
elseif not pc.can_warp() then
say("Du hast vorkurzem gehandelt, so kannst du")
say("kein Namen erhalten.")
return 0
elseif pc.has_guild() then
say("Während du in einer Gilde bist kannst du")
say("kein Namen erhalten.")
return 0
elseif party.is_party() then
say("Während du in einer Gruppe bist kannst du")
say("kein Namen erhalten.")
return 0
elseif pc.count_item(Vnum) < 1 then
say("Bugusern wird kein Name gegeben!")
return 0
elseif string.find(pc.get_name(), (string.gsub(Name, "%[", ""))) != nil then
say("Du hast diesen Namen schon.")
return 0
else
return 1
end
end
end
end
|
|
|
01/09/2016, 01:12
|
#12093
|
elite*gold: 26
Join Date: Mar 2010
Posts: 3,765
Received Thanks: 2,661
|
was sagt denn deine console wenn du die quests kompilierst?
Quote:
Originally Posted by Red Firestar
Könnte mir bitte jemand sagen ob diese Quest Fehler hat.
Code:
quest viptausch begin
state start begin
function GetNameForItem(vnum)
return ({ [35002]= "[VIP]", [85006] = "[SEX]", [85007] = "[PVP]", [85008] = "[HOT]", [85009] = "[LOW]", [85010] = "[BOB]", [85011] = "[PVM]", [85012] = "[POW]", [85013] = "[KID]", [85014] = "[FAN]"})[vnum] or false -- Hier einfach ItemID und den dazugehörigen String z.B. "[MVP]" eintragen.
end
function HasATitle(title)
return ({ ["[VIP]"] = 1, ["[SEX]"] = 1, ["[PVP]"] = 1, ["[HOT]"] = 1, ["[LOW]"] = 1, ["[BOB]"] = 1, ["[PVM]"] = 1, ["[POW]"] = 1, ["[KID]"] = 1, ["[FAN]"] = 1})[title] or false -- Alle Titel die es geben kann auch in die Tabelle und immer =1 setzen.
end
when 22005.take begin -- NpcId eintragen
local Vnum = item.get_vnum() -- Vnum darf hier nicht durch ne Zahl verändert werden, es ist eine Variable.
local Name = viptausch.GetNameForItem(Vnum) -- Achtung Quest Name verwendet.
local DieVariableKappa = string.sub(pc.get_name(), 1, 4) or "undefiniert"
if Name then
if viptausch.HasATitle(DieVariableKappa) then
say("Du hast schon nen Titel!")
else
local ChatName = viptausch.MakeKlammerWeg(Name)
say_title("Heyhooo,")
say("")
say("das ist ja ein sehr schönes Item, was")
say("du da hast. Das Item verleiht mir die Kraft.")
say("Ich ändere deinen Namen in "..ChatName..""..pc.get_name().."!")
say("Im Questfenster gehen keine GM Klammern, daher")
say("normale als Anzeige, nachher richtige")
say("Ich arbeite nicht mit der Mafia, daher")
say("musst für die Namensänderung 20 Min gebannt sein.")
if select("Item geben, Name ändern","Nichts da, es bleibt wie es ist.")==2 then return end
if viptausch.CheckPremise(Vnum, Name) then -- Achtung Quest Name verwendet.
if string.len(pc.get_name())<= 7 and not viptausch.player_exists(Name..""..pc.get_name()) then -- Achtung Questname verwendet.
say_title("Erfolgreich!")
say("")
say_reward("Bereite dich auf einen Kick vor.")
say_reward("")
say_reward("Klicke auf 'Weiter' um fortzufahren.")
wait()
mysql_query("UPDATE player.player SET name='"..Name..""..pc.get_name().."' WHERE name='"..pc.get_name().."'")
mysql_query("UPDATE account.account SET availDt = NOW() + INTERVAL 20 MINUTE WHERE id = (SELECT account_id FROM player.player WHERE name='"..Name..""..pc.get_name().."');")
pc.remove_item(Vnum, 1)
cmdchat("exit")
else
say_title(pc.get_name().."!")
say("")
say("Die Vorraussetzungen zwingen dich einen")
say("neuen Namen zuwählen. Mögliche Gründe")
say("sind ein zu langer Name oder dein")
say("Name existiert mit "..ChatName.." bereits.")
say("")
say_reward("Möchtest du ihn ändern um "..ChatName.." zuwerden?")
if select("Ja", "Nein")==2 then return end
say_title("Name wechseln")
say("Gib bitte deinen Wunschnamen ein:")
say_reward("Beachte!")
say_reward("Nicht mehr als 7 oder weniger als 2 Buchstaben.")
say_reward("Sonderzeichen sind nicht erlaubt.")
local inp = input()
if viptausch.NamePremise(inp, 7, 2, 1) then -- Achtung Questname verwendet.
say_title("Name wechseln")
say("")
say("Dein neuer Name besitzt entweder mehr als 7,")
say("weniger als 2 Buchstaben oder enthält ein")
say("unzulässiges Zeichen.")
return
elseif viptausch.player_exists(Name..""..inp) then -- Achtung Questname verwendet.
say_title("Name wechseln")
say("")
say("Dieser Name existiert bereits,")
say("versuch es mit einem neuen erneut!")
return
end
say_title("Super!")
say("Dein Name erfüllt alle Voraussetzungen.")
say("")
say_title("Letzter Check")
say("Möchtest du wirklich mit dem Namen")
say(ChatName..""..inp.." den Namen aktivieren?")
if select("Ja", "Nein")==2 then return end
say_title("Erfolgreich!")
say("")
say_reward("Bereite dich auf einen Kick vor.")
say_reward("")
say_reward("Klicke auf 'Weiter' um fortzufahren.")
wait()
mysql_query("UPDATE player.player SET name='"..Name..""..inp.."' WHERE name='"..pc.get_name().."'")
mysql_query("UPDATE account.account SET availDt = NOW() + INTERVAL 20 MINUTE WHERE id = (SELECT account_id FROM player.player WHERE name='"..Name..""..inp.."');")
pc.remove_item(Vnum, 1)
cmdchat("exit")
end
end
end
end
end
function player_exists(name)
return (tonumber(mysql_query("select count(*) from player.player where name = '"..name.."';")[1][1]) >= 1)
end
function NamePremise(name, maxi, mini, sonder)
return (sonder == 0 and (string.len(name) > maxi or name == "" or string.len(name) < mini) or (string.len(name) > maxi or name == "" or string.len(name) < mini or string.find(name, "(%W)") != nil))
end
function MakeKlammerWeg(dd)
return string.gsub(string.gsub(dd, "%[", "("), "%]", ")")
end
function CheckPremise(Vnum, Name)
if pc.is_married() then
say("Während du verheiratet bist kannst du")
say("kein Namen erhalten.")
return 0
elseif pc.is_polymorphed() then
say("Während du verwandelt bist kannst du")
say("kein Namen erhalten.")
return 0
elseif not pc.can_warp() then
say("Du hast vorkurzem gehandelt, so kannst du")
say("kein Namen erhalten.")
return 0
elseif pc.has_guild() then
say("Während du in einer Gilde bist kannst du")
say("kein Namen erhalten.")
return 0
elseif party.is_party() then
say("Während du in einer Gruppe bist kannst du")
say("kein Namen erhalten.")
return 0
elseif pc.count_item(Vnum) < 1 then
say("Bugusern wird kein Name gegeben!")
return 0
elseif string.find(pc.get_name(), (string.gsub(Name, "%[", ""))) != nil then
say("Du hast diesen Namen schon.")
return 0
else
return 1
end
end
end
end
|
|
|
|
01/09/2016, 02:31
|
#12094
|
elite*gold: 0
Join Date: Jul 2012
Posts: 5,520
Received Thanks: 1,350
|
Quote:
Originally Posted by .Delta
was sagt denn deine console wenn du die quests kompilierst?
|
Nichts sie sollte gehen aber sie geht nicht.
|
|
|
01/09/2016, 12:27
|
#12095
|
elite*gold: 26
Join Date: Mar 2010
Posts: 3,765
Received Thanks: 2,661
|
Hm, habe sie bei mir mal ausprobiert.
Funktioniert eigentlich ganz gut.
Das Einzigste was ich geändert habe ist der cmdchat Befehl von exit zu quit.
PHP Code:
quest viptausch begin state start begin function GetNameForItem(vnum) return ({ [35002]= "[VIP]", [85006] = "[SEX]", [85007] = "[PVP]", [85008] = "[HOT]", [85009] = "[LOW]", [85010] = "[BOB]", [85011] = "[PVM]", [85012] = "[POW]", [85013] = "[KID]", [85014] = "[FAN]"})[vnum] or false -- Hier einfach ItemID und den dazugehörigen String z.B. "[MVP]" eintragen. end function HasATitle(title) return ({ ["[VIP]"] = 1, ["[SEX]"] = 1, ["[PVP]"] = 1, ["[HOT]"] = 1, ["[LOW]"] = 1, ["[BOB]"] = 1, ["[PVM]"] = 1, ["[POW]"] = 1, ["[KID]"] = 1, ["[FAN]"] = 1})[title] or false -- Alle Titel die es geben kann auch in die Tabelle und immer =1 setzen. end when 22005.take begin -- NpcId eintragen local Vnum = item.get_vnum() -- Vnum darf hier nicht durch ne Zahl verändert werden, es ist eine Variable. local Name = viptausch.GetNameForItem(Vnum) -- Achtung Quest Name verwendet. local DieVariableKappa = string.sub(pc.get_name(), 1, 4) or "undefiniert" if Name then if viptausch.HasATitle(DieVariableKappa) then say("Du hast schon nen Titel!") else local ChatName = viptausch.MakeKlammerWeg(Name) say_title("Heyhooo,") say("") say("das ist ja ein sehr schönes Item, was") say("du da hast. Das Item verleiht mir die Kraft.") say("Ich ändere deinen Namen in "..ChatName..""..pc.get_name().."!") say("Im Questfenster gehen keine GM Klammern, daher") say("normale als Anzeige, nachher richtige") say("Ich arbeite nicht mit der Mafia, daher") say("musst für die Namensänderung 20 Min gebannt sein.") if select("Item geben, Name ändern","Nichts da, es bleibt wie es ist.")==2 then return end if viptausch.CheckPremise(Vnum, Name) == 1 then -- Achtung Quest Name verwendet. if string.len(pc.get_name())<= 7 and not viptausch.player_exists(Name..""..pc.get_name()) then -- Achtung Questname verwendet. say_title("Erfolgreich!") say("") say_reward("Bereite dich auf einen Kick vor.") say_reward("") say_reward("Klicke auf 'Weiter' um fortzufahren.") wait() mysql_query("UPDATE player.player SET name='"..Name..""..pc.get_name().."' WHERE name='"..pc.get_name().."'") mysql_query("UPDATE account.account SET availDt = NOW() + INTERVAL 20 MINUTE WHERE id = (SELECT account_id FROM player.player WHERE name='"..Name..""..pc.get_name().."');") pc.remove_item(Vnum, 1) cmdchat("quit") else say_title(pc.get_name().."!") say("") say("Die Vorraussetzungen zwingen dich einen") say("neuen Namen zuwählen. Mögliche Gründe") say("sind ein zu langer Name oder dein") say("Name existiert mit "..ChatName.." bereits.") say("") say_reward("Möchtest du ihn ändern um "..ChatName.." zuwerden?") if select("Ja", "Nein")==2 then return end say_title("Name wechseln") say("Gib bitte deinen Wunschnamen ein:") say_reward("Beachte!") say_reward("Nicht mehr als 7 oder weniger als 2 Buchstaben.") say_reward("Sonderzeichen sind nicht erlaubt.") local inp = input() if viptausch.NamePremise(inp, 7, 2, 1) then -- Achtung Questname verwendet. say_title("Name wechseln") say("") say("Dein neuer Name besitzt entweder mehr als 7,") say("weniger als 2 Buchstaben oder enthält ein") say("unzulässiges Zeichen.") return elseif viptausch.player_exists(Name..""..inp) then -- Achtung Questname verwendet. say_title("Name wechseln") say("") say("Dieser Name existiert bereits,") say("versuch es mit einem neuen erneut!") return end say_title("Super!") say("Dein Name erfüllt alle Voraussetzungen.") say("") say_title("Letzter Check") say("Möchtest du wirklich mit dem Namen") say(ChatName..""..inp.." den Namen aktivieren?") if select("Ja", "Nein")==2 then return end say_title("Erfolgreich!") say("") say_reward("Bereite dich auf einen Kick vor.") say_reward("") say_reward("Klicke auf 'Weiter' um fortzufahren.") wait() mysql_query("UPDATE player.player SET name='"..Name..""..inp.."' WHERE name='"..pc.get_name().."'") mysql_query("UPDATE account.account SET availDt = NOW() + INTERVAL 20 MINUTE WHERE id = (SELECT account_id FROM player.player WHERE name='"..Name..""..inp.."');") pc.remove_item(Vnum, 1) cmdchat("quit") end end end end end function player_exists(name) return (tonumber(mysql_query("select count(*) from player.player where name = '"..name.."';")[1][1]) >= 1) end function NamePremise(name, maxi, mini, sonder) return (sonder == 0 and (string.len(name) > maxi or name == "" or string.len(name) < mini) or (string.len(name) > maxi or name == "" or string.len(name) < mini or string.find(name, "(%W)") != nil)) end function MakeKlammerWeg(dd) return string.gsub(string.gsub(dd, "%[", "("), "%]", ")") end function CheckPremise(Vnum, Name) if pc.is_married() then say("Während du verheiratet bist kannst du") say("kein Namen erhalten.") return 0 elseif pc.is_polymorphed() then say("Während du verwandelt bist kannst du") say("kein Namen erhalten.") return 0 elseif not pc.can_warp() then say("Du hast vorkurzem gehandelt, so kannst du") say("kein Namen erhalten.") return 0 elseif pc.has_guild() then say("Während du in einer Gilde bist kannst du") say("kein Namen erhalten.") return 0 elseif party.is_party() then say("Während du in einer Gruppe bist kannst du") say("kein Namen erhalten.") return 0 elseif pc.count_item(Vnum) < 1 then say("Bugusern wird kein Name gegeben!") return 0 elseif string.find(pc.get_name(), (string.gsub(Name, "%[", ""))) != nil then say("Du hast diesen Namen schon.") return 0 else return 1 end end end end
|
|
|
01/09/2016, 15:52
|
#12096
|
elite*gold: 0
Join Date: Apr 2012
Posts: 121
Received Thanks: 64
|
Code:
quest tshop begin
state start begin
when 20091.chat."Tranenshop" with pc.get_level() > 49 begin
local anzahltrnen = pc.count_item(30186)
say_title("Tranenshop")
say("Hallo "..pc.get_name()..",")
say("Bei mir kannst du Versteinerte Tranen")
say("gegen legendare Items eintauschen.")
say_item_vnum(30186)
say("")
local open = select("Informationen","Shop offnen","Abbrechen")
if open == 3 then
return
elseif open == 1 then
say_title("Informationen ~ Tranenshop")
say("Hallo "..pc.get_name()..",")
say("Du hast "..anzahltrnen.." Versteinerte Tranen.")
elseif open == 2 then
say_title("Der Tranenshop")
local cat = select("Waffen","Rustungen","Abbrechen")
if cat == 3 then
return
elseif cat == 1 then
say_title("Waffen ~ Tranenshop")
local waffen = select("Giftschwert+9(120 Tranen)","Grollschwert+9(120 Tranen)","Lowenschwert+9(120 Tranen)","Teufelsflugel Chakram+9(120 Tranen)","Krahenstahlbogen+9(120 Tranen)","Orchideenglocke+9(120 Tranen)","Abbrechen")
if waffen == 7 then
return
elseif waffen == 1 then
say_title("Giftschwert ~ Waffen ~ Tranenshop")
say_item_vnum(189)
say("")
say("")
say("Bestatigung")
say("Mochtest du wirklich das Giftschwert+9")
say("fur 120 Tranen kaufen?")
local yn = select("Ja","Nein")
if yn == 2 then
return
elseif yn == 1 then
pc.give_item2("189", 1)
pc.removeitem("30186", 120)
end
elseif waffen == 2 then
say_title("Grollschwert ~ Waffen ~ Tranenshop")
say_item_vnum(3169)
say("")
say("")
say("")
say("Bestatigung")
say("Mochtest du wirklich das Grollschwert+9")
say("fur 120 Tranen kaufen?")
local yn = select("Ja","Nein")
if yn == 2 then
return
elseif yn == 1 then
pc.give_item2("3169", 1)
pc.removeitem("30186", 120)
end
elseif waffen == 3 then
say_title("Lowenschwert ~ Waffen ~ Tranenshop")
say_item_vnum(199)
say("")
say("")
say("Bestatigung")
say("Mochtest du wirklich das Lowenschwert+9")
say("fur 120 Tranen kaufen?")
local yn = select("Ja","Nein")
if yn == 2 then
return
elseif yn == 1 then
pc.give_item2("199", 1)
pc.removeitem("30186", 120)
end
elseif waffen == 4 then
say_title("Teufelsflugel Chakram ~ Waffen ~ Tranenshop")
say_item_vnum(1139)
say("")
say("Bestatigung")
say("Mochtest du wirklich das Teufelsflugel Chakram+9")
say("fur 120 Tranen kaufen?")
local yn = select("Ja","Nein")
if yn == 2 then
return
elseif yn == 1 then
pc.give_item2("1139", 1)
pc.removeitem("30186", 120)
end
elseif waffen == 5 then
say_title("Krahenstahlbogen ~ Waffen ~ Tranenshop")
say_item_vnum(2179)
say("")
say("")
say("Bestatigung")
say("Mochtest du wirklich den Krahenstahlbogen+9")
say("fur 120 Tranen kaufen?")
local yn = select("Ja","Nein")
if yn == 2 then
return
elseif yn == 1 then
pc.give_item2("2179", 1)
pc.removeitem("30186", 120)
end
elseif waffen == 6 then
say_title("Orchideenglocke ~ Waffen ~ Tranenshop")
say_item_vnum(5129)
say("")
say("Bestatigung")
say("Mochtest du wirklich die Orchideenglocke+9")
say("fur 120 Tranen kaufen?")
local yn = select("Ja","Nein")
if yn == 2 then
return
elseif yn == 1 then
pc.give_item2("5129", 1)
pc.removeitem("30186", 120)
end
end
elseif cat == 2 then
say_title("Rustungen ~ Tranenshop")
local russis = select("Hwang Rustung(450 Tranen)","Rote Hwang Rustung(450 Tranen)","Zin-Hwang Rustung(450 Tranen)","Sang-Hwang Rustung(450 Tranen)","Blaustahlpanzer+9(250 Tranen)","Blauer Drachenanzug+9(250 Tranen)","Auraplattenpanzer+9(250 Tranen)","Kleidung des Drachen+9(250 Tranen)","Abbrechen")
if russis == 9 then
return
elseif russis == 1 then
say_title("Hwang Rustung ~ Waffen ~ Tranenshop")
say_item_vnum(11971)
say("")
say("")
say("Bestatigung")
say("Mochtest du wirklich die Hwang Rustung")
say("fur 450 Tranen kaufen?")
local yn = select("Ja","Nein")
local yn = select("Ja","Nein")
if yn == 2 then
return
elseif yn == 1 then
pc.give_item2("11971", 1)
pc.removeitem("30186", 450)
end
elseif russis == 2 then
say_title("Rote Hwang Rustung ~ Waffen ~ Tranenshop")
say_item_vnum(11972)
say("")
say("")
say("Bestatigung")
say("Mochtest du wirklich die Rote Hwang Rustung")
say("fur 450 Tranen kaufen?")
local yn = select("Ja","Nein")
local yn = select("Ja","Nein")
if yn == 2 then
return
elseif yn == 1 then
pc.give_item2("11972", 1)
pc.removeitem("30186", 450)
end
elseif russis == 3 then
say_title("Zin-Hwang Rustung ~ Waffen ~ Tranenshop")
say_item_vnum(11973)
say("")
say("")
say("Bestatigung")
say("Mochtest du wirklich die Zin-Hwang Rustung")
say("fur 450 Tranen kaufen?")
local yn = select("Ja","Nein")
local yn = select("Ja","Nein")
if yn == 2 then
return
elseif yn == 1 then
pc.give_item2("11973", 1)
pc.removeitem("30186", 450)
end
elseif russis == 4 then
say_title("Sang-Hwang Rustung ~ Waffen ~ Tranenshop")
say_item_vnum(11974)
say("")
say("")
say("Bestatigung")
say("Mochtest du wirklich die Sang-Hwang Rustung")
say("fur 450 Tranen kaufen?")
local yn = select("Ja","Nein")
local yn = select("Ja","Nein")
if yn == 2 then
return
elseif yn == 1 then
pc.give_item2("11974", 1)
pc.removeitem("30186", 450)
end
elseif russis == 5 then
say_title("Blaustahlpanzer ~ Waffen ~ Tranenshop")
say_item_vnum(12019)
say("")
say("")
say("Bestatigung")
say("Mochtest du wirklich den Blaustahlpanzer+9")
say("fur 250 Tranen kaufen?")
local yn = select("Ja","Nein")
local yn = select("Ja","Nein")
if yn == 2 then
return
elseif yn == 1 then
pc.give_item2("12019", 1)
pc.removeitem("30186", 250)
end
elseif russis == 6 then
say_title("Blauer Drachenanzug ~ Waffen ~ Tranenshop")
say_item_vnum(12029)
say("")
say("")
say("Bestatigung")
say("Mochtest du wirklich den Blauen Drachenanzug+9")
say("fur 250 Tranen kaufen?")
local yn = select("Ja","Nein")
local yn = select("Ja","Nein")
if yn == 2 then
return
elseif yn == 1 then
pc.give_item2("12029", 1)
pc.removeitem("30186", 250)
end
elseif russis == 7 then
say_title("Auraplattenpanzer ~ Waffen ~ Tranenshop")
say_item_vnum(12039)
say("")
say("")
say("Bestatigung")
say("Mochtest du wirklich den Auraplattenpanzer+9")
say("fur 250 Tranen kaufen?")
local yn = select("Ja","Nein")
local yn = select("Ja","Nein")
if yn == 2 then
return
elseif yn == 1 then
pc.give_item2("12039", 1)
pc.removeitem("30186", 250)
end
elseif russis == 8 then
say_title("Kleidung des Drachen ~ Waffen ~ Tranenshop")
say_item_vnum(12049)
say("")
say("")
say("Bestatigung")
say("Mochtest du wirklich die Kleidung des Drachen+9")
say("fur 250 Tranen kaufen?")
local yn = select("Ja","Nein")
if yn == 2 then
return
elseif yn == 1 then
pc.give_item2("12049", 1)
pc.removeitem("30186", 250)
end
end
end
end
end
end
end
This quest gives the armor and weapons even if you dont have the amount of item (30186,250) pf
|
|
|
01/09/2016, 16:22
|
#12097
|
elite*gold: 26
Join Date: Mar 2010
Posts: 3,765
Received Thanks: 2,661
|
you have to check if the player has that amount of items to exchange.
PHP Code:
quest tshop begin state start begin when 20091.chat."Tranenshop" with pc.get_level() > 49 begin local anzahltrnen = pc.count_item(30186) say_title("Tranenshop") say("Hallo "..pc.get_name()..",") say("Bei mir kannst du Versteinerte Tranen") say("gegen legendare Items eintauschen.") say_item_vnum(30186) say("") local open = select("Informationen","Shop offnen","Abbrechen") if open == 3 then return elseif open == 1 then say_title("Informationen ~ Tranenshop") say("Hallo "..pc.get_name()..",") say("Du hast "..anzahltrnen.." Versteinerte Tranen.") elseif open == 2 then say_title("Der Tranenshop") local cat = select("Waffen","Rustungen","Abbrechen") if cat == 3 then return elseif cat == 1 then say_title("Waffen ~ Tranenshop") local witems = {{189, 120}, {3169, 120}, {199, 120}, {1139, 120}, {2179, 120}, {5129, 120}} local waffen = select("Giftschwert+9(120 Tranen)","Grollschwert+9(120 Tranen)","Lowenschwert+9(120 Tranen)","Teufelsflugel Chakram+9(120 Tranen)","Krahenstahlbogen+9(120 Tranen)","Orchideenglocke+9(120 Tranen)","Abbrechen") if waffen == 7 then return end local item = witems[waffen][1] local tranen = witems[waffen][2] say_item_vnum(item) say("") say("") say("Bestatigung") say("Mochtest du wirklich das "..item_name(item).."") say("fur "..tranen.." Tranen kaufen?") say("") say("") say("") say("") if select("Ja", "Nein") == 2 then return end if pc.count_item(30186) < tranen then say("Du hast nicht genug Tranen!") return end pc.give_item2(item, 1) pc.remove_item(30186, tranen) elseif cat == 2 then say_title("Rustungen ~ Tranenshop") local ritems = {{11971, 450}, {11972, 450}, {11973, 450}, {11974, 450}, {12019, 250}, {12029, 250}, {12039, 250}, {12049, 250}} local russis = select("Hwang Rustung(450 Tranen)","Rote Hwang Rustung(450 Tranen)","Zin-Hwang Rustung(450 Tranen)","Sang-Hwang Rustung(450 Tranen)","Blaustahlpanzer+9(250 Tranen)","Blauer Drachenanzug+9(250 Tranen)","Auraplattenpanzer+9(250 Tranen)","Kleidung des Drachen+9(250 Tranen)","Abbrechen") if russis == 9 then return end local item = ritems[russis][1] local tranen = ritems[russis][2] say_item_vnum(item) say("") say("") say("Bestatigung") say("Mochtest du wirklich das "..item_name(item).."") say("fur "..tranen.." Tranen kaufen?") say("") say("") say("") say("") if select("Ja", "Nein") == 2 then return end if pc.count_item(30186) < tranen then say("Du hast nicht genug Tranen!") return end pc.give_item2(item, 1) pc.remove_item(30186, tranen) end end end end end
|
|
|
01/10/2016, 12:08
|
#12098
|
elite*gold: 0
Join Date: Mar 2015
Posts: 119
Received Thanks: 29
|
PvP Quest
Hallo, ich habe mich mal an einer PvP Quest versucht. Hat auch alles soweit geklappt. Dann habe ich versucht einen kleinen Shop über die Quest(nichts großes) reinzubauen. Seitdem bekomme ich einen Fehler bei der make.sh.
Die sagt aber auch nicht viel. Nur: "Error occured on compile Quest/pvpexp.quest"
Quest:
Code:
quest pvpexp begin
state start begin
when login with pc.level >= 75 begin
notice_all("".. pc.get_name() .." hat soeben die lvl 75 PvP quest angenommen.")
set_state("player_kill")
pc.setqf("state", 0)
q.set_counter("Getötete Spieler", 0)
end
end
state player_kill begin
when letter begin
send_letter("PvP Punkte")
end
when button or info begin
say_title("PvP Punkte Menü")
say("Bitte wählen:")
local s = select("Punkte Shop","Statistik","Reset","Abbrechen")
if s == 1 then
say_title("PvP Punkte Menü")
say("Du besitzt derzeit "..pc.getqf(state).."Punkte")
local shop = select("+2000 Rangpunkte (50 Punkte)","6. Boni hinzufügen(100 Punkte)")
if shop == 1 then
if pc.getqf(state) <= 50 then
say_reward("Du hast nicht genügend Punkte!")
else
local count = pc.setqf(state) - 50
pc.change_alignment(2000)
end
end
if shop == 2 then
if pc.getqf(state) <= 100 then
say_reward("Du hast nicht genügend Punkte!")
else
local count = pc.setqf(state) - 100
pc.give_item2(189, 1)
end
end
end
if s == 2 then
say_title("PvP Punkte Menü")
say("Du hast im Moment "..pc.getqf(state).." Punkte")
end
if s == 3 then
say_title("PvP Punkte Menü")
say("Bist du dir sicher das du deine Punkte zurücksetzten möchtest?")
local reset = select("Ja","Nein")
if reset == 1 then
pc.setqf("state", 0)
q.set_counter("Getötete Spieler", 0)
end
if reset == 2 then
return
end
end
if s == 4 then
return
end
end
when kill begin
if npc.is_pc() then
if get_time() > pc.getqf("pvp_delay") then
local count = pc.getqf("state") + 1
local bonus_exp = 0
bonus_exp = pc.get_level()*1000000
highexp = pc.get_level()*800000
if count <= 1000 then
pc.setqf("state", count)
q.set_counter("Zutötende Spieler", count)
pc.setqf("pvp_delay", get_time()+(2*2))
chat("Du hast einen PvP Punkt erhalten, und deine Erfahrung gesteigert!")
if pc.get_level() <= 110 then
pc.give_exp2(2500000+bonus_exp)
else
pc.give_exp2(highexp)
end
end
else
chat("Die 2 Minuten sind noch nicht vorbei!")
end
end
end
end
state __COMPLETE__ begin
end
end
Ich bedanke mich für jede Hilfe im vorraus.
Greets.
|
|
|
01/10/2016, 12:26
|
#12099
|
elite*gold: 26
Join Date: Mar 2010
Posts: 3,765
Received Thanks: 2,661
|
deine pc.setqf bzw pc.getqf waren falsch
PHP Code:
quest pvpexp begin state start begin when login with pc.level >= 75 begin notice_all("".. pc.get_name() .." hat soeben die lvl 75 PvP quest angenommen.") set_state("player_kill") pc.setqf("state", 0) q.set_counter("Getötete Spieler", 0) end end
state player_kill begin when letter begin send_letter("PvP Punkte") end
when button or info begin say_title("PvP Punkte Menü") say("Bitte wählen:") local s = select("Punkte Shop","Statistik","Reset","Abbrechen") if s == 1 then say_title("PvP Punkte Menü") say("Du besitzt derzeit "..pc.getqf("state").."Punkte") local shop = select("+2000 Rangpunkte (50 Punkte)","6. Boni hinzufügen(100 Punkte)") if shop == 1 then if pc.getqf("state") <= 50 then say_reward("Du hast nicht genügend Punkte!") else pc.setqf("state", pc.getqf("state")-50) pc.change_alignment(2000) end elseif shop == 2 then if pc.getqf("state") <= 100 then say_reward("Du hast nicht genügend Punkte!") else pc.setqf("state", pc.getqf("state")-100) pc.give_item2(189, 1) end end elseif s == 2 then say_title("PvP Punkte Menü") say("Du hast im Moment "..pc.getqf("state").." Punkte") elseif s == 3 then say_title("PvP Punkte Menü") say("Bist du dir sicher das du deine Punkte zurücksetzten möchtest?") local reset = select("Ja","Nein") if reset == 1 then pc.setqf("state", 0) q.set_counter("Getötete Spieler", 0) elseif reset == 2 then return end elseif s == 4 then return end end
when kill begin if npc.is_pc() then if get_time() > pc.getqf("pvp_delay") then local count = pc.getqf("state") + 1 local bonus_exp = 0 bonus_exp = pc.get_level()*1000000 highexp = pc.get_level()*800000 if count <= 1000 then pc.setqf("state", count) q.set_counter("Zutötende Spieler", count) pc.setqf("pvp_delay", get_time()+(2*2)) chat("Du hast einen PvP Punkt erhalten, und deine Erfahrung gesteigert!") if pc.get_level() <= 110 then pc.give_exp2(2500000+bonus_exp) else pc.give_exp2(highexp) end end else chat("Die 2 Minuten sind noch nicht vorbei!") end end end end
state __COMPLETE__ begin end end
|
|
|
01/10/2016, 14:22
|
#12100
|
elite*gold: 0
Join Date: Mar 2015
Posts: 119
Received Thanks: 29
|
Quote:
Originally Posted by .Delta
deine pc.setqf bzw pc.getqf waren falsch
PHP Code:
quest pvpexp begin
state start begin
when login with pc.level >= 75 begin
notice_all("".. pc.get_name() .." hat soeben die lvl 75 PvP quest angenommen.")
set_state("player_kill")
pc.setqf("state", 0)
q.set_counter("Getötete Spieler", 0)
end
end
state player_kill begin
when letter begin
send_letter("PvP Punkte")
end
when button or info begin
say_title("PvP Punkte Menü")
say("Bitte wählen:")
local s = select("Punkte Shop","Statistik","Reset","Abbrechen")
if s == 1 then
say_title("PvP Punkte Menü")
say("Du besitzt derzeit "..pc.getqf("state").."Punkte")
local shop = select("+2000 Rangpunkte (50 Punkte)","6. Boni hinzufügen(100 Punkte)")
if shop == 1 then
if pc.getqf("state") <= 50 then
say_reward("Du hast nicht genügend Punkte!")
else
pc.setqf("state", pc.getqf("state")-50)
pc.change_alignment(2000)
end
elseif shop == 2 then
if pc.getqf("state") <= 100 then
say_reward("Du hast nicht genügend Punkte!")
else
pc.setqf("state", pc.getqf("state")-100)
pc.give_item2(189, 1)
end
end
elseif s == 2 then
say_title("PvP Punkte Menü")
say("Du hast im Moment "..pc.getqf("state").." Punkte")
elseif s == 3 then
say_title("PvP Punkte Menü")
say("Bist du dir sicher das du deine Punkte zurücksetzten möchtest?")
local reset = select("Ja","Nein")
if reset == 1 then
pc.setqf("state", 0)
q.set_counter("Getötete Spieler", 0)
elseif reset == 2 then
return
end
elseif s == 4 then
return
end
end
when kill begin
if npc.is_pc() then
if get_time() > pc.getqf("pvp_delay") then
local count = pc.getqf("state") + 1
local bonus_exp = 0
bonus_exp = pc.get_level()*1000000
highexp = pc.get_level()*800000
if count <= 1000 then
pc.setqf("state", count)
q.set_counter("Zutötende Spieler", count)
pc.setqf("pvp_delay", get_time()+(2*2))
chat("Du hast einen PvP Punkt erhalten, und deine Erfahrung gesteigert!")
if pc.get_level() <= 110 then
pc.give_exp2(2500000+bonus_exp)
else
pc.give_exp2(highexp)
end
end
else
chat("Die 2 Minuten sind noch nicht vorbei!")
end
end
end
end
state __COMPLETE__ begin
end
end
|
Ich bin dir sehr dankbar für deine Antwort, doch auch leider diese funktioniert nicht.
Greets
|
|
|
01/10/2016, 14:51
|
#12101
|
elite*gold: 26
Join Date: Mar 2010
Posts: 3,765
Received Thanks: 2,661
|
oh, sry
Das Problem ist / war, dass der Compiler Probleme mit Sonderzeichen (in deinem Fall ü) am Ende einer say Zeile hat.
Einfach ein wenig umstellen.
PHP Code:
quest pvpexp begin
state start begin
when login with pc.level >= 75 begin
notice_all("".. pc.get_name() .." hat soeben die lvl 75 PvP quest angenommen.")
set_state("player_kill")
pc.setqf("state", 0)
q.set_counter("Getötete Spieler", 0)
end
end
state player_kill begin
when letter begin
send_letter("PvP Punkte")
end
when button or info begin
say_title("Menü PvP Punkte")
say("Bitte wählen:")
local s = select("Punkte Shop","Statistik","Reset","Abbrechen")
if s == 1 then
say_title("Menü PvP Punkte")
say("Du besitzt derzeit "..pc.getqf("state").."Punkte")
local shop = select("+2000 Rangpunkte (50 Punkte)","6. Boni hinzufügen(100 Punkte)")
if shop == 1 then
if pc.getqf("state") <= 50 then
say_reward("Du hast nicht genügend Punkte!")
else
pc.setqf("state", pc.getqf("state")-50)
pc.change_alignment(2000)
end
elseif shop == 2 then
if pc.getqf("state") <= 100 then
say_reward("Du hast nicht genügend Punkte!")
else
pc.setqf("state", pc.getqf("state")-100)
pc.give_item2(189, 1)
end
end
elseif s == 2 then
say_title("Menü PvP Punkte")
say("Du hast im Moment "..pc.getqf("state").." Punkte")
elseif s == 3 then
say_title("Menü PvP Punkte")
say("Bist du dir sicher das du deine Punkte zurücksetzten möchtest?")
local reset = select("Ja","Nein")
if reset == 1 then
pc.setqf("state", 0)
q.set_counter("Getötete Spieler", 0)
elseif reset == 2 then
return
end
elseif s == 4 then
return
end
end
when kill begin
if npc.is_pc() then
if get_time() > pc.getqf("pvp_delay") then
local count = pc.getqf("state") + 1
local bonus_exp = 0
bonus_exp = pc.get_level()*1000000
highexp = pc.get_level()*800000
if count <= 1000 then
pc.setqf("state", count)
q.set_counter("Zutötende Spieler", count)
pc.setqf("pvp_delay", get_time()+(2*2))
chat("Du hast einen PvP Punkt erhalten, und deine Erfahrung gesteigert!")
if pc.get_level() <= 110 then
pc.give_exp2(2500000+bonus_exp)
else
pc.give_exp2(highexp)
end
end
else
chat("Die 2 Minuten sind noch nicht vorbei!")
end
end
end
end
state __COMPLETE__ begin
end
end
|
|
|
01/10/2016, 15:51
|
#12102
|
elite*gold: 0
Join Date: Sep 2013
Posts: 18
Received Thanks: 0
|
hi hab mal versucht ne quest umzuschreiben und gleich versagt :/
Code:
quest horse_getting begin
state start begin
when login begin
pc.set_skill_level(131, 30)
pc.give_item2("50053", 1)
horse.set_level(30)
horse.summon()
horse.ride()
set_state(ende)
end
end
state ende begin
end
end
Im spiel steht das ich das falsche pferdebild benutze.
|
|
|
01/10/2016, 15:56
|
#12103
|
elite*gold: 26
Join Date: Mar 2010
Posts: 3,765
Received Thanks: 2,661
|
Du hast nicht in der Quest versagt, sondern beim Level deines Pferdes
Ich vermute einfach mal, du hast in deinen Files mehr Stufen als nur bis zum Millitärpferd, welches man mit 50053 ruft.
Setze dein Pferdelevel doch mal auf 21 und schau ob es dann funktioniert.
|
|
|
01/10/2016, 16:01
|
#12104
|
elite*gold: 0
Join Date: Sep 2013
Posts: 18
Received Thanks: 0
|
Hat funktioniert, danke
|
|
|
01/11/2016, 11:41
|
#12105
|
elite*gold: 0
Join Date: Jun 2014
Posts: 38
Received Thanks: 15
|
Servus! 
Mach momentan eine quest für ein "Special" Teleporter.
Ich bin mit der Quest noch nichtmal fertig da finde ich denn fehler schon nicht mehr.

QUEST:
quest highlvlwarp begin
state start begin
when 20080.chat."High LVL Maps" begin
say_title("High LVL Maps")
say("Hallo,")
say("Mein Name ist Tariel.")
say("Vielleicht kennst du mein Bruder? Uriel?")
say("Naya. Ist auch egal...")
say("Du scheinst sehr stark zu sein!")
say("Ich denke ich kann dir von denn Versteckten")
say("Orten erzählen.")
say("Diese Orte sind nicht ohne Grund versteckt!")
say("Sie sind gefährlich!")
say("")
wait()
say("Vor Jahren sahen die Menschen eine große Gefahr...")
say("...deshalb fragten sie die große Magierin Hwa-Hee.")
say("Sie versteckte diese Orte.")
say("So musste niemand mehr sterben!")
say("Keiner konnte diese Orte mehr finden außer...")
say("...ICH!")
say("Ich habs endlich geschafft!")
say("Und jetzt suche ich Leute die mir helfen wollen")
say("diese Monster ein für alle mal zu vernischten!")
say("Willst du mir helfen?")
say("")
wait()
locale a = select ("100er Level Map", "115er Level Map", "100er Farm Map", "120er Farm Map", "schliessen")
if a == 5 then
return
elseif a == 1 then
say_title("100er Level Map")
say("Bist du dir sicher?")
local mapa = select ("ja","nein")
if mapa == 2 then
return
elseif mapa == 1 then
pc.warp (82500,000)
end
end
end
end
end
Ich sehe da kein fehler... 
Danke
|
|
|
All times are GMT +1. The time now is 14:25.
|
|