Skocz do zawartości

DemonTower


Rekomendowane odpowiedzi

Cześć Wszystkim

 

Więc na początek powiem, iż członków PT nie teleportuje.

Powód? Nasz kochany Sui uzył funkcji #include w C++, aby PT teleportował, a następnie dodał do procesów.

DT umożliwia wejście do DT za pomocą trzech członków w PT, aczkolwiek nie może tam wejść PT

 

A więć. Otwieramy quest deviltower_zone.quest2. Idziemy do linijki 183. Wklejamy tą treść

 

Quest:

 

 

when deviltower_man.chat.locale.deviltower_man_chat begin
                       if pc.get_level() < 40 then
                               say(locale.deviltower_man_say_you_cant)
                       else
                               if not party.is_leader() then
                                       say("")
                                       say_reward("Nie jesteś liderem... nie możesz wejsć.!")
                                               return
                               end

                               if party.get_near_count() < 3 then
                                       say("")
                                       say_reward("Potrzebujesz 3 osoby w pobliżu z grupy!")
                                               return
                               end
                                       say(locale.deviltower_man_say)
                                               local s = select(locale.deviltower_enter,locale.deviltower_no_enter)
                                                       if s == 1 then
                                                               -- warp into!
                                                       pc.warp(216500,727000)

                                                       end
                       end
               end

 

tak ma to wyglądać

http://iv.pl/images/60367932518626419037.jpg

-- Zapisujemy. W konsoli wpisujemy-

cd /home/game/quest && ./qc deviltower_zone.quest

- Wchodzimy do gry i wpisujemy

/reload quest

- Cieszymy się nowym DT

 

 

Może ktoś poprawi Questa tak aby działał w 100% dobrze.

 

Serdecznie Pozdrawiam xLoveMusicx

[Video][Tut]Jak Dodać Mapę na własnego serwera Metin2.wmv

By ZorQ

http://www.mpcforum.pl/topic/416201-videotut-jak-dodac-mape-na-wlasny-serwer/

Odnośnik do komentarza

 

Więc na początek powiem, iż członków PT nie teleportuje.

Powód? Nasz kochany Sui uzył funkcji #include w C++, aby PT teleportował, a następnie dodał do procesów.

DT umożliwia wejście do DT za pomocą trzech członków w PT, aczkolwiek nie może tam wejść PT

 

O fuck xD

Ale, żeś teraz dał czadu.. ;d

A jak by Ci powiedział, że przepisał game na nowo też byś uwierzył?

 

Aby uzyskać taki efekt wystarczy użyć funkcji z quest_function by otworzyć nowego dungeona. Mi są znane 3 sposoby otworzenia dungeona, przenoszenie wszystkich na daną mape, czyli Wieża Demonów, przenoszenie wszystkich z pt na daną mapę i ostatnio mi się udało otworzyć dungeona solo =d

Pewnie niedługo będzie to wrzucone na forum bo sprzedałem quest, który otwiera dunga... Samemu to można zrobić w 5 minut, wystarczy przelecieć funkcje d.*

307681428489538142351.png

Metin2 Balmora Staff

Odnośnik do komentarza

O fuck xD

Ale, żeś teraz dał czadu.. ;d

A jak by Ci powiedział, że przepisał game na nowo też byś uwierzył?

 

Aby uzyskać taki efekt wystarczy użyć funkcji z quest_function by otworzyć nowego dungeona. Mi są znane 3 sposoby otworzenia dungeona, przenoszenie wszystkich na daną mape, czyli Wieża Demonów, przenoszenie wszystkich z pt na daną mapę i ostatnio mi się udało otworzyć dungeona solo =d

Pewnie niedługo będzie to wrzucone na forum bo sprzedałem quest, który otwiera dunga... Samemu to można zrobić w 5 minut, wystarczy przelecieć funkcje d.*

Czyli jak sie nie myle wystarczy poszukac np. w innym quescie który cos podobnego ma i gitara :D

 

PS. Za ile sprzedałes? Moze tez kupie :D

 

 

@Edit

 

Jak sie nie myle to ja juz ta funkcje w innym quescie znalazlem :D

 

 

 

@Edit 2

 

 

Quest zrobiony TP all z PT do DT ^^

Dzieki bambuch :D

Odnośnik do komentarza

Cześć Wszystkim

 

Więc na początek powiem, iż członków PT nie teleportuje.

Powód? Nasz kochany Sui uzył funkcji #include w C++, aby PT teleportował, a następnie dodał do procesów.

DT umożliwia wejście do DT za pomocą trzech członków w PT, aczkolwiek nie może tam wejść PT

 

A więć. Otwieramy quest deviltower_zone.quest2. Idziemy do linijki 183. Wklejamy tą treść

 

Quest:

 

 

when deviltower_man.chat.locale.deviltower_man_chat begin
                       if pc.get_level() < 40 then
                               say(locale.deviltower_man_say_you_cant)
                       else
                               if not party.is_leader() then
                                       say("")
                                       say_reward("Nie jesteś liderem... nie możesz wejsć.!")
                                               return
                               end

                               if party.get_near_count() < 3 then
                                       say("")
                                       say_reward("Potrzebujesz 3 osoby w pobliżu z grupy!")
                                               return
                               end
                                       say(locale.deviltower_man_say)
                                               local s = select(locale.deviltower_enter,locale.deviltower_no_enter)
                                                       if s == 1 then
                                                               -- warp into!
                                                       pc.warp(216500,727000)

                                                       end
                       end
               end

 

tak ma to wyglądać

http://iv.pl/images/60367932518626419037.jpg

