Skocz do zawartości
Opublikowano

Witajcie!

 

Podczas niedawnego tworzenia zadania napotkałem na problem związany z funkcją 'd.count_monster()', która jest często używana w zadaniach do dungeonów. Funkcja ta ma za zadanie zliczanie potworów na danej mapie, a kiedy ich liczba spadnie do zera, aktywowany jest następny etap zadania. Jednakże odkryłem, że funkcja ta zlicza nie tylko potwory, ale również inne elementy, takie jak postacie graczy, zwierzęta czy wierzchowce. To prowadziło do nieprawidłowego działania zadań w niektórych przypadkach, uniemożliwiając przejście do kolejnych etapów. Postanowiłem podzielić się moim rozwiązaniem tego problemu.

 

Zmiany:

  • Zmieniłem nazwę zmiennej n -> monsterCount.
  • Zastosowałem 'static_cast' zamiast rzutowania w stylu C. 
  • Zainicjowałem zmienną monsterCount bezpośrednio w definicji klasy.
  • Zastąpiłem postinkrementację (n++) preinkrementacją ++monsterCount, które jest bardziej wydajne. 
  • Rozwiązałem błąd w którym zliczano wszystko co nie jest postacią na zliczanie tylko potworów oraz metinów. 

 

Rozwiązanie:

📁 Lokalizacja pliku: 'game-> dungeon.cpp'

 

 🔍 Szukaj

🔐 Ukryta Treść 🔐

 

♻️ Zamień:

🔐 Ukryta Treść 🔐

 

 🔍 Szukaj

🔐 Ukryta Treść 🔐

 

🔐 Ukryta Treść 🔐

 

♻️ Zamień:

🔐 Ukryta Treść 🔐

 

Featured Replies

Opublikowano

Dzięki !

Opublikowano

Dzięki! 🫡

Opublikowano

lux

  • 4 tygodnie później...
Opublikowano

Danke !

  • 2 tygodnie później...
Opublikowano

Dzięki!

  • 5 miesięcy temu...
Opublikowano

akurat bawię się z questem i akurat z tą funkcją 😄 no nic zobaczmy czy defaultowo było na 1.6 dograne czy nie ^^ 

 

EDIT:

No nic bug i tak nadal trwa, mianowicie od pokoleń jest tak:

Jeśli chcemy robić licznik z getf na d.count_monster() to po zabiciu "gromadki"(czyli np. 4 moby) to d.count_monster() zliczy jako 1 mob


informacje od siebie:

d.count_monster() można stosować przy loginie, np.:

	when login begin
		-- chat
		chat("Ilość mobów do zabicia: ", d.count_monster())	

		-- syschat
		syschat("Ilość mobów do zabicia: ", d.count_monster())

		-- d.notice
		d.notice("Ilość mobów do zabicia: "..(d.count_monster()).."")
	end

 

ale już do zliczania mobów preferuje standardowo jeśli to dung: d.setf, d.getf
tylko z getami najlepiej jak robić licznik na czacie to należy najlepiej zdefiniować lokalną liczbę mobów która będzie minusowana z setami/ getami

Edytowane przez HelpDev

Opublikowano

Dzięki 

 

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...