summaryrefslogtreecommitdiff
path: root/Data/BuiltIn/Libraries/addons/scripts
diff options
context:
space:
mode:
Diffstat (limited to 'Data/BuiltIn/Libraries/addons/scripts')
-rw-r--r--Data/BuiltIn/Libraries/addons/scripts/README.txt8
-rw-r--r--Data/BuiltIn/Libraries/addons/scripts/checkstorage.lua310
-rw-r--r--Data/BuiltIn/Libraries/addons/scripts/colortest.lua32
-rw-r--r--Data/BuiltIn/Libraries/addons/scripts/strange.lua66
4 files changed, 416 insertions, 0 deletions
diff --git a/Data/BuiltIn/Libraries/addons/scripts/README.txt b/Data/BuiltIn/Libraries/addons/scripts/README.txt
new file mode 100644
index 0000000..32844b4
--- /dev/null
+++ b/Data/BuiltIn/Libraries/addons/scripts/README.txt
@@ -0,0 +1,8 @@
+Lua scripts are similar to the files that are currently run via the //exec windower command. Instead of just executing commands, though, Lua scripts are capable of their own logic and decision making.
+
+Once a Lua script finishes running, it is unloaded.
+
+You can run lua scripts via the //lua exec command. For example, if you have a Lua script named test.lua, you would run it by typing:
+//lua exec test
+or
+//lua e test
diff --git a/Data/BuiltIn/Libraries/addons/scripts/checkstorage.lua b/Data/BuiltIn/Libraries/addons/scripts/checkstorage.lua
new file mode 100644
index 0000000..c3946c8
--- /dev/null
+++ b/Data/BuiltIn/Libraries/addons/scripts/checkstorage.lua
@@ -0,0 +1,310 @@
+--[[
+Copyright (c) 2014, Mujihina
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+ * Neither the name of checkstorage.lua nor the
+ names of its contributors may be used to endorse or promote products
+ derived from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL Mujihina BE LIABLE FOR ANY
+DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+]]
+
+-- Short script to generate a list of what items you have can be stored in a slip
+
+require('luau')
+
+local slips = require('slips')
+local res = require ('resources').items
+local items = windower.ffxi.get_items()
+
+--[[
+EVENT ITEMS
+List of items currently storable with event storage NPC:
+
+Furnishings 1
+1. 86 San d'Orian holiday tree
+2. 115 Bastokan holiday tree
+3. 116 Windurstian holiday tree
+4. 87 Kadomatsu
+5. 117 Wing egg
+6. 118 Lamp egg
+7. 119 Flower egg
+8. 193 Adventuring certificate
+9. 88 Timepiece
+10. 154 Miniature airship
+11. 204 Pumpkin lantern
+12. 203 Bomb lantern
+13. 205 Mandragora lantern
+14. 140 Dream platter
+15. 141 Dream coffer
+16. 155 Dream stocking
+17. 192 Copy of "Hoary Spire"
+18. 179 Jeweled egg
+19. 323 Sprig of red bamboo grass
+20. 324 Sprig of blue bamboo grass
+21. 325 Sprig of green bamboo grass
+22. 176 Snowman knight
+23. 177 Snowman miner
+24. 178 Snowman mage
+25. 180 Bonbori
+26. 215 set of festival dolls
+27. 196 Melodious egg
+28. 197 Clockwork egg
+29. 199 Hatchling egg
+30. 320 Harpsichord
+31. 415 Aldebaran horn
+
+Furnishings 2
+1. 264 Stuffed chocobo
+2. 455 Egg buffet
+3. 265 Adamantoise statue
+4. 266 Behemoth statue
+5. 267 Fafnir Statue
+6. 456 Pepo lantern
+7. 457 Cushaw lantern
+8. 458 Calabazilla lantern
+9. 138 Jeunoan tree
+10. 269 Shadow Lord statue
+11. 3641 Kabuto-kazari
+12. 3642 Katana-kazari
+13. 270 Odin statue
+14. 271 Alexander statue
+15. 3643 Carillon vermeil
+16. 3644 Aeolsglocke
+17. 3645 Leafbell
+18. 181 San d'Orian flag
+19. 182 Bastokan flag
+20. 183 Windurstian flag
+21. 3622 Jack-o'-pricket
+22. 3623 Djinn pricket
+23. 3624 Korrigan pricket
+24. 3646 Mandragora pricket
+
+Weapons and shields
+1. 17074 Chocobo wand
+2. 17565 Trick staff
+3. 17566 Treat staff
+4. 17588 Treat staff II
+5. 17830 Wooden katana
+6. 17831 Hardwood katana
+7. 18102 Pitchfork
+8. 18103 Pitchfork +1
+9. 18399 Charm wand +1
+10. 18436 Lotus katana
+11. 18842 Moogle rod
+12. 18846 Battledore
+13. 18844 Miracle wand +1
+14. 18441 Shinai
+15. 17748 Ibushi shinai
+16. 17749 Ibushi shinai +1
+17. 16182 Town moogle shield
+18. 16183 Nomad moogle shield
+19. 18863 Dream bell
+20. 18864 Dream bell +1
+
+Armor - Head
+1. 13916 Pumpkin head
+2. 13917 Horror head
+3. 15176 Pumpkin head II
+4. 15177 Horror head II
+5. 15178 Dream hat
+6. 15179 Dream hat +1
+7. 15198 Sprout beret
+8. 15199 Guide beret
+9. 15204 Mandragora beret
+10. 16075 Witch hat
+11. 16076 Coven hat
+12. 16109 Egg helm
+13. 16118 Moogle cap
+14. 16119 Nomad cap
+15. 16120 (Pairs of) Redeyes
+16. 16144 Sol cap
+17. 16145 Lunar cap
+18. 11491 Snow bunny hat +1
+19. 11500 Chocobo beret
+
+Armor - Body, Legs, Feet
+1. 13819 Onoko Yukata / 13820 Omina yukata
+2. 13821 Lord's Yukata / 13822 Lady's yukata
+3. 14450 Hume Gilet / 14451 Hume Top
+ 14452 Elvaan Gilet / 14453 Elvaan Top
+ 14454 Tarutaru Maillot / 14471 Tarutaru Top
+ 14455 Mithra Top
+ 14456 Galka Gilet
+4. 14457 Hume Gilet +1 / 14458 Hume Top +1
+ 14459 Elvaan Gilet +1 / 14460 Elvaan Top +1
+ 14461 Tarutaru Maillot +1 / 14472 Tarutaru Top +1
+ 14462 Mithra Top +1
+ 14463 Galka Gilet +1
+5. 15408 Hume Trunks / 15409 Hume Shorts
+ 15410 Elvaan Trunks / 15411 Elvaan Shorts
+ 15412 Tarutaru Trunks / 15423 Tarutaru Shorts
+ 15413 Mithra Shorts
+ 15414 Galka Trunks
+6. 15415 Hume Trunks +1 / 15416 Hume Shorts +1
+ 15417 Elvaan Trunks +1 / 15418 Elvaan Shorts +1
+ 15419 Tarutaru Trunks +1 / 15424 Tarutaru Shorts +1
+ 15420 Mithra Shorts +1
+ 15421 Galka Trunks +1
+7. 14519 Dream robe
+8. 14520 Dream robe +1
+9. 14532 Otoko Yukata / 14533 Onago yukata
+10. 14534 Otokogimi Yukata / 14535 Onnagimi yukata
+11. 15752 (Pair of) dream boots
+12. 15753 (Pair of) dream boots +1
+13. 11265 Custom Gilet / 11266 Custom Top
+ 11267 Magna Gilet / 11268 Magna Top
+ 11269 Wonder Maillot / 11270 Wonder Top
+ 11271 Savage Top
+ 11272 Elder Gilet
+14. 11273 Custom Gilet +1 / 11274 Custom Top +1
+ 11275 Magna Gilet +1 / 11276 Magna Top +1
+ 11277 Wonder Maillot +1 / 11278 Wonder Top +1
+ 11279 Savage Top +1
+ 11280 Elder Gilet +1
+15. 16321 Custom Trunks / 16322 Custom Shorts
+ 16323 Magna Trunks / 16324 Magna Shorts
+ 16325 Wonder Trunks / 16326 Wonder Shorts
+ 16327 Savage Shorts
+ 16328 Elder Trunks
+16. 16329 Custom Trunks +1 / 16330 Custom Shorts +1
+ 16331 Magna Trunks +1 / 16332 Magna Shorts +1
+ 16333 Wonder Trunks +1 / 16334 Wonder Shorts +1
+ 16335 Savage Shorts +1
+ 16336 Elder Trunks +1
+17. 11300 Eerie cloak
+18. 11301 Eerie cloak +1
+19. 11290 Tidal talisman
+20. 11316 Otokogusa yukata / 11317 Onnagusa yukata
+21. 11318 Otokoeshi Yukata / 11319 Ominaeshi yukata
+22. 11355 Dinner jacket
+23. 16378 Dinner hose
+
+
+SEALS
+List of items currently storable with Shami:
+1126 Beastmen's Seal
+1127 Kindred's Seal
+2955 Kindred's Crest
+2956 High Kindred's Crest
+2957 Sacred Kindred's Crest
+
+
+SKIRMISH STONES
+List of items currently stoable with Divainy-Gamainy:
+3954 Ghastly Stone
+3955 Ghastly Stone +1
+3955 Ghastly Stone +2
+4033 Verdigris Stone
+4034 Verdigris Stone +1
+4035 Verdigris Stone +2
+3951 Wailing Stone
+3952 Wailing Stone +1
+3953 Wailing Stone +2
+8930 Snowslit Stone
+8931 Snowslit Stone +1
+8932 Snowslit Stone +2
+8933 Leafslit Stone
+8934 Leafslit Stone +1
+8935 Leafslit Stone +2
+8939 Snowtip Stone
+8940 Snowtip Stone +1
+8941 Snowtip Stone +2
+8942 Leaftip Stone
+8943 Leaftip Stone +1
+8944 Leaftip Stone +2
+8948 Snowdim Stone
+8949 Snowdim Stone +1
+8950 Snowdim Stone +2
+8951 Leafdim Stone
+8952 Leafdim Stone +1
+8953 Leafdim Stone +2
+8954 Leadorb Stone
+8955 Leadorb Stone +1
+8956 Leadorb Stone +2
+
+
+SKIRMISH WINGS
+List of items storable with Lola:
+3950 Pulchridopt Wing
+4036 Lebondopt Wing
+
+LIMBUS
+List of items storable with Sagheera:
+1875 Ancient Beastcoins
+
+ROE
+List of items storable with RoE NPCs:
+8711 Copper Voucher
+]]
+
+require('luau')
+
+local slips = require('slips')
+local res = require ('resources').items
+local items = windower.ffxi.get_items()
+
+local storables = T{
+ ['event_items'] = {
+ NPC = 'Event Item NPC',
+ items = S{ 86, 115, 116, 87, 117, 118, 119, 193, 88, 154, 204, 203, 205, 140, 141, 155, 192, 179, 323, 324, 325, 176, 177, 178, 180, 215, 196, 197, 199, 320, 415, 264, 455, 265, 266, 267, 456, 457, 458, 138, 269, 3641, 3642, 270, 271, 3643, 3644, 3645, 181, 182, 183, 3622, 3623, 3624, 3646, 17074, 17565, 17566, 17588, 17830, 17831, 18102, 18103, 18399, 18436, 18842, 18846, 18844, 18441, 17748, 17749, 16182, 16183, 18863, 18864, 13916, 13917, 15176, 15177, 15178, 15179, 15198, 15199, 15204, 16075, 16076, 16109, 16118, 16119, 16120, 16144, 16145, 11491, 11500, 13819, 13820, 13821, 13822, 14450, 14451, 14452, 14453, 14454, 14471, 14455, 14456, 14457, 14458, 14459, 14460, 14461, 14472, 14462, 14463, 15408, 15409, 15410, 15411, 15412, 15423, 15413, 15414, 15415, 15416, 15417, 15418, 15419, 15424, 15420, 15421, 14519, 14520, 14532, 14533, 14534, 14535, 15752, 15753, 11265, 11266, 11267, 11268, 11269, 11270, 11271, 11272, 11273, 11274, 11275, 11276, 11277, 11278, 11279, 11280, 16321, 16322, 16323, 16324, 16325, 16326, 16327, 16328, 16329, 16330, 16331, 16332, 16333, 16334, 16335, 16336, 11300, 11301, 11290, 11316, 11317, 11318, 11319, 11355, 16378 }, -- 179
+ },
+ ['seals'] = {
+ NPC = 'Shami',
+ items = S{ 1126, 1127, 2955, 2956, 2957}, -- 5
+ },
+ ['skirmish_stones'] = {
+ NPC = 'Divainy-Gamainy',
+ items = S{ 3954, 3955, 3956, 3951, 3952, 3953, 4033, 4034, 4035, 8930, 8931, 8932, 8933, 8934, 8935, 8939, 8940, 8941, 8942, 8943, 8944, 8948, 8949, 8950, 8951, 8952, 8953, 8957, 8958, 8959, 8960, 8961, 8962, }, -- 33
+ },
+ ['skirmish_wings'] = {
+ NPC = 'Lola',
+ items = S{ 3950, 4036}, -- 2
+ },
+ ['limbus'] = {
+ NPC = 'Sagheera',
+ items = S{ 1875, }, -- 1
+ },
+ ['roe'] = {
+ NPC = 'RoE NPCs',
+ items = S{ 8711, }, -- 1
+ },
+}
+
+for _,container in pairs (slips.default_storages) do
+ for _,item in ipairs (items[container]) do
+ if (item.id > 0) then
+ -- check storables
+ for item_type, item_list in pairs(storables) do
+ if (item_list['items']:contains(item.id)) then
+ log ("%s/%s can be stored with %s":format(container:color(259), res[item.id].name:color(258), storables[item_type].NPC:color(261)))
+ end
+ end
+ -- check slips
+ for slip_id,slip_table in pairs (slips.items) do
+ for _,j in ipairs (slip_table) do
+ if (j == item.id) then
+ log ("%s/%s can be stored in %s":format(container:color(259), res[item.id].name:color(258), res[slip_id].name:color(240)))
+ end
+ end
+ end
+ end
+ end
+end
diff --git a/Data/BuiltIn/Libraries/addons/scripts/colortest.lua b/Data/BuiltIn/Libraries/addons/scripts/colortest.lua
new file mode 100644
index 0000000..793ce02
--- /dev/null
+++ b/Data/BuiltIn/Libraries/addons/scripts/colortest.lua
@@ -0,0 +1,32 @@
+colors = {}
+colors[1] = 'Menu > Font Colors > Chat > Immediate vicinity ("Say")'
+colors[2] = 'Menu > Font Colors > Chat > Wide area ("Shout")'
+colors[4] = 'Menu > Font Colors > Chat > Tell target only ("Tell")'
+colors[5] = 'Menu > Font Colors > Chat > All party members ("Party")'
+colors[6] = 'Menu > Font Colors > Chat > Linkshell group ("Linkshell")'
+colors[7] = 'Menu > Font Colors > Chat > Emotes'
+colors[17] = 'Menu > Font Colors > Chat > Messages ("Message")'
+colors[142] = 'Menu > Font Colors > Chat > NPC Conversations'
+colors[20] = 'Menu > Font Colors > For Others > HP/MP others loose'
+colors[21] = 'Menu > Font Colors > For Others > Actions others evade'
+colors[22] = 'Menu > Font Colors > For Others > HP/MP others recover'
+colors[60] = 'Menu > Font Colors > For Others > Beneficial effects others are granted'
+colors[61] = 'Menu > Font Colors > For Others > Detrimental effects others receive'
+colors[63] = 'Menu > Font Colors > For Others > Effects others resist'
+colors[28] = 'Menu > Font Colors > For Self > HP/MP you loose'
+colors[29] = 'Menu > Font Colors > For Self > Actions you evade'
+colors[30] = 'Menu > Font Colors > For Self > HP/MP you recover'
+colors[56] = 'Menu > Font Colors > For Self > Beneficial effects you are granted'
+colors[57] = 'Menu > Font Colors > For Self > Detrimental effects you receive'
+colors[59] = 'Menu > Font Colors > For Self > Effects you resist'
+colors[8] = 'Menu > Font Colors > System > Calls for help'
+colors[50] = 'Menu > Font Colors > System > Standard battle messages'
+colors[121] = 'Menu > Font Colors > System > Basic system messages'
+
+for v = 0, 255, 1 do
+ if(colors[v] ~= nil) then
+ windower.add_to_chat(v, "Color "..v..": "..colors[v])
+ else
+ windower.add_to_chat(v, "Color "..v..": This is some random text to display the color.")
+ end
+end
diff --git a/Data/BuiltIn/Libraries/addons/scripts/strange.lua b/Data/BuiltIn/Libraries/addons/scripts/strange.lua
new file mode 100644
index 0000000..2c47b45
--- /dev/null
+++ b/Data/BuiltIn/Libraries/addons/scripts/strange.lua
@@ -0,0 +1,66 @@
+--[[
+Copyright © 2014, Mujihina
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+ * Neither the name of strange.lua nor the
+ names of its contributors may be used to endorse or promote products
+ derived from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL Mujihina BE LIABLE FOR ANY
+DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+]]
+
+-- Short script to generate password for doctor status when using a strange apparatus
+
+require('luau')
+
+if (not windower.ffxi.get_info().logged_in) then
+ log ("You must be logged in order to use this script")
+ return
+end
+
+local zone_values = T{
+ [191] = {val = 0, element = "Fire", chip = "Red"}, -- Dangruf Wadi
+ [196] = {val = 1, element = "Earth", chip = "Yellow"}, -- Gusgen Mines
+ [197] = {val = 2, element = "Water", chip = "Blue"}, -- Crawlers' Nest
+ [193] = {val = 3, element = "Wind", chip = "Green"}, -- Ordelle's Caves
+ [195] = {val = 4, element = "Ice", chip = "Clear"}, -- Eldieme Necropolis
+ [194] = {val = 5, element = "Lightning", chip = "Purple"}, -- Outer Horutoto Ruins
+ [200] = {val = 6, element = "Light", chip = "White"}, -- Garlaige Citadel
+ [198] = {val = 7, element = "Dark", chip = "Black"}, -- Maze of Shakrami
+}
+
+local name = windower.ffxi.get_player().name:lower():sub(1,3) -- First 3 chars of name
+local area = windower.ffxi.get_info().zone
+
+
+if (not zone_values[area]) then
+ log ("This is not an area with a strange apparatus")
+ return
+end
+
+local values = T{}
+values[0] = name:byte(1) - 97 + zone_values[area].val
+values[1] = name:byte(2) - 97 + zone_values[area].val
+values[2] = name:byte(3) - 97 + zone_values[area].val
+values[3] = values[0] + values[1] + values[2] + zone_values[area].val
+
+log ("Password: %02d%02d%02d%02d":format(values[0], values[1], values[2], values[3]))
+log ("Chip: %s (%s)":format(zone_values[area].chip, zone_values[area].element))
+