-- Zapisujemy. W konsoli wpisujemy-

cd /home/game/quest && ./qc deviltower_zone.quest

- Wchodzimy do gry i wpisujemy

/reload quest

- Cieszymy się nowym DT

 

 

Może ktoś poprawi Questa tak aby działał w 100% dobrze.

 

Serdecznie Pozdrawiam xLoveMusicx

 

koles szkoda mi cie naprawde skopjowales SLOWO W SLOWO z innych for.. . BIG - i 1 w profilu...

bambus dungeona solo latwo otworzyc ;) watpie zeby twoja grota wygnancow ujrzala swiatlo mpc ^^

QmxvbmR5blhfX19ldW5lX19fNTI0X19fTlVMTF9fXzNfX18xMDBfX19ub25lLnBuZ19fXzhfX19ub25lX19fMDAwMDAwX19fc29sbw==.png
Odnośnik do komentarza

1. sorry za odswiezenie.

 

2. Czemu moje tutki kopiujesz z e*vp polsiego? Leci raport ;)

 

tresc autentyczna

 

 

Witam,witam.

Z tego powodu iż, w Polsce jest nadmiar lechowania pośrdów pseudo tutorów Metin2, ten temat obejmuje prawami przeznaczonymi tylko dla tego forum, wszystkie screeny zawarte w tym temacie są mojego autorstwie i są zrobione na Serwerze Dedykowanym serwera True2.PL.

 

Więc na początek powiem, iż członków PT nie teleportuje.

Powód? Nasz kochany Sui uzył funkcji #include w C++, aby PT teleportował, a następnie dodał do procesów.

DT umożliwia wejście do DT za pomocą trzech członków w PT, aczkolwiek nie może tam wejść PT(pracuje nad tym.)

 

Więc Let's Go!

 

1. Otwieramy quest deviltower_zone.quest

2. Idziemy do linijki 18

3. Wklejamy tą treść

 

when deviltower_man.chat.locale.deviltower_man_chat begin
                       if pc.get_level() < 40 then
                               say(locale.deviltower_man_say_you_cant)
                       else
                               if not party.is_leader() then
                                       say("")
                                       say_reward("Nie jesteś liderem... nie możesz wejsć.!")
                                               return
                               end

                               if party.get_near_count() < 3 then
                                       say("")
                                       say_reward("Potrzebujesz 3 osoby w pobliżu z grupy!")
                                               return
                               end
                                       say(locale.deviltower_man_say)
                                               local s = select(locale.deviltower_enter,locale.deviltower_no_enter)
                                                       if s == 1 then
                                                               -- warp into!
                                                       pc.warp(216500,727000)

                                                       end
                       end
               end

 

4. Powinno to tak wyglądać

60367932518626419037.jpg

5. Zapisujemy. W konsoli wpisujemy

cd /home/game/quest && ./qc deviltower_zone.quest

6. Wchodzimy do gry i wpisujemy

/reload quest

7. Cieszymy się nowym DT

 

Dla leniuchów

 

[hide]
quest deviltower_zone begin
   state start begin
when login begin
    if pc.get_map_index() == 66 then
	-- ¨Ă«D¦b1ĽÓ®É, °eŞđĄ~­±.
	-- ĽhĽĆ ˝dłň
	-- 1ĽÓ  88  577  236 737
	-- 2ĽÓ  91  343  238 504
	-- 3ĽÓ 104  107  248 269
	if pc.get_x() < 2048+88 or pc.get_y() < 6656+577 or pc.get_x() > 2048+236 or pc.get_y() > 6656+737 then
	    pc.warp((5376+532)*100, (512+596+4)*100, 65)
	end
	pc.set_warp_location(65, 5376+532, 512+596+4)
    elseif pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 then
	pc.set_warp_location(65, 5376+532, 512+596+4)
    end
end
when deviltower_man.chat.locale.deviltower_man_chat begin
                       if pc.get_level() < 40 then
                               say(locale.deviltower_man_say_you_cant)
                       else
                               if not party.is_leader() then
                                       say("")
                                       say_reward("Nie jesteś liderem... nie możesz wejsć.!")
                                               return
                               end

                               if party.get_near_count() < 3 then
                                       say("")
                                       say_reward("Potrzebujesz 3 osoby w pobliżu z grupy!")
                                               return
                               end
                                       say(locale.deviltower_man_say)
                                               local s = select(locale.deviltower_enter,locale.deviltower_no_enter)
                                                       if s == 1 then
                                                               -- warp into!
                                                       pc.warp(216500,727000)

                                                       end
                       end
               end
when devil_stone1.kill begin
    timer("devil_stone1_1", 6)
