creatures caves welcome, guest
downloads   gallery   dev   community   creatchi   forum   mycaves
bookmarks | search | post new topic
Development Forum
old
Disallowing Creature Pickup in Metarooms   
Andrettin

Andrettin
Austria  


  2/26/2013

Is it possible to disallow creature pickup in specific metarooms? I want to have the player be less able to interact with creatures in specific metarooms. The idea I had was of setting "engine_creature_pickup_status" to 1 whenever the player used the door or favorite place marker to go to the metaroom in question. Would that work?

The concept behind the limitation is the following: the player would have his personal ship (Capillata, docked or otherwise), and he would be able to visit worlds, from which he could take creature eggs and agents, but otherwise would have limited interaction. The worlds should feel as if they didn't belong to the player in the same manner that the ship and its terrariums do. I don't want to do anything radical, just limit interaction here and there, and forbidding the pick up of creatures in the worlds would be a good start.

 
Ghosthande
Prodigal Sock

Ghosthande


 visit Ghosthande's website: Breeders Beware
  2/27/2013

I'm not sure how easily it would be just to change the variable when the hand moves about, given that there are a lot of different ways a player can move about from metaroom to metaroom: it would also have to change when the player clicks on on a portal, if they click on a mobile door from some other metaroom which happens to be in that one, if they click on a creature's icon (or tab to a different creature), etc. Since you'd be messing with game variables that normally affect the entire world, if a person leaves the metaroom via a method you didn't expect, they would no longer be able to pick up any of their creatures.

Personally, I'd try looking at the .cos script in the Bootstrap folder that controls the hand's ability to pick up stuff (either "DS Pointer scripts.cos", which is called whenever the hand tries to pick up anything, or "DS creatureDoneTo.cos", which determines what happens to a Creature when it is picked up). One option is to edit the script to check the coordinates of the creature to see if it's in one of the rooms in question, and only let the hand pick the creature up if it isn't in the "off-limits" area.



 
Marvolo323

Marvolo323



  2/27/2013

