The RPG Maker Resource Kit

RMRK RPG Maker Creation => VX Ace => VXA Scripts Database => Topic started by: DoubleX on June 27, 2015, 11:58:51 AM

Title: DoubleX RMVXA Object Trace
Post by: DoubleX on June 27, 2015, 11:58:51 AM
Changelog
Code: [Select]
#    v1.02a(GMT 0100 27-10-2015):                                              |
#    1. Lets uers set the conditions and labels for tracing objects            |
#    v1.01b(GMT 1300 13-7-2015):                                               |
#    1. Fixed not tracing klass linked to klass linked to queried object bug   |
#    2. Fixed some Script Call Info and Implementation documentation typos     |
#    3. Added more info in Prerequisites and Script Call Info                  |
#    4. Increased this script's compactness                                    |
#    v1.01a(GMT 1300 6-7-2015):                                                |
#    1. Instance methods can be traced as well                                 |
#    2. Increased this script's compactness and readability                    |
#    v1.00b(GMT 0800 1-7-2015):                                                |
#    1. Fixed object having Range and/or Structs not tracing klass properly bug|
#    v1.00a(GMT 1200 27-6-2015):                                               |
#    1. 1st version of this script finished                                    |

Author
DoubleX

Credits
DoubleX(Optional)

Purpose
Traces all objects belonging to a queried class linked to a queried object
Designed as a bug diagnosis tool used by scripters with debug experience

Example
obj.inspect
200 Scripts 30 Scripters Inspect Example 1 (http://pastebin.com/kb1q1Dru)
obj.trace_obj(Proc); obj.obj_trace[Proc].inspect
200 Scripts 30 Scripters Obj Trace Proc Example 1 (http://pastebin.com/PZ4KNbHv)

Configurations
Code: [Select]
    #--------------------------------------------------------------------------|
    #  Object Trace Condition Method                                           |
    #  - Setups cond used by trace_obj(cond, label)                            |
    #--------------------------------------------------------------------------|
    # cond must be the symbol of a method taking the currently traced object as
    # the only arguement
    # The below examples are added to help you setup your own cond methods

    # Checks if the currently traced object belongs to klass
    def self.cond_klass(obj)
        obj.is_a?(klass)
    end # cond_klass

    # Add your own cond methods here
   

    #--------------------------------------------------------------------------|
    #  Object Trace Label Method                                               |
    #  - Setups label used by trace_obj(cond, label)                           |
    #--------------------------------------------------------------------------|
    # label must be the symbol of a method taking the currently traced object as
    # the only arguement
    # The below examples are added to help you setup your own label methods

    # Labels all traced objects using their class symbol
    def self.label_klass(obj)
        :"#{obj.class}"
    end # label_klass

    # Add your own label methods here
   


Script Calls
Code: [Select]
#  * Object manipulations                                                      |
#    1. trace_obj(cond, label)                                                 |
#       - Traces all objects meeting cond method linked to this object         |
#       - Labels all traced objects using label method                         |
#       - cond and label are method symbols in Object Trace Condition Method   |
#         and Object Trace Label Method respectively                           |
#    2. obj_trace[cond]                                                        |
#       - Returns all traced objects meeting cond method linked to this object |
#       - cond is a method symbol in Object Trace Condition Method             |
#    3. (v1.01a+)trace_idef                                                    |
#       - Traces all instance methods linked to this object                    |
#    4. (v1.01a+)idef_trace                                                    |
#       - Returns the trace of all instance methods linked to this object      |

Prerequisites
Abilities:
1. Basic knowledge of inspecting objects in Ruby
2. Some RGSS3 scripting proficiency to fully utilize this script

Terms Of Use

You shall:
1. Keep this script's Script Info part's contents intact
You shalln't:
1. Claim that this script is written by anyone other than DoubleX or his aliases
None of the above applies to DoubleX or his/her aliases

Instructions
Open the script editor and put this script into an open slot between Materials and Main. Save to take effect.
Title: Re: DoubleX RMVXA Object Trace
Post by: modern algebra on June 27, 2015, 12:03:48 PM
It's always good to have scripts that help other scripters like this. Thanks for sharing DoubleX!
Title: Re: DoubleX RMVXA Object Trace
Post by: DoubleX on July 01, 2015, 07:14:17 AM
Updates
Code: [Select]
#    v1.00b(GMT 0800 1-7-2015):                                                |
#    1. Fixed object having Range and/or Structs not tracing klass properly bug|
Title: Re: DoubleX RMVXA Object Trace
Post by: DoubleX on July 06, 2015, 12:53:46 PM
Updates
Code: [Select]
#    v1.01a(GMT 1300 6-7-2015):                                                |
#    1. Instance methods can be traced as well                                 |
#    2. Increased this script's compactness and readability                    |
Title: Re: DoubleX RMVXA Object Trace
Post by: DoubleX on July 13, 2015, 01:11:50 PM
Updates
Code: [Select]
#    v1.01b(GMT 1300 13-7-2015):                                               |
#    1. Fixed not tracing klass linked to klass linked to queried object bug   |
#    2. Fixed some Script Call Info and Implementation documentation typos     |
#    3. Added more info in Prerequisites and Script Call Info                  |
#    4. Increased this script's compactness                                    |
Title: Re: DoubleX RMVXA Object Trace
Post by: DoubleX on October 27, 2015, 10:20:42 AM
Updates
Code: [Select]
#    v1.02a(GMT 0100 27-10-2015):                                              |
#    1. Lets uers set the conditions and labels for tracing objects            |