-
Array-Anzahl ändern (Spells machen)
Hi, ich schon wieder.
Ich habe vor einen neuen Teleportzauber zu erstellen. Hat soweit geklappt, nur dass ich beim anwählen der Rune einen Access-Violation-Absturz bekomme. Ich hab dann gemerkt dass ich die MAX_SPELLS nicht angehoben habe und hab dies nun getan.
Code:
////////////////////////////////////////////////////////////////////////////////
//
// Spells: ID-Konstanten
//
// Paladin-Runen
CONST int SPL_PalLight = 0;
CONST int SPL_PalLightHeal = 1;
CONST int SPL_PalHolyBolt = 2;
CONST int SPL_PalMediumHeal = 3;
CONST int SPL_PalRepelEvil = 4;
CONST int SPL_PalFullHeal = 5;
CONST int SPL_PalDestroyEvil = 6;
// Teleport-Runen
CONST int SPL_PalTeleportSecret = 7;
CONST int SPL_TeleportSeaport = 8;
CONST int SPL_TeleportMonastery = 9;
CONST int SPL_TeleportFarm = 10;
CONST int SPL_TeleportXardas = 11;
CONST int SPL_TeleportPassNW = 12;
CONST int SPL_TeleportPassOW = 13;
CONST int SPL_TeleportOC = 14;
CONST int SPL_TeleportOWDemonTower = 15;
CONST int SPL_TeleportTaverne = 16;
CONST int SPL_Teleport_3 = 17;
// Kreis 1
CONST int SPL_Light = 18;
CONST int SPL_Firebolt = 19;
// Kreis 2
CONST int SPL_Icebolt = 20;
// Kreis 1
CONST int SPL_LightHeal = 21; // SPL_Heal Instant!
CONST int SPL_SummonGoblinSkeleton = 22;
// Kreis 2
CONST int SPL_InstantFireball = 23;
// Kreis 1
CONST int SPL_Zap = 24; // ###UNCONSCIOUS###
// Kreis 2
CONST int SPL_SummonWolf = 25;
CONST int SPL_WindFist = 26; // ###UNCONSCIOUS###
CONST int SPL_Sleep = 27;
// Kreis 3
CONST int SPL_MediumHeal = 28;
CONST int SPL_LightningFlash = 29;
CONST int SPL_ChargeFireball = 30;
CONST int SPL_SummonSkeleton = 31;
CONST int SPL_Fear = 32;
CONST int SPL_IceCube = 33;
// Kreis 4
CONST int SPL_ChargeZap = 34;
CONST int SPL_SummonGolem = 35;
CONST int SPL_DestroyUndead = 36;
CONST int SPL_Pyrokinesis = 37;
// Kreis 5
CONST int SPL_Firestorm = 38;
CONST int SPL_IceWave = 39;
CONST int SPL_SummonDemon = 40;
CONST int SPL_FullHeal = 41;
// Kreis 6
CONST int SPL_Firerain = 42;
CONST int SPL_BreathOfDeath = 43;
CONST int SPL_MassDeath = 44;
CONST int SPL_ArmyOfDarkness = 45;
CONST int SPL_Shrink = 46;
// Scrolls
CONST int SPL_TrfSheep = 47;
CONST int SPL_TrfScavenger = 48;
CONST int SPL_TrfGiantRat = 49;
CONST int SPL_TrfGiantBug = 50;
CONST int SPL_TrfWolf = 51;
CONST int SPL_TrfWaran = 52;
CONST int SPL_TrfSnapper = 53;
CONST int SPL_TrfWarg = 54;
CONST int SPL_TrfFireWaran = 55;
CONST int SPL_TrfLurker = 56;
CONST int SPL_TrfShadowbeast = 57;
CONST int SPL_TrfDragonSnapper = 58;
CONST int SPL_Charm = 59; // MAX_SPELL (Gothic)
// Kreis 5
CONST int SPL_MasterOfDisaster = 60;
// ???
CONST int SPL_Deathbolt = 61;
CONST int SPL_Deathball = 62;
CONST int SPL_ConcussionBolt = 63;
CONST int SPL_Reserved_64 = 64; // SPL_E
CONST int SPL_Reserved_65 = 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;
//Mod-Runen
CONST int SPL_TeleportInselkloster = 100;
CONST int MAX_SPELL = 101; // 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
"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
//Mod-Runen
"Teleport", // 100 SPL_TeleportInselkloster
};
////////////////////////////////////////////////////////////////////////////////
//
// 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
"XXX", // 64 SPL_Reserved_64
"XXX", // 65 SPL_Reserved_65
"XXX", // 66 SPL_Reserved_66
"XXX", // 67 SPL_Reserved_67
"XXX", // 68 SPL_Reserved_68
"XXX", // 69 SPL_Reserved_69
// Magick (Wasser)
"STM", // 70 SPL_Thunderstorm
"WHI", // 71 SPL_Whirlwind
"WND", // 72 SPL_WaterFist
"FBT", // 73 SPL_IceLance
"SLE", // 74 SPL_Inflate
"WND", // 75 SPL_Geyser
"FEA", // 76 SPL_Waterwall
"XXX", // 77 SPL_Reserved_77
"XXX", // 78 SPL_Reserved_78
"XXX", // 79 SPL_Reserved_79
// Magick (Maya)
"FBT", // 80 SPL_Plague
"FBT", // 81 SPL_Swarm
"FRZ", // 82 SPL_GreenTentacle
"FEA", // 83 SPL_Earthquake
"SUM", // 84 SPL_SummonGuardian
"WND", // 85 SPL_Energyball
"WND", // 86 SPL_SuckEnergy
"WND", // 87 SPL_Skull
"SUM", // 88 SPL_SummonZombie
"SUM", // 89 SPL_SummonMud
// ...
"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
//Modrunen
"HEA", // 100 SPL_TeleportInselkloster
};
Ich bekomm trotz keinem augenscheinlichen Fehler (ich hab wirklich eine Stunde diesen Fehler gesucht) eine simple Zeichenfehlermeldung: Expected '}' (line 796. Hab die Zeile markiert (rot), aber da ist kein Zeichenfehler. Auch im drumherum der drei Sparten ist nichts. Wieso bekomme ich diesen verfluchten simplen Fehler?
-
Man kann nicht einfach zusätzliche Zauber einfügen, das ist nunmal nicht möglich. Daher erwartet Gothic auch, dass nach der maximalen Anzahl die Funktion mit } geschlossen wird, bei Dir ist dort aber noch eine zusätzliche Zeile.
-
 Zitat von Milky-Way
