{ Fix armor rate for TAWOBA. } unit userscript; function GetArmorMultiByKeyword(e: IInterface): double; var i: integer; s: string; begin Result := 0.5; for i := 0 to ElementCount(e) - 1 do begin s := IntToHex(GetNativeValue( ElementByIndex(e, i) ), 8); if s = '0006C0EC' then begin // ArmorCuirass Result := 0.5; break; end; if s = '0006C0ED' then begin // ArmorBoots Result := 1.0; break; end; if s = '0006C0EE' then begin // ArmorHelm Result := 1.5; break; end; if s = '0006C0EF' then begin // ArmorGauntlets Result := 1.0; break; end; if s = '000965B2' then begin // ArmorShield Result := 2.0; break; end; end; end; function GetBaseArmorRateByMaterial(e: IInterface): double; var i: integer; s: string; begin Result := 10; for i := 0 to ElementCount(e) - 1 do begin s := IntToHex(GetNativeValue( ElementByIndex(e, i) ), 8); if s = '0006BBD4' then begin // ArmorMaterialDaedric Result := 18; break; end; if s = '0006BBD5' then begin // ArmorMaterialDragonplate Result := 17; break; end; if s = '0006BBD6' then begin // ArmorMaterialDragonscale Result := 12; break; end; if s = '0006BBD7' then begin // ArmorMaterialDwarven Result := 13; break; end; if s = '0006BBD8' then begin // ArmorMaterialEbony Result := 16; break; end; if s = '0006BBD9' then begin // ArmorMaterialElven Result := 8; break; end; if s = '0006BBDA' then begin // ArmorMaterialElvenGilded Result := 8; break; end; if s = '0006BBDB' then begin // ArmorMaterialLeather Result := 7; break; end; if s = '0006BBDC' then begin // ArmorMaterialGrass Result := 11; break; end; if s = '0006BBDD' then begin // ArmorMaterialHide Result := 5; break; end; if s = '0006BBDE' then begin // ArmorMaterialScaled Result := 9; break; end; if s = '0006BBDF' then begin // ArmorMaterialStudded Result := 10; break; end; if s = '0006BBE0' then begin // ArmorMaterialImperialLight Result := 6; break; end; if s = '0006BBE1' then begin // ArmorMaterialImperialStudded Result := 8; break; end; if s = '0006BBE2' then begin // ArmorMaterialImperialHeavy Result := 10; break; end; if s = '0006BBE3' then begin // ArmorMaterialIron Result := 10; break; end; if s = '0006BBE4' then begin // ArmorMaterialIronBanded Result := 11.2; break; end; if s = '0006BBE5' then begin // ArmorMaterialOrcish Result := 15; break; end; if s = '0006BBE6' then begin // ArmorMaterialSteel Result := 12; break; end; if s = '0006BBE7' then begin // ArmorMaterialSteelPlate Result := 14; break; end; if s = '010009BD' then begin // ArmorMaterialFalmer Result := 12; break; end; if s = '010009C0' then begin // ArmorMaterialBlades Result := 13; break; end; if s = '04024100' then begin // DLC2ArmorMaterialBonemoldLight Result := 7.2; break; end; if s = '04024101' then begin // DLC2ArmorMaterialBonemoldHeavy Result := 12; break; end; if s = '04024102' then begin // DLC2ArmorMaterialChitinLight Result := 8.5; break; end; if s = '04024103' then begin // DLC2ArmorMaterialChitinHeavy Result := 14; break; end; if s = '04024104' then begin // DLC2ArmorMaterialNordicLight Result := 9; break; end; if s = '04024105' then begin // DLC2ArmorMaterialNordicHeavy Result := 15; break; end; if s = '04024106' then begin // DLC2ArmorMaterialStalhrinHeavy Result := 17; break; end; if s = '04024107' then begin // DLC2ArmorMaterialStalhrinLight Result := 11.5; break; end; end; end; function Process(e: IInterface): Integer; var ar, mult: double; kwda: IInterface; begin // abort if this element is not an armor if Signature(e) <> 'ARMO' then Exit; // abort if this element is clothing if GetElementNativeValues(e, 'BOD2\Armor Type') = 2 then Exit; // get keywords kwda := ElementBySignature(e, 'KWDA'); if not Assigned(kwda) then Exit; // fix AR ar := GetBaseArmorRateByMaterial(kwda); mult := GetArmorMultiByKeyword(kwda); ar := ar * mult * 100; SetElementNativeValues(e, 'DNAM', ar); end; end.