Initial Upload
This commit is contained in:
161
Cawfee/awfullyhotcawfeepahot.lsl
Normal file
161
Cawfee/awfullyhotcawfeepahot.lsl
Normal file
@ -0,0 +1,161 @@
|
||||
integer actual_seconds_passed = 15; // Counter for Seconds since last sip was taken, once it passes the minimum another can and this is reset
|
||||
integer minimum_seconds_needed = 20; // Number of Seconds before a Sip can be take
|
||||
float act_frequency = 0.3; // Frequency % of Sip to add RNG
|
||||
|
||||
integer full_level = 100; // Full size of drink, not really used
|
||||
integer current_drink_level = 0; // Counter for the current drink value to help calc the alpha changes
|
||||
list cawfeeLevelFaceInts = [4, 3, 2, 1]; // Array of face Integers on the mesh model
|
||||
|
||||
float animation_mid_point = 1; // Number of seconds to sleep during the animation to help it line up
|
||||
string idle_anim = "cawfeeidle"; // Animation used for idle
|
||||
string action_anim = "cawfeeswig"; // Animation used for swiggin
|
||||
list no_cawfee_anims = ["cawfeenocawfeeA", "cawfeenocawfeeB"]; // Animation used for the worst outcome
|
||||
list cawfee_reloaded_anims = ["cawfeerenewedA", "cawfeerenewedB"]; //
|
||||
integer NO_CAWFEE = 0; // int for no cawfee, really its to check if we already did the no cawfee anim
|
||||
integer NO_CAWFEE_WHICH = 0; // int to store which animation set is currently playing for the no cawfee
|
||||
|
||||
integer freeze_logic = 0; // 1 TRUE, 0 FALSE, Freezes the alpha script checks
|
||||
|
||||
integer sip_multiplier = 20; // Bigger number for bigger sips
|
||||
string sip_sfx = "SipSFX"; // SFX used for sippin
|
||||
float sip_sound_vol = 0.0; // Volume for Sip SFX
|
||||
integer sip_do_sound = 0; // 1 TRUE, 0 FALSE, toggle for disabling the annoying sound
|
||||
|
||||
list particle_settings = [
|
||||
PSYS_PART_MAX_AGE,1.50,
|
||||
PSYS_PART_FLAGS, 259,
|
||||
PSYS_PART_START_COLOR, <1.0, 1.0, 1.0>,
|
||||
PSYS_PART_END_COLOR, <1.0, 1.0, 1.0>,
|
||||
PSYS_PART_START_SCALE,<0.15062, 0.15062, 0.00000>,
|
||||
PSYS_PART_END_SCALE,<0.77423, 1.21800, 0.00000>,
|
||||
PSYS_SRC_PATTERN, 2,
|
||||
PSYS_SRC_BURST_RATE,0.00,
|
||||
PSYS_SRC_BURST_PART_COUNT,3,
|
||||
PSYS_SRC_BURST_RADIUS,0.00,
|
||||
PSYS_SRC_BURST_SPEED_MIN,0.07,
|
||||
PSYS_SRC_BURST_SPEED_MAX,0.35,
|
||||
PSYS_SRC_ANGLE_BEGIN, 1.65,
|
||||
PSYS_SRC_ANGLE_END, 0.00,
|
||||
PSYS_SRC_MAX_AGE, 10.0,
|
||||
PSYS_SRC_TEXTURE, "006d9758-81da-38a9-9be3-b6c941cae931",
|
||||
PSYS_PART_START_ALPHA, 0.40,
|
||||
PSYS_PART_END_ALPHA, 0.00,
|
||||
PSYS_SRC_ACCEL, <0.00, 0.00, 1.14>
|
||||
];
|
||||
|
||||
default
|
||||
{
|
||||
state_entry() {
|
||||
llRequestPermissions(llGetOwner(), PERMISSION_TRIGGER_ANIMATION);
|
||||
llSetTimerEvent(1);
|
||||
llStartAnimation(idle_anim);
|
||||
}
|
||||
|
||||
on_rez(integer param) {
|
||||
llResetScript();
|
||||
current_drink_level = 0;
|
||||
actual_seconds_passed = 0;
|
||||
|
||||
llSetLinkAlpha(LINK_ALL_OTHERS, 1.0, ALL_SIDES); // Reset alphas on touch
|
||||
}
|
||||
|
||||
attach(key id)
|
||||
{
|
||||
integer perm = llGetPermissions();
|
||||
|
||||
if (id != NULL_KEY) {
|
||||
if (!(perm & PERMISSION_TRIGGER_ANIMATION)) {
|
||||
llRequestPermissions(llGetOwner(), PERMISSION_TRIGGER_ANIMATION);
|
||||
}
|
||||
llStartAnimation(idle_anim);
|
||||
} else {
|
||||
llStopAnimation(idle_anim);
|
||||
llStopAnimation(action_anim);
|
||||
integer i = 0;
|
||||
integer total_no_cawf_anims = llGetListLength(no_cawfee_anims);
|
||||
for (i = 0; i < total_no_cawf_anims; ++i) {
|
||||
llStopAnimation(llList2String(no_cawfee_anims, i));
|
||||
llStopAnimation(llList2String(cawfee_reloaded_anims, i));
|
||||
}
|
||||
current_drink_level = 0;
|
||||
actual_seconds_passed = 0;
|
||||
llSetLinkAlpha(LINK_ALL_OTHERS, 1.0, ALL_SIDES); // Reset alphas on touch
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
moving_start()
|
||||
{
|
||||
if (NO_CAWFEE == 1) {
|
||||
NO_CAWFEE = 0;
|
||||
llStopAnimation(llList2String(cawfee_reloaded_anims, NO_CAWFEE_WHICH));
|
||||
llStopAnimation(llList2String(no_cawfee_anims, NO_CAWFEE_WHICH));
|
||||
actual_seconds_passed = -30;
|
||||
}
|
||||
}
|
||||
|
||||
touch(integer num_detected) {
|
||||
current_drink_level = 0;
|
||||
actual_seconds_passed = 0;
|
||||
llParticleSystem(particle_settings);
|
||||
|
||||
llSleep(animation_mid_point); // Sleep so particle effect can start
|
||||
llSetLinkAlpha(LINK_ALL_OTHERS, 1.0, ALL_SIDES); // Reset alphas on touch
|
||||
|
||||
if (NO_CAWFEE == 1) {
|
||||
NO_CAWFEE = 0;
|
||||
llSleep(10);
|
||||
llStartAnimation(llList2String(cawfee_reloaded_anims, NO_CAWFEE_WHICH));
|
||||
llSleep(2);
|
||||
llStopAnimation(llList2String(no_cawfee_anims, NO_CAWFEE_WHICH));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
timer() {
|
||||
if (actual_seconds_passed >= minimum_seconds_needed) {
|
||||
if ((current_drink_level < full_level)) {
|
||||
float roll_dem_bones = llFrand(1.0);
|
||||
if (roll_dem_bones <= act_frequency) {
|
||||
llStartAnimation(action_anim);
|
||||
actual_seconds_passed = 0;
|
||||
|
||||
if ((current_drink_level < full_level) && (freeze_logic != 1)) {
|
||||
integer sip_size = llRound((llFrand(1.0) * sip_multiplier));
|
||||
current_drink_level += sip_size;
|
||||
|
||||
llSleep(animation_mid_point); // Sleep to stop alpha going before the animation has touched face like
|
||||
if (sip_do_sound == 1) {
|
||||
llPlaySound(sip_sfx, sip_sound_vol);
|
||||
}
|
||||
if (current_drink_level >= 15 && current_drink_level < 35) {
|
||||
llSetLinkAlpha(LINK_ALL_OTHERS, 0.0, llList2Integer(cawfeeLevelFaceInts, 0));
|
||||
} else if (current_drink_level >= 35 && current_drink_level < 75) {
|
||||
llSetLinkAlpha(LINK_ALL_OTHERS, 0.0, llList2Integer(cawfeeLevelFaceInts, 0));
|
||||
llSetLinkAlpha(LINK_ALL_OTHERS, 0.0, llList2Integer(cawfeeLevelFaceInts, 1));
|
||||
} else if (current_drink_level >= 75 && current_drink_level < 100) {
|
||||
llSetLinkAlpha(LINK_ALL_OTHERS, 0.0, llList2Integer(cawfeeLevelFaceInts, 0));
|
||||
llSetLinkAlpha(LINK_ALL_OTHERS, 0.0, llList2Integer(cawfeeLevelFaceInts, 1));
|
||||
llSetLinkAlpha(LINK_ALL_OTHERS, 0.0, llList2Integer(cawfeeLevelFaceInts, 2));
|
||||
} else if (current_drink_level >= 100) {
|
||||
llSetLinkAlpha(LINK_ALL_OTHERS, 0.0, llList2Integer(cawfeeLevelFaceInts, 0));
|
||||
llSetLinkAlpha(LINK_ALL_OTHERS, 0.0, llList2Integer(cawfeeLevelFaceInts, 1));
|
||||
llSetLinkAlpha(LINK_ALL_OTHERS, 0.0, llList2Integer(cawfeeLevelFaceInts, 2));
|
||||
llSetLinkAlpha(LINK_ALL_OTHERS, 0.0, llList2Integer(cawfeeLevelFaceInts, 3));
|
||||
}
|
||||
}
|
||||
} else {
|
||||
++actual_seconds_passed;
|
||||
}
|
||||
} else {
|
||||
if (NO_CAWFEE != 1) {
|
||||
NO_CAWFEE_WHICH = ((llRound(2.0 - llFrand(1))) - 1);
|
||||
llStartAnimation(llList2String(no_cawfee_anims, NO_CAWFEE_WHICH));
|
||||
NO_CAWFEE = 1;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
++actual_seconds_passed;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user