Man kann nicht einfach zusätzliche Zauber einfügen, das ist nunmal nicht möglich. Daher erwartet Gothic auch, dass nach der maximalen Anzahl die Funktion mit } geschlossen wird, bei Dir ist dort aber noch eine zusätzliche Zeile.
Wie es ist nicht möglich? Heißt das man kann keine neuen Zauber einfügen sondern muss vorhandene editieren?
-
Code:
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;
Die scheinen für neue Zauber da zu sein...
-
 Zitat von Lehona
Code:
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;
Die scheinen für neue Zauber da zu sein...
Ja, sieht so aus.. Jetzt wird mir das auch klar. Hab keine Ahnung von Arrays und hab noch nie neue Zauber erstellt.. Ich werds jetzt nochmal probieren. Danke schonmal bis hier, ich wär da eben nich weitergekommen.
-
Ja, jetzt kann ich die Teleportrune auch anlegen. Nur benutzen geht nicht, der Hero zuckt beim casten einfach mit den Schultern als hätte er kein Mana mehr (am Mana liegts nicht, habs per Marvin getestet). Hier mal die gesamten Scripts zu dem Teleportzauber:
Code:
INSTANCE ItRu_TeleportInselkloster (C_Item)
{
name = NAME_Rune;
mainflag = ITEM_KAT_RUNE;
flags = 0;
value = Value_Ru_TeleportCloister;
visual = "ItRu_TeleportXardas.3ds";
material = MAT_STONE;
spell = SPL_Reserved_90;
wear = WEAR_EFFECT;
effect = "SPELLFX_WEAKGLIMMER";
description = NAME_SPL_TeleportCloister;
TEXT [1] = NAME_Manakosten;
COUNT [1] = SPL_COST_TELEPORT;
TEXT [5] = NAME_Value;
COUNT [5] = value;
};
Code:
// ------ zum Kloster ------
FUNC int Spell_Logic_TeleportInselkloster (VAR int manaInvested)
{
IF (Npc_GetActiveSpellIsScroll(self) && (self.attribute[ATR_MANA] >= SPL_Cost_Scroll))
{
RETURN SPL_SENDCAST;
}
ELSE IF (self.attribute[ATR_MANA] >= SPL_Cost_Teleport)
{
RETURN SPL_SENDCAST;
};
RETURN SPL_NEXTLEVEL;
};
FUNC void Spell_Cast_TeleportInselkloster()
{
B_PrintTeleportTooFarAway (NEWWORLD_ZEN);
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_Teleport;
};
AI_Teleport (self, "KLOSTER_BANNKREIS");
AI_PlayAni (self, "T_HEASHOOT_2_STAND" );
};
Code:
// ----- neu 1.21 Verteiler für die Cast-Funcs -------
FUNC void Spell_Cast_Teleport()
{
IF (Npc_GetActiveSpell(self) == SPL_PalTeleportSecret ) { Spell_Cast_PalTeleportSecret (); };
IF (Npc_GetActiveSpell(self) == SPL_TeleportSeaport ) { Spell_Cast_TeleportSeaport (); };
IF (Npc_GetActiveSpell(self) == SPL_TeleportMonastery ) { Spell_Cast_TeleportMonastery (); };
IF (Npc_GetActiveSpell(self) == SPL_TeleportFarm ) { Spell_Cast_TeleportFarm (); };
IF (Npc_GetActiveSpell(self) == SPL_TeleportXardas ) { Spell_Cast_TeleportXardas (); };
IF (Npc_GetActiveSpell(self) == SPL_TeleportPassNW ) { Spell_Cast_TeleportPassNW (); };
IF (Npc_GetActiveSpell(self) == SPL_TeleportPassOW ) { Spell_Cast_TeleportPassOW (); };
IF (Npc_GetActiveSpell(self) == SPL_TeleportOC ) { Spell_Cast_TeleportOC (); };
IF (Npc_GetActiveSpell(self) == SPL_TeleportOWDemonTower) { Spell_Cast_TeleportOWDemonTower (); };
IF (Npc_GetActiveSpell(self) == SPL_TeleportTaverne ) { Spell_Cast_TeleportTaverne (); };
IF (Npc_GetActiveSpell(self) == SPL_Reserved_90 ) { Spell_Cast_TeleportInselkloster (); };
// if (Npc_GetActiveSpell(self) == SPL_Teleport_3 ) { Spell_Cast_XXX (); };
};
Bitte sagt falls was fehlt, bin auf dem Gebiet Spells ein absoluter Anfänger.
Danke bis hier schonmal.
-
 Zitat von Milky-Way
