Skocz do zawartości

Wierzchowiec jak zrobic widocznosc od 0 pkt konia?

Opublikowano

Na starcie chciałbym od razu wchodzic na wierzchowca lecz jest tylko to możliwe kiedy mam 1 pkt konia, natomiast na starcie mam 0 pkt i kiedy wejde w pieczęć wierzchowca to jest on niewidoczny

image.png

Ale kiedy mam 1 pkt konia juz to jest widoczny wierzchowiec

image.png

Jak moge to zrobić żeby wierzchowiec był widoczny odrazu na starcie przy 0 pkt ?
A tez nie chce nadawac 1 pkt konia na start

Featured Replies

Opublikowano

Na pewno potrzebujemy informacji bazowej, czyli z jakiego rozwiązania systemu wierzchowców podążających za postacią korzystasz, bo w tym momencie nie mamy się do czego odnieść. Oryginalnie w źródle, nie istnieje takie rozwiązanie więc musi to być rozwiązanie jakiegoś twórcy. Pierwszym i najprostszym rozwiązaniem byłoby nadanie 1 poziomu konia na start, ale obstawiam że pisząc ten wątek nie wchodzi to w koncepcję Twojego serwera. Jeśli to rozwiązanie bazuje na systemie konnym i jest to rozszerzenie go to może wymagać wielu zmian w systemie o ile nie całkowite przepisanie.

Opublikowano
  • Autor
6 godzin temu, Sevence napisał(a):

Na pewno potrzebujemy informacji bazowej, czyli z jakiego rozwiązania systemu wierzchowców podążających za postacią korzystasz, bo w tym momencie nie mamy się do czego odnieść. Oryginalnie w źródle, nie istnieje takie rozwiązanie więc musi to być rozwiązanie jakiegoś twórcy. Pierwszym i najprostszym rozwiązaniem byłoby nadanie 1 poziomu konia na start, ale obstawiam że pisząc ten wątek nie wchodzi to w koncepcję Twojego serwera. Jeśli to rozwiązanie bazuje na systemie konnym i jest to rozszerzenie go to może wymagać wielu zmian w systemie o ile nie całkowite przepisanie.


System wierzchowców mam z Martysamy ale dodałem mounty od autora Mitachi
odsyłam do jego githuba -> https://github.com/Mitachi2611/m2-mount-like-horse
Może tak to tobie nakieruje @Sevence

  • 2 tygodnie później...
Opublikowano
W dniu 5.03.2025 o 21:58, Azurri napisał(a):


System wierzchowców mam z Martysamy ale dodałem mounty od autora Mitachi
odsyłam do jego githuba -> https://github.com/Mitachi2611/m2-mount-like-horse
Może tak to tobie nakieruje @Sevence

The answer may seem disconnected from the topic because it is multiple answers I have given to multiple people for similar problems, but there is all the information you need to solve your problem and also those you will encounter.

Many people are using this system and are asking me the same thing

There are a lot of if GetHorseLevel() <= 0 that doesn't allow you to call an horse, instead of editing each point, you can set the function returning minimum 1, or giving the level 1 in the give_basic_weapon (suggested).

But if you have a server where the horse is important and you want them to do missions to get it as well, but you still want them to be able to ride:
Replacing that line in Srcs-Server/game/src/horse_rider.h:

		BYTE		GetHorseLevel() const { return m_Horse.bLevel; }
		// to
		BYTE		GetHorseLevel() const { return m_Horse.bLevel ? m_Horse.bLevel : 1; }

Or check all the points and remove the ifs that does not allow you to ride (suggested).

About damage

You can do damage starting at horse level 11 (which translates to GetHorseGrade() == 1)

Grades translated in level:
0 = [Pony]
1 = [Medium]
2 = [Military]

Grade Num

Level From

Level To

0

0

10

1

11

20

2

21

30+


'Cause of this in Srcs-Server/game/src/pvp.cpp:

	if (pkChr->IsHorseRiding())
	{
		if (pkChr->GetHorseLevel() > 0 && 1 == pkChr->GetHorseGrade()) 
			return false;
	}

remove that if

Check under in the spoiler to understand where you can do the same client side;

Some people also asked me something like: "Ok I don't care about horse level, but my character need to be level X to deal damage from horses"
you can:

Spoiler

# Client
/// 1) go in Srcs-Client/UserInterface/macroDefines.h

// add:

#define ENABLE_HORSE_ATTACK_MIN_LEVEL

/// 2) go in Srcs-Client/UserInterface/InstanceBaseBattle.cpp

// search:

BOOL CInstanceBase::CanAttackHorseLevel()
{
	if (!IsMountingHorse())
		return FALSE;

	return m_kHorse.CanAttack();
}

// change like:

BOOL CInstanceBase::CanAttackHorseLevel()
{
	if (!IsMountingHorse())
		return FALSE;

	#ifdef ENABLE_HORSE_ATTACK_MIN_LEVEL
	return GetLevel() >= 20;
	#else
	return m_kHorse.CanAttack();
	#endif
}

# Server
/// 1) go in Srcs-Server/common/macroDefines.h

// add:

#define ENABLE_HORSE_ATTACK_MIN_LEVEL

/// 2) go in Srcs-Server/game/src/pvp.cpp

// search:

	if (pkChr->IsHorseRiding())
	{
		if (pkChr->GetHorseLevel() > 0 && 1 == pkChr->GetHorseGrade()) 
			return false;
	}

// change like:

	if (pkChr->IsHorseRiding())
	{
		#ifdef ENABLE_HORSE_ATTACK_MIN_LEVEL
		return pkChr->GetLevel() >= 20;
		#else
		if (pkChr->GetHorseLevel() > 0 && 1 == pkChr->GetHorseGrade()) 
			return false;
		#endif
	}

// Now you can change the 20 with the level you want as minimum level to deal damage from horse

  • Sevence zablokował(a) ten temat
Gość
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.