• There is NO official Otland's Discord server and NO official Otland's server list. The Otland's Staff does not manage any Discord server or server list. Moderators or administrator of any Discord server or server lists have NO connection to the Otland's Staff. Do not get scammed!

doMoveTo(Position target)

Oskar1121

Excellent OT User
Joined
Jul 15, 2009
Messages
632
Reaction score
532
Location
Poland
Znalazłem taką funkcję w npc.cpp
PHP:
void Npc::doMoveTo(Position target)
{
	std::list<Direction> listDir;
	if(!g_game.getPathToEx(this, target, listDir, 1, 1, true, true))
		return;

	startAutoWalk(listDir);
}
Przeniosłem ją do creature.cpp, by móc sobie z niej korzystać, ale zauważyłem, że nie działa w ogóle. Wie może ktoś co jest przyczyną takiego zachowania?
PHP:
void Creature::doMoveTo(Position target)
{
	std::list<Direction> listDir;
	if(!g_game.getPathToEx(this, target, listDir, 1, 1, true, true, g_config.getNumber(ConfigManager::DEFAULT_DESPAWNRADIUS)))
		return;

	startAutoWalk(listDir);
}
Teoretycznie powinno być dobrze, ale tak nie jest.
 
Błędów żadnych. Ani podczas kompilacji ani w grze. Sprawdzałem czy dokonują się te funkcje w silniku, po kolei wszystko doskonale współgra, ale wynik końcowy jest taki, że potwór chodzi tak samo jak chodził (dodam, że testuję godem, by potwór nie gonił za mną, a flagi mam ustawione tak, że potwór swobodnie się porusza).
 
To zależy od priorytetu chodzenia, np. jeśli postać gdy gubi cel, lub bo wcale nie ma to co jakiś czas szuka go na mapie i tworzy do niego trasę. Przez to np. twój autowalk może być wyłączany.

Nie jestem pewny, czy to jest teraz - ale w starych silnikach tak kiedyś było - nie wiem czy w theforgottenserver czy w otserv.
 
Testuję to GODem, z flagami, które umożliwiają swobodne poruszanie się potworów. Nasz monster nie posiada żadnego celu, chodzi normalnie, więc nie sądzę by miał jakiś priorytet.
 
Back
Top