--[[ Illarion Server This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. You should have received a copy of the GNU Affero General Public License along with this program. If not, see . ]] local class = require("base.class") local common = require("base.common") local M = {} M.warpGroup = class(function(warpgr, centerpos, radius, destpos,gfx) warpgr.startpos=centerpos; warpgr.destpos=destpos; warpgr.range = radius; warpgr.gfx = gfx; end); function M.warpGroup:execute() --warps all players within a range radius from centerpos to destpos local plyList = common.ExtgetPlayersInRangeOf(self.startpos, self.range) for _, player in pairs(plyList) do local dest = position( self.destpos.x - (self.startpos.x - player.pos.x) , self.destpos.y - (self.startpos.y - player.pos.y), self.destpos.z ); if self.gfx~=nil then world:gfx(self.gfx,player.pos);-- world:gfx(self.gfx,player.pos); -- "sun" graphic end player:warp( dest ); end end return M