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

Rekomendowane odpowiedzi

Opublikowano

Gdy widzę pomysły niektórych użytkowników na zwracanie poziomu zabitego potwora to nóż mi się w kieszeni otwiera. Zapytania SQL... Po co? xD

 

Nie ma sensu się rozpisywać, jeśli mamy "when kill" możemy użyć sobie nowo stworzoną funkcję jaką jest npc.get_level(). Zwróci ona nam ślicznie poziom, a zastosowanie można wynaleźć sobie takie:

cyid.jpg

 

Są 2 kroki do spełnienia by móc używać tej funkcji:

  1. Dodaj do questlib.lua:
     
    function npc.get_level()
       local id = npc.get_race()
       local mobLevels = {
       [101] = 1, [102] = 3, [103] = 4, [104] = 6, [105] = 9, [106] = 13, [107] = 16, [108] = 7, [109] = 10, [110] = 12, [111] = 15, [112] = 19,
       [113] = 21, [114] = 18, [115] = 24, [131] = 8, [132] = 9, [133] = 11, [134] = 14, [135] = 18, [136] = 21, [137] = 12, [138] = 15, [139] = 17,
       [140] = 20, [141] = 24, [142] = 26, [143] = 24, [144] = 29, [151] = 9, [152] = 16, [153] = 10, [154] = 21, [155] = 24, [171] = 1, [172] = 3,
       [173] = 4, [174] = 6, [175] = 9, [176] = 13, [177] = 16, [178] = 7, [179] = 10, [180] = 12, [181] = 15, [182] = 19, [183] = 21, [184] = 18,
       [185] = 24, [191] = 30, [192] = 31, [193] = 33, [194] = 35, [301] = 18, [302] = 20, [303] = 25, [304] = 25, [331] = 18, [332] = 20, [333] = 25,
       [334] = 25, [351] = 18, [352] = 20, [353] = 25, [354] = 25, [391] = 23, [392] = 26, [393] = 28, [394] = 31, [395] = 23, [396] = 26, [397] = 28,
       [398] = 31, [401] = 26, [402] = 27, [403] = 29, [404] = 30, [405] = 33, [406] = 35, [431] = 31, [432] = 33, [433] = 35, [434] = 36, [435] = 38,
       [436] = 40, [451] = 26, [452] = 27, [453] = 29, [454] = 30, [455] = 33, [456] = 35, [491] = 32, [492] = 37, [493] = 39, [494] = 45, [501] = 29,
       [502] = 32, [503] = 35, [504] = 36, [531] = 35, [532] = 37, [533] = 40, [534] = 42, [551] = 29, [552] = 32, [553] = 35, [554] = 36, [591] = 42,
       [595] = 42, [601] = 26, [602] = 29, [603] = 31, [604] = 33, [631] = 34, [632] = 36, [633] = 39, [634] = 40, [635] = 44, [636] = 46, [637] = 49,
       [651] = 34, [652] = 36, [653] = 39, [654] = 40, [655] = 44, [656] = 46, [657] = 49, [691] = 50, [692] = 50, [693] = 50, [701] = 35, [702] = 38,
       [703] = 41, [704] = 44, [705] = 48, [706] = 49, [707] = 51, [731] = 52, [732] = 53, [733] = 54, [734] = 54, [735] = 55, [736] = 56, [737] = 57,
       [751] = 35, [752] = 38, [753] = 41, [754] = 44, [755] = 48, [756] = 49, [757] = 51, [771] = 52, [772] = 53, [773] = 54, [774] = 54, [775] = 55,
       [776] = 56, [777] = 57, [791] = 54, [792] = 62, [793] = 54, [794] = 62, [795] = 54, [796] = 62, [901] = 49, [902] = 51, [903] = 53, [904] = 55,
       [905] = 58, [906] = 58, [907] = 59, [931] = 49, [932] = 51, [933] = 53, [934] = 55, [935] = 58, [936] = 58, [937] = 59, [991] = 59, [992] = 60,
       [993] = 61, [1001] = 57, [1002] = 58, [1003] = 59, [1004] = 60, [1031] = 67, [1032] = 69, [1033] = 70, [1034] = 71, [1035] = 72, [1036] = 73,
       [1037] = 71, [1038] = 72, [1039] = 73, [1040] = 74, [1041] = 75, [1061] = 67, [1062] = 69, [1063] = 70, [1064] = 71, [1065] = 72, [1066] = 73,
       [1067] = 71, [1068] = 72, [1069] = 73, [1070] = 74, [1071] = 75, [1091] = 75, [1092] = 75, [1093] = 78, [1094] = 75, [1095] = 78, [1101] = 62,
       [1102] = 63, [1103] = 64, [1104] = 64, [1105] = 65, [1106] = 66, [1107] = 66, [1131] = 81, [1132] = 81, [1133] = 82, [1134] = 83, [1135] = 83,
       [1136] = 84, [1137] = 85, [1151] = 52, [1152] = 53, [1153] = 54, [1154] = 54, [1155] = 55, [1156] = 56, [1157] = 56, [1171] = 62, [1172] = 63,
       [1173] = 64, [1174] = 64, [1175] = 65, [1176] = 66, [1177] = 66, [1191] = 70, [1192] = 70, [1301] = 57, [1302] = 59, [1303] = 58, [1304] = 75,
       [1305] = 61, [1306] = 75, [1307] = 75, [1331] = 57, [1332] = 59, [1333] = 58, [1334] = 75, [1335] = 61, [1401] = 66, [1402] = 73, [1403] = 77,
       [1501] = 69, [1502] = 72, [1503] = 76, [1601] = 68, [1602] = 70, [1603] = 75, [1901] = 72, [1902] = 72, [1903] = 72, [2001] = 43, [2002] = 45,
       [2003] = 48, [2004] = 50, [2005] = 52, [2031] = 50, [2032] = 52, [2033] = 54, [2034] = 56, [2035] = 58, [2036] = 58, [2051] = 43, [2052] = 45,
       [2053] = 48, [2054] = 50, [2055] = 52, [2061] = 60, [2062] = 62, [2063] = 64, [2064] = 66, [2065] = 68, [2071] = 50, [2072] = 52, [2073] = 54,
       [2074] = 56, [2075] = 58, [2076] = 58, [2091] = 60, [2092] = 65, [2093] = 60, [2101] = 19, [2102] = 37, [2103] = 39, [2104] = 44, [2105] = 47,
       [2106] = 48, [2107] = 51, [2108] = 54, [2131] = 60, [2132] = 62, [2133] = 64, [2134] = 66, [2135] = 68, [2151] = 19, [2152] = 37, [2153] = 39,
       [2154] = 44, [2155] = 47, [2156] = 48, [2157] = 51, [2158] = 54, [2191] = 67, [2192] = 67, [2201] = 69, [2202] = 69, [2203] = 70, [2204] = 71,
       [2205] = 72, [2206] = 73, [2207] = 73, [2231] = 69, [2232] = 69, [2233] = 70, [2234] = 71, [2235] = 72, [2291] = 75, [2301] = 65, [2302] = 67,
       [2303] = 69, [2304] = 70, [2305] = 71, [2306] = 84, [2307] = 86, [2311] = 74, [2312] = 76, [2313] = 77, [2314] = 80, [2315] = 82, [2401] = 87,
       [2402] = 89, [2403] = 89, [2404] = 90, [2411] = 91, [2412] = 93, [2413] = 95, [2414] = 97, [2431] = 80, [2432] = 82, [2433] = 82, [2434] = 83,
       [2451] = 84, [2452] = 86, [2453] = 88, [2454] = 90, [2491] = 93, [2492] = 95, [2493] = 97, [5001] = 1, [5002] = 60, [5003] = 1, [5004] = 80,
       [5101] = 22, [5102] = 25, [5103] = 27, [5104] = 29, [5111] = 35, [5112] = 37, [5113] = 39, [5114] = 40, [5115] = 41, [5116] = 42, [5121] = 45,
       [5122] = 47, [5123] = 49, [5124] = 52, [5125] = 53, [5126] = 54, [5127] = 54, [5131] = 22, [5132] = 25, [5133] = 27, [5134] = 29, [5141] = 35,
       [5142] = 37, [5143] = 39, [5144] = 40, [5145] = 41, [5146] = 42, [5151] = 45, [5152] = 47, [5153] = 49, [5154] = 52, [5155] = 53, [5156] = 54,
       [5157] = 54, [5161] = 30, [5162] = 43, [5163] = 55, [7001] = 52, [7002] = 53, [7003] = 54, [7004] = 54, [7005] = 55, [7006] = 56, [7007] = 56,
       [7008] = 52, [7009] = 53, [7010] = 54, [7012] = 52, [7013] = 53, [7014] = 54, [7015] = 54, [7016] = 55, [7017] = 56, [7018] = 56, [7019] = 59,
       [7020] = 59, [7021] = 60, [7022] = 61, [7023] = 62, [7024] = 64, [7025] = 66, [7026] = 67, [7027] = 70, [7028] = 72, [8001] = 5, [8002] = 10,
       [8003] = 15, [8004] = 20, [8005] = 25, [8006] = 30, [8007] = 35, [8008] = 40, [8009] = 45, [8010] = 50, [8011] = 55, [8012] = 60, [8013] = 65,
       [8014] = 70, [8015] = 50, [8016] = 55, [8017] = 60, [8018] = 65, [8019] = 70, [8020] = 1, [8021] = 1, [8022] = 1, [8023] = 1, [8024] = 75,
       [8025] = 80, [8026] = 85, [8027] = 90, [8101] = 5, [8102] = 10, [8103] = 15, [8104] = 20, [8105] = 25, [8106] = 30, [8107] = 35, [8108] = 40,
       [8109] = 45, [8110] = 50, [8111] = 55, [8112] = 60, [8113] = 65, [8114] = 70, [8501] = 35, [8502] = 30, [8503] = 25, [8504] = 5, [8505] = 10,
       [8506] = 12, [8507] = 15, [8508] = 20, [8509] = 25, [8510] = 21, [8511] = 11,
       }
       return mobLevels[id]
    end

     
     
  2. Dodaj do quest_functions:
    npc.get_level


 