Man kann nicht einfach zusätzliche Zauber einfügen, das ist nunmal nicht möglich. Daher erwartet Gothic auch, dass nach der maximalen Anzahl die Funktion mit } geschlossen wird, bei Dir ist dort aber noch eine zusätzliche Zeile.
Falsch. Man kann sehr wohl neue Zauber hinzufügen.
Der Fehler im Eröffnungspost ist lediglich das überflüssige ",".
-
 Zitat von Sektenspinner
Falsch. Man kann sehr wohl neue Zauber hinzufügen.
Der Fehler im Eröffnungspost ist lediglich das überflüssige ",".
Meiner Erfahrung nach funktionieren solche Array-Erweiterungen aber nicht
-
 Zitat von Milky-Way
Meiner Erfahrung nach funktionieren solche Array-Erweiterungen aber nicht 
Meine Zauber gehen bis 114 und gehen alle. Es gibt Konstanten die man nicht anpassen kann. MAX_SPELL gehört nicht dazu.
Zumindest mit der G2 Reportversion. Ich weiß nicht ob es auf anderen Plattformen geht.
Geändert von Sektenspinner (25.05.2010 um 20:31 Uhr)
-
 Zitat von Earnur
Ja, jetzt kann ich die Teleportrune auch anlegen. Nur benutzen geht nicht, der Hero zuckt beim casten einfach mit den Schultern als hätte er kein Mana mehr (am Mana liegts nicht, habs per Marvin getestet). Hier mal die gesamten Scripts zu dem Teleportzauber:
Code:
INSTANCE ItRu_TeleportInselkloster (C_Item)
{
name = NAME_Rune;
mainflag = ITEM_KAT_RUNE;
flags = 0;
value = Value_Ru_TeleportCloister;
visual = "ItRu_TeleportXardas.3ds";
material = MAT_STONE;
spell = SPL_Reserved_90;
wear = WEAR_EFFECT;
effect = "SPELLFX_WEAKGLIMMER";
description = NAME_SPL_TeleportCloister;
TEXT [1] = NAME_Manakosten;
COUNT [1] = SPL_COST_TELEPORT;
TEXT [5] = NAME_Value;
COUNT [5] = value;
};
Code:
// ------ zum Kloster ------
FUNC int Spell_Logic_TeleportInselkloster (VAR int manaInvested)
{
IF (Npc_GetActiveSpellIsScroll(self) && (self.attribute[ATR_MANA] >= SPL_Cost_Scroll))
{
RETURN SPL_SENDCAST;
}
ELSE IF (self.attribute[ATR_MANA] >= SPL_Cost_Teleport)
{
RETURN SPL_SENDCAST;
};
RETURN SPL_NEXTLEVEL;
};
FUNC void Spell_Cast_TeleportInselkloster()
{
B_PrintTeleportTooFarAway (NEWWORLD_ZEN);
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_Teleport;
};
AI_Teleport (self, "KLOSTER_BANNKREIS");
AI_PlayAni (self, "T_HEASHOOT_2_STAND" );
};
Code:
// ----- neu 1.21 Verteiler für die Cast-Funcs -------
FUNC void Spell_Cast_Teleport()
{
IF (Npc_GetActiveSpell(self) == SPL_PalTeleportSecret ) { Spell_Cast_PalTeleportSecret (); };
IF (Npc_GetActiveSpell(self) == SPL_TeleportSeaport ) { Spell_Cast_TeleportSeaport (); };
IF (Npc_GetActiveSpell(self) == SPL_TeleportMonastery ) { Spell_Cast_TeleportMonastery (); };
IF (Npc_GetActiveSpell(self) == SPL_TeleportFarm ) { Spell_Cast_TeleportFarm (); };
IF (Npc_GetActiveSpell(self) == SPL_TeleportXardas ) { Spell_Cast_TeleportXardas (); };
IF (Npc_GetActiveSpell(self) == SPL_TeleportPassNW ) { Spell_Cast_TeleportPassNW (); };
IF (Npc_GetActiveSpell(self) == SPL_TeleportPassOW ) { Spell_Cast_TeleportPassOW (); };
IF (Npc_GetActiveSpell(self) == SPL_TeleportOC ) { Spell_Cast_TeleportOC (); };
IF (Npc_GetActiveSpell(self) == SPL_TeleportOWDemonTower) { Spell_Cast_TeleportOWDemonTower (); };
IF (Npc_GetActiveSpell(self) == SPL_TeleportTaverne ) { Spell_Cast_TeleportTaverne (); };
IF (Npc_GetActiveSpell(self) == SPL_Reserved_90 ) { Spell_Cast_TeleportInselkloster (); };
// if (Npc_GetActiveSpell(self) == SPL_Teleport_3 ) { Spell_Cast_XXX (); };
};
Bitte sagt falls was fehlt, bin auf dem Gebiet Spells ein absoluter Anfänger.
Danke bis hier schonmal.
Ja ich buddel hier einfach mal ein bisschen. Ich hab das Problem dort damals gelöst bekommen - bloß keine Ahnung mehr wie. Nun hab ich ne neue Teleportrune in der Mache und exakt das selbe Problem, nur keine Idee wie ichs lösen kann. Weiß jemand zufällig was der Fehler beim o.g. Zitat war?
Danke im Voraus
-
_work\data\Scripts\Content\AI\Magic\Spell_ProcessMana.d wurde auch erweitert?
ps: Versuche es zuerst mit dem vorgesehenen ItRu_Teleport_3 (SPL_Teleport_3), bevor du eine andere ID verwendest (vielleicht ist der Bereich der Teleports von der Engine eigeschränkt).
Geändert von NicoDE (14.06.2011 um 14:31 Uhr)
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
|