-
[ZSPY] EXPECTED-ERROR
Ich verzweifle an folgender Fehlermeldung beim konvertieren.
Bitte helft mir.
[Bild: Error04.jpg]
LPCOST_ATTRIBUTE_MANA ist in der story-gobals.d mit dem Wert 1 definiert.
Code:
func void usepracticemagic()
{
var int magereaktion;
var int traincounter;
traincounter = traincounter + 1;
if(traincounter == 10)
{
B_BuyAttributePoints (other, ATR_MANA_MAX, 5*LPCOST_ATTRIBUTE_MANA);
};
magereaktion = Hlp_Random(100);
if(magereaktion <= 20)
{
AI_PlayAni(self,"T_PRACTICEMAGIC");
}
else if(magereaktion <= 50)
{
AI_PlayAni(self,"T_PRACTICEMAGIC2");
}
else if(magereaktion <= 70)
{
AI_PlayAni(self,"T_PRACTICEMAGIC3");
}
else if(magereaktion <= 100)
{
AI_PlayAni(self,"T_PRACTICEMAGIC4");
};
};
Geändert von Inspirate (25.06.2018 um 08:11 Uhr)
-
Ich vermute, dass die Funktion B_BuyAttributePoints weitere Argumente erwartet. Das ist eine selbst geschriebene Funktion - ohne den zugehörigen Code, können wir nicht sagen, was genau die Funktion erwartet.
-
So schaut die B_BUYATTRIBUTEPOINTS.D aus und stammt original aus den Balancing08-Skripten:
Ah, da steht: B_BuyAttributePoints(var C_Npc typ,var int atr,var int AtrPlus,var int lpminus)
Mir fehlt also ein Argument "var int lpminus" im Skript.
var C_Npc typ = other
var int atr = ATR_MANA_MAX
var int AtrPlus = 5 * LPCOST_ATTRIBUTE_MANA
var int lpminus = 0
wird dann im script zu
B_BuyAttributePoints(OTHER, ATR_MANA_MAX, 5 * LPCOST_ATTRIBUTE_MANA, 0);
Code:
func void B_BuyAttributePoints(var C_Npc typ,var int atr,var int AtrPlus,var int lpminus)
{
var int Typ_Atr;
var string AtrPlusSTRING;
var string PrintSTRING;
if(atr == ATR_STRENGTH)
{
Typ_Atr = typ.attribute[ATR_STRENGTH];
}
else if(atr == ATR_DEXTERITY)
{
Typ_Atr = typ.attribute[ATR_DEXTERITY];
}
else if(atr == ATR_MANA_MAX)
{
Typ_Atr = typ.attribute[ATR_MANA_MAX];
};
AtrPlusSTRING = IntToString(AtrPlus);
if(!(typ.lp < AtrPlus))
{
if((Typ_Atr + AtrPlus) <= 150)
{
typ.lp = typ.lp - AtrPlus;
if(atr == ATR_STRENGTH)
{
typ.attribute[ATR_STRENGTH] = typ.attribute[ATR_STRENGTH] + AtrPlus;
STRENGTH_TRAINED = STRENGTH_TRAINED + AtrPlus;
PrintSTRING = ConcatStrings(NAME_BuyAttributeSTR,AtrPlusSTRING);
PrintScreen(PrintSTRING,-1,-1,"FONT_OLD_20_WHITE.TGA",1);
}
else if(atr == ATR_DEXTERITY)
{
typ.attribute[ATR_DEXTERITY] = typ.attribute[ATR_DEXTERITY] + AtrPlus;
DEXTERITY_TRAINED = DEXTERITY_TRAINED + AtrPlus;
if((typ.attribute[ATR_DEXTERITY] >= 90) && (Npc_GetTalentSkill(hero,NPC_TALENT_ACROBAT) == 0))
{
Npc_SetTalentSkill(hero,NPC_TALENT_ACROBAT,1);
PrintScreen("Lerne: Akrobatik",-1,-1,"FONT_OLD_20_WHITE.TGA",2);
};
PrintSTRING = ConcatStrings(NAME_BuyAttributeDEX,AtrPlusSTRING);
PrintScreen(PrintSTRING,-1,-1,"FONT_OLD_20_WHITE.TGA",1);
}
else if(atr == ATR_MANA_MAX)
{
typ.attribute[ATR_MANA_MAX] = typ.attribute[ATR_MANA_MAX] + AtrPlus;
MANA_TRAINED = MANA_TRAINED + AtrPlus;
PrintSTRING = ConcatStrings(NAME_BuyAttributeMAN,AtrPlusSTRING);
PrintScreen(PrintSTRING,-1,-1,"FONT_OLD_20_WHITE.TGA",1);
};
}
else
{
PrintScreen("Keine Steigerung über Maximum 150!",-1,-1,"FONT_OLD_20_WHITE.TGA",1);
B_Say(self,other,"$NOLEARNOVERMAX");
};
}
else
{
PrintScreen("Zu wenig Lernpunkte!",-1,-1,"FONT_OLD_20_WHITE.TGA",1);
B_Say(self,other,"$NOLEARNNOPOINTS");
};
};
Geändert von Inspirate (25.06.2018 um 10:47 Uhr)
-
Hast du versucht 5 * LPCOST_ATTRIBUTE_MANA in Klammern und ohne Leerzeichen zu setzen? Ich glaube nicht, dass er das so wie es da steht sonst als ein Argument erkennen kann.
-
Zitat von CeeX
Hast du versucht 5 * LPCOST_ATTRIBUTE_MANA in Klammern und ohne Leerzeichen zu setzen? Ich glaube nicht, dass er das so wie es da steht sonst als ein Argument erkennen kann.
Die Leerzeichen musste ich entfernen. Ich habe es dann in den scripten überall nach folgendem Muster geändert. Das wird akzeptiert ohne Fehlermeldung .
B_BuyAttributePoints (other, ATR_MANA_MAX, 5*LPCOST_ATTRIBUTE_MANA,0);
-
Zitat von CeeX
Hast du versucht 5 * LPCOST_ATTRIBUTE_MANA in Klammern und ohne Leerzeichen zu setzen? Ich glaube nicht, dass er das so wie es da steht sonst als ein Argument erkennen kann.
Das ist überhaupt nicht nötig. Gothic hat kein Problem damit, Whitespace (Leerzeichen, ...) innerhalb eines Ausdrucks einfach zu ignorieren.
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
|