Это небольшое дополнение заставит Ваш аватар всячески кривляться :) Показывать язык, улыбаться, подмигавить и др. 
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.
|