Skocz do zawartości
Masz już aplikację Sharegon?

Odkryj wszystkie możliwości. Dowiedz się więcej

Sharegon.pl

Zainstaluj aplikację Sharegon i korzystaj z powiadomień push oraz licznika nowych aktywności bezpośrednio z ekranu głównego.

Aby zainstalować tę aplikację na iOS i iPadOS.
  1. Tap the Share icon in Safari
  2. Przewiń menu i stuknij Dodaj do ekranu początkowego.
  3. Stuknij Dodaj w prawym górnym rogu.
Zainstaluj aplikację Sharegon na Androidzie
  1. Otwórz Sklep Google Play na swoim smarfonie.
  2. Wyszukaj „Sharegon” w pasku wyszukiwania.
  3. Stuknij „Zainstaluj”, aby pobrać aplikację.

Problem z wierzchowcem po teleportacji zsiada i wsiada ponownie

Nieaktywny

Featured Replies

Rozwiązane przez Sasori

Przejdź do rozwiązania
  • Odpowiedzi 28
  • Wyświetleń 437
  • Dodano
  • Ostatniej odpowiedzi

Top użytkownicy w tym temacie

Najbardziej popularny wpis

  • Wtedy nie wsiadało, ale pieczęć zostawała w slocie, faktycznie było to spowodowane brakiem wpisów do special_item_group.txt, teraz wpisy mam, ale domyślnie na plikach TMP4 występuje błąd który staram

  • Jak śmiga to tak tylko wysyłanie logów wywal to już chyba wiesz co i jak. no i klasa odrobisz w polu :P

