Ловушки — различия между версиями

Строка 81: Строка 81:
  
 
Происходит 20 раз в ссекунду. Является основой всех таймеров в игре. Библиотека NIDE [[ModPE/Timers|Timers]] служит прекрасной оболочкой, позволяющей использовать различные однократные и повторяющиеся таймеры.
 
Происходит 20 раз в ссекунду. Является основой всех таймеров в игре. Библиотека NIDE [[ModPE/Timers|Timers]] служит прекрасной оболочкой, позволяющей использовать различные однократные и повторяющиеся таймеры.
 +
  
 
=== useItem(x, y, z, itemid, blockid, side, itemDamage, blockDamage) ===
 
=== useItem(x, y, z, itemid, blockid, side, itemDamage, blockDamage) ===
Строка 87: Строка 88:
  
 
Происходит при тапе по блоку с координатами x, y, z со стороны side. Блок, по которому тапнули, имеет id = blockid, data = blockDamage. Тапнули предметом с id = itemid, data = itemDamage.
 
Происходит при тапе по блоку с координатами x, y, z со стороны side. Блок, по которому тапнули, имеет id = blockid, data = blockDamage. Тапнули предметом с id = itemid, data = itemDamage.
 +
 +
Пример:
 +
<pre>/*сама функция, можно недописывать последние арументы, если не нужны*/
 +
function useItem(x, y, z, blockId, itemId)
 +
{
 +
    if(blockId == 1 && itemId == 280)//если палкой тыкнуть по камню
 +
    {
 +
        setTile(x, y, z, 5);//то заментим его на доску
 +
        clientMessage("Превращение прошло успешно!");//уведомление
 +
    }
 +
}</pre>

Версия 23:27, 28 июня 2017

Ловушки ModPE - важная часть ModPE API, позволяющая отлавливать основные события в игре.

attackHook(attacker, victim)

Можно юзать preventDefault()

Происходит при ударе сущностью attacker сущность victim.

chatHook(str)

Можно юзать preventDefault()

Происходит при отправлении каким-либо игроком сообщения в чат.

continueDestroyBlock(x, y, z, side, progress)

Можно юзать preventDefault()

Происходит каждый тик во время ломания блока с координатами x, y, z со стороны side. progress - значение с плавающей точкой от 0 до 1, показывает прогресс разрушения блока (в частях от 1). Для переведения в проценты просто умножаем на сто и округляем (при необходимости).

destroyBlock(x, y, z, side)

Можно юзать preventDefault()

Происходит при разрушении блока с координатами x, y, z со стороны side.

projectileHitEntityHook(projectile, targetEntity)

eatHook(hearts, saturationRatio)

Происходит при съедании игроком еды. Параметры, вероятно, названы неправильно (надо уточнить).

entityAddedHook(entity)

Происходит при появлении новой сущности entity в мире.

entityHurtHook(attacker, victim, halfhearts)

entityRemovedHook(entity)

explodeHook(entity, x, y, z, power, onFire)

Можно юзать preventDefault()

serverMessageReceiveHook(str)

Можно юзать preventDefault()

deathHook(attacker, victim)

Можно юзать preventDefault()

Происходит при смерти сущности victim из-за удара attacker.

playerAddExpHook(player, experienceAdded)

Можно юзать preventDefault()

playerExpLevelChangeHook(player, levelsAdded)

Можно юзать preventDefault()

redstoneUpdateHook(x, y, z, newCurrent, someBooleanIDontKnow, blockId, blockData)

function screenChangeHook(screenName)

newLevel()

Происходит при заходе в мир

startDestroyBlock(x, y, z, side)

Можно юзать preventDefault()

Происходит, когда игрок начинает ломать блок с координатами x, y, z со стороны side.

projectileHitBlockHook(projectile, blockX, blockY, blockZ, side)

modTick()

Происходит 20 раз в ссекунду. Является основой всех таймеров в игре. Библиотека NIDE Timers служит прекрасной оболочкой, позволяющей использовать различные однократные и повторяющиеся таймеры.


useItem(x, y, z, itemid, blockid, side, itemDamage, blockDamage)

Можно юзать preventDefault()

Происходит при тапе по блоку с координатами x, y, z со стороны side. Блок, по которому тапнули, имеет id = blockid, data = blockDamage. Тапнули предметом с id = itemid, data = itemDamage.

Пример:

/*сама функция, можно недописывать последние арументы, если не нужны*/
function useItem(x, y, z, blockId, itemId) 
{
    if(blockId == 1 && itemId == 280)//если палкой тыкнуть по камню
    {
        setTile(x, y, z, 5);//то заментим его на доску
        clientMessage("Превращение прошло успешно!");//уведомление
    }
}