OKStyle
Эксперт
Много встречал вопросов по поводу посвечиваемых пикапов. Решил написать простенькую функцию для более успешной реализации этой задумки.
Версия 1
lightcolor - постоянный точечный свет, можно поменять по желанию на:
19289 - 19292 - плавно мигающий точечный свет
19295 - 19298 - заполняющий радиальный свет
Использование:
Автор: OKStyle
Версия 2
Дабы упростить работу с созданием и удалением, сделаем так:
Сами функции:
В OnPlayerPickUpPickup (в самое начало):
Вариант набросан на коленке, не тестировался, предлагайте варианты доработок. Только без понтокодов, в которых не разбираетесь, пожалуйста. Нам юзер-фрэндли надо 
Чтобы видеть скрытое содержание Зарегистрируйтесь на форуме!
Версия 1
PHP:
stock CreateBacklightPickup(model, type, Float:x, Float:y, Float:z, virtualworld = 0, color = 5)
{
new lightcolor[4] = {19281, 19282, 19283, 19284};
if(color != 5) CreatePickup(lightcolor[color], type, x, y, z, virtualworld); // если цвет 5, подсветка не создаётся
return CreatePickup(model, type, x, y, z, virtualworld);
}
19289 - 19292 - плавно мигающий точечный свет
19295 - 19298 - заполняющий радиальный свет
Использование:
PHP:
CreateBacklightPickup(model, type, x, y, z, _, 1); // Цвета от 0 до 3, _ если виртуальный мир не задаётся
Версия 2
Дабы упростить работу с созданием и удалением, сделаем так:
PHP:
new PU_BL_Name[MAX_PICKUPS], pu_bl_index;
PHP:
stock CreateBacklightPickup(model, type, Float:x, Float:y, Float:z, virtualworld = 0, color = 5)
{
new lightcolor[4] = {19281, 19282, 19283, 19284};
PU_BL_Name[pu_bl_index] = CreatePickup(model, type, x, y, z, virtualworld);
if(0 <= color <= 4) PU_BL_Name[pu_bl_index + 1] = CreatePickup(lightcolor[color], type, x, y, z, virtualworld);
pu_bl_index += 2;
return 1;
}
stock DestroyBacklightPickup(pickupid)
{
if(PU_BL_Name[0] <= pickupid < PU_BL_Name[pu_bl_index])
{
DestroyPickup(pickupid);
DestroyPickup(pickupid + 1);
}
return 1;
}
stock CheckBacklightPickup(pickupid) // вынесем кастом-проверки за нативную функцию
{
for(new i = PU_BL_Name[0]; i < pu_bl_index; i += 2)
{
if(i != pickupid) continue;
switch(i)
{
case 0: // начало
case 2: // каждый второй
default: return 1;
}
}
return 1;
}
PHP:
CheckBacklightPickup(pickupid);
Последнее редактирование:
