Als erstes... Ich bin kein Modder der sich seit Jahren mit der ZEngine beschäfigt hat.
Ich habe etliche große Projekte in anderen Spielen realisiert und getestet!
Was nicht bedeutet das ich in den Deadalus Code eingearbeitet bin.
Ich möchte lediglich meine erfahrungen in meiner Deadalus Lehre teilen!
Hier mal meine Scripts um als Paladin oder Gildenloser auch den Weg der Magie zu ermöglichen!
Es sind momentan nur die Lehren der Feuermagier realisiert.
Und ich habe mich noch nicht um das Layout der Bücher selbst gekümmert.
Sie bedienen sich momentan noch alle am selben Buch layout.
Desweiteren habe ich ermöglicht das man Buch 2 nicht lesen kann bevor man nicht Buch 1 gelesen hat.
Die Bücher zum erlernen der Runen sind in jedem Kreis möglich!
Heißt, man kann Runenbuch 1 noch lernen wenn man schon Kreis 6 erreicht hat.
(Ich entschuldige mich auch für Rechtschreibfehler)
In eine neue bleiebige .d Script kopieren
unter _work\Data\Scripts\Content\Items\(IT_Mod_Written.d)
Diese funktionen unter _work\Data\Scripts\Content\Story\Dialog_Mobsis\(BookstandMod.d)
Man könnte die func void's der Runen sicherlich auch in die Items .d kopieren,
doch ich war mir nicht sicher und wollte ein funktionieren wirklich gewährleisten.
Und dann noch ein paar einträge in die _work\Data\Scripts\Content\Story\B_GiveTradeInv Scripts hinzufügen!
GothicStarter_mod.exe, Skripte Parsen, Spiel starten und Magie +Runen lernen
Möchte anmerken das kein Buch für den 6. Kreis erstellt wurde,
da ich den Ablauf der Story nicht schwerwiegend ändern wollte.
Man kann in Pyrokar's Dialog Script folgende zeile ändern um auch vor dem Kapitel 6 diesen zu lernen
Ich habe etliche große Projekte in anderen Spielen realisiert und getestet!
Was nicht bedeutet das ich in den Deadalus Code eingearbeitet bin.
Ich möchte lediglich meine erfahrungen in meiner Deadalus Lehre teilen!
Hier mal meine Scripts um als Paladin oder Gildenloser auch den Weg der Magie zu ermöglichen!
Es sind momentan nur die Lehren der Feuermagier realisiert.
Und ich habe mich noch nicht um das Layout der Bücher selbst gekümmert.
Sie bedienen sich momentan noch alle am selben Buch layout.
Desweiteren habe ich ermöglicht das man Buch 2 nicht lesen kann bevor man nicht Buch 1 gelesen hat.
Die Bücher zum erlernen der Runen sind in jedem Kreis möglich!
Heißt, man kann Runenbuch 1 noch lernen wenn man schon Kreis 6 erreicht hat.
(Ich entschuldige mich auch für Rechtschreibfehler)
In eine neue bleiebige .d Script kopieren
unter _work\Data\Scripts\Content\Items\(IT_Mod_Written.d)
Code:
// Zauberbücher der Magischen Kreise, können käuflich bei Isgaroth, Gorax und Cronos erworben werden.
// Band 1 (1000 Gold) Band 2 (2000 Gold) Band 3 (3000 Gold) Band 4 (4000 Gold) Band 5 (5000 Gold)
var int abletolearn;
var int Lerne_MagieA;
var int Lerne_MagieB;
var int Lerne_MagieC;
var int Lerne_MagieD;
var int Lerne_MagieE;
instance ItWr_LerneMagie_1(C_Item)
{
name = "Der 1. Kreis";
mainflag = ITEM_KAT_DOCS;
flags = 0;
value = 1000;
visual = "ItWr_Book_02_04.3ds";
material = MAT_LEATHER;
scemeName = "MAP";
description = "Die göttliche Gabe Band I";
text[2] = "Das Buch lehrt den 1. Kreis";
text[3] = "der Feuermagier";
text[5] = NAME_Value;
count[5] = value;
on_state[0] = UseLerneMagieA;
};
func void UseLerneMagieA()
{
var int nDocID;
if(Lerne_MagieA == FALSE)
{
Npc_SetTalentSkill(self,NPC_TALENT_MAGE,1);
Npc_SetTalentSkill(self,NPC_TALENT_RUNES,1);
AI_PrintScreen("1. Kreis",-1,17,FONT_Screen,6);
AI_PrintScreen("Runen herstellen",-1,20,FONT_Screen,6);
Lerne_MagieA = TRUE;
Snd_Play("Levelup");
};
nDocID = Doc_Create();
Doc_SetPages(nDocID,2);
Doc_SetPage(nDocID,0,"Book_Mage_L.tga",0);
Doc_SetPage(nDocID,1,"Book_Mage_R.tga",0);
Doc_SetFont(nDocID,-1,"font_15_book.tga");
Doc_SetMargins(nDocID,0,275,20,30,20,1);
Doc_PrintLine(nDocID,0,"");
Doc_PrintLine(nDocID,0,"Wahre Macht");
Doc_PrintLine(nDocID,0,"");
Doc_SetFont(nDocID,-1,"font_10_book.tga");
Doc_PrintLine(nDocID,0,"");
Doc_PrintLine(nDocID,0,"");
Doc_PrintLines(nDocID,0,"Die heilige Pflicht des Kundigen");
Doc_PrintLine(nDocID,0,"");
Doc_PrintLine(nDocID,0,"");
Doc_PrintLines(nDocID,0,"Es ist seine Macht, die den Magus von den normalen Menschen unterscheidet. Er, ausgestattet mit der Fähigkeit göttliche Kraft zu beeinflussen, ist ein Wesen, für welches die normalen Grenzen des Sterblichen nicht gelten müssen.");
Doc_SetMargins(nDocID,-1,30,20,275,20,1);
Doc_PrintLine(nDocID,1,"");
Doc_PrintLine(nDocID,1,"");
Doc_PrintLine(nDocID,1,"");
Doc_PrintLine(nDocID,1,"");
Doc_PrintLine(nDocID,1,"");
Doc_PrintLine(nDocID,1,"");
Doc_PrintLines(nDocID,1,"Hat der Magus erst einmal einen Grad erreicht, der es ihm ermöglicht die Grenzen seines Daseins zu sprengen, so kann er sich selbst auf eine Stufe über der des normalen Sterblichen stellen. Er kann Grenzen von Raum und Zeit durchdringen, selbst das Ende allen Seins, der Tod, ist kein Hindernis auf seinem Weg.");
Doc_Show(nDocID);
};
instance ItWr_LerneMagie_2(C_Item)
{
name = "Der 2. Kreis";
mainflag = ITEM_KAT_DOCS;
flags = 0;
value = 2000;
visual = "ItWr_Book_02_04.3ds";
material = MAT_LEATHER;
scemeName = "MAP";
description = "Die göttliche Gabe Band II";
text[2] = "Das Buch lehrt den 2. Kreis";
text[3] = "der Feuermagier";
text[5] = NAME_Value;
count[5] = value;
on_state[0] = UseLerneMagieB;
};
func void UseLerneMagieB()
{
var int nDocID;
abletolearn = 0;
if((Npc_GetTalentSkill(self,NPC_TALENT_MAGE) == 1) && (Lerne_MagieA == TRUE) && (Lerne_MagieB == FALSE))
{
Npc_SetTalentSkill(self,NPC_TALENT_MAGE,2);
abletolearn = abletolearn + 1;
AI_PrintScreen("2. Kreis",-1,20,FONT_Screen,4);
Lerne_MagieB = TRUE;
Snd_Play("Levelup");
};
nDocID = Doc_Create();
Doc_SetPages(nDocID,2);
Doc_SetPage(nDocID,0,"Book_Mage_L.tga",0);
Doc_SetPage(nDocID,1,"Book_Mage_R.tga",0);
Doc_SetFont(nDocID,-1,"font_15_book.tga");
Doc_SetMargins(nDocID,0,275,20,30,20,1);
Doc_PrintLine(nDocID,0,"");
Doc_PrintLine(nDocID,0,"Wahre Macht");
Doc_PrintLine(nDocID,0,"");
Doc_SetFont(nDocID,-1,"font_10_book.tga");
Doc_PrintLine(nDocID,0,"");
Doc_PrintLine(nDocID,0,"");
Doc_PrintLines(nDocID,0,"Die heilige Pflicht des Kundigen");
Doc_PrintLine(nDocID,0,"");
Doc_PrintLine(nDocID,0,"");
Doc_PrintLines(nDocID,0,"Es ist seine Macht, die den Magus von den normalen Menschen unterscheidet. Er, ausgestattet mit der Fähigkeit göttliche Kraft zu beeinflussen, ist ein Wesen, für welches die normalen Grenzen des Sterblichen nicht gelten müssen.");
Doc_SetMargins(nDocID,-1,30,20,275,20,1);
Doc_PrintLine(nDocID,1,"");
Doc_PrintLine(nDocID,1,"");
Doc_PrintLine(nDocID,1,"");
Doc_PrintLine(nDocID,1,"");
Doc_PrintLine(nDocID,1,"");
Doc_PrintLine(nDocID,1,"");
Doc_PrintLines(nDocID,1,"Hat der Magus erst einmal einen Grad erreicht, der es ihm ermöglicht die Grenzen seines Daseins zu sprengen, so kann er sich selbst auf eine Stufe über der des normalen Sterblichen stellen. Er kann Grenzen von Raum und Zeit durchdringen, selbst das Ende allen Seins, der Tod, ist kein Hindernis auf seinem Weg.");
Doc_Show(nDocID);
};
instance ItWr_LerneMagie_3(C_Item)
{
name = "Der 3. Kreis";
mainflag = ITEM_KAT_DOCS;
flags = 0;
value = 3000;
visual = "ItWr_Book_02_04.3ds";
material = MAT_LEATHER;
scemeName = "MAP";
description = "Die göttliche Gabe Band III";
text[2] = "Das Buch lehrt den 3. Kreis";
text[3] = "der Feuermagier";
text[5] = NAME_Value;
count[5] = value;
on_state[0] = UseLerneMagieC;
};
func void UseLerneMagieC()
{
var int nDocID;
abletolearn = 0;
if((Npc_GetTalentSkill(self,NPC_TALENT_MAGE) == 2) && (Lerne_MagieB == TRUE) && (Lerne_MagieC == FALSE))
{
Npc_SetTalentSkill(self,NPC_TALENT_MAGE,3);
abletolearn = abletolearn + 1;
AI_PrintScreen("3. Kreis",-1,20,FONT_Screen,4);
Lerne_MagieC = TRUE;
Snd_Play("Levelup");
};
nDocID = Doc_Create();
Doc_SetPages(nDocID,2);
Doc_SetPage(nDocID,0,"Book_Mage_L.tga",0);
Doc_SetPage(nDocID,1,"Book_Mage_R.tga",0);
Doc_SetFont(nDocID,-1,"font_15_book.tga");
Doc_SetMargins(nDocID,0,275,20,30,20,1);
Doc_PrintLine(nDocID,0,"");
Doc_PrintLine(nDocID,0,"Wahre Macht");
Doc_PrintLine(nDocID,0,"");
Doc_SetFont(nDocID,-1,"font_10_book.tga");
Doc_PrintLine(nDocID,0,"");
Doc_PrintLine(nDocID,0,"");
Doc_PrintLines(nDocID,0,"Die heilige Pflicht des Kundigen");
Doc_PrintLine(nDocID,0,"");
Doc_PrintLine(nDocID,0,"");
Doc_PrintLines(nDocID,0,"Es ist seine Macht, die den Magus von den normalen Menschen unterscheidet. Er, ausgestattet mit der Fähigkeit göttliche Kraft zu beeinflussen, ist ein Wesen, für welches die normalen Grenzen des Sterblichen nicht gelten müssen.");
Doc_SetMargins(nDocID,-1,30,20,275,20,1);
Doc_PrintLine(nDocID,1,"");
Doc_PrintLine(nDocID,1,"");
Doc_PrintLine(nDocID,1,"");
Doc_PrintLine(nDocID,1,"");
Doc_PrintLine(nDocID,1,"");
Doc_PrintLine(nDocID,1,"");
Doc_PrintLines(nDocID,1,"Hat der Magus erst einmal einen Grad erreicht, der es ihm ermöglicht die Grenzen seines Daseins zu sprengen, so kann er sich selbst auf eine Stufe über der des normalen Sterblichen stellen. Er kann Grenzen von Raum und Zeit durchdringen, selbst das Ende allen Seins, der Tod, ist kein Hindernis auf seinem Weg.");
Doc_Show(nDocID);
};
instance ItWr_LerneMagie_4(C_Item)
{
name = "Der 4. Kreis";
mainflag = ITEM_KAT_DOCS;
flags = 0;
value = 4000;
visual = "ItWr_Book_02_04.3ds";
material = MAT_LEATHER;
scemeName = "MAP";
description = "Die göttliche Gabe Band IV";
text[2] = "Das Buch lehrt den 4. Kreis";
text[3] = "der Feuermagier";
text[5] = NAME_Value;
count[5] = value;
on_state[0] = UseLerneMagieD;
};
func void UseLerneMagieD()
{
var int nDocID;
abletolearn = 0;
if((Npc_GetTalentSkill(self,NPC_TALENT_MAGE) == 3) && (Lerne_MagieC == TRUE) && (Lerne_MagieD == FALSE))
{
Npc_SetTalentSkill(self,NPC_TALENT_MAGE,4);
abletolearn = abletolearn + 1;
AI_PrintScreen("4. Kreis",-1,20,FONT_Screen,4);
Lerne_MagieD = TRUE;
Snd_Play("Levelup");
};
nDocID = Doc_Create();
Doc_SetPages(nDocID,2);
Doc_SetPage(nDocID,0,"Book_Mage_L.tga",0);
Doc_SetPage(nDocID,1,"Book_Mage_R.tga",0);
Doc_SetFont(nDocID,-1,"font_15_book.tga");
Doc_SetMargins(nDocID,0,275,20,30,20,1);
Doc_PrintLine(nDocID,0,"");
Doc_PrintLine(nDocID,0,"Wahre Macht");
Doc_PrintLine(nDocID,0,"");
Doc_SetFont(nDocID,-1,"font_10_book.tga");
Doc_PrintLine(nDocID,0,"");
Doc_PrintLine(nDocID,0,"");
Doc_PrintLines(nDocID,0,"Die heilige Pflicht des Kundigen");
Doc_PrintLine(nDocID,0,"");
Doc_PrintLine(nDocID,0,"");
Doc_PrintLines(nDocID,0,"Es ist seine Macht, die den Magus von den normalen Menschen unterscheidet. Er, ausgestattet mit der Fähigkeit göttliche Kraft zu beeinflussen, ist ein Wesen, für welches die normalen Grenzen des Sterblichen nicht gelten müssen.");
Doc_SetMargins(nDocID,-1,30,20,275,20,1);
Doc_PrintLine(nDocID,1,"");
Doc_PrintLine(nDocID,1,"");
Doc_PrintLine(nDocID,1,"");
Doc_PrintLine(nDocID,1,"");
Doc_PrintLine(nDocID,1,"");
Doc_PrintLine(nDocID,1,"");
Doc_PrintLines(nDocID,1,"Hat der Magus erst einmal einen Grad erreicht, der es ihm ermöglicht die Grenzen seines Daseins zu sprengen, so kann er sich selbst auf eine Stufe über der des normalen Sterblichen stellen. Er kann Grenzen von Raum und Zeit durchdringen, selbst das Ende allen Seins, der Tod, ist kein Hindernis auf seinem Weg.");
Doc_Show(nDocID);
};
instance ItWr_LerneMagie_5(C_Item)
{
name = "Der 5. Kreis";
mainflag = ITEM_KAT_DOCS;
flags = 0;
value = 5000;
visual = "ItWr_Book_02_04.3ds";
material = MAT_LEATHER;
scemeName = "MAP";
description = "Die göttliche Gabe Band V";
text[2] = "Das Buch lehrt den 5. Kreis";
text[3] = "der Feuermagier";
text[5] = NAME_Value;
count[5] = value;
on_state[0] = UseLerneMagieE;
};
func void UseLerneMagieE()
{
var int nDocID;
abletolearn = 0;
if((Npc_GetTalentSkill(self,NPC_TALENT_MAGE) == 4) && (Lerne_MagieD == TRUE) && (Lerne_MagieE == FALSE))
{
Npc_SetTalentSkill(self,NPC_TALENT_MAGE,5);
abletolearn = abletolearn + 1;
AI_PrintScreen("5. Kreis",-1,20,FONT_Screen,4);
Lerne_MagieE = TRUE;
Snd_Play("Levelup");
};
nDocID = Doc_Create();
Doc_SetPages(nDocID,2);
Doc_SetPage(nDocID,0,"Book_Mage_L.tga",0);
Doc_SetPage(nDocID,1,"Book_Mage_R.tga",0);
Doc_SetFont(nDocID,-1,"font_15_book.tga");
Doc_SetMargins(nDocID,0,275,20,30,20,1);
Doc_PrintLine(nDocID,0,"");
Doc_PrintLine(nDocID,0,"Wahre Macht");
Doc_PrintLine(nDocID,0,"");
Doc_SetFont(nDocID,-1,"font_10_book.tga");
Doc_PrintLine(nDocID,0,"");
Doc_PrintLine(nDocID,0,"");
Doc_PrintLines(nDocID,0,"Die heilige Pflicht des Kundigen");
Doc_PrintLine(nDocID,0,"");
Doc_PrintLine(nDocID,0,"");
Doc_PrintLines(nDocID,0,"Es ist seine Macht, die den Magus von den normalen Menschen unterscheidet. Er, ausgestattet mit der Fähigkeit göttliche Kraft zu beeinflussen, ist ein Wesen, für welches die normalen Grenzen des Sterblichen nicht gelten müssen.");
Doc_SetMargins(nDocID,-1,30,20,275,20,1);
Doc_PrintLine(nDocID,1,"");
Doc_PrintLine(nDocID,1,"");
Doc_PrintLine(nDocID,1,"");
Doc_PrintLine(nDocID,1,"");
Doc_PrintLine(nDocID,1,"");
Doc_PrintLine(nDocID,1,"");
Doc_PrintLines(nDocID,1,"Hat der Magus erst einmal einen Grad erreicht, der es ihm ermöglicht die Grenzen seines Daseins zu sprengen, so kann er sich selbst auf eine Stufe über der des normalen Sterblichen stellen. Er kann Grenzen von Raum und Zeit durchdringen, selbst das Ende allen Seins, der Tod, ist kein Hindernis auf seinem Weg.");
Doc_Show(nDocID);
};
//*****************************************//
// Runenbücher zum käuflichen erwerb! //
// 1x Buch für 1000 Gold //
//*****************************************//
instance ITWR_LerneRunen_F1(C_Item)
{
name = "Runen Lehrbuch des Feuers I";
mainflag = ITEM_KAT_DOCS;
flags = 0;
value = 1000;
visual = "ItWr_Book_02_03.3ds";
material = MAT_LEATHER;
scemeName = "MAP";
description = "Lehrbuch der Feuermagier (1 Kreis)";
text[5] = NAME_Value;
count[5] = value;
on_state[0] = Use_Bookstand_Kreise_01_S1_none;
};
instance ITWR_LerneRunen_F2(C_Item)
{
name = "Runen Lehrbuch des Feuers II";
mainflag = ITEM_KAT_DOCS;
flags = 0;
value = 1000;
visual = "ItWr_Book_02_03.3ds";
material = MAT_LEATHER;
scemeName = "MAP";
description = "Lehrbuch der Feuermagier (2 Kreis)";
text[5] = NAME_Value;
count[5] = value;
on_state[0] = Use_Bookstand_Kreise_02_S1_none;
};
instance ITWR_LerneRunen_F3(C_Item)
{
name = "Runen Lehrbuch des Feuers III";
mainflag = ITEM_KAT_DOCS;
flags = 0;
value = 1000;
visual = "ItWr_Book_02_03.3ds";
material = MAT_LEATHER;
scemeName = "MAP";
description = "Lehrbuch der Feuermagier (3 Kreis)";
text[5] = NAME_Value;
count[5] = value;
on_state[0] = Use_Bookstand_Kreise_03_S1_none;
};
instance ITWR_LerneRunen_F4(C_Item)
{
name = "Runen Lehrbuch des Feuers IV";
mainflag = ITEM_KAT_DOCS;
flags = 0;
value = 1000;
visual = "ItWr_Book_02_03.3ds";
material = MAT_LEATHER;
scemeName = "MAP";
description = "Lehrbuch der Feuermagier (4 Kreis)";
text[5] = NAME_Value;
count[5] = value;
on_state[0] = Use_Bookstand_Kreise_04_S1_none;
};
instance ITWR_LerneRunen_F5(C_Item)
{
name = "Runen Lehrbuch des Feuers V";
mainflag = ITEM_KAT_DOCS;
flags = 0;
value = 1000;
visual = "ItWr_Book_02_03.3ds";
material = MAT_LEATHER;
scemeName = "MAP";
description = "Lehrbuch der Feuermagier (5 Kreis)";
text[5] = NAME_Value;
count[5] = value;
on_state[0] = Use_Bookstand_Kreise_05_S1_none;
};
Code:
var int Lerne_RunesA;
var int Lerne_RunesB;
var int Lerne_RunesC;
var int Lerne_RunesD;
var int Lerne_RunesE;
func void Use_Bookstand_Kreise_01_S1_none()
{
var C_Npc her;
var int nDocID;
abletolearn = 0;
her = Hlp_GetNpc(PC_Hero);
if(Hlp_GetInstanceID(self) == Hlp_GetInstanceID(her))
{
if((Npc_GetTalentSkill(self,NPC_TALENT_MAGE) >= 1) && (Lerne_RunesA == FALSE)
&& (PLAYER_TALENT_RUNES[SPL_LightHeal] == FALSE)
&& (PLAYER_TALENT_RUNES[SPL_Light] == FALSE)
&& (PLAYER_TALENT_RUNES[SPL_SummonGoblinSkeleton] == FALSE)
&& (PLAYER_TALENT_RUNES[SPL_Zap] == FALSE))
{
PLAYER_TALENT_RUNES[SPL_LightHeal] = TRUE;
PLAYER_TALENT_RUNES[SPL_Light] = TRUE;
PLAYER_TALENT_RUNES[SPL_SummonGoblinSkeleton] = TRUE;
PLAYER_TALENT_RUNES[SPL_Zap] = TRUE;
abletolearn = abletolearn + 4;
AI_PrintScreen("1. Runen Kreis",-1,20,FONT_Screen,6);
Lerne_RunesA = TRUE;
Snd_Play("Levelup");
};
nDocID = Doc_Create();
Doc_SetPages(nDocID,2);
Doc_SetPage(nDocID,0,"Book_Mage_L.tga",0);
Doc_SetPage(nDocID,1,"Book_Mage_R.tga",0);
Doc_SetFont(nDocID,-1,FONT_Book);
Doc_SetMargins(nDocID,0,275,20,30,20,1);
Doc_PrintLine(nDocID,0,"DER ERSTE KREIS");
Doc_PrintLine(nDocID,0,"");
Doc_PrintLine(nDocID,0,"");
Doc_PrintLines(nDocID,0,"Die Runen des ersten Kreises und die zu deren Herstellung benötigten Ingredenzien ");
Doc_PrintLine(nDocID,0,"");
Doc_PrintLine(nDocID,0,"");
Doc_PrintLine(nDocID,0,"Licht");
Doc_PrintLine(nDocID,0,"Goldmünze");
Doc_PrintLine(nDocID,0,"");
Doc_PrintLine(nDocID,0,"Feuerpfeil");
Doc_PrintLine(nDocID,0,"Schwefel");
Doc_PrintLine(nDocID,0,"");
Doc_PrintLine(nDocID,0,"Kleiner Blitz");
Doc_PrintLine(nDocID,0,"Bergkristall");
Doc_PrintLine(nDocID,0,"");
Doc_PrintLine(nDocID,0,"Goblin Skelett");
Doc_PrintLine(nDocID,0,"Knochen eines Goblins");
Doc_PrintLine(nDocID,0,"");
Doc_PrintLine(nDocID,0,"Leichte Wunden heilen");
Doc_PrintLine(nDocID,0,"Heilpflanze");
Doc_PrintLine(nDocID,0,"");
Doc_SetMargins(nDocID,-1,30,20,275,20,1);
Doc_PrintLine(nDocID,1,"");
Doc_PrintLine(nDocID,1,"");
Doc_PrintLines(nDocID,1,"Für die Herstellung einer Rune ist jeweils EINE der aufgeführten Ingredenzien erforderlich.");
Doc_PrintLine(nDocID,1,"");
Doc_PrintLines(nDocID,1,"Dem Anwender muss die Formel für den Zauber bekannt sein und er muss einen blanken Runenstein, sowie eine Spruchrolle des jeweiligen Zaubers besitzen.");
Doc_PrintLine(nDocID,1,"");
Doc_PrintLines(nDocID,1,"Erst wenn diese Vorraussetzungen erfüllt sind, kann er am Runentisch zu Werke gehen.");
Doc_Show(nDocID);
};
};
func void Use_Bookstand_Kreise_02_S1_none()
{
var C_Npc her;
var int nDocID;
abletolearn = 0;
her = Hlp_GetNpc(PC_Hero);
if(Hlp_GetInstanceID(self) == Hlp_GetInstanceID(her))
{
if((Npc_GetTalentSkill(self,NPC_TALENT_MAGE) >= 2) && (Lerne_RunesB == FALSE)
&& (PLAYER_TALENT_RUNES[SPL_WindFist] == FALSE)
&& (PLAYER_TALENT_RUNES[SPL_Sleep] == FALSE)
&& (PLAYER_TALENT_RUNES[SPL_SummonWolf] == FALSE)
&& (PLAYER_TALENT_RUNES[SPL_InstantFireball] == FALSE)
&& (PLAYER_TALENT_RUNES[SPL_Icebolt] == FALSE))
{
PLAYER_TALENT_RUNES[SPL_WindFist] = TRUE;
PLAYER_TALENT_RUNES[SPL_Sleep] = TRUE;
PLAYER_TALENT_RUNES[SPL_SummonWolf] = TRUE;
PLAYER_TALENT_RUNES[SPL_InstantFireball] = TRUE;
PLAYER_TALENT_RUNES[SPL_Icebolt] = TRUE;
abletolearn = abletolearn + 5;
AI_PrintScreen("2. Runen Kreis",-1,20,FONT_Screen,6);
Lerne_RunesB = TRUE;
Snd_Play("Levelup");
};
nDocID = Doc_Create();
Doc_SetPages(nDocID,2);
Doc_SetPage(nDocID,0,"Book_Mage_L.tga",0);
Doc_SetPage(nDocID,1,"Book_Mage_R.tga",0);
Doc_SetFont(nDocID,-1,FONT_Book);
Doc_SetMargins(nDocID,0,275,20,30,20,1);
Doc_PrintLine(nDocID,0,"DER ZWEITE KREIS");
Doc_PrintLine(nDocID,0,"");
Doc_PrintLine(nDocID,0,"");
Doc_PrintLines(nDocID,0,"Die Runen des zweiten Kreises und die zu deren Herstellung benötigten Ingredenzien ");
Doc_PrintLine(nDocID,0,"");
Doc_PrintLine(nDocID,0,"");
Doc_PrintLine(nDocID,0,"Feuerball");
Doc_PrintLine(nDocID,0,"Pech");
Doc_PrintLine(nDocID,0,"");
Doc_PrintLine(nDocID,0,"Eispfeil");
Doc_PrintLine(nDocID,0,"Gletscher Quartz");
Doc_PrintLine(nDocID,0,"");
Doc_PrintLine(nDocID,0,"Wolf rufen");
Doc_PrintLine(nDocID,0,"Wolfsfell");
Doc_PrintLine(nDocID,0,"");
Doc_PrintLine(nDocID,0,"Windfaust");
Doc_PrintLine(nDocID,0,"Kohle");
Doc_PrintLine(nDocID,0,"");
Doc_PrintLine(nDocID,0,"Schlaf");
Doc_PrintLine(nDocID,0,"Sumpfkraut");
Doc_PrintLine(nDocID,0,"");
Doc_SetMargins(nDocID,-1,30,20,275,20,1);
Doc_PrintLine(nDocID,1,"");
Doc_PrintLine(nDocID,1,"");
Doc_PrintLines(nDocID,1,"Für die Herstellung einer Rune ist jeweils EINE der aufgeführten Ingredenzien erforderlich.");
Doc_PrintLine(nDocID,1,"");
Doc_PrintLines(nDocID,1,"Dem Anwender muss die Formel für den Zauber bekannt sein und er muss einen blanken Runenstein, sowie eine Spruchrolle des jeweiligen Zaubers besitzen.");
Doc_PrintLine(nDocID,1,"");
Doc_PrintLines(nDocID,1,"Erst wenn diese Vorraussetzungen erfüllt sind, kann er am Runentisch zu Werke gehen.");
Doc_Show(nDocID);
};
};
func void Use_Bookstand_Kreise_03_S1_none()
{
var C_Npc her;
var int nDocID;
abletolearn = 0;
her = Hlp_GetNpc(PC_Hero);
if(Hlp_GetInstanceID(self) == Hlp_GetInstanceID(her))
{
if((Npc_GetTalentSkill(self,NPC_TALENT_MAGE) >= 3) && (Lerne_RunesC == FALSE)
&& (PLAYER_TALENT_RUNES[SPL_MediumHeal] == FALSE)
&& (PLAYER_TALENT_RUNES[SPL_Fear] == FALSE)
&& (PLAYER_TALENT_RUNES[SPL_SummonSkeleton] == FALSE)
&& (PLAYER_TALENT_RUNES[SPL_Firestorm] == FALSE)
&& (PLAYER_TALENT_RUNES[SPL_IceCube] == FALSE)
&& (PLAYER_TALENT_RUNES[SPL_ChargeZap] == FALSE))
{
PLAYER_TALENT_RUNES[SPL_MediumHeal] = TRUE;
PLAYER_TALENT_RUNES[SPL_Fear] = TRUE;
PLAYER_TALENT_RUNES[SPL_SummonSkeleton] = TRUE;
PLAYER_TALENT_RUNES[SPL_Firestorm] = TRUE;
PLAYER_TALENT_RUNES[SPL_IceCube] = TRUE;
PLAYER_TALENT_RUNES[SPL_ChargeZap] = TRUE;
abletolearn = abletolearn + 6;
AI_PrintScreen("3. Runen Kreis",-1,20,FONT_Screen,6);
Lerne_RunesC = TRUE;
Snd_Play("Levelup");
};
nDocID = Doc_Create();
Doc_SetPages(nDocID,2);
Doc_SetPage(nDocID,0,"Book_Mage_L.tga",0);
Doc_SetPage(nDocID,1,"Book_Mage_R.tga",0);
Doc_SetFont(nDocID,-1,FONT_Book);
Doc_SetMargins(nDocID,0,275,20,30,20,1);
Doc_PrintLine(nDocID,0,"DER DRITTE KREIS");
Doc_PrintLine(nDocID,0,"");
Doc_PrintLines(nDocID,0,"Die Runen des dritten Kreises und die zu deren Herstellung benötigten Ingredenzien ");
Doc_PrintLine(nDocID,0,"");
Doc_PrintLine(nDocID,0,"Mittlere Wunden heilen");
Doc_PrintLine(nDocID,0,"Heilkraut");
Doc_PrintLine(nDocID,0,"");
Doc_PrintLine(nDocID,0,"Kleiner Feuersturm");
Doc_PrintLine(nDocID,0,"Pech");
Doc_PrintLine(nDocID,0,"Schwefel");
Doc_PrintLine(nDocID,0,"");
Doc_PrintLine(nDocID,0,"Skelett erschaffen");
Doc_PrintLine(nDocID,0,"Knochen eines Skeletts");
Doc_PrintLine(nDocID,0,"");
Doc_PrintLine(nDocID,0,"Furcht");
Doc_PrintLine(nDocID,0,"Schwarze Perle");
Doc_PrintLine(nDocID,0,"");
Doc_PrintLine(nDocID,0,"Eisblock");
Doc_PrintLine(nDocID,0,"Gletscher Quartz");
Doc_PrintLine(nDocID,0,"Aquamarin");
Doc_PrintLine(nDocID,0,"");
Doc_PrintLine(nDocID,0,"Kugelblitz");
Doc_PrintLine(nDocID,0,"Bergkristall");
Doc_PrintLine(nDocID,0,"Schwefel");
Doc_PrintLine(nDocID,0,"");
Doc_SetMargins(nDocID,-1,30,20,275,20,1);
Doc_PrintLine(nDocID,0,"Feuerball");
Doc_PrintLine(nDocID,0,"Pech");
Doc_PrintLine(nDocID,0,"Schwefel");
Doc_PrintLine(nDocID,0,"");
Doc_PrintLines(nDocID,1,"Für die Herstellung einer Rune ist jeweils EINE der aufgeführten Ingredenzien erforderlich.");
Doc_PrintLine(nDocID,1,"");
Doc_PrintLines(nDocID,1,"Dem Anwender muss die Formel für den Zauber bekannt sein und er muss einen blanken Runenstein, sowie eine Spruchrolle des jeweiligen Zaubers besitzen.");
Doc_PrintLine(nDocID,1,"");
Doc_PrintLines(nDocID,1,"Erst wenn diese Vorraussetzungen erfüllt sind, kann er am Runentisch zu Werke gehen.");
Doc_Show(nDocID);
};
};
func void Use_Bookstand_Kreise_04_S1_none()
{
var C_Npc her;
abletolearn = 0;
var int nDocID;
her = Hlp_GetNpc(PC_Hero);
if(Hlp_GetInstanceID(self) == Hlp_GetInstanceID(her))
{
if((Npc_GetTalentSkill(self,NPC_TALENT_MAGE) >= 4) && (Lerne_RunesD == FALSE)
&& (PLAYER_TALENT_RUNES[SPL_DestroyUndead] == FALSE)
&& (PLAYER_TALENT_RUNES[SPL_SummonGolem] == FALSE)
&& (PLAYER_TALENT_RUNES[SPL_ChargeFireball] == FALSE)
&& (PLAYER_TALENT_RUNES[SPL_LightningFlash] == FALSE))
{
PLAYER_TALENT_RUNES[SPL_DestroyUndead] = TRUE;
PLAYER_TALENT_RUNES[SPL_SummonGolem] = TRUE;
PLAYER_TALENT_RUNES[SPL_ChargeFireball] = TRUE;
PLAYER_TALENT_RUNES[SPL_LightningFlash] = TRUE;
abletolearn = abletolearn + 4;
AI_PrintScreen("4. Runen Kreis",-1,20,FONT_Screen,6);
Lerne_RunesD = TRUE;
Snd_Play("Levelup");
};
nDocID = Doc_Create();
Doc_SetPages(nDocID,2);
Doc_SetPage(nDocID,0,"Book_Mage_L.tga",0);
Doc_SetPage(nDocID,1,"Book_Mage_R.tga",0);
Doc_SetFont(nDocID,-1,FONT_Book);
Doc_SetMargins(nDocID,0,275,20,30,20,1);
Doc_PrintLine(nDocID,0,"DER VIERTE KREIS");
Doc_PrintLine(nDocID,0,"");
Doc_PrintLines(nDocID,0,"Die Runen des vierten Kreises und die zu deren Herstellung benötigten Ingredenzien ");
Doc_PrintLine(nDocID,0,"");
Doc_PrintLine(nDocID,0,"");
Doc_PrintLine(nDocID,0,"Grosser Feuerball");
Doc_PrintLine(nDocID,0,"Schwefel");
Doc_PrintLine(nDocID,0,"Pech");
Doc_PrintLine(nDocID,0,"");
Doc_PrintLine(nDocID,0,"Blitzschlag");
Doc_PrintLine(nDocID,0,"Bergkristall");
Doc_PrintLine(nDocID,0,"Gletscher Quartz");
Doc_PrintLine(nDocID,0,"");
Doc_PrintLine(nDocID,0,"Golem erwecken");
Doc_PrintLine(nDocID,0,"Herz eines Steingolems");
Doc_PrintLine(nDocID,0,"");
Doc_PrintLine(nDocID,0,"Untote vernichten");
Doc_PrintLine(nDocID,0,"Geweihtes Wasser");
Doc_PrintLine(nDocID,0,"");
Doc_SetMargins(nDocID,-1,30,20,275,20,1);
Doc_PrintLine(nDocID,1,"");
Doc_PrintLine(nDocID,1,"");
Doc_PrintLines(nDocID,1,"Für die Herstellung einer Rune ist jeweils EINE der aufgeführten Ingredenzien erforderlich.");
Doc_PrintLine(nDocID,1,"");
Doc_PrintLines(nDocID,1,"Dem Anwender muss die Formel für den Zauber bekannt sein und er muss einen blanken Runenstein, sowie eine Spruchrolle des jeweiligen Zaubers besitzen.");
Doc_PrintLine(nDocID,1,"");
Doc_PrintLines(nDocID,1,"Erst wenn diese Vorraussetzungen erfüllt sind, kann er am Runentisch zu Werke gehen.");
Doc_Show(nDocID);
};
};
func void Use_Bookstand_Kreise_05_S1_none()
{
var C_Npc her;
var int nDocID;
abletolearn = 0;
her = Hlp_GetNpc(PC_Hero);
if(Hlp_GetInstanceID(self) == Hlp_GetInstanceID(her))
{
if((Npc_GetTalentSkill(self,NPC_TALENT_MAGE) >= 5) && (Lerne_RunesE == FALSE)
&& (PLAYER_TALENT_RUNES[SPL_FullHeal] == FALSE)
&& (PLAYER_TALENT_RUNES[SPL_SummonDemon] == FALSE)
&& (PLAYER_TALENT_RUNES[SPL_Pyrokinesis] == FALSE)
&& (PLAYER_TALENT_RUNES[SPL_IceWave] == FALSE))
{
PLAYER_TALENT_RUNES[SPL_FullHeal] = TRUE;
PLAYER_TALENT_RUNES[SPL_SummonDemon] = TRUE;
PLAYER_TALENT_RUNES[SPL_Pyrokinesis] = TRUE;
PLAYER_TALENT_RUNES[SPL_IceWave] = TRUE;
abletolearn = abletolearn + 4;
AI_PrintScreen("5. Runen Kreis",-1,20,FONT_Screen,6);
Lerne_RunesE = TRUE;
Snd_Play("Levelup");
};
nDocID = Doc_Create();
Doc_SetPages(nDocID,2);
Doc_SetPage(nDocID,0,"Book_Mage_L.tga",0);
Doc_SetPage(nDocID,1,"Book_Mage_R.tga",0);
Doc_SetFont(nDocID,-1,FONT_Book);
Doc_SetMargins(nDocID,0,275,20,30,20,1);
Doc_PrintLine(nDocID,0,"DER FÜNFTE KREIS");
Doc_PrintLine(nDocID,0,"");
Doc_PrintLines(nDocID,0,"Die Runen des fünften Kreises und die zu deren Herstellung benötigten Ingredenzien ");
Doc_PrintLine(nDocID,0,"");
Doc_PrintLine(nDocID,0,"");
Doc_PrintLine(nDocID,0,"Eiswelle");
Doc_PrintLine(nDocID,0,"Gletscher Quartz");
Doc_PrintLine(nDocID,0,"Aquamarin");
Doc_PrintLine(nDocID,0,"");
Doc_PrintLine(nDocID,0,"Grosser Feuersturm");
Doc_PrintLine(nDocID,0,"Schwefel");
Doc_PrintLine(nDocID,0,"Flammenzunge");
Doc_PrintLine(nDocID,0,"");
Doc_PrintLine(nDocID,0,"Dämon beschwören");
Doc_PrintLine(nDocID,0,"Herz eines Dämonen");
Doc_PrintLine(nDocID,0,"");
Doc_PrintLine(nDocID,0,"Schwere Wunden heilen");
Doc_PrintLine(nDocID,0,"Heilwurzel");
Doc_PrintLine(nDocID,0,"");
Doc_SetMargins(nDocID,-1,30,20,275,20,1);
Doc_PrintLine(nDocID,1,"");
Doc_PrintLine(nDocID,1,"");
Doc_PrintLines(nDocID,1,"Für die Herstellung einer Rune ist jeweils EINE der aufgeführten Ingredenzien erforderlich.");
Doc_PrintLine(nDocID,1,"");
Doc_PrintLines(nDocID,1,"Dem Anwender muss die Formel für den Zauber bekannt sein und er muss einen blanken Runenstein, sowie eine Spruchrolle des jeweiligen Zaubers besitzen.");
Doc_PrintLine(nDocID,1,"");
Doc_PrintLines(nDocID,1,"Erst wenn diese Vorraussetzungen erfüllt sind, kann er am Runentisch zu Werke gehen.");
Doc_Show(nDocID);
};
};
doch ich war mir nicht sicher und wollte ein funktionieren wirklich gewährleisten.
Und dann noch ein paar einträge in die _work\Data\Scripts\Content\Story\B_GiveTradeInv Scripts hinzufügen!
GothicStarter_mod.exe, Skripte Parsen, Spiel starten und Magie +Runen lernen
Möchte anmerken das kein Buch für den 6. Kreis erstellt wurde,
da ich den Ablauf der Story nicht schwerwiegend ändern wollte.
Man kann in Pyrokar's Dialog Script folgende zeile ändern um auch vor dem Kapitel 6 diesen zu lernen
Code:
func int DIA_Pyrokar_TEACH_Condition()
{
/*if((Npc_GetTalentSkill(hero,NPC_TALENT_MAGE) == 5) && (Kapitel >= 5))*/
if(Npc_GetTalentSkill(hero,NPC_TALENT_MAGE) == 5)
{
return TRUE;
};
};
func void DIA_Pyrokar_TEACH_Info()
{
AI_Output(other,self,"DIA_Pyrokar_TEACH_15_00"); //Lehre mich den letzten Kreis der Magie.
/*if(MIS_SCKnowsWayToIrdorath == TRUE)
if(Kapitel >= 5)*/
if(Npc_GetTalentSkill(hero,NPC_TALENT_MAGE) == 5)
{
if(B_TeachMagicCircle(self,other,6))
{
AI_Output(self,other,"DIA_Pyrokar_TEACH_11_01"); //Viel Zeit ist vergangen, seit du den Bund mit dem Feuer eingegangen bist. Viel ist geschehen und wir finden keine Ruhe.
AI_Output(self,other,"DIA_Pyrokar_TEACH_11_02"); //Du bist der Erwählte Innos'. Und als solcher wirst du alle Kraft brauchen, um deine Kämpfe zu bestehen.
AI_Output(self,other,"DIA_Pyrokar_TEACH_11_03"); //Ich weihe dich nun, Erwählter. Du trittst in den sechsten Kreis - mögest du das Licht bringen und die Dunkelheit vertreiben.
AI_Output(self,other,"DIA_Pyrokar_TEACH_11_04"); //Die Zauberformeln des letzten Kreises kannst du nun von mir lernen, wenn du es wünscht.
AI_Output(self,other,"DIA_Pyrokar_TEACH_11_05"); //Ach - eine Sache noch. Es hat einige Zeit gedauert, bis ich dich wiedererkannt habe.
AI_Output(self,other,"DIA_Pyrokar_TEACH_11_06"); //Du hast von mir den Brief bekommen, als sie dich damals in die Barriere geworfen haben.
AI_Output(other,self,"DIA_Pyrokar_TEACH_15_07"); //Ja, damit hast du mir das Gefasel des Richters erspart.
AI_Output(self,other,"DIA_Pyrokar_TEACH_11_08"); //Und du bist der Erwählte Innos'.
AI_Output(self,other,"DIA_Pyrokar_TEACH_11_09"); //Empfange nun meinen Segen, Erwählter!
AI_Output(self,other,"DIA_Pyrokar_TEACH_11_10"); //Innos, das Licht der Sonne und das Feuer der Welt, segne diesen Mann, deinen erwählten Diener.
AI_Output(self,other,"DIA_Pyrokar_TEACH_11_11"); //Schenke ihm Mut, Kraft und Weisheit, dem Weg zu folgen, den du ihm bestimmt hast.
};
}
else
{
AI_Output(self,other,"DIA_Pyrokar_TEACH_11_12"); //Noch ist es nicht an der Zeit dafür. Wenn du ein Stück weiter auf dem Weg gegangen bist, den Innos dir zeigt, dann werde ich dich unterweisen.
};
};