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

Drop danego przedmiotu .


Rekomendowane odpowiedzi

Opublikowano

Witam .

 

Zrobię dzisiaj poradnik jak zrobić drop itemu ze wszystkich mobów .

 

Dlaczego to robię .. Ehhh ..

Wiele ludzi pyta : A jak ustawić szanse ? Co zrobić aby item rzadziej dropił ? . Jak zmienić drop itemu i jego ilość ?

 

Jest to proste i dzisiaj wam wszystko pokaże i wytłumaczę . Oczywiście jest to prosty poradnik dlatego jest bardziej dla zielonych .

Dla tych którzy dopiero są początkującymi ..

 

Więc proszę o wyrozumiałość wobec mnie . Nie robię to dla użytkowników którzy potrafią to robić .

 

Dobra ale przejdźmy do rzeczy . Posłuży nam do tego quest na drop by jachupl - Trochę w nim zmieniłem usunąłem w nim 2-3 linijki nie lada wyczyn ...

 

Oto quest :

 

quest jachu begin
 state start begin
		 when kill begin
				 local random = math.random(1500)
						 if random == 1 then
						 pc.give_item2(50011, 1)
						 chat("Otrzymałes szkatułke blasku księżyca !")
				 end
		 end
 end
end

 

Jest bardzo prosty i przydatny .

 

 

 

 

Jak zmienić drop ( szanse ) z moba ?

 

Sięgamy do linijki :

local random = math.random(1500)

 

Mamy wpisaną cyfrę 1500 . Dlaczego ? Otóż to jest ilość mobów . Jeżeli zabijemy 1500 mobów dropnie nam dany item w moim przypadku jest to szkatułka blasku księżyca .

Możemy zmienić tą cyfrę na jaką chcemy. PS . Tutaj nie ma szansy tylko ilość co ile mobów ma wypadać szkata .

 

Jak dodać informację że dany przedmiot nam dropi ?

 

Sięgamy do linijki :

chat("Otrzymałes szkatułke blasku księżyca !")

 

To każdy powinien wiedzieć w czacie gry wyskakuje nam informacja że dostaliśmy szkatułkę wprost do ekwipunku . Możemy tą linijkę usunąć ponieważ będzie nam pisało to 2 razy . Dlaczego ?

Bo drop z serwera czyli plik locale_string.txt ma wgraną informacje jeżeli dropnie nam jakiś przedmiot pisze to na czacie gry . Więc możemy to usunąć ale jeżeli nie chcemy to zostawiamy .

 

Jak zmienić drop itemu i jego ilość ?

 

Sięgamy do linijki :

pc.give_item2(50011, 1)

 

Tutaj ta cyfra ( 50011 ) to jest przedmiot który ma dropić . Możemy go zmienić na jaki chcemy ( spis do itemów i przedmiotów : http://www.mpcforum....tkie-po-polsku/ ) .

Obok piszę jeszcze ,1 czyli jaka ilość ma tego przedmiotu dropić . Możemy ją zmienić na np : 2,3,4,5, . Czyli :(Moje id przedmiotu np : 50050, Moja ilość przedmiotu .) Dokładniej : (50050, 5) W tym przypadku dropi nam medal konny a jego ilość to 5 ..

 

 

Poradnik zmieniony dla zielonych . Mam nadzieje że się przyda ...

Opublikowano

Ja bym to zmienił na:

game.drop_item_with_ownership(id_itemu)

i zmień na:

when kill with not npc.is_pc()

ePc0b.jpg

mcn_cc.pl - banda złodziei

;)

Piszę questy na zamówienie - Zostanę questerem na serwerze dedykowanym - Na zlecenie napiszę questy - Zakoduję stronę HTML5/CSS3

Opublikowano

Ten quest jest jednak troszke lepszy:

quest szkaty begin
state start begin
when kill with not npc.is_pc() begin
local ile_procent = 50
local s = number(1,100)
if s <= ile_procent then
pc.give_item2(50011) <---- Tu zmień ID na Szkatułkę
end
end

Oraz jest ich multum więc nie dam lajka!

Opublikowano

Można się pobawić . Wiesz wziełem questa od jachu którego miałem na kompie . Nawet nie chce lajków za temat dla zielonych . Chodziło mi o wytłumaczenie . Jest wiele questów takich naprawdę przeróżnych więc można sobie wybrać jaki się chce podkreślam chodziło mi o wytłumaczenie co do czego i o co chodzi .

