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

Quest na Smocze Kule by OusterR - Beta


Rekomendowane odpowiedzi

Opublikowano

Witam,

ostatnio zainteresowałem się trochę pisaniem skryptów (a dokładniej questów) do MT2,

Przeto, że nie mam własnego serwera z tą grą, proszę o Waszą pomoc i sprawdzenie questu stworzonego przeze mnie, który polega na zebraniu 7 smoczych kul (tak jak w DBZ :) ). Tutaj smocze kule zastępuje ebonit, gdyż tak jak powiedziałem nie mam dostępu do serwera i nie mogę dodać nowego itemku jakim byłyby smocze kule...

Korzystałem ze skryptów innych osób, ale to jedynie dlatego, że jeszcze się uczę i zamierzam tam jeszcze trochę pozmieniać.

A oto mój skrypt:

quest smocze_kule begin
state start begin

-- rozpoczęcie questa i ustawienie dropu

when 151.kill begin
pc.give_item2(50628, 1)
end

when 152.kill begin
pc.give_item2(50628, 1)
end

when 153.kill begin
pc.give_item2(50628, 1)
end

when 154.kill begin
pc.give_item2(50628, 1)
end

when 155.kill begin
pc.give_item2(50628, 1)
end

when 191.kill begin
pc.give_item2(50628, 1)
end

when 192.kill begin
pc.give_item2(50628, 1)
end

when 193.kill begin
pc.give_item2(50628, 1)
end

when 194.kill begin
pc.give_item2(50628, 1)
end

-- Jeśli użyjemy Smoczej Kuli (Ebonitu) klikając PPM
-- pojawi nam się komunikat

when 50628.use begin
  say_title(item_name(50628)..":")
  say("Witaj "..pc.get_name().." !")
  say("Za pomocą smoczych kul możesz spełnić")
  say("jedno swe życzenie. ")
  say("Musisz jednak zebrać ich 7!")
  say("")
  say("Czy posiadasz ich już tyle? ")
  say("")
  
-- Pole wyboru odpowiedzi na komunikat

  local s = select("Tak, mam wszystkie", "Nie, przyjdę później.. ")

