-
Neuling
Verwandlungsrune erstellen
Ich habe eine Frage zur Erstellung von einer Verwandlungsrune. Ich hab hinbekommen, dass die Rune erstellt wurde, Animation von der Verwandlung findet statt, Mana wird abgezogen, aber anstelle dass er sich am Ende der Animation verwandelt, ist der Held auf Hocke und steht dann wieder auf.
Spell_TrfBloodfly.d
Code:
const int SPL_Cost_TrfBloodfly = 10;
INSTANCE Spell_TrfBloodfly (C_Spell_Proto)
{
time_per_mana = 0;
spelltype = SPELL_NEUTRAL;
targetCollectAlgo = TARGET_COLLECT_NONE;
canTurnDuringInvest = 0;
};
func int Spell_Logic_TrfBloodfly (var int manaInvested)
{
if ((Npc_GetActiveSpellIsScroll(self) && (self.attribute[ATR_MANA] >= SPL_Cost_Scroll)))
|| (self.attribute[ATR_MANA] >= SPL_Cost_TrfBloodfly)
{
self.attribute[ATR_MANA] = self.attribute[ATR_MANA] - SPL_Cost_TrfBloodfly;
Npc_SetActiveSpellInfo(self, Bloodfly);
return SPL_SENDCAST;
}
else
{
return SPL_SENDSTOP;
};
};
IT_Runen.d
Code:
INSTANCE ItRu_TrfBloodfly (C_Item)
{
name = NAME_Rune;
mainflag = ITEM_KAT_RUNE;
flags = 0;
value = Value_Ru_TrfBloodfly;
visual = "ItRu_Fear.3DS";
material = MAT_STONE;
spell = SPL_TrfBloodfly;
mag_circle = 1;
wear = WEAR_EFFECT;
effect = "SPELLFX_WEAKGLIMMER";
description = NAME_SPL_TrfBloodfly;
TEXT [0] = NAME_Mag_Circle;
count [0] = mag_circle;
TEXT [1] = NAME_Manakosten;
COUNT [1] = SPL_Cost_TrfBloodfly;
TEXT [5] = NAME_Value;
COUNT [5] = value;
};
Constans.d
Code:
const int SPL_TrfBloodfly = 65; // SPL_F
const int SPL_Reserved_66 = 66; // SPL_G
const int SPL_Reserved_67 = 67; // SPL_H
const int SPL_Reserved_68 = 68; // MAX_SPELL (Gothic2)
const int SPL_Reserved_69 = 69;
// Magick (Wasser)
const int SPL_Thunderstorm = 70;
const int SPL_Whirlwind = 71;
const int SPL_WaterFist = 72;
const int SPL_IceLance = 73;
const int SPL_Inflate = 74;
const int SPL_Geyser = 75;
const int SPL_Waterwall = 76;
const int SPL_Reserved_77 = 77;
const int SPL_Reserved_78 = 78;
const int SPL_Reserved_79 = 79;
// Magick (Maya)
const int SPL_Plague = 80;
const int SPL_Swarm = 81;
const int SPL_GreenTentacle = 82;
const int SPL_Earthquake = 83;
const int SPL_SummonGuardian = 84;
const int SPL_Energyball = 85;
const int SPL_SuckEnergy = 86;
const int SPL_Skull = 87;
const int SPL_SummonZombie = 88;
const int SPL_SummonMud = 89;
// ...
const int SPL_Reserved_90 = 90;
const int SPL_Reserved_91 = 91;
const int SPL_Reserved_92 = 92;
const int SPL_Reserved_93 = 93;
const int SPL_Reserved_94 = 94;
const int SPL_Reserved_95 = 95;
const int SPL_Reserved_96 = 96;
const int SPL_Reserved_97 = 97;
const int SPL_Reserved_98 = 98;
const int SPL_Reserved_99 = 99;
const int MAX_SPELL = 100; // 59 (Gothic), 68 (Gothic2), 100 (G2Addon)
////////////////////////////////////////////////////////////////////////////////
//
// Spells: Fx-/Spell-Klassennamen (Array)
//
const string spellFxInstanceNames[MAX_SPELL] =
{
// Paladin-Runen
"PalLight", // 0 SPL_PalLight
"PalHeal", // 1 SPL_PalLightHeal
"PalHolyBolt", // 2 SPL_PalHolyBolt
"PalHeal", // 3 SPL_PalMediumHeal
"PalRepelEvil", // 4 SPL_PalRepelEvil
"PalHeal", // 5 SPL_PalFullHeal
"PalDestroyEvil", // 6 SPL_PalDestroyEvil
// Teleport-Runen
"Teleport", // 7 SPL_PalTeleportSecret
"Teleport", // 8 SPL_TeleportSeaport
"Teleport", // 9 SPL_TeleportMonastery
"Teleport", // 10 SPL_TeleportFarm
"Teleport", // 11 SPL_TeleportXardas
"Teleport", // 12 SPL_TeleportPassNW
"Teleport", // 13 SPL_TeleportPassOW
"Teleport", // 14 SPL_TeleportOC
"Teleport", // 15 SPL_TeleportOWDemonTower
"Teleport", // 16 SPL_TeleportTaverne
"Teleport", // 17 SPL_Teleport_3
// Kreis 1
"Light", // 18 SPL_Light
"Firebolt", // 19 SPL_Firebolt
// Kreis 2
"Icebolt", // 20 SPL_Icebolt
// Kreis 1
"Heal", // 21 SPL_LightHeal
"SummonGoblinSkeleton", // 22 SPL_SummonGoblinSkeleton
// Kreis 2
"InstantFireball", // 23 SPL_InstantFireball
// Kreis 1
"Zap", // 24 SPL_Zap
// Kreis 2
"SummonWolf", // 25 SPL_SummonWolf
"WindFist", // 26 SPL_WindFist
"Sleep", // 27 SPL_Sleep
// Kreis 3
"Heal", // 28 SPL_MediumHeal
"LightningFlash", // 29 SPL_LightningFlash
"ChargeFireball", // 30 SPL_ChargeFireball
"SummonSkeleton", // 31 SPL_SummonSkeleton
"Fear", // 32 SPL_Fear
"Icecube", // 33 SPL_IceCube
// Kreis 4
"ChargeZap", // 34 SPL_ChargeZap
"SummonGolem", // 53 SPL_SummonGolem
"DestroyUndead", // 36 SPL_DestroyUndead
"Pyrokinesis", // 37 SPL_Pyrokinesis
// Kreis 5
"Firestorm", // 38 SPL_Firestorm
"Icewave", // 39 SPL_IceWave
"SummonDemon", // 40 SPL_SummonDemon
"Heal", // 41 SPL_FullHeal
// Kreis 6
"Firerain", // 42 SPL_Firerain
"BreathOfDeath", // 43 SPL_BreathOfDeath
"MassDeath", // 44 SPL_MassDeath
"ArmyOfDarkness", // 45 SPL_ArmyOfDarkness
"Shrink", // 46 SPL_Shrink
// Scrolls
"Transform", // 47 SPL_TrfSheep
"Transform", // 48 SPL_TrfScavenger
"Transform", // 49 SPL_TrfGiantRat
"Transform", // 50 SPL_TrfGiantBug
"Transform", // 51 SPL_TrfWolf
"Transform", // 52 SPL_TrfWaran
"Transform", // 53 SPL_TrfSnapper
"Transform", // 54 SPL_TrfWarg
"Transform", // 55 SPL_TrfFireWaran
"Transform", // 56 SPL_TrfLurker
"Transform", // 57 SPL_TrfShadowbeast
"Transform", // 58 SPL_TrfDragonSnapper
"Charm", // 59 SPL_Charm
// Kreis 5
"MasterOfDisaster", // 60 SPL_MasterOfDisaster
// ???
"Deathbolt", // 61 SPL_Deathbolt
"Deathball", // 62 SPL_Deathball
"Concussionbolt", // 63 SPL_Concussionbolt
//Eigene Zauber
"SummonSkeletonLord", // 64 SPL_SummonSkeletonLord
"TrfBloodfly", // 65 SPL_TrfBloodfly
"Light", // 66 SPL_Reserved_66
"Light", // 67 SPL_Reserved_67
"Light", // 68 SPL_Reserved_68
"Light", // 69 SPL_Reserved_69
// Magick (Wasser)
"Thunderstorm", // 70 SPL_Thunderstorm
"Whirlwind", // 71 SPL_Whirlwind
"Waterfist", // 72 SPL_WaterFist
"IceLance", // 73 SPL_IceLance
"Sleep", // 74 SPL_Inflate
"Geyser", // 75 SPL_Geyser
"Firerain", // 76 SPL_Waterwall
"Light", // 77 SPL_Reserved_77
"Light", // 78 SPL_Reserved_78
"Light", // 79 SPL_Reserved_79
// Magick (Maya)
"Fear", // 80 SPL_Plague
"Swarm", // 81 SPL_Swarm
"Greententacle", // 82 SPL_GreenTentacle
"Firerain", // 83 SPL_Earthquake
"SummonGuardian", // 84 SPL_SummonGuardian
"Energyball", // 85 SPL_Energyball
"SuckEnergy", // 86 SPL_SuckEnergy
"Skull", // 87 SPL_Skull
"SummonZombie", // 88 SPL_SummonZombie
"SummonMud", // 89 SPL_SummonMud
// ...
"Light", // 90 SPL_Reserved_90
"Light", // 91 SPL_Reserved_91
"Light", // 92 SPL_Reserved_92
"Light", // 93 SPL_Reserved_93
"Light", // 94 SPL_Reserved_94
"Light", // 95 SPL_Reserved_95
"Light", // 96 SPL_Reserved_96
"Light", // 97 SPL_Reserved_97
"Light", // 98 SPL_Reserved_98
"Light" // 99 SPL_Reserved_99
};
////////////////////////////////////////////////////////////////////////////////
//
// Spells: Animationskürzel (Array)
//
const string spellFxAniLetters[MAX_SPELL] =
{
// Paladin-Runen
"SLE", // 0 SPL_PalLight
"HEA", // 1 SPL_PalLightHeal
"FBT", // 2 SPL_PalHolyBolt
"HEA", // 3 SPL_PalMediumHeal
"FBT", // 4 SPL_PalRepelEvil
"HEA", // 5 SPL_PalFullHeal
"FIB", // 6 SPL_PalDestroyEvil
// Teleport-Runen
"HEA", // 7 SPL_PalTeleportSecret
"HEA", // 8 SPL_TeleportSeaport
"HEA", // 9 SPL_TeleportMonastery
"HEA", // 10 SPL_TeleportFarm
"HEA", // 11 SPL_TeleportXardas
"HEA", // 12 SPL_TeleportPassNW
"HEA", // 13 SPL_TeleportPassOW
"HEA", // 14 SPL_TeleportOC
"HEA", // 15 SPL_TeleportOWDemonTower
"HEA", // 16 SPL_TeleportTaverne
"HEA", // 17 SPL_Teleport_3
// Kreis 1
"SLE", // 18 SPL_Light
"FBT", // 19 SPL_Firebolt
// Kreis 2
"FBT", // 20 SPL_Icebolt
// Kreis 1
"HEA", // 21 SPL_LightHeal
"SUM", // 22 SPL_SummonGoblinSkeleton
// Kreis 2
"FBT", // 23 SPL_InstantFireball
// Kreis 1
"FBT", // 24 SPL_Zap
// Kreis 2
"SUM", // 25 SPL_SummonWolf
"WND", // 26 SPL_WindFist
"SLE", // 27 SPL_Sleep
// Kreis 3
"HEA", // 28 SPL_MediumHeal
"WND", // 29 SPL_LightningFlash
"FIB", // 30 SPL_ChargeFireball
"SUM", // 31 SPL_SummonSkeleton
"FEA", // 32 SPL_Fear
"FRZ", // 33 SPL_IceCube
"FIB", // 34 SPL_ChargeZap
// Kreis 4
"SUM", // 35 SPL_SummonGolem
"FIB", // 36 SPL_DestroyUndead
"FIB", // 37 SPL_Pyrokinesis
// Kreis 5
"FIB", // 38 SPL_Firestorm
"FEA", // 39 SPL_IceWave
"SUM", // 40 SPL_SummonDemon
"HEA", // 41 SPL_FullHeal
// Kreis 6
"FEA", // 42 SPL_Firerain
"FIB", // 43 SPL_BreathOfDeath
"MSD", // 44 SPL_MassDeath
"SUM", // 45 SPL_ArmyOfDarkness
"SLE", // 46 SPL_Shrink
// Scrolls
"TRF", // 47 SPL_TrfSheep
"TRF", // 48 SPL_TrfScavenger
"TRF", // 49 SPL_TrfGiantRat
"TRF", // 50 SPL_TrfGiantBug
"TRF", // 51 SPL_TrfWolf
"TRF", // 52 SPL_TrfWaran
"TRF", // 53 SPL_TrfSnapper
"TRF", // 54 SPL_TrfWarg
"TRF", // 55 SPL_TrfFireWaran
"TRF", // 56 SPL_TrfLurker
"TRF", // 57 SPL_TrfShadowbeast
"TRF", // 58 SPL_TrfDragonSnapper
"FIB", // 59 SPL_Charm
// Kreis 5
"FIB", // 60 SPL_MasterOfDisaster
// ???
"FBT", // 61 SPL_Deathbolt
"FBT", // 62 SPL_Deathball
"FBT", // 63 SPL_Concussionbolt
//Eigene Zauber
"SUM", // 64 SPL_SummonSkeletonLord
"TRF", // 65 SPL_TrfBloodfly
Spell_ProcessMana.d
Code:
if (activeSpell == SPL_TrfBloodfly ) { return Spell_Logic_TrfBloodfly (manaInvested); };
VisualFxInst.d
Code:
INSTANCE spellFX_TrfBloodfly (CFx_Base_Proto)
{
visname_S = "MFX_Transform_INIT";
emtrjoriginnode = "ZS_RIGHTHAND";
emtrjmode_s = "fixed";
emtrjloopmode_s = "NONE";
emtrjeasefunc_s = "LINEAR";
emtrjdynupdatedelay = 5000;
};
instance spellFX_TrfBloodfly_KEY_INVEST_0 (C_ParticleFXEmitKey)
{
//visname_S = "MFX_Transform_ORIGIN";
emCreateFXID = "spellFX_Transform_ORIGIN";
};
instance spellFX_TrfBloodfly_KEY_INVEST_1 (C_ParticleFXEmitKey)
{
//visname_S = "MFX_Transform_ORIGIN";
emCreateFXID = "spellFX_Transform_ORIGIN";
};
instance spellFX_TrfBloodfly_KEY_CAST (C_ParticleFXEmitKey)
{
pfx_ppsisloopingChg = 1;
emCreateFXID = "spellFX_Transform_BLEND";
};
instance spellFX_TrfBloodfly_ORIGIN (CFx_Base_Proto)
{
visname_S = "MFX_Transform_ORIGIN";
emtrjoriginnode = "BIP01";
emtrjmode_s = "FIXED";
emtrjdynupdatedelay = 0;
emselfrotvel_s = "0 0 50";
};
instance spellFX_TrfBloodfly_BLEND (CFx_Base_Proto)
{
visname_S = "MFX_Transform_BLEND";
emtrjmode_s = "FIXED";
emtrjoriginnode = "ZS_RIGHTHAND";
emtrjdynupdatedelay = 0;
sfxid = "MFX_Transform_Cast";
sfxisambient = 1;
};
Ich habe mal alles reingepostet, vielleicht kann mir jemand weiter helfen
-
Soweit ich weiß, sind die Verwandlungsrunen von der Engine abhängig. Heißt: Du kannst keine neuen Verwandlungsrunen nach der selben Methode hinzufügen, sondern musst entweder eine andere Strategie fahren (sehr aufwendig) oder einen existierenden Verwandlungszauber verändern, indem du die Zeile Npc_SetActiveSpellInfo(self, Bloodfly); des existierenden Zaubers veränderst und dann natürlich den Namen des Zaubers, neue Manakosten etc. entsprechend anpasst.
-
evt. auch interessant (einen Verwandlungzauber zu einem "allgemeinen" Verwandlungszauber umbauen für unbegrenzt viele neue Verwandlungen):
https://forum.worldofplayers.de/foru...1#post13538517
-
Neuling
Zitat von Draxes
Soweit ich weiß, sind die Verwandlungsrunen von der Engine abhängig. Heißt: Du kannst keine neuen Verwandlungsrunen nach der selben Methode hinzufügen, sondern musst entweder eine andere Strategie fahren (sehr aufwendig) oder einen existierenden Verwandlungszauber verändern, indem du die Zeile Npc_SetActiveSpellInfo(self, Bloodfly); des existierenden Zaubers veränderst und dann natürlich den Namen des Zaubers, neue Manakosten etc. entsprechend anpasst.
Ja so hat es Funktioniert, Danke
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
|