[Frage] Hitrate senken

02/28/2012 17:51 Quitnau#1
Hey Leute! :handsdown:

Ihr habt es sicher schon aus dem Titel geschlossen und der Gedanke war richtig!
Ich würde gerne wissen, wie man die Grundlegene Hitraten (der Jobs?) oder allgemein senken kann. Und falls es Source sein sollte, ob es auch eine Resource Alternativ gibt.

mfg quitnau :)
03/03/2012 13:32 Quitnau#2
Push :o
03/03/2012 15:29 Мarvin#3
propJob.inc kann man einiges einstellen.
Sonst würde mir afaik nichts anderes einfallen.
03/03/2012 17:23 Quitnau#4
Ne ist nicht in der propJob drin. =/
05/31/2012 12:21 Quitnau#5
Push
05/31/2012 18:36 .Trotex.#6
Meinst die Blockrate?

Wenn ja dann ist das in der ProbJob.inc drinne! Müsste die 3. Zahl von hinten sein!
Also in der dem Job entsprechenden klasse.. Musst du dann halt bei allen machen :O Einfach höher/tiefermachen.. demnach wird dann auch Hit/Blockrate höher bzw. teifer! :D
05/31/2012 19:40 Quitnau#7
Ich wollte eigentlich die Hitrate des Spielers (alle Jobs) senken. Ich weiß nicht ob es einen Befehl gibt, um die Blockrate von allen Mobs zu erhöhen, das würde natürlich auch gehen da hast du recht ^^
Aber das überall einzelnt zu machen ist glaub ich arg viel.
06/07/2012 22:16 Mognakor#8
Die Hitrate hängt soweit ich weiß von 2 Faktoren ab:

1. Hitrate durch Boni's, sprich Set+10 Accuracy etc. unter den Faktor kann die Hitrate nicht sinken egal was du machst, sprich mit Set+10 und Accuracy hast du auch bei Mobs die 1000 Level über dir sind mindestens 65% Hitrate.

2. Zu der Prozentuellen Hitrate kommt nochmal eine ziemlich wirre Berechnung abhängig von Level des Angreifers und Verteidigers sowie deren Dex und der Ausweichraten Boni's des Verteidigers. Hierbei wird als Hitrate die Dex des Angreifers und als Ausweichrate die Dex des Verteidiger geteilt durch 2 + Ausweichraten von Ringen oder z.B.: Ancient Bogen genommen.

Edit:
MoverParam.cpp
Code:
int CMover::GetParrying()
{
	if( IsPlayer() )
		return	( (int)( (GetDex() * 0.5f) + GetParam( DST_PARRY, m_nAdjParry ) ) );
	else
		return GetProp()->dwER;
}
MoverAttack.cpp
Code:
// Hit rating
int CMover::GetHR()
{
	if( IsPlayer() )
		return GetDex();
	else
		return GetProp()->dwHR;
}

BOOL CMover::GetAttackResult( CMover* pDefender, DWORD dwOption )
{
	if( m_dwMode & ONEKILL_MODE )
		return TRUE;
#ifdef __EVENTLUA_SPAWN
	if( IsPlayer() && pDefender->IsNPC() && prj.m_EventLua.IsEventSpawnMonster( pDefender->GetIndex() ) )
		return TRUE;
#endif // __EVENTLUA_SPAWN

	int nHitRate = 0;
	int nHR = GetHR();

	if( IsNPC() && pDefender->IsPlayer() )
	{
		nHitRate = (int)( ((nHR*1.5f) / (float)(nHR + pDefender->GetParrying())) * 2.0f *
			(GetLevel()*0.5f / (float)(GetLevel() + pDefender->GetLevel() * 0.3f )) * 100.0f );
	}
	else if( IsPlayer() && pDefender->IsNPC() )	// Player VS Monster
	{
		nHitRate = (int)(  ((nHR*1.6f) / (float)(nHR + pDefender->GetParrying())) * 1.5f * 
				   (GetLevel()*1.2f / (float)(GetLevel() + pDefender->GetLevel())) * 100.0f );

	}
	else
	{
#if __VER <= 9    // 	__PVPDEMAGE0608	//	9th PVP DEMAGE edit 
		nHitRate = (int)( ((nHR*1.6f) / (float)(nHR + pDefender->GetParrying())) * 1.2f * 0.6f * 100.0f );
#else //__PVPDEMAGE0608	//	9th PVP DEMAGE edit 
		nHitRate = (int)( ((nHR*1.6f) / (float)(nHR + pDefender->GetParrying())) * 1.2f * 
				   (GetLevel()*1.2f / (float)(GetLevel() + pDefender->GetLevel())) * 100.0f );
#endif	//__PVPDEMAGE0608	//	9th PVP DEMAGE edit 
	}
	nHitRate += GetAdjHitRate();

	if( nHitRate > 96 )
		nHitRate = 96;
	else if( nHitRate < MIN_HR )
		nHitRate = MIN_HR;

	return ( (int)( xRandom( 100 ) ) < nHitRate );
}
06/08/2012 13:11 Quitnau#9
Super, sogar mit Erklärung! :D
06/08/2012 14:47 Sedrika#10
#Closed auf wunsch des TEs