Bambus3k™ Opublikowano 2 Stycznia 2011 Udostępnij Opublikowano 2 Stycznia 2011 Witam, pokaże wam jak można szybko i łatwo we własnym zakresie pisać nowe funkcję. W folderze z questami najczęściej ../locale/english/quest jest taki plik o nazwie questlib.lua. Jest to taka mała biblioteka do poszczególnych usprawnień i działania funkcji. Nie znajdziemy w niej za wiele gdyż wszystkie funkcje są praktycznie skompresowane z GAME lecz my w questlib możemy łatwo ingerować =) ------------------------------------------------ ------------WPROWADZENIE------------ ------------------------------------------------ Na początek musimy się zastanowić jak nasza funkcja ma wyglądać... Wybrałem dla swojej nazwę pc.set_level() ponieważ istnieje już funkcja pc.get_level(), która sprawdza jaki poziom mamy. Wszystkie pc.set_... funkcje coś dodają graczowi skąd taka nazwa się właśnie mi nasunęła.. =P ------------------------------------------------ ---------DODAWANIE FUNKCJI--------- ------------------------------------------------ Pierw musimy naszą nową funkcję dodać do quest_functions skąd nasz kompilator "qc" zaciąga informacje o dopuszczalnych funkcjach. Nawet istniejąca funkcja nie dodana do quest_functions nie będzie działać.. i wywali nam ERROR po kompilacji. Można to zrobić na dwa wiele sposobów.. Najłatwiejszym jest wejście do katalogu (Pliki Rain) /usr/rain/channel/share_data/locale/hongkong/quest przez jakiś program który obsługuje ssh np. FileZilla lub WinSCP. Otworzenie tam tego owego pliku quest_functions i dopisanie na samym dole naszej nowej funkcji czyli pc.set_level. Bez nawiasów okrągłych gdyż tam nie dopisuje się żadnych parametrów, zmiennych do tych funkcji. To jest tylko znak dzięki któremu będzie nasz kompilator rozumiał co to jest pc.set_level(). Lub bardziej dla leniwych wpisać w BSD# echo 'pc.set_level' >> /usr/rain/channel/share_data/locale/hongkong/quest/quest_functions ------------------------------------------------ ------------ŹRÓDŁO FUNKCJI------------ ------------------------------------------------ Już mamy dodaną funkcję do naszego quest_functions lecz to nie wszystko. Kompilator będzie nam rozumiał naszą funkcję ale nic się nie będzie po prostu działo jak ją użyjemy. Do tego celu użyjemy pliku questlib.lua w którym dodamy kod źródłowy naszej funkcji. Wchodzimy ponownie do katalogu z questami /usr/rain/channel/share_data/locale/hongkong/quest/ Odnajdujemy tam plik o nazwie questlib.lua. Kopiujemy go na pulpit i otwieramy np. notepad ++ Wklejamy do niego taki kod: ------------------------------------------- ---------Funkcja Level By Bambus3k--------- ------------------------------------------- function pc.set_level(lev) if pc.getqf("__NEXT_LEVEL__") == 0 then pc.setqf("__NEXT_LEVEL__", 1) --------------- -- BugFix -- --------------- if pc.level >= lev then return end repeat pc.give_exp2(pc.get_next_exp()) until pc.level == lev end end Dodałem takie małe zabezpieczenie by się serwer nie bugował jak używamy kilkanaście razy tej funkcji.. Wtedy wszystko wariuje i mogą się zbugować mapy. Sprawdzałem kilka razy i już nie miałem żadnego błędu. Całość zapisujemy i wrzucamy z powrotem na serwer. ------------------------------------------------ ----------WYKORZYSTYWANIE---------- ------------------------------------------------ Prosty quest z wykorzystaniem nowej funkcji... --------------------------------------- -- METIN2 -- Login Quest By Bambus3k --------------------------------------- quest level begin state start begin when login begin if pc.getqf("eq_na_start") == 0 then pc.setqf("eq_na_start", 1) pc.set_level(5) -- 5 poziom na start. chat("Test Level: "..pc.get_name().." -> "..pc.level) end end end state __GOOD__ begin end end To będzie wszystko... =) Metin2 Balmora Staff Odnośnik do komentarza
norbox Opublikowano 2 Stycznia 2011 Udostępnij Opublikowano 2 Stycznia 2011 jak zawsze profesjonalnie i pięknie wielki + dla ciebie @edit co jak dałeś mi - to znaczy że to nie prawda? >.< jako jedyny takie coś napisał. Minecraft Odkrywca Wolfer:Lubie pieski:P Jeżeli jesteś człowiek to kliknij na obrazek: Odnośnik do komentarza
TopSecretMan Opublikowano 2 Stycznia 2011 Udostępnij Opublikowano 2 Stycznia 2011 Fajny temat. Masz + . sygna RMCF1902 Odnośnik do komentarza
Bambus3k™ Opublikowano 2 Stycznia 2011 Autor Udostępnij Opublikowano 2 Stycznia 2011 @norbox Nikomu nie daje minusów.. Poprawiłem bugfixa w tej funkcji.. =P Metin2 Balmora Staff Odnośnik do komentarza
Bednarski96 Opublikowano 2 Stycznia 2011 Udostępnij Opublikowano 2 Stycznia 2011 Zrob ANIME !!!!!! Odnośnik do komentarza
razornfs Opublikowano 2 Stycznia 2011 Udostępnij Opublikowano 2 Stycznia 2011 Zamiast pisać tuty, włączyłbyś lepiej anime.. ;s Odnośnik do komentarza
norbox Opublikowano 2 Stycznia 2011 Udostępnij Opublikowano 2 Stycznia 2011 @norbox Nikomu nie daje minusów.. Poprawiłem bugfixa w tej funkcji.. =P nie pisałem do ciebie tylko do tego co daje te minusy Minecraft Odkrywca Wolfer:Lubie pieski:P Jeżeli jesteś człowiek to kliknij na obrazek: Odnośnik do komentarza
NlSMO Opublikowano 2 Stycznia 2011 Udostępnij Opublikowano 2 Stycznia 2011 Bardzo się przyda, daje + @N30 Przestańcie spamować o AnimeMT2, bo to już się robi nudne, Bambus3k, bez urazy @Edit No i co za N00B minusuje :/ Odnośnik do komentarza
Loozakku. Opublikowano 2 Stycznia 2011 Udostępnij Opublikowano 2 Stycznia 2011 Wielkie dzięki, tego szukałem. Łap +. Odnośnik do komentarza
Hevan Opublikowano 2 Stycznia 2011 Udostępnij Opublikowano 2 Stycznia 2011 oj chyba wojtek do ciebie napisał żebyś zrobił tego questa bo mu na gg spamowałem Kliknij na plusik ;d Odnośnik do komentarza
Grzyb2p31 Opublikowano 16 Stycznia 2011 Udostępnij Opublikowano 16 Stycznia 2011 bardzo estetycznie i przejzyscie thx za wstawke przyda sie na 100% Zawsze promocje na sygnatury Odnośnik do komentarza
Rekomendowane odpowiedzi
Zarchiwizowany
Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.