World of Gothic Archiv > Editing
[G2]schmieden erweitern
Seite 1 von 1  1 
10.04.2004, 03:14 #1
terror666
Beiträge: 279
[G2]schmieden erweitern
ich will das schmieden ein wenig ausbauen und hab dazu in der SmithWeapon.d folgendes hinzugefügt
quote:

var int Rüstungen;
.....
//*******************************************************
INSTANCE PC_Armor (C_INFO)
{
npc = PC_Hero;
condition = PC_Armor_Condition;
information = PC_Armor_Info;
permanent = TRUE;
description = "Rüstung schmieden";
};

FUNC INT PC_Armor_Condition()
{
if(PLAYER_MOBSI_PRODUCTION == MOBSI_SMITHWEAPON)
&& (Normalwaffen == FALSE)
&& (Erzwaffen == FALSE)
&& (Rüstungen == FALSE)
{
return TRUE;
};
};

FUNC VOID PC_Armor_Info ()
{
Rüstungen = TRUE;
};
.....
INSTANCE PC_ArmorBACK (C_INFO)
{
npc = PC_Hero;
nr = 99;
condition = PC_ArmorBACK_Condition;
information = PC_ArmorBACK_Info;
permanent = TRUE;
description = DIALOG_BACK;
};
FUNC INT PC_ArmorBACK_Condition()
{
if(PLAYER_MOBSI_PRODUCTION == MOBSI_SMITHWEAPON)
&& (Normalwaffen == FALSE)
&& (Erzwaffen == FALSE)
&& (Rüstungen == TRUE)
{
return TRUE;
};
};

FUNC VOID PC_ArmorBACK_Info ()
{
Rüstungen = FALSE;
};



wenn ich nun im spiel den amboss benutze wird die option "Rüstung schmieden" aber nicht angezeigt, warum? hab ich was vergessen?
10.04.2004, 12:06 #2
AndiNo
Beiträge: 50

Hast du beim Amboss im Spacer bei OnStateFunc diese Datei eingetragen? Und hast du dann eine Funktion gemacht die heisst [DATEINAME]_S1 ?
Muss bei dieser if-Abfrage nicht noch eine Klammer komplett außenrum?

Das wären Sachen die mir sofort auffallen, vielleicht ist es falsch...
Welche Sachen kommen denn überhaupt?
Am besten sagst du nochmal genau, was du gemacht hast.;)
10.04.2004, 12:36 #3
terror666
Beiträge: 279

ich habe dem script _work/Data/Scripts/Content/Story/Dialog_Mobsis/SmithWeapon.d
die oben geposteten sachen hinzugefügt.

sprich ich will den vorhandenen ambosdialog einfach nur erweitern.

ums ma ganz ausführlich zu machen:

ich hab Harad so geändert das er mir das schmieden einer rüstung bei bringt, das klappt (soweit ich das bis jetzt beurteilen kann) auch wunderbar.

wenn ich nun aber den amboss benutze kommen nur die standard optionen ("schwert schmieden" und "erzklinge schmieden"), die von mir eingefügte option "rüstung schmieden" wird aber nicht angezeigt.

die oben geposteten functionen sind eben nur die von mir in _work/Data/Scripts/Content/Story/Dialog_Mobsis/SmithWeapon.d eingefügten funktionen für die zusätzliche option "rüstung schmieden"

PS: ich hoffe ich konnte das einigermaßem verständlich erklären :D
10.04.2004, 13:08 #4
AndiNo
Beiträge: 50

Huch ,du machst ja G2!:D Da sieht es natürlich ein bissel anders aus...

Noch so'ne spontane Idee:
Kann man überhaupt Variablennamen mit ä, ö oder ü machen?

Ich habs mal so probiert, und es ging wunderbar:

var int Erzwaffen;
var int Normalwaffen;
var int Ruestungen;


//*******************************************************
// SmithWeapon Dialog abbrechen
//*******************************************************
INSTANCE PC_SmithWeapon_End (C_Info)
{
npc = PC_Hero;
nr = 999;
condition = PC_SmithWeapon_End_Condition;
information = PC_SmithWeapon_End_Info;
permanent = TRUE;
description = DIALOG_ENDE;
};

FUNC INT PC_SmithWeapon_End_Condition ()
{
if (PLAYER_MOBSI_PRODUCTION == MOBSI_SMITHWEAPON)
{
return TRUE;
};
};

