Właśnie jest jedna sprawa ... Udało mi się zrobić jeden teleport pt ''TELEPORT FANATYCY'' i jako, że mi Reservedy nie działały to dałem temu ID 18 zamiast np RESERVED_98 i dałem jego linijkę pod ostatnią z run, która zawierała ID 17. ID 18 zawiera LIGHT ... Lecz dziwne bo działa mi ta runa i normalnie teleportuje. Lecz kiedy chciałem wstawić 5 nowych run to dawałem 19 - 20 - 21 - 22 - 23 ... I tak zacząłem kopiować i wklejać linijki z TEXT, ALLE_TELEPORT itd ... Oczywiście każdemu pozmieniałem np z TeleportFanatic dałem na TeleportRobber ... Gothica mi całe szczęście nie wywaliło. Przywołałem zatem wszystkie runy. Chciałem się przeteleportować, lecz tak jak na górze napisałem, że postać robi animacje a potem ją kończy nie teleportując się. Przesiedziałem przy tym kilka godzin porównując tą runę, która mi się udała do tych przez które postać nie chce sie przeteleportować. Przyjrzałem się również dokładnie waypointom i choć ta runa, która działa posiada waypoint ''TELEPORT FANATYCY'' to np waypoint ''TELEPORT ZABOJCY'' nie działa (czyli postać się nie chce tepnąć). Jedyna różnica jaką zauważyłem to ID. Czyli ta, która działa ma 18 a reszcie dawałem 19-20-21-22-23 ... Dziwne, że ta runa mi działa skoro ID 18 ma również Spell ''LIGHT'' ... 19 ma ''FIREBOLT'' 20 ma ''ICEBOLT'' itd ... Uznałem, że spróbuję zrobić ponownie jak na poradniku czyli Reserved. I udało się w takim sensie, że mi gothica nie wywalało ... ALE dziwne jest to, że postać dalej nie chce się przeteleportować ... Mogę wysłać wszystkie linijki tego teleportu:
Constans:
const int SPL_TeleportRobber = 19;
"Teleport", // 19 SPL_TeleportRobber
"SUM", // 19 SPL_TeleportRobber
Proces_Mana
if (activeSpell == SPL_TeleportRobber ) { return Spell_Logic_TeleportRobber (manaInvested); };
Teleport_Alle
// ------ Obóz Zabójców------
func int Spell_Logic_TeleportRobber (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_TeleportRobber()
{
B_PrintTeleportTooFarAway (AddonWorld_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, "TELEPORT ZABOJCY");
AI_PlayAni (self, "T_Practicemagic" );
};
Runen
const int Value_Ru_TeleportRobber = 500;
INSTANCE ItRu_TeleportRobber (C_Item)
{
name = NAME_Rune;
mainflag = ITEM_KAT_RUNE;
flags = 0;
value = Value_Ru_TeleportRobber;
visual = "ItRu_TeleportFarm.3ds";
material = MAT_STONE;
spell = SPL_TeleportRobber;
wear = WEAR_EFFECT;
effect = "SPELLFX_WEAKGLIMMER";
description = NAME_SPL_TeleportRobber;
TEXT [1] = NAME_Manakosten;
COUNT [1] = SPL_COST_TELEPORT;
TEXT [5] = NAME_Value;
COUNT [5] = value;
};
TEXT
"Teleport do Obozu Zabójców", // 19 SPL_TeleportRobber
const string NAME_SPL_TeleportRobber = "Do Obozu Zabójców";