2019-09-16 20:38:16 +03:00

126 lines
2.6 KiB
Lua

function Game.sendMagicEffect(position, effect)
local pos = Position(position)
pos:sendMagicEffect(effect)
end
function Game.removeItemsOnMap(position)
local tile = Tile(position)
local tileCount = tile:getThingCount()
local i = 0
while i < tileCount do
local tileItem = tile:getThing(i)
if tileItem and tileItem:getType():isMovable() then
tileItem:remove()
else
i = i + 1
end
end
end
function Game.transformItemOnMap(position, itemId, toItemId, subtype)
if not subtype then
subtype = -1
end
local tile = Tile(position)
local item = tile:getItemById(itemId)
item:transform(toItemId, subtype)
item:decay()
return item
end
function Game.removeItemOnMap(position, itemId, subtype)
if not subtype then
subtype = -1
end
local tile = Tile(position)
local item = tile:getItemById(itemId, subtype)
item:remove()
end
function Game.isItemThere(position, itemId)
local tile = Tile(position)
return tile:getItemById(itemId) ~= nil
end
function Game.isPlayerThere(position)
local tile = Tile(position)
local creatures = tile:getCreatures()
for _, creature in ipairs(creatures) do
if creature:isPlayer() then
return true
end
end
return false
end
function Game.broadcastMessage(message, messageType)
if messageType == nil then
messageType = MESSAGE_STATUS_WARNING
end
for _, player in ipairs(Game.getPlayers()) do
player:sendTextMessage(messageType, message)
end
end
function Game.convertIpToString(ip)
local band = bit.band
local rshift = bit.rshift
return string.format("%d.%d.%d.%d",
band(ip, 0xFF),
band(rshift(ip, 8), 0xFF),
band(rshift(ip, 16), 0xFF),
rshift(ip, 24)
)
end
function Game.getReverseDirection(direction)
if direction == WEST then
return EAST
elseif direction == EAST then
return WEST
elseif direction == NORTH then
return SOUTH
elseif direction == SOUTH then
return NORTH
elseif direction == NORTHWEST then
return SOUTHEAST
elseif direction == NORTHEAST then
return SOUTHWEST
elseif direction == SOUTHWEST then
return NORTHEAST
elseif direction == SOUTHEAST then
return NORTHWEST
end
return NORTH
end
function Game.getSkillType(weaponType)
if weaponType == WEAPON_CLUB then
return SKILL_CLUB
elseif weaponType == WEAPON_SWORD then
return SKILL_SWORD
elseif weaponType == WEAPON_AXE then
return SKILL_AXE
elseif weaponType == WEAPON_DISTANCE then
return SKILL_DISTANCE
elseif weaponType == WEAPON_SHIELD then
return SKILL_SHIELD
end
return SKILL_FIST
end
if not globalStorageTable then
globalStorageTable = {}
end
function Game.getStorageValue(key)
return globalStorageTable[key]
end
function Game.setStorageValue(key, value)
globalStorageTable[key] = value
end