I'm probably way out of date here, but having been writing a few scripts and getting fed up with the <clone array> function not working as it suggests it should, I enhanced it.
This little script will recurse through an array cloning each array-type member it finds, resulting in a properly cloned array, fully independent of the original.
Just copy/paste into Exscriptor
The scriptname I used for this is hc.array.clone
* ------------------------------
* Clone the Source
$Count = size of array $Source
skip if $Count > 0
return null
dec $Count =
$Source.Array = clone array $Source : index 0 ... $Count
* ------------------------------
* Clone the $Source.Array: This will create disconnected copies of the non-array typemembers of the Original Source
* All we need to process then are the array-type members
$New.Array = clone array $Source.Array : index 0 ... $Count
* ------------------------------
inc $Count =
* ------------------------------
$Index = -1
while $Index < ( $Count - 1 )
inc $Index =
$This.Item = $Source.Array[$Index]
* ------------------------------
* Recurse for array-type members
if is datatyp[ $This.Item ] == {DATATYPE_ARRAY}
$New.Item = [THIS]->call script 'hc.array.clone' : Source=$This.Item
$New.Array[$Index] = $New.Item
end
* ------------------------------
end
return $New.Array
I hope this is useful to someone
Array Cloning and recursion
The place to discuss scripting and game modifications for X³: Terran Conflict and X³: Albion Prelude.
Moderators: Moderators for English X Forum, Scripting / Modding Moderators
Post Reply
1 post
• Page 1 of 1
Return to “X³: Terran Conflict / Albion Prelude - Scripts and Modding”
Jump to
- English Forums
- ↳ X4: Foundations
- ↳ X4: Foundations - Spoilers
- ↳ X4: Foundations - Technical Support
- ↳ X4: Foundations - Scripts and Modding
- ↳ Construction Community
- ↳ X Wiki Discussion
- ↳ X Rebirth Universe
- ↳ X Rebirth VR Edition
- ↳ X Rebirth - Technical Support
- ↳ X Rebirth - Scripts and Modding
- ↳ X³: Farnham's Legacy
- ↳ X³: Farnham's Legacy - Scripts and Modding
- ↳ X Trilogy Universe
- ↳ X³: Terran Conflict / Albion Prelude / Farnham's Legacy - Technical Support
- ↳ X³: Terran Conflict / Albion Prelude - Scripts and Modding
- ↳ X³: Reunion, X²: The Threat, X-T and X-BTF - Technical Support
- ↳ X³: Reunion - Scripts and Modding
- ↳ X²: The Threat - Scripts and Modding
- ↳ Creative Universe
- ↳ Off Topic English
- Deutschsprachige Foren
- ↳ X4: Foundations
- ↳ X4: Foundations - Spoilers
- ↳ X4: Foundations - Technische Unterstützung
- ↳ X4: Foundations - Scripts und Modding
- ↳ X Rebirth Universum
- ↳ X Rebirth VR Edition
- ↳ X Rebirth - Technische Unterstützung
- ↳ X Rebirth - Scripts und Modding
- ↳ X³: Farnham's Legacy
- ↳ X³: Farnham's Legacy - Scripts und Modding
- ↳ X Trilogie Universum
- ↳ X³: Terran Conflict / Albion Prelude / Farnham's Legacy - Technische Unterstützung
- ↳ X³: Terran Conflict / Albion Prelude - Scripts und Modding
- ↳ X³: Reunion, X²: Die Bedrohung, X-T und X-BTF - Technische Unterstützung
- ↳ X³: Reunion - Scripts und Modding
- ↳ X²: Die Bedrohung - Scripts und Modding
- ↳ Kreative Zone
- ↳ Off Topic Deutsch
- Forum Français
- ↳ X4: Foundations
- ↳ Support et Aide pour X4: Foundations
- ↳ Script et Modding pour X4: Foundations
- ↳ L'Univers X Rebirth
- ↳ Support et Aide pour X Rebirth
- ↳ Script et Modding pour X Rebirth
- ↳ Support et Aide pour la Trilogie X
- ↳ L'Univers de la Trilogie X
- ↳ Script et Modding pour la Trilogie X
- ↳ Off Topic Français
- Forum Italiano
- ↳ X4: Foundations
- ↳ Supporto Tecnico per X4: Foundations
- ↳ Script e Modding per X4: Foundations
- ↳ L'Universo di X Rebirth
- ↳ Script e Modding per X Rebirth
- ↳ Supporto Tecnico per X Rebirth
- ↳ L'Universo della Trilogia di X
- ↳ Script e Modding per la Trilogia di X
- ↳ Supporto Tecnico per la Trilogia di X
- ↳ Off Topic Italiano
- Polskie Fora
- ↳ Polskie / Polish X-Forum
- ↳ Polskie / Polish Off Topic
- Other Languages
- ↳ Česky / Czech X-Forum
- ↳ Dansk / Danish X-Forum
- ↳ Español / Spanish X-Forum
- ↳ Nederlands / Dutch X-Forum
- ↳ Português / Portuguese X-Forum
- ↳ Русский / Russian X-Forum
- DevNet: General
- ↳ MSCI Reference
- DevNet: X4: Foundations
- ↳ X4: Foundations - Public Beta Feedback
- DevNet: X Rebirth
- ↳ XR - Technical Troubleshooting