{ generate enchantment code } unit userscript; var slPapyrus1: TStringList; slPapyrus2: TStringList; i: integer; function Initialize: integer; begin slPapyrus1 := TStringList.Create; slPapyrus2 := TStringList.Create; i := 0; end; function Process(e: IInterface): Integer; var eid: string; begin // abort if this element is not an enchantment if Signature(e) 'ENCH' then Exit; eid := GetElementEditValues(e, 'EDID'); slPapyrus1.Add('Enchantment Property ' + eid + ' Auto'); slPapyrus2.Add('kEnchantments[' + IntToStr(i) + '] = ' + eid); i := i + 1; end; function Finalize: integer; var fname: string; slPapyrus2b: TStringList; i, c: integer; begin fname := ProgramPath + 'Edit Scripts\enchantment1.psc'; AddMessage('Saving list to ' + fname); slPapyrus1.SaveToFile(fname); slPapyrus1.Free; slPapyrus2b := TStringList.Create; c := slPapyrus2.Count; slPapyrus2b.Add('Enchantment[] kEnchantments = new Enchantment[' + IntToStr(c) + ']'); for i := 0 to c - 1 do begin slPapyrus2b.Add(slPapyrus2[i]); end; slPapyrus2.Free; slPapyrus2b.Add('return kEnchantments[Utility.RandomInt(0, ' + IntToStr(c - 1) + ')]'); fname := ProgramPath + 'Edit Scripts\enchantment2.psc'; AddMessage('Saving list to ' + fname); slPapyrus2b.SaveToFile(fname); slPapyrus2b.Free; end; end.