end
when devil_stone1_1.timer begin
	local mapto7= pc.count_item(30302)  -- ®ř·Ŕ¤ŁŞľ¬O§_¦s¦bŞşŻu¤`ĆF¶đ
	pc.remove_item(30302,mapto7)

	local boxto7= pc.count_item(30300)  -- ®ř·Ŕ¤ŁŞľ¬O§_¦s¦bŞş¤ŁŞľ¦WŞş˝c¤l
	pc.remove_item(30300,boxto7)

    d.new_jump_all(66, special.devil_tower[1][1], special.devil_tower[1][2])
    d.regen_file("data/dungeon/deviltower2_regen.txt")
    d.set_warp_at_eliminate(4, d.get_map_index(), special.devil_tower[2][1], special.devil_tower[2][2], "data/dungeon/deviltower3_regen.txt")
end
--when devil_stone2.kill begin
--d.jump_all_local(special.devil_tower[2][1], special.devil_tower[2][2])
--end
when devil_stone3.kill begin
    --d.jump_all_local(special.devil_tower[3][1], special.devil_tower[3][2])
    --d.set_exit_all_at_eliminate(6)
    --d.set_warp_at_eliminate(6, d.get_map_index(), 100, 100)
    --d.set_warp_at_eliminate(4, 65, 5376+532, 512+596+4)
    d.set_warp_at_eliminate(4, d.get_map_index(), special.devil_tower[3][1], special.devil_tower[3][2], "data/dungeon/deviltower4_regen.txt")
    d.check_eliminated()
    --d.exit_all()
end
function get_4floor_stone_pos()
    local positions = {
	{368, 629},
	{419, 630},
	{428, 653},
	{422, 679},
	{395, 689},
	{369, 679},
	{361, 658},
    }
    for i = 1, 6 do
	local j = number(i, 7)
	if i != j then
	    local t = positions[i];
	    positions[i] = positions[j];
	    positions[j] = t;
	end
    end
    --for i = 1, 7 do
--	positions[i][1] = positions[i][1] * 100
--	positions[i][2] = positions[i][2] * 100
 --   end
    return positions
end
when 8016.kill with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
    d.setf("level", 4)
    -- ¦A˛{¤j¶q©ÇŞ«¤Î»słyŻuĄŰŔY©M°˛ĄŰŔY
    --d.regen_file("data/dungeon/deviltower4_regen.txt")
    local positions = deviltower_zone.get_4floor_stone_pos()
    for i = 1, 6 do
	chat(positions[i][1], positions[i][2])
	d.set_unique("fake" .. i , d.spawn_mob(8017, positions[i][1], positions[i][2]))
    end
    chat(positions[7][1], positions[7][2])
    local vid = d.spawn_mob(8017, positions[7][1], positions[7][2])
    chat(vid)
    d.set_unique("real", vid)
    server_loop_timer('devil_stone4_update', 10, pc.get_map_index())
    server_timer('devil_stone4_fail1', 5*60, pc.get_map_index())

    d.notice("Brawo, udalo sie Tobie");
    d.notice("zniszczyc kamien metin!");
    d.notice("Macie 15 minut na nastepnym pietrze[ENTER] zanim zostaniecie wylogowani.");
    d.notice("Spieszcie sie!");
end

when devil_stone4_fail1.server_timer begin
    if d.select(get_server_timer_arg()) then
	d.notice("Pozostalo 10 minut!")
	server_timer('devil_stone4_fail2', 5*60, get_server_timer_arg())
    end
end

when devil_stone4_fail2.server_timer begin
    if d.select(get_server_timer_arg()) then
	d.notice("Pozostalo 5 minut!")
	server_timer('devil_stone4_fail', 5*60, get_server_timer_arg())
    end
end

when devil_stone4_fail.server_timer begin
    if d.select(get_server_timer_arg()) then
	d.notice("Nie udalo sie, zostaniecie wylogowany!")
	d.exit_all()
	clear_server_timer('devil_stone4_update', get_server_timer_arg())
    end
end

when devil_stone4_update.server_timer begin
    if d.select(get_server_timer_arg()) then
	if not d.is_unique_dead("real") then
	    for i = 1, 6 do
		if d.getf("fakedead" .. i) == 0 then
		    if d.unique_get_hp_perc("fake" .. i) < 50 then
			d.purge_unique("fake" .. i)
			d.setf("fakedead" .. i, 1)
			d.notice("To nie ten kamien!");
		    end
		end
	    end
	else
	    --d.clear_regen()
	    --d.regen_file("data/dungeon/deviltower5_regen.txt")
	    server_timer("devil_stone4_end", 5, get_server_timer_arg())
	    d.notice("Udalo sie! Zabij wszystkie potwory na nastepnym");
	    d.notice("pietrze, aby zdobyc kamien otwarcia!")
	    clear_server_timer('devil_stone4_fail1', get_server_timer_arg())
	    clear_server_timer('devil_stone4_fail2', get_server_timer_arg())
	    clear_server_timer('devil_stone4_fail', get_server_timer_arg())
	end
    else
	server_timer('devil_stone4_stop_timer', 1, get_server_timer_arg())
    end
end

when devil_stone4_stop_timer.server_timer begin
    clear_server_timer('devil_stone4_update', get_server_timer_arg())
end

when devil_stone4_end.server_timer begin
    if d.select(get_server_timer_arg()) then
	d.setf("level", 5)
	d.setf("stone_count", 5)
	d.notice("Brawo, jestes na 5 pietrze!")
	d.notice("Aby przejsc na 6 pietro musisz zabic")
	d.notice("wszystkie potwory tutaj, zdobyc kamien")
	d.notice("otwarcia i otworzyc pieczecie przed czasem!")
	d.jump_all(special.devil_tower[4][1], special.devil_tower[4][2])
	server_timer('devil_stone5_fail1', 5*60, get_server_timer_arg())
	clear_server_timer('devil_stone4_update', get_server_timer_arg())

	-- 5ĽÓÄ~Äň¦A˛{
	d.set_regen_file("data/dungeon/deviltower5_regen.txt")

	-- 5ĽÓ«Ę¦LĄŰ¦A˛{
	d.spawn_mob(20073, 421, 452)
	d.spawn_mob(20073, 380, 460)
	d.spawn_mob(20073, 428, 414)
	d.spawn_mob(20073, 398, 392)
	d.spawn_mob(20073, 359, 426)
    end
end
when devil_stone5_fail1.server_timer begin
    if d.select(get_server_timer_arg()) then
	d.notice("Pozostalo 15 minut!")
	server_timer('devil_stone5_fail2', 5*60, get_server_timer_arg())
    end
end

when devil_stone5_fail2.server_timer begin
    if d.select(get_server_timer_arg()) then
	d.notice("Pozostalo 10 minut!")
	server_timer('devil_stone5_fail3', 5*60, get_server_timer_arg())
    end
end

when devil_stone5_fail3.server_timer begin
    if d.select(get_server_timer_arg()) then
	d.notice("Pozostalo 5 minut!")
	server_timer('devil_stone5_fail', 5*60, get_server_timer_arg())
    end
end

when devil_stone5_fail.server_timer begin
    if d.select(get_server_timer_arg()) then
	d.notice("Nie udalo sie, zostaniesz wylogowany!")
	d.exit_all()
    end
end

--when devil_stone4.kill begin
    --d.setf("level", 5)
    --d.setf("stone_count", 4)
    --d.clear_regen()
    --d.regen_file("data/dungeon/deviltower5_regen.txt")
    --d.jump_all_local(special.devil_tower[4][1], special.devil_tower[4][2])
--end

when 1062.kill with pc.in_dungeon() and d.getf("level") == 5 begin
    local KILL_COUNT_FOR_DROP_KEY = 50
    --if is_test_server() then
	--KILL_COUNT_FOR_DROP_KEY = 1
    --end
    local n =d.getf("count") + 1
    d.setf("count", n) 
    if n == KILL_COUNT_FOR_DROP_KEY then
	-- ±Ľ¤UÂę°Í
	game.drop_item(50084, 1)
	d.setf("count", 0)
    end
end
when devil_stone5.take with item.vnum == 50084 begin
    npc.purge()
    item.remove()
    d.setf("stone_count", d.getf("stone_count") - 1)
    if d.getf("stone_count") <= 0 then
	d.setf("level", 6)
	d.clear_regen()
	d.regen_file("data/dungeon/deviltower6_regen.txt")

	d.notice("Brawo udalo sie! jestes na 6 pietrze!")
	d.notice("Zabij wszystkie potwory!")
	d.jump_all(special.devil_tower[5][1], special.devil_tower[5][2])
	clear_server_timer('devil_stone5_fail1', get_server_timer_arg())
	clear_server_timer('devil_stone5_fail2', get_server_timer_arg())
	clear_server_timer('devil_stone5_fail3', get_server_timer_arg())
	clear_server_timer('devil_stone5_fail', get_server_timer_arg())
    else
	d.notice("Do otwarcia posostały "..d.getf("stone_count").." pieczęcie")
    end
end

when devil_stone6.kill begin
    -- ¶Ç°e¨ě·Ň¸t©Ň¦bŞş¦aąĎ
    -- §_«hˇA¶}ł]¤@­Ó·s·Ň¸t
    --d.jump_all(special.devil_tower[6][1], special.devil_tower[6][2])
    d.kill_all()
   -- d.set_warp_at_eliminate(3*60, 65, 5376+532, 512+596+4)
    d.check_eliminated()
    local reward_alchemist = {20074, 20075, 20076}
    d.spawn_mob(reward_alchemist[number(1,3)], 425, 216);
    d.setqf("can_refine", 1)
end

--------------------------------------
-- ĄŃ¶i¤J7ĽÓ¦Ü¨ěąF8ĽÓ¤§«e
--------------------------------------

when 20074.chat."Chce przejsc dalej" with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
	say(""..mob_name(20074).."")
	say("Zostaniesz przeniesiony")
	say("na 7 pietro Wiezy Demonow!")
	say("Lecz uwazaj...")
	say("Tam nie bedzie tak latwo jak wczesniej!")
	wait()
	if pc.level >=75 then
		say("Kazdy z graczy zostanie przeniesiony!")
		timer("devil_jump_7", 6)
		return
	end
	say("Mozesz przejsc dalej!")
	say("")
	say("")
	wait()
	pc.warp(590500, 110500)
	return
   end
when 20075.chat."Chce przejsc dalej" with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
	say(""..mob_name(20075).."")
	say("Zostaniesz przeniesiony")
	say("na 7 pietro Wiezy Demonow!")
	say("Lecz uwazaj...")
	say("Tam nie bedzie tak latwo jak wczesniej!")
	wait()
	if pc.level >=75 then
		say("Kazdy z graczy zostanie przeniesiony!")
		timer("devil_jump_7", 6)
		return
	end
	say("Mozesz przejsc dalej!")
	say("")
	say("")
	wait()
	pc.warp(590500, 110500)
	return
   end
when 20076.chat."Chce przejsc dalej" with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
	say(""..mob_name(20076).."")
	say("Zostaniesz przeniesiony")
	say("na 7 pietro Wiezy Demonow!")
	say("Lecz uwazaj...")
	say("Tam nie bedzie tak latwo jak wczesniej!")
	wait()
	if pc.level >=75 then
		say("Kazdy z graczy zostanie przeniesiony!")
		timer("devil_jump_7", 6)
		return
	end
	say("Mozesz przejsc dalej!")
	say("")
	say("")
	wait()
	pc.warp(590500, 110500)
	return
   end

  when devil_jump_7.timer begin
	d.clear_regen()

	d.spawn_mob(8018, 639, 658)
	d.spawn_mob(8018, 611, 637)
	d.spawn_mob(8018, 596, 674)
	d.spawn_mob(8018, 629, 670)

	d.setf("level", 7)

	d.jump_all(2048+590, 6656+638)
end

when 8018.kill with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
	local cont = d.getf("7_stone_kill") + 1
	d.setf("7_stone_kill", cont)

	if cont >= 4 then
		d.setf("7_stone_kill", 0)
		d.set_regen_file("data/dungeon/deviltower7_regen.txt")
	end	
end

when 8019.kill with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
	game.drop_item(30300, 1)
end

when 30300.use with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
	pc.remove_item("30300", 1)

	local pct = number(1,10)

	if pct == 1 then
		-- ±Ľ¤UŻu¦aąĎ
		game.drop_item(30302, 1)
		d.clear_regen()
	else
		-- ±Ľ¤U°˛¦aąĎ
		game.drop_item(30301, 1)

	end
end

when 30302.use with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
	-- ¶Ç°e¨ě8ĽÓ
	say("Przeniesiesz sie na 8 pietro!")
	pc.remove_item("30302", 1)
    timer("devil_jump_8", 6)
	d.clear_regen()
end

--------------------------------------------
-- ĄŃ¶i¤J8ĽÓ¦Ü¨ěąF9ĽÓ¤§«e
--------------------------------------------
when devil_jump_8.timer begin
	d.setf("level", 8)
	d.jump_all(2048+590, 6656+403)
	d.set_regen_file("data/dungeon/deviltower8_regen.txt")
	d.spawn_mob(20366, 640, 460)
	local _count= pc.count_item(30302)-- ®ř·ŔŻu¤`ĆF¶đ
	pc.remove_item(30302,_count)

