On-line: гостей 0. Всего: 0 [подробнее..]
АвторСообщение
moderator




Пост N: 936
Рейтинг: 3
ссылка на сообщение  Отправлено: 27.07.07 14:22. Заголовок: Макросы


Сюда выкладываем макросы, или вспомогательные функции, состоящие из других функций.

Взрыв

function explosion(x, y, times, spd)
local times = times or 1
local spd = spd or 0
for i=0, times-1 do
pushcmd(function() actor("user_object", x, y, {name="exploder"});
damage(100, "exploder") end, 0+i/100*spd)
end
end

x, y - координаты взрыва
times(опционально) - количество взрывов
spd(опционально) - время между взрывами в миллисекундах.

Применение:
explosion(16*32, 12*32, 5, 20) -- бомбардировка по клетке 16-12.
explosion(16*32, 12*32, 5, 0) -- мгновенный сильный взрыв по клетке 16-12.
explosion(16*32, 12*32) -- единичный взрыв.

Спасибо: 0 
Профиль Цитата Ответить
Ответов - 22 , стр: 1 2 All [только новые]


постоянный участник




Пост N: 2241
Рейтинг: 4
ссылка на сообщение  Отправлено: 07.01.12 12:52. Заголовок: Сегодня работал над ..


Сегодня работал над созданием случайных пушек и над отключением прицеливанием мышкой.
В первом проблема от незнания, а во втором нужно как-то обновить профиль без входа в опции.
Пока ничего нет, буду в исходниках ковыряться...



Be quiet, be smart, be ready!
I go...
...and you will be deid!
Спасибо: 0 
Профиль Цитата Ответить
постоянный участник




Пост N: 2243
Рейтинг: 4
ссылка на сообщение  Отправлено: 08.01.12 19:30. Заголовок: Вспомнив геометрию, ..


Вспомнив геометрию, написал универсальную функцию передвижения объектов в любом направлении:
function move(name, x, y, valueType, speed) 
x1, y1 = position(name)
x2 = x
y2 = y
if valueType == 'grid' then
x2 = x2*32-16
y2 = y2*32-16
end
xKatAB = math.abs(x1 - x2)
yKatOA = math.abs(y1 - y2)
GipOB = math.sqrt((xKatAB * xKatAB) + (yKatOA * yKatOA))
if x1 < x2 and y1 < y2 then
for i=1, GipOB do
pushcmd( function() setposition(name, x1+i*(xKatAB/GipOB), y1+i*(yKatOA/GipOB)) end, i/speed)
end
end
if x1 > x2 and y1 > y2 then
for i=1, GipOB do
pushcmd( function() setposition(name, x1-i*(xKatAB/GipOB), y1-i*(yKatOA/GipOB)) end, i/speed)
end
end
if x1 > x2 and y1 < y2 then
for i=1, GipOB do
pushcmd( function() setposition(name, x1-i*(xKatAB/GipOB), y1+i*(yKatOA/GipOB)) end, i/speed)
end
end
if x1 < x2 and y1 > y2 then
for i=1, GipOB do
pushcmd( function() setposition(name, x1+i*(xKatAB/GipOB), y1-i*(yKatOA/GipOB)) end, i/speed)
end
end
end




Be quiet, be smart, be ready!
I go...
...and you will be deid!
Спасибо: 0 
Профиль Цитата Ответить
Ответов - 22 , стр: 1 2 All [только новые]
Ответ:
1 2 3 4 5 6 7 8 9
большой шрифт малый шрифт надстрочный подстрочный заголовок большой заголовок видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки моноширинный шрифт моноширинный шрифт горизонтальная линия отступ точка LI бегущая строка оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 5
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет