mirror of
https://github.com/2006-Scape/apollo.git
synced 2026-07-05 00:38:14 +00:00
Housekeeping
This commit is contained in:
@@ -0,0 +1,89 @@
|
||||
# Generic npcs
|
||||
|
||||
spawn_npc name: :man, x: 3276, y: 3186
|
||||
spawn_npc name: :man, x: 3282, y: 3197
|
||||
spawn_npc name: :man_3, x: 3301, y: 3200
|
||||
spawn_npc name: :man_3, x: 3300, y: 3208
|
||||
spawn_npc name: :man_2, x: 3297, y: 3196
|
||||
spawn_npc name: :man_16, x: 3294, y: 3204
|
||||
spawn_npc name: :spider_61, x: 3319, y: 3145
|
||||
spawn_npc name: :spider_61, x: 3319, y: 3140
|
||||
spawn_npc name: :spider_61, x: 3323, y: 3138
|
||||
spawn_npc name: :scorpion, x: 3282, y: 3149
|
||||
|
||||
# Camels
|
||||
spawn_npc name: :cam_the_camel, x: 3295, y: 3232
|
||||
spawn_npc name: :elly_the_camel, x: 3312, y: 3210
|
||||
spawn_npc name: :camel, x: 3285, y: 3198
|
||||
spawn_npc name: :ollie_the_camel, x: 3291, y: 3209
|
||||
spawn_npc name: :al_the_camel, x: 3275, y: 3162
|
||||
|
||||
# Quest npc
|
||||
spawn_npc name: :osman, x: 3286, y: 3180, face: :east
|
||||
spawn_npc name: :hassan, x: 3302, y: 3163
|
||||
spawn_npc name: :father_reen, x: 3272, y: 3158
|
||||
spawn_npc name: :man_663, x: 3297, y: 3287
|
||||
|
||||
# Boarder guards
|
||||
|
||||
spawn_npc name: 'border_guard', x: 3268, y: 3226, face: :north
|
||||
spawn_npc name: 'border_guard', x: 3267, y: 3226, face: :north
|
||||
spawn_npc name: 'border_guard', x: 3268, y: 3229, face: :south
|
||||
spawn_npc name: 'border_guard', x: 3267, y: 3229, face: :south
|
||||
|
||||
# Palace guards
|
||||
|
||||
spawn_npc name: 'Al-Kharid warrior', x: 3285, y: 3174
|
||||
spawn_npc name: 'Al-Kharid warrior', x: 3283, y: 3168
|
||||
spawn_npc name: 'Al-Kharid warrior', x: 3285, y: 3169
|
||||
spawn_npc name: 'Al-Kharid warrior', x: 3290, y: 3162
|
||||
spawn_npc name: 'Al-Kharid warrior', x: 3295, y: 3162
|
||||
spawn_npc name: 'Al-Kharid warrior', x: 3295, y: 3170
|
||||
spawn_npc name: 'Al-Kharid warrior', x: 3300, y: 3175
|
||||
spawn_npc name: 'Al-Kharid warrior', x: 3300, y: 3171
|
||||
spawn_npc name: 'Al-Kharid warrior', x: 3301, y: 3168
|
||||
|
||||
# Shanty pass
|
||||
spawn_npc name: :shantay_guard, x: 3301, y: 3120
|
||||
spawn_npc name: :shantay_guard, x: 3302, y: 3126
|
||||
spawn_npc name: :shantay_guard, x: 3306, y: 3126
|
||||
spawn_npc name: :shantay_guard_838, x: 3303, y: 3118, face: :north
|
||||
|
||||
# Mine
|
||||
|
||||
spawn_npc name: :scorpion, x: 3296, y: 3294
|
||||
spawn_npc name: :scorpion, x: 3298, y: 3280
|
||||
spawn_npc name: :scorpion, x: 3299, y: 3299
|
||||
spawn_npc name: :scorpion, x: 3299, y: 3309
|
||||
spawn_npc name: :scorpion, x: 3300, y: 3287
|
||||
spawn_npc name: :scorpion, x: 3300, y: 3315
|
||||
spawn_npc name: :scorpion, x: 3301, y: 3305
|
||||
spawn_npc name: :scorpion, x: 3301, y: 3312
|
||||
|
||||
# Functional npcs
|
||||
|
||||
spawn_npc name: :gnome_pilot, x: 3279, y: 3213
|
||||
|
||||
spawn_npc name: :banker_496, x: 3267, y: 3164, face: :east
|
||||
spawn_npc name: :banker_497, x: 3267, y: 3166, face: :east
|
||||
spawn_npc name: :banker_496, x: 3267, y: 3167, face: :east
|
||||
spawn_npc name: :banker_497, x: 3267, y: 3168, face: :east
|
||||
spawn_npc name: :banker_496, x: 3267, y: 3169, face: :east
|
||||
|
||||
spawn_npc name: :gem_trader, x: 3287, y: 3210
|
||||
spawn_npc name: :zeke, x: 3289, y: 3189
|
||||
spawn_npc name: :shantay, x: 3304, y: 3124
|
||||
|
||||
spawn_npc name: :rug_merchant_2296, x: 3311, y: 3109, face: :west
|
||||
spawn_npc name: :ranael, x: 3315, y: 3163, face: :north
|
||||
|
||||
spawn_npc name: :shop_assistant_525, x: 3315, y: 3178, face: :north
|
||||
spawn_npc name: :shop_keeper_524, x: 3315, y: 3180, face: :west
|
||||
spawn_npc name: :louie_legs, x: 3316, y: 3175, face: :west
|
||||
spawn_npc name: :ellis, x: 3274, y: 3192
|
||||
spawn_npc name: :dommik, x: 3321, y: 3193
|
||||
|
||||
spawn_npc name: :tool_leprechaun, x: 3319, y: 3204
|
||||
spawn_npc name: :ali_morrisane, x: 3304, y: 3211, face: :east
|
||||
spawn_npc name: :silk_trader, x: 3300, y: 3203
|
||||
spawn_npc name: :karim, x: 3273, y: 3180
|
||||
@@ -0,0 +1,16 @@
|
||||
<?xml version="1.0"?>
|
||||
<plugin>
|
||||
<id>location-al-kharid</id>
|
||||
<version>0.1</version>
|
||||
<name>Al-Kharid</name>
|
||||
<description>Adds functionality to Al-Kharid.</description>
|
||||
<authors>
|
||||
<author>Major</author>
|
||||
</authors>
|
||||
<scripts>
|
||||
<script>npcs.rb</script>
|
||||
</scripts>
|
||||
<dependencies>
|
||||
<dependency>entity-spawning</dependency>
|
||||
</dependencies>
|
||||
</plugin>
|
||||
@@ -0,0 +1,45 @@
|
||||
# Generic npcs
|
||||
|
||||
spawn_npc name: :man, x: 3095, y: 3508
|
||||
spawn_npc name: :man, x: 3095, y: 3511
|
||||
spawn_npc name: :man, x: 3098, y: 3509
|
||||
spawn_npc name: :man_2, x: 3093, y: 3511
|
||||
spawn_npc name: :man_3, x: 3097, y: 3508
|
||||
spawn_npc name: :man_3, x: 3092, y: 3508
|
||||
spawn_npc name: :man_3, x: 3097, y: 3512
|
||||
|
||||
spawn_npc name: :guard, x: 3086, y: 3516
|
||||
spawn_npc name: :guard, x: 3094, y: 3518
|
||||
spawn_npc name: :guard, x: 3108, y: 3514
|
||||
spawn_npc name: :guard, x: 3110, y: 3514
|
||||
spawn_npc name: :guard, x: 3113, y: 3514
|
||||
spawn_npc name: :guard, x: 3113, y: 3516
|
||||
|
||||
spawn_npc name: :sheep_43, x: 3050, y: 3516
|
||||
spawn_npc name: :sheep_43, x: 3051, y: 3514
|
||||
spawn_npc name: :sheep_43, x: 3056, y: 3517
|
||||
spawn_npc name: :ram_3673, x: 3048, y: 3515
|
||||
|
||||
spawn_npc name: :monk, x: 3044, y: 3491
|
||||
spawn_npc name: :monk, x: 3045, y: 3483
|
||||
spawn_npc name: :monk, x: 3045, y: 3497
|
||||
spawn_npc name: :monk, x: 3050, y: 3490
|
||||
spawn_npc name: :monk, x: 3054, y: 3490
|
||||
spawn_npc name: :monk, x: 3058, y: 3497
|
||||
|
||||
# Functional npcs
|
||||
|
||||
spawn_npc name: :richard, x: 3098, y: 3516
|
||||
spawn_npc name: :doris, x: 3079, y: 3491
|
||||
spawn_npc name: :brother_jered, x: 3045, y: 3488
|
||||
spawn_npc name: :brother_althric, x: 3054, y: 3504
|
||||
spawn_npc name: :abbot_langley, x: 3059, y: 3484
|
||||
spawn_npc name: :oziach, x: 3067, y: 3518, face: :east
|
||||
spawn_npc name: :shop_keeper_528, x: 3079, y: 3509
|
||||
spawn_npc name: :shop_assistant_529, x: 3082, y: 3513
|
||||
|
||||
spawn_npc name: :banker, x: 3096, y: 3489, face: :west
|
||||
spawn_npc name: :banker_495, x: 3096, y: 3491, face: :west
|
||||
spawn_npc name: :banker_495, x: 3096, y: 3492, face: :north
|
||||
spawn_npc name: :banker, x: 3098, y: 3492, face: :north
|
||||
spawn_npc name: :mage_of_zamorak, x: 3106, y: 3560
|
||||
@@ -0,0 +1,17 @@
|
||||
<?xml version="1.0"?>
|
||||
<plugin>
|
||||
<id>location-edgeville</id>
|
||||
<version>0.1</version>
|
||||
<name>Edgeville</name>
|
||||
<description>Adds functionality to Edgeville.</description>
|
||||
<authors>
|
||||
<author>xEliqa</author>
|
||||
<author>Major</author>
|
||||
</authors>
|
||||
<scripts>
|
||||
<script>npcs.rb</script>
|
||||
</scripts>
|
||||
<dependencies>
|
||||
<dependency>entity-spawning</dependency>
|
||||
</dependencies>
|
||||
</plugin>
|
||||
@@ -0,0 +1,157 @@
|
||||
# Generic npcs
|
||||
|
||||
spawn_npc name: :chicken, x: 2965, y: 3345
|
||||
|
||||
spawn_npc name: :duck, x: 2988, y: 3383
|
||||
spawn_npc name: :duck, x: 2992, y: 3383
|
||||
spawn_npc name: :duck, x: 2993, y: 3385
|
||||
|
||||
spawn_npc name: :drunken_man, x: 2957, y: 3368, z: 1
|
||||
|
||||
spawn_npc name: :dwarf_118, x: 3023, y: 3334
|
||||
spawn_npc name: :dwarf_118, x: 3027, y: 3341
|
||||
spawn_npc name: :dwarf_118, x: 3012, y: 3341
|
||||
spawn_npc name: :dwarf_118, x: 3017, y: 3346, z: 1
|
||||
spawn_npc name: :dwarf_118, x: 3011, y: 3341, z: 1
|
||||
|
||||
spawn_npc name: :dwarf_121, x: 3027, y: 3341
|
||||
spawn_npc name: :dwarf_382, x: 3017, y: 3340
|
||||
spawn_npc name: :dwarf_3294, x: 3022, y: 3338
|
||||
spawn_npc name: :dwarf_3295, x: 3021, y: 3341
|
||||
|
||||
spawn_npc name: :gardener, x: 2998, y: 3385
|
||||
spawn_npc name: :gardener, x: 3019, y: 3369
|
||||
spawn_npc name: :gardener_3234, x: 3016, y: 3386
|
||||
|
||||
spawn_npc name: :guard, x: 2965, y: 3394
|
||||
spawn_npc name: :guard, x: 2964, y: 3396
|
||||
spawn_npc name: :guard, x: 2966, y: 3397
|
||||
spawn_npc name: :guard, x: 2964, y: 3384
|
||||
spawn_npc name: :guard, x: 2963, y: 3380
|
||||
spawn_npc name: :guard, x: 3006, y: 3325
|
||||
spawn_npc name: :guard, x: 3008, y: 3320
|
||||
spawn_npc name: :guard, x: 3006, y: 3322
|
||||
spawn_npc name: :guard, x: 3038, y: 3356
|
||||
|
||||
spawn_npc name: :guard_10, x: 2942, y: 3375
|
||||
spawn_npc name: :guard_10, x: 3040, y: 3352
|
||||
|
||||
spawn_npc name: :guard_3230, x: 2967, y: 3395
|
||||
spawn_npc name: :guard_3230, x: 2966, y: 3392
|
||||
spawn_npc name: :guard_3230, x: 2963, y: 3376
|
||||
spawn_npc name: :guard_3230, x: 2954, y: 3382
|
||||
spawn_npc name: :guard_3231, x: 2950, y: 3377
|
||||
spawn_npc name: :guard_3231, x: 2968, y: 3381
|
||||
|
||||
spawn_npc name: :guard_3231, x: 3033, y: 3389, z: 1
|
||||
spawn_npc name: :guard_3231, x: 3041, y: 3388, z: 1
|
||||
spawn_npc name: :guard_3231, x: 3048, y: 3389, z: 1
|
||||
spawn_npc name: :guard_3231, x: 3056, y: 3389, z: 1
|
||||
spawn_npc name: :guard_3231, x: 3062, y: 3386, z: 1
|
||||
spawn_npc name: :guard_3231, x: 3058, y: 3329, z: 1
|
||||
spawn_npc name: :guard_3231, x: 3050, y: 3329, z: 1
|
||||
spawn_npc name: :guard_3231, x: 3038, y: 3329, z: 1
|
||||
spawn_npc name: :guard_3231, x: 3029, y: 3329, z: 1
|
||||
|
||||
spawn_npc name: :swan, x: 2960, y: 3359
|
||||
spawn_npc name: :swan, x: 2963, y: 3360
|
||||
spawn_npc name: :swan, x: 2968, y: 3359
|
||||
spawn_npc name: :swan, x: 2971, y: 3360
|
||||
spawn_npc name: :swan, x: 2976, y: 3358
|
||||
spawn_npc name: :swan, x: 2989, y: 3384
|
||||
|
||||
spawn_npc name: :man_3223, x: 2991, y: 3365
|
||||
spawn_npc name: :man_3225, x: 3037, y: 3345, z: 1
|
||||
|
||||
spawn_npc name: :white_knight, x: 2983, y: 3343
|
||||
spawn_npc name: :white_knight, x: 2981, y: 3334
|
||||
spawn_npc name: :white_knight, x: 2988, y: 3335
|
||||
spawn_npc name: :white_knight, x: 2996, y: 3342
|
||||
spawn_npc name: :white_knight, x: 2960, y: 3340
|
||||
spawn_npc name: :white_knight, x: 2962, y: 3336
|
||||
spawn_npc name: :white_knight, x: 2974, y: 3342
|
||||
spawn_npc name: :white_knight, x: 2972, y: 3345
|
||||
spawn_npc name: :white_knight, x: 2977, y: 3348
|
||||
|
||||
spawn_npc name: :white_knight_3348, x: 2971, y: 3340
|
||||
spawn_npc name: :white_knight_3348, x: 2978, y: 3350
|
||||
|
||||
spawn_npc name: :white_knight, x: 2964, y: 3330, z: 1
|
||||
spawn_npc name: :white_knight, x: 2968, y: 3334, z: 1
|
||||
spawn_npc name: :white_knight, x: 2969, y: 3339, z: 1
|
||||
spawn_npc name: :white_knight, x: 2978, y: 3332, z: 1
|
||||
spawn_npc name: :white_knight, x: 2958, y: 3340, z: 1
|
||||
spawn_npc name: :white_knight, x: 2960, y: 3343, z: 1
|
||||
|
||||
spawn_npc name: :white_knight_3348, x: 2987, y: 3334, z: 1
|
||||
spawn_npc name: :white_knight_3348, x: 2983, y: 3336, z: 1
|
||||
spawn_npc name: :white_knight_3348, x: 2987, y: 3334, z: 1
|
||||
spawn_npc name: :white_knight_3348, x: 2979, y: 3348, z: 1
|
||||
spawn_npc name: :white_knight_3348, x: 2964, y: 3337, z: 1
|
||||
|
||||
spawn_npc name: :white_knight_3349, x: 2989, y: 3344, z: 1
|
||||
|
||||
spawn_npc name: :white_knight, x: 2985, y: 3342, z: 2
|
||||
spawn_npc name: :white_knight_3348, x: 2979, y: 3348, z: 2
|
||||
spawn_npc name: :white_knight_3348, x: 2974, y: 3329, z: 2
|
||||
spawn_npc name: :white_knight_3348, x: 2982, y: 3341, z: 2
|
||||
|
||||
spawn_npc name: :white_knight_3349, x: 2990, y: 3341, z: 2
|
||||
spawn_npc name: :white_knight_3349, x: 2971, y: 3330, z: 2
|
||||
spawn_npc name: :white_knight_3349, x: 2965, y: 3350, z: 2
|
||||
spawn_npc name: :white_knight_3349, x: 2965, y: 3329, z: 2
|
||||
|
||||
spawn_npc name: :white_knight_3350, x: 2961, y: 3347, z: 2
|
||||
|
||||
spawn_npc name: :white_knight_3349, x: 2962, y: 3339, z: 3
|
||||
|
||||
spawn_npc name: :white_knight_3350, x: 2960, y: 3336, z: 3
|
||||
spawn_npc name: :white_knight_3350, x: 2984, y: 3349, z: 3
|
||||
|
||||
spawn_npc name: :woman_3226, x: 2991, y: 3384
|
||||
|
||||
# Functional npcs
|
||||
|
||||
spawn_npc name: :apprentice_workman_3235, x: 2971, y: 3369, z: 1
|
||||
|
||||
spawn_npc name: :banker_495, x: 2945, y: 3366, face: :north
|
||||
spawn_npc name: :banker_495, x: 2946, y: 3366, face: :north
|
||||
spawn_npc name: :banker_495, x: 2947, y: 3366, face: :north
|
||||
spawn_npc name: :banker_495, x: 2948, y: 3366, face: :north
|
||||
|
||||
spawn_npc name: :banker, x: 2949, y: 3366, face: :north
|
||||
spawn_npc name: :banker, x: 3015, y: 3353, face: :north
|
||||
spawn_npc name: :banker, x: 3014, y: 3353, face: :north
|
||||
spawn_npc name: :banker, x: 3013, y: 3353, face: :north
|
||||
spawn_npc name: :banker, x: 3012, y: 3353, face: :north
|
||||
spawn_npc name: :banker, x: 3011, y: 3353, face: :north
|
||||
spawn_npc name: :banker, x: 3010, y: 3353, face: :north
|
||||
|
||||
spawn_npc name: :cassie, x: 2976, y: 3383
|
||||
spawn_npc name: :emily, x: 2954, y: 3372
|
||||
spawn_npc name: :flynn, x: 2950, y: 3387
|
||||
|
||||
spawn_npc name: :hairdresser, x: 2944, y: 3380
|
||||
|
||||
spawn_npc name: :herquin, x: 2945, y: 3335
|
||||
|
||||
spawn_npc name: :heskel, x: 3007, y: 3374
|
||||
spawn_npc name: :kaylee, x: 2957, y: 3372
|
||||
|
||||
spawn_npc name: :tina, x: 2955, y: 3371, z: 1
|
||||
spawn_npc name: :tool_leprechaun, x: 3005, y: 3370
|
||||
|
||||
spawn_npc name: :squire, x: 2977, y: 3343
|
||||
spawn_npc name: :sir_tiffy_cashien, x: 2997, y: 3373, face: :north
|
||||
spawn_npc name: :sir_amik_varze, x: 2960, y: 3336, z: 2
|
||||
spawn_npc name: :sir_vyvin, x: 2983, y: 3335, z: 2
|
||||
|
||||
spawn_npc name: :shop_asssistant_525, x: 2955, y: 3389
|
||||
spawn_npc name: :shop_keeper_524, x: 2957, y: 3387
|
||||
|
||||
spawn_npc name: :wayne, x: 2972, y: 3312
|
||||
|
||||
spawn_npc name: :workman_3236, x: 2975, y: 3369, z: 1
|
||||
|
||||
spawn_npc name: :wyson_the_gardener, x: 3028, y: 3381
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
<?xml version="1.0"?>
|
||||
<plugin>
|
||||
<id>location-falador</id>
|
||||
<version>0.1</version>
|
||||
<name>Falador</name>
|
||||
<description>Adds functionality to Falador.</description>
|
||||
<authors>
|
||||
<author>Wizard Jesse</author>
|
||||
</authors>
|
||||
<scripts>
|
||||
<script>npcs.rb</script>
|
||||
</scripts>
|
||||
<dependencies>
|
||||
<dependency>entity-spawning</dependency>
|
||||
</dependencies>
|
||||
</plugin>
|
||||
@@ -0,0 +1,16 @@
|
||||
|
||||
# Generic npcs
|
||||
|
||||
spawn_npc name: :woman_4, x: 3232, y: 3207 # southernmost house
|
||||
spawn_npc name: :man_1, x: 3231, y: 3237 # house by willow tree
|
||||
spawn_npc name: :man_2, x: 3224, y: 3240 # house by willow tree
|
||||
spawn_npc name: :woman_5, x: 3229, y: 2329 # house by willow tree
|
||||
|
||||
# Functional npcs
|
||||
|
||||
spawn_npc name: :hans, x: 3221, y: 3221
|
||||
spawn_npc name: :father_aereck, x: 3243, y: 3210
|
||||
spawn_npc name: :bob, x: 3231, y: 3203
|
||||
spawn_npc name: :shop_keeper, x: 3212, y: 3247
|
||||
spawn_npc name: :shop_assistant, x: 3211, y: 3245
|
||||
spawn_npc name: :lumbridge_guide, x: 3232, y: 3229
|
||||
@@ -0,0 +1,16 @@
|
||||
<?xml version="1.0"?>
|
||||
<plugin>
|
||||
<id>location-lumbridge</id>
|
||||
<version>0.1</version>
|
||||
<name>Lumbridge</name>
|
||||
<description>Adds functionality to Lumbridge.</description>
|
||||
<authors>
|
||||
<author>Major</author>
|
||||
</authors>
|
||||
<scripts>
|
||||
<script>npcs.rb</script>
|
||||
</scripts>
|
||||
<dependencies>
|
||||
<dependency>entity-spawning</dependency>
|
||||
</dependencies>
|
||||
</plugin>
|
||||
@@ -0,0 +1,158 @@
|
||||
require 'java'
|
||||
|
||||
java_import 'org.apollo.game.message.impl.HintIconMessage'
|
||||
java_import 'org.apollo.game.message.impl.MobHintIconMessage'
|
||||
java_import 'org.apollo.game.message.impl.PositionHintIconMessage'
|
||||
java_import 'org.apollo.game.message.impl.SwitchTabInterfaceMessage'
|
||||
java_import 'org.apollo.game.model.entity.EntityType'
|
||||
java_import 'org.apollo.game.model.Position'
|
||||
|
||||
private
|
||||
|
||||
# Contains constants used during the Runescape Guide part of Tutorial Island.
|
||||
module GuideConstants
|
||||
|
||||
# The Runescape Guide Npc.
|
||||
RUNESCAPE_GUIDE = spawn_npc name: :runescape_guide, x: 3093, y: 3107
|
||||
|
||||
# The character design interface id.
|
||||
CHARACTER_DESIGN_INTERFACE = 3559
|
||||
|
||||
# The id of the door of the house new players spawn in.
|
||||
DOOR_ID = 3014
|
||||
|
||||
# The Position of the door of the house new players spawn in.
|
||||
DOOR_POSITION = Position.new(3098, 3107)
|
||||
|
||||
# The HintIconMessage sent to display a hint arrow above the door of the house new players spawn
|
||||
# in.
|
||||
DOOR_HINT = PositionHintIconMessage.new(HintIconMessage::Type::WEST, DOOR_POSITION, 120)
|
||||
|
||||
# The ids of tabs that are displayed when the player has yet to start the tutorial.
|
||||
INITIAL_TABS = [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2449, 904, -1, -1].freeze
|
||||
|
||||
# The HintIconMessage sent to remove a hint arrow from above the door.
|
||||
RESET_DOOR_HINT = PositionHintIconMessage.reset
|
||||
|
||||
# The HintIconMessage sent to remove a hint arrow from an Npc.
|
||||
RESET_NPC_HINT = MobHintIconMessage.reset(EntityType::NPC)
|
||||
|
||||
end
|
||||
|
||||
# Sends the appropriate data to the client when the player logs in to the game.
|
||||
on :login do |_event, player|
|
||||
if player.in_tutorial_island && player.privilege_level != RIGHTS_ADMIN
|
||||
TutorialInstructions.show_instruction(player)
|
||||
|
||||
GuideConstants::INITIAL_TABS.each_with_index do |tab, index|
|
||||
player.send(SwitchTabInterfaceMessage.new(index, tab))
|
||||
end
|
||||
|
||||
if player.tutorial_island_progress == :not_started
|
||||
player.interface_set.open_window(GuideConstants::CHARACTER_DESIGN_INTERFACE)
|
||||
player.send(MobHintIconMessage.create(GuideConstants::RUNESCAPE_GUIDE))
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
# The conversation with the Runescape Guide, when on tutorial island.
|
||||
conversation :tutorial_runescape_guide do
|
||||
|
||||
# The first dialogue of the Runescape Guide, greeting the Player.
|
||||
dialogue :greetings do
|
||||
type :npc_speech
|
||||
npc :runescape_guide
|
||||
emote :calm
|
||||
|
||||
precondition { |player| player.tutorial_island_progress == :not_started }
|
||||
|
||||
text 'Greetings! I see you are a new arrival to this land. My job is to welcome all new '\
|
||||
'visitors. So welcome!'
|
||||
|
||||
continue dialogue: :talk_to_people do |player|
|
||||
player.tutorial_island_progress = :talk_to_people
|
||||
end
|
||||
end
|
||||
|
||||
# The Guide welcomes back the Player if they speak to him after they have already gone through
|
||||
# the conversation once.
|
||||
dialogue :welcome_back do
|
||||
type :npc_speech
|
||||
npc :runescape_guide
|
||||
emote :calm
|
||||
|
||||
precondition { |player| player.tutorial_island_progress != :not_started }
|
||||
|
||||
text 'Welcome back.'
|
||||
|
||||
continue dialogue: :talk_to_people
|
||||
end
|
||||
|
||||
# The Guide tells Players to speak to people in order to succeed.
|
||||
dialogue :talk_to_people do
|
||||
type :npc_speech
|
||||
npc :runescape_guide
|
||||
emote :calm
|
||||
|
||||
text 'You have already learned the first thing you need to succeed in this world: talking to '\
|
||||
'people!',
|
||||
'You will find many inhabitants of this world have useful things to say to you. By '\
|
||||
'clicking on them with your mouse you can talk to them.',
|
||||
'I would also suggest reading through some of the supporting information on the website.'\
|
||||
' There you can find maps, a bestiary, and much more.'
|
||||
|
||||
continue dialogue: :go_through_door
|
||||
end
|
||||
|
||||
# The Guide tells Players to go through the door, advancing the tutorial progress if this is the
|
||||
# first time the Player has heard this.
|
||||
dialogue :go_through_door do
|
||||
type :npc_speech
|
||||
npc :runescape_guide
|
||||
emote :calm
|
||||
|
||||
text 'To continue the tutorial go through that door over there, and speak to your first '\
|
||||
'instructor.'
|
||||
|
||||
close do |player|
|
||||
if player.tutorial_island_progress < :runescape_guide_finished
|
||||
player.send(GuideConstants::RESET_NPC_HINT)
|
||||
|
||||
player.send(GuideConstants::DOOR_HINT)
|
||||
player.tutorial_island_progress = :runescape_guide_finished
|
||||
end
|
||||
|
||||
TutorialInstructions.show_instruction(player)
|
||||
end
|
||||
end
|
||||
|
||||
# The dialogue displayed if the player attempts to leave the Runescape Guide's house before they
|
||||
# have spoken to him.
|
||||
dialogue :talk_to_guide do
|
||||
type :text
|
||||
|
||||
text 'You need to talk to the Runescape Guide before you are allowed to proceed through this '\
|
||||
'door.'
|
||||
|
||||
close do |player|
|
||||
TutorialInstructions.show_instruction(player)
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
on :open_door do |event, player|
|
||||
door = event.door
|
||||
|
||||
if player.in_tutorial_island && door.position.equals(GuideConstants::DOOR_POSITION)
|
||||
if player.tutorial_island_progress < :runescape_guide_finished
|
||||
send_dialogue(player, get_dialogue(:tutorial_runescape_guide, :talk_to_guide))
|
||||
event.terminate
|
||||
elsif player.tutorial_island_progress == :runescape_guide_finished
|
||||
player.tutorial_island_progress = :moving_around
|
||||
player.send(GuideConstants::RESET_DOOR_HINT)
|
||||
TutorialInstructions.show_instruction(player)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -0,0 +1,141 @@
|
||||
|
||||
|
||||
# Contains members related to the instructions issues during tutorial island.
|
||||
module TutorialInstructions
|
||||
|
||||
# Sends the appropriate instruction to the player.
|
||||
def self.show_instruction(player)
|
||||
instructions = CONVERSATIONS[:tutorial_island_instructions]
|
||||
progress = player.tutorial_island_progress.name
|
||||
name = case progress
|
||||
# The Runescape Guide instructions.
|
||||
when :not_started then :getting_started
|
||||
when :runescape_guide_finished then :scenery
|
||||
when :moving_around then :moving_around
|
||||
|
||||
# The Survival Guide instructions.
|
||||
when :given_axe then :viewing_items
|
||||
when :cut_tree then :cut_tree
|
||||
when :cutting_tree then :please_wait
|
||||
|
||||
else raise "No dialogue for current stage #{progress} exists."
|
||||
end
|
||||
|
||||
dialogue = instructions.part(name)
|
||||
send_dialogue(player, dialogue)
|
||||
end
|
||||
|
||||
# The one-sided 'conversation' of instruction instructions.
|
||||
conversation :tutorial_island_instructions do
|
||||
|
||||
# The initial instruction displayed when the player logs in, before they have spoken to the
|
||||
# guide.
|
||||
dialogue :getting_started do
|
||||
type :text
|
||||
|
||||
title 'Getting started'
|
||||
text 'To start the tutorial, use your left mouse button to click on the Runescape Guide in '\
|
||||
'this room. He is indicated by a flashing yellow arrow above his head. If you can\'t '\
|
||||
'see him, use your keyboard\'s arrow keys to rotate the view.'
|
||||
end
|
||||
|
||||
# The instruction displayed after the player has spoken to the Runescape Guide.
|
||||
dialogue :scenery do
|
||||
type :text
|
||||
|
||||
title 'Interacting with scenery'
|
||||
text 'You can interact with many items of the scenery by simply clicking on them. Right '\
|
||||
'clicking will also give more options. Click on the door indicated with the yellow '\
|
||||
'arrow to go through to the next area and speak with your next instructor.'
|
||||
end
|
||||
|
||||
|
||||
# The instruction displayed after the player has left the initial building.
|
||||
dialogue :moving_around do
|
||||
type :text
|
||||
|
||||
title 'Moving around'
|
||||
text 'Follow the path to find the next instructor. Clicking on the ground will walk you to '\
|
||||
'that point. Talk to the survival expert by the pond to continue the tutorial. '\
|
||||
'Remember you can rotate the view by pressing the arrow keys.'
|
||||
end
|
||||
|
||||
# The instruction displayed after the player has been given the tinderbox and bronze axe by the
|
||||
# Survival Guide.
|
||||
dialogue :viewing_items do
|
||||
type :text
|
||||
|
||||
title 'Viewing the items you were given'
|
||||
text 'Click on the flashing backpack icon to the right side of the main window to view your '\
|
||||
'inventory. Your inventory is a list of everything you have in your backpack.'
|
||||
end
|
||||
|
||||
# The instruction displayed if the player tries to cut a tree before having the axe.
|
||||
dialogue :try_cut_tree do
|
||||
type :text
|
||||
|
||||
title 'Follow the guide\'s instructions'
|
||||
text 'You cannot cut down this tree, you must first follow the guide\'s instructions.'
|
||||
end
|
||||
|
||||
# The instruction displayed before the player has begun to cut the tree.
|
||||
dialogue :cut_tree do
|
||||
type :text
|
||||
|
||||
title 'Cut down a tree'
|
||||
text 'You can click on the backpack icon at any time to view the items that you currently '\
|
||||
'have in your inventory. You will see that you now have an axe in your inventory. '\
|
||||
'Use this to get some logs by clicking on the indicated tree.'
|
||||
end
|
||||
|
||||
# The instruction displayed when the player begins to cut the tree.
|
||||
dialogue :please_wait do
|
||||
type :text
|
||||
|
||||
title 'Please wait...'
|
||||
text 'Your character is now attempting to cut down the tree. Sit back for a moment whilst '\
|
||||
'he does all the hard work.' # TODO: she instead of he if applicable
|
||||
end
|
||||
|
||||
# The instruction displayed after the player has successfully cut logs from the tree.
|
||||
dialogue :make_a_fire do
|
||||
type :text
|
||||
|
||||
title 'Making a fire'
|
||||
text 'Well done! You managed to cut some logs from the tree! Next, use the tinderbox in '\
|
||||
'your inventory to light the logs. First click on the tinderbox to \'use\' it.'\
|
||||
'Then click on the logs in your inventory to light them.'
|
||||
end
|
||||
|
||||
# The instruction displayed when the player begins to light the fire.
|
||||
dialogue :lighting_fire do
|
||||
type :text
|
||||
|
||||
title 'Please wait...'
|
||||
# TODO: she instead of he if applicable
|
||||
text 'Your character is now attempting to light the logs. Sit back for a moment whilst he '\
|
||||
'does all the hard work.'
|
||||
end
|
||||
|
||||
# The instruction displayed when the has lit the logs.
|
||||
dialogue :gained_experience do
|
||||
type :text
|
||||
|
||||
text 'You gained some experience.'\
|
||||
'Click on the flashing bar graph icon near the inventory button to see your skill '\
|
||||
'stats.'
|
||||
end
|
||||
|
||||
# The dialogue displayed when the Player has clicked the flashing skill tab icon.
|
||||
dialogue :skill_stats do
|
||||
type :text
|
||||
|
||||
title 'Your skill stats.'
|
||||
text 'Here you will see how good your skills are. As you move your mouse over any of the '\
|
||||
'icons in this panel, the small yellow popup box will show you the exact amount of '\
|
||||
'experience you have and how much is needed to get to the next level. Speak to the '\
|
||||
'Survival Expert to continue.'
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
@@ -0,0 +1,40 @@
|
||||
|
||||
# Functional npcs
|
||||
|
||||
# 'Above-ground' npcs
|
||||
|
||||
spawn_npc name: :master_chef, x: 3076, y: 3085
|
||||
spawn_npc name: :quest_guide, x: 3086, y: 3122, face: :north
|
||||
spawn_npc name: :financial_advisor, x: 3127, y: 3124, face: :west
|
||||
spawn_npc name: :brother_brace, x: 3124, y: 3107, face: :east
|
||||
spawn_npc name: :magic_instructor, x: 3140, y: 3085
|
||||
|
||||
# 'Below-ground' npcs
|
||||
# Note: They aren't actually on a different plane, they're just in a different location that
|
||||
# pretends to be underground.
|
||||
|
||||
spawn_npc name: :mining_instructor, x: 3081, y: 9504
|
||||
spawn_npc name: :combat_instructor, x: 3104, y: 9506
|
||||
|
||||
# Non-humanoid npcs
|
||||
|
||||
spawn_npc name: :fishing_spot_316, x: 3102, y: 3093
|
||||
|
||||
spawn_npc name: :chicken, x: 3140, y: 3095
|
||||
spawn_npc name: :chicken, x: 3140, y: 3093
|
||||
spawn_npc name: :chicken, x: 3138, y: 3092
|
||||
spawn_npc name: :chicken, x: 3137, y: 3094
|
||||
spawn_npc name: :chicken, x: 3138, y: 3095
|
||||
|
||||
# 'Below-ground' npcs
|
||||
# Note: They aren't actually on a different plane, they're just in a different location that
|
||||
# pretends to be underground.
|
||||
|
||||
spawn_npc name: :giant_rat_87, x: 3105, y: 9514
|
||||
spawn_npc name: :giant_rat_87, x: 3105, y: 9517
|
||||
spawn_npc name: :giant_rat_87, x: 3106, y: 9514
|
||||
spawn_npc name: :giant_rat_87, x: 3104, y: 9514
|
||||
spawn_npc name: :giant_rat_87, x: 3105, y: 9519
|
||||
spawn_npc name: :giant_rat_87, x: 3109, y: 9516
|
||||
spawn_npc name: :giant_rat_87, x: 3108, y: 9520
|
||||
spawn_npc name: :giant_rat_87, x: 3102, y: 9517
|
||||
@@ -0,0 +1,24 @@
|
||||
<?xml version="1.0"?>
|
||||
<plugin>
|
||||
<id>location-tutorial-island</id>
|
||||
<version>0.1</version>
|
||||
<name>Tutorial Island</name>
|
||||
<description>Adds functionality to Tutorial island.</description>
|
||||
<authors>
|
||||
<author>Major</author>
|
||||
</authors>
|
||||
<scripts>
|
||||
<script>instructions.rb</script>
|
||||
<script>guide.rb</script>
|
||||
<script>npcs.rb</script>
|
||||
<script>stages.rb</script>
|
||||
<script>survival.rb</script>
|
||||
<script>utils.rb</script>
|
||||
</scripts>
|
||||
<dependencies>
|
||||
<dependency>dialogue</dependency>
|
||||
<dependency>door</dependency>
|
||||
<dependency>entity-spawning</dependency>
|
||||
<dependency>quest</dependency>
|
||||
</dependencies>
|
||||
</plugin>
|
||||
@@ -0,0 +1,16 @@
|
||||
|
||||
private
|
||||
|
||||
# The array of stages in tutorial island.
|
||||
@stages = []
|
||||
|
||||
# The stages that are used when interacting with the Runescape Guide.
|
||||
RUNESCAPE_GUIDE = [:not_started, :talk_to_people, :go_through_door, :runescape_guide_finished,
|
||||
:moving_around].freeze
|
||||
@stages.concat(RUNESCAPE_GUIDE)
|
||||
|
||||
# The stages that are used when interacting with the Survival Expert.
|
||||
SURVIVAL_EXPERT = [:given_axe, :cut_tree, :cutting_tree].freeze
|
||||
@stages.concat(SURVIVAL_EXPERT)
|
||||
|
||||
quest :tutorial_island, @stages
|
||||
@@ -0,0 +1,154 @@
|
||||
require 'java'
|
||||
|
||||
java_import 'org.apollo.game.message.impl.FlashTabInterfaceMessage'
|
||||
java_import 'org.apollo.game.message.impl.FlashingTabClickedMessage'
|
||||
java_import 'org.apollo.game.message.impl.SwitchTabInterfaceMessage'
|
||||
|
||||
private
|
||||
|
||||
# Contains Survival Expert-related constants.
|
||||
module SurvivalConstants
|
||||
|
||||
# The Survival Expert Npc.
|
||||
@survival_expert = spawn_npc name: :survival_expert, x: 3104, y: 3095, face: :north
|
||||
|
||||
# The inventory tab index.
|
||||
INVENTORY_TAB_INDEX = 3
|
||||
|
||||
# The inventory tab id.
|
||||
INVENTORY_TAB_ID = 3213
|
||||
|
||||
# The id of the tree the Player will cut down.
|
||||
TREE_ID = 3033
|
||||
|
||||
# The id of the bronze axe.
|
||||
BRONZE_AXE = lookup_item(:bronze_axe)
|
||||
|
||||
# The id of the tinderbox.
|
||||
TINDERBOX = lookup_item(:tinderbox)
|
||||
|
||||
end
|
||||
|
||||
# The conversation with the Survival Expert, when on tutorial island.
|
||||
conversation :tutorial_survival_expert do
|
||||
|
||||
dialogue :introduction do
|
||||
type :npc_speech
|
||||
npc :survival_expert
|
||||
|
||||
precondition { |player| player.tutorial_island_progress == :moving_around }
|
||||
|
||||
text 'Hello there, newcomer. My name is Brynna. My job is to teach you a few survival tips and'\
|
||||
' tricks. First off we\'re going to start with the most basic survival skill of all: '\
|
||||
'making a fire.'
|
||||
|
||||
close { |player| add_survival_items(player) }
|
||||
end
|
||||
|
||||
dialogue :hello_again do
|
||||
type :npc_speech
|
||||
npc :survival_expert
|
||||
|
||||
precondition { |player| player.tutorial_island_progress == :moving_around }
|
||||
|
||||
text 'Hello again. I\'m here to teach you a few survival tips and tricks. First off we\'re '\
|
||||
'going to start with the most basic survival skill of all: making a fire.'
|
||||
|
||||
close { |player| add_survival_items(player) }
|
||||
end
|
||||
|
||||
# The dialogue displayed when the Survival Expert gives the player a bronze axe.
|
||||
dialogue :give_bronze_axe do
|
||||
type :message_with_item
|
||||
item :bronze_axe
|
||||
|
||||
text 'The Survival Expert gives you a bronze axe!'
|
||||
|
||||
close { |player| TutorialInstructions.show_instruction(player) }
|
||||
end
|
||||
|
||||
# The dialogue displayed when the Survival Expert gives the player a tinderbox.
|
||||
dialogue :give_tinderbox do
|
||||
type :message_with_item
|
||||
item :tinderbox
|
||||
|
||||
text 'The Survival Expert gives you a tinderbox!'
|
||||
|
||||
close { |player| TutorialInstructions.show_instruction(player) }
|
||||
end
|
||||
|
||||
# The dialogue displayed when the Survival Expert gives the player both a bronze axe and a
|
||||
# tinderbox.
|
||||
dialogue :give_axe_and_tinderbox do
|
||||
type :message_with_item
|
||||
item :bronze_axe
|
||||
# TODO: the tinderbox is also displayed - find this dialogue id. Scale looks like the default
|
||||
# http://i.imgur.com/i1abN5X.png
|
||||
|
||||
text 'The Survival Expert gives you a tinderbox and a bronze axe!'
|
||||
|
||||
close do |player|
|
||||
if player.tutorial_island_progress < :given_axe
|
||||
player.tutorial_island_progress = :given_axe
|
||||
|
||||
index = SurvivalConstants::INVENTORY_TAB_INDEX
|
||||
player.send(SwitchTabInterfaceMessage.new(index, SurvivalConstants::INVENTORY_TAB_ID))
|
||||
player.send(FlashTabInterfaceMessage.new(index))
|
||||
end
|
||||
|
||||
TutorialInstructions.show_instruction(player)
|
||||
end
|
||||
end
|
||||
|
||||
# The dialogue displayed when the player has succesfully cut down a tree.
|
||||
dialogue :get_logs do
|
||||
type :message_with_item
|
||||
item :logs
|
||||
|
||||
text 'You get some logs.'
|
||||
close { |player| TutorialInstructions.show_instruction(player) }
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
# Add the survival items (bronze axe and tinderbox) to the inventory of the player, if they do not
|
||||
# already have them.
|
||||
def add_survival_items(player)
|
||||
inventory = player.inventory
|
||||
|
||||
unless inventory.contains(SurvivalConstants::BRONZE_AXE)
|
||||
inventory.add(SurvivalConstants::BRONZE_AXE)
|
||||
dialogue = :give_bronze_axe
|
||||
end
|
||||
|
||||
unless inventory.contains(SurvivalConstants::TINDERBOX)
|
||||
inventory.add(SurvivalConstants::TINDERBOX)
|
||||
dialogue = (dialogue == :give_bronze_axe) ? :give_axe_and_tinderbox : :give_tinderbox
|
||||
end
|
||||
|
||||
send_dialogue(player, get_dialogue(:tutorial_survival_expert, dialogue))
|
||||
end
|
||||
|
||||
# Intercept the FirstObjectActionMessage to send tutorial-only events if the player is chopping
|
||||
# down a tree.
|
||||
on :message, :first_object_action do |player, message|
|
||||
if player.in_tutorial_island && message.id == SurvivalConstants::TREE_ID
|
||||
progress = player.tutorial_island_progress
|
||||
|
||||
if progress < :cut_tree
|
||||
send_dialogue(player, get_dialogue(:tutorial_island_instructions, :try_cut_tree))
|
||||
elsif player.tutorial_island_progress == :cut_tree
|
||||
# Don't break the chain, so that the Woodcutting event actually happens.
|
||||
player.tutorial_island_progress = :cutting_tree
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
# Intercept the FlashingTabClickedMessage to update the player's progress, if applicable.
|
||||
on :message, :flashing_tab_clicked do |player, message|
|
||||
if player.in_tutorial_island && message.tab == SurvivalConstants::INVENTORY_TAB_INDEX &&
|
||||
player.tutorial_island_progress == :given_axe
|
||||
player.tutorial_island_progress = :cut_tree
|
||||
message.terminate
|
||||
end
|
||||
end
|
||||
@@ -0,0 +1,30 @@
|
||||
require 'java'
|
||||
|
||||
java_import 'org.apollo.game.model.entity.Player'
|
||||
|
||||
# Declare the tutorial island progress attribute.
|
||||
declare_attribute(:tutorial_island_progress, :not_started, :persistent)
|
||||
|
||||
# The existing player class.
|
||||
class Player
|
||||
|
||||
# Returns whether or not this Player is currently on tutorial island.
|
||||
def in_tutorial_island
|
||||
x = position.x
|
||||
y = position.y
|
||||
above_ground(x, y) || below_ground(x, y)
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
# Returns whether or not the specified coordinate pair is above ground on tutorial island.
|
||||
def above_ground(x, y)
|
||||
x >= 3053 && x <= 3156 && y >= 3056 && y <= 3136
|
||||
end
|
||||
|
||||
# Returns whether or not the specified coordinate pair is 'below' ground on tutorial island.
|
||||
def below_ground(x, y)
|
||||
x >= 3072 && x <= 3118 && y >= 9492 && y <= 9535
|
||||
end
|
||||
@@ -0,0 +1,258 @@
|
||||
# Generic Npc
|
||||
|
||||
spawn_npc name: :barbarian_woman, x: 3222, y: 3399
|
||||
|
||||
spawn_npc name: :bear_106, x: 3289, y: 3351
|
||||
|
||||
spawn_npc name: :black_knight, x: 3238, y: 3514
|
||||
spawn_npc name: :black_knight, x: 3227, y: 3518
|
||||
spawn_npc name: :black_knight, x: 3279, y: 3502
|
||||
|
||||
spawn_npc name: :dark_wizard_174, x: 3230, y: 3366
|
||||
spawn_npc name: :dark_wizard_174, x: 3228, y: 3368
|
||||
spawn_npc name: :dark_wizard_174, x: 3225, y: 3367
|
||||
spawn_npc name: :dark_wizard_174, x: 3226, y: 3365
|
||||
spawn_npc name: :dark_wizard_174, x: 3226, y: 3372
|
||||
spawn_npc name: :dark_wizard_174, x: 3231, y: 3371
|
||||
|
||||
spawn_npc name: :dark_wizard_172, x: 3229, y: 3372
|
||||
spawn_npc name: :dark_wizard_172, x: 3224, y: 3370
|
||||
spawn_npc name: :dark_wizard_172, x: 3228, y: 3366
|
||||
spawn_npc name: :dark_wizard_172, x: 3232, y: 3368
|
||||
spawn_npc name: :dark_wizard_172, x: 3226, y: 3369
|
||||
|
||||
spawn_npc name: :giant_rat_87, x: 3292, y: 3375
|
||||
spawn_npc name: :giant_rat_87, x: 3265, y: 3384
|
||||
spawn_npc name: :giant_rat_87, x: 3267, y: 3381
|
||||
|
||||
spawn_npc name: :guard_368, x: 3263, y: 3407, face: :south
|
||||
|
||||
spawn_npc name: :jeremy_clerksin, x: 3253, y: 3477
|
||||
spawn_npc name: :martina_scorsby, x: 3256, y: 3481
|
||||
|
||||
spawn_npc name: :man, x: 3281, y: 3500
|
||||
spawn_npc name: :man, x: 3193, y: 3394
|
||||
spawn_npc name: :man, x: 3159, y: 3429
|
||||
spawn_npc name: :man, x: 3245, y: 3394
|
||||
spawn_npc name: :man, x: 3283, y: 3492, z: 1
|
||||
|
||||
spawn_npc name: :man_2, x: 3263, y: 3400
|
||||
spawn_npc name: :man_3, x: 3227, y: 3395, z: 1
|
||||
spawn_npc name: :man_3, x: 3231, y: 3399, z: 1
|
||||
|
||||
spawn_npc name: :mugger, x: 3251, y: 3390
|
||||
spawn_npc name: :mugger, x: 3177, y: 3363
|
||||
|
||||
spawn_npc name: :tramp_2792, x: 3228, y: 3410
|
||||
|
||||
spawn_npc name: :woman, x: 3221, y: 3396
|
||||
spawn_npc name: :woman_5, x: 3279, y: 3497
|
||||
spawn_npc name: :woman_25, x: 3278, y: 3492
|
||||
|
||||
spawn_npc name: :thief, x: 3285, y: 3500
|
||||
spawn_npc name: :thief, x: 3234, y: 3389
|
||||
spawn_npc name: :thief, x: 3188, y: 3383
|
||||
spawn_npc name: :thief, x: 3184, y: 3390
|
||||
spawn_npc name: :thief, x: 3188, y: 3394
|
||||
|
||||
spawn_npc name: :unicorn, x: 3286, y: 3342
|
||||
spawn_npc name: :unicorn, x: 3279, y: 3345
|
||||
|
||||
|
||||
# North Guards
|
||||
|
||||
spawn_npc name: :guard, x: 3244, y: 3500
|
||||
spawn_npc name: :guard, x: 3247, y: 3503
|
||||
|
||||
# East Guards
|
||||
|
||||
spawn_npc name: :guard, x: 3271, y: 3431
|
||||
spawn_npc name: :guard, x: 3270, y: 3425
|
||||
spawn_npc name: :guard, x: 3274, y: 3421
|
||||
spawn_npc name: :guard, x: 3274, y: 3427
|
||||
|
||||
# South Guards
|
||||
|
||||
spawn_npc name: :guard, x: 3210, y: 3382
|
||||
spawn_npc name: :guard, x: 3212, y: 3380
|
||||
spawn_npc name: :guard, x: 3207, y: 3376
|
||||
|
||||
# West Guards
|
||||
|
||||
spawn_npc name: :guard, x: 3174, y: 3427
|
||||
spawn_npc name: :guard, x: 3176, y: 3430
|
||||
spawn_npc name: :guard, x: 3176, y: 3427
|
||||
spawn_npc name: :guard, x: 3180, y: 3399
|
||||
spawn_npc name: :guard, x: 3175, y: 3415, z: 1
|
||||
spawn_npc name: :guard, x: 3174, y: 3403, z: 1
|
||||
|
||||
# Varrock Palace
|
||||
|
||||
spawn_npc name: :guard, x: 3210, y: 3461
|
||||
spawn_npc name: :guard, x: 3211, y: 3465
|
||||
spawn_npc name: :guard, x: 3214, y: 3462
|
||||
spawn_npc name: :guard, x: 3216, y: 3464
|
||||
spawn_npc name: :guard, x: 3220, y: 3461
|
||||
spawn_npc name: :guard, x: 3206, y: 3461
|
||||
spawn_npc name: :guard, x: 3204, y: 3495
|
||||
spawn_npc name: :guard, x: 3204, y: 3495, z: 1
|
||||
spawn_npc name: :guard, x: 3205, y: 3492, z: 1
|
||||
spawn_npc name: :guard, x: 3203, y: 3492, z: 1
|
||||
spawn_npc name: :guard, x: 3205, y: 3497, z: 1
|
||||
spawn_npc name: :guard, x: 3221, y: 3471, z: 2
|
||||
spawn_npc name: :guard, x: 3214, y: 3474, z: 2
|
||||
spawn_npc name: :guard, x: 3215, y: 3471, z: 2
|
||||
spawn_npc name: :guard, x: 3211, y: 3471, z: 2
|
||||
spawn_npc name: :guard, x: 3209, y: 3473, z: 2
|
||||
spawn_npc name: :guard, x: 3212, y: 3475, z: 2
|
||||
spawn_npc name: :guard, x: 3207, y: 3477, z: 2
|
||||
spawn_npc name: :guard, x: 3203, y: 3476, z: 2
|
||||
spawn_npc name: :guard, x: 3205, y: 3479, z: 2
|
||||
spawn_npc name: :guard, x: 3203, y: 3483, z: 2
|
||||
spawn_npc name: :guard, x: 3221, y: 3485, z: 2
|
||||
|
||||
spawn_npc name: :monk_of_zamorak_189, x: 3213, y: 3476
|
||||
|
||||
spawn_npc name: :warrior_woman, x: 3203, y: 3490
|
||||
spawn_npc name: :warrior_woman, x: 3205, y: 3493
|
||||
|
||||
# Varrock/Lumbridge Pen
|
||||
|
||||
spawn_npc name: :swan, x: 3261, y: 3354
|
||||
spawn_npc name: :swan, x: 3260, y: 3356
|
||||
|
||||
spawn_npc name: :ram_3673, x: 3238, y: 3346
|
||||
spawn_npc name: :ram_3673, x: 3248, y: 3352
|
||||
spawn_npc name: :ram_3673, x: 3260, y: 3348
|
||||
|
||||
spawn_npc name: :sheep_42, x: 3263, y: 3347
|
||||
spawn_npc name: :sheep_42, x: 3268, y: 3350
|
||||
spawn_npc name: :sheep_42, x: 3252, y: 3352
|
||||
spawn_npc name: :sheep_42, x: 3243, y: 3344
|
||||
spawn_npc name: :sheep_42, x: 3235, y: 3347
|
||||
|
||||
spawn_npc name: :sheep_3579, x: 3234, y: 3344
|
||||
spawn_npc name: :sheep_3579, x: 3241, y: 3347
|
||||
spawn_npc name: :sheep_3579, x: 3257, y: 3350
|
||||
|
||||
# Champions Guild
|
||||
|
||||
spawn_npc name: :chicken, x: 3195, y: 3359
|
||||
spawn_npc name: :chicken, x: 3198, y: 3356
|
||||
spawn_npc name: :chicken, x: 3195, y: 3355
|
||||
|
||||
spawn_npc name: :chicken_1017, x: 3196, y: 3353
|
||||
spawn_npc name: :chicken_1017, x: 3197, y: 3356
|
||||
|
||||
spawn_npc name: :evil_chicken, x: 3198, y: 3359
|
||||
|
||||
# Function Npc
|
||||
|
||||
spawn_npc name: :apothecary, x: 3196, y: 3403
|
||||
|
||||
spawn_npc name: :captain_rovin, x: 3204, y: 3496, z: 2
|
||||
|
||||
spawn_npc name: :curator, x: 3256, y: 3447
|
||||
|
||||
spawn_npc name: :dimintheis, x: 3280, y: 3403
|
||||
|
||||
spawn_npc name: :dr_harlow, x: 3224, y: 3398
|
||||
|
||||
spawn_npc name: :ellamaria, x: 3228, y: 3475
|
||||
|
||||
spawn_npc name: :father_lawrence, x: 3253, y: 3484
|
||||
|
||||
spawn_npc name: :guidors_wife_342, x: 3280, y: 3382
|
||||
|
||||
spawn_npc name: :guidor, x: 3284, y: 3381, face: :south
|
||||
|
||||
spawn_npc name: :guild_master, x: 3189, y: 3360
|
||||
|
||||
spawn_npc name: :gypsy, x: 3203, y: 3423
|
||||
|
||||
spawn_npc name: :hooknosed_jack, x: 3268, y: 3400
|
||||
|
||||
spawn_npc name: :jonny_the_beard, x: 3223, y: 3395
|
||||
|
||||
spawn_npc name: :johnathon, x: 3278, y: 3503, z: 1
|
||||
|
||||
spawn_npc name: :katrine, x: 3185, y: 3386
|
||||
|
||||
spawn_npc name: :king_roald, x: 3223, y: 3473
|
||||
|
||||
spawn_npc name: :master_farmer, x: 3243, y: 3349
|
||||
|
||||
spawn_npc name: :pox, x: 3267, y: 3399
|
||||
|
||||
spawn_npc name: :reldo, x: 3210, y: 3492
|
||||
|
||||
spawn_npc name: :romeo, x: 3211, y: 3423
|
||||
|
||||
spawn_npc name: :shilop, x: 3221, y: 3435
|
||||
|
||||
spawn_npc name: :sir_prysin, x: 3204, y: 3472
|
||||
|
||||
spawn_npc name: :tarquin, x: 3203, y: 3344, face: :south
|
||||
|
||||
spawn_npc name: :tool_leprechaun, x: 3182, y: 3355
|
||||
spawn_npc name: :tool_leprechaun, x: 3229, y: 3455, face: :north
|
||||
|
||||
spawn_npc name: :tramp_641, x: 3207, y: 3392
|
||||
|
||||
spawn_npc name: :wilough, x: 3222, y: 3437
|
||||
|
||||
# Shop Npc
|
||||
|
||||
spawn_npc name: :aubury, x: 3253, y: 3401
|
||||
|
||||
spawn_npc name: :baraek, x: 3217, y: 3434
|
||||
|
||||
spawn_npc name: :bartender, x: 3226, y: 3400
|
||||
spawn_npc name: :bartender_1921, x: 3277, y: 3487
|
||||
|
||||
spawn_npc name: :fancy_dress_shop_owner, x: 3281, y: 3398
|
||||
|
||||
spawn_npc name: :horvik, x: 3229, y: 3438
|
||||
|
||||
spawn_npc name: :lowe, x: 3233, y: 3421
|
||||
|
||||
spawn_npc name: :scavvo, x: 3192, y: 3353, z: 1
|
||||
|
||||
spawn_npc name: :shop_keeper_551, x: 3206, y: 3399
|
||||
spawn_npc name: :shop_assistant_552, x: 3207, y: 3396
|
||||
|
||||
spawn_npc name: :shop_keeper_522, x: 3216, y: 3414
|
||||
spawn_npc name: :shop_assistant_523, x: 3216, y: 3417
|
||||
|
||||
spawn_npc name: :tea_seller, x: 3271, y: 3411
|
||||
|
||||
spawn_npc name: :thessalia, x: 3206, y: 3417
|
||||
|
||||
spawn_npc name: :zaff, x: 3203, y: 3434
|
||||
|
||||
# Juliet House
|
||||
|
||||
spawn_npc name: :draul_leptoc, x: 3228, y: 3475
|
||||
spawn_npc name: :juliet, x: 3159, y: 3425, z: 1
|
||||
spawn_npc name: :phillipa, x: 3160, y: 3429, z: 1
|
||||
|
||||
# Gertrude House
|
||||
|
||||
spawn_npc name: :gertrude, x: 3153, y: 3413
|
||||
spawn_npc name: :kanel, x: 3155, y: 3405, face: :east
|
||||
spawn_npc name: :philop, x: 3150, y: 3405, face: :south
|
||||
|
||||
# Small Bank
|
||||
|
||||
spawn_npc name: :banker_495, x: 3252, y: 3418, face: :north
|
||||
spawn_npc name: :banker_494, x: 3253, y: 3418, face: :north
|
||||
spawn_npc name: :banker_494, x: 3254, y: 3418, face: :north
|
||||
spawn_npc name: :banker_494, x: 3256, y: 3418, face: :north
|
||||
|
||||
# Big Bank
|
||||
|
||||
spawn_npc name: :banker_494, x: 3187, y: 3436, face: :west
|
||||
spawn_npc name: :banker_495, x: 3187, y: 3438, face: :west
|
||||
spawn_npc name: :banker_494, x: 3187, y: 3440, face: :west
|
||||
spawn_npc name: :banker_495, x: 3187, y: 3442, face: :west
|
||||
spawn_npc name: :banker_494, x: 3187, y: 3444, face: :west
|
||||
@@ -0,0 +1,18 @@
|
||||
<?xml version="1.0"?>
|
||||
<plugin>
|
||||
<id>location-varrock</id>
|
||||
<version>0.1</version>
|
||||
<name>Varrock</name>
|
||||
<description>Adds functionality to Varrock.</description>
|
||||
<authors>
|
||||
<author>Wizard Jesse</author>
|
||||
</authors>
|
||||
<scripts>
|
||||
<script>npcs.rb</script>
|
||||
<script>shops.rb</script>
|
||||
</scripts>
|
||||
<dependencies>
|
||||
<dependency>entity-spawning</dependency>
|
||||
<dependency>shops</dependency>
|
||||
</dependencies>
|
||||
</plugin>
|
||||
@@ -0,0 +1,44 @@
|
||||
|
||||
create_shop npcs: :aubury, name: "Aubury's Rune Shop.", items: [
|
||||
[:fire_rune, 5_000], [:water_rune, 5_000], [:air_rune, 5_000], [:earth_rune, 5_000],
|
||||
[:mind_rune, 5_000], [:body_rune, 5_000 ], [:chaos_rune, 250], [:death_rune, 250 ]
|
||||
]
|
||||
|
||||
create_shop npcs: :lowe, name: "Lowe's Archery Emporium", items: [
|
||||
[:bronze_arrow, 2_000], [:iron_arrow, 1_500], [:steel_arrow, 1_000],
|
||||
[:mithril_arrow, 800], [:adamant_arrow, 600], [:shortbow, 4], [:longbow, 4],
|
||||
[:oak_shortbow, 3], [:oak_longbow, 3], [:willow_shortbow, 2], [:willow_longbow, 2],
|
||||
[:maple_shortbow, 1], [:maple_longbow, 1], [:crossbow, 2]
|
||||
]
|
||||
|
||||
create_shop npcs: :horvik, buys: :all, name: "Horvik's Armour Shop.", items: [
|
||||
[:bronze_chainbody, 5], [:iron_chainbody, 3], [:steel_chainbody, 3],
|
||||
[:mithril_chainbody, 1], [:bronze_platebody, 3], [:iron_platebody, 1],
|
||||
[:steel_platebody, 1], [:black_platebody, 1], [:mithril_platebody, 1],
|
||||
[:iron_platelegs, 1], [:studded_body, 1], [:studded_chaps, 1]
|
||||
]
|
||||
|
||||
create_shop npcs: :thessalia, name: "Thessalia's Fine Clothes.", items: [
|
||||
[:white_apron, 3], [:leather_body, 12], [:leather_gloves, 10], [:leather_boots, 10],
|
||||
[:brown_apron, 1], [:pink_skirt, 5], [:black_skirt, 3], [:blue_skirt, 2], [:cape, 4],
|
||||
[:silk, 5], [:priest_gown_428, 3], [:priest_gown_426, 3]
|
||||
]
|
||||
|
||||
create_shop npcs: [:shop_keeper_522, :shop_assistant_523], buys: :all,
|
||||
name: 'Varrock General Store', items: [
|
||||
[:pot, 5], [:jug, 2], [:shears, 2], [:bucket, 3], [:bowl, 2], [:cake_tin, 2],
|
||||
[:tinderbox, 2], [:chisel, 2], [:hammer, 5], [:newcomer_map, 5]
|
||||
]
|
||||
|
||||
create_shop npcs: [:shop_keeper_551, :shop_assistant_552], name: 'Varrock Swordshop', items: [
|
||||
[:bronze_sword, 5], [:iron_sword, 4], [:steel_sword, 4], [:black_sword, 3],
|
||||
[:mithril_sword, 3], [:adamant_sword, 2], [:bronze_longsword, 4], [:iron_longsword, 3],
|
||||
[:steel_longsword, 3], [:black_longsword, 2], [:mithril_longsword, 2],
|
||||
[:adamant_longsword, 1], [:bronze_dagger, 10], [:iron_dagger, 6], [:steel_dagger, 5],
|
||||
[:black_dagger, 4], [:mithril_dagger, 3], [:adamant_dagger, 2]
|
||||
]
|
||||
|
||||
create_shop npcs: :zaff, name: "Zaff's Superior Staffs!", items: [
|
||||
[:battlestaff, 5], [:staff, 5], [:magic_staff, 5], [:staff_of_air, 2],
|
||||
[:staff_of_water, 2], [:staff_of_earth, 2], [:staff_of_fire, 2]
|
||||
]
|
||||
Reference in New Issue
Block a user