Hehehe, dobra pokazuję:
Constants.d:
// ...
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 SPL_ElectroRain = 100;
const int SPL_MeteorRain = 101;
const int SPL_ElectroBall = 102;
const int SPL_TrfTortle = 103;
const int MAX_SPELL = 104; // 59 (Gothic), 68 (Gothic2), 100 (G2Addon)
jeszcze niżej:
// ...
"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
"ElectroRain", // 100 SPL_ElectroRain
"MeteorRain", // 101 SPL_MeteorRain
"ElectroBall", // 102 SPL_ElectroBall
"Transform" // 103 SPL_TrfTortle
jeszcze niżej:
// ...
"XXX", // 90 SPL_Reserved_90
"XXX", // 91 SPL_Reserved_91
"XXX", // 92 SPL_Reserved_92
"XXX", // 93 SPL_Reserved_93
"XXX", // 94 SPL_Reserved_94
"XXX", // 95 SPL_Reserved_95
"XXX", // 96 SPL_Reserved_96
"XXX", // 97 SPL_Reserved_97
"XXX", // 98 SPL_Reserved_98
"XXX", // 99 SPL_Reserved_99
"FEA", // 100 SPL_ElectroRain
"MSD", // 101 SPL_MeteorRain
"FIB", // 102 SPL_ElectroBall
"TRF" // 103 SPL_TrfTortle
Text.d:
// ...
"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
"Deszcz Piorunów", // 100 SPL_Reserved_100
"Deszcz Meteorów", // 101 SPL_Reserved_101
"Kula Piorunów", // 102 SPL_Reserved_102
"Zółw" // 103 SPL_TrfTortle
jeszcze niżej:
// ...
const string NAME_SPL_Reserved_90 = "NAME_SPL_RESERVED_90";
const string NAME_SPL_Reserved_91 = "NAME_SPL_RESERVED_91";
const string NAME_SPL_Reserved_92 = "NAME_SPL_RESERVED_92";
const string NAME_SPL_Reserved_93 = "NAME_SPL_RESERVED_93";
const string NAME_SPL_Reserved_94 = "NAME_SPL_RESERVED_94";
const string NAME_SPL_Reserved_95 = "NAME_SPL_RESERVED_95";
const string NAME_SPL_Reserved_96 = "NAME_SPL_RESERVED_96";
const string NAME_SPL_Reserved_97 = "NAME_SPL_RESERVED_97";
const string NAME_SPL_Reserved_98 = "NAME_SPL_RESERVED_98";
const string NAME_SPL_Reserved_99 = "NAME_SPL_RESERVED_99";
const string NAME_SPL_ElectroRain = "Deszcz Piorunów";
const string NAME_SPL_MeteorRain = "Deszcz Meteorów";
const string NAME_SPL_ElectroBall = "Kula Piorunów";
const string NAME_SPL_TrfTortle = "Przemiana w żółwia";
Spell_ProcessMana.d:
//beliar magic
if (activeSpell == SPL_Swarm ) { return Spell_Logic_Swarm (manaInvested); };
if (activeSpell == SPL_Greententacle ) { return Spell_Logic_Greententacle (manaInvested); };
if (activeSpell == SPL_SummonGuardian ) { return Spell_Logic_SummonGuardian (manaInvested); };
if (activeSpell == SPL_Energyball ) { return Spell_Logic_Energyball (manaInvested); };
if (activeSpell == SPL_SuckEnergy ) { return Spell_Logic_SuckEnergy (manaInvested); };
if (activeSpell == SPL_Skull ) { return Spell_Logic_Skull (manaInvested); };
if (activeSpell == SPL_SummonZombie ) { return Spell_Logic_SummonZombie (manaInvested); };
if (activeSpell == SPL_SummonMud ) { return Spell_Logic_SummonMud (manaInvested); };
if (activeSpell == SPL_ElectroRAIN ) { return Spell_Logic_ElectroRAIN (manaInvested); };
if (activeSpell == SPL_MeteorRAIN ) { return Spell_Logic_MeteorRAIN (manaInvested); };
if (activeSpell == SPL_ElectroBall ) { return Spell_Logic_ElectroBall (manaInvested); };
if (activeSpell == SPL_TrfTortle ) { return Spell_Logic_TrfTortle (manaInvested); };
Spell_Transform_Alle.d (całe):
// *********************
// Alle Transform Spells
// *********************
const int SPL_Cost_TrfSheep = 10;
const int SPL_Cost_TrfScavenger = 10;
const int SPL_Cost_TrfGiantRat = 10;
const int SPL_Cost_TrfGiantBug = 10;
const int SPL_Cost_TrfWolf = 10;
const int SPL_Cost_TrfWaran = 10;
const int SPL_Cost_TrfSnapper = 10;
const int SPL_Cost_TrfWarg = 10;
const int SPL_Cost_TrfFireWaran = 10;
const int SPL_Cost_TrfLurker = 10;
const int SPL_Cost_TrfShadowbeast = 10;
const int SPL_Cost_TrfDragonSnapper = 10;
const int SPL_Cost_TrfTortle = 10;
// ------ Instanz für alle Transform-Sprüche ------
INSTANCE Spell_Transform (C_Spell_Proto)
{
time_per_mana = 0;
spelltype = SPELL_NEUTRAL;
targetCollectAlgo = TARGET_COLLECT_NONE;
canTurnDuringInvest = 0;
};
// ------ Schaf ------
func int Spell_Logic_TrfSheep (var int manaInvested)
{
if ((Npc_GetActiveSpellIsScroll(self) && (self.attribute[ATR_MANA] >= SPL_Cost_Scroll)))
|| (self.attribute[ATR_MANA] >= SPL_Cost_TrfSheep)
{
self.attribute[ATR_MANA] = self.attribute[ATR_MANA] - SPL_Cost_TrfSheep;
Npc_SetActiveSpellInfo(self, Sheep);
return SPL_SENDCAST;
}
else
{
return SPL_SENDSTOP;
};
};
// ------ Scavenger ------
func int Spell_Logic_TrfScavenger (var int manaInvested)
{
if ((Npc_GetActiveSpellIsScroll(self) && (self.attribute[ATR_MANA] >= SPL_Cost_Scroll)))
|| (self.attribute[ATR_MANA] >= SPL_Cost_TrfScavenger)
{
self.attribute[ATR_MANA] = self.attribute[ATR_MANA] - SPL_Cost_TrfScavenger;
Npc_SetActiveSpellInfo(self, Scavenger);
return SPL_SENDCAST;
}
else
{
return SPL_SENDSTOP;
};
};
// ------ Giant Rat ------
func int Spell_Logic_TrfGiantRat (var int manaInvested)
{
if ((Npc_GetActiveSpellIsScroll(self) && (self.attribute[ATR_MANA] >= SPL_Cost_Scroll)))
|| (self.attribute[ATR_MANA] >= SPL_Cost_TrfGiantRat)
{
self.attribute[ATR_MANA] = self.attribute[ATR_MANA] - SPL_Cost_TrfGiantRat;
Npc_SetActiveSpellInfo(self, Giant_Rat);
return SPL_SENDCAST;
}
else
{
return SPL_SENDSTOP;
};
};
// ------ Giant BUG ------
func int Spell_Logic_TrfGiantBug (var int manaInvested)
{
if ((Npc_GetActiveSpellIsScroll(self) && (self.attribute[ATR_MANA] >= SPL_Cost_Scroll)))
|| (self.attribute[ATR_MANA] >= SPL_Cost_TrfGiantBug)
{
self.attribute[ATR_MANA] = self.attribute[ATR_MANA] - SPL_Cost_TrfGiantBug;
Npc_SetActiveSpellInfo(self, Giant_Bug);
return SPL_SENDCAST;
}
else
{
return SPL_SENDSTOP;
};
};
// ------ Wolf ------
func int Spell_Logic_TrfWolf (var int manaInvested)
{
if ((Npc_GetActiveSpellIsScroll(self) && (self.attribute[ATR_MANA] >= SPL_Cost_Scroll)))
|| (self.attribute[ATR_MANA] >= SPL_Cost_TrfWolf)
{
self.attribute[ATR_MANA] = self.attribute[ATR_MANA] - SPL_Cost_TrfWolf;
Npc_SetActiveSpellInfo(self, Wolf);
return SPL_SENDCAST;
}
else
{
return SPL_SENDSTOP;
};
};
// ------ Waran ------
func int Spell_Logic_TrfWaran (var int manaInvested)
{
if ((Npc_GetActiveSpellIsScroll(self) && (self.attribute[ATR_MANA] >= SPL_Cost_Scroll)))
|| (self.attribute[ATR_MANA] >= SPL_Cost_TrfWaran)
{
self.attribute[ATR_MANA] = self.attribute[ATR_MANA] - SPL_Cost_TrfWaran;
Npc_SetActiveSpellInfo(self, Waran);
return SPL_SENDCAST;
}
else
{
return SPL_SENDSTOP;
};
};
// ------ Snapper ------
func int Spell_Logic_TrfSnapper (var int manaInvested)
{
if ((Npc_GetActiveSpellIsScroll(self) && (self.attribute[ATR_MANA] >= SPL_Cost_Scroll)))
|| (self.attribute[ATR_MANA] >= SPL_Cost_TrfSnapper)
{
self.attribute[ATR_MANA] = self.attribute[ATR_MANA] - SPL_Cost_TrfSnapper;
Npc_SetActiveSpellInfo(self, Snapper);
return SPL_SENDCAST;
}
else
{
return SPL_SENDSTOP;
};
};
// ------ Warg ------
func int Spell_Logic_TrfWarg (var int manaInvested)
{
if ((Npc_GetActiveSpellIsScroll(self) && (self.attribute[ATR_MANA] >= SPL_Cost_Scroll)))
|| (self.attribute[ATR_MANA] >= SPL_Cost_TrfWarg)
{
self.attribute[ATR_MANA] = self.attribute[ATR_MANA] - SPL_Cost_TrfWarg;
Npc_SetActiveSpellInfo(self, Warg);
return SPL_SENDCAST;
}
else
{
return SPL_SENDSTOP;
};
};
// ------ Feuerwaran ------
func int Spell_Logic_TrfFireWaran (var int manaInvested)
{
if ((Npc_GetActiveSpellIsScroll(self) && (self.attribute[ATR_MANA] >= SPL_Cost_Scroll)))
|| (self.attribute[ATR_MANA] >= SPL_Cost_TrfFireWaran)
{
self.attribute[ATR_MANA] = self.attribute[ATR_MANA] - SPL_Cost_TrfFireWaran;
Npc_SetActiveSpellInfo(self, FireWaran);
return SPL_SENDCAST;
}
else
{
return SPL_SENDSTOP;
};
};
// ------ Lurker ------
func int Spell_Logic_TrfLurker (var int manaInvested)
{
if ((Npc_GetActiveSpellIsScroll(self) && (self.attribute[ATR_MANA] >= SPL_Cost_Scroll)))
|| (self.attribute[ATR_MANA] >= SPL_Cost_TrfLurker)
{
self.attribute[ATR_MANA] = self.attribute[ATR_MANA] - SPL_Cost_TrfLurker;
Npc_SetActiveSpellInfo(self, Lurker);
return SPL_SENDCAST;
}
else
{
return SPL_SENDSTOP;
};
};
// ------ Shadowbeast ------
func int Spell_Logic_TrfShadowbeast (var int manaInvested)
{
if ((Npc_GetActiveSpellIsScroll(self) && (self.attribute[ATR_MANA] >= SPL_Cost_Scroll)))
|| (self.attribute[ATR_MANA] >= SPL_Cost_TrfShadowbeast)
{
self.attribute[ATR_MANA] = self.attribute[ATR_MANA] - SPL_Cost_TrfShadowbeast;
Npc_SetActiveSpellInfo(self, Shadowbeast);
return SPL_SENDCAST;
}
else
{
return SPL_SENDSTOP;
};
};
// ------ Dragon Snapper ------
func int Spell_Logic_TrfDragonSnapper (var int manaInvested)
{
if ((Npc_GetActiveSpellIsScroll(self) && (self.attribute[ATR_MANA] >= SPL_Cost_Scroll)))
|| (self.attribute[ATR_MANA] >= SPL_Cost_TrfDragonSnapper)
{
self.attribute[ATR_MANA] = self.attribute[ATR_MANA] - SPL_Cost_TrfDragonSnapper;
Npc_SetActiveSpellInfo(self, DragonSnapper);
return SPL_SENDCAST;
}
else
{
return SPL_SENDSTOP;
};
};
// ------ Tortle ------
func int Spell_Logic_TrfTortle (var int manaInvested)
{
if ((Npc_GetActiveSpellIsScroll(self) && (self.attribute[ATR_MANA] >= SPL_Cost_Scroll)))
|| (self.attribute[ATR_MANA] >= SPL_Cost_TrfTortle)
{
self.attribute[ATR_MANA] = self.attribute[ATR_MANA] - SPL_Cost_TrfTortle;
Npc_SetActiveSpellInfo(self, Tortle);
return SPL_SENDCAST;
}
else
{
return SPL_SENDSTOP;
};
};