|
You last visited: Today at 06:11
Advertisement
[SERVICE] Die Questkontrolle
Discussion on [SERVICE] Die Questkontrolle within the Metin2 Private Server forum part of the Metin2 category.
12/16/2011, 18:19
|
#4246
|
elite*gold: 0
Join Date: Sep 2010
Posts: 427
Received Thanks: 105
|
ähm spongebob immer noch gleicher fehler.
|
|
|
12/16/2011, 18:23
|
#4247
|
elite*gold: 15
Join Date: Sep 2010
Posts: 844
Received Thanks: 975
|
dann so :
PHP Code:
quest seltsame_monster begin state start begin when login or levelup with pc.level >= 80 begin set_state("go_to_soon_sel") end end state go_to_soon_sel begin when letter begin local v = find_npc_by_vnum(20023) if v != 0 then target.vid("__TARGET__", v, "Octafdsvio") end send_letter("Seltsame Monster") end when button or info begin say_title("test") say("test") say("test.") end when __TARGET__.target.click or 20023.chat."Seltsame Monster" begin target.delete("__TARGET__") say("") say("ES") set_state("seltsame_monster") end end state seltsame_monster begin when letter begin send_letter("Seltsame Monster") end when button or info begin say("") say_reward("es") say("") end when login with pc.get_map_index() == 3 begin local spawn = number(1, 500) local delay=9600 if spawn == 1 then mob.spawn(8041, 769, 805, 1) if get_global_time()-pc.getqf("time") < delay and pc.getqf("time") !=0 then set_state("_complete_") end end end when login with pc.get_map_index() == 4 begin local spawn = number(1, 500) local delay=9600 if spawn == 1 then mob.spawn(8041, 769, 805, 1) if get_global_time()-pc.getqf("time1") < delay and pc.getqf("time1") !=0 then set_state("_complete_") end end end when login with pc.get_map_index() == 23 begin local spawn = number(1, 500) local delay=9600 if spawn == 1 then mob.spawn(8041, 769, 805, 1) if get_global_time()-pc.getqf("time2") < delay and pc.getqf("time2") !=0 then set_state("_complete_") end end end when login with pc.get_map_index() == 24 begin local spawn = number(1, 500) local delay=9600 if spawn == 1 then mob.spawn(8041, 769, 805, 1) if get_global_time()-pc.getqf("time3") < delay and pc.getqf("time3") !=0 then set_state("_complete_") end end end when login with pc.get_map_index() == 43 begin local spawn = number(1, 500) local delay=9600 if spawn == 1 then mob.spawn(8041, 769, 805, 1) if get_global_time()-pc.getqf("time4") < delay and pc.getqf("time4") !=0 then set_state("_complete_") end end end when login with pc.get_map_index() == 44 begin local spawn = number(1, 500) local delay=9600 if spawn == 1 then mob.spawn(8041, 769, 805, 1) if get_global_time()-pc.getqf("time5") < delay and pc.getqf("time5") !=0 then set_state("_complete_") end end end end state _complete_ begin end end
|
|
|
12/16/2011, 18:25
|
#4248
|
elite*gold: 39
Join Date: Jun 2009
Posts: 500
Received Thanks: 212
|
Hi,
meine Quest:
Code:
state Quest_Mitte begin
when letter begin
send_letter("Töte Sensenmänner")
end
when button or info begin
say_title("Töte Sensenmänner")
say("Uriel benötigt dringend seine wichtigen Daten!")
say("Du bekommst sie von Sensenmännern.")
say("")
say_reward("Aufgabe: Töte Sensenmänner bis du wichtige Daten für Uriel bekommst")
end
when 1093.kill begin
if pc.getqf("WichtigeDaten") < 1 then
local rand=number(0, 100)
if rand < 50 then
chat("Du hast die wichtigen Daten für Uriel erhalten!")
chat("PS: Du siehst sie nicht im Inventar.")
set_state("Quest_Ende")
end
end
end
end
Problem: Das "1093.kill" event löst sich nicht aus.
hab schon mit when 1093.kill begin chat("XX") end
probiert - geht auch net...
Was is da falsch?
PS: Habe oft probleme mit "kill"-Strukturen (in letzter Zeit^^)
mfg, Destroyer
|
|
|
12/16/2011, 18:29
|
#4249
|
elite*gold: 26
Join Date: Dec 2011
Posts: 826
Received Thanks: 271
|
Quote:
Originally Posted by Sp0ngeb0b ist cool
dann so :
PHP Code:
quest seltsame_monster begin
state start begin
when login or levelup with pc.level >= 80 begin
set_state("go_to_soon_sel")
end
end
state go_to_soon_sel begin
when letter begin
local v = find_npc_by_vnum(20023)
if v != 0 then target.vid("__TARGET__", v, "Octafdsvio")
end
send_letter("Seltsame Monster")
end
when button or info begin
say_title("test")
say("test")
say("test.")
end
when __TARGET__.target.click or 20023.chat."Seltsame Monster" begin
target.delete("__TARGET__")
say("")
say("ES")
set_state("seltsame_monster")
end
end
state seltsame_monster begin
when letter begin
send_letter("Seltsame Monster")
end
when button or info begin
say("")
say_reward("es")
say("")
end
when login with pc.get_map_index() == 3 begin
local spawn = number(1, 500)
local delay=9600
if spawn == 1 then
mob.spawn(8041, 769, 805, 1)
if get_global_time()-pc.getqf("time") < delay and pc.getqf("time") !=0 then
set_state("_complete_")
end
end
end
when login with pc.get_map_index() == 4 begin
local spawn = number(1, 500)
local delay=9600
if spawn == 1 then
mob.spawn(8041, 769, 805, 1)
if get_global_time()-pc.getqf("time1") < delay and pc.getqf("time1") !=0 then
set_state("_complete_")
end
end
end
when login with pc.get_map_index() == 23 begin
local spawn = number(1, 500)
local delay=9600
if spawn == 1 then
mob.spawn(8041, 769, 805, 1)
if get_global_time()-pc.getqf("time2") < delay and pc.getqf("time2") !=0 then
set_state("_complete_")
end
end
end
when login with pc.get_map_index() == 24 begin
local spawn = number(1, 500)
local delay=9600
if spawn == 1 then
mob.spawn(8041, 769, 805, 1)
if get_global_time()-pc.getqf("time3") < delay and pc.getqf("time3") !=0 then
set_state("_complete_")
end
end
end
when login with pc.get_map_index() == 43 begin
local spawn = number(1, 500)
local delay=9600
if spawn == 1 then
mob.spawn(8041, 769, 805, 1)
if get_global_time()-pc.getqf("time4") < delay and pc.getqf("time4") !=0 then
set_state("_complete_")
end
end
end
when login with pc.get_map_index() == 44 begin
local spawn = number(1, 500)
local delay=9600
if spawn == 1 then
mob.spawn(8041, 769, 805, 1)
if get_global_time()-pc.getqf("time5") < delay and pc.getqf("time5") !=0 then
set_state("_complete_")
end
end
end
end
state _complete_ begin
end
end