Opublikowano

Szczerze ?! To tego na forum jest wystarczająco dużo, a jeśli ktoś nie potrafi pisać to albo tego nie robi, albo szuka questera albo w ostateczności pisze na Pisanie/Poprawa Questów.

Piszesz, że to dla wytłumaczenia, ale wydaje mi się, że nawet ZIELONY to potrafi.

2430991019.png
Opublikowano

Dajmy na to jesteś początkujący mpcforum jest ci nie znane . Nie wiesz co to quest i wgl nie wiesz jak sie je pisze na czym polegają . Szukasz questa na drop . Znajdujesz ten temat i trochę już masz jaśniej w bani ; D

Opublikowano

Jeśli się nie znam to po co szukać questa skoro nie wiem co to jest jak to się pisze ?

W tym momencie nie powinienem robić serwa ...

2430991019.png
Opublikowano

Tym oto sposobem dropimy na 99lvlu z dzikich psów. Dziękuję, dobranoc.

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

:D

 

sunp.png

Sygnatura wykonana przez

Isuribi aka Amelka.

Opublikowano

Tym oto sposobem dropimy na 99lvlu z dzikich psów. Dziękuję, dobranoc.

Można dodać warunek, że jeśli poziom gracza jest większy lub równy x czy mniejszy lub równy x ;)

ePc0b.jpg

mcn_cc.pl - banda złodziei

;)

Piszę questy na zamówienie - Zostanę questerem na serwerze dedykowanym - Na zlecenie napiszę questy - Zakoduję stronę HTML5/CSS3

Opublikowano

Czy ja powiedziałem że macie tego questa wgrywać na serwer ? . Jest mnóstwo questów takich więc możecie sobie jakiś wybrać .............. Tylko go wytłumaczyłem

Opublikowano

Mamy wpisaną cyfrę 1500 . Dlaczego ? Otóż to jest ilość mobów . Jeżeli zabijemy 1500 mobów dropnie nam dany item w moim przypadku jest to szkatułka blasku księżyca .Możemy zmienić tą cyfrę na jaką chcemy. PS . Tutaj nie ma szansy tylko ilość co ile mobów ma wypadać szkata .

Człowieku, robisz poradnik dla zielonych a sam nim jesteś. math.random losuje nam randomową (losową) liczbę z zakresu 1-podana liczba, czyli jeśli mamy math.random(1500) to losuje liczbę z zakresu 1-1500. Nie wprowadzaj ludzi w błąd.

Lepszym rozwiązaniem jest:

local n = number(1, 100)
if n < 50 then -- 50 to szansa w %

 

Jak już ktoś wyżej nadmienił, pc.give_item2 daje nam przedmiot odrazu do ekwipunku, a to chyba nie oto chodzi. Trzeba dodać element rywalizacji, czyli możliwość zebrania komuś, czyli wypadanie na ziemię. Do tego służą 2 funkcje: game.drop_item i game.drop_item_with_ownership

 

P.S. poprawna forma to nie "pisze" lecz "jest napisane"

 

 

Można dodać warunek, że jeśli poziom gracza jest większy lub równy x czy mniejszy lub równy x ;)

Tylko skąd weźmiesz lvl moba (bo porównywanie do ID jest głupie)?

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

:D

 

sunp.png

Sygnatura wykonana przez

Isuribi aka Amelka.

Opublikowano

Tylko skąd weźmiesz lvl moba (bo porównywanie do ID jest głupie)?

Mam funkcję npc.get_vid(), nie wiem tylko czy ona zadziała także na moba. Jeśli tak, to po prostu wskazać na moba i porównać levele. Ewentualnie funkcja z zapytaniem ("SELECT level FROM player.mob_proto WHERE vnum='"..npc.get_race().."' LIMIT 1;") Ale to chyba z tym id xD

ePc0b.jpg

mcn_cc.pl - banda złodziei

;)

Piszę questy na zamówienie - Zostanę questerem na serwerze dedykowanym - Na zlecenie napiszę questy - Zakoduję stronę HTML5/CSS3

Opublikowano

Już to tłumaczyłem pewnej osobie. Zwracanie levelu z bazy danych jest conajmniej głupie. Nie jest to funkcja wbudowana, przy każdorazowym killu otwierasz połączenie między questem a bazą. Następnie zwracasz, zamyka się baza. Wyobraź sobie 500 expiących osób i zapytanie sql, które wykonuje się przy każdym killu. O efektach chyba nie muszę mówić.

 