end

when 1040.kill with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
	local pct1 = number(1, 5)
	if pct1 == 1 then
		local pct2 = number(1, 10)
		if pct2 == 1 then
			-- ±Ľ¤UŻuÂę°Í
			game.drop_item(30304, 1)
		else
			-- ±Ľ¤U°˛Âę°Í
			game.drop_item(30303, 1)
		end
	else
		return
	end
end

when 20366.take with item.vnum == 30304 begin
	-- 9ĽÓ«Ę¦L¸Ń°Ł
	d.notice("Zostaniecie przeniesieni na 9 pietro!")
	npc.purge()
	item.remove()
	timer("devil_jump_9", 6)
end

---------------------------------------------
-- ĄŃ¶i¤J9ĽÓ¦Üµ˛§ô
---------------------------------------------
when devil_jump_9.timer begin
	d.setf("level", 9)
	d.jump_all(2048+590, 6656+155)
	d.regen_file("data/dungeon/deviltower9_regen.txt")
end

when 1093.kill with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
	d.kill_all()
	notice_all(pc.get_name().." zabil Umarlego Rozpruwacza!")
	timer("devil_end_jump", 60)
end

when devil_end_jump.timer begin
    d.exit_all()
end
end
end

[/hide]

 

Tuturial oraz Quest wykonany przez NoTuS dla ElitePvPers

 

