|
You last visited: Today at 14:46
Advertisement
[SERVICE] Die Questkontrolle
Discussion on [SERVICE] Die Questkontrolle within the Metin2 Private Server forum part of the Metin2 category.
06/03/2013, 23:29
|
#8206
|
elite*gold: 0
Join Date: May 2013
Posts: 104
Received Thanks: 18
|
Code:
quest sensenmann begin
state start begin
when login or levelup with pc.level >= 87 begin
set_state(information)
end
end
state information begin
when letter begin
send_letter("Angriff auf das Kaiser Reich")
end
when info or button begin
say_title("Angriff auf das Kaiser Reich")
say("Sei auf der Hut, Reisender!")
say("Der Sensenmann ist nicht erfreut,")
say("über so einen Starken Kämpfer wie dich.")
say("Er plant einen Kampf gegen das Kaiser Reich.")
say("Es liegt an dir, Ihn und seine Armee aufzuhalten!")
say("Bitte beeile dich, sonst ist es zu spät.")
say("Viel glück.")
say("Bewinge den Dämonenturm!")
say("Du bekommst 10% gegen Monster und 30 Angriffwert für deine Heldentat.")
say("Willst du die Aufgabe annhemen?")
local s = select("Ja","Nein keine Zeit")
if s == 2 then
say("Nun gut!")
say("Es werden noch andere kommen!")
clear_letter()
set_state (beenden)
else
say("Okay los gehts!")
say_reward("Töte den Sensenmann")
pc.setqf("state1", 0)
set_state(kill)
end
end
end
state kill begin
when letter begin
send_letter("Töte den Sensenmann")
end
when info or button begin
say_title("Angriff auf das Kaiser Reich")
say("Staus:")
say_reward("Du hast schon "..pc.getqf("state1").." von 1 x Sensenmann getötet.")
end
when 1093.kill begin
local count1 = pc.getqf("state1") + 1
if count1 <= 1 then
pc.setqf("state1", count1)
q.set_counter("Sensenmann", count1)
end
if count1 == 1 then
set_state(fertig)
end
end
end
state fertig begin
when letter begin
send_letter("Aufgabe abgeschlossen!")
end
when info or button begin
say_title("Aufgabe abgeschlossen!")
say("Der Sensenmann wurde bezwungen!")
say("Du hast es geschaft, du bist ein wahrer Held.")
say("Das gesamte Kaiser Reich ist stolz auf dich,")
say("du bist ein wahrhaftiger Krieger!")
wait()
say("Viel spaß mit der Belohnung")
local s=select("Danke!","Ich will sie nicht.")
if s== 2 then
clear_letter()
set_state(beenden)
else
say_reward("10% Stark gegen Monster")
say_reward("30 Angriffwert")
say_reward("10.000.000 Yang")
affect.add_collect(apply.ATT_BONUS_TO_MONSTER,10,60*60*24*365*60) -----\'a1V60\'a6~
affect.add_collect(apply.ATT_GRADE_BONUS,30,60*60*24*365*60) -----\'a1V60\'a6~
pc.change_money(10000000)
clear_letter()
set_state(ende)
end
end
end
state beenden begin
end
state ende begin
end
end
Irgendwie funz. es nicht, wenn man sensi killt, wird es nicht gezählt -.-
|
|
|
06/04/2013, 02:16
|
#8207
|
elite*gold: 310
Join Date: May 2011
Posts: 1,592
Received Thanks: 105
|
Quote:
Originally Posted by [SA]Perfect
PHP Code:
quest truhen_zero begin
state start begin
when login begin
pc.give_item2(50187)
set_state(truhen)
end
end
state truhen begin
when 50187.use begin
local item_vnum = 186 --Giftschwert+6
if pc.get_job() == 1 then
item_vnum = 1136 --Teufelsflügel Chakram+6
elseif pc.get_job() == 2 then
item_vnum = 186 --Giftschwert+6
elseif pc.get_job() == 3 then
item_vnum = 5126 --Orchideenglocke+6
end
pc.give_item2(item_vnum) --lvl 75er waffe je nach rasse
pc.give_item2(27992, 2) --Weiße Perle
pc.give_item2(27993, 2 --Blaue Perle
pc.give_item2(27994, 2) --Blutrote Perle
pc.give_item2(27115, 200) --Violetter Trank (G)
pc.give_item2(27112, 200) --Grüner Trank (G)
pc.give_item2(72702, 1) --Windschuhe+
pc.give_item2(50512, 1) --Regenbogenstein
pc.remove_item(50187, 1) --Lehrlingstruhe I verschwindet
end
when 50195.use with pc.get_level() >= 80 begin
pc.give_item2(27992, 3) --Weiße Perle
pc.give_item2(27993, 3) --Blaue Perle
pc.give_item2(27994, 3) --Blutrote Perle
pc.remove_item(50195, 1) --Meistertruhe III verschwindet
end
when 50196.use with pc.get_level() >= 90 begin
pc.give_item2(27992, 4) --Weiße Perle
pc.give_item2(27993, 4) --Blaue Perle
pc.give_item2(27994, 4) --Blutrote Perle
pc.give_item2(30319, 3) --Schrumpfkopf
pc.remove_item(50196, 1) --Großmeistertruhe verschwindet
end
end
end
Was ist falsch???
[IMG]  [/IMG]
|
Soweit ich aus dem Fehler lesen konnte, hast du bei einem 'pc' das '(' Vergessen.
Versuch diese Quest mal:
PHP Code:
quest truhen_zero begin
state start begin
when login begin
pc.give_item2(50187)
set_state(truhen)
end
end
state truhen begin
when 50187.use begin
local item_vnum = 186 --Giftschwert+6
if pc.get_job() == 1 then
item_vnum = 1136 --Teufelsflügel Chakram+6
elseif pc.get_job() == 2 then
item_vnum = 186 --Giftschwert+6
elseif pc.get_job() == 3 then
item_vnum = 5126 --Orchideenglocke+6
end
pc.give_item2(item_vnum) --lvl 75er waffe je nach rasse
pc.give_item2(27992, 2) --Weiße Perle
pc.give_item2(27993, 2) --Blaue Perle
pc.give_item2(27994, 2) --Blutrote Perle
pc.give_item2(27115, 200) --Violetter Trank (G)
pc.give_item2(27112, 200) --Grüner Trank (G)
pc.give_item2(72702, 1) --Windschuhe+
pc.give_item2(50512, 1) --Regenbogenstein
pc.remove_item(50187, 1) --Lehrlingstruhe I verschwindet
end
when 50195.use with pc.get_level() >= 80 begin
pc.give_item2(27992, 3) --Weiße Perle
pc.give_item2(27993, 3) --Blaue Perle
pc.give_item2(27994, 3) --Blutrote Perle
pc.remove_item(50195, 1) --Meistertruhe III verschwindet
end
when 50196.use with pc.get_level() >= 90 begin
pc.give_item2(27992, 4) --Weiße Perle
pc.give_item2(27993, 4) --Blaue Perle
pc.give_item2(27994, 4) --Blutrote Perle
pc.give_item2(30319, 3) --Schrumpfkopf
pc.remove_item(50196, 1) --Großmeistertruhe verschwindet
end
end
end
- Anonyme™.
|
|
|
06/04/2013, 11:03
|
#8208
|
elite*gold: 80
Join Date: Mar 2013
Posts: 266
Received Thanks: 32
|
Ist geschafft danke an Anonyme!
|
|
|
06/04/2013, 11:31
|
#8209
|
elite*gold: 0
Join Date: Jun 2013
Posts: 89
Received Thanks: 19
|
€: Hat sich erledigt, fehler gefunden xD
|
|
|
06/04/2013, 14:02
|
#8210
|
elite*gold: 80
Join Date: Mar 2013
Posts: 266
Received Thanks: 32
|
PHP Code:
quest startlevel begin state start begin when login begin say_title ( "Willkommen" ) say ( "Willkommen auf Serious2." ) say ( "Viel Spass!" ) pc . give_exp2 ( 124500000 ) set_quest_state ( "levelup" , "run" ) say_reward ( "Du wurdest level 75." ) clear_letter ( ) set_state ( "__COMPLETE__" ) end
Wo ist der fehler?
|
|
|
06/04/2013, 14:27
|
#8211
|
elite*gold: 0
Join Date: Nov 2012
Posts: 373
Received Thanks: 132
|
Quote:
Originally Posted by [SA]Perfect
PHP Code:
quest startlevel begin
state start begin
when login begin
say_title ( "Willkommen" )
say ( "Willkommen auf Serious2." )
say ( "Viel Spass!" )
pc . give_exp2 ( 124500000 )
set_quest_state ( "levelup" , "run" )
say_reward ( "Du wurdest level 75." )
clear_letter ( )
set_state ( "__COMPLETE__" )
end
Wo ist der fehler?
|
Die sollte gehen:
Code:
quest startlevel begin
state start begin
when login begin
say_title("Willkommen")
say("Willkommen auf Serious2.")
say("Viel Spass!")
pc.give_exp2(124500000)
set_quest_state("levelup","run")
say_reward("Du wurdest level 75.")
clear_letter()
set_state(__COMPLETE__)
end
end
state __COMPLETE__ begin
end
end
Zum einen fehlten end´s und du hast den letzten state nicht angefangen oder beendet.
|
|
|
06/04/2013, 14:57
|
#8212
|
elite*gold: 80
Join Date: Mar 2013
Posts: 266
Received Thanks: 32
|
Quote:
Originally Posted by Marsia
Die sollte gehen:
Code:
quest startlevel begin
state start begin
when login begin
say_title("Willkommen")
say("Willkommen auf Serious2.")
say("Viel Spass!")
pc.give_exp2(124500000)
set_quest_state("levelup","run")
say_reward("Du wurdest level 75.")
clear_letter()
set_state(__COMPLETE__)
end
end
state __COMPLETE__ begin
end
end
Zum einen fehlten end´s und du hast den letzten state nicht angefangen oder beendet.
|
Die geht aber die exp ist nicht richtig also ich will nicht manuell einstellen das er 75 kommt !
|
|
|
06/04/2013, 15:19
|
#8213
|
elite*gold: 0
Join Date: Nov 2012
Posts: 373
Received Thanks: 132
|
Des ist die gleiche Anzahl wie die Exp anzahl die du drin hattest. Ich weis nicht wie viel Exp man braucht um auf Level 75 zu kommen des musste anpassen bei "pc.give_exp2" das was in Klammern steht.
|
|
|
06/04/2013, 17:24
|
#8214
|
elite*gold: 0
Join Date: May 2012
Posts: 7,283
Received Thanks: 822
|
PHP Code:
quest warpring begin state start begin when 70007.use begin say_title("Ring:") say("Hallo mein Freund") say("Ich kann dich mit meinen mythischen Kräften") say("in viele dem Verderben erlegene Welten führen") say("Möchtest du das ich dich in solch eine Welt bringe?")
local auswahl = select("Ja","Nein") if auswahl == 2 then return end if auswahl == 1 then say_title("Wähle deinen Kategorie") local kategorie = select("Map1", "Map2", "Levelorte", "Nix") if kategorie == 4 then return end if kategorie == 1 then say("Wähle die Map1 wo du hin möchtest") local map1 =select("Blaues Map1", "Gelbes Map1", "Rotes Map1", "Nichts") if map1 == 4 then return end if map1 == 1 then pc.warp(959900,269200) end if map1 == 2 then pc.warp(63800,166400) end if map1 == 3 then pc.warp(474300,954800) end end if kategorie == 3 then say("Wähle die Map zu der du reisen willst") local sonstmaps = select("Orktal", "Hwang Tempel", "SD2", "Zin Grotte", "Zin Grotte2", "Nichts") if sonstmaps == 6 then return end if sonstmaps == 1 then pc.warp(335900,755300) end if sonstmaps == 2 then pc.warp(537600,51200) end if sonstmaps == 3 then pc.warp(665600, 435200) end if sonstmaps == 4 then pc.warp(0,1203200) end if sonstmaps == 5 then pc.warp(241700,1274900)
end end if kategorie == 2 then say("Wähle deine Map2") local map2 =select("Blaues Map2", "Gelbes Map2", "Rotes Map2", "Nichts") if map2 == 4 then return end if map2 == 1 then pc.warp(819200, 204800) end if map2 == 2 then pc.warp(102400, 204800) end if map2 == 3 then pc.warp(307200, 819200) end end end end end end
Werde überhaupt nicht geportet, kann mir jemand helfen?
|
|
|
06/04/2013, 17:45
|
#8215
|
elite*gold: 34
Join Date: May 2013
Posts: 75
Received Thanks: 86
|
@ Hydra™
PHP Code:
quest warpring begin state start begin when 70007.use begin say_title("Ring:") say("Hallo mein Freund") say("Ich kann dich mit meinen mythischen Kräften") say("in viele dem Verderben erlegene Welten führen") say("Möchtest du das ich dich in solch eine Welt bringe?") local auswahl = select("Ja","Nein") if auswahl == 2 then return end say_title("Wähle deinen Kategorie") local kategorie = select("Map1", "Map2", "Levelorte", "Nix") if kategorie == 4 then return elseif kategorie == 1 then say("Wähle die Map1 wo du hin möchtest") local map1 = select("Blaues Map1", "Gelbes Map1", "Rotes Map1", "Nichts") if map1 == 4 then return elseif map1 == 1 then pc.warp(959900,269200) elseif map1 == 2 then pc.warp(63800,166400) elseif map1 == 3 then pc.warp(474300,954800) end elseif kategorie == 3 then say("Wähle die Map zu der du reisen willst") local sonstmaps = select("Orktal", "Hwang Tempel", "SD2", "Zin Grotte", "Zin Grotte2", "Nichts") if sonstmaps == 6 then return elseif sonstmaps == 1 then pc.warp(335900,755300) elseif sonstmaps == 2 then pc.warp(537600,51200) elseif sonstmaps == 3 then pc.warp(665600, 435200) elseif sonstmaps == 4 then pc.warp(0,1203200) elseif sonstmaps == 5 then pc.warp(241700,1274900) end elseif kategorie == 2 then say("Wähle deine Map2") local map2 =select("Blaues Map2", "Gelbes Map2", "Rotes Map2", "Nichts") if map2 == 4 then return elseif map2 == 1 then pc.warp(819200, 204800) elseif map2 == 2 then pc.warp(102400, 204800) elseif map2 == 3 then pc.warp(307200, 819200) end end end end end
|
|
|
06/04/2013, 17:57
|
#8216
|
elite*gold: 0
Join Date: May 2012
Posts: 7,283
Received Thanks: 822
|
Nene an den end's liegst nicht ... ich hab's schon auch mit anderen warp-quests ausprobiert & geht trtzdem nicht.
|
|
|
06/04/2013, 18:06
|
#8217
|
elite*gold: 34
Join Date: May 2013
Posts: 75
Received Thanks: 86
|
Quest ist getestet und geht
|
|
|
06/04/2013, 21:45
|
#8218
|
elite*gold: 317
Join Date: Jul 2008
Posts: 511
Received Thanks: 102
|
Code:
quest pets_azreal begin
state start begin
function givebonus(x)
local y,boni = {17,21,1},pets_azreal.bonusliste()
table.foreach(boni[x],function(i,l) cmdchat("HaustierBonus"..i.." "..l.."|"..y[i].."#") affect.add_collect(y[i],l,60*60*24*365*60) end )
cmdchat("HaustierLevel "..pc.getqf('petlevel_azreal').."")
cmdchat("HaustierName Baby-Azrael")
pc.setqf("petruf_azreal",1)
end
function bonusliste()
return {
[1] = {5,10,500},
[2] = {7,10,1000},
[3] = {8,15,1500},
[4] = {10,20,2000},
[5] = {15,20,3000},
}
end
function removebonus(x)
local y,boni = {17,21,1},pets_azreal.bonusliste()
table.foreach(boni[x],function(i,l) affect.remove_collect(y[i],l,60*60*24*365*60) end )
pet.unsummon()
pc.setqf("petruf_azreal",0)
horse.set_level("21")
cmdchat("HidePetGui")
cleartimer("bugcheck")
end
when 53005.use begin
horse.unride() horse.unsummon()
if pc.is_mount() then
say_title("Entschuldigung")
say("Bitte steige von deinem Mount ab!")
return
end
if pc.getqf('petlevel_azreal') == 0 then
pc.setqf('petlevel_azreal',1)
end
if pc.getqf("petruf_azreal") == 0 then
local Horselevel = 25
horse.set_level(Horselevel)
-- Speichere Pferde Namen
local old_horse_name = horse.get_name()
horse.set_name("[Lvl: "..pc.getqf('petlevel_azreal').."] Baby-Azrael")
pet.unsummon() pet.summon()
chat("Dein Haustier wurde gerufen.")
-- Setze Alten Namen zurück
horse.set_name(old_horse_name)
pets_azreal.givebonus(pc.getqf('petlevel_azreal'))
local expprocent1 = {20, 80, 160, 350, 400}
-- Build EXP
local petexp = (pc.getqf("exp")/expprocent1[pc.getqf("petlevel_azreal")])
local txtexp = ""..petexp
local ftxtexp = ""..string.sub(txtexp,1,4)
cmdchat("PetProcentExp "..ftxtexp.."")
cmdchat("ShowPetGui")
loop_timer("bugcheck", 0.2)
elseif pc.getqf("petruf_azreal") == 1 then
pets_azreal.removebonus(pc.getqf('petlevel_azreal'))
chat("Dein Haustier verabschiedet sich nun.")
end
end
when kill with pc.getqf("petruf_azreal") == 1 begin
if pc.getqf("petlevel_azreal") == 5 then
return
end
pc.setqf("exp",pc.getqf("exp")+1)
local exp2up = {2000, 8000, 16000, 35000, 40000}
local expprocent = {20, 80, 160, 350, 400}
-- Build EXP
local petexp = (pc.getqf("exp")/expprocent[pc.getqf("petlevel_azreal")])
local txtexp = ""..petexp
local ftxtexp = ""..string.sub(txtexp,1,4)
cmdchat("PetProcentExp "..ftxtexp.."")
if pc.getqf("exp") == exp2up[pc.getqf("petlevel_azreal")] then
if pc.getqf("petlevel_azreal") == 4 then
say_title("Herzlichen Glückwunsch")
say("Dein Haustier erreicht Level "..(pc.getqf("petlevel_azreal")+1).."")
say_reward("Dies war das letzte Level!")
end
say_title("Herzlichen Glückwunsch")
say("Dein Haustier erreicht Level "..(pc.getqf("petlevel_azreal")+1).."")
say("Rufe dein Pet bitte erneut!")
pc.setqf("petlevel_azreal",pc.getqf("petlevel_azreal")+1)
pc.setqf("exp",0)
pets_azreal.removebonus(pc.getqf('petlevel_azreal'))
end
end
-- Bugschutz
when bugcheck.timer begin
if pc.count_item(53005) == 0 then
pets_azreal.removebonus(pc.getqf('petlevel_azreal'))
end
end
when login or logout or disconnect with pc.getqf("petruf_azreal") == 1 begin
pets_azreal.removebonus(pc.getqf('petlevel_azreal'))
chat("Dein Haustier ist nicht mitgekommen...")
chat("Rufe es erneut!")
end
end
end
Problem:
SYSERR: Jun 4 21:32:41 :: WriteRunningStateToSyserr: LUA_ERROR: quest pets_azreal.start letter
SYSERR: Jun 4 21:32:42 :: RunState: LUA_ERROR: locale/germany/quest/object/state/pets_azreal:14: bad argument #1 to `foreach' (table expected, got nil)
|
|
|
06/04/2013, 22:02
|
#8219
|
elite*gold: 313
Join Date: Apr 2013
Posts: 585
Received Thanks: 122
|
Quote:
Originally Posted by Hydra™
PHP Code:
quest warpring begin state start begin when 70007.use begin say_title("Ring:") say("Hallo mein Freund") say("Ich kann dich mit meinen mythischen Kräften") say("in viele dem Verderben erlegene Welten führen") say("Möchtest du das ich dich in solch eine Welt bringe?")
local auswahl = select("Ja","Nein") if auswahl == 2 then return end if auswahl == 1 then say_title("Wähle deinen Kategorie") local kategorie = select("Map1", "Map2", "Levelorte", "Nix") if kategorie == 4 then return end if kategorie == 1 then say("Wähle die Map1 wo du hin möchtest") local map1 =select("Blaues Map1", "Gelbes Map1", "Rotes Map1", "Nichts") if map1 == 4 then return end if map1 == 1 then pc.warp(959900,269200) end if map1 == 2 then pc.warp(63800,166400) end if map1 == 3 then pc.warp(474300,954800) end end if kategorie == 3 then say("Wähle die Map zu der du reisen willst") local sonstmaps = select("Orktal", "Hwang Tempel", "SD2", "Zin Grotte", "Zin Grotte2", "Nichts") if sonstmaps == 6 then return end if sonstmaps == 1 then pc.warp(335900,755300) end if sonstmaps == 2 then pc.warp(537600,51200) end if sonstmaps == 3 then pc.warp(665600, 435200) end if sonstmaps == 4 then pc.warp(0,1203200) end if sonstmaps == 5 then pc.warp(241700,1274900)
end end if kategorie == 2 then say("Wähle deine Map2") local map2 =select("Blaues Map2", "Gelbes Map2", "Rotes Map2", "Nichts") if map2 == 4 then return end if map2 == 1 then pc.warp(819200, 204800) end if map2 == 2 then pc.warp(102400, 204800) end if map2 == 3 then pc.warp(307200, 819200) end end end end end end
Werde überhaupt nicht geportet, kann mir jemand helfen?
|
PHP Code:
quest warpring begin state start begin when 70007.use begin say_title("Ring:") say("Hallo mein Freund") say("Ich kann dich mit meinen mythischen Kräften") say("in viele dem Verderben erlegene Welten führen") say("Möchtest du das ich dich in solch eine Welt bringe?") local auswahl = select("Ja","Nein") if auswahl == 2 then return elseif auswahl == 1 then say_title("Wähle deinen Kategorie") local kategorie = select("Map1", "Map2", "Levelorte", "Abbrechen") if kategorie == 4 then return elseif kategorie == 1 then say("Wähle die Map1 wo du hin möchtest") local map1 =select("Blaues Map1", "Gelbes Map1", "Rotes Map1", "Abbrechen") if map1 == 4 then return elseif map1 == 1 then pc.warp(959900,269200) elseif map1 == 2 then pc.warp(63800,166400) elseif map1 == 3 then pc.warp(474300,954800) end elseif kategorie == 3 then say("Wähle die Map zu der du reisen willst") local sonstmaps = select("Orktal", "Hwang Tempel", "SD2", "Zin Grotte", "Zin Grotte2", "Nichts") if sonstmaps == 6 then return elseif sonstmaps == 1 then pc.warp(335900,755300) elseif sonstmaps == 2 then pc.warp(537600,51200) elseif sonstmaps == 3 then pc.warp(665600, 435200) elseif sonstmaps == 4 then pc.warp(0,1203200) elseif sonstmaps == 5 then pc.warp(241700,1274900) end elseif kategorie == 2 then say("Wähle deine Map2") local map2 =select("Blaues Map2", "Gelbes Map2", "Rotes Map2", "Nichts") if map2 == 4 then return elseif map2 == 1 then pc.warp(819200, 204800) elseif map2 == 2 then pc.warp(102400, 204800) elseif map2 == 3 then pc.warp(307200, 819200) end end end end end
|
|
|
06/04/2013, 22:07
|
#8220
|
elite*gold: 0
Join Date: Jun 2013
Posts: 89
Received Thanks: 19
|
Code:
quest itemtausch begin
state start begin
when 9009.chat."Itemtausch" begin
say("Hier kannst du 50 Steinstücke gegen 5 Muscheln tauschen")
local s = select("tauschen","nicht tauschen")
if s == 1 then
if pc.count_item(27990) > 50 then
pc.remove_item(27990, 50)
pc.give_item2(27987, 5)
else
syschat("Dir fehlt ITEMNAME!")
end
when 9009.chat."Shop" begin
npc.open_shop()
setskin(NOWINDOW)
end
else
return
end
end
end
end
error :
Code:
syntax error : [string "start"]:10: unexpected symbol near `when'
itemtausch.quest:20:Error occured on compile itemtausch.quest
|
|
|
All times are GMT +1. The time now is 14:47.
|
|