We have detected that cookies are not enabled on your browser. Please enable cookies to ensure the proper experience.
Results 1 to 2 of 2
  1. #1
    Join Date
    Feb 2014
    Posts
    617

    MaKo's Plugin Projects: Questions, findings, ...

    I have been thinking for a while to create a thread of my plugin development projects for miscellaneous questions and findings.

    For developers: First, my plugin projects can be found here:

    https://github.com/mkoskim/MaKoPlugins

    Quick installation guide if you don't want / can't use git to fetch the project: (1) Download project directory as ZIP, (2) extract it to lotro plugins folder, and (3) rename MaKoPlugins-master directory to MaKoPlugins.

    StatWatch plugin is released here: http://www.lotrointerface.com/downlo...StatWatch.html

    MaKoPlugins/release directory contains also two other ZIP files: Quickslot.zip contains somewhat reliable quickslot implementation, and Utils.zip contains my utilities for making plugins.

    - - -

    Then to actual subject(s).

    [SOLVED] A Bad Idea - https://www.lotro.com/forums/showthr...09#post7457109: (1) In my utilities library - https://github.com/mkoskim/MaKoPlugi...Utils/Misc.lua - I changed the implementation to 'inject' features to plugin object itself. Previously I created proxy PlugIn object, but I thought this way the implementation would be clearer. Now, because plugin is not always in global table (_G), I have inserted method call self parameter as _G.plugin at various places: some of them are at the beginning, and the rest are in plugin.Unload() function. My question is, is this safe? Does the actual object live entire plugin execution time although it is not present in globals?

    - - -

    (2) Quickslots, shortcuts and Drag'n'Drop: for somewhat long time I have struggled with unpredictable behaviour of DnD with various plugins (e.g. TonicBars, BevyBars) using quickslots. I started to investigate this closer, as an attempt to fix the problems. Is there any good source for reliable implementation of quickslots, or maybe description of limitations? It seems that:

    - Dragging items from built-in quickslots or bags seem to work about 99% of cases.

    - Dragging skills seem to work less reliably

    - Dragging aliases seem to work very unreliably: it is usually not possible to drag an alias from plugin quickslot to built-in slots, although it usually works on the other way. Many plugins seem to loose either side of the shortcut (either source or destination) when you are trying to swap them between build-in slots.

    I have been studying BevyBars' quickslot implementation.
    Last edited by TamX; Oct 12 2015 at 06:46 PM.
    Laurelin mains: Tamien (R8 Warden) - Tanie (R9 Champion) - Tamieth (Hunter) - Tamia (Minstrel) - Challenger of Gothmog
    Laurelin creeps: Tamratz (R9 Warg) - Tambash (R8 Blackarrow)
    GW2 for LOTROers: https://bit.ly/2nYssrA

  2. #2
    Join Date
    Feb 2014
    Posts
    617
    Answering to myself:

    Quote Originally Posted by TamX View Post
    (1) In my utilities library - https://github.com/mkoskim/MaKoPlugi...Utils/Misc.lua - I changed the implementation to 'inject' features to plugin object itself. Previously I created proxy PlugIn object, but I thought this way the implementation would be clearer. Now, because plugin is not always in global table (_G), I have inserted method call self parameter as _G.plugin at various places: some of them are at the beginning, and the rest are in plugin.Unload() function. My question is, is this safe? Does the actual object live entire plugin execution time although it is not present in globals?
    Yes, this is A Bad Idea (tm). Plugins seem to share same sandbox, so messing up with global namespace can cause lots of trouble. Changed my implementation for bit safer.
    Laurelin mains: Tamien (R8 Warden) - Tanie (R9 Champion) - Tamieth (Hunter) - Tamia (Minstrel) - Challenger of Gothmog
    Laurelin creeps: Tamratz (R9 Warg) - Tambash (R8 Blackarrow)
    GW2 for LOTROers: https://bit.ly/2nYssrA

 

 

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  

This form's session has expired. You need to reload the page.

Reload