Mon Aug 17 16:23:49 2009
[dgd]
Aidil@Way of the Force: didn't get to it yet :) at work at the moment.
Mon Aug 17 16:25:28 2009
[dgd]
Aidil@Way of the Force: the importing of new dgd versions is pretty much automated :)
Mon Aug 17 16:27:52 2009
[dgd]
Sorressean@Falcon: now I get to try to learn how to use sprintf for columnizing... :(
Mon Aug 17 16:28:47 2009
[dgd]
Kalinash@Fire and Ice: and make your column widths be percentages of the terminal width and dynamically generate the format string to suit
Mon Aug 17 16:31:08 2009
[dgd]
Subversion@Way of the Force: Aidil committed Gurbalib revision 317 to svn://wotf.org/gurbalib : Add error/usage messages to the cat command (patch by Sorressean)
Mon Aug 17 16:45:44 2009
[dgd]
Sorressean@Falcon: danky. and yeah. I'm just not sure how to set that up. I need to figure out how to get term width and then set up the columns.
Mon Aug 17 16:50:29 2009
[dgd]
Aidil@Way of the Force: assume 80 if it returns anything other then a positive number.
Mon Aug 17 16:50:34 2009
[dgd]
Kalinash@Fire and Ice: and things like %20s means a string 20 characters wide
Mon Aug 17 16:51:34 2009
[dgd]
Kalinash@Fire and Ice: you can look up the standard C printf formatting strings
Mon Aug 17 16:51:56 2009
[dgd]
Sorressean@Falcon: nods. I know those, didn't think this worked the same. thanks
Mon Aug 17 16:52:21 2009
[dgd]
Aidil@Way of the Force: the sprintf.doc file should list most of them.
Mon Aug 17 16:53:48 2009
[dgd]
Aidil@Way of the Force: btw, the sprintf plugin is just a very quick port of the older sprintf implementation for dgd. It probably doesn't like 'nil' values at all.
Mon Aug 17 16:54:07 2009
[dgd]
Aidil@Way of the Force: and with that.. its time for me to go home :)
Mon Aug 17 17:06:59 2009
[dgd]
Quixadhal@Bloodlines: Added bonus points, if you build your format string in a variable, so you can do things like fmt = "FOO: %-" + width + "sn"; sprintf(fmt, stuff);
Mon Aug 17 17:07:23 2009
[dgd]
Sorressean@Falcon: werd, that's kinda what I was thinking about doing
Mon Aug 17 17:08:44 2009
[dgd]
Quixadhal@Bloodlines: Sorry Kal, you typed words without arcane %symbols in them, so I didn't notice.
Mon Aug 17 17:12:12 2009
[dgd]
Quixadhal@Bloodlines: I actually still have some gin left... may have to remedy that later. Gin always seems like a nice drink when it's raining.
Mon Aug 17 17:17:21 2009
[dgd]
Quixadhal@Bloodlines: Yay, new motherboard/memory/cpu is supposedly arriving today.
Mon Aug 17 17:30:50 2009
[dgd]
Thingol@the Void: Hmm.. how would one 'tell' someone on another mud with a mudname with spaces
Mon Aug 17 17:31:46 2009
[dgd]
Kalinash@Fire and Ice: type it all out... rtell thingol@the void this should work
Mon Aug 17 18:51:17 2009
[dgd]
Aidil@GurbaDev1: oh, and gin is for rainy days only. Bloody brits couldn't get 'jenever' so made their own variation.. and its always rainy there.
Mon Aug 17 19:58:38 2009
[dgd]
Thingol@the Void: And brits should just stick to whiskey. I'll buy that off em anyday.
Mon Aug 17 20:42:26 2009
[dgd]
Aidil@GurbaDev1: neither of which is properly called Brittish I think.
Mon Aug 17 20:42:58 2009
[dgd]
Thingol@the Void: The brits count Ireland & Scotland as theirs when it's profitable.
Mon Aug 17 20:43:24 2009
[dgd]
Thingol@the Void: That's why all of a sudden they were rooting for Andy Murray to win Wimbledon. :P
Mon Aug 17 20:43:26 2009
[dgd]
Aidil@GurbaDev1: Whisky on the other hand mostly comes from Scotland or Japan, or at times Canada.
Mon Aug 17 20:44:24 2009
[dgd]
Aidil@GurbaDev1: as a matter of fact, they are the main 'export' market for blended non pure malt whisk(e)y.
Mon Aug 17 20:54:48 2009
[dgd]
Aidil@GurbaDev1: iirc, Glen Elgin and Glenlivet come from there, besides the obvious Glen Murray :P
Mon Aug 17 20:57:36 2009
[dgd]
Aidil@Way of the Force: but I'm cheating :) I have a bottle at hand :)
Mon Aug 17 20:58:07 2009
[dgd]
Thingol@the Void: It's probably the best one I know, the 16 year old version.
Mon Aug 17 20:58:46 2009
[dgd]
Aidil@Way of the Force: hmm. thats the one I have around also.. I don't agree about it being the best, but thats a matter of taste.
Mon Aug 17 21:00:16 2009
[dgd]
Aidil@Way of the Force: I'm generally not a big fan of islay whiskies.. tho I do rather like Bowmore and Bunnahabhaim
Mon Aug 17 21:42:26 2009
[dgd]
Aidil@Way of the Force: anyway :) was nice chatting.. gonna read a bit and catch some sleep.
Mon Aug 17 22:20:17 2009
[dgd]
Sorressean@Falcon: um, is there a function that you can use on a player object to write? I was using users[i]->write, but that sends it to me.
Mon Aug 17 22:37:29 2009
[dgd]
Sorressean@Falcon: is there a file or something that you can alter to add flags to areas?
Mon Aug 17 22:47:31 2009
[dgd]
Sorressean@Falcon: I want to set up a weather system. each area will have a set pattern for weather, but some rooms may have higher temps or lower based on elevation or whatever. so I want to set up zone weather, then work off of that for the weather for the rooms.
Mon Aug 17 22:48:00 2009
[dgd]
Nullinfinite@Gurbalib: thats neat, ive been wanting to do something like that for awhile
Mon Aug 17 22:48:55 2009
[dgd]
Nullinfinite@Gurbalib: so by flags, you mean something that gives some info on a rooms region, and another for elevation and the like?
Mon Aug 17 22:49:32 2009
[dgd]
Sorressean@Falcon: room elevation will be added from region elevation. so lile region_elevation+room_elevation would determine the elevation for the current room
Mon Aug 17 22:49:57 2009
[dgd]
Nullinfinite@Gurbalib: to do that, you would need to add a few things into oode for /std/room, and would also need a weather daemon
Mon Aug 17 22:53:09 2009
[dgd]
Sorressean@Falcon: ok. here's my idea: first I have a qauestion. I need to add weather daemon, is there somewhere where I can add the daemon? are the daemon functions global? I can also create an area object in std, but I'll need to set the area up. so my issue is how do I make that area work with the room? I can inherit area, fill out the properties with a setup function and have the object, but how do you make say like gurba_town.c an object inside the rooms?
Mon Aug 17 22:56:12 2009
[dgd]
Nullinfinite@Gurbalib: lets say you have a region called somewhere. Each room in somewhere could have a set / get pair for region, ie set_region("somewhere"), get_region to check the rooms region. OR you could handle regions by name of folder in domains...eg any room in /domains/somewhere/ shares same weather. The weather_d would handle the random generation of weather per region.
Mon Aug 17 22:58:11 2009
[dgd]
Nullinfinite@Gurbalib: you would add the daemon to the daemons folder, and it would have functions called in it...probably from room code. One aspect of a weather system would be when to add the weather...if no players are in region, should each room in region still be called to adjust for changes? its more efficient if these changes occurred on an event such as a player loading the region by entering, and than the calculation made for weather effects
Mon Aug 17 23:01:12 2009
[dgd]
Nullinfinite@Gurbalib: the daemon can be called anywhere, but where it needs to be called can vary greatly depending on design
Mon Aug 17 23:01:16 2009
[dgd]
Sorressean@Falcon: if I set up a region.c in /std, I could make a region in the folder, set it up and then set it in the room, but I'm not sure if I made a gurba_town.c region that would set all the info for my region, but I'm not sure how I'd set the rooms region to use the gurba_square that I just defined.
Mon Aug 17 23:04:14 2009
[dgd]
Nullinfinite@Gurbalib: here is an example implementation: in /std/room.c, i add a function called add_region. the add_region function calls weather_d, and tells it that the object that just called it is a room in region x. weather_d stores a mapping of string region : ({ rooms registered with region }).
Mon Aug 17 23:05:24 2009
[dgd]
Sorressean@Falcon: what I was planning on doing was setting properties like elevation, temperature, all that. so it makes sense that the region would be saved on the room, but I'm not sure how to do that. I could set up a mapping in weather_d, but none of the info like temp and that would be defined.
Mon Aug 17 23:09:38 2009
[dgd]
Nullinfinite@Gurbalib: thats okay, you could handle that info seperately, whats important is having rooms compartmentalized by region. when we factor in some other variables, we handle them in the same loop that changes weather. some more example: set_region_weather(string region) { for(i = 0; i < sizeof(m_values(region_map) ); i++) { if(region_map[region][i]->query_elevation() > 5000) { /* handle elevation > 5000*/ } else { /*handle elevation < 5000 */ }
Mon Aug 17 23:11:22 2009
[dgd]
Nullinfinite@Gurbalib: we wind up needing to loop through each room in a region anyway, to alter its weather, so in the same for loop adding checks like that is a good way to add 'nuance' to a room in a wider region
Mon Aug 17 23:13:33 2009
[dgd]
Sorressean@Falcon: gotcha. it makes sense that the object would be it's own region though wouldn't it?
Mon Aug 17 23:14:24 2009
[dgd]
Nullinfinite@Gurbalib: well, an object could be its own region, but in general, 2 adjacent rooms have the same thing going on, so one region for both is optimal
Mon Aug 17 23:17:16 2009
[dgd]
Nullinfinite@Gurbalib: another system that would work would be to make region daemons, which would be their own objects, but would exist to handle the weather for one region alone
Mon Aug 17 23:18:49 2009
[dgd]
Nullinfinite@Gurbalib: in other words, for 'someplace' and 'somewhere' we have 2 daemons, each handling weather in several rooms
Mon Aug 17 23:18:56 2009
[dgd]
Sorressean@Falcon: nods. I want to set it up so that I can register the weather patterns with the weather daemon. how would I do something like set object region to the region that I want, like if I set up the region to inherit region and set the props, then store them in gurba_region.c how can I set object region to use that object? also, is there a way that I can get the current object, like this_object or something from the room? I can set up like register_room(object room,object region) on weather_d
Mon Aug 17 23:21:14 2009
[dgd]
Nullinfinite@Gurbalib: for finding an object that called register room, previous_object(x) would work.
Mon Aug 17 23:23:10 2009
[dgd]
Nullinfinite@Gurbalib: i would think the regional weather would be adjusted automatically over time. a timed event would be a good way to do this, when the event gets called after x amount of time, we change the weather in the region in some logical and/or random way
Mon Aug 17 23:23:56 2009
[dgd]
Nullinfinite@Gurbalib: at that point, we know which region needs weather changed, we would than use region_map[region_x] to get our array of rooms in region, and work on those
Mon Aug 17 23:25:02 2009
[dgd]
Nullinfinite@Gurbalib: im going to run some errands, but will be back in an hour or 2.
Mon Aug 17 23:25:33 2009
[dgd]
Nullinfinite@Gurbalib: im sure i can find some examples in gurba that would help explain
Mon Aug 17 23:27:46 2009
[dgd]
Sorressean@Falcon: aerg. I have ideas for setting it, I just can't figure out how to load the object
Tue Aug 18 01:29:27 2009
[dgd]
Quixadhal@Bloodlines: Sorressean, you might consider making your region a full seperate daemon and let the rooms query it for their own data. If you did it that way, along with virtual rooms, you'd be on the path of allowing algorithm-based world maps. :)
Tue Aug 18 01:41:28 2009
[dgd]
Sorressean@Falcon: awesome. I can set properties per daemon. I'm not totally sure how they work though. I could make an areas dir, but I need to be able to start the daemon and set it up to run when the mud starts. are all daemon functions global, or how do I set it up so I can call daemon funcs?
Tue Aug 18 02:34:40 2009
[dgd]
Nullinfinite@Gurbalib: there is one thing i started work on, but set aside for now, which might be helpful for a weather_d
Tue Aug 18 02:35:29 2009
[dgd]
Sorressean@Falcon: any help would be awesome and greatly appriciated. :p
Tue Aug 18 02:35:56 2009
[dgd]
Nullinfinite@Gurbalib: using the same escape markups gurba currently uses for ansi codes, there can be other commands added besides ansi color codes
Tue Aug 18 02:36:35 2009
[dgd]
Nullinfinite@Gurbalib: when changing the properties of rooms, it becomes a lot of work to weave together functions ie, item_desc_raining, or, room_desc_raining
Tue Aug 18 02:36:59 2009
[dgd]
Sorressean@Falcon: I had the idea of the global demon from a couple people, which only leaves the question of how to call functions in another daemon, and how to set it up so that the daemon starts when the mud starts.
Tue Aug 18 02:37:20 2009
[dgd]
Sorressean@Falcon: after that point, I just need to learn how to use mappings and I'm good.
Tue Aug 18 02:37:48 2009
[dgd]
Nullinfinite@Gurbalib: heres an example 'This room is large. RAINRain is hitting thr roof/RAIN"
Tue Aug 18 02:39:22 2009
[dgd]
Nullinfinite@Gurbalib: you can use the % and ^ characters together before and after a keyword to perform some action
Tue Aug 18 02:40:01 2009
[dgd]
Sorressean@Falcon: well, if I have a daemon running, I could just do like get_weather() from the daemon passing the room object in.
Tue Aug 18 02:40:32 2009
[dgd]
Nullinfinite@Gurbalib: so instead of changing flags in each room, you have a room check weather_d to see what weather is, and use text from the 'right' one
Tue Aug 18 02:41:15 2009
[dgd]
Sorressean@Falcon: so all I need to do is figure out how to set up a daemon so it's initialized and all that and call funcs from it.
Tue Aug 18 02:41:45 2009
[dgd]
Nullinfinite@Gurbalib: what i do with my descs, is use some description for any conditions, and have some special ones for specific conditions like day night or rain etc
Tue Aug 18 02:42:17 2009
[dgd]
Nullinfinite@Gurbalib: right. you will have the initialization and query value functions...you will need some way to determine changes in a regions weather
Tue Aug 18 02:42:40 2009
[dgd]
Sorressean@Falcon: I can just write a weather_desc func that will be added to the outdoor room's descriptions
Tue Aug 18 02:42:58 2009
[dgd]
Nullinfinite@Gurbalib: this could be entirely random, or, you could have it be sequential, in example, lightning storm->rain->cloudy->sun
Tue Aug 18 02:43:24 2009
[dgd]
Sorressean@Falcon: yeah. i want it to be somewhat randomized, but not like sun snow tornado or something stupid.
Tue Aug 18 02:43:52 2009
[dgd]
Nullinfinite@Gurbalib: its tricky for me, since some of my description is for all weather...i wind up needing dozens of functions to do it without markups
Tue Aug 18 02:44:31 2009
[dgd]
Nullinfinite@Gurbalib: ie describe_room_window_day, describe_room_window_rain...
Tue Aug 18 02:44:48 2009
[dgd]
Nullinfinite@Gurbalib: and i describe say 5 items with special effects..
Tue Aug 18 02:44:59 2009
[dgd]
Sorressean@Falcon: yeah. I plan on having a describe_window func that will return the desc too, but I can prepend like "through the window you see..."
Tue Aug 18 02:46:14 2009
[dgd]
Nullinfinite@Gurbalib: i mean the elements of a room description. my room descriptions will change with weather, time of day, but without needing add numerous functions to compose a single description
Tue Aug 18 02:48:14 2009
[dgd]
Sorressean@Falcon: I seen the daemon, but I haven't looked at it quite yet. I'm looking for globalization and getting things set up so that I can start the weather daemon.
Tue Aug 18 02:48:27 2009
[dgd]
Sorressean@Falcon: then I can set it up to use the time daemon for day/night and events for weather changes
Tue Aug 18 02:49:13 2009
[dgd]
Nullinfinite@Gurbalib: okay. what do you mean by globalization, do you mean like this_player()?
Tue Aug 18 02:49:48 2009
[dgd]
Sorressean@Falcon: I am trying to figure out how to call a function in a daemon from within an object like a room object so I can register rooms, and how to initialize or set the daemon to initialize when the mud starts.
Tue Aug 18 02:50:47 2009
[dgd]
Nullinfinite@Gurbalib: okay. To make the changes apply to all rooms, you make them in /std/room.c The code from /std/room is inherited
Tue Aug 18 02:51:10 2009
[dgd]
Nullinfinite@Gurbalib: in the create() function is a good place to register a value
Tue Aug 18 02:51:29 2009
[dgd]
Sorressean@Falcon: I'm going to let each room register its self with weather if it wants weather. it will have to make the call to the daemon.
Tue Aug 18 02:53:46 2009
[dgd]
Sorressean@Falcon: I can add weather to that. how do I make it so that weather functions can be called, though?
Tue Aug 18 02:54:09 2009
[dgd]
Nullinfinite@Gurbalib: yeah, those are in the driver. You would define the path to the weather daemon to std.h
Tue Aug 18 02:55:04 2009
[dgd]
Sorressean@Falcon: makes sense. thanks a ton for the help and pacients. :p
Tue Aug 18 07:01:23 2009
[dgd]
Aidil@Way of the Force: well, without actually knowing what daemon you are going to create, that is near impossible :)
Tue Aug 18 07:01:47 2009
[dgd]
Aidil@Way of the Force: or do you mean something that documents all existing daemons?
Tue Aug 18 07:02:09 2009
[dgd]
Aidil@Way of the Force: I'm sorry, if you want to understand them, in most cases reading the code is and will always be mandatory
Tue Aug 18 07:02:42 2009
[dgd]
Sorressean@Falcon: just something that outlines how they work. Not docs on every daemon.
Tue Aug 18 07:03:29 2009
[dgd]
Sorressean@Falcon: I'm trying to figure out how to make their funcs visible and all that fun stuff.
Tue Aug 18 07:04:49 2009
[dgd]
Sorressean@Falcon: well, I found out how to add them to init. but I can't figure out how to make their funcs visible.
Tue Aug 18 07:05:54 2009
[dgd]
Aidil@Way of the Force: that has nothing to do with daemons, and everything with LPC in general.
Tue Aug 18 07:06:36 2009
[dgd]
Aidil@Way of the Force: Something (in this case /sys/daemons/init_d I believe) must load the object.
Tue Aug 18 07:07:03 2009
[dgd]
Sorressean@Falcon: but that object has to be made visible to all code, no?
Tue Aug 18 07:07:38 2009
[dgd]
Sorressean@Falcon: otherwise you could do something like object i; then you couldn't reuse i in later code because i was already defined and global.
Tue Aug 18 07:07:45 2009
[dgd]
Aidil@Way of the Force: I don't understand what you mean. if it is loaded, it is 'visible'. You seem to be talking about wanting some variable that points at the daemon.
Tue Aug 18 07:08:38 2009
[dgd]
Quixadhal@Bloodlines: Don't feel bad... I'm a Diku person, so I'm still wrangling with the driver/mudlib interaction too.
Tue Aug 18 07:08:52 2009
[dgd]
Aidil@Way of the Force: the typical way of doing this is adding a #define for it to /kernel/include/std.h
Tue Aug 18 07:09:30 2009
[dgd]
Aidil@Way of the Force: there are a gazillion daemons defined in there already.
Tue Aug 18 07:09:32 2009
[dgd]
Sorressean@Falcon: so your basically doing "/daemons/bla.c"->my_func();
Tue Aug 18 07:09:41 2009
[dgd]
Quixadhal@Bloodlines: While you can consider top-level items to be public, they are still scoped by their object.
Tue Aug 18 07:10:09 2009
[dgd]
Sorressean@Falcon: yeah. that's why I was trying to figure out how you could call funcs on a file.
Tue Aug 18 07:10:39 2009
[dgd]
Aidil@Way of the Force: just for all clarity, there exists no such thing as system wide global variables.
Tue Aug 18 07:11:54 2009
[dgd]
Sorressean@Falcon: I'm having issues with the whole file thing. how is it that you can call funcs on a file? That doesn't make much sense to me.
Tue Aug 18 07:12:04 2009
[dgd]
Quixadhal@Bloodlines: Being scoped doesn't make them private, just that you have to refer to them by their scope from outside.
Tue Aug 18 07:12:06 2009
[dgd]
Quixadhal@Bloodlines: Being scoped doesn't make them private, just that you have to refer to them by their scope from outside.
Tue Aug 18 07:12:52 2009
[dgd]
Aidil@Way of the Force: which then gets translated in the object that is compiled from the file it points to.
Tue Aug 18 07:12:55 2009
[dgd]
Sorressean@Falcon: imud_d is defined as "/daemons/imud_d.c" I believe, which from a preprocessor standpoint turns out to be like "/daemons/imud_d.c"->my_func() when you use imud_d->my_func()
Tue Aug 18 07:13:04 2009
[dgd]
Aidil@Way of the Force: you do NOT call the function in the file however
Tue Aug 18 07:14:10 2009
[dgd]
Sorressean@Falcon: so what keeps the driver from instanciating a object or compiling it every time it's called? If you call a func in weather_d you want to make sure that the daemon won't be recreated 100 times over. Even if it weren't going to pose that issue, that could be costly on cpu and memory
Tue Aug 18 07:14:19 2009
[dgd]
Aidil@Way of the Force: what you are in fact saying there is 'object tmp; tmp = find_object(some_path); if( !tmp ) { tmp = compile_object( path); }; tmp->function()
Tue Aug 18 07:14:37 2009
[dgd]
Aidil@Way of the Force: since you don't want to write that out all the time, there is a short syntax for it.
Tue Aug 18 07:14:56 2009
[dgd]
Quixadhal@Bloodlines: It just so happens that the default mechanism for translating the name of an external object is to map it to the filesystem. You could also have it map via something else like "coord,x,y,z->exits()" if you like.
Tue Aug 18 07:14:58 2009
[dgd]
Sorressean@Falcon: gotcha. so tmp returns if there is an instance of that object already created?
Tue Aug 18 07:15:59 2009
[dgd]
Aidil@Way of the Force: not just any instance, but a very specific one :)
Tue Aug 18 07:16:49 2009
[dgd]
Sorressean@Falcon: well, it would return a copy or a pointer or something to the instance that already exists?
Tue Aug 18 07:18:06 2009
[dgd]
Aidil@Way of the Force: note that we do not have pointers, we have references ala JAVA and the like. the difference is relevant, you can do calculations on a pointer, you can't witha reference
Tue Aug 18 07:19:10 2009
[dgd]
Aidil@Way of the Force: when you compile something, that results in a program.
Tue Aug 18 07:19:36 2009
[dgd]
Aidil@Way of the Force: when you try to reference the result (ie, call a function in it), you have an object.
Tue Aug 18 07:20:53 2009
[dgd]
Aidil@Way of the Force: while the system can use program references underlying, you will normally not get to deal with those, unless you go meddle with things in /kernel
Tue Aug 18 07:21:23 2009
[dgd]
Sorressean@Falcon: last thing... I think. I have something like object zone; in my room.c file. I have a zone.c which defines the properties for an area, then in the gurba area I have a gurba_zone.c. How would I make the square.c's object zone point to the gurba_zone.c, or a blueprint of a pre-loaded gurba_zone object? and I will probably eventually at some point, but it's to soon for that right now.
Tue Aug 18 07:23:21 2009
[dgd]
Aidil@Way of the Force: look in /sys/lib/user.c, iirc there is a little bit of code in the function upgraded() that ensures object ansi_d gets assigned
Tue Aug 18 07:24:25 2009
[dgd]
Aidil@Way of the Force: basicly.. zone_d = find_object("/path/to/your/object"); if( !zone_d ) { zone_d = compile_object("/path/to/your/object"); }
Tue Aug 18 07:25:31 2009
[dgd]
Sorressean@Falcon: so I'll have to have a #define for that area's object file
Tue Aug 18 09:42:07 2009
[dgd]
Aidil@Way of the Force: I suggest tho you start with creating a few smaller simpler objects and play with how variables and objects work :)
Tue Aug 18 09:42:47 2009
[dgd]
Aidil@Way of the Force: combining the complexity of a weather system with learning about basic lpc laguage constructs may be a bit challanging :)
Tue Aug 18 09:43:28 2009
[dgd]
Quixadhal@Bloodlines: Yes, you might end up like me, discovering the joys of "resource tick limits" and such. :)
Tue Aug 18 10:31:23 2009
[dgd]
Aidil@Way of the Force: btw, Quixadhal.. http://forum.synology.com/wiki/index.php/Differences_between_an_Enterprise-Class_HDD_and_a_Desktop-Class_HDD
Tue Aug 18 11:05:59 2009
[dgd]
Quixadhal@Bloodlines: Yep, found that along my research path. Western Digital has a utility (WDTLER.exe) to toggle the drive's firmware behavior in that respect. Makes me wonder what you're actually paying for (other than 2 more years on the warrenty)....
Tue Aug 18 11:06:52 2009
[dgd]
Quixadhal@Bloodlines: They do stress NOT to enable TLER on a non-redundant/parity setup... unless you like unreverable data errors.
Tue Aug 18 11:14:06 2009
[dgd]
Quixadhal@Bloodlines: So far, I'm liking the WD6400AAKS drives... very good performance in reviews, good feedback ratings at several sites, fairly cheap. Hitachi has some cheap "Deathstar" drives... but I remember when IBM made them. *shiver*
Tue Aug 18 11:15:24 2009
[dgd]
Quixadhal@Bloodlines: I really feel like I'm being forced to choose the lesser evil in this whole endeaver. I felt GOOD about some of my choices on other parts, but I don't like ANY of the hard drives out there.
Tue Aug 18 11:42:09 2009
[dgd]
Aidil@Way of the Force: disks are always a choice between different evils.
Tue Aug 18 11:42:34 2009
[dgd]
Aidil@Way of the Force: the main difference, tolerance of parts, warranty...
Tue Aug 18 11:42:59 2009
[dgd]
Aidil@Way of the Force: heh. I have an IBM branded one around that is still alive.
Tue Aug 18 11:43:41 2009
[dgd]
Aidil@Way of the Force: I also have IBM 400MB and 1GB 'spitfire' scsi disks that have been surviving for some 20 years already.
Tue Aug 18 11:44:28 2009
[dgd]
Aidil@Way of the Force: disks are always a choice between various evils.. since well.. what we are trying in disks is quite pushing the limits of what can be mass produced reliably.
Tue Aug 18 11:45:55 2009
[dgd]
Aidil@Way of the Force: I have 4 WD10EADS-00L5B1 disks around, and 2 WD4000AAKS-00C8A0 disks
Tue Aug 18 11:47:01 2009
[dgd]
Aidil@Way of the Force: so far I'm quite happy with them, they perform nicely and are rather quiet. Also, all of them turned out to not require any sector relocations when rewriting every sector a few times before initial use.
Tue Aug 18 11:49:58 2009
[dgd]
Aidil@Way of the Force: 2 of the WD10EADS disks are in one of those small NAS devices, the other disks are in my 'main' computer.
Tue Aug 18 16:39:20 2009
[dgd]
Nullinfinite@Gurbalib: how did the parser work out you were playing with
Tue Aug 18 21:07:37 2009
[dgd]
Aidil@Way of the Force: ah, Nullinfinite isn't there anymore. ah well :)
Tue Aug 18 21:39:38 2009
[dgd]
Aidil@Way of the Force: the answer to his question is.. it went very well, see 'man serialize'
Tue Aug 18 21:41:53 2009
[dgd]
Aidil@Way of the Force: at least at times I try to write documentation for the stuff I add :)
Tue Aug 18 21:45:08 2009
[dgd]
Aidil@Way of the Force: the way this module works is something you may want to look at also for any map system you may create :) the module just provides a generic interface, the actual implementation is seperate, and can easily be replaced, or in this case, you can easily pick one of multiple implementations.
Tue Aug 18 22:28:31 2009
[dgd]
Subversion@Way of the Force: Aidil committed Gurbalib revision 318 to svn://wotf.org/gurbalib : Added some info on Gurbalib's history, and updated the kernel intro manpage
Wed Aug 19 14:13:02 2009
[dgd]
Quixadhal@Bloodlines: Hmmmm, I think Western Digital is trying to tempt me... newegg just dropped the price on their cavier black 640G's to less than the blue's.
Wed Aug 19 22:22:48 2009
[dgd]
Quixadhal@Bloodlines: Poking at various lpmud libraries is like browsing the english2foo language dictionary section.
Wed Aug 19 22:22:52 2009
[dgd]
Quixadhal@Bloodlines: Stupidly simple things seem to be called by wildly varying names. :)
Wed Aug 19 22:23:17 2009
[dgd]
Quixadhal@Bloodlines: I figured a good "simple" task would be to boot up a few of the driver/mudlib package on lpmud.net and just get them all on I3 listening to the same channels.
Wed Aug 19 22:23:35 2009
[dgd]
Aidil@GurbaDev1: to make matters worse, there are also many functions with the same name in various libs doing wildly different things.
Wed Aug 19 22:24:17 2009
[dgd]
Aidil@GurbaDev1: however, gurbalib 0.40 beats much of that by having a find_object() function that does various different things depending on how and where you call it.
Wed Aug 19 22:24:32 2009
[dgd]
Quixadhal@Bloodlines: I figured there shouldn't be THAT many different ways to add oneself to an I3 channel. Seems a common enough thing to want to do, eh? :)
Wed Aug 19 22:25:34 2009
[dgd]
Aidil@GurbaDev1: eventho way of the force and gurbalib actually share some of the i3 code, those 2 are already wildly different.. but that has a lot more to do with how channels are implemented on the lib then with the i3 side of things usually.
Wed Aug 19 22:26:53 2009
[dgd]
Aidil@GurbaDev1: but then, imho talking about lpmuds as a type of mud is like throwing every mud codebase in C on a heap and regarding them as the same type of mud.
Wed Aug 19 22:30:10 2009
[dgd]
Quixadhal@Bloodlines: I am thinking we might want to have a dual interface to many of these things though.
Wed Aug 19 22:30:54 2009
[dgd]
Quixadhal@Bloodlines: Both a command-based system (chan, mudlist, etc) and a menu-driven system (i3tool), for example.
Wed Aug 19 22:31:16 2009
[dgd]
Aidil@GurbaDev1: I have been pondering this 'menu' thing for a while, esp. considering porting WOTF's menu system to gurbalib.
Wed Aug 19 22:31:34 2009
[dgd]
Quixadhal@Bloodlines: Some of the other mudlibs out there have very nice, elaborate menu tools for things like permissions, quests, etc.
Wed Aug 19 22:32:04 2009
[dgd]
Aidil@GurbaDev1: its a generic library to generate, present and handle menus.
Wed Aug 19 22:33:25 2009
[dgd]
Aidil@GurbaDev1: but I'm rather unsettled on it. Sure, it is useful, but, menus have 2 major issues.
Wed Aug 19 22:34:57 2009
[dgd]
Quixadhal@Bloodlines: I think becoming outdated is not the menu's problem, it's the admin's problem for not demoting coders who update the CLI tool without ALSO updating the menu interface appropriate to it. :)
Wed Aug 19 22:35:27 2009
[dgd]
Quixadhal@Bloodlines: Not so sure about bloat... I considered a windowing system (of any kind) bloat for years.
Wed Aug 19 22:36:57 2009
[dgd]
Aidil@GurbaDev1: I'm not arguing the usefulness of it btw, wotf has a generic menu system that gets used a fair bit, and I wrote that originally for KoBra, which also used it a fair bit.
Wed Aug 19 22:37:53 2009
[dgd]
Aidil@GurbaDev1: and heh, router administration without some useful menu based ui is a nightmare :)
Wed Aug 19 22:38:29 2009
[dgd]
Aidil@GurbaDev1: so I have quite a neat system there that allows me to view and manipulate most router stuff without having to remember a gazillion commands and function names..
Wed Aug 19 22:38:49 2009
[dgd]
Quixadhal@Bloodlines: I particularly liked Skylib's permissions menu system. You can add any directory path to it, and then add individual wizards or groups to each path, giving read-write access as you go.
Wed Aug 19 22:38:57 2009
[dgd]
Aidil@GurbaDev1: I think that for a mud it is a useful thing to have, but I'm not sure it is something gurbalib should provide beyond possibly a generator for it.
Wed Aug 19 22:39:16 2009
[dgd]
Quixadhal@Bloodlines: One could certainly do that via commands as well, but presenting it as a menu makes it easier to walk around if you're not just doing one quick change.
Wed Aug 19 22:40:42 2009
[dgd]
Quixadhal@Bloodlines: That's sort of where I'm coming from... the command version is nice for when you know what you want to do, but the menu is nicer for browsing settings or doing a bunch of changes in one sitting. I3 is a good example, as one may wish to add a bunch of local channels in one fell swoop.
Wed Aug 19 22:41:04 2009
[dgd]
Aidil@GurbaDev1: no argument there, but you'll have to convince me that a lightweight, near barebones lib should have a menu system/
Wed Aug 19 22:42:52 2009
[dgd]
Quixadhal@Bloodlines: I think the ease of use factor makes it worth doing. Managing the custom colour symbols is another prime candidate.
Wed Aug 19 22:44:30 2009
[dgd]
Quixadhal@Bloodlines: I guess the question is, how much overhead does it bring? Obviously, one has to create the "tools" that are sets of menus and commands to run, but if the backend menu system is streamlined, they'd all be very similar in code.
Wed Aug 19 22:47:52 2009
[dgd]
Aidil@GurbaDev1: a menu system that can also be used to display and edit data and handles stacked menus is not totally trivial to implement in my experience :)
Wed Aug 19 22:48:04 2009
[dgd]
Quixadhal@Bloodlines: Heh, I used to use the "dialog" system quite a bit (shell scripts).
Wed Aug 19 22:48:57 2009
[dgd]
Aidil@GurbaDev1: yes, and shell can handle many of the not so nice sides of that.
Wed Aug 19 22:54:12 2009
[dgd]
Aidil@GurbaDev1: at any rate :) it is convenient, I agree. I'm convinced it is something gurbalib needs however.
Wed Aug 19 22:57:13 2009
[dgd]
Aidil@GurbaDev1: I may change my mind on that when the railsgame link works tho.. being able to specify a menu in a simple way, and having the system present it either as html to a web client, or as text to a terminal client is kinda attractive, and can save lots of custom html stuff.
Wed Aug 19 22:58:50 2009
[dgd]
Aidil@GurbaDev1: one idea I have been pondering quite a bit is to create a seperate 'dialog' scripting language, and compile that to lpc.
Wed Aug 19 22:59:19 2009
[dgd]
Thingol@the Void: Anything that makes setting up organizational structure and privs easy is vital for a lib to become successful, imo. New admins want to get to coding a game asap, and will see such things as a nuissance.
Wed Aug 19 22:59:55 2009
[dgd]
Thingol@the Void: That's why TMI is so popular still. Setting up a staff is ridiculously easy there.
Wed Aug 19 23:01:49 2009
[dgd]
Quixadhal@Bloodlines: Only problem with DS is that it's evolved to the point of having a full combat system, environment system, and a few other things that are a bit hairy to rip out. They're nice, but if they aren't what you want, it's some work to find all the hooks and yank.
Wed Aug 19 23:02:08 2009
[dgd]
Quixadhal@Bloodlines: I don't see some menu-based tools being such an entwined system.
Wed Aug 19 23:02:20 2009
[dgd]
Aidil@GurbaDev1: an alternative is to simply provide a sane setup that will work for many.
Wed Aug 19 23:02:28 2009
[dgd]
Aidil@GurbaDev1: I then challange you to write a generic menu handling system in LPC :)
Wed Aug 19 23:03:37 2009
[dgd]
Aidil@GurbaDev1: don't get me wrong btw, if someone comes up with a nice menu system for gurbalib, I'd consider that a useful addition.
Wed Aug 19 23:03:43 2009
[dgd]
Aidil@GurbaDev1: however, don't expect me to go spend any time on it in the forseeable future.
Wed Aug 19 23:04:49 2009
[dgd]
Quixadhal@Bloodlines: I assume input_to() is still the poison of choice?
Wed Aug 19 23:05:31 2009
[dgd]
Aidil@GurbaDev1: it is not possible in LPC to send output, and handle the user response in a single execution round.
Wed Aug 19 23:06:35 2009
[dgd]
Aidil@GurbaDev1: the simple consequence is that you have to preserve state over multiple execution rounds.
Wed Aug 19 23:06:51 2009
[dgd]
Aidil@GurbaDev1: not too big a problem when you only have to consider a single user.
Wed Aug 19 23:06:57 2009
[dgd]
Quixadhal@Bloodlines: right, you send the output, set the prompt, and then call input_to (or equivalent) to process whatever the user types next.
Wed Aug 19 23:08:04 2009
[dgd]
Quixadhal@Bloodlines: In MudOS at least, you can pass parameters along with that, I guess I'll find out if dgd is similar.
Wed Aug 19 23:08:47 2009
[dgd]
Thingol@the Void: What's the general reason for a 'segmentation fault' and consequent core dump?
Wed Aug 19 23:09:24 2009
[dgd]
Quixadhal@Bloodlines: A segmentation fault means you attempted to access memory that was in a segment that didn't belong to your process.
Wed Aug 19 23:09:32 2009
[dgd]
Thingol@the Void: Ok, I'll be more precise. I passed 2000*2000 chars through a for loop.
Wed Aug 19 23:10:09 2009
[dgd]
Aidil@GurbaDev1: a number of common reasons, doing recursive stuff that is not wrapped in rlimits()
Wed Aug 19 23:10:27 2009
[dgd]
Aidil@GurbaDev1: it would be useful to have the eval command or code you used.. this is a bit vague :)
Wed Aug 19 23:11:58 2009
[dgd]
Aidil@GurbaDev1: well, for the easy cases, dgd will actually issue a useful message before the segmentation fault.
Wed Aug 19 23:12:27 2009
[dgd]
Aidil@GurbaDev1: if it doesn't, the only way to find out is to load the driver and core file in a debugger, and look at the stack (ie, the bt command in gdb)
Wed Aug 19 23:12:45 2009
[dgd]
Thingol@the Void: Nope, didn't do that. Just the seg fault. I'll mail the code to you now. (Mind you, I was just testing speed+capacity a little)
Wed Aug 19 23:13:48 2009
[dgd]
Aidil@GurbaDev1: a common cause is too deep recursion in code that is not wrapped with rlimits(), but unless you modify the kernel, that should not be possible.
Thu Aug 20 18:12:03 2009
[dgd]
Sorressean@Falcon: heh. it's going. I bounce around a lot. I started work on it, though.
Thu Aug 20 18:12:27 2009
[dgd]
Nullinfinite@Gurbalib: yeah, its been a month on the project im on...mainly because of me though heh
Thu Aug 20 18:47:06 2009
[dgd]
Sorressean@Falcon: um... you use %S to do spaces in sprintf, right? like %S3 would make 3 spaces?...
Fri Aug 21 05:50:54 2009
[dgd]
Quixadhal@Bloodlines: printf uses width specifiers for placeholders, so printf("%20s", foo) prints foo right-justified to 20 spaces. %-20s would be left-justified.
Fri Aug 21 22:20:51 2009
[dgd]
Subversion@Way of the Force: Aidil committed Gurbalib revision 319 to svn://wotf.org/gurbalib : Fix permissions for code in /std, make warmboot deal better with objects for which no source file is present
Sat Aug 22 01:46:29 2009
[dgd]
Tricky@Rock the Halo scrapes gurbalib repos for http://ebspso.dnsalias.org:8080/wotf-gurbalib/devel/
Sat Aug 22 21:26:48 2009
[dgd]
Sorressean@Falcon: anyone around that wouldn't mind helping me? I have my score command set up similar to what I want, but I'm having issues because it's putting in a blank line where it's not supposed to.
Sat Aug 22 21:47:36 2009
[dgd]
Aidil@GurbaDev2: theres a party going on downstairs, I'm playing 'dj' for them :)
Sat Aug 22 21:57:02 2009
[dgd]
Sorressean@Falcon: hmm. does dgd have a mysql plugin so I can access databases?
Sun Aug 23 01:38:11 2009
[dgd]
Sorressean@Falcon: anyone around? I'm rather confused about something
Sun Aug 23 13:14:00 2009
[dgd]
Subversion@Way of the Force: Aidil committed Gurbalib revision 320 to svn://wotf.org/gurbalib : fix displaying the login and motd messages
Sun Aug 23 15:30:08 2009
[dgd]
Sorressean@Falcon: ok, so apparently the new update requires a hard boot
Sun Aug 23 16:10:15 2009
[dgd]
Aidil@Way of the Force: if an update ever requires a 'cold' reboot, it will be mentioned very explicitly. if warmboot does not work, it is a bug.
Sun Aug 23 16:12:25 2009
[dgd]
Aidil@Way of the Force: the reason being that for a persisent mud, warmboot must work at all times.
Sun Aug 23 16:13:57 2009
[dgd]
Quixadhal@Bloodlines: That's part of the reason I kindof twisted Noah's arm, back when he was first writing Phantasmal, to include a file format that things could be dumped/restored from outside the state dump.
Sun Aug 23 16:14:32 2009
[dgd]
Aidil@Way of the Force: pls, if warmboot ever fails due to other reasons then your own, report it asap :)
Sun Aug 23 16:14:36 2009
[dgd]
Quixadhal@Bloodlines: Just in case you got yourself into a corrupt state without realizing it right away... nice to not lose all your work or go hunting down earlier backups AND driver versions.
Sun Aug 23 16:14:52 2009
[dgd]
Sorressean@Falcon: it didn't tell me the error, it was just kind enough to tell me it failed. :p
Sun Aug 23 16:15:23 2009
[dgd]
Aidil@Way of the Force: well, the consequence for phantasmal is an internal data strcture that requires a few years study to understand :P
Sun Aug 23 16:15:27 2009
[dgd]
Quixadhal@Bloodlines: Oh yeah, make sure you always keep about 100 backups of your state dumps, preferably labeled with the driver version they ran under. :)
Sun Aug 23 16:15:53 2009
[dgd]
Sorressean@Falcon: hahaha. I couldn't even tell you where those are. but I don't think I use them
Sun Aug 23 16:16:08 2009
[dgd]
Quixadhal@Bloodlines: *heh* Yeah, it did get a little more complex than I expected it to...
Sun Aug 23 16:16:46 2009
[dgd]
Aidil@Way of the Force: I don't know, Quixandhal, I am running a persistent mud for years now. If you are sane, you can always repar a problematic statedump from inside the mud.
Sun Aug 23 16:17:52 2009
[dgd]
Aidil@Way of the Force: I understand the 'I want a human readable format', but I have only encountered one situation where it might have been very helpful in about 8 years time.
Sun Aug 23 16:18:30 2009
[dgd]
Sorressean@Falcon: I should probably figure out how those work though, I don't want players losing eq every time we reboot
Sun Aug 23 16:18:31 2009
[dgd]
Aidil@Way of the Force: a situation which I managed to resolve by modifying the dump loaded of dgd :)
Sun Aug 23 16:19:28 2009
[dgd]
Aidil@Way of the Force: from my point of view, rebooting the server and rebooting the game are 2 entirely different things.
Sun Aug 23 16:19:57 2009
[dgd]
Aidil@Way of the Force: you may find OBJECT_D useful, it keeps track of every loaded game object (which can then get you every clone of it)
Sun Aug 23 16:20:38 2009
[dgd]
Sorressean@Falcon: well, yeah. but sometimes server is needed. and nods, I'll take a look. does everything automatically get dumped?
Sun Aug 23 16:21:19 2009
[dgd]
Quixadhal@Bloodlines: Oh, I agree. Under normal circumstances, I'd rather not reboot the game. But, it's nice to have a way to rescue the data if you ever get to that position. For that matter, if the dump file format is well documented, one could probably write a utility to extract/import things in and out of it.
Sun Aug 23 16:21:43 2009
[dgd]
Aidil@Way of the Force: statedumps are made every hour, see 'man local_config'.
Sun Aug 23 16:22:12 2009
[dgd]
Aidil@Way of the Force: all you need to know is how to load it again on driver startup.
Sun Aug 23 16:22:29 2009
[dgd]
Aidil@Way of the Force: which is simply a matter of providing the dump file as extra argument.
Sun Aug 23 16:23:30 2009
[dgd]
Aidil@Way of the Force: re: quixadhal, yes, it would be useful, but the consequence for the lib is so much complexity that I found it not worth the efford.
Sun Aug 23 16:23:51 2009
[dgd]
Aidil@Way of the Force: modifying the dumploader of dgd to do what you want is less work.
Sun Aug 23 16:24:13 2009
[dgd]
Quixadhal@Bloodlines: Hmmmm, might be handy to have a little utility to safely copy a live dump file (IE: flock/copy/unlock) so cron can do backups without caring when DGD happens to be dumping....
Sun Aug 23 16:24:27 2009
[dgd]
Aidil@Way of the Force: abeit, it does require writing C code and understanding some of the driver internals.
Sun Aug 23 16:25:32 2009
[dgd]
Aidil@Way of the Force: well, modifying the dumploader requires C. you could do a converter in perl, but Dworkin has this habbit of changing the dumpfile format every so often.
Sun Aug 23 16:25:40 2009
[dgd]
Sorressean@Falcon: perl is only for old angry sysadmins who need more fiber in their diet... python!
Sun Aug 23 16:26:04 2009
[dgd]
Aidil@Way of the Force: a language that treats whitespace as syntax is out of the question.
Sun Aug 23 16:26:59 2009
[dgd]
Quixadhal@Bloodlines: perl only looks like it uses whitespace as syntax
Sun Aug 23 16:27:51 2009
[dgd]
Quixadhal@Bloodlines: Hmmm, I bet the dumpfile format has changed a bit since 1.1, eh?
Sun Aug 23 16:27:58 2009
[dgd]
Quixadhal@Bloodlines: http://www.xs4all.nl/~dark/dgd/dumpfile-format.txt
Sun Aug 23 16:29:11 2009
[dgd]
Aidil@Way of the Force: ie, last format change is from 1.3.1 to 1.3.2
Sun Aug 23 16:29:24 2009
[dgd]
Sorressean@Falcon: hrm. why don't you just write the flock into the driver?
Sun Aug 23 16:30:15 2009
[dgd]
Sorressean@Falcon: I haven't seen it, but my guess is you could write it in where it's going to start writing to file.
Sun Aug 23 16:30:29 2009
[dgd]
Aidil@Way of the Force: the driver does some funny stuff when writing the dumpfile. In fact, it moves the swap file and completes it (ensuring any cached changes are also written) and then modifies the header.
Sun Aug 23 16:30:35 2009
[dgd]
Quixadhal@Bloodlines: It may already do so, but I don't want to assume it does. I also don't want to modify the driver for something that trivial. :)
Sun Aug 23 16:31:08 2009
[dgd]
Aidil@Way of the Force: it is a move of an by definition complete dump file made just before the statedump is done.
Sun Aug 23 16:31:18 2009
[dgd]
Sorressean@Falcon: but it has to open and close the file, no? or does it just leave it open
Sun Aug 23 16:31:51 2009
[dgd]
Quixadhal@Bloodlines: If the driver is actively writing to the open dump file at the time you attempt to do the copy, the state wouldn't be guaranteed to be sane unless it uses flock itself.
Sun Aug 23 16:32:26 2009
[dgd]
Quixadhal@Bloodlines: Just like doing a backup of an SQL database without starting a transaction first... not good.
Sun Aug 23 16:32:38 2009
[dgd]
Sorressean@Falcon: why? I was just giving suggestions for how what he wanted might be done. it doesn't affect me either way. and yeah, that's why I was asking if the driver kept the file open. If it didn't, you could add the flock in when it opened and unlock when it closed
Sun Aug 23 16:32:55 2009
[dgd]
Sorressean@Falcon: so that you wouldn't have to worry about locking and unlocking each time a bit of the cache was written
Sun Aug 23 16:36:29 2009
[dgd]
Quixadhal@Bloodlines: Aidil, how difficult is it to make the kind of cheesy old "invisible objects" we used back in the old days of lpmuds? I was thinking that might be the simplest way to tackle that menu thing we were talking about. Just pack the state into one of those, since you *should* only be in one menu-oriented input snagging thing at a time.
Sun Aug 23 16:37:50 2009
[dgd]
Quixadhal@Bloodlines declares that the word object has been overloaded one too many times in the context of computer science.
Sun Aug 23 16:38:43 2009
[dgd]
Aidil@Way of the Force: was actually intending to add invis once I am out of this auth/connection kinda stuff.
Sun Aug 23 16:39:28 2009
[dgd]
Aidil@Way of the Force: btw.. currently, you can get the entire inventory of objects.. that is used very little throughout the lib, and I'm pondering preventing that alltogether.
Sun Aug 23 16:40:47 2009
[dgd]
Aidil@Way of the Force: adding support to the container class to describe the entire inventory (for use in descriptions). It would allow those who want to code a more advanced inventory system to do so (remembering the collapsable item discussion we had some time ago)
Sun Aug 23 16:42:28 2009
[dgd]
Quixadhal@Bloodlines: I suspect few things in game-space would need the full list of all (physical) objects in the game... that's more useful for update/upgrade activities.
Sun Aug 23 16:42:58 2009
[dgd]
Quixadhal@Bloodlines: It would be handy for an admin tool, since you may want to see every object that has the word "green" in the description.
Sun Aug 23 16:43:32 2009
[dgd]
Quixadhal@Bloodlines: The infamous "ofind" command from Dikuville. :)
Sun Aug 23 16:43:58 2009
[dgd]
Aidil@Way of the Force: at any rate.. to answer the 'does dgd keep the file open question', before writing a statedump, it will close the dump file (if it is open, which it is if you restored from a dump or it made a dump before), move it and then open a new file. during this time, the swapfile is also closed and reopened.
Sun Aug 23 16:44:15 2009
[dgd]
Aidil@Way of the Force: well.. different kind of use, OBJECT_D seems to be more what you are looking for.
Sun Aug 23 16:45:15 2009
[dgd]
Aidil@Way of the Force: as just mentioned, it can tell you all loaded objects. The blueprint of an object can get you all the clones of it.
Sun Aug 23 16:45:57 2009
[dgd]
Aidil@Way of the Force: re: 'green objects in current environment', I'd rather see the container class being able to return all green objects or such :)
Sun Aug 23 16:47:10 2009
[dgd]
Aidil@Way of the Force: if you intend to have some hundreds to a few thousand objects (monsters, game objects, rooms) then its all pretty simple.
Sun Aug 23 16:47:32 2009
[dgd]
Aidil@Way of the Force: if you want to be able to support millions of objects, then it becomes quite difficult.
Go to the top | Channel Index

