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:

(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