Event Listeners
μκ°
νλ μ΄μ΄κ° μ§μ λ μ±ν μ μ λ ₯νκ±°λ, νΉμ ν μ€λΈμ νΈλ₯Ό 곡격ν μ κ°μ΄ ZEP μ€νμ΄μ€μμ λ°μνλ νΉμ μν©μ λ°μνμ¬ λμνλ ν¨μλ€ μ λλ€.
EventListenerκ° λΉμ μμ μΌλ‘ λ§μ΄ μΆκ°λλ κ²½μ° μ±μ΄ μ’ λ£λ μ μμ΅λλ€.
onUpdateλ¬Έ λλ λ°λ³΅μ μΌλ‘ μ€νλλ λ¬Έμμ EventListenerλ₯Ό λ±λ‘νλ κ²μ μ§μν΄μ£ΌμΈμ.
onSay
νλ μ΄μ΄κ° μ±ν μ μ λ ₯ν λ λμνλ ν¨μμ λλ€.
onPlayerTouched
μΊλ¦ν°λ€λΌλ¦¬ μΆ©λν λ λμνλ ν¨μμ λλ€.
onObjectTouched
μΊλ¦ν°κ° μ€λΈμ νΈμ μΆ©λν λ λμνλ ν¨μμ λλ€.
onAppObjectTouched
νλ μ΄μ΄κ° ν€ κ°μ κ°μ§ μ€λΈμ νΈμ μΆ©λν λ λμνλ ν¨μμ λλ€.
onUnitAttacked
곡격 ν€(Z)λ‘ λ€λ₯Έ μΊλ¦ν°λ₯Ό 곡격ν λ λμνλ ν¨μμ λλ€.
onObjectAttacked
곡격 ν€(Z)λ‘ μ€λΈμ νΈλ₯Ό 곡격ν λ λμνλ ν¨μμ λλ€.
onSidebarTouched
νλ μ΄μ΄κ° μ¬μ΄λλ° μ±μ ν΄λ¦(ν°μΉ)ν λ μ€νλλ ν¨μμ λλ€.
onTriggerObject
μ€λΈμ νΈμ F μνΈμμ© μ λμνλ ν¨μμ λλ€.
onAppObjectAttacked
νλ μ΄μ΄κ° ν€ κ°μ κ°μ§ μ€λΈμ νΈλ₯Ό 곡격(Zν€) ν λ λμνλ ν¨μμ λλ€.
π API μ€λͺ
λ° μμ
Event Listener ν¨μ ν λμ 보기
// νλ μ΄μ΄λ€μ΄ μ±ν
μ°½μ μ
λ ₯νλ λͺ¨λ μ±ν
μ λν΄ νΈμΆ λλ μ΄λ²€νΈ
// !λ‘ μμνλ ν
μ€νΈλ μ±ν
μ°½μ λμ€μ§ μμΌλ, onSay ν¨μμλ μ¬μ© κ°λ₯
App.onSay.Add(function(player, text) {
});
// νλ μ΄μ΄κ° λ€λ₯Έ νλ μ΄μ΄μ λΆλͺνμ λ νΈμΆ λλ μ΄λ²€νΈ
App.onPlayerTouched.Add(function(sender, target, x, y){
});
// νλ μ΄μ΄κ° μ€λΈμ νΈμ λΆλͺνμ λ νΈμΆ λλ μ΄λ²€νΈ
App.onObjectTouched.Add(function(sender, x, y, tileID, obj) {
});
// νλ μ΄μ΄κ° ν€ κ°μ κ°μ§ μ€λΈμ νΈμ λΆλͺνμ λ νΈμΆ λλ μ΄λ²€νΈ
App.onAppObjectTouched.Add(function(key, sender, x, y){});
// νλ μ΄μ΄κ° λ€λ₯Έ νλ μ΄μ΄λ₯Ό 곡격ν λ (Zν€) νΈμΆ λλ μ΄λ²€νΈ
App.onUnitAttacked.Add(function(sender, x, y, target) {
});
// νλ μ΄μ΄κ° μ€λΈμ νΈλ₯Ό 곡격(Zν€)νμ λ νΈμΆ λλ μ΄λ²€νΈ
App.onObjectAttacked.Add(function(sender, x, y){
});
// νλ μ΄μ΄κ° μ¬μ΄λλ° μ±μ ν΄λ¦(ν°μΉ)ν λ νΈμΆ λλ μ΄λ²€νΈ
App.onSidebarTouched.Add(function(player){
});
// μ€λΈμ νΈμ F μνΈμμ© μ λμνλ ν¨μ
App.onTriggerObject.Add(function(player, layer, x, y){
});
// νλ μ΄μ΄κ° ν€ κ°μ κ°μ§ μ€λΈμ νΈλ₯Ό 곡격ν λ (Zν€) νΈμΆ λλ μ΄λ²€νΈ
App.onAppObjectAttacked.Add(function (sender, x, y, layer, key) {
});
onSay
νλ μ΄μ΄κ° μ±ν μ μ λ ₯ν λ λμν©λλ€.
νλΌλ―Έν°
player
Player
player νλΌλ―Έν°λ μ±ν μ μ λ ₯ν νλ μ΄μ΄λ₯Ό κ°λ₯΄ν΄ player νλΌλ―Έν°μ μ΄λ¦μ μμλ‘ λ³κ²½ κ°λ₯
text
String
textλ μ λ ₯ν μ±ν λ΄μ©μ κ°λ₯΄ν΄ text νλΌλ―Έν°μ μ΄λ¦μ μμλ‘ λ³κ²½ κ°λ₯
μμ
μ΄μ±ν΄μ¦ - μ±ν μΌλ‘ μ λ΅ λ§μΆλ κΈ°λ₯ λ§λ€μ΄λ³΄κΈ°
_answer = "ZEP" // μ λ΅
// νλ μ΄μ΄κ° μ±ν
μ μΉ λ μ€ν
App.onSay.add(function(player, text) {
if(_answer == text){
App.showCenterLabel(player.name + 'λ μ λ΅!\nμ λ΅μ ' + _answer);
}
});
onPlayerTouched
μΊλ¦ν°λ€λΌλ¦¬ μΆ©λν λ λμν©λλ€.
νλΌλ―Έν°
sender
Player
senderλ λΆλͺν 주체μλ₯Ό κ°λ₯΄ν΄
target
String
targetμ λΆλͺνμ λΉν νλ μ΄μ΄λ₯Ό κ°λ₯΄ν΄
x, y
Number
x, yλ μΆ©λν x, y μ’νλ₯Ό κ°λ₯΄ν΄
sender, target, x, y νλΌλ―Έν°μ μ΄λ¦μ μμλ‘ λ³κ²½ κ°λ₯
μμ
μΊλ¦ν°λΌλ¦¬ λΆλͺν λ λ©μμ§ μΆλ ₯ν΄λ³΄κΈ°
// νλ μ΄μ΄λΌλ¦¬ λΆλͺν λ μ€ν
App.onPlayerTouched.Add(function (sender, target, x, y) {
App.showCenterLabel(
`${sender.name}λκ³Ό ${target.name}λμ΄ μ’ν: (${x}, ${y}) μμ λΆλͺνμ΅λλ€.`
);
});
onObjectTouched
μΊλ¦ν°κ° μ€λΈμ νΈμ μΆ©λ λλ μνΈμμ© ν λ ν λ² μ€νλ©λλ€.
νλΌλ―Έν°
sender
Player
senderλ μ€λΈμ νΈμ λΆλͺν νλ μ΄μ΄λ₯Ό κ°λ₯΄ν΄
x, y
Number
μ€λΈμ νΈμμΆ©λν x, y μ’νλ₯Ό κ°λ₯΄ν΄
tileID
Number
μ€λΈμ νΈμ νμΌ ID μ λλ€.
obj
Object
μ€λΈμ νΈ κ°μ²΄
μμ
β overlap: true
μμ±μ΄ μλ μ€λΈμ νΈλ μΆ©λν΄λ ν¨μκ° μ€νλμ§ μμ΅λλ€.
let testObject = App.loadSpritesheet("object.png");
// μ¬μ© κ°λ₯ν ObjectEffectType
const ObjectEffectType = {
NONE = 0,
SHOW_NOTE = 1,
SHOW_IMAGE = 2,
PASSWORD_DOOR = 3,
LINK_WEBSITE = 4,
EMBED_WEBSITE = 5,
API_CALL = 6,
REPLACE_IMAGE = 7,
NFT_GIVEAWAY = 8,
NFT_DOOR = 9,
POST_MESSAGE = 10,
SHOW_CHAT_BALLOON = 11,
FT_DOOR = 12,
POST_MESSAGE_TO_APP = 13,
DONATION_DOOR = 14,
IMPASSABLE = 15,
STAMP = 16,
TOKEN_DONATION_DOOR = 17,
CHANGE_OBJECT = 18,
ANIMATION = 19,
NFT_DOOR_MOVE = 20,
INTERACTION_WITH_ZEPSCRIPTS = 21,
MULTIPLE_CHOICE = 22,
}
App.onStart.Add(function () {
Map.putObject(5, 5, testObject, { overlap: true });
});
// νλ μ΄μ΄μ μ€λΈμ νΈκ° λΆλͺν λ μ€ν
App.onObjectTouched.Add(function (sender, x, y, tileID, obj) {
Map.putObject(x, y, null);
App.showCenterLabel(
`${sender.name}λμ΄ μ’ν: (${x}, ${y}) μμ μ€λΈμ νΈμ λΆλͺνμ΅λλ€.(νμ
: ${obj.type})`
);
});
onAppObjectTouched
οΈ μΊλ¦ν°κ° ν€ κ°μ κ°μ§ μ€λΈμ νΈμ μΆ©λν λ λμν©λλ€.
νλΌλ―Έν°
sender
Player
senderλ μ€λΈμ νΈμ λΆλͺν νλ μ΄μ΄λ₯Ό κ°λ₯΄ν΄
key
String
μ€λΈμ νΈμ Key κ°
x, y
Number
x, yλ μΆ©λν x, y μ’νλ₯Ό κ°λ₯΄ν΄
μμ
λΌλ²¨ μΆλ ₯ μμ
β overlap: true
μμ±μ΄ μλ μ€λΈμ νΈλ μΆ©λν΄λ ν¨μκ° μ€νλμ§ μμ΅λλ€.
let blueman_dance = App.loadSpritesheet(
"blueman.png",
48,
64,
[20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37],
8
);
// Qλ₯Ό λλ₯΄λ©΄ λμ νλ ν¨μ
App.addOnKeyDown(81, function (player) {
App.sayToAll("ν€ κ°μ κ°μ§ μ€λΈμ νΈ μΆ©λ ν
μ€νΈ");
Map.putObjectWithKey(8, 5, blueman_dance, { overlap: true, key: "blueman" });
});
App.onAppObjectTouched.Add(function (player, key, x, y) {
App.sayToAll(
`${player.name}μ΄ ν€ κ°μ΄ ${key}μΈ μ€λΈμ νΈμ ${x},${y}μμ μΆ©λ!`
);
});
onUnitAttacked
νλ μ΄μ΄κ° 곡격 ν€(Z)λ‘ λ€λ₯Έ μΊλ¦ν°λ₯Ό 곡격ν λ λμν©λλ€.
νλΌλ―Έν°
sender
Player
senderλ 곡격ν νλ μ΄μ΄λ₯Ό κ°λ₯΄ν΄
x, y
Number
x, yλ 곡격ν νλ μ΄μ΄μ x, y μ’ν κ°μ κ°λ₯΄ν΄
target
Player
targetμ 곡격 λ°μ νλ μ΄μ΄λ₯Ό κ°λ₯΄ν΄
sender, x, y, target νλΌλ―Έν°μ μ΄λ¦μ μμλ‘ λ³κ²½ κ°λ₯
μμ
νλ μ΄μ΄λ₯Ό 곡격 ν λ λ©μμ§ μΆλ ₯ν΄λ³΄κΈ°
// Z ν€λ‘ νλ μ΄μ΄λ₯Ό 곡격ν λ μ€ν
App.onUnitAttacked.Add(function (sender, x, y, target) {
App.showCenterLabel(`${sender.name}λμ΄ ${target.name}λμ 곡격νμ΅λλ€.`);
App.sayToAll(`(${x}, ${y})`);
});
onObjectAttacked
νλ μ΄μ΄κ° 곡격 ν€(Z)λ‘ μ€λΈμ νΈλ₯Ό 곡격ν λ λμν©λλ€.
νλΌλ―Έν°
sender
Player
senderλ 곡격ν νλ μ΄μ΄λ₯Ό κ°λ₯΄ν΄
x, y
Number
x, yλ μ€λΈμ νΈμ x, y μ’ν κ°μ κ°λ₯΄ν΄
sender, x, y νλΌλ―Έν°μ μ΄λ¦μ μμλ‘ λ³κ²½ κ°λ₯
μμ
μ€λΈμ νΈλ₯Ό 곡격ν λ λ©μμ§ μΆλ ₯ν΄λ³΄κΈ°
β overlap: true
μμ±μ΄ μλ μ€λΈμ νΈλ 곡격ν΄λ ν¨μκ° μ€νλμ§ μμ΅λλ€.
let testObject = App.loadSpritesheet("object.png");
App.onStart.Add(function () {
Map.putObject(5, 5, testObject, { overlap: true });
});
// Z ν€λ‘ μ€λΈμ νΈλ₯Ό 곡격ν λ μ€ν
App.onObjectAttacked.Add(function(sender, x, y){
App.showCenterLabel(
`${sender.name}λμ΄ μ’ν: (${x}, ${y})μ μμΉ μ€λΈμ νΈλ₯Ό 곡격νμ΅λλ€.`
);
})
onSidebarTouched
νλ μ΄μ΄κ° μ¬μ΄λλ° μ±μ ν΄λ¦(ν°μΉ) ν λ λμν©λλ€.
νλΌλ―Έν°
player
Player
μ¬μ΄λλ° μ±μ ν΄λ¦ν playerλ₯Ό κ°λ₯΄ν΄
μμ
μ¬μ΄λλ° μ± ν΄λ¦ μ μ±ν μ°½ λ©μμ§ μΆλ ₯νκΈ°.
App.onSidebarTouched.Add(function (player) {
App.sayToAll(`${player.name}λμ΄ μ¬μ΄λλ° μ±μ ν΄λ¦νμ΅λλ€.`)
});
κ΄λ ¨ νμ΄μ§
onTriggerObject
μ€λΈμ νΈμ F μνΈμμ© μ λμνλ ν¨μλ₯Ό μμ±ν μ μμ΅λλ€.
λ§΅μλν°λ‘ μ€μΉν μ€λΈμ νΈ λλ μ€ν¬λ¦½νΈμμ type
μ INTERACTION_WITH_ZEPSCRIPTS
(21)
λ‘ μ€μΉν μ€λΈμ νΈμ μνΈμμ© μ λμν©λλ€.
νλΌλ―Έν°
player
Player
μ€λΈμ νΈμ μνΈμμ©ν playerλ₯Ό κ°λ₯΄ν΄
layerID
Number
μ€λΈμ νΈκ° μ€μΉλ λ μ΄μ΄ ID μ€λΈμ νΈμΈ κ²½μ° layerID = 3 μλ¨ μ€λΈμ νΈμΈ κ²½μ° layerID = 5
x, y
Number
μνΈμμ©ν μ€λΈμ νΈμ x, y μ’ν
key
String
μνΈμμ©ν μ€λΈμ νΈμ key κ°
μμ
μ€λΈμ νΈμ F μνΈμμ©μ λ©μμ§ μΆλ ₯νκΈ°

let blueman = App.loadSpritesheet("blueman.png");
App.onJoinPlayer.Add(function (player) {
Map.putObjectWithKey(player.tileX + 1, player.tileY, blueman, {
type: ObjectEffectType.INTERACTION_WITH_ZEPSCRIPTS,
impassable: true,
key: "objectKey",
});
});
App.onTriggerObject.Add(function (player, layerID, x, y, key) {
App.sayToAll(`playerName: ${player.name} / layer: ${layerID} / coordinates:(${x}, ${y}) / key: ${key}`);
});
onAppObjectAttacked
νλ μ΄μ΄κ° 곡격 ν€(Z)λ‘ ν€ κ°μ κ°μ§ μ€λΈμ νΈλ₯Ό 곡격ν λ λμν©λλ€.
κ΄λ ¨ λ¬Έμ: μ€λΈμ νΈ npcProperty
νλΌλ―Έν°
sender
Player
senderλ 곡격ν νλ μ΄μ΄λ₯Ό κ°λ₯΄ν΄
x, y
Number
x, yλ μ€λΈμ νΈμ x, y μ’ν κ°μ κ°λ₯΄ν΄
layer
Number
μ€λΈμ νΈκ° μ€μΉλ λ μ΄μ΄
key
String
곡격ν μ€λΈμ νΈμ ν€ κ°
μμ
ν€ κ°μ κ°μ§ μ€λΈμ νΈλ₯Ό 곡격ν λ λ©μμ§ μΆλ ₯ν΄λ³΄κΈ°
β collide: true
μμ±μ΄ μλ ν€ κ° μ€λΈμ νΈλ 곡격ν΄λ ν¨μκ° μ€νλμ§ μμ΅λλ€.
App.onAppObjectAttacked.Add(function (sender, x, y, layer, key) {
App.showCenterLabel(
`sender: ${sender.name}
coordinates: (${x}, ${y})
layer: ${layer}
key: ${key}`
);
});
κ΄λ ¨ νμ΄μ§
Last updated
Was this helpful?