|
Spongebob man schreibt bei
dem state namen rein und zwar OHNE ""
Nimm dir das einmal zur Hilfe Solution.
Mit freundlichen Grüßen
xPrivate
PS: Schaut auf meine Signatur!
|
|
|
12/16/2011, 18:30
|
#4250
|
elite*gold: 39
Join Date: Jun 2009
Posts: 500
Received Thanks: 212
|
@xPrivate:
Man kann auch set_state("state") schreiben!
Geht auch ohne Fehler
Mfg
|
|
|
12/16/2011, 18:35
|
#4251
|
elite*gold: 15
Join Date: Sep 2010
Posts: 844
Received Thanks: 975
|
uii da hat jemand etwas ahnung :P
dem will ich dann auch gleich mal helfen 
was willst du mit deiner quest bewirken bzw. wofür ist der abschnitt? "if pc.getqf("WichtigeDaten") < 1 then"
denn der qf existiert ja garnicht weil du keinen setzt...ich seh in dem qf auch keinen sinn deshalb frag ich mal
|
|
|
12/16/2011, 18:39
|
#4252
|
elite*gold: 39
Join Date: Jun 2009
Posts: 500
Received Thanks: 212
|
dooch 
hier die ganze quest is dann übersichtlicher^^
Code:
quest main_quest_6 begin
state start begin
when login or levelup or letter with pc.get_level() >= 65 begin
set_state("Quest_Beginn")
end
end
state Quest_Beginn begin
when letter begin
local v=find_npc_by_vnum(20011)
if v==0 then
else
target.vid("__TARGET__", v, "Gehe zu Uriel")
end
end
when letter begin
send_letter("Gehe zu Uriel")
end
when button or info begin
say_title("Gehe zu Uriel")
say("Gehe zu Uriel!")
say("Er braucht deine Hilfe.")
end
when __TARGET__.target.click begin
target.delete("__TARGET__")
say_title("Uriel:")
say("Ich brauche deine Hilfe, tapferer Krieger!")
say("Kürzlich war ich im Dämonenturm im Tal von Seungryong")
say("Plötzlich kam ein Sensenmann hervor und raubte mir")
say("wichtige Daten. Kannst du mir diese wiederholen?")
local s=select("Ja", "Keine Lust")
if s==1 then
say("Danke viel mals!")
say("Viel Glück!")
say("")
say_reward("Aufgabe: Bekomme die wichtigen Daten für Uriel von Sensenmännern")
pc.setqf("WichtigeDaten", 0)
set_state("Quest_Mitte")
else
say("Dann nicht...")
restart_quest()
end
end
end
state Quest_Mitte begin
when letter begin
send_letter("Töte Sensenmänner")
end
when button or info begin
say_title("Töte Sensenmänner")
say("Uriel benötigt dringend seine wichtigen Daten!")
say("Du bekommst sie von Sensenmännern.")
say("")
say_reward("Aufgabe: Töte Sensenmänner bis du wichtige Daten für Uriel bekommst")
end
when 1093.kill begin
if pc.getqf("WichtigeDaten") < 1 then
local rand=number(0, 100)
if rand < 50 then
chat("Du hast die wichtigen Daten für Uriel erhalten!")
chat("PS: Du siehst sie nicht im Inventar.")
set_state("Quest_Ende")
end
end
end
end
state Quest_Ende begin
when letter begin
local v=find_npc_by_vnum(20011)
if v==0 then
else
target.vid("__TARGET__", v, "Gehe zu Uriel")
end
end
when letter begin
send_letter("Töte Sensenmänner abgeschlossen")
end
when button or info begin
say_title("Töte Sensenmänner - Abgeschlossen")
say("Du hast die wichtigen Daten für Uriel erhalten.")
say("Bringe sie auf dem schnellstem Weg zu Uriel zurück")
say("und erhalte deine Belohnung!")
end
when __TARGET__.target.click begin
say_title("Uriel:")
say("Vielen, vielen Dank!")
say("Dafür, dass du mir die wichtigen Daten zurückgebracht hast,")
say("Werde ich dich belohnen.")
say("")
say_reward("Uriel gibt dir als Belohnung:")
say_reward(" - Zufällige 66er Rüstung mit zufälligem + (bis +7)")
say_reward(" - 4x Gegenstand verhexen")
say_reward(" - 4x Gegenstand verzaubern")
local armor_vnum
local armor_rand=number(0, 3)
if armor_rand==0 then
armor_vnum="1129"
elseif armor_rand==1 then
armor_vnum="1149"
elseif armor_rand==2 then
armor_vnum="1169"
elseif armor_rand==3 then
armor_vnum="1189"
end
local plus_rand=number(0, 7)
armor_vnum=armor_vnum+plus
pc.give_item2(armor_vnum, 1)
pc.give_item2(71051, 4)
pc.give_item2(71052, 4)
chat("Herzlichen Glückwunsch!")
chat("Du hast " .. item.get_name(armor_vnum) .. " bekommen (".. armor_vnum .. ")!")
end
end
end
und der Abschnitt ist dafür (nur sicherheitshalber) damit man das nur 1x droppen muss 
PS: Ja ich weiß eig unnötig da er danach eh zur next state springt aber sicherheit geht eben vor xD
|
|
|
12/16/2011, 18:46
|
#4253
|
elite*gold: 26
Join Date: Dec 2011
Posts: 826
Received Thanks: 271
|
Benutz doch statt einer qf einen Questcounter
Code:
q.set_counter(Name, Wert)
Vorallem zieht eine qf auch etwas, wenn es auch nur sehr wenig ist, Speicher.
Mit freundlichen Grüßen
xPrivate
|
|
|
12/16/2011, 19:08
|
#4254
|
elite*gold: 39
Join Date: Jun 2009
Posts: 500
Received Thanks: 212
|
Werd ich tun
Aber hätt auch gern nen tipp zu meim prob
|
|
|
12/17/2011, 00:12
|
#4255
|
elite*gold: 0
Join Date: Sep 2011
Posts: 525
Received Thanks: 113
|
Bis zum Pferde level 20 geht alles problemlos,
aber man kann nicht zum MilitärGaul "uppen" .
pony_buy.quest:
PHP Code:
quest pony_buy begin
state start begin
when 20349.chat."Pferdeprüfung" with horse.get_grade()==0 begin
if pc.level<=4 then
say_title("Pferdeprüfung")
say("")
say("Du willst ein Pferd von mir?")
say("Es tut mir leid aber dein")
say("Level ist zu niedrig!")
say("")
say_reward("Versuche es wieder wenn du das Level 5 erreicht hast")
say("")
elseif pc.countitem("30027")<1 then
say_title("Pferdeprüfung")
say("")
say("Du willst ein Pferd von mir?")
say("Du bekommtst von mir ein Pferd aber")
say("das kann ich dir nicht schenken! Da ich")
say("hier immer im Kalten stehe, würde ich")
say("mich über einen neuen Dicken Mantel freuen.")
say("")
say_reward("Geh und besorge mir ein Wolfsfell!")
say("")
setstate(need_item30027)
elseif pc.countitem("30027")>=1 and pc.level>=4 then
say_title("Pferdeprüfung")
say("")
say("Diese Kälte lässt mich bald Erstarren..")
say("Oh du bringst mir ein Wolfsfell für meinen")
say("Mantel? Als Dank für deine Mühe, werde ich")
say("dir ein Pferd schenken.")
say("")
say_reward("Nimmst du mein Geschenk an?")
say("")
local b=select("Ja", "Nein ich brauch kein Pferd")
if 1==b then
if pc.countitem("30027")>=1 then
pc.removeitem("30027", 1)
horse.set_level("10")
pc.change_money("100000")
pc.give_exp2("10000")
pc.give_item2("50051", 1)
say_title("Pferdeprüfung Belohnung")
say("")
say("Du erhälst")
say_reward("Pferd Level 10")
say_reward("10.000.000 Yang")
say_reward("10.000 Erfahrungspunkte")
say_reward("Eine Pferdebild")
say("")
say_reward("Komm wieder wenn du das level 25 erreicht hast")
say("")
end
elseif 2==b then
say_title("Pferdeprüfung")
say("")
say_reward("Dann komm wieder wenn du es dir")
say_reward("anders überlegt hast!")
say("")
else
say("UNKNOWN BUTTON ["..b.."]")
end
else
say_title("Pferdeprüfung")
say("")
say_reward("Dann komm wieder wenn du es dir")
say_reward("anders überlegt hast!")
say("")
end
end
end
state need_item30027 begin
when letter begin
setskin(NOWINDOW)
makequestbutton("Suche ein Wolfsfell")
q.set_title("Suche ein Wolfsfell")
q.start()
end
when button begin
say_title("Pferdeprüfung")
say("")
say("Finde ein Wolfsfell für den Stallburschen")
say("und bringe es zu ihm!")
say("")
setstate(start)
q.done()
end
when info begin
say_title("Pferdeprüfung")
say("")
say("Finde ein Wolfsfell für den Stallburschen")
say("und bringe es zu ihm!")
say("")
setstate(start)
q.done()
end
end
end
horse_upgrade.quest
PHP Code:
quest horse_upgrade begin
state start begin
when 20349.chat."Kampfpferd" with horse.get_grade()==1 and horse.get_level()==10 begin
if horse.is_dead() then
say_title("Kampfpferd")
say("")
say("Du bist nun ein guter Reiter, nur")
say("leider ist dein Pferd gestorben!")
say("")
say_reward("Belebe es erst wieder!")
say("")
elseif pc.level<=24 then
say_title("Kampfpferd")
say("")
say("Du bist nun ein guter Reiter, nur")
say("leider ist dein Level zu niedrig!")
say("")
say_reward("Komm wieder wenn du mindestens Level 25 bist!")
say("")
elseif horse.get_level()<=9 then
say_title("Kampfpferd")
say("")
say("Du bist nun ein guter Krieger, nur")
say("leider ist dein Pferd zu schwach!")
say("")
say_reward("Komm wieder wenn es Level 10 ist!")
say("")
elseif pc.countitem("30021")<20 then
say_title("Kampfpferd")
say("")
say("Du willst ein Kampfpferd von mir?")
say("Ich kann dir eines von meinen geben, nur")
say("das kann ich dir nicht schenken! Da mir")
say("meine Halskette kaputt gegangen ist,")
say("brauche ich eine neue.")
say("")
say_reward("Geh und besorge mir 20 Edelsteine!")
say("")
setstate(need_item30021)
elseif pc.countitem("50051")<1 then
say_title("Kampfpferd")
say("")
say("Du willst ein Kampfpferd von mir?")
say("Ich brauche dazu auch ein Pferdebild!")
say("")
say_reward("Geh und besorge mir ein Pferdebild!")
say("")
elseif horse.get_level()==10 and not horse.is_dead() and pc.countitem("30021")>=20 and pc.level>=24 then
say_title("Kampfpferd")
say("")
say("Meine schöne Halskette Schade..")
say("Oh du bringst mir neue Edelsteine für")
say("meine neue Halskette? Als Dank werde")
say("ich dir ein Kampfpferd schenken.")
say("")
say_reward("Nimmst du mein Geschenk an?")
say("")
local b=select("Ja", "Nein ich brauch kein Kampfpferd")
if 1==b then
if pc.countitem("30021")>=20 and pc.countitem("50051")>=1 then
pc.removeitem("30021", 20)
pc.removeitem("50051", 1)
horse.set_level("20")
pc.change_money("25000000")
pc.give_exp2("1000000")
pc.give_item2("50052", 1)
say_title("Kampfpferd Belohnung")
say("")
say("Du erhälst")
say_reward("Pferd Level 20")
say_reward("25.000.000 Yang")
say_reward("1.000.000 Erfahrungspunkte")
say_reward("Eine Waffenpferdebild")
say("")
say_reward("Komm wieder wenn du das Level 50 erreicht hast!")
say("")
end
elseif 2==b then
say_title("Kampfpferd")
say("")
say_reward("Dann komm wieder wenn du es dir")
say_reward("anders überlegt hast!")
say("")
else
say("UNKNOWN BUTTON ["..b.."]")
end
else
say_title("Kampfpferd")
say("")
say_reward("Dann komm wieder wenn du es dir")
say_reward("anders überlegt hast!")
say("")
end
end
end
state need_item30021 begin
when letter begin
setskin(NOWINDOW)
makequestbutton("Sammle 20 Edelsteine")
q.set_title("Sammle 20 Edelsteine")
q.start()
end
when button begin
say_title("Kampfpferd")
say("")
say("Sammle 20 Edelsteine für die neue")
say("Halskette das der Stallbursche ")
say("zufrieden ist!")
say("")
setstate(start)
q.done()
end
when info begin
say_title("Kampfpferd")
say("")
say("Sammle 20 Edelsteine für die neue")
say("Halskette das der Stallbursche")
say("zufrieden ist!")
say("")
setstate(start)
q.done()
end
end
end
horse_upgrade.quest
PHP Code:
quest horse_upgrade2 begin
state start begin
when 20349.chat."Militärgaul" with horse.get_grade()==2 and horse.get_level()==20 begin
if horse.is_dead() then
say_title("Militärgaul")
say("")
say("Du bist nun ein guter Kampfreiter,")
say("nur leider ist dein Pferd gestorben!")
say("")
say_reward("Belebe es erst wieder!")
say("")
elseif pc.level<=49 then
say_title("Militärgaul")
say("")
say("Du bist nun ein guter Kampfreiter,")
say("nur leider ist dein Level zu niedrig!")
say("")
say_reward("Komm wieder wenn du das level 50 erreicht hast")
say("")
elseif horse.get_level()<=19 then
say_title("Militärgaul")
say("")
say("Du bist nun ein guter Krieger,")
say("nur leider ist dein Pferd zu schwach!")
say("")
say_reward("Komm wieder wenn du das level 20 erreicht hast!")
say("")
elseif pc.countitem("27992")<2 or pc.countitem("27993")<2 or pc.countitem("27994")<2 then
say_title("Militärgaul")
say("")
say("Du willst ein Militärgaul von mir?")
say("Ich kann dir eines von meinen geben, nur")
say("das kann ich dir nicht schenken! Da du")
say("mir eine neue Halskette besorgt hast,")
say("könnten wir sie noch verschönern!")
say("")
say_reward("Geh und besorge mir jeweils 2 Perlen von")
say_reward("jeder Farbe! Wir benötigen:")
say_reward("2 Weiße Perlen!")
say_reward("2 Blaue Perlen!")
say_reward("2 Rote Perlen!")
say("")
setstate(need_item_Perlen)
elseif pc.countitem("50052")<1 then
say_title("Militärgaul")
say("")
say("Du willst ein Kampfpferd von mir?")
say("Ich brauche dazu auch ein Waffenpferdebild!")
say("")
say_reward("Geh und besorge mir ein Waffenpferdebild!")
say("")
elseif horse.get_level()==20 and not horse.is_dead() and pc.countitem("50052")>=1 and pc.countitem("27992")>=2 and pc.countitem("27993")>=2 and pc.countitem("27994")>=2 and pc.level>=50 then
say_title("Militärgaul")
say("")
say("Meine Halskette sieht ganz grau und starr aus...")
say("Oh du bringst mir neue Perlen für")
say("meine neue Halskette? Als Dank werde")
say("ich dir ein Militärgaul schenken.")
say("")
say_reward("Nimmst du mein Geschenk an?")
say("")
local b=select("Ja", "Nein ich brauch kein Militärgaul")
if 1==b then
if pc.countitem("50052")>=1 and pc.countitem("27992")>=2 and pc.countitem("27993")>=2 and pc.countitem("27994")>=2 then
pc.removeitem("50052", 1)
pc.removeitem("27992", 2)
pc.removeitem("27993", 2)
pc.removeitem("27994", 2)
horse.set_level("30")
pc.change_money("50000000")
pc.give_exp2("10000000")
pc.give_item2("50053", 1)
say_title("Militärgaul Belohnung")
say("")
say("Du erhälst")
say_reward("Pferd Level 30")
say_reward("50.000.000 Yang")
say_reward("10.000.000 Erfahrungspunkte")
say_reward("Eine Militär-Pferdebild")
say("")
end
elseif 2==b then
say_title("Militärgaul")
say("")
say_reward("Dann komm wieder wenn du es dir")
say_reward("anders überlegt hast!")
say("")
else
say("UNKNOWN BUTTON ["..b.."]")
end
else
say_title("Militärgaul")
say("")
say_reward("Dann komm wieder wenn du es dir")
say_reward("anders überlegt hast!")
say("")
end
end
end
state need_item_Perlen begin
when letter begin
setskin(NOWINDOW)
makequestbutton("Sammle Perlen")
q.set_title("Sammle Perlen")
q.start()
end
when button begin
say_title("Militärgaul")
say("")
say("Sammel jeweils 2 Perlen von jeder Farbe,")
say("damit wir die Halskette für den Stallburschen")
say("verschönern können.")
say("")
say_reward("Wenn du 2 Weiße, 2 Blaue und 2 Rote perlen hast,")
say_reward("dann bringe sie schnell zum Stallburschen!")
say("")
setstate(start)
q.done()
end
when info begin
say_title("Militärgaul")
say("")
say("Sammel jeweils 2 Perlen von jeder Farbe,")
say("damit wir die Halskette für den Stallburschen")
say("verschönern können.")
say("")
say_reward("Wenn du 2 Weiße, 2 Blaue und 2 Rote perlen hast,")
say_reward("dann bringe sie schnell zum Stallburschen!")
say("")
setstate(start)
q.done()
end
end
end
|
|
|
12/17/2011, 10:59
|
#4256
|
elite*gold: 39
Join Date: Jun 2009
Posts: 500
Received Thanks: 212
|
Ich habe sie mir noch nicht genau angeguckt, allerdings fällt mir sofort auf:
Die Namen sind gleich (horse_upgrade.quest) - Aber ich schätze auf dem Server sind sie unterschiedlich^^
Und: Was für ein Fehler kommt? Wird der Dialog beim Stalli nicht angezeigt oder er gibt dir kein MG oder what ever?
Bitte genauere Fehlerbeschreibung, dann kann leichter geholfen werden
|
|
|
12/17/2011, 12:59
|
#4257
|
elite*gold: 0
Join Date: Jan 2011
Posts: 593
Received Thanks: 204
|
@Destroyer: Ich glaube ich hab hier 'nen kleinen Fehler gefunden:
PHP Code:
quest main_quest_6 begin state start begin when login or levelup or letter with pc.get_level() >= 65 begin set_state("Quest_Beginn") end end state Quest_Beginn begin when letter begin local v=find_npc_by_vnum(20011) if v==0 then end <------ Müsste er ja beenden, ansonsten könnte es ja kein else geben. Bzw. das then muss sich auf etwas beziehen. else target.vid("__TARGET__", v, "Gehe zu Uriel") end end when letter begin send_letter("Gehe zu Uriel") end when button or info begin say_title("Gehe zu Uriel") say("Gehe zu Uriel!") say("Er braucht deine Hilfe.") end
Ich glaube du hast da ein end vergessen...
und hast du Skype? Bräuchte Hilfe bei einer Quest.
LG,
GlaubIchAuch
|
|
|
12/17/2011, 15:36
|
#4258
|
elite*gold: 50
Join Date: May 2011
Posts: 270
Received Thanks: 991
|
Hi e*pvp.
I have a little problem with this quest:
PHP Code:
quest Bonus_DC begin
state start begin
function mysql_query(text)
local tmp=number(11111111,99999999)
os.execute('mysql -u USER -p PASSWORD -N -e '..text..' 2>&1 > /tmp/'..tmp)
local f,e=io.open("/tmp/"..tmp)
if f then
return function()
local l=f:read("*l")
if l then
return l
else
f:close()
os.execute("rm /tmp/"..tmp)
end
end
else
return nil, e
end
end
when login with pc.get_level() >= 1 and not pc.is_gm() begin
if pc.get_name() == "NameLessNess" then --FOR TESTCHAR
if get_time() > pc.getqf("questflag") then --FOR /DAY
if pc.get_level() >= 250 then
return
else
local acc_id
if pc.get_account_id then
-- rev.1765++ 2010er files this function work in 2010er file.
acc_id = pc.get_account_id()
else
-- old "korea" support 2007/2008 this function isn't work..
local korea_accID = 'SELECT account_id FROM player.player WHERE name="..string.format("%q",pc.get_name()).." LIMIT 1;'
for ret in Bonus_DC.mysql_query(korea_accID) do
acc_id=ret
end
end
if not acc_id then
syschat("ERROR! AccountID is not found!")
return
end
local rewardDC = 'UPDATE account.account SET coins=coins+30 WHERE id='..acc_id..' LIMIT 1;'
Bonus_DC.mysql_query(rewardDC)
pc.setqf("questflag", get_time()+1*1*1)
syschat("Reward chat")
end
end
end
end
end
end
I gave the mysql user and password, but the "old korea support" command is not found the account_id. And do not working the quest.
So I need a working query wich determine the account_id .
Sorry for my bad english.
xP3NG3Rx
|
|
|
12/18/2011, 00:39
|
#4259
|
elite*gold: 22
Join Date: Oct 2011
Posts: 572
Received Thanks: 493
|
Bossrun Quest geht nicht.
Man wird geportet aber dann passiert halt nichts mehr.. hier ist Quest:
Code:
quest bossrun begin
state start begin
when 70028.use begin
say_title("Bossrun")
say("Du willst also ein starker Krieger sein?")
say(".....")
say("Das ich nicht lache...")
say("Sieh dich doch mal an...")
say("Ist das deine Vorstellung von einem")
say("".. pc.get_name() .." ?")
wait()
say("Nunja das tut nichts zur Sache!")
say("Beweise mir nur dass du ein starker Krieger bist,")
say("indem du einen Bossrun meisterst!")
wait()
say("Was das ist?")
say("Das klärt sich nun von ganz allein...")
say("Du wirst auf ein Gebiet teleportiert in dem nacheinander")
say("Bossmobs spawnen! Eins nach dem anderen!")
say("Sobald eins tot ist spawnt das nächste!")
if pc . get_level ( ) < 85 then
say ("Also so lass ich dich nicht dahin!. Komme wieder, wenn du Level 85 bist!")
else
say("Als erstes musst du Goldene Froesche")
say("bezwingen! Dann geht es los!")
say("Aber gebt Acht! Nur wer das Oberhaupt tötet")
say("bekommt auch die Belohnung!")
wait()
say("Also gut! Was ist nun? Willst du es probieren?")
local s = select("Aber klar!", "Ne ich bin ein Schisser")
if s == 1 then
pc.warp(930600 , 925800)
pc.remove_item(70028,1)
else
return
end
end
end
when 11505.kill with pc.get_map_index()==202 begin
local jump1 = number(1, 90)
if jump1<=50 then
chat("Du hattest Glück!")
chat("Du wirst gleich weiter teleportiert!")
timer("bossrun", 10)
else
chat("Du hattest leider Pech versuch es an dem nächsten")
chat("Goldener Frosch in 5 minuten noch einmal!")
end
end
when bossrun.timer begin
d.setf("bossrunlevel", 1)
d.new_jump_all(190, 9300, 9139)
local vid = d.spawn_mob(691, 189, 28)
d.set_unique("real", vid)
d.notice("Los gehts!");
end
when 691.kill with pc.in_dungeon() begin
if d.is_unique_dead("real") then
d.setf("bossrunlevel", 2)
timer("bossrun2", 10)
end
end
when bossrun2.timer begin
d.jump_all(9298, 9193)
local vid = d.spawn_mob(692, 186, 74)
d.set_unique("real", vid)
d.notice("Los gehts!");
end
when 692.kill with pc.in_dungeon() begin
if d.is_unique_dead("real") then
d.setf("bossrunlevel", 3)
timer("bossrun3", 10)
end
end
when bossrun3.timer begin
d.jump_all(9299, 9143)
local vid = d.spawn_mob(1901, 190, 19)
d.set_unique("real", vid)
d.notice("Los gehts!");
end
when 1901.kill with pc.in_dungeon() begin
if d.is_unique_dead("real") then
d.setf("bossrunlevel", 4)
timer("bossrun4", 10)
end
end
when bossrun4.timer begin
d.jump_all(9241, 9137)
local vid = d.spawn_mob(1903, 130, 27)
d.set_unique("real", vid)
d.notice("Los gehts!");
end
when 1903.kill with pc.in_dungeon() begin
if d.is_unique_dead("real") then
d.setf("bossrunlevel", 5)
timer("bossrun5", 10)
end
end
when bossrun5.timer begin
d.jump_all(9241, 9184)
local vid = d.spawn_mob(2092, 127, 76)
d.set_unique("real", vid)
d.notice("Los gehts!");
end
when 2092.kill with pc.in_dungeon() begin
if d.is_unique_dead("real") then
d.setf("bossrunlevel", 6)
timer("bossrun6", 10)
end
end
when bossrun6.timer begin
d.jump_all(9179, 9189)
local vid = d.spawn_mob(2093, 64, 75)
d.set_unique("real", vid)
d.notice("Los gehts!");
end
when 2093.kill with pc.in_dungeon() begin
if d.is_unique_dead("real") then
d.setf("bossrunlevel", 7)
timer("bossrun7", 10)
end
end
when bossrun7.timer begin
d.jump_all(9295, 9183)
local vid = d.spawn_mob(2206, 186, 80)
d.set_unique("real", vid)
d.notice("Los gehts!");
end
when 2206.kill with pc.in_dungeon() begin
if d.is_unique_dead("real") then
d.setf("bossrunlevel", 8)
timer("bossrun8", 10)
end
end
when bossrun8.timer begin
d.jump_all(9173, 9193)
local vid = d.spawn_mob(2207, 62, 82)
d.set_unique("real", vid)
d.notice("Los gehts!");
end
when 2207.kill with pc.in_dungeon() begin
if d.is_unique_dead("real") then
d.setf("bossrunlevel", 9)
timer("bossrun9", 10)
end
end
when bossrun9.timer begin
d.jump_all(9171, 9255)
local vid = d.spawn_mob(693, 58, 145)
d.set_unique("real", vid)
d.notice("Los gehts!");
end
when 693.kill with pc.in_dungeon() begin
if d.is_unique_dead("real") then
d.setf("bossrunlevel", 11)
timer("bossrun10", 10)
end
end
when bossrun10.timer begin
d.jump_all(9239, 9255)
local vid = d.spawn_mob(11506, 133, 144)
d.set_unique("real", vid)
d.notice("Los gehts!");
end
when 11506.kill with pc.in_dungeon() begin
if d.is_unique_dead("real") then
d.setf("bossrunlevel", 12)
say_title("Belohnung")
say_reward("Du erhälst 10.000.000 Yang")
say_reward("Dein Pferd erreichte auch ein Level-Up!")
d.notice("Ihr werdet in 40Sekunden herraus teleportiert!")
pc.change_gold(10000000)
horse.advance()
d.kill_all()
timer("bossrun_escape_timer", 40)
end
end
when bossrun_escape_timer.timer begin
d.setf("bossrunlevel", 0)
warp_all_to_village()
end
end
end
|
|
|
12/18/2011, 09:43
|
#4260
|
elite*gold: 39
Join Date: Jun 2009
Posts: 500
Received Thanks: 212
|
@Glaubichauch:
Ich glaube, bei else muss kein end hin oda?
Bei elseif auf jedenfall nicht^^
Und: Ja ich habe Skype, schicke dir PN..
€dit: @Achilles:
Alles eingerückt und schon gesehn dass unten nochn "end" für den state fehlt 
Falls es noch nicht geht, probier mal, ob er das "when kill" überhaupt ausführt (mit say oder chat).
Hier der Code (ungetestet; wenns noch net geht schreib fehler genau rein^^):
Code:
quest bossrun begin
state start begin
when 70028.use begin
say_title("Bossrun")
say("Du willst also ein starker Krieger sein?")
say(".....")
say("Das ich nicht lache...")
say("Sieh dich doch mal an...")
say("Ist das deine Vorstellung von einem")
say("".. pc.get_name() .." ?")
wait()
say("Nunja das tut nichts zur Sache!")
say("Beweise mir nur dass du ein starker Krieger bist,")
say("indem du einen Bossrun meisterst!")
wait()
say("Was das ist?")
say("Das klärt sich nun von ganz allein...")
say("Du wirst auf ein Gebiet teleportiert in dem nacheinander")
say("Bossmobs spawnen! Eins nach dem anderen!")
say("Sobald eins tot ist spawnt das nächste!")
if pc . get_level ( ) < 85 then
say ("Also so lass ich dich nicht dahin!. Komme wieder, wenn du Level 85 bist!")
else
say("Als erstes musst du Goldene Froesche")
say("bezwingen! Dann geht es los!")
say("Aber gebt Acht! Nur wer das Oberhaupt tötet")
say("bekommt auch die Belohnung!")
wait()
say("Also gut! Was ist nun? Willst du es probieren?")
local s = select("Aber klar!", "Ne ich bin ein Schisser")
if s == 1 then
pc.warp(930600 , 925800)
pc.remove_item(70028,1)
else
return
end
end
end
when 11505.kill with pc.get_map_index()==202 begin
local jump1 = number(1, 90)
if jump1<=50 then
chat("Du hattest Glück!")
chat("Du wirst gleich weiter teleportiert!")
timer("bossrun", 10)
else
chat("Du hattest leider Pech versuch es an dem nächsten")
chat("Goldener Frosch in 5 minuten noch einmal!")
end
end
when bossrun.timer begin
d.setf("bossrunlevel", 1)
d.new_jump_all(190, 9300, 9139)
local vid = d.spawn_mob(691, 189, 28)
d.set_unique("real", vid)
d.notice("Los gehts!");
end
when 691.kill with pc.in_dungeon() begin
if d.is_unique_dead("real") then
d.setf("bossrunlevel", 2)
timer("bossrun2", 10)
end
end
when bossrun2.timer begin
d.jump_all(9298, 9193)
local vid = d.spawn_mob(692, 186, 74)
d.set_unique("real", vid)
d.notice("Los gehts!");
end
when 692.kill with pc.in_dungeon() begin
if d.is_unique_dead("real") then
d.setf("bossrunlevel", 3)
timer("bossrun3", 10)
end
end
when bossrun3.timer begin
d.jump_all(9299, 9143)
local vid = d.spawn_mob(1901, 190, 19)
d.set_unique("real", vid)
d.notice("Los gehts!");
end
when 1901.kill with pc.in_dungeon() begin
if d.is_unique_dead("real") then
d.setf("bossrunlevel", 4)
timer("bossrun4", 10)
end
end
when bossrun4.timer begin
d.jump_all(9241, 9137)
local vid = d.spawn_mob(1903, 130, 27)
d.set_unique("real", vid)
d.notice("Los gehts!");
end
when 1903.kill with pc.in_dungeon() begin
if d.is_unique_dead("real") then
d.setf("bossrunlevel", 5)
timer("bossrun5", 10)
end
end
when bossrun5.timer begin
d.jump_all(9241, 9184)
local vid = d.spawn_mob(2092, 127, 76)
d.set_unique("real", vid)
d.notice("Los gehts!");
end
when 2092.kill with pc.in_dungeon() begin
if d.is_unique_dead("real") then
d.setf("bossrunlevel", 6)
timer("bossrun6", 10)
end
end
when bossrun6.timer begin
d.jump_all(9179, 9189)
local vid = d.spawn_mob(2093, 64, 75)
d.set_unique("real", vid)
d.notice("Los gehts!");
end
when 2093.kill with pc.in_dungeon() begin
if d.is_unique_dead("real") then
d.setf("bossrunlevel", 7)
timer("bossrun7", 10)
end
end
when bossrun7.timer begin
d.jump_all(9295, 9183)
local vid = d.spawn_mob(2206, 186, 80)
d.set_unique("real", vid)
d.notice("Los gehts!");
end
when 2206.kill with pc.in_dungeon() begin
if d.is_unique_dead("real") then
d.setf("bossrunlevel", 8)
timer("bossrun8", 10)
end
end
when bossrun8.timer begin
d.jump_all(9173, 9193)
local vid = d.spawn_mob(2207, 62, 82)
d.set_unique("real", vid)
d.notice("Los gehts!");
end
when 2207.kill with pc.in_dungeon() begin
if d.is_unique_dead("real") then
d.setf("bossrunlevel", 9)
timer("bossrun9", 10)
end
end
when bossrun9.timer begin
d.jump_all(9171, 9255)
local vid = d.spawn_mob(693, 58, 145)
d.set_unique("real", vid)
d.notice("Los gehts!");
end
when 693.kill with pc.in_dungeon() begin
if d.is_unique_dead("real") then
d.setf("bossrunlevel", 11)
timer("bossrun10", 10)
end
end
when bossrun10.timer begin
d.jump_all(9239, 9255)
local vid = d.spawn_mob(11506, 133, 144)
d.set_unique("real", vid)
d.notice("Los gehts!");
end
when 11506.kill with pc.in_dungeon() begin
if d.is_unique_dead("real") then
d.setf("bossrunlevel", 12)
say_title("Belohnung")
say_reward("Du erhälst 10.000.000 Yang")
say_reward("Dein Pferd erreichte auch ein Level-Up!")
d.notice("Ihr werdet in 40Sekunden herraus teleportiert!")
pc.change_gold(10000000)
horse.advance()
d.kill_all()
timer("bossrun_escape_timer", 40)
end
end
when bossrun_escape_timer.timer begin
d.setf("bossrunlevel", 0)
warp_all_to_village()
end
end
end
end
€dit²: @Penger:
Sry, can't help, don't know a working query but I'm intrested to it also
Mfg
|
|
|
All times are GMT +1. The time now is 06:11.
|
|