[Src-Release] Floating Mask's

05/07/2012 14:44 Unleashed!#1
Hey,
heute war mir mal wieder danach, euch was zu geben und zwar die so genannten Floating Mask's. Wer nicht weiß, was das ist, siehe hier: [Only registered and activated users can see links. Click Here To Register...] (Sobald man die Maske trägt und man sich in der Angriffststellung befindet, "schwebt" man wie ein Psykeeper/Mentalist, der einen Wand trägt über den Boden.
Ist kein großer/sonderlich toller release, aber da das ganze hier im Moment für meiner Meinung nach viel zu hohe Beträge verkauft wird, release ich jetzt mal den Teil mit dem Fliegen, welchen ich selber gecodet habe und nicht von irgendwem anderes stammt (Ich nenne mal keine Namen). Wegen der Positionierung der Models müsst ihr dann halt selber gucken oder ihr nehmt einfach eine "normale" Maske ;D
Es kann sein, dass durch das Fliegen irgendwelche Bugs bei Skills entstehen, müsst ihr mal gucken, getestet habe ich das ganze nur mit Slayer/Blade und einem Vagranten. ^^
Ich habe mir mal die Freiheit genommen und den Code komplett auskommentiert, damit ihr auch versteht, was ihr da bei euch einbaut.

Zum Code:

defineItemKind.h im Source und in den Files:
Unter
Code:
#define IK3_BARUNA_RANDOMOPTION_INIT		191
Fügt ihr das ein:
Code:
#define IK3_FLYMASK				192 //Neuer ItemKind um die Maske nachher im Code zu "erkennen"
Und ändert das
Code:
#define MAX_ITEM_KIND3			192
Zu:
Code:
#define MAX_ITEM_KIND3		        193 //Maximale ItemKind's anheben, um Platz für IK3_FLYMASK zu schaffen.
Mover.cpp im Source:
Unter
Code:
		if( !IsPlayer() || ( IsPlayer() && 
			( nIndex == MI_MALE || 
			  nIndex == MI_FEMALE || 
			  nIndex == MI_CROWNIBLIS || 
			  nIndex == MI_CROWNSHADE || 
			  nIndex == MI_CROWNBUBBLE || 
			  nIndex == MI_DWARPETMAS ) ) )  
		{
Das einfügen:
Code:
#ifdef __FLYING_MASK
				if( GetEquipItem(PARTS_MASK) && GetEquipItem(PARTS_MASK)->GetProp()->dwItemKind3 == IK3_FLYMASK ) //Überprüft, ob es sich bei dem Item im MASK Slot um ein Item vom Typ IK3_FLYMASK handelt.
					dwMotion += MTI_STAND_11; //Fügt Psykeeper "Schweben" zur dwMotion hinzu.
				else //Falls es sich nicht um eine FLYMASK handelt, den normalen Code ausführen.
				{ //Wird nach dem alten Code wieder geschlossen.
#endif //__FLYING_MASK
Und unter
Code:
				case IK3_KNUCKLEHAMMER: dwMotion += 700; break; 
#ifdef __CROSSBOW
				case IK3_CROSSBOW: dwMotion += MTI_STAND_15;break;
#endif // __CROSSBOW
				default: 
					if( IsPlayer() ) dwMotion += 200; 
					break;
				}
Das:
Code:
#ifdef __FLYING_MASK
			} //Beendet die oben gesetze { wieder.
#endif //__FLYING_MASK
VersionCommon.h (Source/Neuz)
Code:
#define __FLYING_MASK
'Thanks an Crystal-Craft, hatte ich ganz vergessen :P

Wenn ihr jetzt eine neue "Floating Mask" haben wollte, macht in der Spec_Item.txt oder propItem.txt den Eintrag für eure Maske, z.B.:
Code:
15	II_ARM_S_CLO_MAS_FLYING01	"Flying Mask"	1	1	IK1_ARMOR	IK2_CLOTHETC	IK3_FLYMASK	=	1	=	=	4	50000	=	=	=	=	PARTS_MASK	=	1	=	=	1	=	=	1	1	=	=	1	1	_NONE	0	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	DST_SPEED	DST_HP_MAX_RATE	DST_SPELL_RATE	15	15	20	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	0	0	0	0	0	0	=	=	=	=	=	=	=	=	=	=	=	=	1	=	=	=	"""Itm_mSEASKINGMASK01-32.dds"""	0	""""""	"Mit dieser Maske lernst du Fliegen!" 110	300	0	0	1	0	0	0	1	2	2	=	=	=	=	=	=	=	=	=	=	1	1	1	1	1	0
Und setzt den ItemKind3 auf IK3_FLYMASK.
Dann macht ihr noch euren Eintrag in der mdlDyna.inc und fertig.

Falls es noch Fragen geben sollte, helfe ich euch gerne, sollte aber eigentlich selbstverständlich sein.