Po wykonaniu tych czynności możemy sobie utworzyć np taki prosty quest:

quest test_kill begin
   state start begin
       when kill with not npc.is_pc() begin
           syschat("Zabiłeś moba, który ma "..npc.get_level()..". poziom.")
       end
   end
end

 

Lub też ambitniejszy:

quest event_drop begin
   state start begin
       when kill with not npc.is_pc() begin
           local mob_level = npc.get_level()
           local level = pc.get_level()
           if level - mob_level <= 10 and level - mob_level >= -10 then -- +/- 10 lvli nasz a moba
               if number(1, 1000) < 15 then -- szansa to 0.15%
                   game.drop_item_with_ownership(50011)
               end
           end
       end
   end
end

 

Jeśli w tablicy w questlib.lua nie będzie ID moba, którego zabiliśmy to będzie crash, więc lepiej to sobie pilnować. Co do samego dodawania to wystarczy ruszyć głową i każdy się połapie jak.

Wywaliłem id npc, gdyż ich lvl w mob_proto zawsze jest 70, poza tym nie widzę sensu zwracania ich poziomu.

 

To tyle, pozdrawiam.

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

:D

 

sunp.png

Sygnatura wykonana przez

Isuribi aka Amelka.

Opublikowano

Ty robiłeś tą tablicę?

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

