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

[Poprawa] Prawidłowy kamień metin.


Rekomendowane odpowiedzi

Opublikowano

Cześć. Hmm...potrzebuje w quescie zrobić coś takiego aby losowało z kilku kordów prawidłowego metina i aby zniszczenie go przeniosło na następny poziom dugeonu ;p. Nie bardzo jednak to ogarniam, uczę się dopiero pisania takich questów dlatego proszę Was o pomoc. Patrzyłem na quest wiezy demonów. I nie do końca wiem jak to zastosowac u siebie. Potrzebuje zrobić tak z 5 metinami.

 

Pomógłby mi ktoś z "wyjaśnieniem" tego ? Nakierowaniem na dobrą drogę ;/ ?

 

 

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;
positions = positions[j];
positions[j] = t;
end
end
--for i = 1, 7 do
-- positions[1] = positions[1] * 100
-- positions[2] = positions[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)
--d.regen_file("data/dungeon/deviltower4_regen.txt")
local positions = deviltower_zone.get_4floor_stone_pos()
for i = 1, 6 do
chat(positions[1], positions[2])
d.set_unique("fake" .. i , d.spawn_mob(8017, positions[1], positions[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

 

Opublikowano

No dobrze by było i do tego jeszcze jak sie zabije nieprawidłowego to też zeby była taka informacja ;p. Chociaż z tym to "chyba" sobie powinienem poradzić. Po kombinował bym i moze by wyszło.

 

Jestem troche w tym zielony, w tej tablicy widze ze zostały umieszczone kordy, tylko nie bardzo rozumiem dalej tą pętle for ;/.

Opublikowano

Tzn pomysł mam taki, żeby dać losowanie 1,5, czyli który metin rozwalony będzie prawidłowy. Niczym to się prawie nie różni oprócz tego, że metka trzeba dobić do końca. Co do tej funkcji to jak będzie trzeba to jutro luknę.

Opublikowano

ym losowanie z pośród tych 5 kordów ;p ?

 

Nie do końca łapie.

 

Jakbyś mógł mi to na czymś wyjaśnić bym był wdzieczny. Nie chodzi mi tu koniecznie o gotowy kod, tylko zastosowanie jakiegoś przykładu i wyjaśnienie. ;p

Opublikowano

local metin = number(1,4)
if metin==1 then
d.spawn_mob(8028, 1351, 348)
d.spawn_mob(8028, 1148, 350)
d.spawn_mob(8028, 1151, 155)
d.spawn_mob(8029, 1351, 149)
end
if metin==2 then
d.spawn_mob(8028, 1351, 348)
d.spawn_mob(8028, 1148, 350)
d.spawn_mob(8029, 1151, 155)
d.spawn_mob(8028, 1351, 149)
end
if metin==3 then
d.spawn_mob(8028, 1351, 348)
d.spawn_mob(8029, 1148, 350)
d.spawn_mob(8028, 1151, 155)
d.spawn_mob(8028, 1351, 149)
end
if metin==4 then
d.spawn_mob(8029, 1351, 348)
d.spawn_mob(8028, 1148, 350)
d.spawn_mob(8028, 1151, 155)
d.spawn_mob(8028, 1351, 149)
end
end
when 8028.kill with pc.in_dungeon() begin
d.notice("Zniszczyłeś fałszywy Kamień Metin.")
end
when 8029.kill with pc.in_dungeon() begin
d.notice("Prawdziwy Kamień Metin został zniszczony.")
end

Dlaczego tak? Otóż:

 

local metin = number(1,4) - ta funkcja losuje jedną z pośród czterech możliwości (1,2,3,4)

 

if metin==1 then - jeżeli wylosuje nr 1 to

d.spawn_mob(8028, 1351, 348) - respi metin o id 8028 na kordach 1351 348

d.spawn_mob(8028, 1148, 350) - tutaj to samo ale inne kordy

d.spawn_mob(8028, 1151, 155) - to samo i inne kordy

d.spawn_mob(8029, 1351, 149) - a tutaj inne kordy i metin o id 8029, czemu tak? Dodaj do bazy dwa takie same metiny np dwa metin bitwy i przyjmiemy że jeden będzie prawdziwy a drugi fałszywy, a tak naprawde niczym sie nie bedą różnić, jedynie bedzie ich dwa o innych id

end - koniec if

 

Tutaj jest jeszcze dalej if metin==2 then potem if metin==3 then itd, ale to są poprostu możliwości w jakim miejscu zrespi prawdziwego i fałszywe metiny

 

when 8028.kill with pc.in_dungeon() begin - kiedy zniszczymy metin 8028 który jest dla nas fałszywy to: (PS: pc.in_dungeon() - mówi o tym że gracz musi byc w dungeonie, żeby nie było tak że zniszczymy ten sam metin np. w m1 i wtedy wyświetli nam info, bo tak nie chcemy)

d.notice("Zniszczyłeś fałszywy Kamień Metin.") - wyświetli info na czacie

end - koniec when

 

when 8029.kill with pc.in_dungeon() begin - kiedy zniszczymy metin 8029 który będzie prawdziwy to:

d.notice("Prawdziwy Kamień Metin został zniszczony.") - wyświetl info na czacie

end - koniec when

 

Tam możesz sobie dodać np. co się stanie jak zniszczymy ten prawdziwy metin, że np nas przenosi, albo respi bossa itp :) Ale pytałeś o same metki, także myślę że pomogłem

Opublikowano

Czemu ja nie wpadłem na to dodanie 2 tych samych metinów o róznych ID -.-. Tego mi właśnie brakowało i tego nie mogłem rozgryźć.

 

Dzięki Ci wielkie za opisanie tego, przed chwilą myślałem w podobny sposób (żeby dodac 2 metiny ale rózne a nie takie same).

 

Lajk leci :). Zaraz bede z tym sie bawił :D

Zarchiwizowany

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

×
×
  • Dodaj nową pozycję...