Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

[TuT] Arena PvP na plikach 2010


Qentinios

Rekomendowane odpowiedzi

Opublikowano

Wielu z Was ma problemy z Areną Walk u muzyka.

 

A że wywala do M1, po tym jak wpisze się nick przeciwnika,

A że przenosi na arenę i samemu trzeba brać solo, nie robi się to automatycznie

Albo, że wgl nie przenosi i dziwnym trafem solo zaczyna się zamiast na arenie pod muzykiem.

 

Napiszę tutaj, co Trzeba zrobić aby walki na arenie działały w 100%. Jeżeli któryś z punktów masz już u siebie zrobiony, pomiń go.

 

1.

Przechodzimy do katalogu z mapami na serwerze, otwieramy plik config.

Dopisujemy tam

12 metin2_map_duel

Jeżeli mamy już inną mapę na tym indexie musimy ją stąd wykasować.

Jeżeli mamy arenę pod indexem 112 zmieńmy go na 12.

2.

Przechodzimy katalog wyżej, otwieramy settings.lua

Dopisujemy tam:

arena.add_map(12, 8534, 101, 8564, 101)
arena.add_map(12, 8584, 101, 8614, 101)
arena.add_map(12, 8534, 155, 8564, 155)
arena.add_map(12, 8584, 155, 8514, 155)

 

Jeżeli już to mamy to nic nie robimy, a jeżeli mamy tu 112 zmieniamy na 12

 

3.

Otwieramy plik index w channel1, channel2, i kolejnych.

Dodajemy na początku w MAP_ALLOW

12

jezeli już mamy nic nie robimy, jeżeli mamy tam 112 to je kasujemy.

Ważne! Arenę dodajemy do normalnych channeli, 1,2,3 nigdy nie do channel99! Na tym specjalnym channelu arena nie będzie działała poprawnie!

4.

Quest. Dodajemy arena_manager do locale_list jeżeli ktoś nie ma, potem dajemy sh make w konsoli. Wystarczy standardowy quest, nawet ten z plików 2006. Ale gdyby ktoś nie miał dam w spoilerze:

 

arena_manager.quest

 