Albert Einstein

Opublikowano

No nic, dobra robota jak zawsze :)

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

Moim zdaniem to ty powinieneś napisać o Admina w dziale Quest i Dify , a tak na serio, to dzięki wielkie szukałem tego dość długo a tu proszę jak na tacy wyłożone.. Zaraz CI limit jebne i 5* :D

nexi.png

 

CYTOWAĆ MOJE POSTY, JEŚLI LICZYCIE NA POMOC !!

Opublikowano

Ty robiłeś tą tablicę?

Wyexportowałem mob_proto z MySQL (tylko 2 kolumny - vnum i lvl) po czym w Notepad++ ze 3 lub 4 razy użyłem opcji "Zamień". Cała filozofia ;)

 

Moim zdaniem to ty powinieneś napisać o Admina w dziale Quest i Dify , a tak na serio, to dzięki wielkie szukałem tego dość długo a tu proszę jak na tacy wyłożone.. Zaraz CI limit jebne i 5* :D

No i na co mi ten admin? Żebym musiał tutaj siedzieć i karać za offtop? Sory ale nie :D

 

down, no to dostałem moddera za to : d

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

:D

 

sunp.png

Sygnatura wykonana przez

Isuribi aka Amelka.

Opublikowano

a można to użyc w taki sposób?

 

quest test_kill begin
    state start begin
		    when 1093.kill begin
				    syschat("Zabiłeś ripera, który ma "..npc.get_level()..". poziom.")
		    end
    end
end

4funmt2.pl

Opublikowano

No tak to tak samo by było:

when login begin

