FarmMap quest (k)

Indította samboy, 2014-07-22, 15:10:27

Sziasztok!

Olyan questre lenne szükségem, hogy lenne egy adott map.
Ami jelenesetben, egy Farm Map lenne, és úgy kéne megoldani hogy ha bemegy valaki akkor csak maga legyen, vagy ha csoportban szeretnének bemenni akkor belehessen.

De ez időben más is betudjon menni, de ne lássák egymást / ne találkozzanak egymással.

Valaki tudna nekem ilyen quest-et írni?
Haza basz a banda, minek táraztatok
Amire felemelnétek a kezetek, rábasztatok


nem tudom hogy kell ellenőrizni, hogy csoportba van-e az adott játékos így szétszedtem 2 részre

quest farmmap begin
state start begin
when ID.chat."Farmolás egyedül" begin
say_title("Biztos egyedül szeretnél farmolni?")
local e = select("Igen", "Nem")
if e == 2 then
return
else
say("Máris teleportállak.")
pc.d.new_jump(mapindex, koordi, koordi)
end
end
when ID.chat."Farmolás csoportban" begin
say_title("Biztos csoportban szeretnétek farmolni?")
local c = select("Igen", "Nem")
if c == 2 then
return
else
say("Máris teleportállak.")
d.new_jump_party(mapindex, koordi, koordi)
end
end
end
end

if party.is_party() then -- ha csoportban van
if not party.is_party() then -- ha nem csoportban van
BIN: Crytopp 7.0, Boost 1.67, libjpeg 9c, lz4 1.8.2, cython, DevIL 1.8.0, granny 2.11, VS 2017 - c++17, directx9 (bugmentes) - Kész!

akkor valahogy így
quest farmmap begin
state start begin
when ID.chat."Farm Map" begin
if pc.ist_party() then
d.new_jump_party(mapindex, koordi, koordi)
else
pc.d.new_jump(mapindex, koordi, koordi)
end
end
end
end

d.join(mapindex)

így ellenőrizni se kell, ha egyedül van akkor egyedül viszi be; ha csoportban, akkor az egész csoportot

C++ programmer at Gameloft

2014-07-26, 20:19:12 #6 Utolsó szerkesztés: 2014-07-26, 20:20:57 Szerző: TheSLZ
Mint ahogy Distraught is írta, d.join-al ésszerűbb.

Gyorsan megírtam:
quest dungeon_farm begin
state start begin
when NPCID.chat."Egyedüli farm map" begin
say_title("Farm: ")
say("Üdvözöllek! ")
say("El szeretnél menni a farm mapra?")
say("Egy farm mapra viszlek, ami csak a tiéd!")
say(" ")
say_reward("Amennyiben csoportban vagy, ")
say_reward("A csoportod is teleportálódik veled, ")
say_reward("Ha meletted vannak.")
local valaszt = select("Igen", "Nem")
if valaszt == 2 then
return
end
if valaszt == 1 then
say_title("Farm: ")
say("Jó utat a farm mapra! ")
wait()
d.join(mapindex)
end
end
end
end


Persze ha pl a farm map game99-en, akkor ahol van az NPC, annak a mapnak is game99-en kell lennie.
Ha a farmmap a ch-kon van, akkor ahol van az npc, annak a mapnak is a ch-kon kell lennie.
Ha nem stimmel, akkor nem fog teleportálni.

quest dungeon_farm begin
state start begin
when 20023.chat."Farm Map" with pc.get_map_index() == 182 begin
say_title("Farm: ")
say("Üdvözöllek! ")
say("Kiegészítettük a Farm Map-ot, ahol minden szörnyet megtalálsz!")
say("El szeretnél menni a farm mapra?")
say("Olyan Farm Map, ahol csak egyedül vagy!")
say("")
say_reward("Amennyiben csoportban vagy, ")
say_reward("A csoportod is teleportálódik veled, ")
say_reward("Ha meletted vannak.")
local valaszt = select("Igen", "Nem")
if valaszt == 2 then
return
end
if valaszt == 1 then
say_title("Farm: ")
say("Jó utat a farm mapra! ")
wait()
d.join(183)
d.regen_file( "data/dungeon/farmmap/regen.txt" )
end
end
end
end