quest arena_manager begin
	state start begin
			when 20017.chat."Walki treningowe" begin
					if game.get_event_flag("arena_close") > 0 then
							say_title("Yu-Hwan:")
							----"12345678901234567890123456789012345678901234567890"|
							say("Arena treningowa w tej chwil jest nie dostepna.")
							say("")
							return
					end

					if not npc.lock() then
							say_title("Yu-Hwan:")
							----"12345678901234567890123456789012345678901234567890"|
							say("Ktoś zapisał się na trening.")
							say("")
							say("")
							return
					end

					local useMinLevel = game.get_event_flag("arena_use_min_level")

					if useMinLevel == 0 then
							useMinLevel = 25 ;
					end

					if pc.get_level() < useMinLevel then
							say_title("Yuhwan:")
							----"12345678901234567890123456789012345678901234567890"|
							say("Dopiero po ośiągnieciu "..useMinLevel..", poziomu możesz zapisać ")
							say("się na walke treningową. ")
							say("")
							npc.unlock()
							return
					else
							say_title("Yuhwan:")
							----"12345678901234567890123456789012345678901234567890"|
							say("Wpisz nazwe gracza, z którym chcesz trenować.")
							say("")
							say("")

							local sname = input()

							if sname == "" then
							say_title("Yu-Hwan:")
							----"12345678901234567890123456789012345678901234567890"|
							say("Nie wiesz z kim chcesz walczyć? ")
							say("")
									npc.unlock()
									return
							else
							say_title("Yu-Hwan:")
							----"12345678901234567890123456789012345678901234567890"|
							say(pc.name.." zapisał się na walke treningową przeciwko ")
							say(sname.." ")
							wait("")

									local opp_vid = find_pc_by_name(sname)

									if opp_vid == 0 then
							say_title("Yu-Hwan:")
							----"12345678901234567890123456789012345678901234567890"|
							say(sname.." nie jest aktualnie zalogowany.")
							say("")
											npc.unlock()
											return
									elseif opp_vid == pc.get_vid() then
							say_title("Yu-Hwan:")
							----"12345678901234567890123456789012345678901234567890"|
							say("Czy napewno chcesz walczyć? ")
							say("")
							say("")
											npc.unlock()
											return
									end

									local old = pc.select(opp_vid)
									local opp_level = pc.get_level()
									pc.select(old)

									if opp_level < useMinLevel then
							say_title("Yuhwan:")
							----"12345678901234567890123456789012345678901234567890"|
							say("Poziom drugiej osoby jest mniejszy niz  "..useMinLevel.." .")
							say("")
											npc.unlock()
											return
									end
									if not npc.is_near_vid(opp_vid, 10) then
							say_title("Yuhwan:")
							----"12345678901234567890123456789012345678901234567890"|
							say("Aby zorganizować szkolenia z")
							say(sname.." ma do mnie podejść. ")
							say("")
											npc.unlock()
											return ;
									end

									local a = arena.is_in_arena(opp_vid)
									if a == 0 then
							say_title("Yuhwan:")
							----"12345678901234567890123456789012345678901234567890"|
							say(sname.."  jest już obecnie w walce.")
							say("")
											npc.unlock()
											return ;
									end
							say_title("Decyzja")
							say(pc.name.." czekam na przyjecie wyzwania")
							say("of "..sname.." ")
									local agree = confirm(opp_vid, sname.." czy chcesz walczyć z  "..pc.name.."", 30)
									if agree!= CONFIRM_OK then
							say_title("Yuhwan:")
							----"12345678901234567890123456789012345678901234567890"|
							say(sname.." nie chce z tobą walczyć! ")
							say("")
							say("")
											npc.unlock()
											return
									end

									s = arena.start_duel(sname, 3)

									if s == 0 then
							say_title("Yu-Hwan:")
							----"12345678901234567890123456789012345678901234567890"|
							say("Wystąpił problem.")
							say("Czy chcesz zarejestrowac się ponownie póżniej? ")
							say("")
									elseif s == 2 then
							say_title("Yu-Hwan:")
							----"12345678901234567890123456789012345678901234567890"|
							say("Inna grupa jest obecnie w walce.")
							say("")
									elseif s == 3 then
							say_title("Yu-Hwan:")
							----"12345678901234567890123456789012345678901234567890"|
							say("Arena treningowa jest aktualnie w użyciu. ")
							say("Proszę przyjść pózniej. ")
							say("")
									end
							end
					end
					npc.unlock()
			end

			when 20017.chat."Ogladaj walke treningową " begin
					local g = arena.get_duel_list()
					local arena_name = {}
					local arena_observer = {}

					table.foreachi(g,
							function(n, p)
									arena_name[n] = p[1].." against "..p[2]
									arena_observer[n] = { p[3], p[4], p[5] }
							end
					)

					table.insert(arena_name, "Close")
					table.insert(arena_observer, 0)

					local count = table.getn(g)
					if count == 0 then
					say_title("Yu-Hwan:")
					----"12345678901234567890123456789012345678901234567890"|
					say("W tej chwili nie ma żadnych walk treningowych.")
					say("")
					return ;
					else
					say_title("Yu-Hwan:")
					----"12345678901234567890123456789012345678901234567890"|
					say("Obecnie "..count.." odbywaja siś szkolenia.")
					say("")
					wait()
					end

					if table.getn(g)!= 0 then
							local s = select_table(arena_name)

							if table.getn(arena_observer) == s then
									return ;
							end

							if table.getn(arena_observer) >= s then
									arena.add_observer(arena_observer[s][1], arena_observer[s][2], arena_observer[s][3])
							end
					end
			end
	end
end

 

5.

Dajemy Lubię to w tym temacie.

 

 

Jeżeli był już taki TUT ten skasujcie.

sygnatura2.png


Opublikowano

Wielu z Was ma problemy z Areną Walk u muzyka.

 

A że wywala do M1, po tym jak wpisze się nick przeciwnika,

