{ generate object effect } unit userscript; var base: IInterface; function Initialize: integer; begin base := RecordByFormID(FileByIndex(0), $000AD461, True); if not Assigned(base) then begin AddMessage('Can''t copy base record as new'); Result := 1; Exit; end; end; function Process(e: IInterface): Integer; var i: integer; ee, effects, ef: IInterface; begin // abort if this element is not a magic effect if Signature(e) <> 'MGEF' then Exit; for i := 1 to 5 do begin // create new form ee := wbCopyElementToFile(base, GetFile(e), True, True); if not Assigned(ee) then begin AddMessage('Can''t copy base record as new'); Result := 1; Exit; end; // change editor id SetElementEditValues(ee, 'EDID', GetElementEditValues(e, 'EDID') + '0' + IntToStr(i)); SetElementEditValues(ee, 'FULL', GetElementEditValues(e, 'FULL')); SetElementEditValues(ee, 'ENIT\Base Enchantment', 0); SetElementNativeValues(ee, 'ENIT\Enchantment Cost', 0); SetElementNativeValues(ee, 'ENIT\Enchantment Amount', 0); effects := ElementByPath(ee, 'Effects'); if not Assigned(effects) then effects := Add(ee, 'Effects', false); ef := ElementByIndex(effects, 0); if Pos('Regenerate', GetElementEditValues(e, 'FULL')) >= 1 then SetElementNativeValues(ef, 'EFIT\Magnitude', i) else SetElementNativeValues(ef, 'EFIT\Magnitude', i * 10); SetElementNativeValues(ef, 'EFID - Base Effect', FixedFormID(e)); end; end; end.