Merge pull request #247 from Ceikry/master

Changesss
This commit is contained in:
Daniel Ginovker 2020-03-28 13:00:40 -04:00 committed by GitHub
commit f1f9fb2a2d
19 changed files with 378 additions and 80 deletions

View file

@ -3,7 +3,7 @@
-- https://www.phpmyadmin.net/
--
-- Host: localhost
-- Generation Time: Mar 27, 2020 at 11:19 PM
-- Generation Time: Mar 28, 2020 at 01:54 PM
-- Server version: 10.4.11-MariaDB
-- PHP Version: 7.4.3
@ -913,7 +913,7 @@ INSERT INTO `ground_spawns` (`item_id`, `loc_data`) VALUES
(1755, '{1,2935,3286,0,7209050}'),
(1785, '{1,2822,3355,0,11141270}'),
(1887, '{1,3141,3452,1,7209050}'),
(1917, '{1,2799,3156,0,11141270}-{1,2796,3165,0,11141270}-{1,3080,3438,0,4587565}-{1,3286,3033,1,7864410}-{1,3077,3439,0,5898270}-{1,3077,3443,0,5898270}'),
(1917, '{1,2799,3156,0,11141270}-{1,2796,3165,0,11141270}-{1,3080,3438,0,4587565}-{1,3286,3033,1,7864410}-{1,3077,3439,0,5898270}-{1,3077,3443,0,5898270}-{1,3049,3257,0,11141270}'),
(1919, '{1,2798,3156,0,11141270}-{1,2799,3155,0,11141270}-{1,2795,3160,0,11141270}-{1,2798,3160,0,11141270}-{1,2798,3161,0,11141270}-{1,2795,3165,0,11141270}-{1,2794,3165,0,11141270}'),
(1921, '{1,3291,3034,0,7209050}'),
(1923, '{1,3208,3214,0,6553680}-{1,3140,3452,1,7209050}'),
@ -14766,6 +14766,7 @@ INSERT INTO `npc_configs` (`id`, `name`, `examine`, `lifepoints`, `attack_level`
(1965, 'Mummy', 'A tightly-wrapped monster.', 78, 55, 55, 55, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5549, 0, 5555, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(1967, 'Mummy', 'A victim of poor first aid.', 78, 55, 55, 55, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5549, 0, 5555, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(1969, 'Scarabs', 'I think they\'re some kind of beetle...', 88, 62, 62, 62, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1948, 0, 1946, NULL, 0, 0, NULL, NULL, NULL, 7, 70, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(1972, 'Rasolo', 'A wandering merchant.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(1973, 'Giant skeleton', 'A giant skeleton.', 85, 60, 60, 60, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5499, 0, 5503, NULL, 0, 0, NULL, NULL, NULL, 8, 75, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(1976, 'Shadow Hound', 'Looks hungry!', 68, 48, 48, 48, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 6565, 0, 6564, NULL, 0, 0, NULL, NULL, NULL, 7, 27, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(1977, 'Fareed', NULL, 130, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 799, 434, 836, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
@ -14859,9 +14860,9 @@ INSERT INTO `npc_configs` (`id`, `name`, `examine`, `lifepoints`, `attack_level`
(2121, 'Trader', 'A trader for the Brown Engine mining company.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(2122, 'Trader', 'A trader for the Brown Engine mining company.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(2127, 'Trade Referee', 'He is regulating the flow of goods on the trade floor and maintaining order.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(2130, 'Black Guard', 'A member of the Black Guard', 48, 34, 34, 34, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 99, 0, 102, NULL, 0, 0, NULL, NULL, NULL, 6, 29, 16, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(2131, 'Black Guard', 'A member of the Black Guard', 48, 34, 34, 34, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 99, 0, 102, NULL, 0, 0, NULL, NULL, NULL, 6, 29, 16, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
(2130, 'Black Guard', 'A member of the Black Guard', 48, 34, 34, 34, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 99, 0, 102, NULL, 0, 0, NULL, NULL, NULL, 6, 29, 16, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
INSERT INTO `npc_configs` (`id`, `name`, `examine`, `lifepoints`, `attack_level`, `strength_level`, `defence_level`, `range_level`, `magic_level`, `bonuses`, `poison_amount`, `poison_immune`, `respawn_delay`, `attack_speed`, `movement_radius`, `agg_radius`, `melee_animation`, `defence_animation`, `death_animation`, `spawn_animation`, `magic_animation`, `range_animation`, `start_gfx`, `projectile`, `end_gfx`, `weakness`, `slayer_task`, `slayer_exp`, `combat_style`, `poisonous`, `aggressive`, `start_height`, `prj_height`, `end_height`, `clue_level`, `spell_id`, `combat_audio`, `protect_style`, `force_talk`, `safespot`) VALUES
(2131, 'Black Guard', 'A member of the Black Guard', 48, 34, 34, 34, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 99, 0, 102, NULL, 0, 0, NULL, NULL, NULL, 6, 29, 16, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(2132, 'Black Guard', 'A member of the Black Guard', 48, 34, 34, 34, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 99, 0, 102, NULL, 0, 0, NULL, NULL, NULL, 6, 29, 16, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(2133, 'Black Guard', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 16, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(2134, 'Black Guard Berserker', 'An elite member of the Black Guard.', 54, 38, 38, 38, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 99, 0, 102, NULL, 0, 0, NULL, NULL, NULL, 6, 29, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
@ -15052,9 +15053,9 @@ INSERT INTO `npc_configs` (`id`, `name`, `examine`, `lifepoints`, `attack_level`
(2698, 'Black knight', 'A dark-hearted knight.', 34, 24, 24, 24, 1, NULL, NULL, NULL, NULL, 60, 6, NULL, NULL, 422, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(2699, 'Guard', 'He\'s guarding the prison.', 18, 13, 13, 13, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 390, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, '511,513,512', NULL, NULL, NULL),
(2700, 'Guard', 'A prison guard.', 18, 13, 13, 13, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 422, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, '511,513,512', NULL, NULL, NULL),
(2701, 'Guard', 'A prison guard.', 18, 13, 13, 13, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 422, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, '511,513,512', NULL, NULL, NULL),
(2702, 'Guard', 'A prison guard.', 18, 13, 13, 13, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 390, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, '511,513,512', NULL, NULL, NULL);
(2701, 'Guard', 'A prison guard.', 18, 13, 13, 13, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 422, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, '511,513,512', NULL, NULL, NULL);
INSERT INTO `npc_configs` (`id`, `name`, `examine`, `lifepoints`, `attack_level`, `strength_level`, `defence_level`, `range_level`, `magic_level`, `bonuses`, `poison_amount`, `poison_immune`, `respawn_delay`, `attack_speed`, `movement_radius`, `agg_radius`, `melee_animation`, `defence_animation`, `death_animation`, `spawn_animation`, `magic_animation`, `range_animation`, `start_gfx`, `projectile`, `end_gfx`, `weakness`, `slayer_task`, `slayer_exp`, `combat_style`, `poisonous`, `aggressive`, `start_height`, `prj_height`, `end_height`, `clue_level`, `spell_id`, `combat_audio`, `protect_style`, `force_talk`, `safespot`) VALUES
(2702, 'Guard', 'A prison guard.', 18, 13, 13, 13, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 390, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, '511,513,512', NULL, NULL, NULL),
(2703, 'Guard', 'A prison guard.', 18, 13, 13, 13, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 390, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, '511,513,512', NULL, NULL, NULL),
(2704, 'Guard', 'He\'s asleep.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, '511,513,512', NULL, NULL, NULL),
(2705, 'Guard', 'Keeping an eye out for suspicious activity.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, '511,513,512', NULL, NULL, NULL),
@ -15251,9 +15252,9 @@ INSERT INTO `npc_configs` (`id`, `name`, `examine`, `lifepoints`, `attack_level`
(3089, '', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '511,513,512', NULL, NULL, NULL),
(3090, '', 'A mighty warrior', 24, 17, 17, 17, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 7048, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 8, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '511,513,512', NULL, NULL, NULL),
(3091, '', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '511,513,512', NULL, NULL, NULL),
(3094, 'Flying Book', 'The book moves by itself!', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(3097, 'Entrance Guardian', 'A guardian of the arena.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
(3094, 'Flying Book', 'The book moves by itself!', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
INSERT INTO `npc_configs` (`id`, `name`, `examine`, `lifepoints`, `attack_level`, `strength_level`, `defence_level`, `range_level`, `magic_level`, `bonuses`, `poison_amount`, `poison_immune`, `respawn_delay`, `attack_speed`, `movement_radius`, `agg_radius`, `melee_animation`, `defence_animation`, `death_animation`, `spawn_animation`, `magic_animation`, `range_animation`, `start_gfx`, `projectile`, `end_gfx`, `weakness`, `slayer_task`, `slayer_exp`, `combat_style`, `poisonous`, `aggressive`, `start_height`, `prj_height`, `end_height`, `clue_level`, `spell_id`, `combat_audio`, `protect_style`, `force_talk`, `safespot`) VALUES
(3097, 'Entrance Guardian', 'A guardian of the arena.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(3098, 'Telekinetic Guardian', 'A guardian of the arena.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(3099, 'Alchemy Guardian', 'A guardian of the arena.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(3100, 'Enchantment Guardian', 'A guardian of the arena.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
@ -15456,9 +15457,9 @@ INSERT INTO `npc_configs` (`id`, `name`, `examine`, `lifepoints`, `attack_level`
(3451, 'Lumbridge Guide', NULL, 60, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(3463, 'Skrach Uglogwee', 'What restful music!', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(3476, 'Jubbly bird', 'A large boisterous bird', 11, 6, 6, 8, 8, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 6800, 0, 6801, NULL, 0, 0, NULL, NULL, NULL, 0, 7, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(3478, 'King Awowogei', NULL, 328, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(3484, 'Big Snake', 'A big snake.', 65, 46, 46, 46, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 3538, 0, 3540, NULL, 0, 0, NULL, NULL, NULL, 8, NULL, NULL, NULL, 1, 1, NULL, NULL, NULL, NULL, NULL, '3609,3608,3610', NULL, NULL, NULL);
(3478, 'King Awowogei', NULL, 328, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
INSERT INTO `npc_configs` (`id`, `name`, `examine`, `lifepoints`, `attack_level`, `strength_level`, `defence_level`, `range_level`, `magic_level`, `bonuses`, `poison_amount`, `poison_immune`, `respawn_delay`, `attack_speed`, `movement_radius`, `agg_radius`, `melee_animation`, `defence_animation`, `death_animation`, `spawn_animation`, `magic_animation`, `range_animation`, `start_gfx`, `projectile`, `end_gfx`, `weakness`, `slayer_task`, `slayer_exp`, `combat_style`, `poisonous`, `aggressive`, `start_height`, `prj_height`, `end_height`, `clue_level`, `spell_id`, `combat_audio`, `protect_style`, `force_talk`, `safespot`) VALUES
(3484, 'Big Snake', 'A big snake.', 65, 46, 46, 46, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 3538, 0, 3540, NULL, 0, 0, NULL, NULL, NULL, 8, NULL, NULL, NULL, 1, 1, NULL, NULL, NULL, NULL, NULL, '3609,3608,3610', NULL, NULL, NULL),
(3491, 'Culinaromancer', NULL, 140, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(3493, 'Agrith-Na-Na', NULL, 200, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 3501, 3500, 3503, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(3494, 'Flambeed', NULL, 210, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 1750, 1751, 1752, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
@ -15650,9 +15651,9 @@ INSERT INTO `npc_configs` (`id`, `name`, `examine`, `lifepoints`, `attack_level`
(4250, 'Sawmill operator', 'He changes the shape of wood.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '703,705,704', NULL, NULL, NULL),
(4251, 'Garden supplier', 'She has green fingers. (Not literally.)', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(4252, 'Macaroni Penguin', 'Beak areful with this one', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(4257, 'Guard', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, '511,513,512', NULL, NULL, NULL),
(4258, 'Guard', 'A dwarven guard.', 17, 12, 12, 12, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 99, 0, 102, NULL, 0, 0, NULL, NULL, NULL, 6, 29, NULL, NULL, NULL, 1, NULL, NULL, NULL, 1, NULL, '511,513,512', NULL, NULL, NULL);
(4257, 'Guard', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, '511,513,512', NULL, NULL, NULL);
INSERT INTO `npc_configs` (`id`, `name`, `examine`, `lifepoints`, `attack_level`, `strength_level`, `defence_level`, `range_level`, `magic_level`, `bonuses`, `poison_amount`, `poison_immune`, `respawn_delay`, `attack_speed`, `movement_radius`, `agg_radius`, `melee_animation`, `defence_animation`, `death_animation`, `spawn_animation`, `magic_animation`, `range_animation`, `start_gfx`, `projectile`, `end_gfx`, `weakness`, `slayer_task`, `slayer_exp`, `combat_style`, `poisonous`, `aggressive`, `start_height`, `prj_height`, `end_height`, `clue_level`, `spell_id`, `combat_audio`, `protect_style`, `force_talk`, `safespot`) VALUES
(4258, 'Guard', 'A dwarven guard.', 17, 12, 12, 12, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 99, 0, 102, NULL, 0, 0, NULL, NULL, NULL, 6, 29, NULL, NULL, NULL, 1, NULL, NULL, NULL, 1, NULL, '511,513,512', NULL, NULL, NULL),
(4259, 'Guard', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, '511,513,512', NULL, NULL, NULL),
(4260, 'Guard', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, '511,513,512', NULL, NULL, NULL),
(4261, 'Goblin', 'An ugly green creature.', 10, 1, 2, 1, 1, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, 6185, 6183, 6182, NULL, 6185, 6185, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL),
@ -15847,9 +15848,9 @@ INSERT INTO `npc_configs` (`id`, `name`, `examine`, `lifepoints`, `attack_level`
(4633, 'Goblin', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL),
(4634, 'Goblin', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL),
(4635, 'Goblin', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL),
(4636, 'Goblin', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL),
(4637, 'Goblin', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL);
(4636, 'Goblin', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL);
INSERT INTO `npc_configs` (`id`, `name`, `examine`, `lifepoints`, `attack_level`, `strength_level`, `defence_level`, `range_level`, `magic_level`, `bonuses`, `poison_amount`, `poison_immune`, `respawn_delay`, `attack_speed`, `movement_radius`, `agg_radius`, `melee_animation`, `defence_animation`, `death_animation`, `spawn_animation`, `magic_animation`, `range_animation`, `start_gfx`, `projectile`, `end_gfx`, `weakness`, `slayer_task`, `slayer_exp`, `combat_style`, `poisonous`, `aggressive`, `start_height`, `prj_height`, `end_height`, `clue_level`, `spell_id`, `combat_audio`, `protect_style`, `force_talk`, `safespot`) VALUES
(4637, 'Goblin', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL),
(4638, 'Gnome soldier', 'A little warrior.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(4639, 'Gnome soldier', 'A little warrior.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(4640, 'Gnome soldier', 'A little warrior.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
@ -16045,9 +16046,9 @@ INSERT INTO `npc_configs` (`id`, `name`, `examine`, `lifepoints`, `attack_level`
(4962, 'Captain Barnaby', 'An old sailor.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(4965, 'Tool Leprechaun', 'It\'s a leprechaun sunbathing on a mountain.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(4971, 'Baby Roc', 'A mountain-dwelling bird. Cute', 100, 40, 40, 40, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 5031, 0, 5033, NULL, 0, 0, NULL, NULL, NULL, 7, 7, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(4972, 'Giant Roc', 'A very', 285, 55, 55, 55, 55, 55, NULL, NULL, NULL, 60, NULL, NULL, NULL, 5024, 0, 5027, NULL, 0, 5025, NULL, NULL, NULL, 10, 7, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(4975, 'Male slave', 'It looks like he\'s been here a long time.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
(4972, 'Giant Roc', 'A very', 285, 55, 55, 55, 55, 55, NULL, NULL, NULL, 60, NULL, NULL, NULL, 5024, 0, 5027, NULL, 0, 5025, NULL, NULL, NULL, 10, 7, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
INSERT INTO `npc_configs` (`id`, `name`, `examine`, `lifepoints`, `attack_level`, `strength_level`, `defence_level`, `range_level`, `magic_level`, `bonuses`, `poison_amount`, `poison_immune`, `respawn_delay`, `attack_speed`, `movement_radius`, `agg_radius`, `melee_animation`, `defence_animation`, `death_animation`, `spawn_animation`, `magic_animation`, `range_animation`, `start_gfx`, `projectile`, `end_gfx`, `weakness`, `slayer_task`, `slayer_exp`, `combat_style`, `poisonous`, `aggressive`, `start_height`, `prj_height`, `end_height`, `clue_level`, `spell_id`, `combat_audio`, `protect_style`, `force_talk`, `safespot`) VALUES
(4975, 'Male slave', 'It looks like he\'s been here a long time.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(4977, 'Female slave', 'She looks like she\'s been down here a long time.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(4989, 'Mercenary', 'He looks a bit aggressive.', 35, 25, 25, 25, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 390, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(4990, 'Mercenary', 'He looks a bit aggressive.', 35, 25, 25, 25, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 390, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
@ -16246,9 +16247,9 @@ INSERT INTO `npc_configs` (`id`, `name`, `examine`, `lifepoints`, `attack_level`
(5374, 'Ghost', 'It thinks it scary. Thok show it scary.', 36, 80, 80, 70, 80, 80, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5532, 5533, 5534, NULL, 0, 0, NULL, NULL, NULL, 10, NULL, 25, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '436,439,438', NULL, NULL, NULL),
(5375, 'Zombie', 'Examine not added', 23, 25, 1, 25, 1, NULL, '15,25,25,25,25,25,25,15,15,25,25,25,25,25,25', NULL, NULL, 30, 5, NULL, NULL, 5568, 5567, 5569, NULL, 5568, 5568, NULL, NULL, NULL, NULL, NULL, 30, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '931,923,922', NULL, NULL, NULL),
(5376, 'Zombie', 'Examine not added', 23, 25, 1, 25, 1, NULL, '15,25,25,25,25,25,25,15,15,25,25,25,25,25,25', NULL, NULL, 30, 5, NULL, NULL, 5568, 5567, 5569, NULL, 5568, 5568, NULL, NULL, NULL, NULL, NULL, 30, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '931,923,922', NULL, NULL, NULL),
(5377, 'Zombie', 'Examine not added', 30, 38, 1, 28, 1, NULL, '15,25,28,28,25,28,28,15,15,28,25,25,25,25,25', NULL, NULL, 30, 5, NULL, NULL, 5578, 5579, 5580, NULL, 5578, 5578, NULL, NULL, NULL, NULL, NULL, 30, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '931,923,922', NULL, NULL, NULL),
(5378, 'Zombie', 'Examine not added', 30, 38, 1, 28, 1, NULL, '15,25,28,28,25,28,28,15,15,28,25,25,25,25,25', NULL, NULL, 30, 5, NULL, NULL, 5578, 5579, 5580, NULL, 5578, 5578, NULL, NULL, NULL, NULL, NULL, 30, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '931,923,922', NULL, NULL, NULL);
(5377, 'Zombie', 'Examine not added', 30, 38, 1, 28, 1, NULL, '15,25,28,28,25,28,28,15,15,28,25,25,25,25,25', NULL, NULL, 30, 5, NULL, NULL, 5578, 5579, 5580, NULL, 5578, 5578, NULL, NULL, NULL, NULL, NULL, 30, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '931,923,922', NULL, NULL, NULL);
INSERT INTO `npc_configs` (`id`, `name`, `examine`, `lifepoints`, `attack_level`, `strength_level`, `defence_level`, `range_level`, `magic_level`, `bonuses`, `poison_amount`, `poison_immune`, `respawn_delay`, `attack_speed`, `movement_radius`, `agg_radius`, `melee_animation`, `defence_animation`, `death_animation`, `spawn_animation`, `magic_animation`, `range_animation`, `start_gfx`, `projectile`, `end_gfx`, `weakness`, `slayer_task`, `slayer_exp`, `combat_style`, `poisonous`, `aggressive`, `start_height`, `prj_height`, `end_height`, `clue_level`, `spell_id`, `combat_audio`, `protect_style`, `force_talk`, `safespot`) VALUES
(5378, 'Zombie', 'Examine not added', 30, 38, 1, 28, 1, NULL, '15,25,28,28,25,28,28,15,15,28,25,25,25,25,25', NULL, NULL, 30, 5, NULL, NULL, 5578, 5579, 5580, NULL, 5578, 5578, NULL, NULL, NULL, NULL, NULL, 30, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '931,923,922', NULL, NULL, NULL),
(5379, 'Zombie', 'Examine not added', 40, 47, 1, 48, 1, NULL, '35,45,45,45,45,45,45,35,35,45,45,45,45,45,45', NULL, NULL, 30, 5, NULL, NULL, 5578, 5579, 5580, NULL, 5578, 5578, NULL, NULL, NULL, NULL, NULL, 30, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '931,923,922', NULL, NULL, NULL),
(5380, 'Zombie', 'Examine not added', 40, 47, 1, 48, 1, NULL, '35,45,45,45,45,45,45,35,35,45,45,45,45,45,45', NULL, NULL, 30, 5, NULL, NULL, 5578, 5579, 5580, NULL, 5578, 5578, NULL, NULL, NULL, NULL, NULL, 30, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '931,923,922', NULL, NULL, NULL),
(5381, 'Skeleton', 'Could do with gaining a few pounds.', 88, 62, 62, 62, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 5485, 0, 5491, NULL, 0, 0, NULL, NULL, NULL, 8, 75, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '774,775,777', NULL, NULL, NULL),
@ -16448,10 +16449,10 @@ INSERT INTO `npc_configs` (`id`, `name`, `examine`, `lifepoints`, `attack_level`
(5847, 'Outlaw', 'A mean looking outlaw. Don\'t get too close!', 32, 23, 23, 23, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 390, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(5848, 'Outlaw', 'A mean looking outlaw. Don\'t get too close!', 32, 23, 23, 23, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 390, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(5849, 'Outlaw', 'A mean looking outlaw. Don\'t get too close!', 32, 23, 23, 23, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 390, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(5850, 'Outlaw', 'A mean looking outlaw. Don\'t get too close!', 32, 23, 23, 23, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 390, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(5851, 'Outlaw', 'A mean looking outlaw. Don\'t get too close!', 32, 23, 23, 23, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 390, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(5852, 'Monkey', 'Weird eyeball thing. Reminds Thok of breakfast.', 85, 60, 60, 40, 60, 60, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, NULL, NULL, 0, 0, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '629,631,630', NULL, NULL, NULL);
(5850, 'Outlaw', 'A mean looking outlaw. Don\'t get too close!', 32, 23, 23, 23, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 390, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
INSERT INTO `npc_configs` (`id`, `name`, `examine`, `lifepoints`, `attack_level`, `strength_level`, `defence_level`, `range_level`, `magic_level`, `bonuses`, `poison_amount`, `poison_immune`, `respawn_delay`, `attack_speed`, `movement_radius`, `agg_radius`, `melee_animation`, `defence_animation`, `death_animation`, `spawn_animation`, `magic_animation`, `range_animation`, `start_gfx`, `projectile`, `end_gfx`, `weakness`, `slayer_task`, `slayer_exp`, `combat_style`, `poisonous`, `aggressive`, `start_height`, `prj_height`, `end_height`, `clue_level`, `spell_id`, `combat_audio`, `protect_style`, `force_talk`, `safespot`) VALUES
(5851, 'Outlaw', 'A mean looking outlaw. Don\'t get too close!', 32, 23, 23, 23, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 390, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(5852, 'Monkey', 'Weird eyeball thing. Reminds Thok of breakfast.', 85, 60, 60, 40, 60, 60, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, NULL, NULL, 0, 0, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '629,631,630', NULL, NULL, NULL),
(5854, 'Bench', 'For sitting on.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(5855, 'Goblin', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL),
(5856, 'Goblin', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL),
@ -16648,10 +16649,10 @@ INSERT INTO `npc_configs` (`id`, `name`, `examine`, `lifepoints`, `attack_level`
(6152, 'Portal', 'Not somewhere I want to go...', 250, 1, 1, 70, 1, 70, '150,150,75,150,75,0,0,0,0,0,0,0,0,0,0', NULL, NULL, 125, 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(6153, 'Portal', 'Not somewhere I want to go...', 250, 1, 1, 70, 1, 70, '75,75,150,150,75,0,0,0,0,0,0,0,0,0,0', NULL, NULL, 125, 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(6154, 'Portal', 'The Void Knight will soon weaken the shield.', 250, 1, 1, 30, 1, 30, '100,100,100,50,50,0,0,0,0,0,0,0,0,0,0', NULL, NULL, 125, 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(6155, 'Portal', 'The Void Knight will soon weaken the shield.', 250, 1, 1, 30, 1, 15, '100,100,100,100,25,0,0,0,0,0,0,0,0,0,0', NULL, NULL, 125, 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(6156, 'Portal', 'The Void Knight will soon weaken the shield.', 250, 1, 1, 30, 1, 30, '100,100,50,100,50,0,0,0,0,0,0,0,0,0,0', NULL, NULL, 125, 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(6157, 'Portal', 'The Void Knight will soon weaken the shield.', 250, 1, 1, 30, 1, 30, '50,50,100,100,50,0,0,0,0,0,0,0,0,0,0', NULL, NULL, 125, 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
(6155, 'Portal', 'The Void Knight will soon weaken the shield.', 250, 1, 1, 30, 1, 15, '100,100,100,100,25,0,0,0,0,0,0,0,0,0,0', NULL, NULL, 125, 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
INSERT INTO `npc_configs` (`id`, `name`, `examine`, `lifepoints`, `attack_level`, `strength_level`, `defence_level`, `range_level`, `magic_level`, `bonuses`, `poison_amount`, `poison_immune`, `respawn_delay`, `attack_speed`, `movement_radius`, `agg_radius`, `melee_animation`, `defence_animation`, `death_animation`, `spawn_animation`, `magic_animation`, `range_animation`, `start_gfx`, `projectile`, `end_gfx`, `weakness`, `slayer_task`, `slayer_exp`, `combat_style`, `poisonous`, `aggressive`, `start_height`, `prj_height`, `end_height`, `clue_level`, `spell_id`, `combat_audio`, `protect_style`, `force_talk`, `safespot`) VALUES
(6156, 'Portal', 'The Void Knight will soon weaken the shield.', 250, 1, 1, 30, 1, 30, '100,100,50,100,50,0,0,0,0,0,0,0,0,0,0', NULL, NULL, 125, 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(6157, 'Portal', 'The Void Knight will soon weaken the shield.', 250, 1, 1, 30, 1, 30, '50,50,100,100,50,0,0,0,0,0,0,0,0,0,0', NULL, NULL, 125, 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(6159, 'Workman', 'It is cold and solid. Thok will strap it to Marmaros\'s leg.', 114, 50, 50, 65, 50, 50, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, 0, 0, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(6169, 'Squire', 'Squire to the Knights of the Round Table.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(6170, 'Sir Lancelot', NULL, 118, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 400, 422, 836, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
@ -16841,10 +16842,10 @@ INSERT INTO `npc_configs` (`id`, `name`, `examine`, `lifepoints`, `attack_level`
(6429, 'Goblin', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL),
(6430, 'Goblin', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL),
(6431, 'Goblin', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL),
(6432, 'Goblin', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL),
(6433, 'Goblin', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL),
(6434, 'Goblin', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL);
(6432, 'Goblin', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL);
INSERT INTO `npc_configs` (`id`, `name`, `examine`, `lifepoints`, `attack_level`, `strength_level`, `defence_level`, `range_level`, `magic_level`, `bonuses`, `poison_amount`, `poison_immune`, `respawn_delay`, `attack_speed`, `movement_radius`, `agg_radius`, `melee_animation`, `defence_animation`, `death_animation`, `spawn_animation`, `magic_animation`, `range_animation`, `start_gfx`, `projectile`, `end_gfx`, `weakness`, `slayer_task`, `slayer_exp`, `combat_style`, `poisonous`, `aggressive`, `start_height`, `prj_height`, `end_height`, `clue_level`, `spell_id`, `combat_audio`, `protect_style`, `force_talk`, `safespot`) VALUES
(6433, 'Goblin', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL),
(6434, 'Goblin', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL),
(6435, 'Goblin', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL),
(6436, 'Goblin', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL),
(6437, 'Goblin', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL),
@ -17043,10 +17044,10 @@ INSERT INTO `npc_configs` (`id`, `name`, `examine`, `lifepoints`, `attack_level`
(6725, 'Revenant ork', NULL, 105, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL),
(6726, 'Revenant knight', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL),
(6727, 'Revenant hobgoblin', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, '469,472,471', NULL, NULL, NULL),
(6728, 'Revenant werewolf', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL),
(6729, 'Revenant ork', NULL, 105, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL),
(6730, 'Revenant knight', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL);
(6728, 'Revenant werewolf', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL);
INSERT INTO `npc_configs` (`id`, `name`, `examine`, `lifepoints`, `attack_level`, `strength_level`, `defence_level`, `range_level`, `magic_level`, `bonuses`, `poison_amount`, `poison_immune`, `respawn_delay`, `attack_speed`, `movement_radius`, `agg_radius`, `melee_animation`, `defence_animation`, `death_animation`, `spawn_animation`, `magic_animation`, `range_animation`, `start_gfx`, `projectile`, `end_gfx`, `weakness`, `slayer_task`, `slayer_exp`, `combat_style`, `poisonous`, `aggressive`, `start_height`, `prj_height`, `end_height`, `clue_level`, `spell_id`, `combat_audio`, `protect_style`, `force_talk`, `safespot`) VALUES
(6729, 'Revenant ork', NULL, 105, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL),
(6730, 'Revenant knight', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL),
(6731, 'Queen of Snow', 'Her lack of body heat is unsettling.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(6739, 'Snow imp', 'It looks right at home here.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(6740, 'Snow', 'Snowflakes swirling in the wind.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
@ -17241,10 +17242,10 @@ INSERT INTO `npc_configs` (`id`, `name`, `examine`, `lifepoints`, `attack_level`
(7109, 'Thug', 'Low on brains', 5, 7, 7, 9, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 386, 0, 836, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL),
(7110, 'Thug', 'Low on brains', 5, 7, 7, 9, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 386, 0, 836, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL),
(7111, 'Thug', 'Low on brains', 5, 7, 7, 9, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 386, 0, 836, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL),
(7112, 'Thug', 'Low on brains', 5, 7, 7, 9, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 386, 0, 836, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL),
(7113, 'Thug', 'Low on brains', 5, 7, 7, 9, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 386, 0, 836, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL),
(7114, 'Thug', 'Low on brains', 5, 7, 7, 9, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 386, 0, 836, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL);
(7112, 'Thug', 'Low on brains', 5, 7, 7, 9, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 386, 0, 836, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL);
INSERT INTO `npc_configs` (`id`, `name`, `examine`, `lifepoints`, `attack_level`, `strength_level`, `defence_level`, `range_level`, `magic_level`, `bonuses`, `poison_amount`, `poison_immune`, `respawn_delay`, `attack_speed`, `movement_radius`, `agg_radius`, `melee_animation`, `defence_animation`, `death_animation`, `spawn_animation`, `magic_animation`, `range_animation`, `start_gfx`, `projectile`, `end_gfx`, `weakness`, `slayer_task`, `slayer_exp`, `combat_style`, `poisonous`, `aggressive`, `start_height`, `prj_height`, `end_height`, `clue_level`, `spell_id`, `combat_audio`, `protect_style`, `force_talk`, `safespot`) VALUES
(7113, 'Thug', 'Low on brains', 5, 7, 7, 9, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 386, 0, 836, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL),
(7114, 'Thug', 'Low on brains', 5, 7, 7, 9, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 386, 0, 836, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL),
(7115, 'Thaki the delivery dwarf', 'He seems to be enjoying his time in the bar.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(7120, 'Tyras guard', 'One of King Tyras\'s men.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(7125, 'Rabbit', 'A hungry-looking rabbit.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
@ -17436,10 +17437,10 @@ INSERT INTO `npc_configs` (`id`, `name`, `examine`, `lifepoints`, `attack_level`
(7582, 'Al Truism', 'He likes inflicting pain.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(7583, 'Ohhhhdude', 'The Don of penguins.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(7585, 'Torcher', 'A penguin pushing paper', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(7586, 'Torcher', 'A penguin pushing paper', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(7593, 'Shifter', 'He\'s a little rough around the edges.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(7605, 'Banker', 'He has unbelievable strength!', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
(7586, 'Torcher', 'A penguin pushing paper', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
INSERT INTO `npc_configs` (`id`, `name`, `examine`, `lifepoints`, `attack_level`, `strength_level`, `defence_level`, `range_level`, `magic_level`, `bonuses`, `poison_amount`, `poison_immune`, `respawn_delay`, `attack_speed`, `movement_radius`, `agg_radius`, `melee_animation`, `defence_animation`, `death_animation`, `spawn_animation`, `magic_animation`, `range_animation`, `start_gfx`, `projectile`, `end_gfx`, `weakness`, `slayer_task`, `slayer_exp`, `combat_style`, `poisonous`, `aggressive`, `start_height`, `prj_height`, `end_height`, `clue_level`, `spell_id`, `combat_audio`, `protect_style`, `force_talk`, `safespot`) VALUES
(7593, 'Shifter', 'He\'s a little rough around the edges.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(7605, 'Banker', 'He has unbelievable strength!', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(7606, 'Vyrewatch', NULL, 95, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(7607, 'Vyrewatch', NULL, 105, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
(7608, 'Vyrewatch', NULL, 120, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
@ -19641,7 +19642,7 @@ INSERT INTO `npc_spawns` (`npc_id`, `loc_data`) VALUES
(4, '{3010,3236,0,1,6}-{2693,3493,0,1,7}-{2693,3492,0,1,0}-{2695,3497,0,1,1}-{2700,3496,0,1,5}-{3230,3204,0,1,3}-{3281,3499,0,1,4}'),
(5, '{2817,3447,0,1,5}-{2697,3493,0,1,4}-{3236,3205,0,1,2}-{3229,3238,0,1,1}-{3279,3497,0,1,3}'),
(6, '{3097,3259,0,1,4}-{3280,3491,0,1,0}'),
(7, '{2920,3434,0,0,0}-{3226,3290,0,0,3}-{2629,3360,0,1,4}'),
(7, '{2920,3434,0,0,0}-{3226,3290,0,0,3}-{2629,3360,0,1,4}-{3158, 3301, 0, 1, 0}'),
(8, '{3019,3230,0,1,4}-{2804,3186,0,1,4}'),
(9, '{2964,3392,0,1,6}-{2967,3393,0,1,1}-{3008,3324,0,1,2}-{3007,3321,0,1,6}-{3005,3321,0,1,4}-{2965,3389,0,1,6}-{2966,3392,0,1,1}-{2964,3392,0,1,1}'),
(11, '{3235,3399,0,1,5}'),
@ -20057,9 +20058,9 @@ INSERT INTO `npc_spawns` (`npc_id`, `loc_data`) VALUES
(641, '{3207,3392,0,1,6}'),
(642, '{3185,3385,0,1,6}'),
(643, '{3246,3383,1,1,5}'),
(644, '{3247,9781,0,1,6}'),
(645, '{3223,3401,0,1,2}');
(644, '{3247,9781,0,1,6}');
INSERT INTO `npc_spawns` (`npc_id`, `loc_data`) VALUES
(645, '{3223,3401,0,1,2}'),
(646, '{3257,3447,0,0,0}'),
(648, '{3220,3471,0,0,6}'),
(649, '{3149,3210,0,0,0}'),
@ -20558,7 +20559,7 @@ INSERT INTO `npc_spawns` (`npc_id`, `loc_data`) VALUES
(1767, '{3262,3262,0,1,6}-{3025,3311,0,1,5}-{2924,3288,0,0,1}-{2921,3290,0,1,1}-{2926,3279,0,1,1}-{2931,3272,0,1,1}-{2936,3273,0,1,6}'),
(1769, '{2979,3203,0,1,4}-{3264,3249,0,1,4}-{2596,9822,0,1,4}'),
(1770, '{2999,3212,0,1,1}-{3262,3253,0,1,6}-{3259,3254,0,1,3}-{2595,9826,0,1,1}'),
(1771, '{2993,3199,0,1,6}-{3248,3233,0,1,6}-{3247,3240,0,1,3}-{3187, 3286, 0, 1, 0}-{3209, 3277, 0, 1, 0}-{3174, 3294, 0, 1, 0}-{3178, 3294, 0, 1, 0}'),
(1771, '{2993,3199,0,1,6}-{3248,3233,0,1,6}-{3247,3240,0,1,3}-{3187, 3286, 0, 1, 0}-{3209, 3277, 0, 1, 0}-{3174, 3294, 0, 1, 0}-{3178, 3294, 0, 1, 0}-{3144, 3302, 0, 1, 0}-{3142, 3303, 0, 1, 0}-{3151, 3300, 0, 1, 0}-{3139, 3299, 0, 1, 0}'),
(1772, '{2993,3203,0,1,0}-{3251,3231,0,1,1}-{3260,3241,0,1,0}-{3259,3222,0,0,4}'),
(1773, '{2991,3219,0,1,1}-{3252,3227,0,1,1}-{3263,3219,0,1,0}'),
(1774, '{3012,3204,0,1,3}-{3255,3228,0,1,4}-{3265,3219,0,1,2}-{2592,9834,0,1,6}'),
@ -20621,6 +20622,7 @@ INSERT INTO `npc_spawns` (`npc_id`, `loc_data`) VALUES
(1961, '{3250,9326,0,1,4}-{3258,9327,0,1,6}-{3256,9333,0,1,1}-{3220,9309,0,1,4}-{3252,9333,0,1,3}-{3208,9318,0,1,3}-{3241,9331,0,1,6}-{3204,9328,0,1,3}-{3209,9328,0,1,3}-{3228,9323,0,1,4}-{3210,9282,0,1,7}-{3225,9329,0,1,6}-{3207,9299,0,1,4}-{3215,9295,0,1,3}-{3213,9322,0,1,3}-{3214,9315,0,1,0}-{3221,9291,0,1,0}-{3213,9303,0,1,4}-{3227,9304,0,1,6}-{3247,9301,0,1,1}-{3228,9284,0,1,3}-{3254,9286,0,1,4}-{3262,9291,0,1,6}-{3224,9302,0,1,3}-{3250,9298,0,1,3}-{3252,9293,0,1,6}-{3262,9299,0,1,1}-{3256,9297,0,1,7}-{3262,9285,0,1,1}-{3254,9322,0,1,0}-{3261,9318,0,1,4}-{3242,9316,0,1,6}-{3250,9306,0,1,3}-{3250,9327,0,1,3}-{3156,5477,0,1,5}-{3162,5479,0,1,4}-{3159,5477,0,1,6}-{3150,5474,0,1,3}-{3147,5480,0,1,1}-{3159,5484,0,1,3}'),
(1962, '{3168,5458,0,1,2}-{3242,9331,0,1,3}-{3238,9333,0,1,6}-{3261,9330,0,1,1}-{3232,9333,0,1,0}-{3222,9324,0,1,4}-{3205,9303,0,1,3}'),
(1963, '{3166,5465,0,1,7}-{3168,5462,0,1,0}-{3167,5467,0,1,1}-{3167,5467,0,1,7}'),
(1972, '{2536, 3426, 0, 1, 0}'),
(1976, '{3315,5508,0,1,5}-{3308,5510,0,1,3}-{3304,5507,0,1,4}-{3299,5509,0,1,3}-{3317,5514,0,1,3}-{3319,5518,0,1,4}-{3320,5507,0,1,4}-{3324,5513,0,1,1}-{3283,5510,0,1,5}-{3320,5550,0,1,0}-{3313,5523,0,1,4}-{3310,5541,0,1,4}-{3308,5535,0,1,5}-{3301,5531,0,1,4}-{3315,5530,0,1,1}-{3322,5536,0,1,4}-{3320,5539,0,1,7}-{3311,5519,0,1,3}-{3289,5525,0,1,2}-{3300,5519,0,1,6}-{3289,5515,0,1,7}-{3287,5523,0,1,3}'),
(1990, '{3300,2797,0,0,6}'),
(1993, '{3360,2935,0,1,4}-{3359,2924,0,1,6}-{3352,2936,0,1,0}-{3349,2931,0,1,6}-{3341,2924,0,1,4}'),
@ -20716,14 +20718,14 @@ INSERT INTO `npc_spawns` (`npc_id`, `loc_data`) VALUES
(2329, '{1702,4823,0,0,6}'),
(2330, '{2766,3211,0,0,0}'),
(2331, '{2860,3430,0,1,4}'),
(2332, '{2573,3102,0,1,4}'),
(2332, '{2573,3102,0,1,4}');
INSERT INTO `npc_spawns` (`npc_id`, `loc_data`) VALUES
(2333, '{3226,3311,0,0,0}'),
(2334, '{2662,3525,0,1,1}'),
(2335, '{3181,3359,0,0,0}'),
(2336, '{2938,3221,0,1,0}'),
(2337, '{2615,3855,0,0,3}'),
(2338, '{2615,3229,0,0,0}');
INSERT INTO `npc_spawns` (`npc_id`, `loc_data`) VALUES
(2338, '{2615,3229,0,0,0}'),
(2339, '{2934,3438,0,1,6}'),
(2340, '{3007,3373,0,1,4}'),
(2341, '{3229,3456,0,0,0}'),
@ -21399,7 +21401,7 @@ INSERT INTO `npc_spawns` (`npc_id`, `loc_data`) VALUES
(5138, '{2607,3264,0,0,0}'),
(5139, '{2607,3260,0,0,0}'),
(5146, '{3205,3263,0,0,0}-{2925,3324,0,1,0}'),
(5147, '{3212,3259,0,1,4}'),
(5147, '{3207, 3270, 0, 1, 0}'),
(5148, '{3229,3347,0,1,1}-{3238,3347,0,1,1}'),
(5149, '{3233,3350,0,1,0}'),
(5156, '{3203,3262,0,1,5}'),
@ -21726,7 +21728,7 @@ INSERT INTO `npc_spawns` (`npc_id`, `loc_data`) VALUES
(6188, '{1901,4271,0,0,0}-{1909,4271,0,0,0}'),
(6189, '{3016,3516,0,1,7}'),
(6190, '{1906,4270,0,1,0}'),
(6200, '{2947,3366,0,0,1}-{2949,3366,0,0,1}-{2946,3366,0,0,1}-{2948,3366,0,0,1}-{3010,3353,0,0,1}-{3011,3353,0,0,1}-{3012,3353,0,0,1}-{3013,3353,0,0,1}-{3014,3353,0,0,1}'),
(6200, '{2947,3366,0,0,1}-{2949,3366,0,0,1}-{2946,3366,0,0,1}-{2948,3366,0,0,1}-{3010,3353,0,0,1}-{3011,3353,0,0,1}-{3012,3353,0,0,1}-{3013,3353,0,0,1}-{3014,3353,0,0,1}-{3015, 3353, 0, 0, 1}'),
(6202, '{2912,3749,0,0,0}'),
(6203, '{2924,5322,2,1,4}'),
(6205, '{2933,5329,2,1,1}'),
@ -23625,7 +23627,8 @@ INSERT INTO `shops` (`id`, `title`, `general_store`, `stock`, `npcs`, `currency`
(210, 'Ranging Guild Ticket Exchange', 0, '{47,10000000}-{1133,10000000}-{892,10000000}-{1169,10000000}-{1135,10000000}-{829,10000000}', '694', 1464, 0),
(211, 'Rok\'s Choc Box', 0, '{6794,30}-{1973,25}', '3045', 995, 0),
(212, 'Ak-haranu\'s Exotic Goods', 0, '{4740,100000}', '1688', 995, 0),
(213, 'The Garden Centre', 0, '{8417,1000}-{8419,1000}-{8421,1000}-{8423,1000}-{8425,1000}-{8427,1000}-{8429,1000}-{8431,1000}-{8433,1000}-{8435,1000}-{8451,1000}-{8453,1000}-{8455,1000}-{8457,1000}-{8459,1000}-{8461,1000}-{8437,1000}-{8439,1000}-{8441,1000}-{8443,1000}-{8445,1000}-{8447,1000}-{8449,1000}', '4251', 995, 0);
(213, 'The Garden Centre', 0, '{8417,1000}-{8419,1000}-{8421,1000}-{8423,1000}-{8425,1000}-{8427,1000}-{8429,1000}-{8431,1000}-{8433,1000}-{8435,1000}-{8451,1000}-{8453,1000}-{8455,1000}-{8457,1000}-{8459,1000}-{8461,1000}-{8437,1000}-{8439,1000}-{8441,1000}-{8443,1000}-{8445,1000}-{8447,1000}-{8449,1000}', '4251', 995, 0),
(214, 'Rasolo\'s Goods', 0, '{1969,2}-{2023,4}-{740,10}-{1215,1}-{550,1}-{583,2}-{1941,10}-{970,1}-{975,1}-{1599,1}-{2976,1}-{1823,1}-{1837,1}-{1864,5}-{2520,1}-{3377,1}-{626,1}-{1909,1}-{3787,1}-{3711,1}-{3678,1}-{3424,5}-{3420,1}-{5,1}', '1972', 995, 0);
-- --------------------------------------------------------
@ -23736,7 +23739,7 @@ ALTER TABLE `door_configs`
-- AUTO_INCREMENT for table `shops`
--
ALTER TABLE `shops`
MODIFY `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=214;
MODIFY `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=215;
COMMIT;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;

View file

@ -101,8 +101,11 @@ public final class DialogueInterpreter {
if (args.length > 0 && args[0] instanceof NPC) {
NPC npc = (NPC) args[0];
npc.setDialoguePlayer(player);
npc.getWalkingQueue().reset();
npc.getPulseManager().clear();
try { //this prevents the dialogue interpreter from dying when you try opening an NPC's dialogue without passing the NPC itself as an argument
npc.getWalkingQueue().reset();
npc.getPulseManager().clear();
} catch(Exception e){
}
} else if (args.length < 1) {
args = new Object[] { dialogueKey };
}

View file

@ -296,9 +296,21 @@ public final class DoorActionHandler {
secondDir = (secondDir + 2) % 4;
}
Location secondLoc = firstLoc.transform((int) p.getX(), (int) p.getY(), 0);
if(object.getId() == 36917 || object.getId() == 36919){
ObjectBuilder.replace(object, object.transform(36919, firstDir, firstLoc), restoreTicks, true);
ObjectBuilder.replace(second, second.transform(36917, secondDir, secondLoc), restoreTicks, true);
if((object.getId() == 36917 || object.getId() == 36919)){
switch(object.getDirection()) {
case SOUTH:
ObjectBuilder.replace(object, object.transform(36919, firstDir, firstLoc), restoreTicks, true);
ObjectBuilder.replace(second, second.transform(36917, secondDir, secondLoc), restoreTicks, true);
break;
case EAST:
ObjectBuilder.replace(object, object.transform(36917, firstDir, firstLoc), restoreTicks, true);
ObjectBuilder.replace(second, second.transform(36919, secondDir, secondLoc), restoreTicks, true);
break;
default:
ObjectBuilder.replace(object, object.transform(36919, firstDir, firstLoc), restoreTicks, true);
ObjectBuilder.replace(second, second.transform(36917, secondDir, secondLoc), restoreTicks, true);
break;
}
} else {
ObjectBuilder.replace(object, object.transform(replaceId, firstDir, firstLoc), restoreTicks, clip);
ObjectBuilder.replace(second, second.transform(secondReplaceId, secondDir, secondLoc), restoreTicks, clip);

View file

@ -0,0 +1,15 @@
package org.crandor.game.interaction;
import org.crandor.game.node.entity.player.Player;
/**
* Stub class for special ground item interactions
* @author ceik
*/
public class SpecialGroundInteraction {
public void handle(Player player, Option option){
}
public void configure(){
}
}

View file

@ -0,0 +1,32 @@
package org.crandor.game.interaction;
import org.crandor.game.node.item.GroundItem;
import org.crandor.game.node.item.GroundItemManager;
import org.crandor.game.world.map.Location;
import plugin.interaction.city.falador.WineOfZamorakInteraction;
import plugin.interaction.city.portsarim.AhabBeerInteraction;
/**
* Handles interactions for special ground items
* @author ceik
*/
public enum SpecialGroundItems {
//Ahab's beer
AHAB_BEER(1917,new Location(3049,3257,0), new AhabBeerInteraction()),
WINE_OF_ZAMORAK(245, Location.create(2931, 3515, 0), new WineOfZamorakInteraction());
private int itemid;
private Location location;
private SpecialGroundInteraction inter;
SpecialGroundItems(int itemId, Location location, SpecialGroundInteraction inter){
this.itemid = itemId;
this.location = location;
this.inter = inter;
}
public SpecialGroundInteraction getInteraction() { return inter;}
public int getItemid() {return itemid;}
public Location getLocation() {return location;}
public GroundItem asGroundItem(){return GroundItemManager.get(itemid,location,null);}
}

View file

@ -4,6 +4,7 @@ import org.crandor.ServerConstants;
import org.crandor.game.interaction.Interaction;
import org.crandor.game.interaction.MovementPulse;
import org.crandor.game.interaction.Option;
import org.crandor.game.interaction.SpecialGroundItems;
import org.crandor.game.node.Node;
import org.crandor.game.node.entity.npc.NPC;
import org.crandor.game.node.entity.player.Player;
@ -288,6 +289,14 @@ public final class InteractionPacket implements IncomingPacket {
*/
private static void handleGroundItemInteraction(final Player player, int index, int itemId, Location location) {
final GroundItem item = GroundItemManager.get(itemId, location, player);
SpecialGroundItems[] groundItems = SpecialGroundItems.values();
for(SpecialGroundItems specialItem : groundItems){
if(specialItem.getItemid() == itemId && specialItem.getLocation().getX() == location.getX() && specialItem.getLocation().getY() == location.getY()){
player.debug("Using special ground item handler");
specialItem.getInteraction().handle(player,item.getInteraction().get(index));
return;
}
}
if (item == null) {
PacketRepository.send(ClearMinimapFlag.class, new PlayerContext(player));
return;

View file

@ -3,10 +3,12 @@ package plugin.activity.mta;
import org.crandor.game.content.global.action.PickupHandler;
import org.crandor.game.content.skill.free.magic.MagicSpell;
import org.crandor.game.content.skill.free.magic.Runes;
import org.crandor.game.interaction.SpecialGroundItems;
import org.crandor.game.node.Node;
import org.crandor.game.node.entity.Entity;
import org.crandor.game.node.entity.combat.equipment.SpellType;
import org.crandor.game.node.entity.impl.Projectile;
import org.crandor.game.node.entity.npc.NPC;
import org.crandor.game.node.entity.player.Player;
import org.crandor.game.node.entity.player.link.SpellBookManager.SpellBook;
import org.crandor.game.node.entity.player.link.audio.Audio;
@ -128,6 +130,10 @@ public final class TelekineticGrabSpell extends MagicSpell {
player.getPacketDispatch().sendMessage("Too late!");
return true;
}
if (g == SpecialGroundItems.AHAB_BEER.asGroundItem()){
player.getDialogueInterpreter().open(2692, new NPC(2692), true);
return true;
}
if (player == null) {
return true;
}

View file

@ -1,6 +1,7 @@
package plugin.dialogue;
import org.crandor.game.content.dialogue.DialoguePlugin;
import org.crandor.game.content.dialogue.FacialExpression;
import org.crandor.game.node.entity.npc.NPC;
import org.crandor.plugin.InitializablePlugin;
import org.crandor.game.node.entity.player.Player;
@ -38,8 +39,19 @@ public final class AhabDialogue extends DialoguePlugin {
@Override
public boolean open(Object... args) {
npc = (NPC) args[0];
npc("Arrr, matey!");
stage = 0;
if(args.length > 1) {
boolean isTelegrab = (boolean) args[1];
player.debug("" + isTelegrab);
if (!isTelegrab) {
npc(FacialExpression.FURIOUS, "Oi! Get yer hands off me beer!");
} else {
npc(FacialExpression.FURIOUS,"Don't ye go castin' spells on me beer!");
}
stage = 301;
} else {
npc("Arrr, matey!");
stage = 0;
}
return true;
}

View file

@ -39,7 +39,7 @@ public final class DrOnglewipDialogue extends DialoguePlugin {
@Override
public boolean open(Object... args) {
npc = (NPC) args[0];
interpreter.sendDialogues(player, FacialExpression.HALF_GUILTY, "Do you live here too?");
interpreter.sendDialogues(player, FacialExpression.OSRS_NORMAL, "Do you live here too?");
stage = 0;
return true;
}
@ -48,23 +48,23 @@ public final class DrOnglewipDialogue extends DialoguePlugin {
public boolean handle(int interfaceId, int buttonId) {
switch (stage) {
case 0:
interpreter.sendDialogues(npc, FacialExpression.HALF_GUILTY, "Oh no, I come from Gnome Stronghold. I've been", "sent here by King Narnode to learn about human", "magics.");
interpreter.sendDialogues(npc, FacialExpression.OSRS_NORMAL, "Oh no, I come from Gnome Stronghold. I've been", "sent here by King Narnode to learn about human", "magics.");
stage = 1;
break;
case 1:
interpreter.sendDialogues(player, FacialExpression.HALF_GUILTY, "So where's this Gnome Stronghold?");
interpreter.sendDialogues(player, FacialExpression.OSRS_NORMAL, "So where's this Gnome Stronghold?");
stage = 2;
break;
case 2:
interpreter.sendDialogues(npc, FacialExpression.HALF_GUILTY, "It's in the North West of the continent - a long way", "away. You should visit us there some time. The food's", "great, and the company's delightful.");
interpreter.sendDialogues(npc, FacialExpression.OSRS_NORMAL, "It's in the North West of the continent - a long way", "away. You should visit us there some time. The food's", "great, and the company's delightful.");
stage = 3;
break;
case 3:
interpreter.sendDialogues(player, FacialExpression.HALF_GUILTY, "I'll try and make time for it. Sounds like a nice place.");
interpreter.sendDialogues(player, FacialExpression.OSRS_NORMAL, "I'll try and make time for it. Sounds like a nice place.");
stage = 4;
break;
case 4:
interpreter.sendDialogues(npc, FacialExpression.HALF_GUILTY, "Well, it's full of gnomes. How much nicer could it be?");
interpreter.sendDialogues(npc, FacialExpression.OSRS_NORMAL, "Well, it's full of gnomes. How much nicer could it be?");
stage = 5;
break;
case 5:

View file

@ -156,8 +156,12 @@ public final class MissSchismDialogue extends DialoguePlugin {
stage = 23;
break;
case 23:
interpreter.sendDialogues(player, FacialExpression.HALF_GUILTY, "Well, now that I've cleared the vampire out of the manor,", "I guess you won't have to mutch trouble turning it into a", "museum.");
stage = 24;
if(player.getQuestRepository().isComplete("Vampire Slayer")) {
interpreter.sendDialogues(player, FacialExpression.HALF_GUILTY, "Well, now that I've cleared the vampire out of the manor,", "I guess you won't have to mutch trouble turning it into a", "museum.");
stage = 24;
} else {
end();
}
break;
case 24:
interpreter.sendDialogues(npc, FacialExpression.HALF_GUILTY, "That's all very well dear, but no vampire was ever going to", "stop me making it a museum.");

View file

@ -31,15 +31,15 @@ public class TakiDwarfDialogue extends DialoguePlugin {
switch (stage) {
case 0:
interpreter.sendDialogues(player, FacialExpression.HALF_GUILTY, "Hi little fellow.");
interpreter.sendDialogues(player, FacialExpression.OSRS_NORMAL, "Hi little fellow.");
stage = 1;
break;
case 1:
interpreter.sendDialogues(npc, FacialExpression.HALF_GUILTY, "What did you just say to me!?");
interpreter.sendDialogues(npc, FacialExpression.OSRS_NORMAL, "What did you just say to me!?");
stage = 2;
break;
case 2:
interpreter.sendDialogues(player, FacialExpression.HALF_GUILTY, "Arrr! nothing, nothing at all..");
interpreter.sendDialogues(player, FacialExpression.OSRS_NORMAL, "Arrr! nothing, nothing at all..");
stage = 3;
break;
case 3:
@ -59,7 +59,7 @@ public class TakiDwarfDialogue extends DialoguePlugin {
@Override
public boolean open(Object... args) {
npc = (NPC) args[0];
interpreter.sendDialogues(npc, FacialExpression.HALF_GUILTY, "Arrr!");
interpreter.sendDialogues(npc, FacialExpression.OSRS_NORMAL, "Arrr!");
stage = 0;
return true;
}

View file

@ -83,19 +83,6 @@ public final class FaladorNodePlugin extends OptionHandler {
case 2290:
player.getDialogueInterpreter().open(id, node);
return true;
case 245:
if (node.getLocation().equals(new Location(2931, 3515, 0))) {
final List<NPC> npcs = RegionManager.getLocalNpcs(player);
for (NPC n : npcs) {
if (n.getId() == 188) {
n.sendChat("Hands off zamorak's wine!");
n.getProperties().getCombatPulse().attack(player);
}
}
} else {
return PickupHandler.take(player, (GroundItem) node);
}
break;
case 5020:
player.getDialogueInterpreter().sendDialogue("You must visit Keldagrim before you are allowed to ride mine carts.");
break;

View file

@ -0,0 +1,29 @@
package plugin.interaction.city;
import org.crandor.cache.def.impl.ObjectDefinition;
import org.crandor.game.interaction.OptionHandler;
import org.crandor.game.node.Node;
import org.crandor.game.node.entity.player.Player;
import org.crandor.plugin.Plugin;
/**
* Map in RC guild/wiz tower
* @author ceik
*/
public class RCGuildMap extends OptionHandler {
@Override
public Plugin<Object> newInstance(Object arg) throws Throwable {
ObjectDefinition.forId(38422).getConfigurations().put("option:study",this);
return null;
}
@Override
public boolean handle(Player player, Node node, String option) {
if(option.equals("study")){
player.getPacketDispatch().sendMessage("A map of Gielinor.");
}
return false;
}
}

View file

@ -0,0 +1,33 @@
package plugin.interaction.city;
import org.crandor.cache.def.impl.ObjectDefinition;
import org.crandor.game.interaction.OptionHandler;
import org.crandor.game.node.Node;
import org.crandor.game.node.entity.player.Player;
import org.crandor.plugin.InitializablePlugin;
import org.crandor.plugin.Plugin;
/**
* Portal in wiz tower
* @author ceik
*/
@InitializablePlugin
public class RCGuildPortal extends OptionHandler {
@Override
public Plugin<Object> newInstance(Object arg) throws Throwable {
ObjectDefinition.forId(38279).getConfigurations().put("option:examine",this);
ObjectDefinition.forId(38279).getConfigurations().put("option:enter",this);
return null;
}
@Override
public boolean handle(Player player, Node node, String string){
if(string.equals("examine")){
player.getPacketDispatch().sendMessage("The portal to the runecrafting guild.");
}else {
player.getPacketDispatch().sendMessage("Currently under construction.");
}
return true;
}
}

View file

@ -1134,7 +1134,7 @@ public final class WizardTowerPlugin extends OptionHandler {
stage = 911;
break;
case 911:
interpreter.sendDialogues(npc, null, "or these elemental altars. This is where you and", "Aubury come into this stroy. A few weeks back,", "Aubury discovered in a standard delivery of runes", "to his store, a parchment detailing a");
interpreter.sendDialogues(npc, null, "or these elemental altars. This is where you and", "Aubury come into this story. A few weeks back,", "Aubury discovered in a standard delivery of runes", "to his store, a parchment detailing a");
stage = 912;
break;
case 912:

View file

@ -0,0 +1,24 @@
package plugin.interaction.city.falador;
import org.crandor.game.interaction.Option;
import org.crandor.game.interaction.SpecialGroundInteraction;
import org.crandor.game.interaction.SpecialGroundItems;
import org.crandor.game.node.entity.npc.NPC;
import org.crandor.game.node.entity.player.Player;
import org.crandor.game.world.map.RegionManager;
import java.util.List;
public class WineOfZamorakInteraction extends SpecialGroundInteraction {
@Override
public void handle(Player player, Option option){
player.faceLocation(SpecialGroundItems.WINE_OF_ZAMORAK.getLocation());
final List<NPC> npcs = RegionManager.getLocalNpcs(player);
for (NPC n : npcs) {
if (n.getId() == 188) {
n.sendChat("Hands off zamorak's wine!");
n.getProperties().getCombatPulse().attack(player);
}
}
}
}

View file

@ -0,0 +1,40 @@
package plugin.interaction.city.portsarim;
import org.crandor.cache.def.impl.NPCDefinition;
import org.crandor.game.content.dialogue.DialoguePlugin;
import org.crandor.game.content.dialogue.FacialExpression;
import org.crandor.game.interaction.Interaction;
import org.crandor.game.interaction.Option;
import org.crandor.game.interaction.SpecialGroundInteraction;
import org.crandor.game.interaction.SpecialGroundItems;
import org.crandor.game.node.entity.npc.NPC;
import org.crandor.game.node.entity.player.Player;
import org.crandor.game.node.item.GroundItem;
import org.crandor.game.node.item.GroundItemManager;
import org.crandor.game.node.item.Item;
import org.crandor.game.system.mysql.impl.GroundSpawnSQLHandler;
import org.crandor.game.system.task.Pulse;
import org.crandor.game.world.map.Location;
import org.crandor.plugin.InitializablePlugin;
import org.crandor.plugin.Plugin;
/**
* Handles Ahab's beer in port sarim
* @author ceik
*/
public class AhabBeerInteraction extends SpecialGroundInteraction {
//The dialogue key
public static final int DIALOGUE_KEY = 2692;
@Override
public void handle(final Player player, final Option option){
configure();
if(option.getName() == "take"){
player.faceLocation(SpecialGroundItems.AHAB_BEER.getLocation());
player.getDialogueInterpreter().open(DIALOGUE_KEY, new NPC(2692), false);
} else {
player.debug("Unhandled option: " + option.getName());
}
}
}

View file

@ -26,6 +26,11 @@ public final class EmptyOptionPlugin extends OptionHandler {
@Override
public boolean handle(Player player, Node node, String option) {
if(node.getId() == 2329){
player.getInventory().remove(new Item(2329));
player.getInventory().add(new Item(2313));
}
Consumable consumable = Consumables.forConsumable(((Item) node));
if (consumable == null) {
String name = node.getName().toLowerCase();

View file

@ -0,0 +1,84 @@
package plugin.npc.other;
import org.crandor.cache.def.impl.NPCDefinition;
import org.crandor.game.content.dialogue.DialoguePlugin;
import org.crandor.game.interaction.OptionHandler;
import org.crandor.game.node.Node;
import org.crandor.game.node.entity.npc.NPC;
import org.crandor.game.node.entity.player.Player;
import org.crandor.plugin.InitializablePlugin;
import org.crandor.plugin.Plugin;
@InitializablePlugin
public class RasoloNPC extends OptionHandler {
@Override
public Plugin<Object> newInstance(Object arg) throws Throwable {
new RosaloDialouge().init();
NPCDefinition.forId(1972).getConfigurations().put("option:talk-to",this);
NPCDefinition.forId(1972).getConfigurations().put("option:trade",this);
return null;
}
@Override
public boolean handle(Player player, Node node, String option) {
if(option.equals("trade")){
new NPC(1972).openShop(player);
} else {
player.getDialogueInterpreter().open(1972);
}
return false;
}
/**
* Rasolo npc
* @author ceik
*/
public class RosaloDialouge extends DialoguePlugin{
public RosaloDialouge(){
/**
*
*/
}
public RosaloDialouge(Player player){super(player);}
@Override
public DialoguePlugin newInstance(Player player) {
return new RosaloDialouge(player);
}
@Override
public boolean open(Object... args){
npc("Hello, would you like to see my wares?");
return true;
}
@Override
public boolean handle(int interfaceId, int buttonId) {
switch(stage){
case 0:
player.getDialogueInterpreter().sendOptions("Select one", "Yes, please", "No, thanks");
stage++;
break;
case 1:
switch(buttonId){
case 1:
end();
new NPC(1972).openShop(player);
break;
case 2:
player("No, thanks");
stage++;
break;
}
break;
case 2:
end();
break;
}
return true;
}
@Override
public int[] getIds() {return new int[] {1972};}
}
}