A że przenosi na arenę i samemu trzeba brać solo, nie robi się to automatycznie

Albo, że wgl nie przenosi i dziwnym trafem solo zaczyna się zamiast na arenie pod muzykiem.

 

Napiszę tutaj, co Trzeba zrobić aby walki na arenie działały w 100%. Jeżeli któryś z punktów masz już u siebie zrobiony, pomiń go.

 

1.

Przechodzimy do katalogu z mapami na serwerze, otwieramy plik config.

Dopisujemy tam

12 metin2_map_duel

Jeżeli mamy już inną mapę na tym indexie musimy ją stąd wykasować.

Jeżeli mamy arenę pod indexem 112 zmieńmy go na 12.

2.

Przechodzimy katalog wyżej, otwieramy settings.lua

Dopisujemy tam:

arena.add_map(12, 8534, 101, 8564, 101)
arena.add_map(12, 8584, 101, 8614, 101)
arena.add_map(12, 8534, 155, 8564, 155)
arena.add_map(12, 8584, 155, 8514, 155)

 

Jeżeli już to mamy to nic nie robimy, a jeżeli mamy tu 112 zmieniamy na 12

 

3.

Otwieramy plik config w channel1, channel2, i kolejnych.

Dodajemy na początku w MAP_ALLOW

12

jezeli już mamy nic nie robimy, jeżeli mamy tam 112 to je kasujemy.

Ważne! Arenę dodajemy do normalnych channeli, 1,2,3 nigdy nie do channel99! Na tym specjalnym channelu arena nie będzie działała poprawnie!

4.

Quest. Dodajemy arena_manager do locale_list jeżeli ktoś nie ma, potem dajemy sh make w konsoli. Wystarczy standardowy quest, nawet ten z plików 2006. Ale gdyby ktoś nie miał dam w spoilerze:

 

arena_manager.quest

 