-- Jeśli wybierzemy NIE nic się nie zrobi, a jeśli TAK pojawi się kolejny komunikat
-- i jeśli mamy już wszystkie przedmioty (tu 7 ebo) to wylosuje się jedna z 35 nagród
 
  if s == 2 then
  return
  elseif s == 1 then
	if pc.count_item(50628) < 7 then
	say("Nie posiadasz jeszcze siedmiu")
	say("smoczych kul!")
	say("")
	say("Idź ich poszukać!")
	say("")
	say_reward("Smocze Kule możesz znaleźć zabijając")
	say_reward("żadkie okazy zwierząt, takie jak:")
	say_reward("Cung-Mok, Mu-Rang, Tigris itp.")
	
	
	else
	
	pc.removeitem(50628, 7)
	local los = number(1, 35)
	   if los == 1 then
        say_title(mob_nem(20083)..": ")
        say("Twoja nagroda to: ")
        say_item_vnum(50012)
        say("oraz")
        say_item_vnum(50008)
        say("")
        say("Gratulacje! ")
        say("")
        pc.give_item2(50012, 1)
        pc.give_item2(50008, 1)
       end
       if los == 2 then
        say_title(mob_nem(20083)..": ")
        say("Twoja nagroda to: ")
        say_item_vnum(50037)
        say("")
        say("Gratulacje! ")
        say("")
        pc.give_item2(50037, 3)
       end
       if los == 3 then
        say_title(mob_nem(20083)..": ")
        say("Twoja nagroda to: ")
        say_item_vnum(50011)
        say("")
        say("Gratulacje! ")
        say("")
        pc.give_item2(50011, 1)
       end
       if los == 4 then
        say_title(mob_nem(20083)..": ")
        say("Twoja nagroda to: ")
        say_item_vnum(50070)
        say("")
        say("Gratulacje! ")
        say("")
        pc.give_item2(50070, 1)
       end
       if los == 5 then
        say_title(mob_nem(20083)..": ")
        say("Twoja nagroda to: ")
        say_item_vnum(50071)
        say("")
        say("Gratulacje! ")
        say("")
        pc.give_item2(50071, 1)
       end
       if los == 6 then
        say_title(mob_nem(20083)..": ")
        say("Twoja nagroda to: ")
        say_item_vnum(50073)
        say("")
        say("Gratulacje! ")
        say("")
        pc.give_item2(50073, 1)
       end
       if los == 7 then
        say_title(mob_nem(20083)..": ")
        say("Twoja nagroda to: ")
        say_item_vnum(50076)
        say("")
        say("Gratulacje! ")
        say("")
        pc.give_item2(50076, 1)
       end
       if los == 8 then
        say_title(mob_nem(20083)..": ")
        say("Twoja nagroda to: ")
        say_item_vnum(13064)
        say("")
        say("Gratulacje! ")
        say("")
        pc.give_item2(13064, 1)
       end
       if los == 9 then
        say_title(mob_nem(20083)..": ")
        say("Twoja nagroda to: ")
        say_item_vnum(13084)
        say("")
        say("Gratulacje! ")
        say("")
        pc.give_item2(13084, 1)
       end
       if los == 10 then
        say_title(mob_nem(20083)..": ")
        say("Twoja nagroda to: ")
        say_item_vnum(13104)
        say("")
        say("Gratulacje! ")
        say("")
        pc.give_item2(13104, 1)
       end
       if los == 11 then
        say_title(mob_nem(20083)..": ")
        say("Twoja nagroda to: ")
        say_item_vnum(13124)
        say("")
        say("Gratulacje! ")
        say("")
        pc.give_item2(13124, 1)
       end
       if los == 12 then
        say_title(mob_nem(20083)..": ")
        say("Twoja nagroda to: ")
        say_item_vnum(14144)
        say("")
        say("Gratulacje! ")
        say("")
        pc.give_item2(14144, 1)
       end
       if los == 13 then
        say_title(mob_nem(20083)..": ")
        say("Twoja nagroda to: ")
        say_item_vnum(14164)
        say("")
        say("Gratulacje! ")
        say("")
        pc.give_item2(14164, 1)
       end
       if los == 14 then
        say_title(mob_nem(20083)..": ")
        say("Twoja nagroda to: ")
        say_item_vnum(14184)
        say("")
        say("Gratulacje! ")
        say("")
        pc.give_item2(14184, 1)
       end
       if los == 15 then
        say_title(mob_nem(20083)..": ")
        say("Twoja nagroda to: ")
        say_item_vnum(14204)
        say("")
        say("Gratulacje! ")
        say("")
        pc.give_item2(14204, 1)
       end
       if los == 16 then
        say_title(mob_nem(20083)..": ")
        say("Twoja nagroda to: ")
        say_item_vnum(28630)
        say("")
        say("Gratulacje! ")
        say("")
        pc.give_item2(28630, 1)
       end
       if los == 17 then
        say_title(mob_nem(20083)..": ")
        say("Twoja nagroda to: ")
        say_item_vnum(28631)
        say("")
        say("Gratulacje! ")
        say("")
        pc.give_item2(28631, 1)
       end
       if los == 18 then
        say_title(mob_nem(20083)..": ")
        say("Twoja nagroda to: ")
        say_item_vnum(28632)
        say("")
        say("Gratulacje! ")
        say("")
        pc.give_item2(28632, 1)
       end
       if los == 19 then
        say_title(mob_nem(20083)..": ")
        say("Twoja nagroda to: ")
        say_item_vnum(28633)
        say("")
        say("Gratulacje! ")
        say("")
        pc.give_item2(28633, 1)
       end
       if los == 20 then
        say_title(mob_nem(20083)..": ")
        say("Twoja nagroda to: ")
        say_item_vnum(28634)
        say("")
        say("Gratulacje! ")
        say("")
        pc.give_item2(28634, 1)
       end
       if los == 21 then
        say_title(mob_nem(20083)..": ")
        say("Twoja nagroda to: ")
        say_item_vnum(28635)
        say("")
        say("Gratulacje! ")
        say("")
        pc.give_item2(28635, 1)
       end
       if los == 22 then
        say_title(mob_nem(20083)..": ")
        say("Twoja nagroda to: ")
        say_item_vnum(28636)
        say("")
        say("Gratulacje! ")
        say("")
        pc.give_item2(28636, 1)
       end
       if los == 23 then
        say_title(mob_nem(20083)..": ")
        say("Twoja nagroda to: ")
        say_item_vnum(28637)
        say("")
        say("Gratulacje! ")
        say("")
        pc.give_item2(28637, 1)
       end
       if los == 24 then
        say_title(mob_nem(20083)..": ")
        say("Twoja nagroda to: ")
        say_item_vnum(28642)
        say("")
        say("Gratulacje! ")
        say("")
        pc.give_item2(28642, 1)
       end
       if los == 25 then
        say_title(mob_nem(20083)..": ")
        say("Twoja nagroda to: ")
        say_item_vnum(28643)
        say("")
        say("Gratulacje! ")
        say("")
        pc.give_item2(28643, 1)
       end
       if los == 26 then
        say_title(mob_nem(20083)..": ")
        say("Twoja nagroda to: ")
        say_item_vnum(27992)
        say("")
        say("Gratulacje! ")
        say("")
        pc.give_item2(27992, 1)
       end
       if los == 27 then
        say_title(mob_nem(20083)..": ")
        say("Twoja nagroda to: ")
        say_item_vnum(27993)
        say("")
        say("Gratulacje! ")
        say("")
        pc.give_item2(27993, 1)
       end
       if los == 28 then
        say_title(mob_nem(20083)..": ")
        say("Twoja nagroda to: ")
        say_item_vnum(27994)
        say("")
        say("Gratulacje! ")
        say("")
        pc.give_item2(27994, 1)
       end
       if los == 29 then
        say_title(mob_nem(20083)..": ")
        say("Twoja nagroda to: ")
        say_item_vnum(71084)
        say("")
        say("Gratulacje! ")
        say("")
        pc.give_item2(71084, 100)
       end
       if los == 30 then
        say_title(mob_nem(20083)..": ")
        say("Twoja nagroda to: ")
        say_item_vnum(71085)
        say("")
        say("Gratulacje! ")
        say("")
        pc.give_item2(71085, 100)
       end
       if los == 31 then
        say_title(mob_nem(20083)..": ")
        say("Twoja nagroda to: ")
        say_item_vnum(71051)
        say("")
        say("Gratulacje! ")
        say("")
        pc.give_item2(71051, 1)
       end
       if los == 32 then
        say_title(mob_nem(20083)..": ")
        say("Twoja nagroda to: ")
        say_item_vnum(71052)
        say("")
        say("Gratulacje! ")
        say("")
        pc.give_item2(71052, 1)
       end
       if los == 33 then
        say_title(mob_nem(20083)..": ")
        say("Twoja nagroda to: ")
        say_item_vnum(71036)
        say("")
        say("Gratulacje! ")
        say("")
        pc.give_item2(71036, 1)
       end
       if los == 34 then
        say_title(mob_nem(20083)..": ")
        say("Twoja nagroda to: ")
        say_item_vnum(71038)
        say("")
        say("Gratulacje! ")
        say("")
        pc.give_item2(71038, 1)
       end
       if los == 35 then
        say_title(mob_nem(20083)..": ")
        say("Twoja nagroda to: ")
        say_item_vnum(71039)
        say("")
        say("Gratulacje! ")
        say("")
        pc.give_item2(71039, 1)
	   end
	
  end