FUNC VOID PC_SmithWeapon_End_Info()
{
CreateInvItems (self, ItMiSwordRaw,1);
B_ENDPRODUCTIONDIALOG ();
Erzwaffen = FALSE;
NormalWaffen = FALSE;
Ruestungen = FALSE;
};

[...]

// *****************
// Amboß-Dialoge
// -------------
// hängen am Spieler
// *****************

//*******************************************************

INSTANCE PC_Ruestung (C_INFO)
{
npc = PC_Hero;
condition = PC_Ruestung_Condition;
information = PC_Ruestung_Info;
permanent = TRUE;
description = "Rüstung schmieden";
};

FUNC INT PC_Ruestung_Condition()
{
if(PLAYER_MOBSI_PRODUCTION == MOBSI_SMITHWEAPON)
&& (Normalwaffen == FALSE)
&& (Erzwaffen == FALSE)
&& (Ruestungen == FALSE)
{
return TRUE;
};
};

FUNC VOID PC_Ruestung_Info ()
{
Ruestungen = TRUE;
};

//*******************************************************
INSTANCE PC_RuestungBACK (C_INFO)
{
npc = PC_Hero;
nr = 99;
condition = PC_RuestungBACK_Condition;
information = PC_RuestungBACK_Info;
permanent = TRUE;
description = DIALOG_BACK;
};
FUNC INT PC_RuestungBACK_Condition()
{
if(PLAYER_MOBSI_PRODUCTION == MOBSI_SMITHWEAPON)
&& (Normalwaffen == FALSE)
&& (Erzwaffen == FALSE)
&& (Ruestungen == TRUE)
{
return TRUE;
};
};

FUNC VOID PC_RuestungBACK_Info ()
{
Ruestungen = FALSE;
};

-----------------------------------------

PS: Danke für die Unterstützung im G2 Doku Thread! :D
10.04.2004, 16:57 #5
terror666
Beiträge: 279

hab das jetzt mal getestet, aber dat will einfach nicht. egal was ich versuche, die option "Rüstung schmieden" ist nicht vorhanden.
10.04.2004, 17:21 #6
AndiNo
Beiträge: 50