quest arena_manager begin
	state start begin
			when 20017.chat."Walki treningowe" begin
					if game.get_event_flag("arena_close") > 0 then
							say_title("Yu-Hwan:")
							----"12345678901234567890123456789012345678901234567890"|
							say("Arena treningowa w tej chwil jest nie dostepna.")
							say("")
							return
					end

					if not npc.lock() then
							say_title("Yu-Hwan:")
							----"12345678901234567890123456789012345678901234567890"|
							say("Ktoś zapisał się na trening.")
							say("")
							say("")
							return
					end

					local useMinLevel = game.get_event_flag("arena_use_min_level")

					if useMinLevel == 0 then
							useMinLevel = 25 ;
					end

					if pc.get_level() < useMinLevel then
							say_title("Yuhwan:")
							----"12345678901234567890123456789012345678901234567890"|
							say("Dopiero po ośiągnieciu "..useMinLevel..", poziomu możesz zapisać ")
							say("się na walke treningową. ")
							say("")
							npc.unlock()
							return
					else
							say_title("Yuhwan:")
							----"12345678901234567890123456789012345678901234567890"|
							say("Wpisz nazwe gracza, z którym chcesz trenować.")
							say("")
							say("")

							local sname = input()

							if sname == "" then
							say_title("Yu-Hwan:")
							----"12345678901234567890123456789012345678901234567890"|
							say("Nie wiesz z kim chcesz walczyć? ")
							say("")
									npc.unlock()
									return
							else
							say_title("Yu-Hwan:")
							----"12345678901234567890123456789012345678901234567890"|
							say(pc.name.." zapisał się na walke treningową przeciwko ")
							say(sname.." ")
							wait("")

									local opp_vid = find_pc_by_name(sname)

									if opp_vid == 0 then
							say_title("Yu-Hwan:")
							----"12345678901234567890123456789012345678901234567890"|
							say(sname.." nie jest aktualnie zalogowany.")
							say("")
											npc.unlock()
											return
									elseif opp_vid == pc.get_vid() then
							say_title("Yu-Hwan:")
							----"12345678901234567890123456789012345678901234567890"|
							say("Czy napewno chcesz walczyć? ")
							say("")
							say("")
											npc.unlock()
											return
									end

									local old = pc.select(opp_vid)
									local opp_level = pc.get_level()
									pc.select(old)

									if opp_level < useMinLevel then
							say_title("Yuhwan:")
							----"12345678901234567890123456789012345678901234567890"|
							say("Poziom drugiej osoby jest mniejszy niz  "..useMinLevel.." .")
							say("")
											npc.unlock()
											return
									end
									if not npc.is_near_vid(opp_vid, 10) then
							say_title("Yuhwan:")
							----"12345678901234567890123456789012345678901234567890"|
							say("Aby zorganizować szkolenia z")
							say(sname.." ma do mnie podejść. ")
							say("")
											npc.unlock()
											return ;
									end

									local a = arena.is_in_arena(opp_vid)
									if a == 0 then
							say_title("Yuhwan:")
							----"12345678901234567890123456789012345678901234567890"|
							say(sname.."  jest już obecnie w walce.")
							say("")
											npc.unlock()
											return ;
									end
							say_title("Decyzja")
							say(pc.name.." czekam na przyjecie wyzwania")
							say("of "..sname.." ")
									local agree = confirm(opp_vid, sname.." czy chcesz walczyć z  "..pc.name.."", 30)
									if agree!= CONFIRM_OK then
							say_title("Yuhwan:")
							----"12345678901234567890123456789012345678901234567890"|
							say(sname.." nie chce z tobą walczyć! ")
							say("")
							say("")
											npc.unlock()
											return
									end

									s = arena.start_duel(sname, 3)

									if s == 0 then
							say_title("Yu-Hwan:")
							----"12345678901234567890123456789012345678901234567890"|
							say("Wystąpił problem.")
							say("Czy chcesz zarejestrowac się ponownie póżniej? ")
							say("")
									elseif s == 2 then
							say_title("Yu-Hwan:")
							----"12345678901234567890123456789012345678901234567890"|
							say("Inna grupa jest obecnie w walce.")
							say("")
									elseif s == 3 then
							say_title("Yu-Hwan:")
							----"12345678901234567890123456789012345678901234567890"|
							say("Arena treningowa jest aktualnie w użyciu. ")
							say("Proszę przyjść pózniej. ")
							say("")
									end
							end
					end
					npc.unlock()
			end

			when 20017.chat."Ogladaj walke treningową " begin
					local g = arena.get_duel_list()
					local arena_name = {}
					local arena_observer = {}

					table.foreachi(g,
							function(n, p)
									arena_name[n] = p[1].." against "..p[2]
									arena_observer[n] = { p[3], p[4], p[5] }
							end
					)

					table.insert(arena_name, "Close")
					table.insert(arena_observer, 0)

					local count = table.getn(g)
					if count == 0 then
					say_title("Yu-Hwan:")
					----"12345678901234567890123456789012345678901234567890"|
					say("W tej chwili nie ma żadnych walk treningowych.")
					say("")
					return ;
					else
					say_title("Yu-Hwan:")
					----"12345678901234567890123456789012345678901234567890"|
					say("Obecnie "..count.." odbywaja siś szkolenia.")
					say("")
					wait()
					end

					if table.getn(g)!= 0 then
							local s = select_table(arena_name)

							if table.getn(arena_observer) == s then
									return ;
							end

							if table.getn(arena_observer) >= s then
									arena.add_observer(arena_observer[s][1], arena_observer[s][2], arena_observer[s][3])
							end
					end
			end
	end
end

 

5.

Dajemy Lubię to w tym temacie.

 

 

Jeżeli był już taki TUT ten skasujcie.

 

Czy to:

----"12345678901234567890123456789012345678901234567890"|

 

jest potrzebne?

Tylko mi nie gęgaj, że to tylko wizerunek, bo ja kurwistrzale i bez niego mam szacunek.

Opublikowano

krzywy's szczerze mówiąc nie wiem, ale wydaje mi się że jest po ----- więc powinno być pomijane przy wczytywaniu questa, a więc teoretycznie zbędne :)

sygnatura2.png


Opublikowano