end
end
end

Działanie questa:

    1. Klikamy PPM na Ebonit (czyli naszą smoczą kulę)

    2. Musimy posiadać 7 smoczych kul (czyli ebonitu), aby dostać nagrodę.

    3. Gdy już mamy wymaganą liczbę przedmiotów możemy odebrać losową nagrodę :)

 

Drop smoczych kul (tu ebonitu) ustawiłem te potworki:

151 Cung-Mok
152 Mu-Rang
153 Jug-Hyul
154 Young-Ji
155 Li-An
191 Lykos
192 Scrofa
193 Bera
194 Tigris

 

Byłbym ogromnie wdzięczny za sprawdzenie / przetestowanie tego questa ;)

@Edit - dopisałem komentarze, bo quest wydaję się dosyć długi i skomplikowany, a w rzeczywistości jest prosty :)

 

Pozdrawiam i czekam na odpowiedź :)

Dragon_Ball_z_Banner_by_Gohu44.jpg

 

Wrzuć na luz i daj + ;)

Opublikowano

@Odświeżam

 

Mógłby ktoś chociaż na to luknąć? i powiedzieć, że "powinno być dobrze", albo "coś tu jest nie tak"... Potrzebuję opinii kogoś kto się na tym zna.

Pozdrawiam

Dragon_Ball_z_Banner_by_Gohu44.jpg

 

