Page 12 of 20

Posted: Sat Dec 06, 2008 9:45 pm
by Agent of Dread
Bug: In the Catacombs, at the start there are giant coins flying about. :P

Posted: Sat Dec 06, 2008 9:48 pm
by penguinflyer2222
I'm thinking of making a zombi pet. (zombilng)
I'm thinking it'll just be a little green zombi that follows you around.
Like a little child.
Ideas?

Posted: Sat Dec 06, 2008 9:53 pm
by Ben Urban
Note that any pet that uses weapons would not be able to keep those weapons when it is exported.

I have an idea how that might be implemented, though.

Posted: Sat Dec 06, 2008 9:58 pm
by Shade
Ben Urban wrote:Note that any pet that uses weapons would not be able to keep those weapons when it is exported.

I have an idea how that might be implemented, though.
I know. I'd make it just like the tundra bunny; if the cobol pet is picked up, it drops its weapons, but if it's released it goes and takes the nearest uncursed weapons it can find and uses them in battle.

Posted: Sat Dec 06, 2008 10:10 pm
by woodmouse
@2222's Zombie pet idea: Cool! :D It should have spooky child's sounds! :D Really scary ones! :D
I think.

Posted: Sat Dec 06, 2008 11:34 pm
by Ben Urban
Ben Urban wrote:I have an idea how that might be implemented, though.
Now that I've partially caught up to the posts from today (that took way too long...), I'll explain my idea:

It involves two new script functions, and an addition to the directory structure. The functions first:
(I will refer to the slot system that is currently used in Egoboo as "global", and the new slot system as "local" to distinguish them.)

StoreTarget:
Accepts a value in tmpargument, as well as a target. Stores the target object into the specified local slot (inside the object that called the function), and poofs the target. Does not work on objects that cannot be poofed, or cannot be carried. Fails if there is already something stored in that slot.

UnstoreTarget:
Accepts a value in tmpargument. Loads the object stored in the specified local slot (from the object that called the function), and removes it from the local slot. Fails if the slot is empty.

The local slot system consists of a series of directories inside an object's directory whose names resemble a player's inventory (0.obj, 1.obj, etc.). All objects stored inside an object are carried with the containing object whenever the containing object is moved or copied somewhere. They would not need to be assigned an global slot number, since they can only spawn once, and they are only accessed by the local slot number. The minimum local slot number would be 0, and there would not be a maximum (other than the limitations of tmpargument).

A few things I can think of offhand that might complicate matters:
• Obviously the local slots would not really be represented as directories until the container exports, but I suspect it would be reasonably possible to merely add a couple of extra fields to the data structure in memory to indicate that an object is no longer in play, but is to be stored in another object's slot if it exports.
• It would require dynamic allocation of objects in memory. That might be difficult (but not impossible), from what I've seen. I suspect I will be able to help with modifying the code to implement that, but it will probably be very difficult at first, because of how broad the changes would be.
• Enchantments and scripts would probably have to be paused while an object is stored, and resumed when unstored. They would probably have to be unenchanted when exported.
• If player scripts are allowed to use this, it would interfere with (or possibly enhance!) the inventory system.
• A third function might be needed to allow a script to determine whether a slot is occupied or not.
• A container would have to store its contents every time it is picked up by a player, in case the player quits while carrying it. It would then have to unstore its contents when it is put down.
• Alternative functions might be needed, to provide equivalents to the spawning functions.

Can anyone think of any other potential complications that this might cause?

Posted: Sun Dec 07, 2008 3:21 am
by PurpleSquerkle
Clonkinator wrote:Actually, making a cobol pet or something shouldn't even be too hard... I might try it sometime.
I made one once, a long time ago; it's probably nowhere to be found now.

Posted: Sun Dec 07, 2008 4:37 am
by bgbirdsey
Really, the whole loading system needs to be changed. We could completely break from the past since the system only created temp files anyway.

In my mind, there is really no reason to require the "unrolling" of the players/blah.obj subdirs into the imports dir. If we could have some way of just loading all of the object's subdirs in the usual manner (i.e. item 0.obj is the right hand and 1.obj is the left) then you could easily spawn something like a gargoyle (mephit) with it's wings or the boss scorpion with his claws.

The only problem is the auto generation of the slots. But we should just reverse the order of the auto allocation of slots. First read in all the objects in modules/blah.mod/objects to get the reserved slots and then read in the imports (which are specified in the character loading screen). Assign the imports to whatever slot numbers are as-yet unassigned.

In principle, the actual slot numbers are only ever used to interpret the spawn.txt file and to spawn a specific module object (i.e. that one that was not imported) using egoscript. The specific slot numbers assigned to imported characters and their items could really be anything.

Posted: Sun Dec 07, 2008 8:51 am
by Zefz
Reversing the slot allocation seems like a simple and good solution. I think even clonkinator suggested something like it once.

Posted: Sun Dec 07, 2008 3:38 pm
by woodmouse
In Palsin starter, the oil flasks change color every time I use them without a lamp

EDIT:
Also in Palsin starter, I'm not sure if it's in other modules too, grub bugs hover little above the ground whren they're killed.

Posted: Sun Dec 07, 2008 7:28 pm
by Agent of Dread
Agent of Dread wrote:Bug: In the Catacombs, at the start there are giant coins flying about. :P

Posted: Sun Dec 07, 2008 7:39 pm
by Shade
Agent of Dread wrote:
Agent of Dread wrote:Bug: In the Catacombs, at the start there are giant coins flying about. :P
That's not a bug. Those are just placeholder particles until the extended particle limit is implemented into 2.6.x; there are going to be used different particles in the future.

Posted: Sun Dec 07, 2008 7:42 pm
by Agent of Dread
I just thought that they weren't working.

Posted: Sun Dec 07, 2008 8:13 pm
by Shade
I found something else... You can "enrage" the yeti boss in the ice palace before actually engaging him already, causing him to walk against the wall until you enter the actual boss room, and, most importantly, triggering the boss music way too early.

Image
(Yes, that's an awesome lv7 elf having used two elixirs of life. Anything wrong with that?)

Also, if I'm not mistaken, I saw unhidden tool objects flying above the points where the rust maggots and the squidgies fall from the sky in some distance.

Posted: Sun Dec 07, 2008 8:34 pm
by Ben Urban
While on that topic, sometimes the Watcher triggers the same effect when you first start the level...