HLFE ToolTip kaputt ????

12/14/2011 02:14 yannickminecraft#1
[Only registered and activated users can see links. Click Here To Register...]

Wieso kommt das?
12/14/2011 02:58 Sedrika#2
nimm eine neue tooltip.cpp
12/14/2011 03:16 yannickminecraft#3
Quote:
Originally Posted by Sedrika View Post
nimm eine neue tooltip.cpp
Wow dann ist mein komplettes System weg??? Außerdem ist dafür die WndManager.cpp zuständig also pscht wenn man keine ahnung hat.
12/14/2011 03:24 Sedrika#4
Das was du da gemacht hast, nennst du system ? XD

Poste dovh deine Änderung...
12/14/2011 10:03 Jopsi332#5
sein system ist rare of, unique of oder so ähnlich hat mir jusay erzählt, also neue waffen arten oder so
12/14/2011 13:43 NoTime4You#6
jo stimmt und yannick lol wann warst da?;/ habe doch heute morgen or so erst screens gegeben^^ naja ka xD^^

edit: und xD sago warum soll er das system posten dann kann er es do glei releasen xD
12/14/2011 17:08 Krustenkäse#7
guck mal in deiner void CWndMgr::MakeToolTipText( CItemBase* pItemBase, CEditString& strEdit, int flag ) Funktion nach...
bis zum Aufruf von PutBaseItemOpt( pItemElem, &strEdit );
scheint ja alles zu funktionieren, ab da gibt er dann Mist bei dir aus...
Mein Tipp: lass dir den bis dahin erzeugten String per Error ausegeben und sieh dir das Ergebnis an :D vllt wirste daraus schleuer... aber weiterhelfen können wir dir nur, wenn du den Src postest, weil wir sonst nur raten können, wo der Fehler sein könnte^^
12/14/2011 17:29 yannickminecraft#8
Ich hab eh nicht erwaret das ihr mir helfen _KÖNNT_ xD. Habs nur aus langeweile gepostet und weil der Screen so lustig aussieht ^^

Aber wenn ihr es versuchen wollt:

Code:
int nOption[6][2];
....
....
//nOption wird mit daten gefüllt.
...
	for( int i = 0; i < sizeof(nOption); i++ )
	{		
		if( nOption[i][0] < 1 || nOption[i][1] < 1 ) continue;

		if( nOption[i][0] == DST_STAT_ALLUP )
		{
			str.Format( "\n%s%+d", FindDstString( DST_STR ), nOption[i][1] );
			strTemp = str;
			str.Format( "\n%s%+d", FindDstString( DST_DEX ), nOption[i][1] );
			strTemp += str;
			str.Format( "\n%s%+d", FindDstString( DST_INT ), nOption[i][1] );
			strTemp += str;
			str.Format( "\n%s%+d", FindDstString( DST_STA ), nOption[i][1] );
			strTemp += str;
		}
		else
		{
			if( IsDst_Rate( nOption[i][0] ) )
			{
				if( nOption[i][0] == DST_ATTACKSPEED )
					strTemp.Format( "\n%s %c%d%% ", FindDstString( nOption[i][0] ), ( nOption[i][1] > 0? '+': '-' ), ::abs( nOption[i][1] / 2 / 10 ) );
				else
					strTemp.Format( "\n%s %c%d%%", FindDstString( nOption[i][0] ), ( nOption[i][1] > 0? '+': '-' ), ::abs( nOption[i][1] ) );
			}
			else
			{
				strTemp.Format( "\n%s%+d", FindDstString( nOption[i][0] ), nOption[i][1] );
			}
		}

		pEdit->AddString( strTemp, dwItemColor[g_Option.m_nToolTipText].dwGeneral );
	}
12/14/2011 17:40 Krustenkäse#9
ich seh hier schon auf den ersten blick einen fehler :D
...haste dir mal überlegt, was mit dem operator sizeof() zurückgegeben wird?
die gesamte größe einer Variablen... das wäre hier dann
(sizeof(int)=4)*(6*2-->Array) also 48^^
du musst also for( int i=0;i<(sizeof(nOption)/2)/sizeof(int); i++ ) machen oder deine Daten in ne bessere Variablensorte packen wie zB eine Map, ein struct oder ein template (wobei ne map schon ein template ist):D

...außerdem ist das hier ne Sauerei:
Quote:
Ich hab eh nicht erwaret das ihr mir helfen _KÖNNT_ xD. Habs nur aus langeweile gepostet und weil der Screen so lustig aussieht ^^
...wenn du das net erwartest dann poste es nicht, denn die leute, die dir helfen können fühlen sich dadurch vor den kopf gestoßen...
12/14/2011 17:55 yannickminecraft#10
Quote:
Originally Posted by Krustenkäse View Post
die gesamte größe einer Variablen... das wäre hier dann
(sizeof(int)=4)*(6*2-->Array) also 48^^
Das habe ich schon befürchtet das er 6*2 die größe eines Integers returnt. Anderst könnte er ja überhauptnichtmal soviele Zeilen auf den Tooltip Rendern.

Konnte es leider nicht testen da ich nur den Source schreibe und Compiliere. Bei Tests bin ich wegen eines fehlenden PC's auf andere Leute angewiesen.

Aber für diese kleine Sache extra ein Vector usw? ;S

Quote:
Originally Posted by Krustenkäse View Post
...außerdem ist das hier ne Sauerei:
...wenn du das net erwartest dann poste es nicht, denn die leute, die dir helfen können fühlen sich dadurch vor den kopf gestoßen...
Ist ehrlich so. Was war die erste datei? nimm ne neue TOOLTIP datei lol. Am ende denken die noch ich hab ne DEFINE vergessen loool.

Du bist einer der wenigen der sich etwas auskennt.

//Scheise wenn man PHP im Kopf hat. Da wird bei sizeof() die Arraylänge returnt :'D


@Krustenkäse

Wie erklärst du dir denn das es denn keinen Array überlauf gibt? :D
Wenn die schleife 48x geloopt wird wird doch iwann nOption[10,11,12..] gecallt.
Er würde also auf einen Speicher versuchen zuzugreifen den es garnicht gibt.