syschat(Witaj "..pc.get_name())

end

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

a można to użyc w taki sposób?

 

quest test_kill begin
 state start begin
		 when 1093.kill begin
				 syschat("Zabiłeś ripera, który ma "..npc.get_level()..". poziom.")
		 end
 end
end

da sie tylko trzeba wgrac difa

Opublikowano

 

da sie tylko trzeba wgrac difa

Nie wiem po co, skoro w tablicy jest ID rippera...

 

Lepiej zrobić to tak:

when kill with npc.get_id() == 1093 begin

przynajmniej nie będzie kolidować z dt

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

:D

 

sunp.png

Sygnatura wykonana przez

Isuribi aka Amelka.

Opublikowano

Nie tyle Admin, chodzi mi o coś typu Quest Master coś jak Gold Member :)

Ma moddera

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

Albert Einstein

Opublikowano

Łatwiej jest po prostu zmienić niepotrzebną funkcję w gejmie, podmienić pointerek i mamy elegancko zwracany lvl moba.

Weź pod uwagę, że tylko kilka osób ogarnia tutaj te podstawy asm'a, a reszta choćby chciała, nie ma się z czego uczyć.

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

Dużo tego, i łatwo się pogubić. Niemniej jednak, widać że jest to kawał dobrej roboty :D

Dla zainteresowanych - opublikuję diffa, który został prawdopodobnie stworzony przez BlackYuko, na funkcję npc.get_level().

 

Diff:

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

Wpis do quest_functions:

npc.get_level

Quest na zastosowanie:

quest jakis_tam begin
state start begin
when kill begin
local n = npc.get_level()
syschat("Zabiłeś potwora o levelu: "..n)
end
end
end

--Rzeczy nieobowiązkowe, dodatkowe (nie trzeba wgrywać):

Wpis do questlib.lua:

function npc_level()
if npc.get_level() >= pc.get_level then
return 1
elseif npc.get_level() < pc.get_level - 10 then
return 0
else
return 1
end
end

 

Wpis do quest_functions:

npc_level

 

Quest (jak od sunushi, na drop):

quest drop begin
state start begin
when kill with npc_level() == 1 begin
local n = number(1, 1000)
if n <=15 then --te 0.015% szansy
game.drop_item(19, 1)
end
end
end
end

Powinno działać :D Części nieobowiązkowej nie testowałem, ale wygląda dobrze.

Sam diff w 100% działa :)

Pozdrawiam

zf0m.png


LINK DO PREZENTACJI (KLIK)


Nic dodać, nic ująć.


Opublikowano

Bardzo fajna ta funkcja, szczególe przyda się do robienia dropów sztabek questem, nie tak jak na większości serwerach, postać 250 poziom i na pieskach sztabki lotają ^_^.

 

Dobra robota Sun. Like się należy.

pIOuQ29.png

Opublikowano

LIke działa all love :D

Pracuje niestety samodzielnie nad typowym hardem :

Mój Postęp Prac :

Pliki serwerowe : ok 80 %

Client : ok 80 %

Strona www : ok 95 %

  • 3 tygodnie później...
Opublikowano

A potrafiłby ktoś napisać taki :

gdy zabijemy potwora ,to sprawdza jaki ma poziom ,jeżeli ma mniejszy o 10 od naszego to pisze na chatcie: "Jesteś za silny na niego! "

4funmt2.pl

Opublikowano

A potrafiłby ktoś napisać taki :

gdy zabijemy potwora ,to sprawdza jaki ma poziom ,jeżeli ma mniejszy o 10 od naszego to pisze na chatcie: "Jesteś za silny na niego! "

 

http://wklej.to/KUcPl

  • 1 miesiąc temu...
Opublikowano

/e drop_moon 1

jeżeli chcesz włączyć drop szkatułek blasku księżyca. Co do questa to jak użyjesz quest dla "ambitniejszych" to nie będziesz miał żadnych tekstów.

 

umarł

  • 1 rok później...
  • 4 tygodnie później...
  • 6 miesięcy temu...
Opublikowano

POSZUKUJE POMOCY!

 

JAK ZROBIĆ DROP Z WYKORZYSTANIEM OGRANICZENIA LVL + LOSOWY DROP Z WYBRANEGO PRZEZ MNIE MOBA?

 

 

 

 

Jeśli chodzi o tą tablice to działa ale nie wiem jak dodać to tego losowy drop!

Zarchiwizowany

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

×
×
  • Dodaj nową pozycję...