ChangeLog Katharsis

Ustawienie nagród za questy []

Napisanie Questów []

Client [Client nie bedzie dostepny tylko launcher wazacy 200/300 mb, update kolejne beda skromne] [Download planowany na 16/7 lipca] [X]

Zmiana oraz ustalenie dropu [X]

Odnośnik do komentarza

1. sorry za odswiezenie.

 

2. Czemu moje tutki kopiujesz z e*vp polsiego? Leci raport ;)

 

tresc autentyczna

 

 

Witam,witam.

Z tego powodu iż, w Polsce jest nadmiar lechowania pośrdów pseudo tutorów Metin2, ten temat obejmuje prawami przeznaczonymi tylko dla tego forum, wszystkie screeny zawarte w tym temacie są mojego autorstwie i są zrobione na Serwerze Dedykowanym serwera True2.PL.

 

Więc na początek powiem, iż członków PT nie teleportuje.

Powód? Nasz kochany Sui uzył funkcji #include w C++, aby PT teleportował, a następnie dodał do procesów.

DT umożliwia wejście do DT za pomocą trzech członków w PT, aczkolwiek nie może tam wejść PT(pracuje nad tym.)

 

Więc Let's Go!

 

1. Otwieramy quest deviltower_zone.quest

2. Idziemy do linijki 18

3. Wklejamy tą treść

 

when deviltower_man.chat.locale.deviltower_man_chat begin
                       if pc.get_level() < 40 then
                               say(locale.deviltower_man_say_you_cant)
                       else
                               if not party.is_leader() then
                                       say("")
                                       say_reward("Nie jesteś liderem... nie możesz wejsć.!")
                                               return
                               end

                               if party.get_near_count() < 3 then
                                       say("")
                                       say_reward("Potrzebujesz 3 osoby w pobliżu z grupy!")
                                               return
                               end
                                       say(locale.deviltower_man_say)
                                               local s = select(locale.deviltower_enter,locale.deviltower_no_enter)
                                                       if s == 1 then
                                                               -- warp into!
                                                       pc.warp(216500,727000)

                                                       end
                       end
               end

 

4. Powinno to tak wyglądać

60367932518626419037.jpg

5. Zapisujemy. W konsoli wpisujemy

cd /home/game/quest && ./qc deviltower_zone.quest

6. Wchodzimy do gry i wpisujemy

/reload quest

7. Cieszymy się nowym DT

 

Dla leniuchów

 

[hide]
quest deviltower_zone begin
   state start begin
when login begin
    if pc.get_map_index() == 66 then
	-- ¨Ă«D¦b1ĽÓÉ, °eŞđĄ~­±.
	-- ĽhĽĆ ˝dłň
	-- 1ĽÓ  88  577  236 737
	-- 2ĽÓ  91  343  238 504
	-- 3ĽÓ 104  107  248 269
	if pc.get_x() < 2048+88 or pc.get_y() < 6656+577 or pc.get_x() > 2048+236 or pc.get_y() > 6656+737 then
	    pc.warp((5376+532)*100, (512+596+4)*100, 65)
	end
	pc.set_warp_location(65, 5376+532, 512+596+4)
    elseif pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 then
	pc.set_warp_location(65, 5376+532, 512+596+4)
    end
