Skocz do zawartości

Rzucanie umiejętności wzmacniających Szamana dla wszystkich graczy w grupie

Opublikowano

Cześć 🖐️

 

W patchu 17.5 na oficjalnym serwerze wprowadzono zmiany do umiejętności buffujących. Szaman rzucając buff na siebie, automatycznie buffuje teraz wszystkich członków swojej drużyny. Ta modyfikacja dodaje nową flagę 'PARTY' dla umiejętności. Postanowiłem rozszerzyć tę funkcjonalność. 

 

Moje rozwiązanie

Na globalnym serwerze umiejętności buffujące dla drużyny działają tylko w pobliżu. Moje rozszerzenie pozwala na rzucanie buffa dla graczy w grupie z dowolnego miejsca na mapie.

To rozwiązanie jest opcjonalnie do włączenia na makro 'ENABLE_PARTY_SKILL_FULL_MAP'

 

Przedstawienie rozwiązania

 

Implementacja

📁Lokalizacja pliku: 'common -> locale_inc.h'

 

Dodaj

🔐 Ukryta Treść 🔐

 

 

📁Lokalizacja pliku: 'game -> src -> skill.h'

 

🔎 Szukaj

🔐 Ukryta Treść 🔐

 

🔐 Ukryta Treść 🔐

 

Dodaj (na końcu listy u ciebie może ostania być inna)

🔐 Ukryta Treść 🔐

 

 

📁Lokalizacja pliku: 'game -> src -> char_skill.cpp'

 

🔎 Szukaj

🔐 Ukryta Treść 🔐

 

🔐 Ukryta Treść 🔐

 

♻️Zamień

🔐 Ukryta Treść 🔐

 

🔎 Szukaj

🔐 Ukryta Treść 🔐

 

Dodaj

🔐 Ukryta Treść 🔐

 

🔎 Szukaj

🔐 Ukryta Treść 🔐

 

🔐 Ukryta Treść 🔐

 

Dodaj

🔐 Ukryta Treść 🔐

 

🔎 Szukaj

🔐 Ukryta Treść 🔐

 

Dodaj

🔐 Ukryta Treść 🔐

 

 

📁Lokalizacja pliku: 'game -> src -> char.h'

 

🔎 Szukaj

🔐 Ukryta Treść 🔐

 

Dodaj

🔐 Ukryta Treść 🔐

 

 

🛠️ Modyfikacja struktury tabeli - 'skill_proto'

  1. Prawym przyciskiem myszy -> skill_proto -> Design Table, 
  2. Szukaj kolumny 'setFlag',
  3. W Values będziesz mieć wszystkie typy wyliczeniowe dostępnych flag,
  4. Na samym końcu dodajesz nową flagę o nazwie - PARTY

 

Mała uwaga, wszystkie typy muszą być zgodne z typami w źródle kolejność i ilość musi się zgadzać jeśli nie masz jakiejś dodanej, musisz ją dodać! 

 

🛠️ Modyfikacja rekordów w tabeli - 'skill_proto'

🔐 Ukryta Treść 🔐

 

 

📁Lokalizacja pliku: 'locale -> pl -> skill_desc.txt'

 

♻️Zamień (tylko rekordy dla tych umiejętności co podałem)

🔐 Ukryta Treść 🔐

Featured Replies

Opublikowano

Działamy 😄 Dziekuję!

Opublikowano

Super!

Opublikowano

Ło Panie!!!!!!!

To ty na mnie spojrzałeś 😄

Dzięki

Opublikowano

A jednak na całą mape zrobił 😁 dobra robota 👑

Opublikowano

Kurde, wczoraj śmigał system i dzisiaj również śmiga, lecz diametralnie nie działają mi inne skille, a wczoraj było okej bo nawet zabijałem postacie żeby buff gasł. image.png.e93ea32b14f26e9565e65a255b714ba3.png

Opublikowano

Ciekawe czy to już poprawione

Opublikowano
  • Autor
13 godzin temu, Drip-133 napisał(a):

Kurde, wczoraj śmigał system i dzisiaj również śmiga, lecz diametralnie nie działają mi inne skille, a wczoraj było okej bo nawet zabijałem postacie żeby buff gasł. 

Proszę więcej informacji na ten temat. Jakie umiejętności nie działają, co się konkretnie dzieje? Log, który podesłałeś wynika z braku obsługi flagi PARTY w bince możesz pominąć etap z dodawaniem w item_desc.txt tej flagi, wystarczy dodać ją w tabeli 'skill_proto' w bazie danych. Postaram się zaimplementować PARTY do binki i zaktualizuje temat. Ja podczas testów nie zauważyłem żadnych problemów. Możesz nagrać jakiś krótki filmik z tych błędów w innych umiejętnościach? Jesteś pewny, że zaimplementowałeś poprawnie kod? 

Opublikowano
4 godziny temu, Sevence napisał(a):

Proszę więcej informacji na ten temat. Jakie umiejętności nie działają, co się konkretnie dzieje? Log, który podesłałeś wynika z braku obsługi flagi PARTY w bince możesz pominąć etap z dodawaniem w item_desc.txt tej flagi, wystarczy dodać ją w tabeli 'skill_proto' w bazie danych. Postaram się zaimplementować PARTY do binki i zaktualizuje temat. Ja podczas testów nie zauważyłem żadnych problemów. Możesz nagrać jakiś krótki filmik z tych błędów w innych umiejętnościach? Jesteś pewny, że zaimplementowałeś poprawnie kod? 

