Object npcProperty

The npcProperty can be specified in the option parameters of the Map.putObjectWithKey(x, y, dynamicResource, option) function, and up to five properties can be defined.
Name
Type
Description
name
string
Name to be displayed above an object
hp
number
Current HP of an object
hpMax
number
Maximum HP of an object
gaugeWidth
number
Width of the HP gauage bar
If left blank, it is set to the width of the image.
hpColor
number
Color of the HP gauage bar E.g. 0x03ff03 (green)
Example 1 - Create an object using npcProperty
npcProperty.zip
29KB
Binary
let blueman = App.loadSpritesheet('blueman.png', 48, 64, {
left: [5, 6, 7, 8, 9],
up: [15, 16, 17, 18, 19],
down: [0, 1, 2, 3, 4],
right: [10, 11, 12, 13, 14],
dance: [20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37],
down_jump: [38],
left_jump: [39],
right_jump: [40],
up_jump: [41],
}, 8);
App.addOnKeyDown(81, function (player) {
const objectKey = "TestBlueMan";
const bluemanObject = Map.putObjectWithKey(18, 6, blueman, {
npcProperty: { name: "BlueMan", hpColor: 0x03ff03, hp: 100, hpMax: 100 },
overlap: true,
movespeed: 100,
key: objectKey,
useDirAnim: true
});
Map.playObjectAnimationWithKey(objectKey, "down", -1);
});
Example 2 -Implement an HP dropping effect using npcProperty.
npcProperty2.zip
29KB
Binary
let blueman = App.loadSpritesheet('blueman.png', 48, 64, {
left: [5, 6, 7, 8, 9], // Image of leftward movement
up: [15, 16, 17, 18, 19],
down: [0, 1, 2, 3, 4],
right: [10, 11, 12, 13, 14],
dance: [20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37],
down_jump: [38],
left_jump: [39],
right_jump: [40],
up_jump: [41],
}, 8);
App.addOnKeyDown(81, function (player) {
const objectKey = "TestBlueMan";
const bluemanObject = Map.putObjectWithKey(18, 6, blueman, {
npcProperty: { name: "BlueMan", hpColor: 0x03ff03, hp: 100, hpMax: 100 },
overlap: true,
collide: true, // ★ collid: true
movespeed: 100,
key: objectKey,
useDirAnim: true
});
Map.playObjectAnimationWithKey(objectKey, "down", -1);
});
App.onAppObjectAttacked.Add(function (p, x, y, layer, key) {
const targetObject = Map.getObjectWithKey(key);
targetObject.npcProperty.hp -= 10;
if(targetObject.npcProperty.hp > 0) {
const hpPercentage = targetObject.npcProperty.hp / targetObject.npcProperty.hpMax;
if (hpPercentage < 0.3) {
targetObject.npcProperty.hpColor = 0xff0000;
} else if (hpPercentage < 0.7) {
targetObject.npcProperty.hpColor = 0xffa500;
}
targetObject.sendUpdated();
} else {
Map.putObjectWithKey(targetObject.tileX, targetObject.tileY, null, { key: key })
}
});