end
when deviltower_man.chat.locale.deviltower_man_chat begin
                       if pc.get_level() < 40 then
                               say(locale.deviltower_man_say_you_cant)
                       else
                               if not party.is_leader() then
                                       say("")
                                       say_reward("Nie jesteś liderem... nie możesz wejsć.!")
                                               return
                               end

                               if party.get_near_count() < 3 then
                                       say("")
                                       say_reward("Potrzebujesz 3 osoby w pobliżu z grupy!")
                                               return
                               end
                                       say(locale.deviltower_man_say)
                                               local s = select(locale.deviltower_enter,locale.deviltower_no_enter)
                                                       if s == 1 then
                                                               -- warp into!
                                                       pc.warp(216500,727000)

                                                       end
                       end
               end
when devil_stone1.kill begin
    timer("devil_stone1_1", 6)
end
when devil_stone1_1.timer begin
	local mapto7= pc.count_item(30302)  -- ř·Ŕ¤ŁŞľ¬O§_¦s¦bŞşŻu¤`ĆFđ
	pc.remove_item(30302,mapto7)

	local boxto7= pc.count_item(30300)  -- ř·Ŕ¤ŁŞľ¬O§_¦s¦bŞş¤ŁŞľ¦WŞş˝c¤l
	pc.remove_item(30300,boxto7)

    d.new_jump_all(66, special.devil_tower[1][1], special.devil_tower[1][2])
    d.regen_file("data/dungeon/deviltower2_regen.txt")
    d.set_warp_at_eliminate(4, d.get_map_index(), special.devil_tower[2][1], special.devil_tower[2][2], "data/dungeon/deviltower3_regen.txt")
end
--when devil_stone2.kill begin
--d.jump_all_local(special.devil_tower[2][1], special.devil_tower[2][2])
--end
when devil_stone3.kill begin
    --d.jump_all_local(special.devil_tower[3][1], special.devil_tower[3][2])
    --d.set_exit_all_at_eliminate(6)
    --d.set_warp_at_eliminate(6, d.get_map_index(), 100, 100)
    --d.set_warp_at_eliminate(4, 65, 5376+532, 512+596+4)
    d.set_warp_at_eliminate(4, d.get_map_index(), special.devil_tower[3][1], special.devil_tower[3][2], "data/dungeon/deviltower4_regen.txt")
    d.check_eliminated()
    --d.exit_all()
end
function get_4floor_stone_pos()
    local positions = {
	{368, 629},
	{419, 630},
	{428, 653},
	{422, 679},
	{395, 689},
	{369, 679},
	{361, 658},
    }
    for i = 1, 6 do
	local j = number(i, 7)
	if i != j then
	    local t = positions[i];
	    positions[i] = positions[j];
	    positions[j] = t;
	end
    end
    --for i = 1, 7 do
--	positions[i][1] = positions[i][1] * 100
--	positions[i][2] = positions[i][2] * 100
 --   end
    return positions
end
when 8016.kill with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
    d.setf("level", 4)
    -- ¦A˛{¤jqÇŞ«¤Î»słyŻuĄŰŔYM°˛ĄŰŔY
    --d.regen_file("data/dungeon/deviltower4_regen.txt")
    local positions = deviltower_zone.get_4floor_stone_pos()
    for i = 1, 6 do
	chat(positions[i][1], positions[i][2])
	d.set_unique("fake" .. i , d.spawn_mob(8017, positions[i][1], positions[i][2]))
    end
    chat(positions[7][1], positions[7][2])
    local vid = d.spawn_mob(8017, positions[7][1], positions[7][2])
    chat(vid)
    d.set_unique("real", vid)
    server_loop_timer('devil_stone4_update', 10, pc.get_map_index())
    server_timer('devil_stone4_fail1', 5*60, pc.get_map_index())

    d.notice("Brawo, udalo sie Tobie");
    d.notice("zniszczyc kamien metin!");
    d.notice("Macie 15 minut na nastepnym pietrze[ENTER] zanim zostaniecie wylogowani.");
    d.notice("Spieszcie sie!");
end

when devil_stone4_fail1.server_timer begin
    if d.select(get_server_timer_arg()) then
	d.notice("Pozostalo 10 minut!")
	server_timer('devil_stone4_fail2', 5*60, get_server_timer_arg())
    end
end

when devil_stone4_fail2.server_timer begin
    if d.select(get_server_timer_arg()) then
	d.notice("Pozostalo 5 minut!")
	server_timer('devil_stone4_fail', 5*60, get_server_timer_arg())
    end
end

when devil_stone4_fail.server_timer begin
    if d.select(get_server_timer_arg()) then
	d.notice("Nie udalo sie, zostaniecie wylogowany!")
	d.exit_all()
	clear_server_timer('devil_stone4_update', get_server_timer_arg())
    end
end

when devil_stone4_update.server_timer begin
    if d.select(get_server_timer_arg()) then
	if not d.is_unique_dead("real") then
	    for i = 1, 6 do
		if d.getf("fakedead" .. i) == 0 then
		    if d.unique_get_hp_perc("fake" .. i) < 50 then
			d.purge_unique("fake" .. i)
			d.setf("fakedead" .. i, 1)
			d.notice("To nie ten kamien!");
		    end
		end
	    end
	else
	    --d.clear_regen()
	    --d.regen_file("data/dungeon/deviltower5_regen.txt")
	    server_timer("devil_stone4_end", 5, get_server_timer_arg())
	    d.notice("Udalo sie! Zabij wszystkie potwory na nastepnym");
	    d.notice("pietrze, aby zdobyc kamien otwarcia!")
	    clear_server_timer('devil_stone4_fail1', get_server_timer_arg())
	    clear_server_timer('devil_stone4_fail2', get_server_timer_arg())
	    clear_server_timer('devil_stone4_fail', get_server_timer_arg())
	end
    else
	server_timer('devil_stone4_stop_timer', 1, get_server_timer_arg())
    end
end

when devil_stone4_stop_timer.server_timer begin
    clear_server_timer('devil_stone4_update', get_server_timer_arg())
end

when devil_stone4_end.server_timer begin
    if d.select(get_server_timer_arg()) then
	d.setf("level", 5)
	d.setf("stone_count", 5)
	d.notice("Brawo, jestes na 5 pietrze!")
	d.notice("Aby przejsc na 6 pietro musisz zabic")
	d.notice("wszystkie potwory tutaj, zdobyc kamien")
	d.notice("otwarcia i otworzyc pieczecie przed czasem!")
	d.jump_all(special.devil_tower[4][1], special.devil_tower[4][2])
	server_timer('devil_stone5_fail1', 5*60, get_server_timer_arg())
	clear_server_timer('devil_stone4_update', get_server_timer_arg())

	-- 5ĽÓÄ~Äň¦A˛{
	d.set_regen_file("data/dungeon/deviltower5_regen.txt")

	-- 5ĽÓ«Ę¦LĄŰ¦A˛{
	d.spawn_mob(20073, 421, 452)
	d.spawn_mob(20073, 380, 460)
	d.spawn_mob(20073, 428, 414)
	d.spawn_mob(20073, 398, 392)
	d.spawn_mob(20073, 359, 426)
    end
end
when devil_stone5_fail1.server_timer begin
    if d.select(get_server_timer_arg()) then
	d.notice("Pozostalo 15 minut!")
	server_timer('devil_stone5_fail2', 5*60, get_server_timer_arg())
    end
end

when devil_stone5_fail2.server_timer begin
    if d.select(get_server_timer_arg()) then
	d.notice("Pozostalo 10 minut!")
	server_timer('devil_stone5_fail3', 5*60, get_server_timer_arg())
    end
end

when devil_stone5_fail3.server_timer begin
    if d.select(get_server_timer_arg()) then
	d.notice("Pozostalo 5 minut!")
	server_timer('devil_stone5_fail', 5*60, get_server_timer_arg())
    end
end

when devil_stone5_fail.server_timer begin
    if d.select(get_server_timer_arg()) then
	d.notice("Nie udalo sie, zostaniesz wylogowany!")
	d.exit_all()
    end
end

--when devil_stone4.kill begin
    --d.setf("level", 5)
    --d.setf("stone_count", 4)
    --d.clear_regen()
    --d.regen_file("data/dungeon/deviltower5_regen.txt")
    --d.jump_all_local(special.devil_tower[4][1], special.devil_tower[4][2])
--end

when 1062.kill with pc.in_dungeon() and d.getf("level") == 5 begin
    local KILL_COUNT_FOR_DROP_KEY = 50
    --if is_test_server() then
	--KILL_COUNT_FOR_DROP_KEY = 1
    --end
    local n =d.getf("count") + 1
    d.setf("count", n) 
    if n == KILL_COUNT_FOR_DROP_KEY then
	-- ±Ľ¤UÂę°Í
	game.drop_item(50084, 1)
	d.setf("count", 0)
    end
end
when devil_stone5.take with item.vnum == 50084 begin
    npc.purge()
    item.remove()
    d.setf("stone_count", d.getf("stone_count") - 1)
    if d.getf("stone_count") <= 0 then
	d.setf("level", 6)
	d.clear_regen()
	d.regen_file("data/dungeon/deviltower6_regen.txt")

	d.notice("Brawo udalo sie! jestes na 6 pietrze!")
	d.notice("Zabij wszystkie potwory!")
	d.jump_all(special.devil_tower[5][1], special.devil_tower[5][2])
	clear_server_timer('devil_stone5_fail1', get_server_timer_arg())
	clear_server_timer('devil_stone5_fail2', get_server_timer_arg())
	clear_server_timer('devil_stone5_fail3', get_server_timer_arg())
	clear_server_timer('devil_stone5_fail', get_server_timer_arg())
    else
	d.notice("Do otwarcia posostały "..d.getf("stone_count").." pieczęcie")
    end
end

when devil_stone6.kill begin
    -- ǰe¨ě·Ň¸tҦbŞş¦aąĎ
    -- §_«hˇA}ł]¤@­Ó·s·Ň¸t
    --d.jump_all(special.devil_tower[6][1], special.devil_tower[6][2])
    d.kill_all()
   -- d.set_warp_at_eliminate(3*60, 65, 5376+532, 512+596+4)
    d.check_eliminated()
    local reward_alchemist = {20074, 20075, 20076}
    d.spawn_mob(reward_alchemist[number(1,3)], 425, 216);
    d.setqf("can_refine", 1)
end

--------------------------------------
-- ĄŃi¤J7ĽÓ¦Ü¨ěąF8ĽÓ¤§«e
--------------------------------------

when 20074.chat."Chce przejsc dalej" with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
	say(""..mob_name(20074).."")
	say("Zostaniesz przeniesiony")
	say("na 7 pietro Wiezy Demonow!")
	say("Lecz uwazaj...")
	say("Tam nie bedzie tak latwo jak wczesniej!")
	wait()
	if pc.level >=75 then
		say("Kazdy z graczy zostanie przeniesiony!")
		timer("devil_jump_7", 6)
		return
	end
	say("Mozesz przejsc dalej!")
	say("")
	say("")
	wait()
	pc.warp(590500, 110500)
	return
   end
when 20075.chat."Chce przejsc dalej" with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
	say(""..mob_name(20075).."")
	say("Zostaniesz przeniesiony")
	say("na 7 pietro Wiezy Demonow!")
	say("Lecz uwazaj...")
	say("Tam nie bedzie tak latwo jak wczesniej!")
	wait()
	if pc.level >=75 then
		say("Kazdy z graczy zostanie przeniesiony!")
		timer("devil_jump_7", 6)
		return
	end
	say("Mozesz przejsc dalej!")
	say("")
	say("")
	wait()
	pc.warp(590500, 110500)
	return
   end
when 20076.chat."Chce przejsc dalej" with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
	say(""..mob_name(20076).."")
	say("Zostaniesz przeniesiony")
	say("na 7 pietro Wiezy Demonow!")
	say("Lecz uwazaj...")
	say("Tam nie bedzie tak latwo jak wczesniej!")
	wait()
	if pc.level >=75 then
		say("Kazdy z graczy zostanie przeniesiony!")
		timer("devil_jump_7", 6)
		return
	end
	say("Mozesz przejsc dalej!")
	say("")
	say("")
	wait()
	pc.warp(590500, 110500)
	return
   end

  when devil_jump_7.timer begin
	d.clear_regen()

	d.spawn_mob(8018, 639, 658)
	d.spawn_mob(8018, 611, 637)
	d.spawn_mob(8018, 596, 674)
	d.spawn_mob(8018, 629, 670)

	d.setf("level", 7)

	d.jump_all(2048+590, 6656+638)
end

when 8018.kill with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
	local cont = d.getf("7_stone_kill") + 1
	d.setf("7_stone_kill", cont)

	if cont >= 4 then
		d.setf("7_stone_kill", 0)
		d.set_regen_file("data/dungeon/deviltower7_regen.txt")
	end	
end

when 8019.kill with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
	game.drop_item(30300, 1)
end

when 30300.use with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
	pc.remove_item("30300", 1)

	local pct = number(1,10)

	if pct == 1 then
		-- ±Ľ¤UŻu¦aąĎ
		game.drop_item(30302, 1)
		d.clear_regen()
	else
		-- ±Ľ¤U°˛¦aąĎ
		game.drop_item(30301, 1)

	end
end

when 30302.use with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
	-- ǰe¨ě8ĽÓ
	say("Przeniesiesz sie na 8 pietro!")
	pc.remove_item("30302", 1)
    timer("devil_jump_8", 6)
	d.clear_regen()
end

--------------------------------------------
-- ĄŃi¤J8ĽÓ¦Ü¨ěąF9ĽÓ¤§«e
--------------------------------------------
when devil_jump_8.timer begin
	d.setf("level", 8)
	d.jump_all(2048+590, 6656+403)
	d.set_regen_file("data/dungeon/deviltower8_regen.txt")
	d.spawn_mob(20366, 640, 460)
	local _count= pc.count_item(30302)-- ř·ŔŻu¤`ĆFđ
	pc.remove_item(30302,_count)