Elteleportál meg minden, de a mobokat nem látom.
de ha a questbe bele írom hogy: d.regen_file( "data/dungeon/farmmap/regen.txt" )
akkor látom, de nem spawn-olnak vissza. pedig a regen-be 60 másodpercenként kéne. Valami ötlet?
Haza basz a banda, minek táraztatok
Amire felemelnétek a kezetek, rábasztatok

Asszem ha npc.txt-be írod bele, akkor alapból betölti, és talán még respawnolnak is.

Idézetet írta: TheSLZ Dátum 2014-08-04, 17:20:11
Asszem ha npc.txt-be írod bele, akkor alapból betölti, és talán még respawnolnak is.

Az adott Farm Map szerveri oldalába is bele írtam npc.txt-be. De úgy nem jeleníti meg sajnos
Haza basz a banda, minek táraztatok
Amire felemelnétek a kezetek, rábasztatok

Úgy meg lehet oldani hogy amikor minden szörnyet/metint megöltek a térképen, akkor töltse újra a regent, az nem lenne jó?

gyakorlatilag azt jelenti a respawn :D

Idézetet írta: Ezion Dátum 2014-08-05, 16:08:16
gyakorlatilag azt jelenti a respawn :D

Csak gyakorlatilag  :D Mert ugye normál esetben ha 1-et megölnek az respawnol, de így csak akkor ha mindent megöltek a térképen.


Samboy,
d.set_warp_at_eliminate(3, d.get_map_index(), kordix, kordiy, "data/dungeon/run_regen_valami.txt") 

Bár így lehet ha mindent megöltek akkor csak 1x tölti be újra, valami rendszerességet még ki kell találni rá  :D
   


Kód (d.set_warp_at_eliminate pseudo) Kijelölés

-- d.set_warp_at_eliminate működése
HA megölnek minden mobot AKKOR
   az argumentumaimban megadott helyre portálok ÉS betöltöm a regen fájlt



2014-08-05, 16:21:51 #15 Utolsó szerkesztés: 2014-08-05, 16:24:10 Szerző: TheSLZ
Portoláskor mielőtt elviszi a farm mapra adj a játékosnak egy questflagot
pc.setqf("dfarm", 1)

loginkor:

when login with pc.getqf("dfarm") == 1 begin
pc.setqf("dfarm", 0)
loop_timer("check_farmrun", 10)
end


Timer:

when check_farmrun.timer begin
d.set_warp_at_eliminate(3, d.get_map_index(), kordix, kordiy, "data/dungeon/run_regen_valami.txt") 
end



Hátha működik  :)
Ha nem akkor jelezz vissza és majd még gondolkodok hogy lehet megoldani.

és ha:

d.set_regen_file

ezzel próbálod?

2014-08-05, 16:35:51 #17 Utolsó szerkesztés: 2014-08-05, 16:46:12 Szerző: samboy
Idézetet írta: Ezion Dátum 2014-08-05, 16:33:29
és ha:

d.set_regen_file

ezzel próbálod?

Elsőnek kipróálom ezt, ha nem sikerül akkor TheSLZ ötletét  kipróbálom.:D

Szerk: Így próbáltam questbe:
--d.set_regen_file (setting.mob_regen_file_path.."regen.txt")
De így sem jó
Haza basz a banda, minek táraztatok
Amire felemelnétek a kezetek, rábasztatok

Ha "--"-t írsz elé, akkor az adott sort nem érzékeli.

Idézetet írta: TheSLZ Dátum 2014-08-05, 16:46:50
Ha "--"-t írsz elé, akkor az adott sort nem érzékeli.

Hoppá, elfelejtettem kivenni előle.:) Tesztelem:)
Haza basz a banda, minek táraztatok
Amire felemelnétek a kezetek, rábasztatok