I really quite like that idea! Not as a thing affecting the whole game per se, but as something standalone it sounds awesome. (Depending of course on implementation and how much variety and fun discoveries there were to make. A REALLY GOOD procedural generator would be fun, but that's another story and probably somewhat impossible in terms of dev time and difficulty.)

My immediate impulse - and I am not a CAOS scripter, just a person who programs now and then, sometimes quite badly - is to have a sentinel script that runs every second or so and checks if the Hand is inside the metaroom or not and sets the variable appropriately. You could even do that as a standalone injectable and limit pickups to the Capillata (though metarooms without Norns and things in them per default could be boring). There is potential for slipping around it if you're really quick, and to mitigate that you could increase the iteration time if it didn't slow everything else down, which it PROBABLY wouldn't - again, I'm no CAOS coder, so I don't know. You're probably better off looking at Ghosthande's suggestions.

Finally, I highly recommend that you get in touch with Amaikokonut and see if she'll let you (or even help you) adapt her SERU random creature script to give some slightly saner but still interesting results as a possible way to populate your worlds with appealingly interesting but not precreated Norns, which would make things a lot more fun IMHO. Maybe you could limit various worlds to various sprite sets or something and create a concept of rarity...

</over-long mostly-unhelpful-probably block of text>

 
Papriko
Peppery One

Papriko



  2/27/2013

Instead of checking fav places icons, doors, teleports and the whole other stuff, I'd try it with a simple little agent which sits in the nowhere, being invisible.
I'd just let it run with a rather quick timer script, checking the metaroom that the hand is in.

When the number (metarooms are numbered when checked this way) matches one of the "forbidden" numbers, you flick off engine_creature_pickup_status.
When it doesn't, switch it back on.

Also, don't forget to RGAM after messing with global variables!


Lets play plants! Photosynthesis... Photosynthesis... Photosynthesis...
 
Andrettin

Andrettin



  3/1/2013

I have been trying out my concept with Ghosthande's Primordia in my personal DS game, making it a Banshee Grendel world (which is consistent with its backstory). What I did so far was:

1. Move the Banshee Egg Stone to Primordia's temple. The egg now spawns Banshee Grendel eggs until there are 6 grendels in Primordia.

2. Make Primordia's seed launchers unpickable by the hand.

3. Make the teleporters from and to Primordia unpickable and, more importantly, creatures are no longer able to activate them, and they are invisible to creatures. Nevertheless, creatures can still be teleported by them if they are nearby when they are activated by the hand.

4. Primordia's favorite place icon no longer shows up.

5. Make creatures that are in Primordia not show up in the creatures menu.

6. Make the creatures that are in Primordia now show up in the Shee Ark Bridge's map.

Overall, I'm quite satisfied with the results. The hand can still meddle with Primordia, but overall it feels much more like wilderness. It feels like a true Banshee Grendel world, which the spacefaring player can visit and pick creatures from, although the world and its creatures don't feel as if they belonged to the player. And players can still create a direct link with Primordia by leaving one of the Docking Station teleporters there, allowing creatures to travel freely between the wild Banshee Grendel world and the player's ship.

A couple of screenshots:
https://dl.dropbox.com/u/1732902/Creatures/WildPrimordia1.png
https://dl.dropbox.com/u/1732902/Creatures/WildPrimordia2.png

In any case, there are some things I think could be further improved:

1. Implementing the restrictions to creature pickup which are the main object of this thread in Primordia.

2. Preventing the autonaming of creatures that are in Primordia.

3. Preventing creature event icons relating to creatures that are in Primordia from showing up.

4. Ideally for this concept, it would be better to have something akin to the Shee Ark Bridge's map, but instead of showing a ship map, showing a map of planets, which the player could click on, being transported there.

Once this concept is sufficiently advanced, it would be interesting in using it in regards to a C2toDS Albia or other worlds.

Ghosthande wrote:
I'm not sure how easily it would be just to change the variable when the hand moves about, given that there are a lot of different ways a player can move about from metaroom to metaroom: it would also have to change when the player clicks on on a portal, if they click on a mobile door from some other metaroom which happens to be in that one, if they click on a creature's icon (or tab to a different creature), etc. Since you'd be messing with game variables that normally affect the entire world, if a person leaves the metaroom via a method you didn't expect, they would no longer be able to pick up any of their creatures.

Personally, I'd try looking at the .cos script in the Bootstrap folder that controls the hand's ability to pick up stuff (either "DS Pointer scripts.cos", which is called whenever the hand tries to pick up anything, or "DS creatureDoneTo.cos", which determines what happens to a Creature when it is picked up). One option is to edit the script to check the coordinates of the creature to see if it's in one of the rooms in question, and only let the hand pick the creature up if it isn't in the "off-limits" area.



Hello Ghosthande! I'm honored to hear from you, I am a long-time fan of your work. That idea sounds good; I checked "DS Pointer scripts.cos" out, and there is one script which sounds promising, since it is commented with "* request to pick something up". I'm not sure if it applies to creatures too, though.

Marvolo323 wrote:
I really quite like that idea! Not as a thing affecting the whole game per se, but as something standalone it sounds awesome. (Depending of course on implementation and how much variety and fun discoveries there were to make. A REALLY GOOD procedural generator would be fun, but that's another story and probably somewhat impossible in terms of dev time and difficulty.)

My immediate impulse - and I am not a CAOS scripter, just a person who programs now and then, sometimes quite badly - is to have a sentinel script that runs every second or so and checks if the Hand is inside the metaroom or not and sets the variable appropriately. You could even do that as a standalone injectable and limit pickups to the Capillata (though metarooms without Norns and things in them per default could be boring). There is potential for slipping around it if you're really quick, and to mitigate that you could increase the iteration time if it didn't slow everything else down, which it PROBABLY wouldn't - again, I'm no CAOS coder, so I don't know. You're probably better off looking at Ghosthande's suggestions.

Finally, I highly recommend that you get in touch with Amaikokonut and see if she'll let you (or even help you) adapt her SERU random creature script to give some slightly saner but still interesting results as a possible way to populate your worlds with appealingly interesting but not precreated Norns, which would make things a lot more fun IMHO. Maybe you could limit various worlds to various sprite sets or something and create a concept of rarity...

</over-long mostly-unhelpful-probably block of text>



Hey Marvolo323, I think your CAOS idea sounds very good, and possibly is within my skills to do. About the random creature script, that sounds rather interesting, I'll check that out.

Papriko wrote:
Instead of checking fav places icons, doors, teleports and the whole other stuff, I'd try it with a simple little agent which sits in the nowhere, being invisible.
I'd just let it run with a rather quick timer script, checking the metaroom that the hand is in.

When the number (metarooms are numbered when checked this way) matches one of the "forbidden" numbers, you flick off engine_creature_pickup_status.
When it doesn't, switch it back on.

Also, don't forget to RGAM after messing with global variables!



Hello Papriko, I believe your idea to be quite good. It is similar to what Marvolo323 had proposed. I'll have to try that.

Thanks all for the suggestions!

 


downloads
cobs
adoptions
creaturelink
metarooms
breeds
 
gallery
art
wallpaper
screenshots
graphics
promos
sprites
dev
hack shack
script reservations
dev resources
active projects
dev forum
 
community
links
advice
chat
polls
resources
creatchi
 
forum
bookmarks
general
news
help
development
strangeo
survivor
mycaves
log in
register
lost pw
1 online
Papriko
creatures caves is your #1 resource for the creatures artificial life game series: creatures, creatures 2, creatures 3, docking station, and the upcoming creatures family.

contact    help    privacy policy    terms & conditions    rules    donate    wiki