Advertisement
gribbleshnibit8

Change Enable Parent - FNVEdit Script

Apr 24th, 2015
266
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Delphi 1.32 KB | None | 0 0
  1. {
  2.   Remove the persistent flag from selected records
  3. }
  4. unit UserScript;
  5.  
  6. var
  7.   DoEnableSame: boolean;
  8.   s: string;
  9.   i: integer;
  10.  
  11. // Called before processing
  12. // You can remove it if script doesn't require initialization code
  13. function Initialize: integer;
  14. begin
  15.   Result := 0;
  16.  
  17.   // ask for enable or disable on parent
  18.   i := MessageDlg('Enable same as parent [YES] or opposite parent [NO]?', mtConfirmation, [mbYes, mbNo, mbCancel], 0);
  19.  
  20.   if i = mrYes then DoEnableSame := true else
  21.     if i = mrNo then DoEnableSame := false else begin
  22.       Result := 1;
  23.       Exit;
  24.     end;
  25.    
  26.   // ask for string
  27.   if not InputQuery('Enter ', 'Parent Ref', s) then begin
  28.     Result := 2;
  29.     Exit;
  30.   end;
  31. end;
  32.  
  33. // called for every record selected in xEdit
  34. function Process(e: IInterface): integer;
  35. var
  36.   Sig: string;
  37.   xesp: IInterface;
  38. begin
  39.   Result := 0;
  40.  
  41.   if not (IsEditable(e)) and
  42.     (Sig <> 'REFR')
  43.   then
  44.     Exit;
  45.  
  46.   xesp := ElementByPath(e, 'XESP');
  47.   // processing code goes here
  48.  
  49.   SetElementEditValues(xesp, 'Reference', FixedFormID(s));
  50.  
  51.   if DoEnableSame then
  52.     SetElementEditValues(xesp, 'Flags', '1')
  53.   else
  54.     SetElementEditValues(xesp, 'Flags', '0');
  55.  
  56. //  AddMessage('Changed master to' + s + '. Enabled state opposite parent ' + DoEnableSame);
  57. end;
  58.  
  59. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement