|
You last visited: Today at 22:45
Advertisement
[SERVICE] Die Questkontrolle
Discussion on [SERVICE] Die Questkontrolle within the Metin2 Private Server forum part of the Metin2 category.
03/25/2016, 23:32
|
#12256
|
elite*gold: 39
Join Date: Sep 2011
Posts: 1,198
Received Thanks: 251
|
Mob Spawnt nicht an einer der Stellen..
PHP Code:
when 11505.kill begin if pc.get_map_index() == 219 then local r=number(1, 3) if r==1 then pc.give_item2(50076, 1) pc.give_item2(50133, 1) pc.give_item2(53049, 1) say_item("Mit OK Info schliessen", 777701, "") local aaa = select ("OK") if aaa == 1 then return end elseif r==2 then pc.give_item2(50076, 1) pc.give_item2(50133, 1) pc.give_item2(53049, 1) say_item("Mit OK Info schliessen", 777701, "") local aaa = select ("OK") if aaa == 1 then return end elseif r==3 then pc.give_item2(50076, 1) pc.give_item2(50133, 1) pc.give_item2(53049, 1) say_item("Mit OK Info schliessen", 777701, "") local aaa = select ("OK") if aaa == 1 then return end end local s=number(1, 30) if 1 == s then mob.spawn( 11505 , 88 , 84 , 1, 1, 1) end if 2 == s then mob.spawn( 11505 , 590 , 140 , 1, 1, 1) end if 3 == s then mob.spawn( 11505 , 191 , 145 , 1, 1, 1) end end end
Kompilen und alles geht. Man erhällt auch die Items oben und das Item wird angezeigt. Jedoch spawnt kein neuer Mob an einer der 3 Stellen  Weis vll jemand weiter?
|
|
|
03/26/2016, 00:39
|
#12257
|
elite*gold: 26
Join Date: Mar 2010
Posts: 3,765
Received Thanks: 2,661
|
Mal ohne die Random Zahl probiert?
So spawnt genau bei 1, 2 oder 3 ein mob, bei den restlichen 27 passiert nix
Quote:
Originally Posted by vbacoder
Mob Spawnt nicht an einer der Stellen..
PHP Code:
when 11505.kill begin
if pc.get_map_index() == 219 then
local r=number(1, 3)
if r==1 then
pc.give_item2(50076, 1)
pc.give_item2(50133, 1)
pc.give_item2(53049, 1)
say_item("Mit OK Info schliessen", 777701, "")
local aaa = select ("OK")
if aaa == 1 then
return
end
elseif r==2 then
pc.give_item2(50076, 1)
pc.give_item2(50133, 1)
pc.give_item2(53049, 1)
say_item("Mit OK Info schliessen", 777701, "")
local aaa = select ("OK")
if aaa == 1 then
return
end
elseif r==3 then
pc.give_item2(50076, 1)
pc.give_item2(50133, 1)
pc.give_item2(53049, 1)
say_item("Mit OK Info schliessen", 777701, "")
local aaa = select ("OK")
if aaa == 1 then
return
end
end
local s=number(1, 30)
if 1 == s then
mob.spawn( 11505 , 88 , 84 , 1, 1, 1)
end
if 2 == s then
mob.spawn( 11505 , 590 , 140 , 1, 1, 1)
end
if 3 == s then
mob.spawn( 11505 , 191 , 145 , 1, 1, 1)
end
end
end
Kompilen und alles geht. Man erhällt auch die Items oben und das Item wird angezeigt. Jedoch spawnt kein neuer Mob an einer der 3 Stellen  Weis vll jemand weiter?
|
|
|
|
03/26/2016, 13:34
|
#12258
|
elite*gold: 0
Join Date: May 2010
Posts: 294
Received Thanks: 157
|
Quote:
Originally Posted by MrSoNiice
verstehe ich nicht ganz, kannst du mir eventuell anders weiter helfen? 
|
du musst einfach in beiden questst pc.getqf durch pc.getf ersetzen und pc.setqf durch pc.setf
pc.getf("bioquest","duration")
pc.setf("bioquest","duration",get_time()+20)
|
|
|
03/28/2016, 00:31
|
#12259
|
elite*gold: 76
Join Date: Mar 2015
Posts: 698
Received Thanks: 245
|
Quote:
Originally Posted by Jantux
PHP Code:
quest willkommen begin
state start begin
when itemid.use begin
say_title("#MoonlightMT2-Das Abenteuer beginnt#")
say("")
say_red("Willkommen auf dem Server MoonlightMT2")
say("")
say_white("Du wirst hier viele Abenteuer erleben.")
say_white("Außerdem wirst du einige Entscheidungen")
say_white("treffen müssen. Bevor du nun loslegen kannst")
say_white("müssen wir noch ein paar kleinigkeiten besprechen")
say_white("Bist du bereit in das Abenteuer zu starten?")
say("")
say("")
say_red("Bitte entscheide dich für eine Option!")
say("")
if select("Ja,los!","Nein warte!") == 2 then
say_title("#MoonlightMT2-Das Abenteuer beginnt#")
say("...")
return
end
say_title("#MoonlightMT2-Das Abenteuer beginnt#")
say("")
say_white("Nun hast die die Auswahl. Die Götter")
say_white("wollen dir zum Start einen kleinen Bonus ")
say_white("geben. Zur Auswahl steht dir folgendes:")
say_red("PvP: Gibt dir im Kampf gegen andere Spieler einen")
say_red("kleinen PvP Bonus von 15% Prozent.")
say("")
say_red("PvM: Gibt dir im Kampf gegen Monster einen")
say_red("kleinen PvM Bonus von 15% Prozent.")
say_white("Du hast die Wahl. Wähle geschickt.....")
say("")
local s = select("PvP Bonus","PvM Bonus")
if s==1 then
say("PvP Bonus")
say("...")
end
if s==2 then
say("PvM Bonus")
say("...")
end
end
end
end
|
Liegt nicht an der quest, sondern an deinen Kori Files
|
|
|
03/28/2016, 00:48
|
#12260
|
elite*gold: 130
Join Date: Jan 2015
Posts: 111
Received Thanks: 86
|
Quote:
Originally Posted by Core ツ
Liegt nicht an der quest, sondern an deinen Kori Files
|
Die Quest war nicht für mich gedacht..Hab lediglich Fehler korrigiert die in der Quest enthalten waren.
|
|
|
03/28/2016, 00:50
|
#12261
|
elite*gold: 76
Join Date: Mar 2015
Posts: 698
Received Thanks: 245
|
Quote:
Originally Posted by Jantux
Die Quest war nicht für mich gedacht..Hab lediglich Fehler korrigiert die in der Quest enthalten waren.
|
Ja, aber das die Schrift von der QUest im Hintergrund "stecken" bleibt, ist aktuell bei den Kori Files ein Bug.
|
|
|
03/28/2016, 20:55
|
#12262
|
elite*gold: 39
Join Date: Sep 2011
Posts: 1,198
Received Thanks: 251
|
Ich habe das Problem, das ein Relog die Sperr Funktion dieser Quest aushebelt.. Woran könnte es liegen?
PHP Code:
when 30123.chat."Der Goldene Frosch" begin if game.get_event_flag("port") == 0 then say("Ins Labyrint teleportieren?") local t = select("Ja","Nein") if t == 2 then return elseif t == 1 then pc.warp(884800, 1447000) end elseif game.get_event_flag("port") == 1 then say("Du kannst nur alle 10 Minuten den Frosch im") say("Labyrinth toeten! Versuch es in ein paar") say("Minuten nochmal :)") end end when login begin timer("port1", 600) end when port1.timer begin game.set_event_flag("port",0) end
|
|
|
03/28/2016, 21:14
|
#12263
|
elite*gold: 35
Join Date: Jan 2014
Posts: 1,421
Received Thanks: 268
|
PHP Code:
when 30123.chat."Der Goldene Frosch" begin if timer.port1 == 0 then say("Ins Labyrint teleportieren?") local t = select("Ja","Nein") if t == 1 then pc.warp(884800, 1447000) timer("port1", 600) else return end else say("Du kannst nur alle 10 Minuten den Frosch im") say("Labyrinth toeten! Versuch es in ein paar") say("Minuten nochmal :)") end end
Bin mir nicht sicher ob der Befehl für den Timer richtig ist :rofl:
|
|
|
03/28/2016, 21:20
|
#12264
|
elite*gold: 39
Join Date: Sep 2011
Posts: 1,198
Received Thanks: 251
|
oke aber ich habe Ihn aus einer anderen funktionalen Quest entnommen :/
Aber ich stelle fest, das es auch ohne ein relog des öfteren mal gesperrt ist und wider nicht. Ich habe die Vermutung, dass der timer aller spieler läuft. wie kann ich das ändern, das bei jedem spieler 10 min wartezeit da sind? :0
|
|
|
03/28/2016, 21:29
|
#12265
|
elite*gold: 26
Join Date: Mar 2010
Posts: 3,765
Received Thanks: 2,661
|
machs doch so wie bei den bio quests
mit pc.setqf("waiting", get_time() + 60*10)
und dann mit
PHP Code:
if get_time() < pc.getqf("waiting") then say("nur alle 10 min, bla bla") return end
|
|
|
03/29/2016, 17:43
|
#12266
|
elite*gold: 0
Join Date: May 2010
Posts: 294
Received Thanks: 157
|
1. Eine Eventflag ist eine globale variable, das heißt jeder spieler grefit auf sie zu und kann ihren wert verändern, pc.setqf oder getqf dagegen ist spieler bezogen
2. eventflags sind ziemlich lahm --hat hiermit nichts zu tun aber mich nervt es immer wieder^^
3. deine eventflag wird nirgends auf 1 gesetzt, jedenfalls nicht in dem uns vorliegenden ausschnitt
4. ein timer wird unterbrochen sobald der betreffende Spieler sich ausloggt (das schließt teleportieren auch mit ein)(gilt natürlich nicht für server_timer)
Ich würde dir auch raten die Methode aus der bioquest zu übernehmen
wie delta schon sagte
|
|
|
03/29/2016, 21:17
|
#12267
|
elite*gold: 0
Join Date: Jun 2012
Posts: 340
Received Thanks: 114
|
Kann die Quest jemand so umschreiben, dass, wenn man den Mapindex 193 betritt, die Reittiere nicht mehr gemountet werden können? Blicke da nemmer durch.
PHP Code:
quest ride_mystery_boxes begin
state start begin
function Ride( vnum, remain_time )
ride_info = {
[71135] = { 20110, item.get_socket(2)*60, apply.MOV_SPEED, 0, 1, false, false, false},
[71136] = { 20111, item.get_socket(2)*60, apply.MOV_SPEED, 0, 1, false, false, false},
}
if pc.level < ride_info[vnum][5] then
say("")
say("Dein Level ist zu niedrig! ")
say("")
else
if 112 == pc.get_map_index() then
return
end
if ride_info[vnum][2] == 0 and remain_time != 0 then
pc.mount( ride_info[vnum][1], remain_time*60 )
pc.mount_bonus( ride_info[vnum][3], ride_info[vnum][4], remain_time*60 )
else
pc.mount( ride_info[vnum][1], ride_info[vnum][2] )
pc.mount_bonus( ride_info[vnum][3], ride_info[vnum][4], ride_info[vnum][2] )
end
if true == ride_info[vnum][8] then
pc.remove_item(vnum, 1)
end
end
end
when login begin
local vnum, remain_time = pc.get_special_ride_vnum()
if vnum != 71135 and vnum != 71136 then
return
end
if 0 != vnum then
ride_mystery_boxes.Ride(vnum, remain_time)
end
end
when 71136.use or 71135.use begin
if pc.is_polymorphed() then
say("")
say("Du kannst nicht reiten, während du verwandelt[ENTER]bist! ")
say("")
elseif false == pc.is_riding() then
if true == horse.is_summon() then
horse.unsummon()
end
ride_mystery_boxes.Ride(item.vnum, 0)
else
say("")
say("Du reitest bereits! Wenn du das Reittier wechseln[ENTER]möchtest, musst du zuerst absteigen. ")
say("")
end
end
end
end
|
|
|
03/29/2016, 21:31
|
#12268
|
elite*gold: 26
Join Date: Mar 2010
Posts: 3,765
Received Thanks: 2,661
|
probiers halt mal so, vllt ist das das was du willst
PHP Code:
quest ride_mystery_boxes begin state start begin function Ride( vnum, remain_time ) ride_info = { [71135] = { 20110, item.get_socket(2)*60, apply.MOV_SPEED, 0, 1, false, false, false}, [71136] = { 20111, item.get_socket(2)*60, apply.MOV_SPEED, 0, 1, false, false, false}, }
if pc.level < ride_info[vnum][5] then say("") say("Dein Level ist zu niedrig! ") say("") else if 112 == pc.get_map_index() then return end if ride_info[vnum][2] == 0 and remain_time != 0 then pc.mount( ride_info[vnum][1], remain_time*60 ) pc.mount_bonus( ride_info[vnum][3], ride_info[vnum][4], remain_time*60 ) else pc.mount( ride_info[vnum][1], ride_info[vnum][2] ) pc.mount_bonus( ride_info[vnum][3], ride_info[vnum][4], ride_info[vnum][2] ) end
if true == ride_info[vnum][8] then pc.remove_item(vnum, 1) end end end
when login begin local vnum, remain_time = pc.get_special_ride_vnum() if vnum != 71135 and vnum != 71136 then return end if pc.get_map_index() == 193 then return end if 0 != vnum then ride_mystery_boxes.Ride(vnum, remain_time) end end
when 71136.use or 71135.use begin if pc.is_polymorphed() then say("") say("Du kannst nicht reiten, während du verwandelt[ENTER]bist! ") say("") elseif pc.get_map_index() == 193 then say("Nicht auf dieser Map.") elseif false == pc.is_riding() then if true == horse.is_summon() then horse.unsummon() end ride_mystery_boxes.Ride(item.vnum, 0) else say("") say("Du reitest bereits! Wenn du das Reittier wechseln[ENTER]möchtest, musst du zuerst absteigen. ") say("") end end end end
|
|
|
03/29/2016, 22:05
|
#12269
|
elite*gold: 0
Join Date: Jun 2012
Posts: 340
Received Thanks: 114
|
Der Ansatz ist okay, jedoch funktioniert es nur halb. Man wird zwar nicht gemountet, aber
die Bonis des Siegel werden übernommen. ( Da diese in den Sockel gehen)
Liegt wohl daran, dass die Bonis dennoch übernommen werden. ._.
|
|
|
04/04/2016, 19:03
|
#12270
|
elite*gold: 0
Join Date: Aug 2014
Posts: 1,142
Received Thanks: 650
|
PHP Code:
quest change_name begin
state start begin
when 71055.use begin
local bugfix_count = pc.count_item(item.get_vnum())
say_title "Wunschnamen - Einführung"
say "Herzlich Willkommen Nalunia2-Reloaded User:"
say "Hier hast du die Möglichkeit dir deinen"
say "Wunschnamen zu wählen."
say "Sowohl Umlaute, Sonderzeichen als auch [] können"
say "verwendet werden."
say ""
say_reward "Beachte bei der Wahl deines Namens die"
say_reward "Länge!"
say "Möchtest du deinen Namen ändern?"
if select("Name wechseln", "Abbrechen") == 2 then
return
end
say_title "Wunschnamen - Auswahl"
say "Gib nun bitte deinen Wunschnamen an:"
local inp = ""
repeat
inp = input()
if inp == "" then
say_title "Wunschnamen - Auswahl"
say "Möchtest du abbrechen?"
if select("Ja","Nein") == 1 then
return
end
end
until inp ~= ""
for _,l in pairs{" "} do -- delete this characters
inp = string.gsub(inp,l,"")
end
say_title "Wunschnamen - Bestätigung"
say "Du hast dir folgenden Namen ausgewählt:"
say_title (string.format("%q",string.gsub(string.gsub(inp,"%]",")"),"%[","(")))
say_reward "Bist du dir sicher, dass du diesen Namen"
say_reward "verwenden möchtest?"
if select("Bestätigen", "Abbrechen") == 2 then
return
end
local _,_,y = string.find(inp,"^%[([^%]]*)%]")
if y then
local ly = string.upper(y)
for _,l in pairs{"SA","GM","GA","SGA","SGM","TGM","MOD", "DEV", "SL", "Team", "SMOD", "TMOD", "TA", "BA", "CoMa", "YT", "N2"} do
if ly == l then
return say "Du kannst diesen Namen nicht benutzen!"
end
end
end
if bugfix_count ~= pc.count_item(item.get_vnum()) then
notice "BUGUSER!"
-- Als Strafe ALLE entfernen!
pc.remove_item(item.get_vnum(),pc.count_item(item.get_vnum()))
end
local formatted_name = string.sub(string.format("%q",inp),2,-2) -- CHANGED
local change = pc.change_name(formatted_name)
if change == 4 then
item.remove()
-- Wenn stackbar:
-- pc.remove_item(item.get_vnum(),1)
end
say_title "Wunschnamen - Änderung"
say (({
"Namensänderung fehlgeschlagen:[ENTER]Du hast deinen Namen innerhalb der letzten[ENTER]14 Tage bereits gewechselt.[ENTER]Bitte führe einen Relog durch!",
"ERROR - Parameter fehler", -- << wird nie ingame angezeigt
"Namensänderung fehlgeschlagen:[ENTER]Du hast einen ungültigen Namen angegeben.",
"Namensänderung fehlgeschlagen:[ENTER]Dein ausgewählter Name existiert bereits.",
"Namensänderung erfolgreich:[ENTER]Herzlichen Glückwunsch![ENTER]Dein Name wurde erfolgreich gewechselt.[ENTER]Bitte führe einen Relog durch, damit dein[ENTER]neuer Name sichtbar wird.",
})[change+1])
say_reward "Auf Wiedersehen!"
end
end
end
Laut der Quest kann man sein Namen ändern mit SONDERZEICHEN dies klappt jedoch nicht :/ Kann mir da vlt jmd helfen?
|
|
|
All times are GMT +1. The time now is 22:46.
|
|