Chciałbym wam pokazać sposób na dodanie permanentnych lub czasowych bonusów dla postaci, na przykład z wykonanego zadania u biologa.
*** Na początek wejdźcie sobie w ten post, i wykonajcie to, co @Sevence podrzucił.
W dalszej części poradnika będziemy operować tylko na dwóch plikach (właściwie to jednym), jednym z nich będzie sam quest do którego chcemy dodać przyznawanie bonusu, a drugim będzie constants.cpp w source serwera (ten natomiast służy nam tylko do zerkanie jakie id ma dany bonus, nic w nim nie edytujemy).
Nie jest to tutorial odnośnie questów, także wrzucę Wam prosty quest, w którym sekundę po wejściu na serwer zostaje nam nadany bonus (a nawet dwa, jeden z id 72 to średnie obrażenia, a drugi id 1 to maks. ilość życia), na okres 60 lat. 😅
Otwieramy sobie wyżej wspomniany constants.cpp który znajduje się w source serwera.
i to w sumie tyle do czego nam się przyda plik constants.cpp, musimy po prostu z niego wyciągać identyfikatory bonusów które nas interesują, myślę, że są one nazwane dość zrozumiale.
Skoro już wiemy który identyfikator będzie nam potrzebny, przejdźmy do dodania odpowiedniej funkcji w quescie która sprawi, że po jej wykonaniu otrzymamy bonus czasowy/stały. Tak naprawdę to wszystkie te bonusy są czasowe, a wspominam tu o stałym, gdyż raczej żaden serwer nie będzie stał 60 lat, przyjmijmy więc, że to jest nasz stały czas.
Funkcję w quescie dodającą bonus dla postaci wywołujemy w ten sposób, poniżej wytłumaczona każda wartość, oczywiście modyfikujemy to sobie według potrzeb.
580 - unikalny identyfikator affectu. Każdy dodany "affect", czyli bonus postaci musi mieć inne id, w przeciwnym wypadku będą występować różne dziwne sytuacje, jak np. nadpisywanie tych bonusów, także gdy dodajemy to do questa, zerknijmy sobie w bazie danych czy już nie ma takiego id.
1 - id bonusu z pliku constants.cpp.
2000 - wartość bonusu.
60*60*24*365*60 - czas trwania bonusu w sekundach, w tym przykładzie jest podane 60 lat, uznajmy to więc za bonus stały. Gdybyśmy chcieli zrobić bonus na np. tydzień, zapiszemy to w ten sposób 60*60*24*7 (sekundy*minuty*godziny*dni).
Na koniec krótki przykład wykonania tej funkcji w quescie.
Po sekundzie od zalogowania na postać zostaną nam przypisane dwa bonusy stałe, jeden to średnie obrażenia o wartości 200%, drugi to maksymalne życie o wartości 2000.
Cześć! 👋
Chciałbym wam pokazać sposób na dodanie permanentnych lub czasowych bonusów dla postaci, na przykład z wykonanego zadania u biologa.
*** Na początek wejdźcie sobie w ten post, i wykonajcie to, co @Sevence podrzucił.
W dalszej części poradnika będziemy operować tylko na dwóch plikach (właściwie to jednym), jednym z nich będzie sam quest do którego chcemy dodać przyznawanie bonusu, a drugim będzie constants.cpp w source serwera (ten natomiast służy nam tylko do zerkanie jakie id ma dany bonus, nic w nim nie edytujemy).
Nie jest to tutorial odnośnie questów, także wrzucę Wam prosty quest, w którym sekundę po wejściu na serwer zostaje nam nadany bonus (a nawet dwa, jeden z id 72 to średnie obrażenia, a drugi id 1 to maks. ilość życia), na okres 60 lat. 😅
Otwieramy sobie wyżej wspomniany constants.cpp który znajduje się w source serwera.
i to w sumie tyle do czego nam się przyda plik constants.cpp, musimy po prostu z niego wyciągać identyfikatory bonusów które nas interesują, myślę, że są one nazwane dość zrozumiale.
Skoro już wiemy który identyfikator będzie nam potrzebny, przejdźmy do dodania odpowiedniej funkcji w quescie która sprawi, że po jej wykonaniu otrzymamy bonus czasowy/stały. Tak naprawdę to wszystkie te bonusy są czasowe, a wspominam tu o stałym, gdyż raczej żaden serwer nie będzie stał 60 lat, przyjmijmy więc, że to jest nasz stały czas.
Funkcję w quescie dodającą bonus dla postaci wywołujemy w ten sposób, poniżej wytłumaczona każda wartość, oczywiście modyfikujemy to sobie według potrzeb.
580 - unikalny identyfikator affectu. Każdy dodany "affect", czyli bonus postaci musi mieć inne id, w przeciwnym wypadku będą występować różne dziwne sytuacje, jak np. nadpisywanie tych bonusów, także gdy dodajemy to do questa, zerknijmy sobie w bazie danych czy już nie ma takiego id.
1 - id bonusu z pliku constants.cpp.
2000 - wartość bonusu.
60*60*24*365*60 - czas trwania bonusu w sekundach, w tym przykładzie jest podane 60 lat, uznajmy to więc za bonus stały. Gdybyśmy chcieli zrobić bonus na np. tydzień, zapiszemy to w ten sposób 60*60*24*7 (sekundy*minuty*godziny*dni).
Na koniec krótki przykład wykonania tej funkcji w quescie.
Po sekundzie od zalogowania na postać zostaną nam przypisane dwa bonusy stałe, jeden to średnie obrażenia o wartości 200%, drugi to maksymalne życie o wartości 2000.
Poradnik powstał dzięki @Sevence! 🍻