1
Spacer / Świat z G1 w G2?
« dnia: 2014-11-02, 19:20 »
Czy jest możliwe coś takiego, aby dodać oryginalny świat z G1 do G2 jako dodatkowy? Sam świat chcę przenieść, nie itemy, nie NPC itd., tylko sam świat, na potrzeby filmowe.
Ta sekcja pozwala Ci zobaczyć wszystkie wiadomości wysłane przez tego użytkownika. Zwróć uwagę, że możesz widzieć tylko wiadomości wysłane w działach do których masz aktualnie dostęp.
const string TXT_SPELLS[MAX_SPELL] =
{
// Paladin-Runen
"Święty płomień", // 0 SPL_PalLight
"Małe uleczenie", // 1 SPL_PalLightHeal
"Święta strzała", // 2 SPL_PalHolyBolt
"Średnie uleczenie", // 3 SPL_PalMediumHeal
"Wypędzenie zła", // 4 SPL_PalRepelEvil
"Duże uleczenie", // 5 SPL_PalFullHeal
"Zniszczenie zła", // 6 SPL_PalDestroyEvil
// Teleport-Runen
"Teleportacja", // 7 SPL_PalTeleportSecret
"Do miasta portowego", // 8 SPL_TeleportSeaport
"Do klasztoru", // 9 SPL_TeleportMonastery
"Do majątku ziemskiego", // 10 SPL_TeleportFarm
"Do Xardasa", // 11 SPL_TeleportXardas
"Do przełęczy Khorinis", // 12 SPL_TeleportPassNW
"Do przełęczy Górniczej Doliny", // 13 SPL_TeleportPassOW
"Do zamku", // 14 SPL_TeleportOC
"Do starej wieży demonów", // 15 SPL_TeleportOWDemonTower
"Do gospody", // 16 SPL_TeleportTaverne
"TXT_SPL_TELEPORT_3", // 17 SPL_Teleport_3
// Kreis 1
"Światło", // 18 SPL_Light
"Ognista strzała", // 19 SPL_Firebolt
// Kreis 2
"Lodowa strzała", // 20 SPL_Icebolt
// Kreis 1
"Leczenie lekkich ran", // 21 SPL_LightHeal
"Szkielet-goblin", // 22 SPL_SummonGoblinSkeleton
// Kreis 2
"Kula ognia", // 23 SPL_InstantFireball
// Kreis 1
"Mała błyskawica", // 24 SPL_Zap
// Kreis 2
"Przyzwanie wilka", // 25 SPL_SummonWolf
"Pięść wichru", // 26 SPL_WindFist
"Sen", // 27 SPL_Sleep
// Kreis 3
"Leczenie średnich ran", // 28 SPL_MediumHeal
"Błyskawica", // 29 SPL_LightningFlash
"Duża kula ognia", // 30 SPL_ChargeFireball
"Szkielet", // 31 SPL_SummonSkeleton
"Strach", // 32 SPL_Fear
"Bryła lodu", // 33 SPL_IceCube
"Piorun kulisty", // 34 SPL_ChargeZap
// Kreis 4
"Tworzenie golema", // 35 SPL_SummonGolem
"Zniszczenie ożywieńca", // 36 SPL_DestroyUndead
"Duża burza ognista", // 37 SPL_Pyrokinesis
// Kreis 5
"Mała burza ognista", // 38 SPL_Firestorm
"Lodowa fala", // 39 SPL_IceWave
"Demon", // 40 SPL_SummonDemon
"Uleczenie całkowite", // 41 SPL_FullHeal
// Kreis 6
"Ognisty deszcz", // 42 SPL_Firerain
"Tchnienie śmierci", // 43 SPL_BreathOfDeath
"Masowe zniszczenie", // 44 SPL_MassDeath
"Armia ciemności", // 45 SPL_ArmyOfDarkness
"Zmniejszenie", // 46 SPL_Shrink
// Scrolls
"Owca", // 47 SPL_TrfSheep
"Ścierwojad", // 48 SPL_TrfScavenger
"Olbrzymi szczur", // 49 SPL_TrfGiantRat
"Polna bestia", // 50 SPL_TrfGiantBug
"Wilk", // 51 SPL_TrfWolf
"Jaszczur", // 52 SPL_TrfWaran
"Zębacz", // 53 SPL_TrfSnapper
"Warg", // 54 SPL_TrfWarg
"Ognisty jaszczur", // 55 SPL_TrfFireWaran
"Topielec", // 56 SPL_TrfLurker
"Cieniostwór", // 57 SPL_TrfShadowbeast
"Smoczy zębacz", // 58 SPL_TrfDragonSnapper
"Niepamięć" , // 59 SPL_Charm
// Kreis 5
"Święty pocisk", // 60 SPL_MasterOfDisaster
// ???
"TXT_SPL_DEATHBOLT", // 61 SPL_Deathbolt
"TXT_SPL_DEATHBALL", // 62 SPL_Deathball
"TXT_SPL_CONCUSSIONBOLT", // 63 SPL_ConcussionBolt
"TXT_SPL_RESERVED_64", // 64 SPL_Reserved_64
"TXT_SPL_RESERVED_65", // 65 SPL_Reserved_65
"TXT_SPL_RESERVED_66", // 66 SPL_Reserved_66
"TXT_SPL_RESERVED_67", // 67 SPL_Reserved_67
"TXT_SPL_RESERVED_68", // 68 SPL_Reserved_68
"TXT_SPL_RESERVED_69", // 69 SPL_Reserved_69
// Magick (Wasser)
"Grom", // 70 SPL_Thunderstorm
"Wir", // 71 SPL_Whirlwind
"Wodna pięść", // 72 SPL_WaterFist
"Lodowa lanca", // 73 SPL_IceLance
"Spuchnięcie", // 74 SPL_Inflate
"Gejzer", // 75 SPL_Geyser
"Wodna różdżka", // 76 SPL_Waterwall
"TXT_SPL_RESERVED_77", // 77 SPL_Reserved_77
"TXT_SPL_RESERVED_78", // 78 SPL_Reserved_78
"TXT_SPL_RESERVED_79", // 79 SPL_Reserved_79
// Magick (Maya)
"Plaga owadów", // 80 SPL_Plague
"Rój owadów", // 81 SPL_Swarm
"Korzeń", // 82 SPL_GreenTentacle
"Trzęsienie ziemi", // 83 SPL_Earthquake
"Stworzenie Strażnika", // 84 SPL_SummonGodzilla
"Szał Beliara", // 85 SPL_Energyball
"Kradzież energii", // 86 SPL_SuckEnergy
"Krzyk umarłych", // 87 SPL_Skull
"Stworzenie zombie", // 88 SPL_SummonZombie
"Przyzwanie błotniaka", // 89 SPL_SummonMud
// ...
"TXT_SPL_RESERVED_90", // 90 SPL_Reserved_90
"TXT_SPL_RESERVED_91", // 91 SPL_Reserved_91
"TXT_SPL_RESERVED_92", // 92 SPL_Reserved_92
"TXT_SPL_RESERVED_93", // 93 SPL_Reserved_93
"TXT_SPL_RESERVED_94", // 94 SPL_Reserved_94
"TXT_SPL_RESERVED_95", // 95 SPL_Reserved_95
"TXT_SPL_RESERVED_96", // 96 SPL_Reserved_96
"TXT_SPL_RESERVED_97", // 97 SPL_Reserved_97
"TXT_SPL_RESERVED_98", // 98 SPL_Reserved_98
"TXT_SPL_RESERVED_99", // 99 SPL_Reserved_99
//CUSTOM
"Kula siły woli", // 100 SPL_BlueFireball
//Demonic
"Mniejsza ofiara", // 101 SPL_Sacrifice
"Wyładowanie błyskawic" // 102 SPL_ChainLightning
};
I to:const string NAME_SPL_ChainLightning = "Wyładowanie błyskawic";
Myślę że chodziło ci o Constants.d:const int SPL_ChainLightning = 102;
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
"Light", // 64 SPL_Reserved_64
"Light", // 65 SPL_Reserved_65
"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
//CUSTOM
"BlueFireball", // 100 SPL_BlueFireball
//Demonic
"Sacrifice", // 101 SPL_Sacrifice
"ChainLightning" // 102 SPL_ChainLightning
};
Dalej w tym pliku odnośnie czarów są już jedynie anmiacje./// XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
/// XX C H A I N - L I G H T N I N G XX
/// XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
INSTANCE spellFX_ChainLightning(CFx_Base)
{
visName_S = "lightning_big_a0.tga";
visSize_S = "3 3";
visAlphaBlendFunc_S = "ADD";
visTexAniFPS = 17;
visTexAniIsLooping = 1;
emFXCreate_S = "spellFX_ChainLightning_Origin";
emtrjmode_s = "FIXED";
emtrjNumKeys = 12;
emtrjnumkeysvar = 3;
emtrjangleelevvar = 20.0;
emtrjangleheadvar = 20.0;
emtrjloopmode_s = "none";
emTrjOriginNode = "ZS_RIGHTHAND";
emtrjeasefunc_s = "LINEAR";
emtrjdynupdatedelay = 200000.0;
emselfrotvel_s = "0 0 50";
emTrjTargetRange = 20;
emTrjTargetElev = 0;
};
INSTANCE spellFX_ChainLightning_ORIGIN (CFx_Base_Proto)
{
visname_S = "MFX_Lightning_Origin";
emtrjmode_s = "FIXED";
emTrjOriginNode = "ZS_RIGHTHAND";
lightPresetname = "AURA";
};
INSTANCE spellFX_ChainLightning_Origin_KEY_OPEN (C_ParticleFXEmitKEy)
{
LightRange = 0.01;
};
INSTANCE spellFX_ChainLightning_Origin_KEY_INIT (C_ParticleFXEmitKEy)
{
LightRange = 0.01;
};
INSTANCE spellFX_ChainLightning_Origin_KEY_INVEST_1 (C_ParticleFXEmitKey)
{
sfxID = "MFX_Lightning_Origin";
LightRange = 200;
};
instance FX_Electric (CFx_Base_Proto)
{
visname_S = "MFX_Thunderball_Target";
emTrjOriginNode = "BIP01 Head";
emtrjmode_s = "FIXED";
sfxid = "MFX_Lightning_Target";
emfxcreate_s = "spellFX_Thunderspell_TARGET_CHILD1";
emFXCreatedOwnTrj = 1;
};
Model ("HuS")
{
meshAndTree ("Hum_Body_Naked0.ASC" DONT_USE_MESH)
aniEnum
{
modelTag ("DEF_HIT_LIMB" "zs_RightHand")
ani ("t_1h_2_1hRun" 1 "s_1hRun" 0.0 0.0 M. "Hum_1hSDrawT3.asc" F 3 10)
{
*eventTag (3 "DEF_FIGHTMODE" "1H")
*eventTag (3 "DEF_DRAWSOUND")
*eventSwapMesh (3 "ZS_CROSSBOW" "ZS_LEFTHAND")
}
ani ("t_Move_2_1hMove" 2 "" 0.2 0.2 M. "Hum_1hS_MoveReady_M01.asc" F 1 24)
{
*eventTag (6 "DEF_FIGHTMODE" "1H")
*eventTag (6 "DEF_DRAWSOUND")
*eventSwapMesh (6 "ZS_CROSSBOW" "ZS_LEFTHAND")
}
ani ("t_1hRun_2_1h" 1 "s_1h" 0.0 0.0 M. "Hum_1hSDrawT3.asc" R 3 10)
{
*eventTag (3 "DEF_FIGHTMODE" "")
*eventTag (3 "DEF_UNDRAWSOUND")
*eventSwapMesh (6 "ZS_LEFTHAND" "ZS_CROSSBOW")
}
ani ("t_1hMove_2_Move" 2 "" 0.2 0.2 M. "Hum_1hS_MoveReady_M01.asc" R 1 24)
{
*eventTag (6 "DEF_UNDRAWSOUND")
*eventTag (6 "DEF_FIGHTMODE" "")
*eventSwapMesh (6 "ZS_LEFTHAND" "ZS_CROSSBOW")
}
}
}
// 1H - WEAPON
ani ("t_Run_2_1h" 1 "s_1h" 0.1 0.0 M. "Hum_1hSDrawT0.asc" F 1 3)
ani ("s_1h" 1 "s_1h" 0.0 0.0 M. "Hum_1hSDrawT0.asc" F 4 4)
ani ("t_1h_2_1hRun" 1 "s_1hRun" 0.0 0.2 M. "Hum_1hSDrawT0.asc" F 5 24)
{
*eventTag (5 "DEF_FIGHTMODE" "1H")
*eventTag (5 "DEF_DRAWSOUND")
}
ani ("t_1hRun_2_1h" 1 "s_1h" 0.0 0.0 M. "Hum_1hSDrawT0.asc" R 5 24)
{
*eventTag (5 "DEF_UNDRAWSOUND")
*eventTag (5 "DEF_FIGHTMODE" "")
}
aniAlias ("t_1h_2_Run" 1 "" 0.0 0.2 M. "t_Run_2_1h" R)
// Schwert beim Rennen ziehen
ani ("t_Move_2_1hMove" 2 "" 0.2 0.2 M. "Hum_1hS_MoveReady_M01.asc" F 1 24)
{
*eventTag (6 "DEF_FIGHTMODE" "1H")
*eventTag (6 "DEF_DRAWSOUND")
}
ani ("t_1hMove_2_Move" 2 "" 0.2 0.2 M. "Hum_1hS_MoveReady_M01.asc" R 1 24)
{
*eventTag (6 "DEF_UNDRAWSOUND")
*eventTag (6 "DEF_FIGHTMODE" "")
}
Wycinek z overlaya: ani ("t_Run_2_1h" 1 "s_1h" 0.0 0.0 M. "Hum_1hSDrawT3.asc" F 1 1)
ani ("s_1h" 1 "s_1h" 0.0 0.0 M. "Hum_1hSDrawT3.asc" F 2 2)
ani ("t_1h_2_1hRun" 1 "s_1hRun" 0.0 0.0 M. "Hum_1hSDrawT3.asc" F 3 10)
{
*eventTag (3 "DEF_FIGHTMODE" "1H")
*eventTag (3 "DEF_DRAWSOUND")
}
ani ("t_1hRun_2_1h" 1 "s_1h" 0.0 0.0 M. "Hum_1hSDrawT3.asc" R 3 10)
{
*eventTag (3 "DEF_FIGHTMODE" "")
*eventTag (3 "DEF_UNDRAWSOUND")
}
aniAlias ("t_1h_2_Run" 1 "s_Run" 0.0 0.1 M. "t_Run_2_1h" R)
Przy dodawaniu tego eventu sugerowałem się obecnością DRAW/UNDRAW_SOUND oraz DEF_FIGHTMODE.
ani ("T_RUN_2_1H" 1 "S_1H" 0.0 0.0 M. "HUM_1HSDRAWT3.ASC" F 1 1)
ani ("S_1H" 1 "S_1H" 0.0 0.0 M. "HUM_1HSDRAWT3.ASC" F 2 2)
ani ("T_1H_2_1HRUN" 1 "S_1HRUN" 0.0 0.0 M. "HUM_1HSDRAWT3.ASC" F 3 10)
{
*eventTag (3 "DEF_FIGHTMODE" "1H")
*eventTag (3 "DEF_SWAPMESH" "ZS_CROSSBOW" "ZS_LEFTHAND")
*eventTag (3 "DEF_DRAWSOUND")
}
ani ("T_1HRUN_2_1H" 1 "S_1H" 0.0 0.0 M. "HUM_1HSDRAWT3.ASC" R 3 10)
{
*eventTag (3 "DEF_FIGHTMODE")
*eventTag (3 "DEF_SWAPMESH" "ZS_CROSSBOW" "ZS_LEFTHAND")
*eventTag (3 "DEF_UNDRAWSOUND")
}
aniAlias ("T_1H_2_RUN" 1 "S_RUN" 0.0 0.1 M. "T_RUN_2_1H" R)
ani ("t_Move_2_1hMove" 2 "" 0.2 0.2 M. "Hum_1hS_MoveReady_M01.asc" F 1 24)
{
*eventTag (6 "DEF_FIGHTMODE" "1H")
*eventTag (6 "DEF_SWAPMESH" "ZS_CROSSBOW" "ZS_LEFTHAND")
*eventTag (6 "DEF_DRAWSOUND")
}
ani ("t_1hMove_2_Move" 2 "" 0.2 0.2 M. "Hum_1hS_MoveReady_M01.asc" R 1 24)
{
*eventTag (6 "DEF_UNDRAWSOUND")
*eventTag (6 "DEF_SWAPMESH" "ZS_CROSSBOW" "ZS_LEFTHAND")
*eventTag (6 "DEF_FIGHTMODE")
}
ani ("T_1H_2_1HRUN" 1 "S_1HRUN" 0.0 0.0 M. "HUM_1HSDRAWT3.ASC" F 3 10)
{
*eventTag (3 "DEF_FIGHTMODE" "1H")
*eventTag (3 "DEF_REMOVE_ITEM" "ZS_CROSSBOW" "dual3")
*eventTag (3 "DEF_REMOVE_ITEM" "ZS_LEFTHAND" "dual3")
*eventTag (8 "DEF_CREATE_ITEM" "ZS_LEFTHAND" "dual3")
*eventTag (3 "DEF_DRAWSOUND")
}
ani ("T_1HRUN_2_1H" 1 "S_1H" 0.0 0.0 M. "HUM_1HSDRAWT3.ASC" R 3 10)
{
*eventTag (3 "DEF_FIGHTMODE")
*eventTag (2 "DEF_REMOVE_ITEM" "ZS_LEFTHAND" "dual3")
*eventTag (3 "DEF_CREATE_ITEM" "ZS_CROSSBOW" "dual3")
*eventTag (3 "DEF_UNDRAWSOUND")
}
ani ("t_Move_2_1hMove" 2 "" 0.2 0.2 M. "Hum_1hS_MoveReady_M01.asc" F 1 24)
{
*eventTag (6 "DEF_FIGHTMODE" "1H")
*eventTag (6 "DEF_REMOVE_ITEM" "ZS_CROSSBOW" "dual3")
*eventTag (6 "DEF_REMOVE_ITEM" "ZS_LEFTHAND" "dual3")
*eventTag (9 "DEF_CREATE_ITEM" "ZS_LEFTHAND" "dual3")
*eventTag (6 "DEF_DRAWSOUND")
}
ani ("t_1hMove_2_Move" 2 "" 0.2 0.2 M. "Hum_1hS_MoveReady_M01.asc" R 1 24)
{
*eventTag (6 "DEF_UNDRAWSOUND")
*eventTag (2 "DEF_REMOVE_ITEM" "ZS_LEFTHAND" "dual3")
*eventTag (3 "DEF_CREATE_ITEM" "ZS_CROSSBOW" "dual3")
*eventTag (6 "DEF_FIGHTMODE")
}
ani ("T_RUN_2_1H" 1 "S_1H" 0.0 0.0 M. "HUM_1HSDRAWT3.ASC" F 1 1)
Jednakże wtedy bronie mi często całkowicie znikały losowo, więc chyba nie tędy droga.// *******************
// Pierdolnięcie pierunem
// *******************
const int SPL_Cost_ChainLightning = 15;
const int SPL_Damage_ChainLightning = 1;
INSTANCE Spell_ChainLightning (C_Spell_Proto)
{
time_per_mana = 750;
damage_per_level = SPL_DAMAGE_ChainLightning;
damageType = DAM_MAGIC; // war vorher DAM_FIRE
isMultiEffect = 1;
targetCollectRange = 1500;
};
func int Spell_Logic_ChainLightning (var int manaInvested)
{
if (Npc_GetActiveSpellIsScroll(self) && (self.attribute[ATR_MANA] >= SPL_Cost_Scroll))
{
if ( other.aivar[AIV_SpellLevel] == 0 )
{
if ( !Npc_IsDead(other) )
{
AI_StartState (other, ZS_Zapped, 0, "");
PrintScreen ("BOOM", -1, 58, "FONT_OLD_20_WHITE.TGA",2);
//Wld_PlayEffect ("spellFX_LightningFlash_HEAVENSRAGE", other, self, 1, 1, 1, FALSE );
}
else
{
other.aivar[AIV_SpellLevel] = 0;
return SPL_SENDSTOP;
};
other.aivar[AIV_SpellLevel] = other.aivar[AIV_SpellLevel]+1;
return SPL_NEXTLEVEL;
};
}
else if (self.attribute[ATR_MANA] >= SPL_ChainLightning)
{
if ( other.aivar[AIV_SpellLevel] == 0 )
{
if ( !Npc_IsDead(other) )
{
AI_StartState (other, ZS_Zapped, 0, "");
PrintScreen ("BOOM", -1, 58, "FONT_OLD_20_WHITE.TGA",2);
//Wld_PlayEffect ("spellFX_LightningFlash_HEAVENSRAGE", other, self, 1, 1, 1, FALSE );
}
else
{
other.aivar[AIV_SpellLevel] = 0;
return SPL_SENDSTOP;
};
other.aivar[AIV_SpellLevel] = other.aivar[AIV_SpellLevel]+1;
return SPL_NEXTLEVEL;
};
}
else //nicht genug Mana
{
return SPL_SENDSTOP;
};
};
func void Spell_Cast_ChainLightning()
{
if (Npc_GetActiveSpellIsScroll(self))
{
self.attribute[ATR_MANA] = self.attribute[ATR_MANA] - SPL_Cost_Scroll;
}
else
{
self.attribute[ATR_MANA] = self.attribute[ATR_MANA] - SPL_Cost_ChainLightning;
};
self.aivar[AIV_SelectSpell] += 1;
other.aivar[AIV_SpellLevel] = 0;
};