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:
(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
Code:
#define IK3_FLYMASK 192 //Neuer ItemKind um die Maske nachher im Code zu "erkennen"
Code:
#define MAX_ITEM_KIND3 192
Code:
#define MAX_ITEM_KIND3 193 //Maximale ItemKind's anheben, um Platz für IK3_FLYMASK zu schaffen.
Unter
Code:
if( !IsPlayer() || ( IsPlayer() &&
( nIndex == MI_MALE ||
nIndex == MI_FEMALE ||
nIndex == MI_CROWNIBLIS ||
nIndex == MI_CROWNSHADE ||
nIndex == MI_CROWNBUBBLE ||
nIndex == MI_DWARPETMAS ) ) )
{
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
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; }
Code:
#ifdef __FLYING_MASK
} //Beendet die oben gesetze { wieder.
#endif //__FLYING_MASK
Code:
#define __FLYING_MASK
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
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






