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

pc.get_level() uzupełnienie


Rekomendowane odpowiedzi

Opublikowano

Cześć. Chciałbym uzupełnić temat Sunushiego o pewien skrypt, dzięki któremu uzyskamy gotową tabelę z poziomami potworów z naszego serwera. Dlaczego? Jeżeli macie u siebie "przerobione" poziomy potworów, macie więcej potworów to na pewno się to przyda.

 

Temat Sunushiego:

http://www.mpcforum.pl/topic/797101-tut-npcget-level/

 

Teraz mój skrypt:

 

<?php
$my = mysql_query("SELECT vnum, level FROM mob_proto WHERE TRIM(setRaceFlag) != ''");
while ($row = mysql_fetch_array($my, MYSQL_NUM)) {
 echo("[".$row[0]."] = ".$row[1].", "); 
}
?>

W sumie nic więcej nie trzeba dodawać, otrzymujemy wszystko jak na tacy. Pis joł.

 

umarł

Opublikowano

@up

Chciałbym uzupełnić temat Sunushiego

Dif na funkcję npc.get_level() oczywiście że jest dobrym (w sumie najlepszym) pomysłem, ale ja tylko chciałem pomóc ludziom, którzy chcą to zrobić w ten sposób.

 

@down

I tak jest to lepszy sposób niż tak jak niektórzy robili z pobieraniem lvlu moba przez bazę.

 

umarł

Opublikowano

@up

 

Dif na funkcję npc.get_level() oczywiście że jest dobrym (w sumie najlepszym) pomysłem, ale ja tylko chciałem pomóc ludziom, którzy chcą to zrobić w ten sposób.

No poradnik przydatny, ale nie wiem po co tyle sie meczy i dodatkowo obciazac system.

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

 

 

^Gdyby ktoś szukał tego diffa :)

 

@Top

Dzięki za wstawkę. Nie skorzystam, ponieważ ogólnodostępne są mniej skomplikowane sposoby :)

Pozdrawiam

zf0m.png


LINK DO PREZENTACJI (KLIK)


Nic dodać, nic ująć.


Opublikowano

No poradnik przydatny, ale nie wiem po co tyle sie meczy i dodatkowo obciazac system.

Sorry, ale nie wydaje mi się co by jeden skrypt w php tak bardzo obciążał system. Jest to pętla co prawda, no ale bez przesady.

Opublikowano

Raczej chodziło o obciążanie systemu questem, który będzie po każdym zabiciu potwora wykonywał większą liczbę zadań bo musi pobierać id z tablicy i je podstawiać, a funkcja z game byłaby niby lepsza bo w queście wystarczy później jedna linijka.

 

umarł

Opublikowano

Za najlepszy sposób uważam wykonanie takiego query do bazy:

 

select concat("[",vnum,"]"," = ",level,",") from mob_proto;
 

Szybszy i najprostszy sposób.

Pliki GladoR s1/ Divine / GladoR'a s2 medium/hard

Możemy się jakos dogadać w sprawie plików PW

 

New Project Start Workout

Zarchiwizowany

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

×
×
  • Dodaj nową pozycję...