How To put a limit of STR for Asal ?

11/12/2012 09:31 Kailun1#1
Hello, on my server I would put a limit of STR at the asal to require that person to make full STA.
But I do not really know how to do it, I think it is in the AttackArbiter.cpp but I do not see how to do it if someone could advise me it would be nice.

Thanks you. :handsdown:
11/12/2012 10:12 alfredico#2
if(m_pAttacker->GetStr() > 100) { m_pAttacker->AddText("You have too many STR :("); return; }

???? This is stupid btw xd
11/12/2012 12:19 Jopsi332#3
Code:
	int STR = 0;
	STR = m_pAttacker->GetStr();
	if(STR > 100)
		STR = 100
	return ( ( ( STR/ 10 ) * dwSkillLevel ) * ( 5 + nMP / 10 ) + nAddDmg );
}
11/12/2012 17:56 N8Schatten#4
Wiso net so:
Code:
	int nMP = m_pAttacker->GetManaPoint();
	if( m_pAttacker->IsPlayer() && m_pAttacker->IsSMMode( SM_MAINTAIN_MP ) == FALSE )
		m_pAttacker->SetPointParam( DST_MP, 0 );
		int MaxDmg = 99999999999999999999999999999;
		if(MaxDmg < ( ( ( m_pAttacker->GetStr() / 10 ) * dwSkillLevel ) * ( 5 + nMP / 10 ) + nAddDmg )){
			return ( ( ( m_pAttacker->GetStr() / 10 ) * dwSkillLevel ) * ( 5 + nMP / 10 ) + nAddDmg );
		}
	return MaxDmg;
Einfach MaxDmg anpassen und schon is irgendwann schluss und der Schaden vom asal geht net mehr höher
11/12/2012 19:09 Jopsi332#5
int MaxDmg = 99999999999999999999999999999;

so hoch geht ein integer garnicht
11/12/2012 19:31 N8Schatten#6
Ist ja auch nur ein beispiel max dmg muss jeder selbst ensheiden wie hoch er es haben will
aber von mir aus:
Code:
	int nMP = m_pAttacker->GetManaPoint();
	if( m_pAttacker->IsPlayer() && m_pAttacker->IsSMMode( SM_MAINTAIN_MP ) == FALSE )
		m_pAttacker->SetPointParam( DST_MP, 0 );
		int MaxDmg = 2000000000;
		if(MaxDmg < ( ( ( m_pAttacker->GetStr() / 10 ) * dwSkillLevel ) * ( 5 + nMP / 10 ) + nAddDmg )){
			return ( ( ( m_pAttacker->GetStr() / 10 ) * dwSkillLevel ) * ( 5 + nMP / 10 ) + nAddDmg );
		}
	return MaxDmg;
11/13/2012 02:32 Xefiroid#7
returnt bzw. entfernt er dann nicht die formel wen Asal über dem wert des integers liegt?

Also wenn er über dies 20mio geht, macht er dann nicht 0 dmg bzw. kaum noch dmg?

Kann man es nicht auch so machen das wenn der dmg über 20mio is das er genau 20mio ist und nicht weniger?
11/13/2012 02:58 .Dafuq?#8
Quote:
Originally Posted by Jopsi332 View Post
int MaxDmg = 99999999999999999999999999999;

so hoch geht ein integer garnicht
Fragt sich warum du Trottel ein Integer für das saven von STR erstellst, wieder nur Speicher wasting, short tut es auch, oder denkst du man schafft ohne weiteres über 32.767 STR? ;)

Ihr denkt alle total Komplex, kann das sein? :o

Code:
short sStr = m_pAttacker->GetStr(); 
return ( ( ( ( (sStr / sStr ) * 100 )/ 10 ) * dwSkillLevel ) * ( 5 + nMP / 10 ) + nAddDmg );
Was macht ( sStr / sStr )? genau! ergibt 1, egal wie man es dreht und wendet, man erhält 1, nun das ganze * 100, anschließend / 10, man könnte es auch einfach so machen:

Code:
short sStr = m_pAttacker->GetStr(); 
return ( ( ( ( sStr / sStr ) * 10 ) * dwSkillLevel ) * ( 5 + nMP / 10 ) + nAddDmg );
somit hätte man das /10 weg.

Nun hätte man auch wenn man unter 100 STR hat immer 100 STR als rückgabe, damit wirken wir wie entgegen? genau!


Code:
short sStr = m_pAttacker->GetStr(); 
if( sStr >= 100 )
return ( ( ( ( sStr / sStr ) * 10 ) * dwSkillLevel ) * ( 5 + nMP / 10 ) + nAddDmg );
else
return ( ( ( sStr / 10 ) * dwSkillLevel ) * ( 5 + nMP / 10 ) + nAddDmg );
Einfach mal Logisch nachdenken leute..

Ps: Fuck Yea! :D

Mfg. Crasy
11/13/2012 18:50 Mognakor#9
Before i present my version i want to say that this thread is utterly stupid.

I wonder why noone here even got the idea of using a conditional expression but prefers to use a conditional statement...

However:

Code:
short AsalStr = GetStr();
	AsalStr= (AsalStr>100)?100:AsalStr;

	return ( ( ( STR/ 10 ) * dwSkillLevel ) * ( 5 + nMP / 10 ) + nAddDmg );