Skocz do zawartości
Opublikowano
  • Programista

Dzisiaj coś nieco innego niż zwykle.

 

Ustawianie grupek potworów, czy też dropu nie należy do przyjemnych zajęć, a tym bardziej, gdy pomylimy się w kolejności ich ID co może powodować różne błędy.
Wychodząc naprzeciw skryptowi dość popularnego twórcy: 

🔐 Ukryta Treść 🔐

Postanowiłem nieco "rozbudować" CTextFileLoader i jednocześnie przyspieszyć pracę nad ustawianiem dropu czy też grupek potworów.

 

Na czym polega zmiana? Nie będę się rozpisywał, po prostu pokażę:
image.png.841e8be3d723332b45199bcdca7a6fb2.png

 

Oczywiście obsługiwane są oba typy formatowania/składni naszej konfiguracji żebyście nie musieli przerabiać wszystkieg od zera.

 

A zatem przejdźmy do działania.

 

Otwieramy plik: /common/CommonDefines.h lub /common/service.h

🔐 Ukryta Treść 🔐

 

 

Otwieramy plik: /game/src/item_manager_read_tables.h

🔐 Ukryta Treść 🔐

 

 

Otwieramy plik: /game/src/mob_manager.cpp

🔐 Ukryta Treść 🔐

 

 

Otwieramy plik: /game/src/text_file_loader.cpp

🔐 Ukryta Treść 🔐

 

 

Otwieramy plik: /game/src/text_file_loader.h

🔐 Ukryta Treść 🔐

 

 

To by było na tyle. Jeśli napotkacie jakieś błędy to piszcie. Ja jedynie sprawdziłem czy działa na grupy potworów. 

Featured Replies

Opublikowano
  • Autor
  • Programista

Tutaj dodatkowe rozwiązanie, myślę że też wygodne (zastosowane tylko do grup potworów):

jouKBHD.png

 

Otwieramy plik: /game/src/mob_manager.cpp

// Search for:
		sys_log(0, "GROUP: %-5d %s", iVnum, stName.c_str());
		sys_log(0, "               %s %s", pTok->at(0).c_str(), pTok->at(1).c_str());

// Add under:
		if (loader.GetTokenVector("mobs", &pTok))
		{
			for (const auto& data : *pTok)
			{
				uint32_t mob_vnum;
				str_to_number(mob_vnum, data.c_str());
				if (!Get(mob_vnum))
					continue;
				pkGroup->AddMember(mob_vnum);
			}

			loader.SetParentNode();
			m_map_pkMobGroup.emplace(iVnum, pkGroup);
			continue;
		}

 

Edytowane przez KoYGeR

Opublikowano

Klasa, fajnie że zrobiłeś poradnik bezpośrednio na forum. 👍 Brakuje tu tylko skryptu aby zrobić konwersję.

Opublikowano

Czyli dzięki temu mogę pozbyć się irytujących cyferek w mob_drop_item? 🤩

Dziękuje Szymon, niech bozia wynagrodzi w Euro i Dolarach

Edytowane przez mrvns

Opublikowano
  • Autor
  • Programista
6 minut temu, mrvns napisał(a):

Czyli dzięki temu mogę pozbyć się irytujących cyferek w mob_drop_item? 🤩

Dokładnie

Opublikowano

Kolejna fajna wstawka, trzeba doceniać każdego kto robi coś więcej jak przekleja zipa z turka ;)

Dzięki wielkie!

Edytowane przez HeskuGame

  • 4 tygodnie później...
Opublikowano

Fajnie jakby było przystosowane do innego typu dropu np. limit. 

Edytowane przez avertus

  • 2 tygodnie później...
Opublikowano

First of all, I greet you, and excuse me if I don't speak your language.

I wanted to point out that even though the mob_drop_item does not have indexes on the drops:

example with: 1 50300 1 400
example without: 50300 1 400

In the first case the item will be dropped normally, in the second case it will simply not be counted, even if you do not receive errors or crashes at startup.

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