World of Gothic Archiv
> Editing Was ist an diesem Script falsch? |
|
30.08.2001, 18:45 | #1 | ||
Mordrag Beiträge: 93 |
Was ist an diesem Script falsch?
Das ist ein Auszug aus meiner veränderten BuyAttributePoints.d! Ziel soll sein, dass nur Kämpfer einen Stärkewert von 100 bekommen können und alle andere Klassen maximal 65!(Vorläufig!) Doch irgendwie kann ich auch als Schatten über 65 kommen! Weiß jemand, woras liegt? Vom Technischen her funzts, d.h. es kommen keine Fehlermeldungen! Natürlich habe ich auch reparst usw! if (ATR == ATR_STRENGTH) { if (Typ_Atr + AtrPlus <= 100) && (Npc_GetTrueGuild (hero) == GIL_SLD) || (Npc_GetTrueGuild (hero) == GIL_GRD) || (Npc_GetTrueGuild (hero) == GIL_TPL) { typ.attribute[ATR_STRENGTH] = typ.attribute[ATR_STRENGTH] + AtrPlus; PrintString = ConcatStrings(NAME_BuyAttributeSTR, AtrPlusSTRING); PrintScreen (PrintSTRING, -1,-1,"FONT_OLD_20_WHITE.TGA",1); typ.lp = typ.lp - AtrPlus; } else if (Typ_Atr + AtrPlus <= 65) && (Npc_GetTrueGuild (hero) != GIL_SLD) && (Npc_GetTrueGuild (hero) != GIL_GRD) && (Npc_GetTrueGuild (hero) != GIL_TPL) { typ.attribute[ATR_STRENGTH] = typ.attribute[ATR_STRENGTH] + AtrPlus; PrintString = ConcatStrings(NAME_BuyAttributeSTR, AtrPlusSTRING); PrintScreen (PrintSTRING, -1,-1,"FONT_OLD_20_WHITE.TGA",1); typ.lp = typ.lp - AtrPlus; } else { AI_StopProcessInfos ( self ); }; }; |
||
30.08.2001, 20:48 | #2 | ||
PyroX Beiträge: 304 |
So müsste es funktionieren (allerdings nicht ausprobiert, außerdem geht sicher auch eleganter): ------------------- func void B_BuyAttributePoints (var C_NPC typ, var int ATR, var int AtrPlus) { // --------- Umwandeln von var in const var int Typ_Atr; 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]; }; // --------- Steigern oder verbieten var string AtrPlusSTRING; AtrPlusSTRING = IntToString(AtrPlus); var string PrintSTRING; var int added; added= FALSE; var int cmpVal; cmpVal= 100; // Hier nach Wunsch ändern var int hiMaxStr; hiMaxStr= 100; var int loMaxStr; loMaxStr= 65; if (!(typ.lp < AtrPlus)) { if (Typ_Atr + AtrPlus <= cmpVal) { typ.lp = typ.lp - AtrPlus; if (ATR == ATR_DEXTERITY) { typ.attribute[ATR_DEXTERITY] = typ.attribute[ATR_DEXTERITY] + AtrPlus; PrintString = ConcatStrings(NAME_BuyAttributeDEX, AtrPlusSTRING); PrintScreen (PrintSTRING, -1,-1,"FONT_OLD_20_WHITE.TGA",1); added= TRUE; } else if (ATR == ATR_MANA_MAX) { typ.attribute[ATR_MANA_MAX] = typ.attribute[ATR_MANA_MAX] + AtrPlus; PrintString = ConcatStrings(NAME_BuyAttributeMAN, AtrPlusSTRING); PrintScreen (PrintString, -1,-1,"FONT_OLD_20_WHITE.TGA",1); added= TRUE; }; }; if (ATR == ATR_STRENGTH) { var int gld; gld= Npc_GetTrueGuild (hero); if((gld == GIL_SLD) || (gld == GIL_GRD) || (gld == GIL_TPL)) { cmpVal= hiMaxStr; } else { cmpVal= loMaxStr; }; if (Typ_Atr + AtrPlus <= cmpVal) { typ.attribute[ATR_STRENGTH] = typ.attribute[ATR_STRENGTH] + AtrPlus; PrintString = ConcatStrings(NAME_BuyAttributeSTR, AtrPlusSTRING); PrintScreen (PrintSTRING, -1,-1,"FONT_OLD_20_WHITE.TGA",1); typ.lp = typ.lp - AtrPlus; added= TRUE; }; }; if(!added) { var string addedStr; addedStr = IntToString(cmpVal); var string pString; pString= ConcatStrings("Keine Steigerung über Maximum ", addedStr); PrintScreen (pString, -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"); }; }; ------------------- |
||
|