Creating A Flying Pet: Lesson 3 Chat log
Catfart Grayson: who had a go at creating a brain script?
Max Case: removed my attachwement
Max Case: but still sparkly
Alan Kiesler: I hope I'm not too late?
Gino Medici: yep
You: me me
Catfart Grayson: any problems?
You: imusing a largemouth bass for hair
Catfart Grayson: escuse the spam for a second
Brain 1.0 whispers: Received message on correct channel
Brain 1.0 whispers: received command to move to <243.546249, 80.173203, 174.496658>
Brain 1.0 whispers: At speed 1.000000
Brain 1.0 whispers: until this close 0.250000
Brain 1.0 whispers: Tum ti tum
Brain 1.0 whispers: *****
Brain 1.0 whispers: reached target, sending at target message
Brain 1.0 whispers: *****
Brain 1.0 whispers: Test harness: Waiting for next move message
Brain 1.0 whispers: Received message on correct channel
Brain 1.0 whispers: received command to move to <243.271637, 81.399071, 173.888107>
Brain 1.0 whispers: At speed 1.000000
Brain 1.0 whispers: until this close 0.250000
Brain 1.0 whispers: Tum ti tum
Brain 1.0 whispers: *****
Brain 1.0 whispers: reached target, sending at target message
Brain 1.0 whispers: *****
Brain 1.0 whispers: Test harness: Waiting for next move message
Brain 1.0 whispers: Received message on correct channel
Brain 1.0 whispers: received command to move to <242.684418, 84.771980, 173.606476>
Brain 1.0 whispers: At speed 1.000000
Brain 1.0 whispers: until this close 0.250000
Brain 1.0 whispers: Tum ti tum
Brain 1.0 whispers: *****
Brain 1.0 whispers: reached target, sending at target message
Brain 1.0 whispers: *****
Brain 1.0 whispers: Test harness: Waiting for next move message
Brain 1.0 whispers: Received message on correct channel
Brain 1.0 whispers: received command to move to <245.554718, 82.097916, 172.490311>
Brain 1.0 whispers: At speed 1.000000
Brain 1.0 whispers: until this close 0.250000
Brain 1.0 whispers: Tum ti tum
Brain 1.0 whispers: *****
Brain 1.0 whispers: reached target, sending at target message
Brain 1.0 whispers: *****
Brain 1.0 whispers: Test harness: Waiting for next move message
Brain 1.0 whispers: Received message on correct channel
Brain 1.0 whispers: received command to move to <243.634903, 85.119942, 173.844727>
Brain 1.0 whispers: At speed 1.000000
Brain 1.0 whispers: until this close 0.250000
Brain 1.0 whispers: Tum ti tum
Brain 1.0 whispers: *****
Brain 1.0 whispers: reached target, sending at target message
Brain 1.0 whispers: *****
Brain 1.0 whispers: Test harness: Waiting for next move message
Brain 1.0 whispers: Received message on correct channel
Brain 1.0 whispers: received command to move to <245.078751, 82.339279, 174.690338>
Brain 1.0 whispers: At speed 1.000000
Brain 1.0 whispers: until this close 0.250000
Brain 1.0 whispers: Tum ti tum
Brain 1.0 whispers: *****
Brain 1.0 whispers: reached target, sending at target message
Brain 1.0 whispers: *****
Brain 1.0 whispers: Test harness: Waiting for next move message
You: see thatt'll make these notes be more interestrting
Alan Kiesler: Yep, that looks what I had. :)
Catfart Grayson: lol racer
Catfart Grayson: OK, the box called brain 1.0 contains a working brain script, let me just check the permissions
You: please do they usally suk
Catfart Grayson: right you should be able to buy this box for 0 dollars
Catfart Grayson: inside you will find a working version of the brain script based on
You: like your cards arent allowed to be copied and stuff
Catfart Grayson: the work we did in previous sessions
Dark Sorcerer's Blade: releasing controls
Catfart Grayson: Ok we will make a start
Catfart Grayson: So I've talked about the brains script, which
Catfart Grayson: will give us a location to move to
Catfart Grayson: and today we are going to start looking at the movement script itself
Catfart Grayson: on the screen you can see our basic requirements
Catfart Grayson: the movement script needs to read the link meessages coming from the brain script
Catfart Grayson: its need to send the brain script a message when it has reached the target
Catfart Grayson: and it needs to move our pet in a 'realistic manor
Catfart Grayson: and just for those that didnt see Tinker the first time
Catfart Grayson: Ill get her out and show you what Im talking about
Tink: Hello everyone
Bzzy Stonebender: hi tink
Candide LeMay: catfart you realize that tinker is python interface to TK do you? :-)
Catfart Grayson: as you can see Tink moves around smoothly
Catfart Grayson: candide no I didnt
Catfart Grayson: she stays upright
Catfart Grayson: and wanders around me randomly
Catfart Grayson: she is going high at the moment as her collsion detection tries to get around the objects in the way
Catfart Grayson: we will talk ablut the collsion detection in a later session
Catfart Grayson: so thats what we are aiming for, Ill just make her go away
PDA 0.6 whispers: Killing Tink
Catfart Grayson: ok lets take a look at the state-entry event
Catfart Grayson: as you can see first thing Im doing is setting up a couple of global variables
Catfart Grayson: an integer to hold the target id, Ill talk about that in a sec
Catfart Grayson: a vector to hold the location the object wil move to
Catfart Grayson: and a float holding a value which will be used in a timer event
Catfart Grayson: the heartbeat is one of those variables that you may want to play with to
Catfart Grayson: get the best looking movement
Catfart Grayson: so its best to put it at the top as a global variable
Catfart Grayson: then into the state-entry event itself
Catfart Grayson: everyone happy with the idea that state_entry occurs only once when the script first starts?
Candide LeMay: yup
Max Case: y
Catfart Grayson: or more accurately, when the script first moves into the defaultstate
Catfart Grayson: so in this event, we are going to set up all the status flags that we need
Catfart Grayson: the first is llSetBuoyancy()
Catfart Grayson: llSetBuoyancy takes a float as a parameter
Catfart Grayson: if the value is between 0 and less than 1
Catfart Grayson: then the object is subject to gravity and will sink
Catfart Grayson: (If it it is physical)
Catfart Grayson: set the vaule to 0.5 and the object will drop at about half the rate of normal
Catfart Grayson: set it to 1, and the object floats
Catfart Grayson: set it to above 1, and the object will rise against gravity
Catfart Grayson: I hanvt found a lot of use for setting it above one
Catfart Grayson: unless you want to see yu object rocket up into the sky
Candide LeMay: can't we use it instead of changing the Z position?
Catfart Grayson: candid we need to do both
Catfart Grayson: I suppose you could use it, but it wouldnt be veery accurate
Catfart Grayson: now the buoyancy is why our pet cant weigh more than 90 kg
Catfart Grayson: there is this thing called "energy"
Catfart Grayson: every physical object has "energy"
Catfart Grayson: when it moves, it losses energy, when it runs out it stops
Catfart Grayson: energy is replensihed slowly
Catfart Grayson: energy is one of those things that the Lindens are very cautious about giving
Catfart Grayson: information out on
Catfart Grayson: they wont give details of how it works
Max Case: why would that be?
Catfart Grayson: most of the time, you dont have to worry about it
Rhiannon Chatnoir: do you have theories on how it works
Catfart Grayson: Max, not sure perhaps they are worries we will find a way around the limits that its puts on objects
Candide LeMay: you can crash a sim with the physics engine
Catfart Grayson: Rhia no, to be honest all I know is that if your object wieghs over 90kg
Catfart Grayson: it doesnt replensih its energey fast enough
Max Case: which means itg cant move?
Catfart Grayson: and if you set the buoyancty to 1, your object will still sink
Rhiannon Chatnoir: ahh
Max Case: so its like an inertia thiing
Catfart Grayson: Max correct, but energy replenishes fairly fast
Catfart Grayson: Max yes
Max Case: kk.
Catfart Grayson: so, if buoancy is set to 1, and your object is under 90 kg , it floats
Catfart Grayson: the next line llSetStatus(STATUS_PHYSICS, TRUE)
Max Case: bu what if over 90 with higher boy?
Catfart Grayson: turns the object into a physical object
TxKatie Curie: how do you find the weight?
Catfart Grayson: Max, its sinks
Catfart Grayson: Tx, use the function llGetMass()
TxKatie Curie: ok
Catfart Grayson: setting the STATUS_PHYSICS to TRUE is the say as selecting the tick box in the object editing window
Catfart Grayson: so once that is set, out object can be pushed, is subject to the wind and all the other features
Catfart Grayson: of SL's physics engine
Catfart Grayson: now important note
Catfart Grayson: the next line on thise slide is wrong
Max Case: hehe
Max Case: i was wondering
Catfart Grayson: it should read llSetStatus(STATUS_ROTATE_X, FALSE)
Catfart Grayson: as you can see Im setting both the roatate x and y status to false
Catfart Grayson: this means that the object cannot pitch, put its nose down or up
Catfart Grayson: or roll
Catfart Grayson: it can only turn around the z axis
Catfart Grayson: this is what keeps it upright
Catfart Grayson: these are semi optional
Catfart Grayson: you dont have to set them, some objects do pitch up and down
Catfart Grayson: but for our purposes just allowing it to rotate around the z axis is good enough
Catfart Grayson: if we were using vehicle code, there are a lot more options that you can set around these functions
Catfart Grayson: now the next line I've commened out
Catfart Grayson: llVolumeDetect() is very tricky to use
Catfart Grayson: if you set it, you get a phantom object that still accpects collision commands
Catfart Grayson: which is very handy, but there are some disadvantages
Catfart Grayson: the main one being that it doesnt detect the ground!
Candide LeMay: hehe
Catfart Grayson: if the buoyancy is not set to 1, and you set VolumeDetect, your object will fall through the ground
Candide LeMay: any ground or just prim ground?
Catfart Grayson: Candide any ground
Catfart Grayson: which is a right pain
Max Case: but we will overcome that with follow command??
Catfart Grayson: far better to set the object to phantom using the line
Catfart Grayson: llSetStatus(STATUS_PHANTOM,TRUE)
Max Case: ahhh
Catfart Grayson: that way you object will be phantom, which is a lot easier on the sim
Catfart Grayson: but wont fall through the ground
Catfart Grayson: if you have a lot of flying objects, I reccommend you set them to phantom
Catfart Grayson: A couple of points here
Catfart Grayson: physics objects can do strange things
Catfart Grayson: especially when you are just learning
Catfart Grayson: take lots of copies, just in case you send you object zooming into space
Rhiannon Chatnoir: lol
Bzzy Stonebender: lol ok
Catfart Grayson: use the utility scripts I gave you in session one
Catfart Grayson: physics object bang into lots of thigns
Catfart Grayson: how my nieghbors cheered when I learnt how to turn the collision noise off
Rhiannon Chatnoir: lol
Catfart Grayson: how RacerX cheerd when I stooped them climbing over his land
Max Case: utility scripts?
Catfart Grayson: Max, in the session 2 slide show there was a small set of scripts that did things link turn the collision sond off
Max Case: the sames ones in good neighbour pack from usl?
Max Case: kk.
Catfart Grayson: please be a good scriptoer and keep you objects under control
Catfart Grayson: OK, the last thing we do in the state_entry event is set up a timer
Catfart Grayson: with a value of the heartbea from the top
Catfart Grayson: after that
Catfart Grayson: the script will stop and wait for the brain
Catfart Grayson: script to tell it where to go
Catfart Grayson: anyone got any problems with this bit before I move on to the linkmessage event?
Catfart Grayson: hehe, I cant see anyone typing so onto the next slide
Bzzy Stonebender: I have a few Q's But will wait till the end
Catfart Grayson: kk bzy
Catfart Grayson: Ok, if youve been to the previous sessions you will recognise some of this event
Catfart Grayson: the onlink mesage event waits for a link message, which will come from the brain script
Catfart Grayson: once we get one, we convert the data in the string variable into a list
Catfart Grayson: using the same code as we used in the brain script
Catfart Grayson: like before, we check to see what the channel is and if its the correct value
Catfart Grayson: we check the first item in the list
Catfart Grayson: if its equal to MOVE
Catfart Grayson: we know that it is a move order
Catfart Grayson: and the rest of the data contains inforamtion on were to move to
Catfart Grayson: and there is a mistake here as well,
Catfart Grayson: there should be a vector before the word position
Catfart Grayson: so we know the order the information is coming in from from the brain script
Catfart Grayson: so we put the position, where we want to move to into a vector
Catfart Grayson: then slipped into another variable and the target range into a third
Catfart Grayson: the next two positions are to do with positional targets
Catfart Grayson: need to jump a few slides here
Catfart Grayson: OK we are going to set a positional target, to know when the object
Catfart Grayson: has reached its destination
Catfart Grayson: there are a couple fo diferent "targets"
Catfart Grayson: there are rotational targets, sit targets and positonal targets
Catfart Grayson: we are going to use a positional target in this project
Catfart Grayson: there are two functions and two events assocaited with positional targets
Catfart Grayson: llTarget() sets a new target and llTargetRemove() detes it
Catfart Grayson: llTarget() takes two parameters
Catfart Grayson: the first is the target postion itself, a vector
Catfart Grayson: the second is how near to the target the object needs to get before it reports that it is there
Catfart Grayson: if the object is not within range of the target, the not_at_target event is triggered
Catfart Grayson: when it gets close enough, the at_target event is triggered
Catfart Grayson: so if we set up a target here
Gino Medici: Cat, how often is the not_at_target event called?
Catfart Grayson: while the object is outside the range, the not_at_target event is triggered, CONSTANTLY
Catfart Grayson: Gino, Im not sure exactly how fast it is triggered, but it continues to go off
Catfart Grayson: until either the object moves into range of the target
Catfart Grayson: or you delete the target
Catfart Grayson: does that make sense?
Gino Medici: yep
Catfart Grayson: everyone happy with that?
neand Fleming: sure
Catfart Grayson: ok, lets go back a few slide
Catfart Grayson: Ill just let that rezz
Catfart Grayson: So, first thing we do is remove any old targets that might have been set
Catfart Grayson: using the llTarget remove function
Catfart Grayson: and then we create a new one
Catfart Grayson: using the target and range that the brain scripot sent in the link message
Catfart Grayson: llTarget returns an integer which holds a unique id
Catfart Grayson: we store that in the global variable we set earleir cos we need it so we can delete the target
Catfart Grayson: now the scrip knows where it is going
Catfart Grayson: we then use the llSetForce() function to actualy push the object along
Gino Medici: How come we're using llSetForce and not llMoveToTarget?
Catfart Grayson: Gino, LLmovetoTarget is a damped motion
Catfart Grayson: which means it will start slowly gather speed and then slow again
Catfart Grayson: which is not the sort of motion we want
Gino Medici: oh ok - thankx
Catfart Grayson: plus, move to target will move the object straight towards the target
Catfart Grayson: which we dont want either
Catfart Grayson: our pet is going to turn smoothly towards the target, if it misses, it will turn and try again
Catfart Grayson: as you can see, llSetTarget takes two parameters, the first is a vector which is which direction the object is going to move in
Catfart Grayson: and the second is flag which tells the function whether or not the force is in the direction the object is pointing in
Catfart Grayson: or the global direction of the sim
Catfart Grayson: this is why it is important that the object has its x axis as the forward direction
Catfart Grayson: the first parameter is vector made up of the speed, as the x motion and 0's (zeros) in the y and z motions
Catfart Grayson: the net effect is that the object is pushed in whatever is its forward direction
Catfart Grayson: did that make sense to ppl?
Devin Huber: no
Gino Medici: I think so - might have to try this out after class to see how it works
Catfart Grayson: Devin,whcih bit dont you understand?
Devin Huber: i just got here, i think i may have to come to another class
Catfart Grayson: Devin, Ill give you the previous chat logs after this session
Devin Huber: ok great
Catfart Grayson: can anyone tell me why I'm multiplying the speed by the objects mass?
Olympia Rebus: f=ma?
Catfart Grayson: Olmpia correct
Gino Medici: Although - I'm not sure I understand why the speed is the x part of the vector in the llSetForce command
Olympia Rebus: lucky guess
Catfart Grayson: going back to physics at school the force is equal to the mass of the object times its acceleration
Catfart Grayson: swapping that around a bit you get a = F * M
Catfart Grayson: now you could leave the mass bit out
Catfart Grayson: but if you then put the script in a different object
Catfart Grayson: with a different mass, it wont move with the same speed
Catfart Grayson: by multiplying the force by the mass
Catfart Grayson: whatever object you put this script into, it will move the same
Catfart Grayson: makes it more re usable
Catfart Grayson: one more thing about set force
Catfart Grayson: it is a constant force
Catfart Grayson: that force will now be applied every FPS
Catfart Grayson: so in the next time slice the object will move faster
Catfart Grayson: and faster and faster
Catfart Grayson: so we need to do someting about that later
Coreno Wolfe: we almost done here?
Max Case: do we? THis is good weapons technology. guided missle
Max Case: hhaahh
Catfart Grayson: Coreno, not quite, say onther ten minutes
Catfart Grayson: as this event stands, the object will just keep accelerating, into the distance
You: can we get futer classes and skip ahead a bit if were like pretty clever
Catfart Grayson: the last line uses the function llRotlookAt
Max Case: racerx - you should be able to skip ahead then with what you now have
Max Case: :-)
Catfart Grayson: Racerx, if you want to skip a class, your risk :)
Catfart Grayson: RoLookAt turns the object in a direction
You: oh good my brain was disapointing and me moving it just sent it to its death
Catfart Grayson: as we have limited the object to only turning in the z axis, it wil just spin
Catfart Grayson: BUT
Catfart Grayson: llRotLookAt tries to point the z axis at the target, we want the x axis to point that way
Catfart Grayson: so on the Wiki again, I found a bit of code that converts llRotLookAt to point what ever axis you want
Catfart Grayson: getRottopointaxisat will allow llRotLookAt to use the x axis not the z axis
Catfart Grayson: llRotLookAt has two parameters at the end that effect how fast the object turns
Catfart Grayson: rot_str and rot_damp
Catfart Grayson: these effect the rate of turn of the object
Catfart Grayson: these can be tricky parameters
Catfart Grayson: and you may have to play around with them before you get the effect you want
Catfart Grayson: in general rot_dmp should be about 1/10 of rot_str
Catfart Grayson: So, in the link message event
Catfart Grayson: we set up the target
Catfart Grayson: start a force pushing against the object
Catfart Grayson: and start a turning force to turn the object towards the target
Catfart Grayson: everyone vagulay happy with that?
Rhiannon Chatnoir: yes
Catfart Grayson: I didnt realise how late it is
Catfart Grayson: I can continue for another 15 minutes?
Alan Kiesler: Sure.
Candide LeMay: yeah
Bzzy Stonebender: yes plz
Olympia Rebus: please do
Catfart Grayson: OK, so when our object is not within range of the target, the not_at_target event
Catfart Grayson: is going to be triggered
Catfart Grayson: so we know we are not there yet
Catfart Grayson: what do we want to do. Well we need to turn some more, perhaps
Catfart Grayson: so we put llRotLookAt in there
Catfart Grayson: same as in the link message event
Catfart Grayson: so the object isnt at the target turn towards the target again
Catfart Grayson: now, because we have stopped the object rotating in the x and y axis
Catfart Grayson: and the force is in the direction of the x axis
Catfart Grayson: it cant go up or down
Catfart Grayson: one second
Catfart Grayson: sorry about that
Catfart Grayson: OK so we need to push our object up or down
Catfart Grayson: depending on whether it is above or below the targets z element
Catfart Grayson: First thing is to fnd out where the object is now
Catfart Grayson: putting the result in a local varialbe
Catfart Grayson: then we compare the z component against the z component of the target
Catfart Grayson: if the object is below, we use llApplyImpluse to give a little kick upwards
Catfart Grayson: if the object is to high give it a kick down
Catfart Grayson: notice the difference between llSetForce and llApplyImpulse
Catfart Grayson: llSetForce sets a constant force on the object that doesnt stop until you change it
Catfart Grayson: llApplyImpluse applies a one off push
Catfart Grayson: I havnt shown here the fact that you need to set a global variable up for the force your going to apply, z_force
Catfart Grayson: So if our object is not at the target, we turn towards the target again
Catfart Grayson: if we are too high, knock it down a bit
Catfart Grayson: too low, give it a kick upwards
Catfart Grayson: eveyone happy with that?
neand Fleming: yes
Candide LeMay: yup
Rhiannon Chatnoir: :)
Olympia Rebus: /nod
Catfart Grayson: in theory, eventuialy we actually get within range of the target
Catfart Grayson: and then the at_target event is triggered
Catfart Grayson: when we have reached the target, we want to stop
Catfart Grayson: and then tell the brain script with a link message
Catfart Grayson: that we have reached the target
Catfart Grayson: Ive put a last llrotLookAt() in here just to finally turn the object to look at the target
Catfart Grayson: all_stop is a use defined function
Catfart Grayson: firsthing we do is to turn off all forces
Catfart Grayson: llSetForceAndTorque() does that
Catfart Grayson: that stops all the forces, but doesnt actually stop the object
Catfart Grayson: its stops the acceleration but if the object is moveing(which it will be)
Catfart Grayson: it will just keep going
Catfart Grayson: so we use llApplyImpules to push the object in the opposite direction from waht its going in
Catfart Grayson: -llgetVel() * llGetMass() will give you exaclty the correct force to do that
Catfart Grayson: llApplyRotationalImpulse does the same for any rotational speed the object might have
Catfart Grayson: the result of all_stop is the object will come to a dead halt
Catfart Grayson: this is a very useful function
Catfart Grayson: I reccomend you add this to all your physical scripts
Catfart Grayson: Ladies and gentlemen, Im afraid I must leave it here
Max Case: couldn you just turn off physics to come to dead stop?
Catfart Grayson: next session we will talk about the timer event
Catfart Grayson: Max, yes but it wont look so good :)
Candide LeMay: can we copy the slides or next time
Rhiannon Chatnoir: yes
Catfart Grayson: next time for the slide candie, I want to finsh off the motecard inside
Candide LeMay: 'k
Catfart Grayson: I only got to the state_entry event in my notes :)
Catfart Grayson: OK, Ill put our session 1 and 2 if you need them
Max Case: tahnks
Olympia Rebus: thanks Cat
Catfart Grayson: and if you want a working copy of the brain script there is one in the box in front of the screen
Catfart Grayson: thank you all for coming
Gino Medici: Thanks Cat
neand Fleming: tyvm
Catfart Grayson: OK, same time same day same palce for the next session
Catfart Grayson: thank you again for ateendign
Candide LeMay: it's a great class catfart
Candide LeMay: well done
Catfart Grayson: now, Im going for a quick comfort break back a min aor five
Bzzy Stonebender: yes this is cool
Max Case Claps
Olympia Rebus: /clap
Bzzy Stonebender: how do I get the cards ?
Catfart Grayson: bzzy, buy them for 0 dollars
Olympia Rebus: no buy menu?
Bzzy Stonebender: it is not alowwing me
Catfart Grayson: try now
Olympia Rebus: ah, much better :D
Bzzy Stonebender: ok is now thanks
Olympia Rebus: way cool!
Catfart Grayson: loolsorry must dash, need a weeeee
Jesrad Seraph is offline
Dane Zander is offline
Max Case: bye bye
Rhiannon Chatnoir: so then notes and slide from this week we will get next time.. right
Vapxk Lament is online
Alan Kiesler: As far as I understood, yes.
Aaron Hadlee is online
Alan Kiesler: I found the seession 2 notes on his land for sale. I was there while getting some fish.
Rhiannon Chatnoir: ahhh
Rhiannon Chatnoir: i am set now with that.. thanks...
Alan Kiesler: Its 'not safe' though, so makes me nervous sometimes. :)
Candide LeMay: what's not safe?
Alan Kiesler: Land set to 'not safe,' similar to Jesse or Rousch.
Candide LeMay: aha
Rhiannon Chatnoir: his land
Alan Kiesler: Yep. I have no issue with that actually.
Rhiannon Chatnoir: ahh.. ok.. well bye for all now... see you next week
Candide LeMay: well yeah, Tink only looks cute but she can beat you to bloody pulp ;-)
Alan Kiesler: No thats on another plot of land.
Bzzy Stonebender: brb
You: he has little men there that shoot you
Alan Kiesler: The AI store is on safe land.
Catfart Grayson: ahhh, thats better :)
You: but if oyou have rubber bulletds you can kill them
You: avoide there little buildibg
Alan Kiesler: Catfart, a note about the fish you're selling...
Catfart Grayson: yes Alan?
You: and they dont come out
Alan Kiesler: Well, it may want to be sold with the instruction card separate...
Alan Kiesler: By the time I rezzed it, opened it and read card, and got back to it, it auto-killed.
You: yes if its not modify able you cant pull card out ver y easy
Catfart Grayson: yes, they are an early design, Ive learnt a lot since then, including the best way to sell them
Catfart Grayson: I looked at the code for them the other day, horrible
Alan Kiesler: I don't mind as much, its only L50, I'll go and get another.
Catfart Grayson: Alan what is it your after the instruction card?
Alan Kiesler: Yes, I was, so to get the fish set right. But apparently it auto-dies after some time of not having a marker point.
Alan Kiesler: Auto-die will not goto your folders. Lost forever.
Catfart Grayson: Alan, yes I had to many complaints about them wandering aorund when they couldnt find the target object
Catfart Grayson: let me give you one of the genreators instead
Max Case: bye bye all
Alan Kiesler: I bought the generator as well, thats ok
Catfart Grayson: bye max
Catfart Grayson: I may stop selling the individual fish, they are just oo much trouble to set up :)
Catfart Grayson: thats why I created the generator
Alan Kiesler: *chuckle* Understandable. Though the generator acts funny on my land too.
You: catfart give me the textures ill set them up
Catfart Grayson: racer ok
Rubiks Neva is offline
The Sojourner is offline
Catfart Grayson: Alan, yes I occationally see a fish stomping along over ground trying to get back to water
Alan Kiesler: Actually the problem in my case is fish embedding themselves into the rock wall. :)
Alan Kiesler: Lots of them.
Bzzy Stonebender: well thank you for the class Catfart
You: like i did the sharks ioi dont put all the bells and whistles in but can get it to keep a few fish around and then have them die as more are ressed
Catfart Grayson: lol
Bzzy Stonebender: will see you next wekk
Catfart Grayson: bye for now
Bzzy Stonebender: Aloha everyone
TxKatie Curie: can I get this week's notes?
Catfart Grayson: I must go , see you next week ppl
TxKatie Curie: it's not set to buy
Candide LeMay: good night catfart
Acerus Manray is offline
Alan Kiesler: Night sir, have a good weekend.
Catfart Grayson is offline
You: ok cpould you set pfull pernnmisions on some of this stuff or are you afriad youll loose control of your lessos?
You: ah hes gone busy guy
Candide LeMay: he's gone racer
Candide LeMay: well folks, see ya next week
Candide LeMay: bye
Back To The Create A Flying Pet Home Page
Back To The Script Library
Comments (0)
You don't have permission to comment on this page.