Jetzt weiss ich auch nicht mehr weiter...hast du 'Skripte parsen' aktiviert?;)
Also, so wie es oben steht funzt es bei mir einwandfrei!
Kopier das mal drüber und probiers. Es muss gehen!:(
10.04.2004, 17:41 #7
terror666
Beiträge: 279

hab ich gemacht, aber ohne den gewünschten erfolg.

hier mal der derzeitige zustand meiner SmithWeapon.

code\:

var int Erzwaffen;
var int Normalwaffen;
var int Ruestungen;

//*******************************************************
// SmithWeapon Dialog abbrechen
//*******************************************************
INSTANCE PC_SmithWeapon_End (C_Info)
{
npc = PC_Hero;
nr = 999;
condition = PC_SmithWeapon_End_Condition;
information = PC_SmithWeapon_End_Info;
permanent = TRUE;
description = DIALOG_ENDE;
};

FUNC INT PC_SmithWeapon_End_Condition ()
{
if (PLAYER_MOBSI_PRODUCTION == MOBSI_SMITHWEAPON)
{
return TRUE;
};
};

FUNC VOID PC_SmithWeapon_End_Info()
{
CreateInvItems (self, ItMiSwordRaw,1);
B_ENDPRODUCTIONDIALOG ();
Erzwaffen = FALSE;
NormalWaffen = FALSE;
Ruestungen = FALSE;
};
//*******************************************************


// *****************
// Amboß-Dialoge
// -------------
// hängen am Spieler
// *****************


//*******************************************************
INSTANCE PC_Common (C_INFO)
{
npc = PC_Hero;
condition = PC_Common_Condition;
information = PC_Common_Info;
permanent = TRUE;
description = "Gewöhnliche Waffen schmieden";
};

FUNC INT PC_Common_Condition()
{
if(PLAYER_MOBSI_PRODUCTION == MOBSI_SMITHWEAPON)
&& (Normalwaffen == FALSE)
&& (Erzwaffen == FALSE)
&& (Ruestungen == FALSE)
{
return TRUE;
};
};

FUNC VOID PC_Common_Info ()
{
Normalwaffen = TRUE;
};
//*******************************************************
INSTANCE PC_Ore (C_INFO)
{
npc = PC_Hero;
condition = PC_Ore_Condition;
information = PC_Ore_Info;
permanent = TRUE;
description = "Erzwaffen schmieden";
};

FUNC INT PC_Ore_Condition()
{
if(PLAYER_MOBSI_PRODUCTION == MOBSI_SMITHWEAPON)
&& (Normalwaffen == FALSE)
&& (Erzwaffen == FALSE)
&& (Ruestungen == FALSE)
{
return TRUE;
};
};

FUNC VOID PC_Ore_Info ()
{
Erzwaffen = TRUE;
};
//*******************************************************
//*******************************************************

INSTANCE PC_Ruestung (C_INFO)
{
npc = PC_Hero;
condition = PC_Ruestung_Condition;
information = PC_Ruestung_Info;
permanent = TRUE;
description = "Rüstung schmieden";
};

FUNC INT PC_Ruestung_Condition()
{
if(PLAYER_MOBSI_PRODUCTION == MOBSI_SMITHWEAPON)
&& (Normalwaffen == FALSE)
&& (Erzwaffen == FALSE)
&& (Ruestungen == FALSE)
{
return TRUE;
};
};

FUNC VOID PC_Ruestung_Info ()
{
Ruestungen = TRUE;
};

//*******************************************************
INSTANCE PC_CommonBACK (C_INFO)
{
npc = PC_Hero;
nr = 99;
condition = PC_CommonBACK_Condition;
information = PC_CommonBACK_Info;
permanent = TRUE;
description = DIALOG_BACK;
};
FUNC INT PC_CommonBACK_Condition()
{
if(PLAYER_MOBSI_PRODUCTION == MOBSI_SMITHWEAPON)
&& (Normalwaffen == TRUE)
&& (Erzwaffen == FALSE)
&& (Ruestungen == FALSE)
{
return TRUE;
};
};

FUNC VOID PC_CommonBACK_Info ()
{
Normalwaffen = FALSE;
};
//*******************************************************
INSTANCE PC_OreBACK (C_INFO)
{
npc = PC_Hero;
nr = 99;
condition = PC_OreBACK_Condition;
information = PC_OreBACK_Info;
permanent = TRUE;
description = DIALOG_BACK;
};
FUNC INT PC_OreBACK_Condition()
{
if(PLAYER_MOBSI_PRODUCTION == MOBSI_SMITHWEAPON)
&& (Normalwaffen == FALSE)
&& (Erzwaffen == TRUE)
&& (Ruestungen == FALSE)
{
return TRUE;
};
};

FUNC VOID PC_OreBACK_Info ()
{
Erzwaffen = FALSE;
};
//*******************************************************
INSTANCE PC_RuestungBACK (C_INFO)
{
npc = PC_Hero;
nr = 99;
condition = PC_RuestungBACK_Condition;
information = PC_RuestungBACK_Info;
permanent = TRUE;
description = DIALOG_BACK;
};
FUNC INT PC_RuestungBACK_Condition()
{
if(PLAYER_MOBSI_PRODUCTION == MOBSI_SMITHWEAPON)
&& (Normalwaffen == FALSE)
&& (Erzwaffen == FALSE)
&& (Ruestungen == TRUE)
{
return TRUE;
};
};

FUNC VOID PC_RuestungBACK_Info ()
{
Ruestungen = FALSE;
};
//*******************************************************
INSTANCE PC_ItMw_1H_Common (C_INFO)
{
npc = PC_Hero;
condition = PC_ItMw_1H_Common_Condition;
information = PC_ItMw_1H_Common_Info;
permanent = TRUE;
};

FUNC INT PC_ItMw_1H_Common_Condition()
{
if((PLAYER_MOBSI_PRODUCTION == MOBSI_SMITHWEAPON)
&& (PLAYER_TALENT_SMITH[WEAPON_Common] == TRUE))
&& (Normalwaffen == TRUE)
{
return TRUE;
};
};

FUNC VOID PC_ItMw_1H_Common_Info ()
{
CreateInvItems (hero, ItMw_1H_Common_01, 1);
Print (PRINT_SmithSuccess);

B_ENDPRODUCTIONDIALOG ();
Normalwaffen = FALSE;
};
//*******************************************************
INSTANCE PC_WEAPON_1H_Harad_01 (C_INFO)
{
npc = PC_Hero;
condition = PC_WEAPON_1H_Harad_01_Condition;
information = PC_WEAPON_1H_Harad_01_Info;
permanent = TRUE;
};

FUNC INT PC_WEAPON_1H_Harad_01_Condition()
{
if((PLAYER_MOBSI_PRODUCTION == MOBSI_SMITHWEAPON)
&& (PLAYER_TALENT_SMITH[WEAPON_1H_Harad_01] == TRUE))
&& (Normalwaffen == TRUE)
{
return TRUE;
};
};

FUNC VOID PC_WEAPON_1H_Harad_01_Info ()
{
CreateInvItems (hero,ItMw_Schwert1 , 1);
Print (PRINT_SmithSuccess);

B_ENDPRODUCTIONDIALOG ();
Normalwaffen = FALSE;
};
//*******************************************************
INSTANCE PC_WEAPON_1H_Harad_02 (C_INFO)
{
npc = PC_Hero;
condition = PC_WEAPON_1H_Harad_02_Condition;
information = PC_WEAPON_1H_Harad_02_Info;
permanent = TRUE;
};

FUNC INT PC_WEAPON_1H_Harad_02_Condition()
{
if((PLAYER_MOBSI_PRODUCTION == MOBSI_SMITHWEAPON)
&& (PLAYER_TALENT_SMITH[WEAPON_1H_Harad_02] == TRUE))
&& (Normalwaffen == TRUE)
{
return TRUE;
};
};

FUNC VOID PC_WEAPON_1H_Harad_02_Info ()
{
CreateInvItems (hero,ItMw_Schwert4 , 1);
Print (PRINT_SmithSuccess);

B_ENDPRODUCTIONDIALOG ();
Normalwaffen = FALSE;
};
//*******************************************************
INSTANCE PC_WEAPON_1H_Harad_03 (C_INFO)
{
npc = PC_Hero;
condition = PC_WEAPON_1H_Harad_03_Condition;
information = PC_WEAPON_1H_Harad_03_Info;
permanent = TRUE;
};

FUNC INT PC_WEAPON_1H_Harad_03_Condition()
{
if((PLAYER_MOBSI_PRODUCTION == MOBSI_SMITHWEAPON)
&& (PLAYER_TALENT_SMITH[WEAPON_1H_Harad_03] == TRUE))
&& (Normalwaffen == TRUE)
{
return TRUE;
};
};

FUNC VOID PC_WEAPON_1H_Harad_03_Info ()
{
CreateInvItems (hero,ItMw_Rubinklinge , 1);
Print (PRINT_SmithSuccess);

B_ENDPRODUCTIONDIALOG ();
Normalwaffen = FALSE;
};
//*******************************************************
INSTANCE PC_WEAPON_1H_Harad_04 (C_INFO)
{
npc = PC_Hero;
condition = PC_WEAPON_1H_Harad_04_Condition;
information = PC_WEAPON_1H_Harad_04_Info;
permanent = TRUE;
};

FUNC INT PC_WEAPON_1H_Harad_04_Condition()
{
if((PLAYER_MOBSI_PRODUCTION == MOBSI_SMITHWEAPON)
&& (PLAYER_TALENT_SMITH[WEAPON_1H_Harad_04] == TRUE))
&& (Normalwaffen == TRUE)
{
return TRUE;
};
};

FUNC VOID PC_WEAPON_1H_Harad_04_Info ()
{
CreateInvItems (hero,ItMw_ElBastardo , 1);
Print (PRINT_SmithSuccess);

B_ENDPRODUCTIONDIALOG ();
Normalwaffen = FALSE;
};
//*******************************************************

INSTANCE PC_ItMw_1H_Special_01 (C_INFO)
{
npc = PC_Hero;
condition = PC_ItMw_1H_Special_01_Condition;
information = PC_ItMw_1H_Special_01_Info;
permanent = TRUE;
};

FUNC INT PC_ItMw_1H_Special_01_Condition()
{
if((PLAYER_MOBSI_PRODUCTION == MOBSI_SMITHWEAPON)
&& (PLAYER_TALENT_SMITH[WEAPON_1H_Special_01] == TRUE))
&& (Erzwaffen == TRUE)
{
return TRUE;
};
};

FUNC VOID PC_ItMw_1H_Special_01_Info ()
{
if (Npc_HasItems (hero, ItMi_Nugget) >= 1)
{
Npc_RemoveInvItems (hero, ItMi_Nugget, 1);

CreateInvItems (hero, ItMw_1H_Special_01,1);
Print (PRINT_SmithSuccess);
}
else
{
Print (PRINT_ProdItemsMissing);
CreateInvItems (self, ItMiSwordRaw,1);
};
B_ENDPRODUCTIONDIALOG ();
Erzwaffen = FALSE;
};
//*******************************************************

INSTANCE PC_ItMw_2H_Special_01 (C_INFO)
{
npc = PC_Hero;
condition = PC_ItMw_2H_Special_01_Condition;
information = PC_ItMw_2H_Special_01_Info;
permanent = TRUE;
};

FUNC INT PC_ItMw_2H_Special_01_Condition()
{
if((PLAYER_MOBSI_PRODUCTION == MOBSI_SMITHWEAPON)
&& (PLAYER_TALENT_SMITH[WEAPON_2H_Special_01] == TRUE))
&& (Erzwaffen == TRUE)
{
return TRUE;
};
};

FUNC VOID PC_ItMw_2H_Special_01_Info ()
{
if (Npc_HasItems (hero, ItMi_Nugget) >= 2)
{
Npc_RemoveInvItems (hero,ItMi_Nugget,2);

CreateInvItems (hero,ItMw_2H_Special_01,1);
Print (PRINT_SmithSuccess);
}
else
{
Print (PRINT_ProdItemsMissing);
CreateInvItems (self, ItMiSwordRaw,1);
};
B_ENDPRODUCTIONDIALOG ();
Erzwaffen = FALSE;
};
//*******************************************************

INSTANCE PC_ItMw_1H_Special_02 (C_INFO)
{
npc = PC_Hero;
condition = PC_ItMw_1H_Special_02_Condition;
information = PC_ItMw_1H_Special_02_Info;
permanent = TRUE;
};

FUNC INT PC_ItMw_1H_Special_02_Condition()
{
if((PLAYER_MOBSI_PRODUCTION == MOBSI_SMITHWEAPON)
&& (PLAYER_TALENT_SMITH[WEAPON_1H_Special_02] == TRUE))
&& (Erzwaffen == TRUE)
{
return TRUE;
};
};

FUNC VOID PC_ItMw_1H_Special_02_Info ()
{
if (Npc_HasItems (hero, ItMi_Nugget) >= 2)
{
Npc_RemoveInvItems (hero,ItMi_Nugget,2);

CreateInvItems (hero,ItMw_1H_Special_02,1);
Print (PRINT_SmithSuccess);
}
else
{
Print (PRINT_ProdItemsMissing);
CreateInvItems (self, ItMiSwordRaw,1);
};
B_ENDPRODUCTIONDIALOG ();
Erzwaffen = FALSE;
};
//*******************************************************

INSTANCE PC_ItMw_2H_Special_02 (C_INFO)
{
npc = PC_Hero;
condition = PC_ItMw_2H_Special_02_Condition;
information = PC_ItMw_2H_Special_02_Info;
permanent = TRUE;
};

FUNC INT PC_ItMw_2H_Special_02_Condition()
{
if((PLAYER_MOBSI_PRODUCTION == MOBSI_SMITHWEAPON)
&& (PLAYER_TALENT_SMITH[WEAPON_2H_Special_02] == TRUE))
&& (Erzwaffen == TRUE)
{
return TRUE;
};
};

FUNC VOID PC_ItMw_2H_Special_02_Info ()
{
if (Npc_HasItems (hero, ItMi_Nugget) >= 3)
{
Npc_RemoveInvItems (hero,ItMi_Nugget,3);

CreateInvItems (hero,ItMw_2H_Special_02,1);
Print (PRINT_SmithSuccess);
}
else
{
Print (PRINT_ProdItemsMissing);
CreateInvItems (self, ItMiSwordRaw,1);
};
B_ENDPRODUCTIONDIALOG ();
Erzwaffen = FALSE;
};
//*******************************************************
INSTANCE PC_ItMw_1H_Special_03 (C_INFO)
{
npc = PC_Hero;
condition = PC_ItMw_1H_Special_03_Condition;
information = PC_ItMw_1H_Special_03_Info;
permanent = TRUE;
};

FUNC INT PC_ItMw_1H_Special_03_Condition()
{
if((PLAYER_MOBSI_PRODUCTION == MOBSI_SMITHWEAPON)
&& (PLAYER_TALENT_SMITH[WEAPON_1H_Special_03] == TRUE))
&& (Erzwaffen == TRUE)
{
return TRUE;
};
};

FUNC VOID PC_ItMw_1H_Special_03_Info ()
{
if (Npc_HasItems (hero, ItMi_Nugget) >= 3)
{
Npc_RemoveInvItems (hero,ItMi_Nugget,3);

CreateInvItems (hero,ItMw_1H_Special_03,1);
Print (PRINT_SmithSuccess);
}
else
{
Print (PRINT_ProdItemsMissing);
CreateInvItems (self, ItMiSwordRaw,1);
};
B_ENDPRODUCTIONDIALOG ();
Erzwaffen = FALSE;
};
//*******************************************************

INSTANCE PC_ItMw_2H_Special_03 (C_INFO)
{
npc = PC_Hero;
condition = PC_ItMw_2H_Special_03_Condition;
information = PC_ItMw_2H_Special_03_Info;
permanent = TRUE;
};

FUNC INT PC_ItMw_2H_Special_03_Condition()
{
if((PLAYER_MOBSI_PRODUCTION == MOBSI_SMITHWEAPON)
&& (PLAYER_TALENT_SMITH[WEAPON_2H_Special_03] == TRUE))
&& (Erzwaffen == TRUE)
{
return TRUE;
};
};

FUNC VOID PC_ItMw_2H_Special_03_Info ()
{
if (Npc_HasItems (hero, ItMi_Nugget) >= 4)
{
Npc_RemoveInvItems (hero,ItMi_Nugget,4);

CreateInvItems (hero,ItMw_2H_Special_03,1);
Print (PRINT_SmithSuccess);
}
else
{
Print (PRINT_ProdItemsMissing);
CreateInvItems (self, ItMiSwordRaw,1);
};
B_ENDPRODUCTIONDIALOG ();
Erzwaffen = FALSE;
};
//*******************************************************

INSTANCE PC_ItMw_1H_Special_04 (C_INFO)
{
npc = PC_Hero;
condition = PC_ItMw_1H_Special_04_Condition;
information = PC_ItMw_1H_Special_04_Info;
permanent = TRUE;
};

FUNC INT PC_ItMw_1H_Special_04_Condition()
{
if((PLAYER_MOBSI_PRODUCTION == MOBSI_SMITHWEAPON)
&& (PLAYER_TALENT_SMITH[WEAPON_1H_Special_04] == TRUE))
&& (Erzwaffen == TRUE)
{
return TRUE;
};
};

FUNC VOID PC_ItMw_1H_Special_04_Info ()
{
if (Npc_HasItems (hero, ItMi_Nugget) >= 4)
&& (Npc_HasItems (hero, ItAt_DragonBlood) >= 5)
{
Npc_RemoveInvItems (hero,ItMi_Nugget,4);
Npc_RemoveInvItems (hero,ItAt_DragonBlood,5);

CreateInvItems (hero,ItMw_1H_Special_04,1);
Print (PRINT_SmithSuccess);
}
else
{
Print (PRINT_ProdItemsMissing);
CreateInvItems (self, ItMiSwordRaw,1);
};
B_ENDPRODUCTIONDIALOG ();
Erzwaffen = FALSE;
};
//*******************************************************

INSTANCE PC_ItMw_2H_Special_04 (C_INFO)
{
npc = PC_Hero;
condition = PC_ItMw_2H_Special_04_Condition;
information = PC_ItMw_2H_Special_04_Info;
permanent = TRUE;
};

FUNC INT PC_ItMw_2H_Special_04_Condition()
{
if((PLAYER_MOBSI_PRODUCTION == MOBSI_SMITHWEAPON)
&& (PLAYER_TALENT_SMITH[WEAPON_2H_Special_04] == TRUE))
&& (Erzwaffen == TRUE)
{
return TRUE;
};
};

FUNC VOID PC_ItMw_2H_Special_04_Info ()
{
if (Npc_HasItems (hero, ItMi_Nugget) >= 5)
&& (Npc_HasItems (hero, ItAt_DragonBlood) >= 5)
{
Npc_RemoveInvItems (hero,ItMi_Nugget,5);
Npc_RemoveInvItems (hero,ItAt_DragonBlood,5);

CreateInvItems (hero,ItMw_2H_Special_04,1);
Print (PRINT_SmithSuccess);
}
else
{
Print (PRINT_ProdItemsMissing);
CreateInvItems (self, ItMiSwordRaw,1);
};
B_ENDPRODUCTIONDIALOG ();
Erzwaffen = FALSE;
};
//*******************************************************

//*******************************************************
INSTANCE PC_ItAr_Pal_M (C_INFO)
{
npc = PC_Hero;
condition = PC_ItAr_Pal_M_Condition;
information = PC_ItAr_Pal_M_Info;
permanent = TRUE;
};

FUNC INT PC_ItAr_Pal_M_Condition()
{
if((PLAYER_MOBSI_PRODUCTION == MOBSI_SMITHWEAPON)
&& (PLAYER_TALENT_SMITH[ARMOUR_MY_TEST_01] == TRUE))
&& (Ruestungen == TRUE)
{
return TRUE;
};
};

FUNC VOID PC_ItAr_Pal_M_Info ()
{
CreateInvItems (hero, PC_ItAr_Pal_M, 1);
Print (PRINT_SmithArmorSuccess);

B_ENDPRODUCTIONDIALOG ();
Ruestungen = FALSE;
};
// ****************************************************
// SMITHWEAPON_S1
// --------------
// Funktion wird durch Amboß-Mobsi-Benutzung aufgerufen!
// benötigtes Item dafür: ItMiSwordrawhot
// *****************************************************

FUNC VOID SMITHWEAPON_S1 ()
{
var C_NPC her; her = Hlp_GetNpc(PC_Hero);

if (Hlp_GetInstanceID(self)==Hlp_GetInstanceID(her))
{
self.aivar[AIV_INVINCIBLE]=TRUE;
PLAYER_MOBSI_PRODUCTION = MOBSI_SMITHWEAPON;
Ai_ProcessInfos (her);
};

PC_ItMw_1H_Common.description = NAME_ItMw_1H_Common_01;
PC_ItMw_1H_Special_01.description = ConcatStrings (NAME_ItMw_1H_Special_01, PRINT_Smith_1H_Special_01);
PC_ItMw_2H_Special_01.description = ConcatStrings (NAME_ItMw_2H_Special_01, PRINT_Smith_2H_Special_01);
PC_ItMw_1H_Special_02.description = ConcatStrings (NAME_ItMw_1H_Special_02, PRINT_Smith_1H_Special_02);
PC_ItMw_2H_Special_02.description = ConcatStrings (NAME_ItMw_2H_Special_02, PRINT_Smith_2H_Special_02);
PC_ItMw_1H_Special_03.description = ConcatStrings (NAME_ItMw_1H_Special_03, PRINT_Smith_1H_Special_03);
PC_ItMw_2H_Special_03.description = ConcatStrings (NAME_ItMw_2H_Special_03, PRINT_Smith_2H_Special_03);
PC_ItMw_1H_Special_04.description = ConcatStrings (NAME_ItMw_1H_Special_04, PRINT_Smith_1H_Special_04);
PC_ItMw_2H_Special_04.description = ConcatStrings (NAME_ItMw_2H_Special_04, PRINT_Smith_2H_Special_04);

PC_WEAPON_1H_Harad_01.description = NAME_Addon_Harad_01;
PC_WEAPON_1H_Harad_02.description = NAME_Addon_Harad_02;
PC_WEAPON_1H_Harad_03.description = NAME_Addon_Harad_03;
PC_WEAPON_1H_Harad_04.description = NAME_Addon_Harad_04;

PC_ItAr_Pal_M.description = NAME_ItAr_Pal_M;
};

10.04.2004, 19:48 #8
AndiNo
Beiträge: 50

Sag mal, hast du im Gothic Starter wirklich die Option 'Skripte parsen' aktiviert?
Außerdem muss die Datei im Dialog_Mobsi Verzeichnis sein.
Ich habe deinen Skript bei mir reinkopiert und geparst, und ich kann die Rüstung schmieden!
Kontrollier noch mal alles!
10.04.2004, 19:59 #9
terror666
Beiträge: 279

jap, "Skripte parsen" ist an.
und die anderen änderungen die ich gemacht hab werden ja auch angenommen, nur das schmieden will absolut nicht.

PS: um sicherzugehen hab ich jetzt mal alle *.dat dateien in _work/Data/Scripts/_compiled gelöscht und habs dann nochmal versucht, aber alles beim alten. die option "rüstung schmieden" existiert einfach nicht. ich dreh hier langsam durch

PS: hab das script jetzt ma komplett auseinander genommen, so das es jetzt nur noch so aussieht
code\:
var int Erzwaffen;
var int Normalwaffen;
var int Ruestungen;

//*******************************************************
// SmithWeapon Dialog abbrechen
//*******************************************************
INSTANCE PC_SmithWeapon_End (C_Info)
{
npc = PC_Hero;
nr = 999;
condition = PC_SmithWeapon_End_Condition;
information = PC_SmithWeapon_End_Info;
permanent = TRUE;
description = DIALOG_ENDE;
};

FUNC INT PC_SmithWeapon_End_Condition ()
{
if (PLAYER_MOBSI_PRODUCTION == MOBSI_SMITHWEAPON)
{
return TRUE;
};
};

FUNC VOID PC_SmithWeapon_End_Info()
{
CreateInvItems (self, ItMiSwordRaw,1);
B_ENDPRODUCTIONDIALOG ();
Erzwaffen = FALSE;
NormalWaffen = FALSE;
Ruestungen = FALSE;
};
//*******************************************************

// *****************
// Amboß-Dialoge
// -------------
// hängen am Spieler
// *****************

//*******************************************************
// Rüstung schmieden
//*******************************************************
INSTANCE PC_Common (C_INFO)
{
npc = PC_Hero;
condition = PC_Common_Condition;
information = PC_Common_Info;
permanent = TRUE;
description = "Gewöhnliche Waffen schmieden";
};

FUNC INT PC_Common_Condition()
{
if(PLAYER_MOBSI_PRODUCTION == MOBSI_SMITHWEAPON)
&& (Normalwaffen == FALSE)
&& (Erzwaffen == FALSE)
&& (Ruestungen == FALSE)
{
return TRUE;
};
};

FUNC VOID PC_Common_Info ()
{
Normalwaffen = TRUE;
};
//*******************************************************
INSTANCE PC_CommonBACK (C_INFO)
{
npc = PC_Hero;
nr = 99;
condition = PC_CommonBACK_Condition;
information = PC_CommonBACK_Info;
permanent = TRUE;
description = DIALOG_BACK;
};
FUNC INT PC_CommonBACK_Condition()
{
if(PLAYER_MOBSI_PRODUCTION == MOBSI_SMITHWEAPON)
&& (Normalwaffen == TRUE)
&& (Erzwaffen == FALSE)
&& (Ruestungen == FALSE)
{
return TRUE;
};
};

FUNC VOID PC_CommonBACK_Info ()
{
Normalwaffen = FALSE;
};

// ****************************************************
// SMITHWEAPON_S1
// --------------
// Funktion wird durch Amboß-Mobsi-Benutzung aufgerufen!
// benötigtes Item dafür: ItMiSwordrawhot
// *****************************************************

FUNC VOID SMITHWEAPON_S1 ()
{
var C_NPC her; her = Hlp_GetNpc(PC_Hero);

if (Hlp_GetInstanceID(self)==Hlp_GetInstanceID(her))
{
self.aivar[AIV_INVINCIBLE]=TRUE;
PLAYER_MOBSI_PRODUCTION = MOBSI_SMITHWEAPON;
Ai_ProcessInfos (her);
};

};

das funktioniert auch wunderbar. sowald ich aber die PC_Common* sachen in PC_Ruestung* umbenenne wird die option nicht mehr angezeigt. warum?
11.04.2004, 20:06 #10
AndiNo
Beiträge: 50

Mir fällt beim besten Willen nichts ein, was da noch hilft. Wie ich schon sagte, dein Skript läuft bei mir wunderbar, mit Rüstung schmieden.:(
12.04.2004, 17:41 #11
terror666
Beiträge: 279

hab jetzt gothic2 nochmal komplett runter geschmissen und dann neu installiert (diesmal mit allen patches. vorher hatte ich das addon direkt auf das ungepatchte g2 gehauen und dann nur den 2.6-patch noch drüber gezogen) und siehe da ich kann rüstungen schmieden.

jaja so is das. der teufel steckt im detail.
Seite 1 von 1  1