// :CATEGORY:XS Pet // :NAME:XS Pet Robot // :AUTHOR:Ferd Frederix // :KEYWORDS: Pet,XS,breed,breedable,companion,Ozimal,Meeroo,Amaretto,critter,Fennux,Pets // :CREATED:2013-09-06 // :EDITED:2014-03-22 // :ID:988 // :NUM:1604 // :REV:0.50 // :WORLD:Second Life, OpenSim // :DESCRIPTION: // XS Pet re-animator // :CODE: // add this script ( and modify it) to add custom animatons based on pre-exisitng animal effects. integer LINK_ANIMATE = 1; // messages on num 1 are assumed to be directed at the prim animator. /// This is a list of pre-defined pet functions that can be used to re-animate a pet integer DECREASE_FOOD = 100; // used in the food bowl. integer LINK_AGE_START = 800; // when pet is rezzed and secret_number is sent by brain to breeder, eater and infomatic get booted up integer LINK_TEXTURE = 801; // ask for a new texture, or paint a color integer LINK_BREEDNAME = 802; // the name of the pet texture from the texture server notecard integer LINK_FOOD_CONSUME = 900; // from movement to brain when close to food, brain then consumes a random amount up to 10000 integer LINK_FOODMINUS = 901; // xs_brain receives FOOD_CONSUME, decrement hunger (eat) integer LINK_HUNGRY = 903; // sent by eater (string)hunger_amount, checks each hour integer LINK_HAMOUNT = 904; // hunger_amount = (integer)str,m updates the hunger amount in scripts integer LINK_SET_HOME = 910; // loc ^ dist integer LINK_MOVER = 911; // tell mover to rest for str seconds integer LINK_FOODIE_CLR = 920; // clear all food_bowl_keys and contents integer LINK_FOODIE = 921; // send FOOD_LOCATION coordinates to movement integer LINK_COLOR1 = 930; // colour1 integer LINK_COLOR2 = 931; // colour2 integer LINK_SEX = 932; // sex integer LINK_SHINE = 933; // shine integer LINK_GLOW = 934; // glow integer LINK_GEN = 935; // generation integer LINK_RESET_SIZE = 936; // reset size to 1 integer LINK_MAGE = 940; // xs_brain sends, xs_ager consumes, adds str to age, if older than 7 days, will grow the animal integer LINK_DAYTIME = 941; // xs_ager consumes, starts a timer of 86,400 seconds in xs_ager integer LINK_GET_AGE = 942; // get age from xs_ager and sent it on channel 943 integer LINK_PUT_AGE = 943; // print age from xs_ager integer LINK_PACKAGE = 950; // look for a cryo_crate integer LINK_SEEK_FEMALE = 960; // MALE_BREED_CALL integer LINK_MALE_BREED_CALL = 961; // triggered by LINK_SEEK_FEMALE integer LINK_SIGNAL_ELIGIBLE = 962; // sent by female when hears LINK_MALE_BREED_CALL integer LINK_FEMALE_ELIGIBLE = 963; // sent when it hears in chat FEMALE_ELIGIBLE integer LINK_CALL_MALE = 964; // if LINK_FEMALE_ELIGIBLE && looking_for_female integer LINK_MALE_ON_THE_WAY = 965; // triggered by LINK_CALL_MALE integer LINK_FEMALE_LOCATION = 966; // female location, sends coordinates of a female integer LINK_RQST_BREED = 967; // sent when close enough to male/female integer LINK_CALL_MALE_INFO = 968; // sent by xs_breeding, this line of code was in error in v.24 of xs_breeding see line 557 and 636 of xs_brain which make calls and also xs_breeding which receives LINK_MALE_INFO. integer LINK_MALE_INFO = 969; // Breeding failed, sent info integer LINK_LAY_EGG = 970; // Rez Object(Egg... integer LINK_BREED_FAIL = 971; // key = father, failed, timed out integer LINK_PREGNANT = 972; // chick is preggers integer LINK_SOUND_OFF= 974; // sound is off integer LINK_SOUND_ON= 973; // sound is on integer LINK_SLEEPING = 990; // close eyes integer LINK_UNSLEEPING = 991; // open eyes integer LINK_SOUND = 1001; // plays a sound if enabled integer LINK_SPECIAL = 1010; // xs_special, if str = "Normal", removes script integer LINK_EFFECTS_ON = 2000; // particle effects in the packager integer LINK_PREGNANCY_TIME = 5000; // in seconds as str integer LINK_SLEEP = 7999; // disable sleep by parameter integer LINK_TIMER = 8000; // scan for food bowl about every 1800 seconds integer LINK_DIE = 9999; // death string Copyright = " (c)2014 by Ferd Frederix"; // You cannot change this line, but you can change the code that prints it! // See License agreements above. // Attribution is required, as these files are copyrighted. animate(string str) { llMessageLinked(LINK_SET,LINK_ANIMATE, str, ""); } default { link_message(integer sender_number, integer number, string message, key id) { if (number == LINK_ANIMATE) return; // ignore animations that are already in the pet code if (number == LINK_LAY_EGG) animate("givebirth"); // this plays the animation named "givebirth" when a pet lays an egg else if (number == LINK_FOODMINUS) animate("eatfood"); // this plays the animation named "eatfood" when a pet eats the food else if (number == LINK_PREGNANT) animate("havesex"); // this plays the animation named "havesex" when a female gets laid // and so on and on } }