Wrzuć na luz i daj + ;)

Opublikowano

when 151.kill begin
pc.give_item2(50628, 1)
end

when 152.kill begin
pc.give_item2(50628, 1)
end

when 153.kill begin
pc.give_item2(50628, 1)
end

when 154.kill begin
pc.give_item2(50628, 1)
end

when 155.kill begin
pc.give_item2(50628, 1)
end

when 191.kill begin
pc.give_item2(50628, 1)
end

when 192.kill begin
pc.give_item2(50628, 1)
end

when 193.kill begin
pc.give_item2(50628, 1)
end

when 194.kill begin
pc.give_item2(50628, 1)
end
Na bank musisz zamienić na:

when kill with npc.get_race() == ID_Moba begin

gdyż tak jak napisałeś będzie kolidować z innymi questami. (np. w 2 queście tak samo dasz when 194.kill begin i wtedy nie dropnie)

 

czyli:

when kill with npc.get_race() == 151 or npc.get_race() == 152 or npc.get_race() == 153 or npc.get_race() == 154 or npc.get_race() == 155 or npc.get_race() == 191 or npc.get_race() == 192 or npc.get_race() == 193 or npc.get_race() == 194 begin
	pc.give_item2(50628, 1)
end
A po za tym to ma dropić za każdym razem? Trochę głupi pomysł, ale ok.

 

PS. Jak ktoś będzie to testował to mu nie zadziała, bez zmiany type i subtype Ebonitu na 18/10.

Opublikowano

Pomysł sam w sobie dobry, ale nie jest zrobiony odpowiednio. Oglądałeś DB więc powinieneś wiedzieć, że odnaleźć i zdobyć smoczą kulę trzeba było się nieźle namęczyć i powinieneś też na tej podstawie zrobić tego questa, od tego powinieneś zacząć. Ja bym to zmienił tak, żeby to było naprawdę trudne do zrobienia, żeby ten quest nie był jednym questem, podzieliłbym go na kilka questów. 
Nagrodą mógłby być dowolny przedmiot z IS(kostiumy, fryzury itp, na okres 1tyg. 1 mies).

Opublikowano

Pomysł sam w sobie dobry, ale nie jest zrobiony odpowiednio. Oglądałeś DB więc powinieneś wiedzieć, że odnaleźć i zdobyć smoczą kulę trzeba było się nieźle namęczyć i powinieneś też na tej podstawie zrobić tego questa, od tego powinieneś zacząć. Ja bym to zmienił tak, żeby to było naprawdę trudne do zrobienia, żeby ten quest nie był jednym questem, podzieliłbym go na kilka questów. 

Nagrodą mógłby być dowolny przedmiot z IS(kostiumy, fryzury itp, na okres 1tyg. 1 mies).

 

Masz rację, dlatego to tylko beta / quest próbny ;)

Nie znam się jeszcze zbyt dobrze na pisaniu questów do mt2, ale najbardziej chciałbym zrobić coś takiego:

  1. Dodałbym do gry takie jakby nowe zioło, tylko że z texturką smoczej kuli :D Po zebraniu tego "zioła" otrzymałoby się jedną smoczą kulę ;) "Zioło" to pojawiałoby się na każdej mapie i byłoby dość rzadkie...
  2. Dopiero, gdy uzbieralibyśmy 7 smoczych kul moglibyśmy użyć ich poprzez kliknięcie na nie PPM i wybrać jedno z pięciu lub czterech (jeszcze nie wiem ;P) losowych życzeń (aktualnie nie mamy wyboru, system sam losuje nagrodę).

 

Co do odpowiedzi NoName#2

Dzięki za poprawkę ;) Będę pamiętał na przyszłość :)