Nie działa każdy skill prócz buffujących

Opublikowano
  • Autor

Z tego co mi wysłałeś na PW, źle dodałeś nie zmieniaj nic tylko dodaj jak w poradniku. 

Opublikowano

Zobaczmy czym się różni

  • 2 tygodnie później...
Opublikowano
  • Premium

thx

  • 5 miesięcy temu...
Opublikowano

Błąd jak kolega wyżej 🙂 

image.png

Dodałbyś poradnik jak dodać te PARTY do binki  ?:)

Opublikowano
10 minut temu, Sevence napisał(a):

@Burdavsky Nie ma potrzeby dodawania PARTY w binarce, wystarczy na serwerze. 

fakt masz racje , zrobiłem porządek w setFlags w skill proto i działa jak trzeba pozdrawiam z rodzinką 😄 

Opublikowano
W dniu 24.08.2024 o 14:44, Burdavsky napisał(a):

fakt masz racje , zrobiłem porządek w setFlags w skill proto i działa jak trzeba pozdrawiam z rodzinką 😄 

Mógłbyś podpowiedzieć co zrobiłeś? Mam ten sam błąd 🙂

 

Opublikowano
9 godzin temu, Fenczu napisał(a):

Mógłbyś podpowiedzieć co zrobiłeś? Mam ten sam błąd 🙂

 

Ale blad w sysser ? To nie dodawaj PARTY w skilldesc.txt a jeżeli chodzi ci o porządek w setflag to musisz sprawdzić czy w skillproto w setflag zgadza się z enum ESkillFlags , tak jak sevendejs napisał:

Mała uwaga, wszystkie typy muszą być zgodne z typami w źródle kolejność i ilość musi się zgadzać jeśli nie masz jakiejś dodanej, musisz ją dodać

Edytowane przez Burdavsky

Opublikowano

Dzięki za odpowiedź, źle sprawdziłem w źródle,teraz działa 🙂

Opublikowano

Pytanie teraz bo po dodaniu tego nie mogę buffać bez pt osób 😄 jakieś rozwiązanie tutaj znajdę:D

 

## edit 

Poprawiłem działa ale czy poprawnie nie wiem , może ktoś kto bardziej ogarnia się wypowie. 😄

 

Szukamy

bool CHARACTER::UseSkill(DWORD dwVnum, LPCHARACTER pkVictim, bool bUseGrandMaster)
else if (IS_SET(pkSk->dwFlag, SKILL_FLAG_PARTY))
	pkVictim = this;

 Zamieniamy na :

	if(GetParty()){
		if (IS_SET(pkSk->dwFlag, SKILL_FLAG_PARTY))
			pkVictim = this;
	}

oraz szukamy tez w UseSkill :

	else if (IS_SET(pkSk->dwFlag, SKILL_FLAG_PARTY))
		ComputeSkillParty(dwVnum, this);	

Zamieniamy na :

	else if (IS_SET(pkSk->dwFlag, SKILL_FLAG_PARTY) && GetParty())
		ComputeSkillParty(dwVnum, this);	

 

Testowałem u siebie bez grupy i w grupie buffa i nadaję bonusy ;D 

Jakby @Sevence  @KoYGeR @ARK rzucili okiem czy to ma prawo bytu to klasa ale ważne że działa 😄

Edytowane przez Burdavsky

Opublikowano
  • Programista
W dniu 1.09.2024 o 19:25, Burdavsky napisał(a):

Pytanie teraz bo po dodaniu tego nie mogę buffać bez pt osób 😄 jakieś rozwiązanie tutaj znajdę:D

 

## edit 

Poprawiłem działa ale czy poprawnie nie wiem , może ktoś kto bardziej ogarnia się wypowie. 😄

 

Szukamy

bool CHARACTER::UseSkill(DWORD dwVnum, LPCHARACTER pkVictim, bool bUseGrandMaster)
else if (IS_SET(pkSk->dwFlag, SKILL_FLAG_PARTY))
	pkVictim = this;

 Zamieniamy na :

	if(GetParty()){
		if (IS_SET(pkSk->dwFlag, SKILL_FLAG_PARTY))
			pkVictim = this;
	}

oraz szukamy tez w UseSkill :

	else if (IS_SET(pkSk->dwFlag, SKILL_FLAG_PARTY))
		ComputeSkillParty(dwVnum, this);	

Zamieniamy na :

	else if (IS_SET(pkSk->dwFlag, SKILL_FLAG_PARTY) && GetParty())
		ComputeSkillParty(dwVnum, this);	

 

Testowałem u siebie bez grupy i w grupie buffa i nadaję bonusy ;D 

Jakby @Sevence  @KoYGeR @ARK rzucili okiem czy to ma prawo bytu to klasa ale ważne że działa 😄

image.jpeg.ed8b2e257292225d9bbef7c0b1494416.jpeg

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.

Gość
Dodaj odpowiedź do tematu...