end

when 1040.kill with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
	local pct1 = number(1, 5)
	if pct1 == 1 then
		local pct2 = number(1, 10)
		if pct2 == 1 then
			-- ±Ľ¤UŻuÂę°Í
			game.drop_item(30304, 1)
		else
			-- ±Ľ¤U°˛Âę°Í
			game.drop_item(30303, 1)
		end
	else
		return
	end
end

when 20366.take with item.vnum == 30304 begin
	-- 9ĽÓ«Ę¦L¸Ń°Ł
	d.notice("Zostaniecie przeniesieni na 9 pietro!")
	npc.purge()
	item.remove()
	timer("devil_jump_9", 6)
end

---------------------------------------------
-- ĄŃi¤J9ĽÓ¦Üµ˛§ô
---------------------------------------------
when devil_jump_9.timer begin
	d.setf("level", 9)
	d.jump_all(2048+590, 6656+155)
	d.regen_file("data/dungeon/deviltower9_regen.txt")
end

when 1093.kill with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
	d.kill_all()
	notice_all(pc.get_name().." zabil Umarlego Rozpruwacza!")
	timer("devil_end_jump", 60)
end

when devil_end_jump.timer begin
    d.exit_all()
end
end
end

[/hide]

 

Tuturial oraz Quest wykonany przez NoTuS dla ElitePvPers

 

 

Oczywiście on skopiował Twoją pracę, a i ja też. facepalmw.gif

http://www.mpcforum.pl/topic/270019-pytanie-szukam-demon-tower-tiveria/page__view__findpost__p__1860700

307681428489538142351.png

Metin2 Balmora Staff

Odnośnik do komentarza

Już pominę fakt, że ten temat to jakaś pierdolona pomyłka, to #include nie jest funkcją.

 

---

 

cze bambus, cze farrk

 

Cze xavi, cze farrk,

 

Wszystkiego najlepszego farrk i dużo Zdrówka=)

 

btw, xavi to jest w ogóle jakaś parodia, ale sui używa to jako funkcji, która zwraca mu warpa 5 osób z pt do DT.

307681428489538142351.png

Metin2 Balmora Staff

Odnośnik do komentarza

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

  • Ostatnio przeglądający forum DemonTower   0 użytkowników
    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...