MfG Unleashed
05/07/2012 15:28 Mihawk.'#2
Das ist ja nicht schwer, aber die Flügel noch zu animieren, das ist das schwere. Gewöhnlich hängen sie nur einfach rum, oder sind nicht mal an den Spieler gebunden und bleiben beim Springen weiter unten und nicht am Rücken, o.ä.
05/07/2012 15:40 .Tear#3
Quote:
Originally Posted by Mihawk.' View Post
Das ist ja nicht schwer, aber die Flügel noch zu animieren, das ist das schwere. Gewöhnlich hängen sie nur einfach rum, oder sind nicht mal an den Spieler gebunden und bleiben beim Springen weiter unten und nicht am Rücken, o.ä.
Dafür müsste man allerdings auch die Intelligenz besitzen die Wings mit dem o3d Converter die selbe 'Pixelfarbe' zu verpassen wie den normalen cloaks.. dann funkt das ohne probleme.. ^^
05/07/2012 15:40 Crystal-Craft#4
für dumme hast das #define vergessen also

VersionCommon.h
Code:
#define __FLYING_MASK

aber sonst gute idee ^^

edit : ich fliege nicht habe es in versioncommon.h (ws und neuz) defined nur geht net habe auch in specitem das in IK3_FLYMASK geändert
05/07/2012 16:01 Unleashed!#5
Quote:
Originally Posted by Crystal-Craft View Post
für dumme hast das #define vergessen also

VersionCommon.h
Code:
#define __FLYING_MASK

aber sonst gute idee ^^

edit : ich fliege nicht habe es in versioncommon.h (ws und neuz) defined nur geht net habe auch in specitem das in IK3_FLYMASK geändert
Dran gedacht, das du dafür in Angriffsposition sein musst? ;D
Ansonsten schick mal deine Zeile aus der Spec_Item.txt

Quote:
Originally Posted by .Tear View Post
Dafür müsste man allerdings auch die Intelligenz besitzen die Wings mit dem o3d Converter die selbe 'Pixelfarbe' zu verpassen wie den normalen cloaks.. dann funkt das ohne probleme.. ^^
Hat ja wohl nichts mit Intelligenz, sondern eher was mit Wissen zu tun. Das sind zwei ziemlich unterschiedliche Dinge, bis auf die Gemeinsamkeit das die wenigsten hier von ihnen profitieren.
05/07/2012 16:04 Crystal-Craft#6
oh sry war mein fehler ^^
05/07/2012 17:16 Razzer'#7
Ich brauche die Models , jeder der etwas C++ kann sollte das können .

Woher bekomme ich die Models?
05/07/2012 17:47 Mihawk.'#8
Nimm normale Flügel? Und mach sie dir zurecht? >_>
05/07/2012 17:54 Sedrika#9
PHP Code:
#ifdef __FLYING_MASK
                
if( GetEquipItem(PARTS_MASK) && GetEquipItem(PARTS_MASK)->GetProp()->dwItemKind3 == IK3_FLYMASK //Überprüft, ob es sich bei dem Item im MASK Slot um ein Item vom Typ IK3_FLYMASK handelt.
                    
dwMotion += MTI_STAND_11//Fügt Psykeeper "Schweben" zur dwMotion hinzu.
                
else //Falls es sich nicht um eine FLYMASK handelt, den normalen Code ausführen.
                
//Wird nach dem alten Code wieder geschlossen.
#endif //__FLYING_MASK 
Wer für 2 zeilen Code Geld gezahlt hat finde ich denkt nicht selber nach.

Ansonsten nett, hilft einigen sicher nicht mehr zuviel Geld für kaum was zu bezahlen.
05/07/2012 18:38 guardianangel#10
Außerdem wäre es jawohl besser wenn man ne Scroll draus macht die speichert ob man schwebt oder nicht ...
mit nem DB eintrag oder so
05/07/2012 19:06 Shuya83#11
Zieht euch doch den client von sapphire runter die haben das auch mit den wings. Sollte kein problem sein das da aus den res zu ziehen.
05/07/2012 19:13 Unleashed!#12
Quote:
Originally Posted by Shuya83 View Post
Zieht euch doch den client von sapphire runter die haben das auch mit den wings. Sollte kein problem sein das da aus den res zu ziehen.
Soweit ich weiß hat das nichts mit den Models zu tun sondern im Source werden verschoben.

@Sedrika Es sind 5 Zeilen, wenn du die Klammern mit zählst, mit Präprozessordirektiven sogar 9 xD. Verstehe auch nicht, wie man für sowas Geld bezahlen kann, aber da waren ja auch noch die Flügel bei, wenn ich mich nicht täusche und ich habs irgendwie nicht hinbekommen die Teile an die richtige Stelle zu packen. ;D
05/07/2012 19:15 Мarvin#13
Leider ist das eindeutig eine billigere Version als die von Pumaaa.
Das sieht man schon allein an der Quelltextmenge von von diesem und Pumaaa.

Wenn man es richtig codet (kp wie es bei Collin funkzt), dann geht das mit jedem
normalen paar Flügel.
05/07/2012 19:19 Pumaaa#14
Trotzdem:

#approved und Insanity Wings gratis auf " animiert " geupgraded.
05/07/2012 19:32 Dark BoM#15
Netter release eigentlich :) können die paar 0815 Server damit sicher was anfangen,
aber nunja dafür Geld bezahlen würde ich niemals ^^

P.s. Psykeeper Schweben ist jetzt nutzlos :( fand ich persöhnlich immer "cool" ;D

Grüße

Dark BoM