|
You last visited: Today at 08:35
Advertisement
[SERVICE] Die Questerstellung
Discussion on [SERVICE] Die Questerstellung within the Metin2 Private Server forum part of the Metin2 category.
02/03/2015, 13:53
|
#2101
|
elite*gold: 0
Join Date: Jul 2009
Posts: 749
Received Thanks: 284
|
Hey Leute, gibt es ne Möglichkeit bestimmte Quests über nen Befehl nur für ein Reich zu machen?
z.B Ein Roter erreicht Level 2 und muss 10 wildhunde töten
ein Blauer erreicht ebenfalls Level 2 muss aber 5 Wölfe töten..
War jetzt nur ein Beispiel
|
|
|
02/03/2015, 14:11
|
#2102
|
elite*gold: 83
Join Date: Nov 2013
Posts: 2,891
Received Thanks: 2,764
|
Quote:
Originally Posted by .Crystal
Hey Leute, gibt es ne Möglichkeit bestimmte Quests über nen Befehl nur für ein Reich zu machen?
z.B Ein Roter erreicht Level 2 und muss 10 wildhunde töten
ein Blauer erreicht ebenfalls Level 2 muss aber 5 Wölfe töten..
War jetzt nur ein Beispiel 
|
PHP Code:
quest example begin state start begin when levelup with pc.get_level() == 2 begin set_state("example_do") end end state example_do begin when enter begin if pc.get_empire() == 1 then pc.setqf("count", 10) pc.setqf("mob", 101) elseif pc.get_empire() == 2 then pc.setqf("count", 5) pc.setqf("mob", 102) elseif pc.get_empire() == 3 then pc.setqf("count", 5) pc.setqf("mob", 103) end say("Du musst "..pc.getqf("count").."x "..npc.get_name(pc.getqf("mob")).." töten.") end when kill with npc.get_race() == pc.getqf("mob") begin if pc.getqf("count") >= 2 then pc.setqf("count", pc.getqf("count")-1) elseif pc.getqf("count") == 1 then say("Quest abgeschlossen") set_state("_COMPLETE_") end end end state _COMPLETE_ begin end end
|
|
|
02/03/2015, 14:35
|
#2103
|
elite*gold: 0
Join Date: Jul 2009
Posts: 749
Received Thanks: 284
|
Quote:
Originally Posted by [Sensenmann]
PHP Code:
quest example begin
state start begin
when levelup with pc.get_level() == 2 begin
set_state("example_do")
end
end
state example_do begin
when enter begin
if pc.get_empire() == 1 then
pc.setqf("count", 10)
pc.setqf("mob", 101)
elseif pc.get_empire() == 2 then
pc.setqf("count", 5)
pc.setqf("mob", 102)
elseif pc.get_empire() == 3 then
pc.setqf("count", 5)
pc.setqf("mob", 103)
end
say("Du musst "..pc.getqf("count").."x "..npc.get_name(pc.getqf("mob")).." töten.")
end
when kill with npc.get_race() == pc.getqf("mob") begin
if pc.getqf("count") >= 2 then
pc.setqf("count", pc.getqf("count")-1)
elseif pc.getqf("count") == 1 then
say("Quest abgeschlossen")
set_state("_COMPLETE_")
end
end
end
state _COMPLETE_ begin
end
end
|
Na das ging ja schnell, ich danke dir!
|
|
|
02/03/2015, 14:49
|
#2104
|
elite*gold: 0
Join Date: Apr 2010
Posts: 111
Received Thanks: 13
|
Ich habe mir den Schmied seon .. im mob proto angeschaut aber finde irgentwie nichts dazu was die anders haben wisst ihr vllt wo man das einstellt?
|
|
|
02/03/2015, 14:51
|
#2105
|
elite*gold: 83
Join Date: Nov 2013
Posts: 2,891
Received Thanks: 2,764
|
Quote:
Originally Posted by -=[Moon]=-
Ich habe mir den Schmied seon .. im mob proto angeschaut aber finde irgentwie nichts dazu was die anders haben wisst ihr vllt wo man das einstellt?
|
Die Funktion, dass man auf denen Schmieden kann, stellt man nicht in der Datenbank oder so ein. Das ist in der Game festgelegt.
|
|
|
02/03/2015, 15:30
|
#2106
|
elite*gold: 0
Join Date: Sep 2014
Posts: 173
Received Thanks: 20
|
Morgen Leute,
wenn ich die Quest so einbaue, funktioniert sie nicht..
Was muss ich daran umstellen das ich aus dem Metin (Vnum:8041) zu 100% 3 perlen droppt, und zu 50% das man weiter bis zu max. weiteren 3 Perlen droppen kann?
#Wie schreibe ich die Quest im php Code?..
|
|
|
02/03/2015, 15:41
|
#2107
|
elite*gold: 83
Join Date: Nov 2013
Posts: 2,891
Received Thanks: 2,764
|
Quote:
Originally Posted by VeyZ
Morgen Leute,
wenn ich die Quest so einbaue, funktioniert sie nicht..
Was muss ich daran umstellen das ich aus dem Metin (Vnum:8041) zu 100% 3 perlen droppt, und zu 50% das man weiter bis zu max. weiteren 3 Perlen droppen kann?
#Wie schreibe ich die Quest im php Code?..
|
mit eckigen klammern: (php)hier quest rein(/php)
PHP Code:
quest metindrop begin state start begin when kill with npc.get_race() == 8041 begin pearls = {27992, 27993, 27994} local drop_again1 = number(1, 2) if drop_again1 == 1 then game.drop_item_with_ownership(pearls[1], 1) game.drop_item_with_ownership(pearls[2], 1) game.drop_item_with_ownership(pearls[3], 1) else local drop_again2 local random_pearl1 = number(1, 3) if drop_again2 == 1 then game.drop_item_with_ownership(pearls[1], 1) game.drop_item_with_ownership(pearls[2], 1) game.drop_item_with_ownership(pearls[3], 1) game.drop_item_with_ownership(pearls[random_pearl1], 1) else local drop_again3 local random_pearl2 = number(1, 3) if drop_again3 == 1 then game.drop_item_with_ownership(pearls[1], 1) game.drop_item_with_ownership(pearls[2], 1) game.drop_item_with_ownership(pearls[3], 1) game.drop_item_with_ownership(pearls[random_pearl1], 1) game.drop_item_with_ownership(pearls[random_pearl2], 1) else local random_pearl3 = number(1, 3) game.drop_item_with_ownership(pearls[1], 1) game.drop_item_with_ownership(pearls[2], 1) game.drop_item_with_ownership(pearls[3], 1) game.drop_item_with_ownership(pearls[random_pearl1], 1) game.drop_item_with_ownership(pearls[random_pearl2], 1) game.drop_item_with_ownership(pearls[random_pearl3], 1) end end end end end end
EDIT:
Die Quest aus dem Screen den du gepostet hast hab ich mal angepasst.
PHP Code:
quest 8041drop begin state start begin when kill with npc.get_race() == 8041 begin local drop = { --vnum, anzahl, chance {82836, 1, 100}, {82837, 1, 100}, {82838, 1, 100}, {82836, 1, 50}, {82837, 1, 50}, {82838, 1, 50} } table.foreach(drop, function(i, drop) local drop_or_not = number(1, 100) if drop_or_not <= drop[3] then game.drop_item_with_ownership(drop[1], drop[2]) end end) end end end
Macht das gleiche wie die Quest dadrüber, ist aber schöner geschrieben und verbraucht weniger Ressourcen.
|
|
|
02/03/2015, 16:07
|
#2108
|
elite*gold: 0
Join Date: Apr 2010
Posts: 111
Received Thanks: 13
|
Sensenmann kannst du mir sagen wo ich das ingame einstelle?
|
|
|
02/03/2015, 18:11
|
#2109
|
elite*gold: 313
Join Date: Apr 2013
Posts: 585
Received Thanks: 122
|
Quote:
Originally Posted by VeyZ
Morgen Leute,
wenn ich die Quest so einbaue, funktioniert sie nicht..
Was muss ich daran umstellen das ich aus dem Metin (Vnum:8041) zu 100% 3 perlen droppt, und zu 50% das man weiter bis zu max. weiteren 3 Perlen droppen kann?
#Wie schreibe ich die Quest im php Code?..
|
oder per mob_drop_item.txt
|
|
|
02/03/2015, 18:23
|
#2110
|
elite*gold: 0
Join Date: Dec 2013
Posts: 111
Received Thanks: 20
|
Quote:
Originally Posted by DarkCry96
Ich bräuchte eine Quest nach folgendem Muster
Wenn ein bestimmter Mob gespawnt ist, wird eine Ankündigung geschrieben "Mob XY ist erschienen"
Wenn ein Spieler diesen Mob tötet soll eine Ankündigung geschrieben werden "Mob XY wurde getötet"
Vielleicht - aber nur vielleicht - wenn der Mob länger als 2 Stunden lebt "Mob XY lebt immernoch"
Der Mapindex für den Mob, den ich ankündigen möchte ist 73
|
Ich suche immernoch..
Wenn das überhaupt nicht möglich ist könnt ihr mir das auch sagen
|
|
|
02/03/2015, 22:44
|
#2111
|
elite*gold: 0
Join Date: Sep 2009
Posts: 665
Received Thanks: 444
|
Quote:
Originally Posted by DarkCry96
Ich suche immernoch..
Wenn das überhaupt nicht möglich ist könnt ihr mir das auch sagen 
|
Es ist insofern möglich - wenn du das Mob mit der Quest spawnst.
Das ganze mit einem per regen.txt bereits gespawntes mob zu machen - nö.
Wenn dir das auf die Art passt - kann ich's dir schreiben =)
|
|
|
02/03/2015, 23:24
|
#2112
|
elite*gold: 0
Join Date: Dec 2013
Posts: 111
Received Thanks: 20
|
Quote:
Originally Posted by Dyshaxo
Es ist insofern möglich - wenn du das Mob mit der Quest spawnst.
Das ganze mit einem per regen.txt bereits gespawntes mob zu machen - nö.
Wenn dir das auf die Art passt - kann ich's dir schreiben =)
|
Oh vielen Dank, eine Antwort - Wenn du mir dazu vielleicht noch eine Quest erstellen könntest, die - so wie die regen.txt einen Mob spawnt und das so alle 60 Minuten? Mapindex 73.
Wäre richtig gut!
#edit - Den Mob natürlich erst nach 60 Minuten nachspawnt, wenn der erste, bzw vorherige getötet wurde
|
|
|
02/04/2015, 06:07
|
#2113
|
elite*gold: 313
Join Date: Apr 2013
Posts: 585
Received Thanks: 122
|
Quote:
Originally Posted by DarkCry96
Oh vielen Dank, eine Antwort - Wenn du mir dazu vielleicht noch eine Quest erstellen könntest, die - so wie die regen.txt einen Mob spawnt und das so alle 60 Minuten? Mapindex 73.
Wäre richtig gut!
#edit - Den Mob natürlich erst nach 60 Minuten nachspawnt, wenn der erste, bzw vorherige getötet wurde
|
#untested, mit dem Handy geschrieben kleine Rückmeldung
wenn's nicht gehn oder gehen sollte ^^
PHP Code:
quest event_spawn begin state start begin when NPC_VALUE.chat."Spawnevent" or ITEM_VALUE.use with pc.is_gm() begin --Variablen local mob_vnum = 591 -- Bsp Monster local filename = "" --derexakte name im mapordner zb. eventspawn ohne .txt local map_index = 63 --ist jetzt z.B Wüste local announcement = "Mob xy ist erschienen!" --Ankündigunstext say_title("Spawnevent") say("Spawnen lassen?") local s= select("Ja, mit Ankündigung", "Ja, ohne Ankündigen", "Nein") if s==1 then notice_all(announcement) regen_in_map(map_index, "data/dungeon/"..filename..".txt") game.set_event_flag("mob_spawn", 1) server_timer("mob_spawn", 3600) elseif s == 2 then regen_in_map(map_index, "data/dungeon/"..filename..".txt") game.set_event_flag("mob_spawn", 1) elseif s == 3 then end end when mob_spawn.server_timer begin if game.get_event_flag("mob_spawn") == 1 then notice_all("Mob xy zieht immernoch durch die Wüste") end if game.get_event_flag("mob_spawn") == 0 then regen_in_map(map_index, "data/dungeon/"..filename..".txt") game.set_event_flag("mob_spawn", 1) server_timer("mob_spawn", 3600) end end when kill with npc.get_race() == mob_vnum and game.get_event_flag("mob_spawn") == 1 begin notice_all("Mob xy wurde von "..pc.get_name().." getötet!") game.set_event_flag("mob_spawn", 0) server_timer("mob_spawn", 3600) end end end
Greetings.
|
|
|
02/04/2015, 06:33
|
#2114
|
elite*gold: 83
Join Date: Nov 2013
Posts: 2,891
Received Thanks: 2,764
|
Quote:
Originally Posted by G.I Duke
#untested, mit dem Handy geschrieben kleine Rückmeldung
wenn's nicht gehn oder gehen sollte ^^
PHP Code:
quest event_spawn begin
state start begin
when NPC_VALUE.chat."Spawnevent" or ITEM_VALUE.use with pc.is_gm() begin
--Variablen
local mob_vnum = 591 -- Bsp Monster
local filename = "" --derexakte name im mapordner zb. eventspawn ohne .txt
local map_index = 63 --ist jetzt z.B Wüste
local announcement = "Mob xy ist erschienen!" --Ankündigunstext
say_title("Spawnevent")
say("Spawnen lassen?")
local s= select("Ja, mit Ankündigung", "Ja, ohne Ankündigen", "Nein")
if s==1 then
notice_all(announcement)
regen_in_map(map_index, "data/dungeon/"..filename..".txt")
game.set_event_flag("mob_spawn", 1)
timer("mob_spawn", 3600)
elseif s == 2 then
regen_in_map(map_index, "data/dungeon/"..filename..".txt")
game.set_event_flag("mob_spawn", 1)
elseif s == 3 then
end
end
when mob_spawn.timer begin
if game.get_event_flag("mob_spawn") == 1 then
notice_all("Mob xy zieht immernoch durch die Wüste")
end
if game.get_event_flag("mob_spawn") == 0 then
regen_in_map(map_index, "data/dungeon/"..filename..".txt")
game.set_event_flag("mob_spawn", 1)
timer("mob_spawn", 3600)
end
end
when kill with npc.get_race() == mob_vnum and game.get_event_flag("mob_spawn") == 1 begin
notice_all("Mob xy wurde von "..pc.get_name().." getötet!")
game.set_event_flag("mob_spawn", 0)
timer("mob_spawn", 3600)
end
end
end
Greetings.
|
Server_timer anstatt timer. Ein timer läuft auf einem Spieler und das sollte ja nicht so sein ... ^^
|
|
|
02/04/2015, 08:52
|
#2115
|
elite*gold: 0
Join Date: Dec 2011
Posts: 19
Received Thanks: 0
|
Code:
quest story_shadow begin
state start begin
when login or levelup with pc.get_level() >= 1 begin
set_state(info)
end
end
state info begin
when letter begin
send_letter(" test ")
local v = find_npc_by_vnum(20091)
if v != 0 then
target.vid("__TARGET__", v, " here any name ? or name in mysql ")
end
end
when info or info begin
say_title(" test ")
set_text_color("dark orange")
say(mob_name(101) .. " ")
say("test")
say("test")
say("")
end
when __TARGET__.target.click or 20091.chat."test" begin
target.delete("__TARGET__")
say_title(" test: ")
set_text_color("dark orange")
say(" test ")
say(" test ")
say_reward(" test ")
say("")
say("")
wait()
say_title(" test: ")
set_text_color("dark orange")
say(" test ")
say(" test ")
say_reward(" test ")
say(" test ")
wait()
say_title(" test: ")
say("")
say_reward(" test ")
say_reward("test")
say_reward("test")
say_reward("test")
say("")
set_state(__MISION__)
pc.setqf("duration",0)
pc.setqf("collect_count",0)
pc.setqf("drink_drug",0)
end
end
state __MISION__ begin
when letter begin
send_letter(" test ")
end
when button or info begin
say_title("test")
set_text_color("dark orange")
say(" test")
say(" test ")
say("")
say_item_vnum(50300)
say_reward(" test "..pc.getqf("collect_count").." test ")
say("")
end
when 71035.use begin
if get_time() < pc.getqf("duration") then
syschat(" test ")
return
end
if pc.getqf("drink_drug")==1 then
syschat(" test ")
return
end
if pc.count_item(50300)==0 then
syschat(" test ")
return
end
pc.remove_item(71035 , 1)
pc.setqf("drink_drug",1)
end
when 76020.use with pc.count_item(50300)>=1 and get_time() <= pc.getqf("duration") begin
pc.remove_item(76020 , 1)
pc.setqf("drink_drug",1)
pc.setqf("duration", get_time()-1)
end
when 20091.chat." test " with pc.count_item(50300) >0 begin
if get_time() > pc.getqf("duration") then
if pc.count_item(50300) >0 then
say_title(" test: ")
set_text_color("dark orange")
say("test")
say("")
pc.remove_item("50300",1)
wait()
local pass_percent
if pc.getqf("drink_drug")==0 then
pass_percent=70
else
pass_percent=100
end
local s= number(1,100)
if s<= pass_percent then
if pc.getqf("collect_count")< 9 then
local index =pc.getqf("collect_count")+1
pc.setqf("collect_count",index)
say_title(" test: ")
set_text_color("dark orange")
say(" test ")
say(" test "..10-pc.getqf("collect_count").. " test ")
say_reward(" test ")
say("")
pc.setqf("drink_drug",0)
return
end
say_title(" test: ")
set_text_color("dark orange")
say(" test ")
say("")
pc.setqf("collect_count",0)
pc.setqf("drink_drug",0)
pc.setqf("duration",0)
set_state(__REWARD__)
return
else
say_title(" test: ")
say("test")
say("")
pc.setqf("drink_drug",0)
return
end
else
say_title(" test: ")
set_text_color("dark orange")
say(" test "..item_name(50300).." ")
return
end
else
say_title(" test: ")
set_text_color("dark orange")
local hoursleft = math.floor((pc.getqf("duration")-get_time())/60)
say(" test ")
say(" test "..hoursleft.." test ")
say("")
return
end
end
end
state __REWARD__ begin
when letter begin
send_letter(" ~ test ")
if pc.count_item(50300)>0 then
local v = find_npc_by_vnum(20091)
if v != 0 then
target.vid("__TARGET__", v, "here anyname or name in navicat?")
end
end
end
when button or info begin
if pc.count_item(50300) >0 then
say_title(" test ")
say("")
say_reward(" test ")
say("")
return
end
say_title(" test ")
set_text_color("dark orange")
say(" test ")
say("")
say_item_vnum(50300)
say(" test ")
say(" test "..mob_name(101)..", ")
say(" "..mob_name(101).." و "..mob_name(101).." ")
say("")
end
when 101.kill or 101.kill or 101.kill begin
local s = number(1, 100)
if s == 1 and pc.count_item(50300)==0 then
pc.give_item2(50300, 1)
send_letter(" test ")
end
end
when 20091.chat." test " with pc.count_item(50300) > 0 begin
if pc.count_item(50300) > 0 then
say_title(" test: ")
set_text_color("dark orange")
say("test")
say("")
say("")
pc.remove_item(50300,1)
set_state(__reward)
else
say_title(" test: ")
set_text_color("dark orange")
say(" test "..item_name(50300).." ")
say("")
return
end
end
end
state __reward begin
when letter begin
send_letter(" test ")
local v = find_npc_by_vnum(20091)
if v != 0 then
target.vid("__TARGET__", v, " here anyname or name in navicat ?? ")
end
end
when info or button begin
say_title(" test")
say("test")
say("")
end
say_reward(" test " .. mob_name(20091))
local v = find_npc_by_vnum(20091)
if v != 0 then
target.vid("__TARGET__", k, "here anyname or name in navicat ?? ")
end
end
when __TARGET__.target.click or 20091.chat." test " begin
target.delete("__TARGET__")
say_title(mob_name(20091) .. ":")
say("")
say(" test")
say(" test:")
say_reward(" test ")
say_reward(" test")
say_reward("test")
affect.add_collect(apply.MAX_HP, 2500, 60*60*24*365*60) -- 60Years
pc.give_item2(53022)
pc.give_gold(10000000)
pc.give_gold(10000000)
clear_letter()
set_state(__COMPLETE__)
end
end
state __COMPLETE__ begin
when enter begin
q.done()
end
end
end
:*( section ?
UP
|
|
|
 |
|
Similar Threads
|
[Community]Questerstellung
09/06/2015 - Metin2 Private Server - 5 Replies
Hallo liebe Community,
ich möchte meine Questkenntnisse ein wenig erweitern, deshalb möchte ich euch hier die Möglichkeit geben, Ideen, Wünsche und alles was mit Quests zu tun hat an mich weiterzuleiten.
Ich werde, sobald ich Zeit und Lust habe, die Ideen größtenteils umsetzen und das Ergebnis hier veröffentlichen. Wie oben schon erwähnt bin ich Quasi noch am 'lernen' (ja ich weis, man lernt nie aus), deshalb bitte ich euch, mich zu informieren wenn ich irgendwo gefailed hab, man es...
|
Hilfe bei Questerstellung
02/25/2012 - Metin2 Private Server - 0 Replies
€dit:
Kan gelöscht werden habe jemanden gefunden!!!!
|
Hilfe bei Questerstellung
02/15/2012 - Metin2 Private Server - 8 Replies
Heyy
Ich hätte eine bitte an euch.
Und zwar einer von euch mir einige quests erstellst.
Ich habe voll kp von quests.
Als blohnung würde ich dir auf meinem server
5k coins (Wert 50€) geben.
also hier die quests:
30 Quest
Belohnung: 100kk 42 rüssi+7 je nach der klasse.
|
Hilfe bei Questerstellung
08/16/2011 - Metin2 Private Server - 0 Replies
Mahlzeit
also ich suche jemanden der mir ein grundgerüst einer quest erstellen kann so das ich diese weiter ausbauen kann,
So nun zur quest idee
Also ich möchte einen NPC hinstellen nennen wir den mal Questnpc
wenn man den anklickt soll man dem levelabhängig quest angeboten bekommen,zum beispiel ab lvl10 töte 50 weisse Tiger,aber lvl40 töte 30 Oberork und so weiter,was mit levelanstieg natürlich komplexer werden sollte.Manche Quest sollten nur einmal zumachen gehen und manche im höheren lvl...
|
[SERVICE]Questerstellung
05/24/2011 - Metin2 Private Server - 4 Replies
Abend e*pvp,
nach langem Überlegen hab ich mich doch dazu entschlossen, meine Arbeit gegen e*gold zur Verfügung zu stellen.
Ich werde euch mal die wichtigsten Fragen beantworten ;)
Woraus besteht dein Service?
Zum einen erstelle ich einzelne, sowie ganze Questreihen. Die von mir verschickten Dateien werden Unikate bleiben, und sofort nach erfolgreichem Transfer gelöscht. Außerdem biete ich nochmal seperat eine Questverbesserung zum Sammelthread an. Diese wird dann natürlich...
|
All times are GMT +1. The time now is 08:37.
|
|