Суббота, 19.07.2025, 19:40

Мой блог

Главная | Регистрация | Вход
Приветствую Вас Гость
RSS
Форма входа
Календарь
«  Сентябрь 2009  »
Пн Вт Ср Чт Пт Сб Вс
 123456
78910111213
14151617181920
21222324252627
282930
Поиск
Друзья сайта
Статистика

Дневник


Главная » 2009 » Сентябрь » 20 » Создаем HUD с эмоциями
Создаем HUD с эмоциями
12:37

Это небольшое дополнение заставит Ваш аватар всячески кривляться :) Показывать язык, улыбаться, подмигавить и др.

1. Нам необходим основной скрипт: 

string smile = "";
key owner = "";
float timeoutmax = 10.0;
float timeoutmin = 4.0;
integer counter = 0;
integer timed = FALSE;

reset()
{
owner = llGetOwner();
llRequestPermissions(owner, PERMISSION_TRIGGER_ANIMATION);
llSetTimerEvent(0);
llMessageLinked(LINK_SET, 5, "unset", "");
timed = FALSE;
smile = "";
}

default
{
state_entry()
{
llSetText("",<1,1,1>,1);
llSetTimerEvent(0);
smile = "";
if(owner == "")
reset();
}

on_rez(integer num)
{
//llResetScript();
if(owner != llGetOwner())
reset();
smile = "";
llOwnerSay("Touch a smiley to do what it says ;-) - The Hourglass activates the random smile mode (green = active, red = inactive) - enjoy! ....PS: :-D looks better than :-)");
}

link_message(integer sender_num, integer num, string str, key id)
{
integer perms = llGetPermissions();
if (perms & PERMISSION_TRIGGER_ANIMATION)
{
if(smile != "")
{
llStopAnimation(smile);
}

if(num == 1)
{
smile = "express_smile";
}
else if(num == 2)
{
smile = "express_toothsmile";
}
else if(num == 3)
{
smile = "express_wink_emote";
}
else if(num == 4)
{
smile = "express_tongue_out";
}
else if(num == 5)
{
if(str == "pressed")
{
if(timed)
{
llSetTimerEvent(0);
llMessageLinked(LINK_SET, 5, "unset", "");
}
else
{
llSetTimerEvent(llFrand(timeoutmax - timeoutmin) + timeoutmin);
llMessageLinked(LINK_SET, 5, "set", "");
}
timed = !timed;
}
}

if(num != 5)
llStartAnimation(smile);
}
}

timer()
{
//llOwnerSay(":-)");
counter++;

integer perms = llGetPermissions();
if (perms & PERMISSION_TRIGGER_ANIMATION)
{
if(counter > 4)
{
smile = "express_smile";
counter = 0;
}
else
{
smile = "express_toothsmile";
}

llStartAnimation(smile);
}

llSetTimerEvent(llFrand(timeoutmax - timeoutmin) + timeoutmin);
}
}

2. Дополнительные скрипты, для кажэой эмоции

2.1 Улыбка 

default
{
touch_start(integer total_number)
{
llMessageLinked(LINK_SET, 1, "", "");
}
}

2.2 Смех

default
{
touch_start(integer total_number)
{
llMessageLinked(LINK_SET, 2, "", "");
}
}

2.3 Подмигнуть

default
{
touch_start(integer total_number)
{
  llMessageLinked(LINK_SET, 3, "", "");
}
}

2.4 Показать язык

default
{
touch_start(integer total_number)
{
  llMessageLinked(LINK_SET, 4, "", "");
}
}


3. Остановить анимации

default
{
touch_start(integer total_number)
{
llMessageLinked(LINK_SET, 5, "pressed", "");
}

link_message(integer sender_num, integer num, string str, key id)
{
if(num == 5)
{
if(str == "set")
{
llSetColor(<.3,1,.3>, ALL_SIDES);
}
else if(str == "unset")
{
llSetColor(<1,.5,.5>, ALL_SIDES);
}
}
}
}

На каждый из доболнительных скриптов создаем отдельный объект. Слинковвываем их между собой и прекрипляем к экрану как HUD.

Просмотров: 1432 | Добавил: volldemar | Рейтинг: 5.0/1 |
Всего комментариев: 0
Имя *:
Email *:
Код *:
Copyright MyCorp © 2025
Сайт управляется системой uCoz