Najbardziej pomocny post

  • hmm void CHARACTER::MountVnum(DWORD vnum) { sys_log(0, "[MOUNTDBG] MountVnum CALL name=%s vid=%u new=%u old=%u map=%d riding=%d", GetName(), (DWORD)m_vid, (DWORD)vnum, (DWORD)m_dwMountVnum

  • Jak śmiga to tak tylko wysyłanie logów wywal to już chyba wiesz co i jak. no i klasa odrobisz w polu :P

Opublikowane grafiki

Opublikowano

Pokaż coś więcej w fusów wróżyć nie potrafimy chodzi ci o to ze po teleportacji schodzi i wchodzi na mounta?

Jakie pliki? Pokaż quest od mounta jeżeli jest na quescie robione.

Opublikowano
  • Autor
7 minut temu, Sasori napisał(a):

Pokaż coś więcej w fusów wróżyć nie potrafimy chodzi ci o to ze po teleportacji schodzi i wchodzi na mounta?

Jakie pliki? Pokaż quest od mounta jeżeli jest na quescie robione.

Tak, o to chodzi, TMP4, quest:

ride.quest

Opublikowano
  • Autor
7 minut temu, Sasori napisał(a):

Przetestuj

ride.quest

Tylko pamiętaj o wyczyszczeniu object.

Niestety, nie pomogło, folder object zmieniony na object_old i questcompile od nowa.

Opublikowano
  • Autor
7 minut temu, Sasori napisał(a):

Jest jakaś różnica reakcja? jakoś inaczej?

Nie, całość zachowuje się tak samo jak wcześniej.

@Sasori Błąd występuje domyślnie w plikach TMP4, właśnie to sprawdziłem.

Opublikowano
  • Autor

Kilka plików z source w których cokolwiek związane z mountami występuje, nie mam pojęcia co tam może być nie tak, wszystko wygląda na pierwszy rzut oka normalnie, chyba że coś przeoczyłem

src.zip

@Sasori Może znów uratujesz sprawę, zamknę tydzień dobrym progressem ;>

Edytowane przez mrszk4

Opublikowano
  • Autor
1 minutę temu, Sevence napisał(a):

A zobacz może ten temat:

Wtedy nie wsiadało, ale pieczęć zostawała w slocie, faktycznie było to spowodowane brakiem wpisów do special_item_group.txt, teraz wpisy mam, ale domyślnie na plikach TMP4 występuje błąd który staram się teraz rozwiązać

Opublikowano

Spróbuj tak, ale nie testowałem i nie obiecuje.

w char.cpp

podmień to 
void CHARACTER::MountVnum(DWORD vnum)
{
	if (m_dwMountVnum == vnum)
		return;

	m_dwMountVnum = vnum;
	m_dwMountTime = get_dword_time();

	if (m_bIsObserver)
		return;

	//NOTE : Mount한다고 해서 Client Side의 객체를 삭제하진 않는다.
	//그리고 서버Side에서 탔을때 위치 이동은 하지 않는다. 왜냐하면 Client Side에서 Coliision Adjust를 할수 있는데
	//객체를 소멸시켰다가 서버위치로 이동시키면 이때 collision check를 하지는 않으므로 배경에 끼거나 뚫고 나가는 문제가 존재한다.
	m_posDest.x = m_posStart.x = GetX();
	m_posDest.y = m_posStart.y = GetY();
	//EncodeRemovePacket(this);
	EncodeInsertPacket(this);

	ENTITY_MAP::iterator it = m_map_view.begin();

	while (it != m_map_view.end())
	{
		LPENTITY entity = (it++)->first;

		//Mount한다고 해서 Client Side의 객체를 삭제하진 않는다.
		//EncodeRemovePacket(entity);
		//if (!m_bIsObserver)
		EncodeInsertPacket(entity);

		//if (!entity->IsObserverMode())
		//	entity->EncodeInsertPacket(this);
	}

	SetValidComboInterval(0);
	SetComboSequence(0);

	ComputePoints();
}


na to 

void CHARACTER::MountVnum(DWORD vnum)
{
	if (m_dwMountVnum == vnum)
		return;

	m_dwMountVnum = vnum;
	m_dwMountTime = get_dword_time();

	if (m_bIsObserver)
		return;
	if (m_posWarp.x != 0 || m_posWarp.y != 0 || m_lWarpMapIndex != 0)
		return;

	m_posDest.x = m_posStart.x = GetX();
	m_posDest.y = m_posStart.y = GetY();
	EncodeInsertPacket(this);

	ENTITY_MAP::iterator it = m_map_view.begin();
	while (it != m_map_view.end())
	{
		LPENTITY entity = (it++)->first;
		
		EncodeInsertPacket(entity);
	}

	SetValidComboInterval(0);
	SetComboSequence(0);

	ComputePoints();
}

Przekompiluj game i przetestuj teleport.

Opublikowano
  • Autor
11 minut temu, Sasori napisał(a):

Spróbuj tak, ale nie testowałem i nie obiecuje.

w char.cpp

podmień to 
void CHARACTER::MountVnum(DWORD vnum){
	if (m_dwMountVnum == vnum)
		return;

	m_dwMountVnum = vnum;
	m_dwMountTime = get_dword_time();

	if (m_bIsObserver)
		return;

	//NOTE : Mount한다고 해서 Client Side의 객체를 삭제하진 않는다.
	//그리고 서버Side에서 탔을때 위치 이동은 하지 않는다. 왜냐하면 Client Side에서 Coliision Adjust를 할수 있는데
	//객체를 소멸시켰다가 서버위치로 이동시키면 이때 collision check를 하지는 않으므로 배경에 끼거나 뚫고 나가는 문제가 존재한다.
	m_posDest.x = m_posStart.x = GetX();
	m_posDest.y = m_posStart.y = GetY();
	//EncodeRemovePacket(this);
	EncodeInsertPacket(this);

	ENTITY_MAP::iterator it = m_map_view.begin();

	while (it != m_map_view.end())
	{
		LPENTITY entity = (it++)->first;

		//Mount한다고 해서 Client Side의 객체를 삭제하진 않는다.//EncodeRemovePacket(entity);//if (!m_bIsObserver)EncodeInsertPacket(entity);

		//if (!entity->IsObserverMode())//	entity->EncodeInsertPacket(this);
	}

	SetValidComboInterval(0);
	SetComboSequence(0);

	ComputePoints();
}


na to 

void CHARACTER::MountVnum(DWORD vnum){
	if (m_dwMountVnum == vnum)
		return;

	m_dwMountVnum = vnum;
	m_dwMountTime = get_dword_time();

	if (m_bIsObserver)
		return;
	if (m_posWarp.x != 0 || m_posWarp.y != 0 || m_lWarpMapIndex != 0)
		return;

	m_posDest.x = m_posStart.x = GetX();
	m_posDest.y = m_posStart.y = GetY();
	EncodeInsertPacket(this);

	ENTITY_MAP::iterator it = m_map_view.begin();
	while (it != m_map_view.end())
	{
		LPENTITY entity = (it++)->first;
		
		EncodeInsertPacket(entity);
	}

	SetValidComboInterval(0);
	SetComboSequence(0);

	ComputePoints();
}

Przekompiluj game i przetestuj teleport.

Podmieniłem, przekompilowałem gameclean -> gamecompile ale nic się nie zmieniło

Opublikowano

żadnego innego zachowania dzieje się na pewno tak samo ?

skoro tak to spróbuj tak

void CHARACTER::MountVnum(DWORD vnum)
{
	if (m_dwMountVnum == vnum)
		return;

	m_dwMountVnum = vnum;
	m_dwMountTime = get_dword_time();

	if (m_bIsObserver)
		return;

	if (m_posWarp.x != 0 || m_posWarp.y != 0 || m_lWarpMapIndex != 0)
		return;

	TPacketGCCharacterUpdate pack;
	memset(&pack, 0, sizeof(pack));

	pack.header = HEADER_GC_CHARACTER_UPDATE;
	pack.dwVID = m_vid;

	pack.awPart[CHR_EQUIPPART_ARMOR]  = GetPart(PART_MAIN);
	pack.awPart[CHR_EQUIPPART_WEAPON] = GetPart(PART_WEAPON);
	pack.awPart[CHR_EQUIPPART_HEAD]   = GetPart(PART_HEAD);
	pack.awPart[CHR_EQUIPPART_HAIR]   = GetPart(PART_HAIR);

	pack.bMovingSpeed = GetLimitPoint(POINT_MOV_SPEED);
	pack.bAttackSpeed = GetLimitPoint(POINT_ATT_SPEED);

	pack.bStateFlag = m_bAddChrState;
	pack.dwAffectFlag[0] = m_afAffectFlag.bits[0];
	pack.dwAffectFlag[1] = m_afAffectFlag.bits[1];

	pack.dwGuildID = 0;
	if (GetGuild())
		pack.dwGuildID = GetGuild()->GetID();

	pack.sAlignment = m_iAlignment / 10;
	pack.bPKMode = m_bPKMode;

	pack.dwMountVnum = GetMountVnum();

	if (GetDesc())
		GetDesc()->Packet(&pack, sizeof(pack));
		
	for (ENTITY_MAP::iterator it = m_map_view.begin(); it != m_map_view.end(); ++it)
	{
		LPENTITY ent = it->first;
		if (!ent || !ent->IsType(ENTITY_CHARACTER))
			continue;

		LPCHARACTER ch = (LPCHARACTER) ent;
		if (!ch->GetDesc())
			continue;

		ch->GetDesc()->Packet(&pack, sizeof(pack));
	}

	SetValidComboInterval(0);
	SetComboSequence(0);

	ComputePoints();
}
Opublikowano

JEŻELI DALEJ bedzie to samo to dopiszemy kod z małym logiem i sprawdzimy jaki pakiet jest wysyłany po teleporcie

Opublikowano
w horse_rider.cpp



bool CHorseRider::StopRiding()
{
	sys_log(0,
		"[MOUNTDBG] CHorseRider::StopRiding name=%s horseRiding=%d horseLv=%d stamina=%d",
		m_pChar ? m_pChar->GetName() : "<null>",
		IsHorseRiding() ? 1 : 0,
		GetHorseLevel(),
		(int)GetHorseStamina()
	);

	if (!m_Horse.bRiding)
		return false;

	m_Horse.bRiding = false;
	StartStaminaRegenEvent();
	return true;
}







w item.cpp 

void CItem::ClearMountAttributeAndAffect()
{
	LPCHARACTER ch = GetOwner();
	if (!ch)
		return;

	sys_log(0,
		"[MOUNTDBG] ClearMountAttributeAndAffect owner=%s itemVnum=%u map=%d riding=%d mount=%u",
		ch->GetName(),
		GetVnum(),
		ch->GetMapIndex(),
		ch->IsRiding() ? 1 : 0,
		ch->GetMountVnum()
	);

	ch->RemoveAffect(AFFECT_MOUNT);
	ch->RemoveAffect(AFFECT_MOUNT_BONUS);

	ch->MountVnum(0);

	ch->PointChange(POINT_ST, 0);
	ch->PointChange(POINT_DX, 0);
	ch->PointChange(POINT_HT, 0);
	ch->PointChange(POINT_IQ, 0);
}




w char.cpp 

void CHARACTER::MountVnum(DWORD vnum)
{
	sys_log(0,
		"[MOUNTDBG] MountVnum CALL name=%s vid=%u new=%u old=%u map=%d riding=%d warp=(%ld,%ld,%ld)",
		GetName(), m_vid, vnum, m_dwMountVnum, GetMapIndex(),
		IsRiding() ? 1 : 0,
		m_posWarp.x, m_posWarp.y, m_lWarpMapIndex
	);

	if (m_dwMountVnum == vnum)
	{
		sys_log(0, "[MOUNTDBG] MountVnum SKIP same");
		return;
	}

	m_dwMountVnum = vnum;
	m_dwMountTime = get_dword_time();

	if (m_bIsObserver)
	{
		sys_log(0, "[MOUNTDBG] MountVnum RETURN observer");
		return;
	}

	// Jeśli jesteśmy w trakcie warpa – tylko zapamiętaj wartość.
	// Insert po Show() i tak przyjdzie.
	if (m_posWarp.x != 0 || m_posWarp.y != 0 || m_lWarpMapIndex != 0)
	{
		sys_log(0, "[MOUNTDBG] MountVnum RETURN during-warp");
		return;
	}

	// Zamiast reinserta (który daje efekt zsiadania/wsiadania)
	// wysyłamy normalny update z dwMountVnum.
	TPacketGCCharacterUpdate pack;
	memset(&pack, 0, sizeof(pack));

	pack.header = HEADER_GC_CHARACTER_UPDATE;
	pack.dwVID = m_vid;

	pack.awPart[CHR_EQUIPPART_ARMOR]  = GetPart(PART_MAIN);
	pack.awPart[CHR_EQUIPPART_WEAPON] = GetPart(PART_WEAPON);
	pack.awPart[CHR_EQUIPPART_HEAD]   = GetPart(PART_HEAD);
	pack.awPart[CHR_EQUIPPART_HAIR]   = GetPart(PART_HAIR);

	pack.bMovingSpeed = GetLimitPoint(POINT_MOV_SPEED);
	pack.bAttackSpeed = GetLimitPoint(POINT_ATT_SPEED);

	pack.bStateFlag = m_bAddChrState;
	pack.dwAffectFlag[0] = m_afAffectFlag.bits[0];
	pack.dwAffectFlag[1] = m_afAffectFlag.bits[1];

	pack.dwGuildID = GetGuild() ? GetGuild()->GetID() : 0;
	pack.sAlignment = m_iAlignment / 10;
	pack.bPKMode = m_bPKMode;

	pack.dwMountVnum = GetMountVnum();

	sys_log(0,
		"[MOUNTDBG] MountVnum UPDATE send name=%s mountNow=%u",
		GetName(), pack.dwMountVnum
	);

	if (GetDesc())
		GetDesc()->Packet(&pack, sizeof(pack));

	for (ENTITY_MAP::iterator it = m_map_view.begin(); it != m_map_view.end(); ++it)
	{
		LPENTITY ent = it->first;
		if (!ent || !ent->IsType(ENTITY_CHARACTER))
			continue;

		LPCHARACTER ch = (LPCHARACTER)ent;
		if (!ch->GetDesc())
			continue;

		ch->GetDesc()->Packet(&pack, sizeof(pack));
	}

	SetValidComboInterval(0);
	SetComboSequence(0);
	ComputePoints();
}

kompiluj tepnij sie na mountcie i pokaż logi z

[MOUNTDBG] MountVnum CALL ...

[MOUNTDBG] CHorseRider::StopRiding ... jak wyskoczy

[MOUNTDBG] ClearMountAttributeAndAffect ... jak wyskoczy

Opublikowano
  • Autor

@Sasori

// Zmieniłem m_vid na (DWORD)m_vid

horse_rider.cpp:204 undeclared identifier m_pChar ->

usunałęm m_pChar ? m_pChar->GetName() : "<null>", --- nie mam tego w horse_rider.h

To było pierwotnie:



void CHARACTER::MountVnum(DWORD vnum)
{
	if (m_dwMountVnum == vnum)
		return;

	m_dwMountVnum = vnum;
	m_dwMountTime = get_dword_time();

	if (m_bIsObserver)
		return;

	//NOTE : Mount한다고 해서 Client Side의 객체를 삭제하진 않는다.
	//그리고 서버Side에서 탔을때 위치 이동은 하지 않는다. 왜냐하면 Client Side에서 Coliision Adjust를 할수 있는데
	//객체를 소멸시켰다가 서버위치로 이동시키면 이때 collision check를 하지는 않으므로 배경에 끼거나 뚫고 나가는 문제가 존재한다.
	m_posDest.x = m_posStart.x = GetX();
	m_posDest.y = m_posStart.y = GetY();
	//EncodeRemovePacket(this);
	EncodeInsertPacket(this);

	ENTITY_MAP::iterator it = m_map_view.begin();

	while (it != m_map_view.end())
	{
		LPENTITY entity = (it++)->first;

		//Mount한다고 해서 Client Side의 객체를 삭제하진 않는다.
		//EncodeRemovePacket(entity);
		//if (!m_bIsObserver)
		EncodeInsertPacket(entity);

		//if (!entity->IsObserverMode())
		//	entity->EncodeInsertPacket(this);
	}

	SetValidComboInterval(0);
	SetComboSequence(0);

	ComputePoints();
}

A teraz po zastosowanym bloku podanym przez ciebie w char.cpp i reszcie postać wgl. nie wchodzi na mounta, jedynie montuje się pieczęć i mam w sys_log:

Jan 17 12:57:46 :: MARK_SERVER: Login
Jan 17 12:57:46 :: QUEST_LOAD: Login pc 5 by event
Jan 17 12:57:46 :: AddAffect Arth type 221 apply 109 20118 flag 0 duration 1672440
Jan 17 12:57:46 :: [MOUNTDBG] MountVnum CALL name=Arth vid=24384 new=20118 old=0 map=1 riding=0 warp=(0,0,0)
Jan 17 12:57:46 :: [MOUNTDBG] MountVnum UPDATE send name=Arth mountNow=20118
Jan 17 12:57:46 :: [MOUNTDBG] MountVnum CALL name=Arth vid=24384 new=20118 old=20118 map=1 riding=1 warp=(0,0,0)
Jan 17 12:57:46 :: [MOUNTDBG] MountVnum SKIP same
Jan 17 12:57:46 :: AddAffect Arth type 533 apply 115 10 flag 0 duration 1672440
Jan 17 12:57:46 :: [MOUNTDBG] MountVnum CALL name=Arth vid=24384 new=0 old=20118 map=1 riding=1 warp=(0,0,0)
Jan 17 12:57:46 :: [MOUNTDBG] MountVnum UPDATE send name=Arth mountNow=0
Jan 17 12:57:46 :: [MOUNTDBG] MountVnum CALL name=Arth vid=24384 new=20118 old=0 map=1 riding=0 warp=(0,0,0)
Jan 17 12:57:46 :: [MOUNTDBG] MountVnum UPDATE send name=Arth mountNow=20118
Jan 17 12:57:46 :: [MOUNTDBG] MountVnum CALL name=Arth vid=24384 new=20118 old=20118 map=1 riding=1 warp=(0,0,0)
Jan 17 12:57:46 :: [MOUNTDBG] MountVnum SKIP same
Jan 17 12:57:53 :: GLOBAL_TIME: Jan 17 12:57:53 time_gap 0
Jan 17 12:58:53 :: GLOBAL_TIME: Jan 17 12:58:53 time_gap 0
SYSERR: Jan 17 12:59:04 :: hupsig: SIGHUP, SIGINT, SIGTERM signal has been received. shutting down.
Jan 17 12:59:04 :: <shutdown> Starting...
Jan 17 12:59:04 :: <shutdown> Destroying CArenaManager...
Jan 17 12:59:04 :: ARENA: ArenaMap will be destroy. mapIndex(112)
Jan 17 12:59:04 :: ARENA: End Duel PID_A(0) vs PID_B(0)
Jan 17 12:59:04 :: ARENA: End Duel PID_A(0) vs PID_B(0)
Jan 17 12:59:04 :: ARENA: End Duel PID_A(0) vs PID_B(0)
Jan 17 12:59:04 :: ARENA: End Duel PID_A(0) vs PID_B(0)
Jan 17 12:59:04 :: <shutdown> Destroying COXEventManager...
Jan 17 12:59:04 :: <shutdown> Disabling signal timer...
Jan 17 12:59:04 :: <shutdown> Shutting down CHARACTER_MANAGER...
Jan 17 12:59:04 :: DISCONNECT: Arth (GracefulShutdown)
Jan 17 12:59:04 :: SAVE: Arth 469531x964187
Jan 17 12:59:04 :: QUEST clear timer 0
Jan 17 12:59:04 :: [MOUNTDBG] ClearMountAttributeAndAffect owner=Arth itemVnum=71128 map=1 riding=1 mount=20118
Jan 17 12:59:04 :: [MOUNTDBG] MountVnum CALL name=Arth vid=24384 new=0 old=20118 map=1 riding=1 warp=(0,0,0)
Jan 17 12:59:04 :: [MOUNTDBG] MountVnum UPDATE send name=Arth mountNow=0

Edytowane przez mrszk4

Opublikowano

ok teraz widać ze coś z affect

zrób teraz tak

void CHARACTER::MountVnum(DWORD vnum)
{
	sys_log(0,
		"[MOUNTDBG] MountVnum CALL name=%s vid=%u new=%u old=%u map=%d riding=%d special=%u warp=(%ld,%ld,%ld)",
		GetName(),
		(DWORD)m_vid,
		(DWORD)vnum,
		(DWORD)m_dwMountVnum,
		GetMapIndex(),
		IsRiding() ? 1 : 0,
		(DWORD)GetSpecialRideVnum(),
		(long)m_posWarp.x,
		(long)m_posWarp.y,
		(long)m_lWarpMapIndex
	);
	
	if (vnum == 0 && GetSpecialRideVnum() != 0)
	{
		sys_log(0,
			"[MOUNTDBG] MountVnum SKIP unmount-to-0 (special still active) special=%u current=%u",
			(DWORD)GetSpecialRideVnum(),
			(DWORD)m_dwMountVnum
		);
		return;
	}

	if (m_dwMountVnum == vnum)
	{
		sys_log(0, "[MOUNTDBG] MountVnum SKIP same");
		return;
	}

	m_dwMountVnum = vnum;
	m_dwMountTime = get_dword_time();

	if (m_bIsObserver)
	{
		sys_log(0, "[MOUNTDBG] MountVnum RETURN observer");
		return;
	}

	m_posDest.x = m_posStart.x = GetX();
	m_posDest.y = m_posStart.y = GetY();

	EncodeInsertPacket(this);

	ENTITY_MAP::iterator it = m_map_view.begin();
	while (it != m_map_view.end())
	{
		LPENTITY entity = (it++)->first;
		EncodeInsertPacket(entity);
	}

	SetValidComboInterval(0);
	SetComboSequence(0);

	ComputePoints();

	sys_log(0, "[MOUNTDBG] MountVnum DONE now=%u", (DWORD)m_dwMountVnum);
}

i wklej MOUNTDBG z momentu teleporta

Opublikowano

hmm

void CHARACTER::MountVnum(DWORD vnum)
{
	sys_log(0,
		"[MOUNTDBG] MountVnum CALL name=%s vid=%u new=%u old=%u map=%d riding=%d",
		GetName(),
		(DWORD)m_vid,
		(DWORD)vnum,
		(DWORD)m_dwMountVnum,
		GetMapIndex(),
		IsRiding() ? 1 : 0
	);

	if (vnum == 0 && IsRiding())
	{
		sys_log(0,
			"[MOUNTDBG] MountVnum IGNORE unmount-to-0 while riding (blink fix)"
		);
		return;
	}

	if (m_dwMountVnum == vnum)
	{
		sys_log(0, "[MOUNTDBG] MountVnum SKIP same");
		return;
	}

	m_dwMountVnum = vnum;
	m_dwMountTime = get_dword_time();

	if (m_bIsObserver)
		return;
		
	m_posDest.x = m_posStart.x = GetX();
	m_posDest.y = m_posStart.y = GetY();

	EncodeInsertPacket(this);

	ENTITY_MAP::iterator it = m_map_view.begin();
	while (it != m_map_view.end())
	{
		LPENTITY entity = (it++)->first;
		EncodeInsertPacket(entity);
	}

	SetValidComboInterval(0);
	SetComboSequence(0);

	ComputePoints();

	sys_log(0, "[MOUNTDBG] MountVnum DONE now=%u", (DWORD)m_dwMountVnum);
}
Opublikowano
  • Autor

No i teraz jest elegancko szefie ;)

Całość działa tak jak powinna. Dzięki za pomoc!

Jan 17 13:45:46 :: GMC guild_name Admin
Jan 17 13:45:46 :: GMC master 5
Jan 17 13:45:46 :: SHOW: Arth 469300x964200x0
Jan 17 13:45:46 :: reallocating buffer to 8192, current 1024
Jan 17 13:45:46 :: AddAffect Arth type 215 apply 0 0 flag 28 duration 5
Jan 17 13:45:46 :: ENTERGAME: Arth 469300x964200x0 10.212.144.158 map_index 1
Jan 17 13:45:46 :: HORSE STAMINA CONSUME EVENT CANCEL 0x0
Jan 17 13:45:46 :: HORSE STAMINA REGEN EVENT CREATE 0x353a5280
Jan 17 13:45:46 :: SendLandList map 1 count 18 elem_size: 432
Jan 17 13:45:46 :: AddAffect Arth type 500 apply 0 0 flag 0 duration 282564855
Jan 17 13:45:46 :: PREMIUM: Arth type 0 282564855min
Jan 17 13:45:46 :: AddAffect Arth type 501 apply 0 0 flag 0 duration 282564855
Jan 17 13:45:46 :: PREMIUM: Arth type 1 282564855min
Jan 17 13:45:46 :: AddAffect Arth type 502 apply 0 0 flag 0 duration 282564855
Jan 17 13:45:46 :: PREMIUM: Arth type 2 282564855min
Jan 17 13:45:46 :: AddAffect Arth type 503 apply 0 0 flag 0 duration 282564855
Jan 17 13:45:46 :: PREMIUM: Arth type 3 282564855min
Jan 17 13:45:46 :: AddAffect Arth type 504 apply 0 0 flag 0 duration 282564855
Jan 17 13:45:46 :: PREMIUM: Arth type 4 282564855min
Jan 17 13:45:46 :: AddAffect Arth type 505 apply 0 0 flag 0 duration 282564855
Jan 17 13:45:46 :: PREMIUM: Arth type 5 282564855min
Jan 17 13:45:46 :: AddAffect Arth type 506 apply 0 0 flag 0 duration 282564855
Jan 17 13:45:46 :: PREMIUM: Arth type 6 282564855min
Jan 17 13:45:46 :: VERSION CHECK 1215955205 1215955205 1215955205 1215955205
Jan 17 13:45:46 :: SYSTEM: new connection from [10.212.144.158] fd: 20 handshake 498988763 output input_len 0, ptr 0x21e02600
Jan 17 13:45:46 :: SYSTEM: closing socket. DESC #18
Jan 17 13:45:46 :: MARK_SERVER: Login
Jan 17 13:45:46 :: QUEST_LOAD: Login pc 5 by event
Jan 17 13:45:46 :: AddAffect Arth type 221 apply 109 20118 flag 0 duration 1670760
Jan 17 13:45:46 :: [MOUNTDBG] MountVnum CALL name=Arth vid=24384 new=20118 old=0 map=1 riding=0
Jan 17 13:45:46 :: [MOUNTDBG] MountVnum CALL name=Arth vid=24384 new=20118 old=20118 map=1 riding=1
Jan 17 13:45:46 :: [MOUNTDBG] MountVnum SKIP same
Jan 17 13:45:46 :: [MOUNTDBG] MountVnum DONE now=20118
Jan 17 13:45:46 :: AddAffect Arth type 533 apply 115 10 flag 0 duration 1670760
Jan 17 13:45:46 :: [MOUNTDBG] MountVnum CALL name=Arth vid=24384 new=0 old=20118 map=1 riding=1
Jan 17 13:45:46 :: [MOUNTDBG] MountVnum IGNORE unmount-to-0 while riding (blink fix)
Jan 17 13:45:57 :: GLOBAL_TIME: Jan 17 13:45:57 time_gap 0
Opublikowano
  • Autor

@Sasori Właśnie zauważyłem jeszcze teraz, że po warpie postać siedzi, ale gdy ściągnę pieczęć siedzi nadal, a gdy próbuje ją założyć, pisze że postać siedzi na koniu, CTRL+G działa tylko przy wsiadaniu, po wejściu na mounta nie da się zejść poprzez GUI ani CTRL+G/H, po warpie ze ściągniętą pieczęcią postać nie siedzi na mouncie, z włożoną teleportuje się na mouncie.

Gość
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.

Konto

Nawigacja

Skonfiguruj powiadomienia push w przeglądarce.

Chrome (Android)
  1. Stuknij ikonę kłódki obok paska adresu.
  2. Wybierz Uprawnienia → Powiadomienia.
  3. Dostosuj swoje preferencje.
Chrome (Desktop)
  1. Kliknij ikonę kłódki na pasku adresu.
  2. Wybierz Ustawienia witryny.
  3. Znajdź Powiadomienia i dostosuj swoje preferencje.