• 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!

Debug przy logowaniu

soba

I ♥ Deep House .
Joined
May 10, 2009
Messages
183
Reaction score
5
Location
Bełchatów
Dobry mam problem otóż chciałem dodać żeby hp i mana było w procentach i żeby depo ludzie nie mogli zasypywać, ok na windowsie wszystko działa lecz na linuxie debian 6 wypier*ala mi debuga jak próbuje się zalogować na postać.

Ktoś miał podobny problem ? Dodam że podczas kompilacji nie było żadnego błędu.
 
No nie wiem jak wkleiłem ten poprzedni silnik to działa bez zarzutów, a po wgraniu tych % hp i many, zasypywanie depo już nie działa. W servermotd mam z 10 znaków więc nie wiem o co kaman z tym.

Dodawałem to http://otland.net/f502/jak-zablokowaae-zasypywanie-depo-i-domka-w-182912/ w game.cpp
Code:
// Anty zasypywanie depo
	if (!Position::areInRange<1,1,0>(playerPos, mapToPos))
	{
		if (toCylinder->getTile()->hasFlag(TILESTATE_DEPOT))
		{
			player->sendCancelMessage(RET_NOTPOSSIBLE);
			return false;                                                            
		}                                               
	}

i http://otland.net/f502/jak-wysya-aae-hp-i-manae-w-procentach-181560/ w protocolgame.cpp
Code:
if (player->getPlayerInfo(PLAYERINFO_MAXHEALTH) > 0)
	{
		msg->put<uint16_t>(uint16_t(player->getHealth() * 100 / player->getPlayerInfo(PLAYERINFO_MAXHEALTH)));
		msg->put<uint16_t>(100);
	}
	else
	{
		msg->put<uint16_t>(0);
		msg->put<uint16_t>(0);
	}
i
Code:
if (player->getPlayerInfo(PLAYERINFO_MAXMANA) > 0)
	{
		msg->put<uint16_t>(player->getPlayerInfo(PLAYERINFO_MANA) * 100 / player->getPlayerInfo(PLAYERINFO_MAXMANA));
		msg->put<uint16_t>(100);
	}
	else
	{
		msg->put<uint16_t>(0);
		msg->put<uint16_t>(0);
	}
 
Robiłem tak jak w poradniku czyli zamieniłem tę linijkę
Code:
msg->put<uint16_t>(player->getHealth());
	msg->put<uint16_t>(player->getPlayerInfo(PLAYERINFO_MAXHEALTH));
na to
Code:
if (player->getPlayerInfo(PLAYERINFO_MAXHEALTH) > 0)
	{
		msg->put<uint16_t>(uint16_t(player->getHealth() * 100 / player->getPlayerInfo(PLAYERINFO_MAXHEALTH)));
		msg->put<uint16_t>(100);
	}
	else
	{
		msg->put<uint16_t>(0);
		msg->put<uint16_t>(0);
	}
Ja to się na tym nie znam myślałem że obejdzie się bez błędów. Coś musi być w tych plikach skoro na windowsie działa pokazuje hp i mane w %, a na linuxie wywala debuga. :<

#Edit:
Problem naprawiony użyłem poradnika z tneta xD i zadziałało. Temat myślę że można zamknąć.
 
Last edited:
Back
Top