<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>https://playzone.in.ua/wiki/mc//index.php?action=history&amp;feed=atom&amp;title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C%3A%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA%3AAsassin_1%2F%D0%A1%D0%BF%D1%80%D0%B0%D0%B9%D1%82</id>
		<title>Модуль:Участник:Asassin 1/Спрайт - История изменений</title>
		<link rel="self" type="application/atom+xml" href="https://playzone.in.ua/wiki/mc//index.php?action=history&amp;feed=atom&amp;title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C%3A%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA%3AAsassin_1%2F%D0%A1%D0%BF%D1%80%D0%B0%D0%B9%D1%82"/>
		<link rel="alternate" type="text/html" href="https://playzone.in.ua/wiki/mc//index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:Asassin_1/%D0%A1%D0%BF%D1%80%D0%B0%D0%B9%D1%82&amp;action=history"/>
		<updated>2026-04-22T13:15:38Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.28.3</generator>

	<entry>
		<id>https://playzone.in.ua/wiki/mc//index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:Asassin_1/%D0%A1%D0%BF%D1%80%D0%B0%D0%B9%D1%82&amp;diff=13424&amp;oldid=prev</id>
		<title>Softer: 1 версия импортирована</title>
		<link rel="alternate" type="text/html" href="https://playzone.in.ua/wiki/mc//index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:Asassin_1/%D0%A1%D0%BF%D1%80%D0%B0%D0%B9%D1%82&amp;diff=13424&amp;oldid=prev"/>
				<updated>2017-01-17T22:27:28Z</updated>
		
		<summary type="html">&lt;p&gt;1 версия импортирована&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style='vertical-align: top;' lang='ru'&gt;
				&lt;td colspan='1' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan='1' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 22:27, 17 января 2017&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan='2' style='text-align: center;' lang='ru'&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Softer</name></author>	</entry>

	<entry>
		<id>https://playzone.in.ua/wiki/mc//index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:Asassin_1/%D0%A1%D0%BF%D1%80%D0%B0%D0%B9%D1%82&amp;diff=13423&amp;oldid=prev</id>
		<title>Asassin 1: Новая страница: «local p = {} function p.base( f ) 	local args = f 	if f == mw.getCurrentFrame() then  		args = require( 'Модуль:ProcessArgs' ).merge( true ) 	end 	 	-- На…»</title>
		<link rel="alternate" type="text/html" href="https://playzone.in.ua/wiki/mc//index.php?title=%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:Asassin_1/%D0%A1%D0%BF%D1%80%D0%B0%D0%B9%D1%82&amp;diff=13423&amp;oldid=prev"/>
				<updated>2015-07-07T19:42:35Z</updated>
		
		<summary type="html">&lt;p&gt;Новая страница: «local p = {} function p.base( f ) 	local args = f 	if f == mw.getCurrentFrame() then  		args = require( &amp;#039;Модуль:ProcessArgs&amp;#039; ).merge( true ) 	end 	 	-- На…»&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;local p = {}&lt;br /&gt;
function p.base( f )&lt;br /&gt;
	local args = f&lt;br /&gt;
	if f == mw.getCurrentFrame() then &lt;br /&gt;
		args = require( 'Модуль:ProcessArgs' ).merge( true )&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	-- Настройки по умолчанию&lt;br /&gt;
	local default = {&lt;br /&gt;
		[&amp;quot;масштаб&amp;quot;] = 1,&lt;br /&gt;
		[&amp;quot;формат&amp;quot;] = 256,&lt;br /&gt;
		[&amp;quot;разм&amp;quot;] = 16,&lt;br /&gt;
		[&amp;quot;поз&amp;quot;] = 1,&lt;br /&gt;
		[&amp;quot;ссылка&amp;quot;] = '',&lt;br /&gt;
		[&amp;quot;выравн&amp;quot;] = 'text-top',&lt;br /&gt;
		[&amp;quot;класс&amp;quot;] = '',&lt;br /&gt;
		[&amp;quot;текст&amp;quot;] = '',&lt;br /&gt;
		[&amp;quot;назв&amp;quot;] = ''&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	local defaultStyle = mw.clone( default )&lt;br /&gt;
	if args[&amp;quot;настройки&amp;quot;] then&lt;br /&gt;
		local settings = mw.loadData( 'Модуль:' .. args[&amp;quot;настройки&amp;quot;] .. 'Спрайт' )&lt;br /&gt;
		for k, v in pairs( settings ) do&lt;br /&gt;
			default[k] = v&lt;br /&gt;
			if settings[&amp;quot;таблстилей&amp;quot;] then&lt;br /&gt;
				defaultStyle[k] = v&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local name = args[&amp;quot;имя&amp;quot;] or default[&amp;quot;имя&amp;quot;]&lt;br /&gt;
	local scale = args[&amp;quot;масштаб&amp;quot;] or default[&amp;quot;масштаб&amp;quot;]&lt;br /&gt;
	local autoScale = args[&amp;quot;автомасштаб&amp;quot;] or default[&amp;quot;автомасштаб&amp;quot;]&lt;br /&gt;
	local sheetWidth = args[&amp;quot;формат&amp;quot;] or default[&amp;quot;формат&amp;quot;]&lt;br /&gt;
	local size = args[&amp;quot;разм&amp;quot;] or default[&amp;quot;разм&amp;quot;]&lt;br /&gt;
	local pos = math.abs( args[&amp;quot;поз&amp;quot;] or default[&amp;quot;поз&amp;quot;] ) - 1&lt;br /&gt;
	local link = args[&amp;quot;ссылка&amp;quot;] or default[&amp;quot;ссылка&amp;quot;]&lt;br /&gt;
	local align = args[&amp;quot;выравн&amp;quot;] or default[&amp;quot;выравн&amp;quot;]&lt;br /&gt;
	local class = args[&amp;quot;класс&amp;quot;] or default[&amp;quot;класс&amp;quot;]&lt;br /&gt;
	local text = args[&amp;quot;текст&amp;quot;] or default[&amp;quot;текст&amp;quot;]&lt;br /&gt;
	local title = args[&amp;quot;назв&amp;quot;] or default[&amp;quot;назв&amp;quot;]&lt;br /&gt;
	local css = args[&amp;quot;css&amp;quot;] or default[&amp;quot;css&amp;quot;]&lt;br /&gt;
	local className = args[&amp;quot;имякласса&amp;quot;] or default[&amp;quot;имякласса&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
	local tiles = sheetWidth / size&lt;br /&gt;
	local left = pos % tiles * size&lt;br /&gt;
	local top = math.floor( pos / tiles ) * size&lt;br /&gt;
	&lt;br /&gt;
	local styles = {}&lt;br /&gt;
	if args[&amp;quot;таблстилей&amp;quot;] or default[&amp;quot;таблстилей&amp;quot;] then&lt;br /&gt;
		class = ( className or mw.ustring.lower( name:gsub( ' ', '-' ) ) .. '-sprite ' ) .. class&lt;br /&gt;
	else&lt;br /&gt;
		table.insert( styles, 'background-image:{{FileUrl|' .. ( args[&amp;quot;изобр&amp;quot;] or default[&amp;quot;изобр&amp;quot;] or name .. 'CSS.png' ) .. '}}' )&lt;br /&gt;
	end&lt;br /&gt;
	if left &amp;gt; 0 or top &amp;gt; 0 then&lt;br /&gt;
		table.insert( styles, 'background-position:-' .. left * scale .. 'px -' .. top * scale .. 'px' )&lt;br /&gt;
	end&lt;br /&gt;
	if not autoScale and scale ~= defaultStyle[&amp;quot;масштаб&amp;quot;] then&lt;br /&gt;
		table.insert( styles, 'background-size:' .. sheetWidth * scale .. 'px auto' )&lt;br /&gt;
	end&lt;br /&gt;
	if size ~= defaultStyle[&amp;quot;разм&amp;quot;] or ( not autoScale and scale ~= defaultStyle[&amp;quot;масштаб&amp;quot;] ) then&lt;br /&gt;
		table.insert( styles, 'height:' .. size * scale .. 'px;width:' .. size * scale .. 'px' )&lt;br /&gt;
	end&lt;br /&gt;
	if align ~= defaultStyle[&amp;quot;выравн&amp;quot;] then&lt;br /&gt;
		table.insert( styles, 'vertical-align:' .. align )&lt;br /&gt;
	end&lt;br /&gt;
	if css then&lt;br /&gt;
		table.insert( styles, css )&lt;br /&gt;
	end&lt;br /&gt;
	if title ~= '' then&lt;br /&gt;
		title = ' title=&amp;quot;' .. title .. '&amp;quot;'&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local sprite = table.concat( {&lt;br /&gt;
		'&amp;lt;span',&lt;br /&gt;
			'class=&amp;quot;sprite ' .. class .. '&amp;quot;',&lt;br /&gt;
			'style=&amp;quot;' .. table.concat( styles, ';' ) .. '&amp;quot;',&lt;br /&gt;
			title,&lt;br /&gt;
		'&amp;gt;&amp;lt;br&amp;gt;&amp;lt;/span&amp;gt;'&lt;br /&gt;
	}, ' ' )&lt;br /&gt;
	sprite = sprite:gsub( '%s+([&amp;quot;&amp;gt;])', '%1' )&lt;br /&gt;
	&lt;br /&gt;
	if text ~= '' then&lt;br /&gt;
		text = '&amp;lt;span class=&amp;quot;sprite-text nowrap&amp;quot;' .. title .. '&amp;gt;' .. text .. '&amp;lt;/span&amp;gt;'&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	if link ~= '' then&lt;br /&gt;
		if link:find( '//' ) then&lt;br /&gt;
			-- Внешняя ссылка&lt;br /&gt;
			return '[' .. link .. ' ' .. sprite .. text .. ']'&lt;br /&gt;
		else&lt;br /&gt;
			-- Внутренняя ссылка&lt;br /&gt;
			local linkPrefix = args[&amp;quot;предссылки&amp;quot;] or default[&amp;quot;предссылки&amp;quot;] or ''&lt;br /&gt;
			return '[[' .. linkPrefix .. link .. '|' .. sprite .. text .. ']]'&lt;br /&gt;
		end&lt;br /&gt;
	else&lt;br /&gt;
		return sprite .. text&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.sprite( f )&lt;br /&gt;
	local args = f&lt;br /&gt;
	if f == mw.getCurrentFrame() then&lt;br /&gt;
		args = require( 'Модуль:ProcessArgs' ).merge( true )&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local category = ''&lt;br /&gt;
	if tonumber( args[1] ) then&lt;br /&gt;
		args[&amp;quot;поз&amp;quot;] = args[1]&lt;br /&gt;
	else&lt;br /&gt;
		local default = {}&lt;br /&gt;
		if args[&amp;quot;настройки&amp;quot;] then&lt;br /&gt;
			default = mw.loadData( 'Модуль:' .. args[&amp;quot;настройки&amp;quot;] .. 'Спрайт'  )&lt;br /&gt;
		end&lt;br /&gt;
		&lt;br /&gt;
		local name = args[&amp;quot;имя&amp;quot;] or default[&amp;quot;имя&amp;quot;]&lt;br /&gt;
		local ids = mw.loadData( 'Модуль:' .. ( args[&amp;quot;IDы&amp;quot;] or default[&amp;quot;IDы&amp;quot;] or 'Спрайт/' .. name ) )&lt;br /&gt;
		local id = mw.text.trim( args[1] or '' )&lt;br /&gt;
		local pos = ids[id] or ids[mw.ustring.lower( id ):gsub( '[%s%+]', '-' )]&lt;br /&gt;
		if not pos and not mw.title.getCurrentTitle().isSubpage then&lt;br /&gt;
			category = '[[Категория:Страницы с неработающими спрайтами]]'&lt;br /&gt;
		end&lt;br /&gt;
		args[&amp;quot;поз&amp;quot;] = pos&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	return p.base( args ) .. category&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.link( f )&lt;br /&gt;
	local args = f&lt;br /&gt;
	if f == mw.getCurrentFrame() then&lt;br /&gt;
		args = require( 'Модуль:ProcessArgs' ).merge( true )&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local link = args[1]&lt;br /&gt;
	if args[1] and not args.id then&lt;br /&gt;
		link = args[1]:match( '^(.-)%+' ) or args[1]&lt;br /&gt;
	end&lt;br /&gt;
	local text = args[&amp;quot;текст&amp;quot;] or args[2] or link&lt;br /&gt;
	&lt;br /&gt;
	args[1] = args[&amp;quot;ID&amp;quot;] or args[1]&lt;br /&gt;
	args[&amp;quot;ссылка&amp;quot;] = link&lt;br /&gt;
	args[&amp;quot;текст&amp;quot;] = text&lt;br /&gt;
	&lt;br /&gt;
	return p.sprite( args )&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.doc( f )&lt;br /&gt;
	local settings = mw.loadData( 'Модуль:' .. f.args[1] .. 'Спрайт' )&lt;br /&gt;
	local idTable = mw.title.new( 'Модуль:' .. ( settings.ids or 'Спрайт/' .. settings.name ) ):getContent()&lt;br /&gt;
	idTable = idTable:gsub( '(\n%s*%-%-%s*.-%s*%-%-%s*\n)', '%1,' ):gsub( '^return {', '' ):gsub( '}$', '' )&lt;br /&gt;
	&lt;br /&gt;
	local html = {}&lt;br /&gt;
	local ids = {}&lt;br /&gt;
	local posKeys = {}&lt;br /&gt;
	local section = ''&lt;br /&gt;
	for line in mw.text.gsplit( idTable, ',' ) do&lt;br /&gt;
		line = mw.text.trim( line )&lt;br /&gt;
		id = line:match( '^%[[\'&amp;quot;](.+)[\'&amp;quot;]%]' ) or line:match( '^%w+' ) or ''&lt;br /&gt;
		pos = line:match( '=%s*(%d+)%s*,?$' ) or ''&lt;br /&gt;
		section = line:match( '^%-%-%s*(.+)%s*%-%-$' ) or section&lt;br /&gt;
		&lt;br /&gt;
		if id ~= '' and pos ~= '' then&lt;br /&gt;
			if ids[pos] then&lt;br /&gt;
				if type( ids[pos].id ) == 'table' then&lt;br /&gt;
					table.insert( ids[pos].id, id )&lt;br /&gt;
				else&lt;br /&gt;
					ids[pos].id = { ids[pos].id, id }&lt;br /&gt;
				end&lt;br /&gt;
			else&lt;br /&gt;
				ids[pos] = { id = id, section = section }&lt;br /&gt;
				table.insert( posKeys, pos )&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
		&lt;br /&gt;
	local list = {}&lt;br /&gt;
	local listHead = '&amp;lt;ul class=&amp;quot;spritedoc-multicolumn&amp;quot;&amp;gt;'&lt;br /&gt;
	local listFoot = '&amp;lt;/ul&amp;gt;'&lt;br /&gt;
	local lastSection = ''&lt;br /&gt;
	for i, pos in ipairs( posKeys ) do&lt;br /&gt;
		local id = ids[pos].id&lt;br /&gt;
		local newSection = mw.text.trim( ids[pos].section )&lt;br /&gt;
		&lt;br /&gt;
		if newSection ~= lastSection or i == 1 then&lt;br /&gt;
			if newSection ~= lastSection then&lt;br /&gt;
				if lastSection ~= '' then&lt;br /&gt;
					table.insert( list, listFoot )&lt;br /&gt;
				end&lt;br /&gt;
				&lt;br /&gt;
				table.insert( list, '\n=== ' .. newSection .. ' ===\n' )&lt;br /&gt;
				lastSection = newSection&lt;br /&gt;
			end&lt;br /&gt;
			table.insert( list, listHead )&lt;br /&gt;
		end&lt;br /&gt;
		table.insert( list, '&amp;lt;li&amp;gt;&amp;lt;table&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td data-pos=&amp;quot;' .. pos .. '&amp;quot;&amp;gt;' )&lt;br /&gt;
		if type( id ) == 'table' then&lt;br /&gt;
			for i, id2 in ipairs( id ) do&lt;br /&gt;
				if i == 1 then&lt;br /&gt;
					table.insert( list, p.sprite{ id2, settings = f.args[1] } .. '&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;div class=&amp;quot;sprite-id&amp;quot;&amp;gt;&amp;lt;code&amp;gt;' .. id2 .. '&amp;lt;/code&amp;gt;&amp;lt;/div&amp;gt;' )&lt;br /&gt;
				else&lt;br /&gt;
					table.insert( list, '&amp;lt;div class=&amp;quot;sprite-id&amp;quot;&amp;gt;&amp;lt;code&amp;gt;' .. id2 .. '&amp;lt;/code&amp;gt;&amp;lt;/div&amp;gt;' )&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
		else&lt;br /&gt;
			table.insert( list, p.sprite{ id, settings = f.args[1] } .. '&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;div class=&amp;quot;sprite-id&amp;quot;&amp;gt;&amp;lt;code&amp;gt;' .. id .. '&amp;lt;/code&amp;gt;&amp;lt;/div&amp;gt;' )&lt;br /&gt;
		end&lt;br /&gt;
		table.insert( list, '&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&amp;lt;/li&amp;gt;' )&lt;br /&gt;
		&lt;br /&gt;
		if i == #posKeys then&lt;br /&gt;
			table.insert( list, listFoot )&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local out = table.concat( list )&lt;br /&gt;
	if not f.args.refresh then&lt;br /&gt;
		out = f:preprocess( '{{#widget:stylesheet|page=Sprite doc}}' ) .. '&amp;lt;div id=&amp;quot;sprite-doc&amp;quot; data-settings=&amp;quot;' .. f.args[1] .. '&amp;quot;&amp;gt;' .. out .. '&amp;lt;/div&amp;gt;'&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	return out&lt;br /&gt;
end&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Asassin 1</name></author>	</entry>

	</feed>