Mają dropić smocze kule (z anime pt. Dragon Ball, które mają wielką moc - po zebraniu 7 kul można było przywołać smoka o imieniu Shen Long, który spełniał jedno z twoich życzeń ;) ) Tu chciałem zrobić podobnie :) A Ebonit to tylko przedmiot zastępczy dla smoczych kul... ;)

 

PS: Jeśli ktoś jest zainteresowany moim questem i miałby ochotę mi pomóc przy jego realizacji, bądź użyć go na swoim serwerze, to zapraszam na PW ;) Z chęcią dokończę to co zacząłem, a także podzielę się swoim dziełem ;)

 

Pozdrawiam OusterR

Dragon_Ball_z_Banner_by_Gohu44.jpg

 

Wrzuć na luz i daj + ;)

Opublikowano

Dobrze wykonany quest, zrobię z niego fabułę u siebie i wykorzystam.

???????????  o.O

 

top.

Zamiast rozpisywać milion razy warunek wykonujący to samo, możesz wykorzystać tablicę. np:

local drop = {19,29,39,49} -- tablica z wpisanymi ID przedmiotow
local co_dropi = number(1,table.getn(drop)) -- losowanie numeru od 1 do "zakres" tablicy
say("Twoja nagroda to:[ENTER]")
say_item_vnum(drop[co_dropi]) -- numer z losowania wstawia jako "rekord" tablicy i go czyta (czyta ID wpisane w wylosowanym rekordzie)
say("[ENTER]Gratulacje![ENTER]")
pc.give_item2(drop[co_dropi], 1)
Opublikowano

Podsumowując wszystko:

quest smocze_kule begin
	state start begin
		when kill with npc.get_race() == 151 or npc.get_race() == 152 or npc.get_race() == 153 or npc.get_race() == 154 or npc.get_race() == 155 or
		npc.get_race() == 191 or npc.get_race() == 192 or npc.get_race() == 193 or npc.get_race() == 194 begin
			local r_1 = math.random(500)
			if r_1 == 20 then
				pc.give_item2(50628, 1)
			end
		end

		when 50628.use begin
			if pc.count_item(50628) < 7 then
				say_title(item_name(50628)..":")
				say("Zbierz 7 smoczych kul, aby spełnić ")
				say("swoje najskrytsze marzenie.")
				say_reward("Smocze Kule możesz znaleźć zabijając")
				say_reward("rzadkie okazy zwierząt, takie jak:")
				say_reward("Cung-Mok, Mu-Rang, Tigris itp.")
			else
				pc.removeitem(50628, 7)
				local tab1 = {id1,id2,id3,id4,id5}
				local los = number(1, table.getn(tab1))
				say_title(mob_name(20083)..":")
				say("W nagrodę otrzymujesz:[ENTER]")
				say_item_vnum(tab1[los])
				say("[ENTER]Gratulacje![ENTER]")
				pc.give_item2(tab1[los], 1)
			end
		end
	end
end
Specjalista
Opublikowano

Można to ciekawie połączyć z pythonem i wyszedłby ciekawy mini "system".

Pomysł dobry,wykonanie nie zachwyca. :)

Pomogłeś,pomogę kiedy tylko brachu mogę!

 

graphic.png

 

Opublikowano

Cieszę się, że pomysł się przyjął :)

Aż dziwię się, że nikt przedtem na to nie wpadł ;P

Dziękuję wszystkim za odpowiedzi ;)

 

@Nestium

Nie ma sprawy ;) Tylko popraw drop tak jak radził mi NoName#2 lub BuiLLder (BuiLLder dodał jeszcze chyba mały proc. szans na drop tj. bodajże 0,002%, ja bym go zmienił na 25 lub 50% ablo nawet więcej bo potworki z których ustawiłem drop są już i tak dość rzadkie...)

Nagrody też możesz sobie pozmieniać ;) Wedle uznania :) Bardzo chętnie zagram na twoim serwerze i zobaczę jak działa quest :)

 

Pozdrawiam, OusterR

Dragon_Ball_z_Banner_by_Gohu44.jpg

 

Wrzuć na luz i daj + ;)

Zarchiwizowany

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

×
×
  • Dodaj nową pozycję...