krzywy's szczerze mówiąc nie wiem, ale wydaje mi się że jest po ----- więc powinno być pomijane przy wczytywaniu questa, a więc teoretycznie zbędne :)

 

Te "----" czyli myślniki to tzw komentarz z języku LUA .

 

Kompilator pomija wszystko po dwóch myślnikach, więc jest to zbędne ; )

Opublikowano

No właśnie ja do settings nic nie mam dodane, a jakoś mam tą arenę 2 miesiące na serwerze i da się atakować i wgl. wszystko. Wystarczy trochę pomyśleć przy queście i game.

Opublikowano

A mnie się wydaje, że w folderze z mapami zamiast pliku config mamy plik index ;)

Gdyby ludzie rozmawiali tylko o tym, co rozumieją, zapadłaby nad światem wielka cisza

Albert Einstein

Opublikowano

Wiesz co, wydaje mi się, że gdy ktoś pierwszy raz edytuje coś w mapach, na pewno nie będzie wiedział o co chodzi ;)

Gdyby ludzie rozmawiali tylko o tym, co rozumieją, zapadłaby nad światem wielka cisza

Albert Einstein

Opublikowano

http://wklej.to/MxPbk

 

Macie szwabski quest, na którym powinno wszystko działać.

Tylko mi nie gęgaj, że to tylko wizerunek, bo ja kurwistrzale i bez niego mam szacunek.

Opublikowano

krzywy's, jeśli chodzi o te komentarze to jest tylko po to, żeby było wiadomo jak długie teksty można pisać (żeby nie rozdzielało wyrazów bo to brzydko wygląda). Co do samej areny, jeśli sposób działa to gratuluję, sam myślałem jak zrobić, żeby nie wywalało do m1.

Koniec z MPCForum.pl i ogółem z metinem

:D

 

sunp.png

Sygnatura wykonana przez

Isuribi aka Amelka.

Opublikowano

Zauważcie, że nie napisałem że to jedyny słuszny sposób. Na niektórych plikach może działać bez któregoś z tych punktów :)

sygnatura2.png


Opublikowano

Dzięki ci działa jak nalezy tylko ja zamiast w indexie dałem 14 zamiast 12. Masz lajka za arene :D

Down wlasnie tak się pomylilem :D

Nie wiesz może czemu mam jak zabije bo dałem sobie jakiegoś nobka to testa i jak go zabije to cos tam pokazuje 10sek do odpowiedzi.

f82adac946184c36574a8521c877970c.gif

Opublikowano

Nie pieprz głupot. Musi się wgrać. Zobacz czy nie pomyliłeś np arena_manager z arena_menager :D

 

Poszukaj tego w lokale_string, i sobie zmień :)

 

 

sygnatura2.png


Opublikowano

Jakoś nadal nie działa :P Bez różnicy czy index 12, czy inny. Teleportuje na mapę i nie rozpoczyna pojedynku(pvp też nie można wziąć). Gdy usunąłem arenę w ogóle, to pvp się zaczynało, ale bić się nie dało (jedynie na wolnym). I jeszcze jedno: Potów nie można używać, ale autopoty tak - taka mała uwaga dla innych, żeby zablokowali sobie.

 

@Edit

 

testowane na 2 questach.

17912601413989039366.png

Opublikowano

Up

Napewno zrobiłeś wszystko tak jak w tucie?

 

A co do tych autopotów słusznie, nawet o tym nie pomyślałem

 

Oczywiście, sprawdzałem 3x i robiłem ponownie. Sprawdzę potem na dedyku =]

17912601413989039366.png

  • 2 miesiące temu...
Opublikowano

Ehh po chuja dałeś?

Niech sami ruszą głową, a nie morda w monitor i się potem potem przed kolegami jarają :|

Sposób działa, quest bierzcie albo z 2008 albo z 2010 (mi oba dzialaja)

  • 2 tygodnie później...
Opublikowano

Dlaczego index 12 blokuje mi atlantydę? bo usunięci index 12 z game jest wszystko dobrze. WTF?!

Zarchiwizowany

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

×
×
  • Dodaj nową pozycję...