diff --git a/Server/server.sql b/Server/server.sql index 35ef3f624..35dcab355 100644 --- a/Server/server.sql +++ b/Server/server.sql @@ -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 */; diff --git a/Server/src/org/crandor/game/content/dialogue/DialogueInterpreter.java b/Server/src/org/crandor/game/content/dialogue/DialogueInterpreter.java index 36cc4cc69..e17b0fcf0 100644 --- a/Server/src/org/crandor/game/content/dialogue/DialogueInterpreter.java +++ b/Server/src/org/crandor/game/content/dialogue/DialogueInterpreter.java @@ -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 }; } diff --git a/Server/src/org/crandor/game/content/global/action/DoorActionHandler.java b/Server/src/org/crandor/game/content/global/action/DoorActionHandler.java index 677c8825d..0beb9881b 100644 --- a/Server/src/org/crandor/game/content/global/action/DoorActionHandler.java +++ b/Server/src/org/crandor/game/content/global/action/DoorActionHandler.java @@ -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); diff --git a/Server/src/org/crandor/game/interaction/SpecialGroundInteraction.java b/Server/src/org/crandor/game/interaction/SpecialGroundInteraction.java new file mode 100644 index 000000000..441b2f816 --- /dev/null +++ b/Server/src/org/crandor/game/interaction/SpecialGroundInteraction.java @@ -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(){ + + } +} diff --git a/Server/src/org/crandor/game/interaction/SpecialGroundItems.java b/Server/src/org/crandor/game/interaction/SpecialGroundItems.java new file mode 100644 index 000000000..fb8d9e4ae --- /dev/null +++ b/Server/src/org/crandor/game/interaction/SpecialGroundItems.java @@ -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);} +} diff --git a/Server/src/org/crandor/net/packet/in/InteractionPacket.java b/Server/src/org/crandor/net/packet/in/InteractionPacket.java index 0fd707b7e..f8ddca2b0 100644 --- a/Server/src/org/crandor/net/packet/in/InteractionPacket.java +++ b/Server/src/org/crandor/net/packet/in/InteractionPacket.java @@ -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; diff --git a/Server/src/plugin/activity/mta/TelekineticGrabSpell.java b/Server/src/plugin/activity/mta/TelekineticGrabSpell.java index 41d55a43f..2f9cfc356 100644 --- a/Server/src/plugin/activity/mta/TelekineticGrabSpell.java +++ b/Server/src/plugin/activity/mta/TelekineticGrabSpell.java @@ -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; } diff --git a/Server/src/plugin/dialogue/AhabDialogue.java b/Server/src/plugin/dialogue/AhabDialogue.java index 36fa85bb3..3eb58e45d 100644 --- a/Server/src/plugin/dialogue/AhabDialogue.java +++ b/Server/src/plugin/dialogue/AhabDialogue.java @@ -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; } diff --git a/Server/src/plugin/dialogue/DrOnglewipDialogue.java b/Server/src/plugin/dialogue/DrOnglewipDialogue.java index 4fbc7f779..afa6419ed 100644 --- a/Server/src/plugin/dialogue/DrOnglewipDialogue.java +++ b/Server/src/plugin/dialogue/DrOnglewipDialogue.java @@ -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: diff --git a/Server/src/plugin/dialogue/MissSchismDialogue.java b/Server/src/plugin/dialogue/MissSchismDialogue.java index e0e22ac23..0cb1d1bcd 100644 --- a/Server/src/plugin/dialogue/MissSchismDialogue.java +++ b/Server/src/plugin/dialogue/MissSchismDialogue.java @@ -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."); diff --git a/Server/src/plugin/dialogue/TakiDwarfDialogue.java b/Server/src/plugin/dialogue/TakiDwarfDialogue.java index a5fe54041..a4f8c8be8 100644 --- a/Server/src/plugin/dialogue/TakiDwarfDialogue.java +++ b/Server/src/plugin/dialogue/TakiDwarfDialogue.java @@ -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; } diff --git a/Server/src/plugin/interaction/city/FaladorNodePlugin.java b/Server/src/plugin/interaction/city/FaladorNodePlugin.java index 963196537..08ec5fa44 100644 --- a/Server/src/plugin/interaction/city/FaladorNodePlugin.java +++ b/Server/src/plugin/interaction/city/FaladorNodePlugin.java @@ -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 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; diff --git a/Server/src/plugin/interaction/city/RCGuildMap.java b/Server/src/plugin/interaction/city/RCGuildMap.java new file mode 100644 index 000000000..6645ed161 --- /dev/null +++ b/Server/src/plugin/interaction/city/RCGuildMap.java @@ -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 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; + } +} diff --git a/Server/src/plugin/interaction/city/RCGuildPortal.java b/Server/src/plugin/interaction/city/RCGuildPortal.java new file mode 100644 index 000000000..b86787320 --- /dev/null +++ b/Server/src/plugin/interaction/city/RCGuildPortal.java @@ -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 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; + } +} diff --git a/Server/src/plugin/interaction/city/WizardTowerPlugin.java b/Server/src/plugin/interaction/city/WizardTowerPlugin.java index 7cf35caec..429b6247d 100644 --- a/Server/src/plugin/interaction/city/WizardTowerPlugin.java +++ b/Server/src/plugin/interaction/city/WizardTowerPlugin.java @@ -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: diff --git a/Server/src/plugin/interaction/city/falador/WineOfZamorakInteraction.java b/Server/src/plugin/interaction/city/falador/WineOfZamorakInteraction.java new file mode 100644 index 000000000..f41405b84 --- /dev/null +++ b/Server/src/plugin/interaction/city/falador/WineOfZamorakInteraction.java @@ -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 npcs = RegionManager.getLocalNpcs(player); + for (NPC n : npcs) { + if (n.getId() == 188) { + n.sendChat("Hands off zamorak's wine!"); + n.getProperties().getCombatPulse().attack(player); + } + } + } +} diff --git a/Server/src/plugin/interaction/city/portsarim/AhabBeerInteraction.java b/Server/src/plugin/interaction/city/portsarim/AhabBeerInteraction.java new file mode 100644 index 000000000..b3cc81853 --- /dev/null +++ b/Server/src/plugin/interaction/city/portsarim/AhabBeerInteraction.java @@ -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()); + } + } +} diff --git a/Server/src/plugin/interaction/item/EmptyOptionPlugin.java b/Server/src/plugin/interaction/item/EmptyOptionPlugin.java index 001e1862e..3a7414ff8 100644 --- a/Server/src/plugin/interaction/item/EmptyOptionPlugin.java +++ b/Server/src/plugin/interaction/item/EmptyOptionPlugin.java @@ -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(); diff --git a/Server/src/plugin/npc/other/RasoloNPC.java b/Server/src/plugin/npc/other/RasoloNPC.java new file mode 100644 index 000000000..dc7b63a86 --- /dev/null +++ b/Server/src/plugin/npc/other/RasoloNPC.java @@ -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 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};} + } +}