diff --git a/800OTClient/data/things/772/Tibia.dat b/800OTClient/data/things/772/Tibia.dat
index 34ed712..5b6f2ce 100644
Binary files a/800OTClient/data/things/772/Tibia.dat and b/800OTClient/data/things/772/Tibia.dat differ
diff --git a/800OTClient/data/things/772/Tibia.spr b/800OTClient/data/things/772/Tibia.spr
index d8b8997..4aeb632 100644
Binary files a/800OTClient/data/things/772/Tibia.spr and b/800OTClient/data/things/772/Tibia.spr differ
diff --git a/800OTClient/otclientv8.log b/800OTClient/otclientv8.log
index 38a1ba4..3e2a6b6 100644
--- a/800OTClient/otclientv8.log
+++ b/800OTClient/otclientv8.log
@@ -4936,3 +4936,412 @@ Login to 127.0.0.1:7172
Login to 127.0.0.1:7172
Login to 127.0.0.1:7172
Exiting application..
+GPU Radeon RX 580 Series (ATI Technologies Inc.)
+OpenGL 4.6.13596 Compatibility Profile Context 20.10.35.02 27.20.1034.6
+[Atlas] Texture size is: 4096x4096 (max: 16384x16384)
+Found work dir at 'C:/Users/erika/source/repos/Sabrehaven/800OTClient/'
+== application started at Apr 18 2022 11:58:29
+OTCv8 3.1 rev 163 (dev) made by otclient.net built on Mar 31 2022 for arch x86
+Connecting to: 127.0.0.1:7171
+Login to 127.0.0.1:7172
+Login to 127.0.0.1:7172
+Exiting application..
+GPU Radeon RX 580 Series (ATI Technologies Inc.)
+OpenGL 4.6.13596 Compatibility Profile Context 20.10.35.02 27.20.1034.6
+[Atlas] Texture size is: 4096x4096 (max: 16384x16384)
+Found work dir at 'C:/Users/erika/source/repos/Sabrehaven/800OTClient/'
+== application started at Apr 18 2022 12:25:12
+OTCv8 3.1 rev 163 (dev) made by otclient.net built on Mar 31 2022 for arch x86
+Connecting to: 127.0.0.1:7171
+Login to 127.0.0.1:7172
+Login to 127.0.0.1:7172
+Login to 127.0.0.1:7172
+Login to 127.0.0.1:7172
+Login to 127.0.0.1:7172
+Login to 127.0.0.1:7172
+Login to 127.0.0.1:7172
+Exiting application..
+GPU Radeon RX 580 Series (ATI Technologies Inc.)
+OpenGL 4.6.13596 Compatibility Profile Context 20.10.35.02 27.20.1034.6
+[Atlas] Texture size is: 4096x4096 (max: 16384x16384)
+Found work dir at 'C:/Users/erika/source/repos/Sabrehaven/800OTClient/'
+== application started at Apr 18 2022 13:23:33
+OTCv8 3.1 rev 163 (dev) made by otclient.net built on Mar 31 2022 for arch x86
+Connecting to: 127.0.0.1:7171
+Login to 127.0.0.1:7172
+Login to 127.0.0.1:7172
+Login to 127.0.0.1:7172
+Exiting application..
+GPU Radeon RX 580 Series (ATI Technologies Inc.)
+OpenGL 4.6.13596 Compatibility Profile Context 20.10.35.02 27.20.1034.6
+[Atlas] Texture size is: 4096x4096 (max: 16384x16384)
+Found work dir at 'C:/Users/erika/source/repos/Sabrehaven/800OTClient/'
+== application started at Apr 18 2022 13:48:30
+OTCv8 3.1 rev 163 (dev) made by otclient.net built on Mar 31 2022 for arch x86
+Connecting to: 127.0.0.1:7171
+Login to 127.0.0.1:7172
+Login to 127.0.0.1:7172
+Login to 127.0.0.1:7172
+Login to 127.0.0.1:7172
+ERROR: no creature found to move
+at:
+ [C++]: ?parseCreatureMove@ProtocolGame@@AAEXABV?$shared_object_ptr@VInputMessage@@@stdext@@@Z
+Login to 127.0.0.1:7172
+Login to 127.0.0.1:7172
+Login to 127.0.0.1:7172
+Login to 127.0.0.1:7172
+Login to 127.0.0.1:7172
+Login to 127.0.0.1:7172
+ERROR: invalid outfit looktype 287
+at:
+ [C++]: ?getOutfit@ProtocolGame@@QAE?AVOutfit@@ABV?$shared_object_ptr@VInputMessage@@@stdext@@_N@Z
+ERROR: invalid outfit looktype 287
+at:
+ [C++]: ?getOutfit@ProtocolGame@@QAE?AVOutfit@@ABV?$shared_object_ptr@VInputMessage@@@stdext@@_N@Z
+Exiting application..
+GPU Radeon RX 580 Series (ATI Technologies Inc.)
+OpenGL 4.6.13596 Compatibility Profile Context 20.10.35.02 27.20.1034.6
+[Atlas] Texture size is: 4096x4096 (max: 16384x16384)
+Found work dir at 'C:/Users/erika/source/repos/Sabrehaven/800OTClient/'
+== application started at Apr 18 2022 14:12:52
+OTCv8 3.1 rev 163 (dev) made by otclient.net built on Mar 31 2022 for arch x86
+Connecting to: 127.0.0.1:7171
+Login to 127.0.0.1:7172
+Login to 127.0.0.1:7172
+Login to 127.0.0.1:7172
+Login to 127.0.0.1:7172
+Login to 127.0.0.1:7172
+Exiting application..
+GPU Radeon RX 580 Series (ATI Technologies Inc.)
+OpenGL 4.6.13596 Compatibility Profile Context 20.10.35.02 27.20.1034.6
+[Atlas] Texture size is: 4096x4096 (max: 16384x16384)
+Found work dir at 'C:/Users/erika/source/repos/Sabrehaven/800OTClient/'
+== application started at Apr 18 2022 14:47:56
+OTCv8 3.1 rev 163 (dev) made by otclient.net built on Mar 31 2022 for arch x86
+Connecting to: 127.0.0.1:7171
+Login to 127.0.0.1:7172
+Login to 127.0.0.1:7172
+ERROR: protected lua call failed: /modules/game_outfit/outfit.lua:836: attempt to index field 'addon1' (a nil value)
+stack traceback:
+ [C]: in function '__index'
+ /modules/game_outfit/outfit.lua:836: in function
+ERROR: protected lua call failed: /modules/game_outfit/outfit.lua:355: attempt to index field 'addon1' (a nil value)
+stack traceback:
+ [C]: in function '__index'
+ /modules/game_outfit/outfit.lua:355: in function 'onElementSelect'
+ /layouts/retro/styles/40-outfitwindow.otui:151: [@onClick]:2: in function
+ERROR: protected lua call failed: /modules/game_outfit/outfit.lua:836: attempt to index field 'addon1' (a nil value)
+stack traceback:
+ [C]: in function '__index'
+ /modules/game_outfit/outfit.lua:836: in function
+ERROR: protected lua call failed: /modules/game_outfit/outfit.lua:355: attempt to index field 'addon1' (a nil value)
+stack traceback:
+ [C]: in function '__index'
+ /modules/game_outfit/outfit.lua:355: in function 'onElementSelect'
+ /layouts/retro/styles/40-outfitwindow.otui:151: [@onClick]:2: in function
+ERROR: protected lua call failed: /modules/game_outfit/outfit.lua:355: attempt to index field 'addon1' (a nil value)
+stack traceback:
+ [C]: in function '__index'
+ /modules/game_outfit/outfit.lua:355: in function 'onElementSelect'
+ /layouts/retro/styles/40-outfitwindow.otui:151: [@onClick]:2: in function
+ERROR: protected lua call failed: /modules/game_outfit/outfit.lua:355: attempt to index field 'addon1' (a nil value)
+stack traceback:
+ [C]: in function '__index'
+ /modules/game_outfit/outfit.lua:355: in function 'onElementSelect'
+ /layouts/retro/styles/40-outfitwindow.otui:151: [@onClick]:2: in function
+ERROR: protected lua call failed: /modules/game_outfit/outfit.lua:355: attempt to index field 'addon1' (a nil value)
+stack traceback:
+ [C]: in function '__index'
+ /modules/game_outfit/outfit.lua:355: in function 'onElementSelect'
+ /layouts/retro/styles/40-outfitwindow.otui:151: [@onClick]:2: in function
+ERROR: protected lua call failed: /modules/game_outfit/outfit.lua:355: attempt to index field 'addon1' (a nil value)
+stack traceback:
+ [C]: in function '__index'
+ /modules/game_outfit/outfit.lua:355: in function 'onElementSelect'
+ /layouts/retro/styles/40-outfitwindow.otui:151: [@onClick]:2: in function
+ERROR: protected lua call failed: /modules/game_outfit/outfit.lua:355: attempt to index field 'addon1' (a nil value)
+stack traceback:
+ [C]: in function '__index'
+ /modules/game_outfit/outfit.lua:355: in function 'onElementSelect'
+ /layouts/retro/styles/40-outfitwindow.otui:151: [@onClick]:2: in function
+ERROR: protected lua call failed: /modules/game_outfit/outfit.lua:355: attempt to index field 'addon1' (a nil value)
+stack traceback:
+ [C]: in function '__index'
+ /modules/game_outfit/outfit.lua:355: in function 'onElementSelect'
+ /layouts/retro/styles/40-outfitwindow.otui:151: [@onClick]:2: in function
+ERROR: protected lua call failed: /modules/game_outfit/outfit.lua:355: attempt to index field 'addon1' (a nil value)
+stack traceback:
+ [C]: in function '__index'
+ /modules/game_outfit/outfit.lua:355: in function 'onElementSelect'
+ /layouts/retro/styles/40-outfitwindow.otui:151: [@onClick]:2: in function
+ERROR: protected lua call failed: /modules/game_outfit/outfit.lua:355: attempt to index field 'addon1' (a nil value)
+stack traceback:
+ [C]: in function '__index'
+ /modules/game_outfit/outfit.lua:355: in function 'onElementSelect'
+ /layouts/retro/styles/40-outfitwindow.otui:151: [@onClick]:2: in function
+ERROR: protected lua call failed: /modules/game_outfit/outfit.lua:355: attempt to index field 'addon1' (a nil value)
+stack traceback:
+ [C]: in function '__index'
+ /modules/game_outfit/outfit.lua:355: in function 'onElementSelect'
+ /layouts/retro/styles/40-outfitwindow.otui:151: [@onClick]:2: in function
+ERROR: protected lua call failed: /modules/game_outfit/outfit.lua:355: attempt to index field 'addon1' (a nil value)
+stack traceback:
+ [C]: in function '__index'
+ /modules/game_outfit/outfit.lua:355: in function 'onElementSelect'
+ /layouts/retro/styles/40-outfitwindow.otui:151: [@onClick]:2: in function
+ERROR: protected lua call failed: /modules/game_outfit/outfit.lua:355: attempt to index field 'addon1' (a nil value)
+stack traceback:
+ [C]: in function '__index'
+ /modules/game_outfit/outfit.lua:355: in function 'onElementSelect'
+ /layouts/retro/styles/40-outfitwindow.otui:151: [@onClick]:2: in function
+ERROR: protected lua call failed: /modules/game_outfit/outfit.lua:355: attempt to index field 'addon1' (a nil value)
+stack traceback:
+ [C]: in function '__index'
+ /modules/game_outfit/outfit.lua:355: in function 'onElementSelect'
+ /layouts/retro/styles/40-outfitwindow.otui:151: [@onClick]:2: in function
+ERROR: protected lua call failed: /modules/game_outfit/outfit.lua:355: attempt to index field 'addon1' (a nil value)
+stack traceback:
+ [C]: in function '__index'
+ /modules/game_outfit/outfit.lua:355: in function 'onElementSelect'
+ /layouts/retro/styles/40-outfitwindow.otui:151: [@onClick]:2: in function
+ERROR: protected lua call failed: /modules/game_outfit/outfit.lua:355: attempt to index field 'addon1' (a nil value)
+stack traceback:
+ [C]: in function '__index'
+ /modules/game_outfit/outfit.lua:355: in function 'onElementSelect'
+ /layouts/retro/styles/40-outfitwindow.otui:151: [@onClick]:2: in function
+ERROR: protected lua call failed: /modules/game_outfit/outfit.lua:355: attempt to index field 'addon1' (a nil value)
+stack traceback:
+ [C]: in function '__index'
+ /modules/game_outfit/outfit.lua:355: in function 'onElementSelect'
+ /layouts/retro/styles/40-outfitwindow.otui:151: [@onClick]:2: in function
+ERROR: protected lua call failed: /modules/game_outfit/outfit.lua:355: attempt to index field 'addon1' (a nil value)
+stack traceback:
+ [C]: in function '__index'
+ /modules/game_outfit/outfit.lua:355: in function 'onElementSelect'
+ /layouts/retro/styles/40-outfitwindow.otui:151: [@onClick]:2: in function
+ERROR: protected lua call failed: /modules/game_outfit/outfit.lua:355: attempt to index field 'addon1' (a nil value)
+stack traceback:
+ [C]: in function '__index'
+ /modules/game_outfit/outfit.lua:355: in function 'onElementSelect'
+ /layouts/retro/styles/40-outfitwindow.otui:151: [@onClick]:2: in function
+ERROR: protected lua call failed: /modules/game_outfit/outfit.lua:355: attempt to index field 'addon1' (a nil value)
+stack traceback:
+ [C]: in function '__index'
+ /modules/game_outfit/outfit.lua:355: in function 'onElementSelect'
+ /layouts/retro/styles/40-outfitwindow.otui:151: [@onClick]:2: in function
+ERROR: protected lua call failed: /modules/game_outfit/outfit.lua:355: attempt to index field 'addon1' (a nil value)
+stack traceback:
+ [C]: in function '__index'
+ /modules/game_outfit/outfit.lua:355: in function 'onElementSelect'
+ /layouts/retro/styles/40-outfitwindow.otui:151: [@onClick]:2: in function
+ERROR: protected lua call failed: /modules/game_outfit/outfit.lua:355: attempt to index field 'addon1' (a nil value)
+stack traceback:
+ [C]: in function '__index'
+ /modules/game_outfit/outfit.lua:355: in function 'onElementSelect'
+ /layouts/retro/styles/40-outfitwindow.otui:151: [@onClick]:2: in function
+ERROR: protected lua call failed: /modules/game_outfit/outfit.lua:355: attempt to index field 'addon1' (a nil value)
+stack traceback:
+ [C]: in function '__index'
+ /modules/game_outfit/outfit.lua:355: in function 'onElementSelect'
+ /layouts/retro/styles/40-outfitwindow.otui:151: [@onClick]:2: in function
+ERROR: protected lua call failed: /modules/game_outfit/outfit.lua:355: attempt to index field 'addon1' (a nil value)
+stack traceback:
+ [C]: in function '__index'
+ /modules/game_outfit/outfit.lua:355: in function 'onElementSelect'
+ /layouts/retro/styles/40-outfitwindow.otui:151: [@onClick]:2: in function
+ERROR: protected lua call failed: /modules/game_outfit/outfit.lua:355: attempt to index field 'addon1' (a nil value)
+stack traceback:
+ [C]: in function '__index'
+ /modules/game_outfit/outfit.lua:355: in function 'onElementSelect'
+ /layouts/retro/styles/40-outfitwindow.otui:151: [@onClick]:2: in function
+ERROR: protected lua call failed: /modules/game_outfit/outfit.lua:355: attempt to index field 'addon1' (a nil value)
+stack traceback:
+ [C]: in function '__index'
+ /modules/game_outfit/outfit.lua:355: in function 'onElementSelect'
+ /layouts/retro/styles/40-outfitwindow.otui:151: [@onClick]:2: in function
+ERROR: protected lua call failed: /modules/game_outfit/outfit.lua:355: attempt to index field 'addon1' (a nil value)
+stack traceback:
+ [C]: in function '__index'
+ /modules/game_outfit/outfit.lua:355: in function 'onElementSelect'
+ /layouts/retro/styles/40-outfitwindow.otui:151: [@onClick]:2: in function
+ERROR: protected lua call failed: /modules/game_outfit/outfit.lua:355: attempt to index field 'addon1' (a nil value)
+stack traceback:
+ [C]: in function '__index'
+ /modules/game_outfit/outfit.lua:355: in function 'onElementSelect'
+ /layouts/retro/styles/40-outfitwindow.otui:151: [@onClick]:2: in function
+ERROR: protected lua call failed: /modules/game_outfit/outfit.lua:355: attempt to index field 'addon1' (a nil value)
+stack traceback:
+ [C]: in function '__index'
+ /modules/game_outfit/outfit.lua:355: in function 'onElementSelect'
+ /layouts/retro/styles/40-outfitwindow.otui:151: [@onClick]:2: in function
+ERROR: protected lua call failed: /modules/game_outfit/outfit.lua:355: attempt to index field 'addon1' (a nil value)
+stack traceback:
+ [C]: in function '__index'
+ /modules/game_outfit/outfit.lua:355: in function 'onElementSelect'
+ /layouts/retro/styles/40-outfitwindow.otui:151: [@onClick]:2: in function
+ERROR: protected lua call failed: /modules/game_outfit/outfit.lua:355: attempt to index field 'addon1' (a nil value)
+stack traceback:
+ [C]: in function '__index'
+ /modules/game_outfit/outfit.lua:355: in function 'onElementSelect'
+ /layouts/retro/styles/40-outfitwindow.otui:151: [@onClick]:2: in function
+ERROR: protected lua call failed: /modules/game_outfit/outfit.lua:355: attempt to index field 'addon1' (a nil value)
+stack traceback:
+ [C]: in function '__index'
+ /modules/game_outfit/outfit.lua:355: in function 'onElementSelect'
+ /layouts/retro/styles/40-outfitwindow.otui:151: [@onClick]:2: in function
+ERROR: protected lua call failed: /modules/game_outfit/outfit.lua:355: attempt to index field 'addon1' (a nil value)
+stack traceback:
+ [C]: in function '__index'
+ /modules/game_outfit/outfit.lua:355: in function 'onElementSelect'
+ /layouts/retro/styles/40-outfitwindow.otui:151: [@onClick]:2: in function
+ERROR: protected lua call failed: /modules/game_outfit/outfit.lua:355: attempt to index field 'addon1' (a nil value)
+stack traceback:
+ [C]: in function '__index'
+ /modules/game_outfit/outfit.lua:355: in function 'onElementSelect'
+ /layouts/retro/styles/40-outfitwindow.otui:151: [@onClick]:2: in function
+ERROR: protected lua call failed: /modules/game_outfit/outfit.lua:355: attempt to index field 'addon1' (a nil value)
+stack traceback:
+ [C]: in function '__index'
+ /modules/game_outfit/outfit.lua:355: in function 'onElementSelect'
+ /layouts/retro/styles/40-outfitwindow.otui:151: [@onClick]:2: in function
+ERROR: protected lua call failed: /modules/game_outfit/outfit.lua:355: attempt to index field 'addon1' (a nil value)
+stack traceback:
+ [C]: in function '__index'
+ /modules/game_outfit/outfit.lua:355: in function 'onElementSelect'
+ /layouts/retro/styles/40-outfitwindow.otui:151: [@onClick]:2: in function
+ERROR: protected lua call failed: /modules/game_outfit/outfit.lua:355: attempt to index field 'addon1' (a nil value)
+stack traceback:
+ [C]: in function '__index'
+ /modules/game_outfit/outfit.lua:355: in function 'onElementSelect'
+ /layouts/retro/styles/40-outfitwindow.otui:151: [@onClick]:2: in function
+ERROR: protected lua call failed: /modules/game_outfit/outfit.lua:355: attempt to index field 'addon1' (a nil value)
+stack traceback:
+ [C]: in function '__index'
+ /modules/game_outfit/outfit.lua:355: in function 'onElementSelect'
+ /layouts/retro/styles/40-outfitwindow.otui:151: [@onClick]:2: in function
+ERROR: protected lua call failed: /modules/game_outfit/outfit.lua:355: attempt to index field 'addon1' (a nil value)
+stack traceback:
+ [C]: in function '__index'
+ /modules/game_outfit/outfit.lua:355: in function 'onElementSelect'
+ /layouts/retro/styles/40-outfitwindow.otui:151: [@onClick]:2: in function
+ERROR: protected lua call failed: /modules/game_outfit/outfit.lua:355: attempt to index field 'addon1' (a nil value)
+stack traceback:
+ [C]: in function '__index'
+ /modules/game_outfit/outfit.lua:355: in function 'onElementSelect'
+ /layouts/retro/styles/40-outfitwindow.otui:151: [@onClick]:2: in function
+ERROR: protected lua call failed: /modules/game_outfit/outfit.lua:355: attempt to index field 'addon1' (a nil value)
+stack traceback:
+ [C]: in function '__index'
+ /modules/game_outfit/outfit.lua:355: in function 'onElementSelect'
+ /layouts/retro/styles/40-outfitwindow.otui:151: [@onClick]:2: in function
+ERROR: protected lua call failed: /modules/game_outfit/outfit.lua:355: attempt to index field 'addon1' (a nil value)
+stack traceback:
+ [C]: in function '__index'
+ /modules/game_outfit/outfit.lua:355: in function 'onElementSelect'
+ /layouts/retro/styles/40-outfitwindow.otui:151: [@onClick]:2: in function
+ERROR: protected lua call failed: /modules/game_outfit/outfit.lua:355: attempt to index field 'addon1' (a nil value)
+stack traceback:
+ [C]: in function '__index'
+ /modules/game_outfit/outfit.lua:355: in function 'onElementSelect'
+ /layouts/retro/styles/40-outfitwindow.otui:151: [@onClick]:2: in function
+ERROR: protected lua call failed: /modules/game_outfit/outfit.lua:355: attempt to index field 'addon1' (a nil value)
+stack traceback:
+ [C]: in function '__index'
+ /modules/game_outfit/outfit.lua:355: in function 'onElementSelect'
+ /layouts/retro/styles/40-outfitwindow.otui:151: [@onClick]:2: in function
+ERROR: protected lua call failed: /modules/game_outfit/outfit.lua:355: attempt to index field 'addon1' (a nil value)
+stack traceback:
+ [C]: in function '__index'
+ /modules/game_outfit/outfit.lua:355: in function 'onElementSelect'
+ /layouts/retro/styles/40-outfitwindow.otui:151: [@onClick]:2: in function
+ERROR: protected lua call failed: /modules/game_outfit/outfit.lua:355: attempt to index field 'addon1' (a nil value)
+stack traceback:
+ [C]: in function '__index'
+ /modules/game_outfit/outfit.lua:355: in function 'onElementSelect'
+ /layouts/retro/styles/40-outfitwindow.otui:151: [@onClick]:2: in function
+ERROR: protected lua call failed: /modules/game_outfit/outfit.lua:355: attempt to index field 'addon1' (a nil value)
+stack traceback:
+ [C]: in function '__index'
+ /modules/game_outfit/outfit.lua:355: in function 'onElementSelect'
+ /layouts/retro/styles/40-outfitwindow.otui:151: [@onClick]:2: in function
+ERROR: protected lua call failed: /modules/game_outfit/outfit.lua:355: attempt to index field 'addon1' (a nil value)
+stack traceback:
+ [C]: in function '__index'
+ /modules/game_outfit/outfit.lua:355: in function 'onElementSelect'
+ /layouts/retro/styles/40-outfitwindow.otui:151: [@onClick]:2: in function
+ERROR: protected lua call failed: /modules/game_outfit/outfit.lua:355: attempt to index field 'addon1' (a nil value)
+stack traceback:
+ [C]: in function '__index'
+ /modules/game_outfit/outfit.lua:355: in function 'onElementSelect'
+ /layouts/retro/styles/40-outfitwindow.otui:151: [@onClick]:2: in function
+ERROR: protected lua call failed: /modules/game_outfit/outfit.lua:355: attempt to index field 'addon1' (a nil value)
+stack traceback:
+ [C]: in function '__index'
+ /modules/game_outfit/outfit.lua:355: in function 'onElementSelect'
+ /layouts/retro/styles/40-outfitwindow.otui:151: [@onClick]:2: in function
+ERROR: protected lua call failed: /modules/game_outfit/outfit.lua:355: attempt to index field 'addon1' (a nil value)
+stack traceback:
+ [C]: in function '__index'
+ /modules/game_outfit/outfit.lua:355: in function 'onElementSelect'
+ /layouts/retro/styles/40-outfitwindow.otui:151: [@onClick]:2: in function
+ERROR: protected lua call failed: /modules/game_outfit/outfit.lua:355: attempt to index field 'addon1' (a nil value)
+stack traceback:
+ [C]: in function '__index'
+ /modules/game_outfit/outfit.lua:355: in function 'onElementSelect'
+ /layouts/retro/styles/40-outfitwindow.otui:151: [@onClick]:2: in function
+ERROR: protected lua call failed: /modules/game_outfit/outfit.lua:355: attempt to index field 'addon1' (a nil value)
+stack traceback:
+ [C]: in function '__index'
+ /modules/game_outfit/outfit.lua:355: in function 'onElementSelect'
+ /layouts/retro/styles/40-outfitwindow.otui:151: [@onClick]:2: in function
+ERROR: protected lua call failed: /modules/game_outfit/outfit.lua:355: attempt to index field 'addon1' (a nil value)
+stack traceback:
+ [C]: in function '__index'
+ /modules/game_outfit/outfit.lua:355: in function 'onElementSelect'
+ /layouts/retro/styles/40-outfitwindow.otui:151: [@onClick]:2: in function
+ERROR: protected lua call failed: /modules/game_outfit/outfit.lua:355: attempt to index field 'addon1' (a nil value)
+stack traceback:
+ [C]: in function '__index'
+ /modules/game_outfit/outfit.lua:355: in function 'onElementSelect'
+ /layouts/retro/styles/40-outfitwindow.otui:151: [@onClick]:2: in function
+ERROR: protected lua call failed: /modules/game_outfit/outfit.lua:836: attempt to index field 'addon1' (a nil value)
+stack traceback:
+ [C]: in function '__index'
+ /modules/game_outfit/outfit.lua:836: in function
+ERROR: protected lua call failed: /modules/game_outfit/outfit.lua:355: attempt to index field 'addon1' (a nil value)
+stack traceback:
+ [C]: in function '__index'
+ /modules/game_outfit/outfit.lua:355: in function 'onElementSelect'
+ /layouts/retro/styles/40-outfitwindow.otui:151: [@onClick]:2: in function
+ERROR: protected lua call failed: /modules/game_outfit/outfit.lua:836: attempt to index field 'addon1' (a nil value)
+stack traceback:
+ [C]: in function '__index'
+ /modules/game_outfit/outfit.lua:836: in function
+ERROR: protected lua call failed: /modules/game_outfit/outfit.lua:355: attempt to index field 'addon1' (a nil value)
+stack traceback:
+ [C]: in function '__index'
+ /modules/game_outfit/outfit.lua:355: in function 'onElementSelect'
+ /layouts/retro/styles/40-outfitwindow.otui:151: [@onClick]:2: in function
+ERROR: protected lua call failed: /modules/game_outfit/outfit.lua:355: attempt to index field 'addon1' (a nil value)
+stack traceback:
+ [C]: in function '__index'
+ /modules/game_outfit/outfit.lua:355: in function 'onElementSelect'
+ /layouts/retro/styles/40-outfitwindow.otui:151: [@onClick]:2: in function
+ERROR: protected lua call failed: /modules/game_outfit/outfit.lua:836: attempt to index field 'addon1' (a nil value)
+stack traceback:
+ [C]: in function '__index'
+ /modules/game_outfit/outfit.lua:836: in function
+ERROR: protected lua call failed: /modules/game_outfit/outfit.lua:836: attempt to index field 'addon1' (a nil value)
+stack traceback:
+ [C]: in function '__index'
+ /modules/game_outfit/outfit.lua:836: in function
+Login to 127.0.0.1:7172
+ERROR: protected lua call failed: /modules/game_outfit/outfit.lua:836: attempt to index field 'addon1' (a nil value)
+stack traceback:
+ [C]: in function '__index'
+ /modules/game_outfit/outfit.lua:836: in function
+ERROR: protected lua call failed: /modules/game_outfit/outfit.lua:355: attempt to index field 'addon1' (a nil value)
+stack traceback:
+ [C]: in function '__index'
+ /modules/game_outfit/outfit.lua:355: in function 'onElementSelect'
+ /layouts/retro/styles/40-outfitwindow.otui:151: [@onClick]:2: in function
diff --git a/New Text Document.txt b/New Text Document.txt
index 668e9a5..ce58b84 100644
--- a/New Text Document.txt
+++ b/New Text Document.txt
@@ -1 +1 @@
-next: 17743
\ No newline at end of file
+next: 17745
\ No newline at end of file
diff --git a/data/XML/outfits.xml b/data/XML/outfits.xml
index fd35f8f..f5a91ae 100644
--- a/data/XML/outfits.xml
+++ b/data/XML/outfits.xml
@@ -16,6 +16,7 @@
+
@@ -34,5 +35,6 @@
+
diff --git a/data/actions/actions.xml b/data/actions/actions.xml
index 7aea361..0f42ae8 100644
--- a/data/actions/actions.xml
+++ b/data/actions/actions.xml
@@ -87,6 +87,7 @@
+
diff --git a/data/actions/scripts/inquisition/holyWater.lua b/data/actions/scripts/inquisition/holyWater.lua
index 1ee3e40..70887a4 100644
--- a/data/actions/scripts/inquisition/holyWater.lua
+++ b/data/actions/scripts/inquisition/holyWater.lua
@@ -42,11 +42,18 @@ function onUse(player, item, fromPosition, target, toPosition, isHotkey)
player:setStorageValue(12160, 13)
player:setStorageValue(12164, 2)
- local doorItem = Tile(doorPosition):getItemById(8697)
+ local doorItem = Tile(doorPosition):getItemById(5126)
+ local doorItem2 = Tile(doorPosition):getItemById(5125)
+ local doorId = 5126
if doorItem then
- doorItem:transform(8696)
+ doorItem:transform(5124)
end
- addEvent(revertItem, 10 * 1000, doorPosition, 8696, 8697)
+
+ if doorItem2 then
+ doorId = 5125
+ doorItem2:transform(5124)
+ end
+ addEvent(revertItem, 10 * 1000, doorPosition, 5124, doorId)
return true
end
diff --git a/data/actions/scripts/inquisition/vampireHunt.lua b/data/actions/scripts/inquisition/vampireHunt.lua
new file mode 100644
index 0000000..8ba31aa
--- /dev/null
+++ b/data/actions/scripts/inquisition/vampireHunt.lua
@@ -0,0 +1,27 @@
+local altars = {
+ Position(32778, 31977, 9),
+ Position(32776, 31982, 9),
+ Position(32780, 31982, 9)
+}
+
+function onUse(player, item, fromPosition, target, toPosition, isHotkey)
+ if player:getStorageValue(12160) == 8 then
+ player:setStorageValue(12160, 9)
+ player:setStorageValue(12163, 4) -- The Inquisition Questlog- "Mission 3: Vampire Hunt"
+ local k = {}
+ for i = 1, #altars do
+ local tmp = Tile(altars[i]):getItemById(3083)
+ if not tmp then
+ Game.createMonster("The Count", toPosition)
+ return true
+ else
+ k[#k + 1] = tmp
+ end
+ end
+ for i = 1, #k do
+ k[i]:remove()
+ end
+ Game.createMonster("The Weakened Count", toPosition)
+ return true
+ end
+end
\ No newline at end of file
diff --git a/data/creaturescripts/creaturescripts.xml b/data/creaturescripts/creaturescripts.xml
index fa369a3..ea042fc 100644
--- a/data/creaturescripts/creaturescripts.xml
+++ b/data/creaturescripts/creaturescripts.xml
@@ -10,4 +10,6 @@
+
+
diff --git a/data/creaturescripts/scripts/inquisitionQuestUngreez.lua b/data/creaturescripts/scripts/inquisitionQuestUngreez.lua
new file mode 100644
index 0000000..bd07c5b
--- /dev/null
+++ b/data/creaturescripts/scripts/inquisitionQuestUngreez.lua
@@ -0,0 +1,18 @@
+function onKill(creature, target)
+ local targetMonster = target:getMonster()
+ if not targetMonster then
+ return true
+ end
+
+ if targetMonster:getName():lower() ~= 'ungreez' then
+ return true
+ end
+
+ local player = creature:getPlayer()
+ if player:getStorageValue(12160) == 18 then
+ -- The Inquisition Questlog- 'Mission 6: The Demon Ungreez'
+ player:setStorageValue(12166, 2)
+ player:setStorageValue(12160, 19)
+ end
+ return true
+end
\ No newline at end of file
diff --git a/data/creaturescripts/scripts/login.lua b/data/creaturescripts/scripts/login.lua
index 5d1824c..55d71e6 100644
--- a/data/creaturescripts/scripts/login.lua
+++ b/data/creaturescripts/scripts/login.lua
@@ -321,6 +321,7 @@ function onLogin(player)
player:registerEvent("PlayerLogout")
player:registerEvent("FirstItems")
player:registerEvent("RegenerateStamina")
+ player:registerEvent("InquisitionUngreez")
return true
end
diff --git a/data/items800/items.srv b/data/items800/items.srv
index 47beae5..c4ef687 100644
--- a/data/items800/items.srv
+++ b/data/items800/items.srv
@@ -25412,122 +25412,122 @@ Attributes = {Weight=6000,ExpireTarget=0,TotalExpireTime=600}
TypeID = 5630
Name = "a dirt wall"
-Flags = {Unpass,Unmove,Unthrow,Unlay}
+Flags = {Bottom,Unpass,Unmove,Unthrow,Unlay}
Attributes = {Waypoints=0}
TypeID = 5631
Name = "a dirt wall"
-Flags = {Unpass,Unmove,Unthrow,Unlay}
+Flags = {Bottom,Unpass,Unmove,Unthrow,Unlay}
Attributes = {Waypoints=0}
TypeID = 5632
Name = "a dirt wall"
-Flags = {Unpass,Unmove,Unthrow,Unlay}
+Flags = {Bottom,Unpass,Unmove,Unthrow,Unlay}
Attributes = {Waypoints=0}
TypeID = 5633
Name = "a dirt wall"
-Flags = {Unpass,Unmove,Unthrow,Unlay}
+Flags = {Bottom,Unpass,Unmove,Unthrow,Unlay}
Attributes = {Waypoints=0}
TypeID = 5634
Name = "a dirt wall"
-Flags = {Unpass,Unmove,Unthrow,Unlay}
+Flags = {Bottom,Unpass,Unmove,Unthrow,Unlay}
Attributes = {Waypoints=0}
TypeID = 5635
Name = "a dirt wall"
-Flags = {Unpass,Unmove,Unthrow,Unlay}
+Flags = {Bottom,Unpass,Unmove,Unthrow,Unlay}
Attributes = {Waypoints=0}
TypeID = 5636
Name = "a dirt wall"
-Flags = {Unpass,Unmove,Unthrow,Unlay}
+Flags = {Bottom,Unpass,Unmove,Unthrow,Unlay}
Attributes = {Waypoints=0}
TypeID = 5637
Name = "a dirt wall"
-Flags = {Unpass,Unmove,Unthrow,Unlay}
+Flags = {Bottom,Unpass,Unmove,Unthrow,Unlay}
Attributes = {Waypoints=0}
TypeID = 5638
Name = "a stone wall"
-Flags = {Unpass,Unmove,Unthrow,Unlay}
+Flags = {Bottom,Unpass,Unmove,Unthrow,Unlay}
Attributes = {Waypoints=0}
TypeID = 5639
Name = "a stone wall"
-Flags = {Unpass,Unmove,Unthrow,Unlay}
+Flags = {Bottom,Unpass,Unmove,Unthrow,Unlay}
Attributes = {Waypoints=0}
TypeID = 5640
Name = "a stone wall"
-Flags = {Unpass,Unmove,Unthrow,Unlay}
+Flags = {Bottom,Unpass,Unmove,Unthrow,Unlay}
Attributes = {Waypoints=0}
TypeID = 5641
Name = "a stone wall"
-Flags = {Unpass,Unmove,Unthrow,Unlay}
+Flags = {Bottom,Unpass,Unmove,Unthrow,Unlay}
Attributes = {Waypoints=0}
TypeID = 5642
Name = "a stone wall"
-Flags = {Unpass,Unmove,Unthrow,Unlay}
+Flags = {Bottom,Unpass,Unmove,Unthrow,Unlay}
Attributes = {Waypoints=0}
TypeID = 5643
Name = "a stone wall"
-Flags = {Unpass,Unmove,Unthrow,Unlay}
+Flags = {Bottom,Unpass,Unmove,Unthrow,Unlay}
Attributes = {Waypoints=0}
TypeID = 5644
Name = "a stone wall"
-Flags = {Unpass,Unmove,Unthrow,Unlay}
+Flags = {Bottom,Unpass,Unmove,Unthrow,Unlay}
Attributes = {Waypoints=0}
TypeID = 5645
Name = "a stone wall"
-Flags = {Unpass,Unmove,Unthrow,Unlay}
+Flags = {Bottom,Unpass,Unmove,Unthrow,Unlay}
Attributes = {Waypoints=0}
TypeID = 5646
Name = "a dirt wall"
-Flags = {Unpass,Unmove,Unthrow,Unlay}
+Flags = {Bottom,Unpass,Unmove,Unthrow,Unlay}
Attributes = {Waypoints=0}
TypeID = 5647
Name = "a stone wall"
-Flags = {Unpass,Unmove,Unthrow,Unlay}
+Flags = {Bottom,Unpass,Unmove,Unthrow,Unlay}
Attributes = {Waypoints=0}
TypeID = 5648
Name = "a dirt wall"
-Flags = {Unpass,Unmove,Unthrow,Unlay}
+Flags = {Bottom,Unpass,Unmove,Unthrow,Unlay}
Attributes = {Waypoints=0}
TypeID = 5649
Name = "a dirt wall"
-Flags = {Unpass,Unmove,Unthrow,Unlay}
+Flags = {Bottom,Unpass,Unmove,Unthrow,Unlay}
Attributes = {Waypoints=0}
TypeID = 5650
Name = "a dirt wall"
-Flags = {Unpass,Unmove,Unthrow,Unlay}
+Flags = {Bottom,Unpass,Unmove,Unthrow,Unlay}
Attributes = {Waypoints=0}
TypeID = 5651
Name = "a stone wall"
-Flags = {Unpass,Unmove,Unthrow,Unlay}
+Flags = {Bottom,Unpass,Unmove,Unthrow,Unlay}
Attributes = {Waypoints=0}
TypeID = 5652
Name = "a stone wall"
-Flags = {Unpass,Unmove,Unthrow,Unlay}
+Flags = {Bottom,Unpass,Unmove,Unthrow,Unlay}
Attributes = {Waypoints=0}
TypeID = 5653
Name = "a stone wall"
-Flags = {Unpass,Unmove,Unthrow,Unlay}
+Flags = {Bottom,Unpass,Unmove,Unthrow,Unlay}
Attributes = {Waypoints=0}
TypeID = 5654
@@ -33804,12 +33804,42 @@ TypeID = 7475
Name = "a sarcophagus"
Flags = {Bottom,Unpass,Unmove}
+TypeID = 7874
+Name = "the witches' grimoire"
+Flags = {Take}
+Attributes = {Weight=1300}
+
+TypeID = 7924
+Name = "the ring of the count"
+Flags = {Take}
+Attributes = {Weight=75,SlotType=RING}
+
TypeID = 8023
Name = "a royal crossbow"
Description = "It is a bit heavy due to the iron mounting, but very precise"
Flags = {Take,Distance}
Attributes = {Weight=12000,SlotType=TWOHANDED,Range=6,AmmoType=BOLT,ExtraHitChance=3,Attack=5}
+TypeID = 8109
+Name = "remains of a vampire lord"
+Flags = {Container,Unmove,Corpse,Expire}
+Attributes = {Capacity=10,FluidSource=BLOOD,ExpireTarget=8110,TotalExpireTime=10}
+
+TypeID = 8110
+Name = "remains of a vampire lord"
+Flags = {Container,Take,Corpse,Expire}
+Attributes = {Capacity=10,FluidSource=BLOOD,Weight=130000,ExpireTarget=8111,TotalExpireTime=1800}
+
+TypeID = 8111
+Name = "remains of a vampire lord"
+Flags = {Container,Take,Corpse,Expire}
+Attributes = {Capacity=10,Weight=105000,ExpireTarget=8112,TotalExpireTime=1800}
+
+TypeID = 8112
+Name = "remains of a vampire lord"
+Flags = {Container,Take,Corpse,Expire}
+Attributes = {Capacity=10,Weight=85000,ExpireTarget=0,TotalExpireTime=1800}
+
TypeID = 12902
Name = "your inbox"
Flags = {Container,Unmove}
diff --git a/data/lib/core/itemtype.lua b/data/lib/core/itemtype.lua
index 8f01e3d..ecc27f7 100644
--- a/data/lib/core/itemtype.lua
+++ b/data/lib/core/itemtype.lua
@@ -78,22 +78,10 @@ function ItemType.isTrinket(self)
return self:usesSlot(CONST_SLOT_AMMO) and self:getWeaponType() == WEAPON_NONE
end
-function ItemType.isKey(self)
- return self:getType() == ITEM_TYPE_KEY
-end
-
function ItemType.isBed(self)
return self:getType() == ITEM_TYPE_BED
end
-function ItemType.isSplash(self)
- return self:getGroup() == ITEM_GROUP_SPLASH
-end
-
-function ItemType.isPodium(self)
- return self:getGroup() == ITEM_GROUP_PODIUM
-end
-
function ItemType.getWeaponString(self)
local weaponType = self:getWeaponType()
local weaponString = "unknown"
diff --git a/data/monster/800/the count.xml b/data/monster/800/the count.xml
new file mode 100644
index 0000000..7055125
--- /dev/null
+++ b/data/monster/800/the count.xml
@@ -0,0 +1,47 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/data/monster/800/the weakened count.xml b/data/monster/800/the weakened count.xml
new file mode 100644
index 0000000..e189f42
--- /dev/null
+++ b/data/monster/800/the weakened count.xml
@@ -0,0 +1,44 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/data/monster/800/ungreez.xml b/data/monster/800/ungreez.xml
new file mode 100644
index 0000000..17fd526
--- /dev/null
+++ b/data/monster/800/ungreez.xml
@@ -0,0 +1,58 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/data/monster/monsters.xml b/data/monster/monsters.xml
index 38eb1e9..3423962 100644
--- a/data/monster/monsters.xml
+++ b/data/monster/monsters.xml
@@ -243,4 +243,9 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/data/npc/henricus.npc b/data/npc/henricus.npc
index 6a6c3c6..c74691a 100644
--- a/data/npc/henricus.npc
+++ b/data/npc/henricus.npc
@@ -59,4 +59,64 @@ topic=2 -> "I expected better from you."
"He'll bring you to your destination. At their meeting place, you'll find a cauldron in which they cook some forbidden brew ...",
"Use this vial of holy water to destroy the brew. Also steal their grimoire and bring it to me.",SetQuestValue(12160,4),SetQuestValue(12162,1),Create(133)
"mission",QuestValue(12160)=4 -> "Your current mission is to destroy the brew in the eclipse."
+
+"mission",QuestValue(12160)=5,Count(7874)>=1 -> "I think it's time to truly test your abilities. One of our allies has requested assistance. I think you are just the right person to help him ...",
+ "Storkus is an old and grumpy dwarf who works as a vampire hunter since many, many decades. He's quite successful but even he has his limits. ...",
+ "So occasionally, we send him help. In return he trains and tests our recruits. It's an advantageous agreement for both sides ...",
+ "You'll find him in his cave at the mountain outside of Kazordoon. He'll tell you about your next mission.",SetQuestValue(12160,6),SetQuestValue(12162,3),SetQuestValue(12163,1),DeleteAmount(7874,1)
+"mission",QuestValue(12160)=5 -> "You need bring me the witches' grimoire."
+
+"mission",QuestValue(12160)>=5,QuestValue(12160)<11 -> "Your current mission is to help the vampire hunter Storkus. Are you done with that mission?", topic=3
+"yes",QuestValue(12160)=10,topic=3 -> "Good, you've returned. Your skill in practical matters seems to be useful. If you're ready for a further mission, just ask.",SetQuestValue(12160,11),SetQuestValue(12163,6)
+"yes",topic=3 -> "You haven't done your mission with Storkus yet."
+topic=3 -> "I expected better from you."
+
+"mission",QuestValue(12160)=11 -> "We've got a report about an abandoned and haunted house in Liberty Bay. I want you to examine this house. It's the only ruin in Liberty Bay so you should have no trouble finding it. ...",
+ "There's an evil being somewhere. I assume that it will be easier to find the right spot at night. Use this vial of holy water on that spot to drive out the evil being.",SetQuestValue(12160,12),SetQuestValue(12164,1),Create(133)
+
+"mission",QuestValue(12160)=12 -> "Your current mission is to exorcise an evil being from a house in Liberty Bay. Are you done with that mission?", topic=4
+"mission",QuestValue(12160)=13 -> *
+"yes",QuestValue(12160)=13,topic=4 -> "Well, this was an easy task, but your next mission will be much more challenging.",SetQuestValue(12164,3),SetQuestValue(12160,14)
+"yes",topic=4 -> "You haven't done your mission yet."
+topic=4 -> "I expected better from you."
+
+"mission",QuestValue(12160)=14 -> "You've handled heretics, witches, vampires and ghosts. Now be prepared to face the most evil creatures we are fighting - demons. Your new task is extremely simple, though far from easy. ...",
+ "Go and slay demonic creatures wherever you find them. Bring me 20 of their essences as a proof of your accomplishments.",SetQuestValue(12160,15),SetQuestValue(12165,1)
+
+
+"mission",QuestValue(12160)=15,Count(6499)>=20 -> Type=6499, Amount=20, "You're indeed a dedicated protector of the true believers. Don't stop now. Kill as many of these creatures as you can. ...",
+ "I also have a reward for your great efforts. Talk to me about your demon hunter outfit anytime from now on. Afterwards, let's talk about the next mission that's awaiting you.",Delete(Type),SetQuestValue(12160,16),SetQuestValue(12165,2)
+"mission",QuestValue(12160)=15 -> "Your current mission is to bring 20 demonic essence."
+
+"mission",QuestValue(12160)=16 -> "Here is your demon hunter outfit. You deserve it. Unlock more addons by completing more missions.",SetQuestValue(12160,17),SetQuestValue(12165,3),addOutfit(288),addOutfit(289),EffectOpp(13)
+"outfit",QuestValue(12160)=16 -> *
+
+"mission",QuestValue(12160)=17 -> "We've got information about something very dangerous going on on the isle of Edron. The demons are preparing something there ...",
+ "Something that is a threat to all of us. Our investigators were able to acquire vital information before some of them were slain by a demon named Ungreez. ...",
+ "It'll be your task to take revenge and to kill that demon. You'll find him in the depths of Edron. Good luck.",SetQuestValue(12160,18),SetQuestValue(12166,1)
+"mission",QuestValue(12160)=18 -> "Your current mission is to find and kill the Ungreez!"
+
+"mission",QuestValue(12160)=19 -> "So the beast is finally dead! Thank the gods. At least some things work out in our favour ...",
+ "Our other operatives were not that lucky, though. But you will learn more about that in your next mission.",SetQuestValue(12160,20),SetQuestValue(12166,3),AddOutfitAddon(288,1), AddOutfitAddon(289,1), EffectOpp(13)
+
+"mission",QuestValue(12160)=20 -> "Destroy the shadow nexus using this vial of holy water and kill all demon lords.",SetQuestValue(12160,21),SetQuestValue(12167,1),Create(133)
+
+"mission",QuestValue(12160)=21 -> "Your current mission is to destroy the shadow nexus in the Demon Forge. Are you done with that mission?", topic=5
+"mission",QuestValue(12160)=22 -> *
+"yes",QuestValue(12160)=22,topic=5 -> "Incredible! You're a true defender of faith! I grant you the title of a High Inquisitor for your noble deeds. From now on you can obtain the blessing of the inquisition which makes the pilgrimage of ashes obsolete ...",
+ "The blessing of the inquisition will bestow upon you all available blessings. Also, don't forget to ask me about your outfit to receive the final addon as demon hunter.",SetQuestValue(12167,3),SetQuestValue(12160,23)
+"yes",topic=5 -> "You haven't done your mission yet."
+topic=5 -> "Come back when you have destroyed the shadow nexus."
+
+"mission",QuestValue(12160)=23 -> "Here is the final addon for your demon hunter outfit. Congratulations!",SetQuestValue(12160,24),SetQuestValue(12167,4),AddOutfitAddon(288,2),AddOutfitAddon(289,2),EffectOpp(13)
+"outfit",QuestValue(12160)=23 -> *
+
+"mission",QuestValue(12160)=24 -> "Currently we have no missions for you brave fellow."
+
+"bless",QuestValue(12160)=24 -> Price=60000, "Do you want to receive all blessings for %P gold?", Topic=6
+Topic=6,"yes",QuestValue(101)=1,QuestValue(102)=1,QuestValue(103)=1,QuestValue(104)=1,QuestValue(105)=1,! -> "I can sense you already have bought all the blessings."
+Topic=6,"yes",CountMoney>=Price -> "So receive all blessings!",EffectOpp(11),DeleteMoney,SetQuestValue(101,1),SetQuestValue(102,1),SetQuestValue(103,1),SetQuestValue(104,1),SetQuestValue(105,1),Bless(1),Bless(2),Bless(3),Bless(4),Bless(5)
+Topic=6,"yes" -> "You do not have enough money."
+Topic=6 -> "Some other time then."
+
}
diff --git a/data/npc/storkus.npc b/data/npc/storkus.npc
new file mode 100644
index 0000000..b2bab63
--- /dev/null
+++ b/data/npc/storkus.npc
@@ -0,0 +1,40 @@
+# GIMUD - Graphical Interface Multi User Dungeon
+# Storkus.npc: Datenbank für den Waffenhändler Storkus
+
+Name = "Storkus"
+Outfit = (69,57-59-118-114-0)
+Home = [32590,31960,7]
+Radius = 3
+
+Behaviour = {
+ADDRESS,"hello$",! -> "Greetings, human %N!"
+ADDRESS,"hi$",! -> *
+ADDRESS,! -> Idle
+BUSY,"hello$",! -> "I will have finished soon %N.", Queue
+BUSY,"hi$",! -> *
+BUSY,! -> NOP
+VANISH,! -> "This ungraceful haste is most suspicious!", Idle
+
+"bye" -> "See ya, %N!", Idle
+"job" -> "I am vampire hunter"
+
+"mission",QuestValue(12160)=6 -> Type=5905, Amount=20, "Ah, right, Henricus sent ye'! Do ye' have 20 vampire dusts with ye'??", Topic=6
+"dust",QuestValue(12160)=6 -> *
+Topic=6,"yes",Count(Type)>=Amount -> "Fine, you're done! Ye' should talk to me about your mission again now.", Delete(Type),SetQuestValue(12160,7),SetQuestValue(12163,2)
+Topic=6,"yes" -> "You don't have that many!"
+Topic=6 -> "Too bad."
+
+"mission",QuestValue(12160)=7 -> "While ye' were keeping the lower ranks busy, I could get valuable information about some vampire lords. ...",
+ "One of them is hiding somewhere beneath the Green Claw Swamp. I expect ye' to find him and kill him. ...",
+ "But be warned: Without good preparation, ye' might get into trouble. I hope for ye' he will be sleeping in his coffin when ye' arrive. ...",
+ "Before ye' open his coffin and drag that beast out to destroy it, I advise ye' to place some garlic necklaces on the stone slabs next to his coffin. That will weaken him considerably. ...",
+ "Bring me his ring as proof for his death. And now hurry and good hunt to ye'.",SetQuestValue(12160,8),SetQuestValue(12163,6),SetQuestValue(12163,3)
+
+"mission",QuestValue(12160)=8,Count(7924)>=1 -> "Ding, dong, the vampire is dead, eh? So I guess ye' can return to Henricus and tell him that ye' finished your job here. I'm quite sure he has some more challenging task up his sleeve. ...",
+ "One more thing before ye' leave: I already mentioned the master vampires. ...",
+ "They are quite hard to find. If ye' stumble across one of them and manage to kill him, he will surely drop some token that proves his death. Bring me these tokens. ...",
+ "If ye' kill enough of them, I might have a little surprise for ye'.",SetQuestValue(12160,10),SetQuestValue(12163,5),DeleteAmount(7924,1)
+"mission",QuestValue(12160)=9,Count(7924)>=1 -> *
+"mission",QuestValue(12160)=8 -> "Have ye' killed the vampire lord? Because ye' have no his ring."
+
+}
diff --git a/data/npc/uzon.npc b/data/npc/uzon.npc
index 762ec69..957efc5 100644
--- a/data/npc/uzon.npc
+++ b/data/npc/uzon.npc
@@ -73,6 +73,7 @@ Topic=2,"yes" -> "You don't have enough money."
Topic=2 -> "You shouldn't miss the experience."
"eclipse",QuestValue(12160)=4 -> "Oh no, so the time has come? Do you really want me to fly you to this unholy place?", Topic=5
+"eclipse",QuestValue(12160)=5 -> *
Topic=5,"yes" -> "Hold on!", Idle, EffectOpp(11), Teleport(32659,31915,0), EffectOpp(11)
Topic=5 -> "You shouldn't miss the experience."
}
diff --git a/data/npc/uzoneclipse.npc b/data/npc/uzoneclipse.npc
new file mode 100644
index 0000000..1b6f4ee
--- /dev/null
+++ b/data/npc/uzoneclipse.npc
@@ -0,0 +1,46 @@
+# GIMUD - Graphical Interface Multi User Dungeon
+# uzon: Datenbank für den Teppichpiloten Uzon auf den Femor Hills
+
+Name = "Uzon"
+Outfit = (130,95-5-18-76-0)
+Home = [32661,31914,0]
+Radius = 1
+
+Behaviour = {
+ADDRESS,"hello$",! -> "Daraman's blessings, traveller %N."
+ADDRESS,"hi$",! -> *
+ADDRESS,! -> Idle
+
+BUSY,"hello$",! -> "Hastiness is not the way of the people of Darama, %N. Give me the time I need here.", Queue
+BUSY,"hi$",! -> *
+BUSY,! -> NOP
+VANISH,! -> "Daraman's blessings."
+
+"bye" -> "Daraman's blessings", Idle
+"name" -> "I am known as Uzon Ibn Kalith."
+"job" -> "I am a licensed Darashian carpetpilot. I can bring you to Darashia or Edron."
+"time" -> "It's %T right now. The next flight is scheduled soon."
+"caliph" -> "The caliph welcomes travellers to his land."
+"kazzan" -> *
+"daraman" -> "Oh, there is so much to tell about Daraman. You better travel to Darama to learn about his teachings."
+"ferumbras" -> "I would never transport this one."
+"drefia" -> "So you heared about haunted Drefia? Many adventures travel there to test their skills against the undead: vampires, mummies, and ghosts."
+"excalibug" -> "Some people claim it is hidden somewhere under the endless sands of the devourer desert in Darama."
+"thais" -> "Thais is noisy and overcroweded. That's why I like Darashia more."
+"tibia" -> "I have seen almost every place on the continent."
+"continent" -> "I could retell the tales of my travels for hours. Sadly another flight is scheduled soon."
+"carlin" -> "Just another Thais but with women to lead them."
+"flying","carpet" -> "You can buy flying carpets only in Darashia."
+"fly" -> "I transport travellers to the continent of Darama for a small fee. So many want to see the wonders of the desert and learn the secrets of Darama."
+"news" -> "I heard too many news to recall them all."
+"rumors" -> *
+
+"leave" -> "Can we finally leave this cursed place?", Topic=5
+"back" -> *
+"passage" -> *
+"transport" -> *
+"ride" -> *
+"trip" -> *
+Topic=5,"yes" -> "Hold on!", Idle, EffectOpp(11), Teleport(32535,31837,4), EffectOpp(11)
+Topic=5 -> "We shouldn't stay here for too long."
+}
diff --git a/data/world800/map-spawn.xml b/data/world800/map-spawn.xml
index b622734..a11e860 100644
--- a/data/world800/map-spawn.xml
+++ b/data/world800/map-spawn.xml
@@ -27,6 +27,30 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -114,6 +138,18 @@
+
+
+
+
+
+
+
+
+
+
+
+
@@ -122,6 +158,27 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -333,6 +390,18 @@
+
+
+
+
+
+
+
+
+
+
+
+
@@ -344,9 +413,39 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -356,6 +455,21 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -799,10 +913,16 @@
+
+
+
+
+
+
@@ -810,27 +930,66 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -1588,6 +1747,9 @@
+
+
+
@@ -1596,6 +1758,9 @@
+
+
+
@@ -1604,6 +1769,9 @@
+
+
+
@@ -2982,6 +3150,9 @@
+
+
+
@@ -3008,6 +3179,9 @@
+
+
+
@@ -16968,6 +17142,9 @@
+
+
+
@@ -17041,6 +17218,12 @@
+
+
+
+
+
+
@@ -17055,12 +17238,6 @@
-
-
-
-
-
-
@@ -17104,6 +17281,10 @@
+
+
+
+
@@ -17123,6 +17304,9 @@
+
+
+
@@ -21498,14 +21682,29 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -21514,6 +21713,30 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -21525,32 +21748,143 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -21558,6 +21892,15 @@
+
+
+
+
+
+
+
+
+
@@ -22043,10 +22386,20 @@
+
+
+
+
+
+
+
+
+
+
@@ -29309,6 +29662,16 @@
+
+
+
+
+
+
+
+
+
+
@@ -29338,21 +29701,47 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -29367,11 +29756,76 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -35392,6 +35846,9 @@
+
+
+
@@ -35406,6 +35863,9 @@
+
+
+
@@ -42552,6 +43012,13 @@
+
+
+
+
+
+
+
@@ -42893,6 +43360,9 @@
+
+
+
@@ -46683,7 +47153,9 @@
-
+
+
+
diff --git a/data/world800/map.otbm b/data/world800/map.otbm
index d44ba77..7bdc06c 100644
Binary files a/data/world800/map.otbm and b/data/world800/map.otbm differ
diff --git a/src/luascript.cpp b/src/luascript.cpp
index 20e4a73..c232772 100644
--- a/src/luascript.cpp
+++ b/src/luascript.cpp
@@ -1331,6 +1331,20 @@ void LuaScriptInterface::registerFunctions()
registerEnum(ITEM_TYPE_RUNE)
registerEnum(ITEM_TYPE_CHEST)
+ registerEnum(ITEM_GROUP_GROUND)
+ registerEnum(ITEM_GROUP_WEAPON)
+ registerEnum(ITEM_GROUP_AMMUNITION)
+ registerEnum(ITEM_GROUP_ARMOR)
+ registerEnum(ITEM_GROUP_CHARGES)
+ registerEnum(ITEM_GROUP_TELEPORT)
+ registerEnum(ITEM_GROUP_MAGICFIELD)
+ registerEnum(ITEM_GROUP_WRITEABLE)
+ registerEnum(ITEM_GROUP_KEY)
+ registerEnum(ITEM_GROUP_SPLASH)
+ registerEnum(ITEM_GROUP_FLUID)
+ registerEnum(ITEM_GROUP_DOOR)
+ registerEnum(ITEM_GROUP_DEPRECATED)
+
registerEnum(ITEM_GOLD_COIN)
registerEnum(ITEM_PLATINUM_COIN)
registerEnum(ITEM_CRYSTAL_COIN)