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

  • Odpowiedzi 28
  • Wyświetleń 439
  • 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
  • Rozwiązanie
w char.cpp 
 pod

#include "DragonSoul.h"

LPCHARACTER g_pkAllowUnmountZero = NULL;
DWORD g_dwAllowUnmountZeroUntil = 0;

static bool IsAllowUnmountZeroNow(LPCHARACTER ch)
{
	return (g_pkAllowUnmountZero == ch && get_dword_time() <= g_dwAllowUnmountZeroUntil);
}

potem
 void CHARACTER::MountVnum(DWORD vnum)
 całość podmień na to 

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

	if (vnum == 0 && IsRiding() && !IsAllowUnmountZeroNow(this))
	{
		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);
}


w item.cpp

pod #include "../../common/VnumHelper.h"

dodaj 
extern LPCHARACTER g_pkAllowUnmountZero;
extern DWORD g_dwAllowUnmountZeroUntil;

potem w funkcji CItem::ClearMountAttributeAndAffect()

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

	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);
}

przerób to na tą

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

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

	g_pkAllowUnmountZero = ch;
	g_dwAllowUnmountZeroUntil = get_dword_time() + 3000;

	ch->MountVnum(0);
	g_pkAllowUnmountZero = NULL;
	g_dwAllowUnmountZeroUntil = 0;

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

I przetestuj.

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.