Zaraz umieszczę funkcję npc.get_level(), skuteczną i działającą

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

:D

 

sunp.png

Sygnatura wykonana przez

Isuribi aka Amelka.

Opublikowano

O ile dobrze wiem, jest wbudowana funkcja npc.get_level(), no ale z chęcią zobaczymy :)

ePc0b.jpg

mcn_cc.pl - banda złodziei

;)

Piszę questy na zamówienie - Zostanę questerem na serwerze dedykowanym - Na zlecenie napiszę questy - Zakoduję stronę HTML5/CSS3

Opublikowano

Skąd wziąć funkcję?

 

 

 

This difference file is created by The Interactive Disassembler

 

game2089

0014E762: 89 90

0014E763: C3 90

0014E764: 74 75

0014E765: 07 61

0014E766: 8B 90

0014E767: 50 90

0014E768: 24 90

0014E769: 85 90

0014E76A: D2 90

0014E76B: 74 90

0014E76C: 33 90

0014E7C7: 24 0F

0014E7C8: 04 B6

0014E7C9: E8 80

0014E7CA: 82 0A

0014E7CB: F5 05

0014E7CC: 17 00

00312349: 72 6C

0031234B: 6D 76

0031234C: 61 65

0031234D: 69 6C

0031234E: 6E 00

 

 

 

Dodajemy funkcję do quest_functions.

 

Prosty przykład zastosowania w queście

 

 

 

quest drop begin

state start begin

when kill begin

local razem = pc.get_level() - npc.get_level()

if razem > 15 then

chat("Za duży poziom, różnica poziomów to "..razem..".")

else

local n = number(1, 100)

if n == 1 then

game.drop_item_with_ownership(ID ITEMU, ilość)

end

end

end

end

end

 

 

 

Możemy również użyć npc.get_race() do określenia z jakich moobów przedmioty mają lecieć, przykład:

 

 

 

when kill with npc.get_race() > 100 and npc.get_race() < 400 begin

local razem = pc.get_level() - npc.get_level()

if razem > 15 then

chat("za duży lvl.")

else

local n = number(1, 300)

if n == 1 then

game.drop_item_with_ownership(id, ilosc)

end

end

end

end

end

 

 

 

Wg. tego co napisałem wyżej dany item z granicą levelową równą 15 poleci z mooba od ID 101 do ID 399.

Opublikowano

Tak jak Ci napisałem wyżej, możesz użyć funkcji npc.get_race(), która określa ID mooba.

Przykładowo:

when kill with npc.get_race() > 100 and npc.get_race() < 400 begin

 

Tak jak i wyżej drop wtedy będzie z mooba o ID większym niż 100 i mniejszym niż 400.

Jeżeli masz co innego na myśli, napisz.

Opublikowano

 when kill begin
local test = query("SELECT level FROM player.mob_proto WHERE vnum='"..npc.get_race().."';")
if pc.get_level()-test[2] <= 10 then

+ query, lecz przy większej ilości osób na serwerze quest pokazuje że jest

24b5car.jpg

  • 6 miesięcy temu...
Opublikowano

Mam problem ponieważ chce zrobic zeby dropily szkaty z kazdego moba i np. NIE CHCE ŻEBY koles co ma 100lvl zabije pieska co ma 1lvl i mu szkata dropi tylko chce jakas taka zrobić range np. że z psa dropi od 1lvl do 3

quest dropszkatulek begin
	 state start begin
			 when kill begin
					 local random = math.random(1)
							 if random == 1 then
							 pc.give_item2(50011, 1)
							 chat("Otrzymałeś Szkatułkę Bogini !")
					 end
			 end
	 end
end

 

 // Programista HTML i CSS


 


xkUrggS.png


Zapraszam do współpracy !

  • 1 miesiąc temu...
Opublikowano

Zmieniasz pc.give_item2 na game.drop_item_with_ownership.

szq9.png


SYGNATURA BY REEV


Jeżeli potrzebujesz questa, zakodowania strony WWW, podpięcie skryptów pod stronę czy jakiejś nowości do clienta, napisz - pomogę w miarę możliwości.


Zarchiwizowany

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

×
×
  • Dodaj nową pozycję...