Dune Coda Stuff



  • Hi friends,

    So I've been away from MU*ing for over a year now ... returning to find WORA gone, Reach and much change. I've been lurking a bit and seeing what is happening in the community. It is good to see many names I recognize and look forward to RPing with again.

    Anywho, while lurking, I've noticed in a few threads that there was interest in a Dune game. Well, my Dune server is still up and running (I need to talk to @Chime about keeping it going and what I owe her and all, if she could ping me that would be great) and the wiki and I still have all my notes for news files, the grid and well everything. I'll post a link to the wiki below as well as to the address of the game. I will hang out there if anyone wants to login as a guest (I think I need to turn CREATE on in the shell, I'll look into it, it might work already) and chat about it. If there is interest, I would be happy to complete its development and manage the thing. Its still the one setting I would be most keen to play as much as I miss WoD (or CoD now I guess).

    So if there is interest, let me know here or ping me on the game. I won't do it if its not really something people are after ... I'm happy to use the server space for something else which might be of more interest to people. Anywho, good to be returning to the MU* community!

    http://arrakis.mechanipus.com/wiki/Main_Page
    arrakis.mechanipus.com:7707

    I'll post some of the theme/setting notes that were up on the old WORA thread here for people to view.



  • THEME AND SETTING

    TIME: 9755 AG during the first year of the reign of Padishah Emperor Ezhar XVI

    PLACE: Arrakis. All RP will be based on the planet. Off-world scenes, when necessary for plots can be done in customizable Anywhere Rooms. Various locations on the planet will be made available including:

    • Cities: Arrakeen (seat of the Judge of the Change, temporary capital), Carthag, Arsunt, Saajid and Qina. The various Great Houses currently present on Arrakis will situate themselves in these cities, sharing them with others.

    • Sietch: Various sietches will be available for Fremen players to locate themselves. The two primary sietches (first two available I think to start) will be Sietch Tabr and Sietch Jacurutu (it has not yet been destroyed by the other tribes). Otherwise to make available will be Sietch Gara Kulon, Sietch Umbu and Red Wall Sietch.

    • Other Locations: A great deal of the desert will be available for people to RP in and explore with major features from the setting such as the Cave of Ridges, Plaster Basin, etc.

    The goal would be to make Arrakis expansive enough for the Fremen RP to have plenty of room to do their thing, as well as what is needed to support the political, mercantile and civilian RP in the cities, while at the same time trying to be compact so that the grid is not too large. Grow as we go sort of thing.

    CONFLICT: The MUSH needs a central conflict to sort of help direct the theme of the game. The proposed conflict is that the Emperor has only recently come to the throne, although he is not young, as he was the brother of the previous emperor. During his predecessor's reign poor management of Arrakis by House Ossian, at the time an ally of the old emperor's, lead to a complete breakdown of spice production (partially due to guerilla activities of certain factions amongst the Fremen as well as sabotage and politicking by other off world factions). Ezhar removed his brother from the throne and destroyed House Ossian in kanly for its failure. Due to the desire for spice production and loss of profits in CHOAM holdings, the other Great Houses stood by and allowed for House Ossian's destruction.

    The previous emperor's machinations in the Landsraad however has left Ezhar with a difficulty. No Great House has the political or financial power capable of taking on Arrakis, or at least doing so without the chance of failing as miserably as House Ossian. And so Ezhar has agreed to for the moment hold onto the CHOAM directorship of Arrakis and allow any of the Great Houses to take an active role in spice harvesting and production in order to prove themselves capable of the contract. A handful of Great Houses have taken up that call and set up in either Arrakeen or one of the other large settlements in the northern polar region, financing spice production and attempting to deal with the various problems which plagued House Ossian.

    Various houses have their own CHOAM contracts and a rather equal footing in the Landsraad. CHOAM and Landsraad votes would happen at a cyclic time during which the Houses and other factions with influence can power play for control with obviously one ultimate goal being the acquisition of the Emperor's favor and the Arrakis contract.

    For the Fremen, there is disagreement amongst the Naibs about how to deal with the political instability of the offworlders. Whether to take advantage of it or not, side with any particular House, etc. Sietch Jacurutu has taken a more aggressive approach and was responsible for much of the guerilla fighting that was the cause of House Ossian's downfall. Many of the Fremen see the Jacurutu of this period as heroes, while others worry about their bent towards war. This differences have begun to heat up as Jacurutu tries to claim more influence in the desert.

    FACTIONS

    • Great Houses: Corrino, Atreides, Harkonnen, Moritani, Ginaz, Ecaz, Ordos, Thorvald, Richese. These are proposed Houses, although this can change. There are about 40 Great Houses and whose to say that others were not on the ascendant during this period?

    • Minor Houses: People can play individual members of minor houses to join their power to a Great House for influence in the Landsraad. A member of House Fenring working with House Corrino for example.

    • Bene Gesserit: Reverend Mothers and Sisters attached to Houses. Also Sayyadinas of the Fremen. The Order has its own goals of course within the Houses and of course ensuring the flow of spice.

    • Bene Tleilax: Agents working for the Tleilaxu for their own goals ... or agents hired by Houses. Limited of course.

    • Fremen: Fremen could be servants and residents of the cities in the northern polar regions, such as Arrakeen, as well as members of various sietches. There would be factions of Fremen perhaps attaching themselves to a House and assisting them, a faction acting as guerilla fighters against all the Great Houses and spice production, etc. A good Fremen player base would allow for lots of Fremen focused TPs which would have nothing or little to do with the Great Houses. See the list of Sietches in the above post.

    • Ixians: Mainly as a supplier of tech, which would be important for Houses to acquire for spice production. A representative or two open for players.

    • Spacing Guild: Same as Ixians ... present but limited to a couple players as representatives on the planet. As they have a large vote in the Landsraad, they'd be a target for Houses to curry favor with.

    • Suks, Mentats: Attached to Houses.

    • Water Merchants, Spice smugglers, etc: So many mercantile and other options here to play. Too many to name ... the small cities of Arrakis were full of non-Fremen, non-House members who had their own goals, lives and businesses (although many attached themselves to Houses for protection and advancement).

    With a wide array of player options there can be plenty of RP for lots of interests from politics and dipolomacy, to espionage, kanly, wars of assassins, mercantile RP, Fremen cultural RP, all out combat warfare if things move that way.

    The Emperor would not be on Arrakis and would be offscreen. A Judge of the Change would be the temporary administrator of Arrakis as the conflicts progress with various Houses perhaps attaining more degrees of control as things progress.



  • FACTIONS

    Fremen

    1. Sietch Tabr

      • Naib: Jerome Ben Irafi
      • Council of Elders
      • Sayyadina: Masarrah
      • Warriors, Wormriders, Sietch members
    2. Sietch Jacurutu

      • Naib: Qasim Ben Siraj
      • Sayyadina: Reverend Mother Seneca Ruth Tahereh
      • Warriors, Wormriders, Sietch members

    Great Houses

    1. House Corrino

      • Padishah Emperor Ezhar XVI (offworld)
      • Empress Halina Wikkheiser (offworld/Bene Gesserit Sister)
      • Archduke Ashur Corrino (Emperor's brother/Judge of the Change)
      • Lady Helena Ginaz Corrino (Ashur's wife)
      • Iskander Ossian (Scion of House Ossian/Ashur's ward)
      • Nike Ossian (Scion of House Ossian/Ashur's ward)
      • House members
    2. House Wikkheiser

      • Duke Otto Wikkheiser III (Siridar-Duke of House Wikkheiser/offworld)
      • Lady Theresa (Bound Concubine/offworld)
      • na-Duke Priam Wikkheiser (Wikkheiser Heir/Head of House on Arrakis)
      • Priam's Wife
      • House members
    3. House Atreides

      • Duke Michael Atreides (Siridar-Duke of House Atreides/offworld)
      • Lady Beatrice Wikkheiser (Duke's wife/offworld)
      • Lord Marcus Atreides (Michael's uncle/House Warmaster/Head of House on Arrakis)
      • House members
    4. House Harkonnen

      • Baron Nikolai Harkonnen VIII (Siridar-Baron of House Harkonnen/offworld)
      • Lady Miram (Bound Concubine/offworld)
      • Kalus Najar (House Mentat/Head of House on Arrakis)
      • House members

    Four Minor Houses - Player Applications

    • Siridars/Heads of House may be present on Arrakis

    Other Major House Representatives

    • Players may apply to play representatives from other Great House such as Ginaz, Moritani, Ecaz, etc.

    Bene Gesserit

    1. Reverend Mother Janus Olivia Ashrafa (Imperial Truthsayer)
    2. Perhaps a couple of Sisters under Ashrafa
    3. Any Bene Gesserit trained members of Houses.

    Bene Tleilax

    1. Entirely dependent upon applications.

    Spacing Guild

    1. Qosral (Guild Navigator/SG Representative - stationed on Highliner above planet)
    2. One or two non-navigator guild members

    Spice Smugglers

    1. Entirely dependent upon applications

    Fremen/Non-Fremen City Dwellers

    1. Entirely dependent upon applications

    Ixians

    1. Entirely dependent upon applications

    CHOAM

    1. Darius Edomdred (Lord of House Edomdred, a minor house with no planet/CHOAM Executive & Admninistrator)


  • Almost everything was ready to be set up. The grid is partially done, though not @desc'ed. News files were about halfway done. The setting as you can see from the posts above were basically done (though those are just proposals). Chargen ... I believe the idea was to go with FATE, though that's all still open for debate ... or even a more statless type game (much as the old Dune III was). It would not be much effort to get the thing off the ground if people were interested in that particulary setup for a Dune game.


  • Creator

    I... I love you.


  • Pitcrew

    @somasatori said in Dune Coda Stuff:

    I... I love you.

    And I immediately go from Dune to You Only Live Twice's secret service code phrase.


  • Creator

    We should enjoy this Dune and support it. Though I do wonder if it might be better to 'file the serieal numbers off' and create something 'original. In a sense.?


  • Coder

    I am curious as to what game system is being in use here. It's all well and good to see the time period and the way the houses are set up (Which is pretty cool, I admit, lots of good ideas here) but System is important, how are you handling battles, is it mostly going to be duels or personal scale stuff (As would seem to make sense unless Kanly was declared) then system shifts one way or another.

    TL;DR

    What game system do you have coded or intending to get coded?


  • Pitcrew

    @Lithium

    @Ataru said...

    Chargen ... I believe the idea was to go with FATE, though that's all still open for debate ... or even a more statless type game (much as the old Dune III was).

    Also, SQUEE. I'd love to see a Dune game. I might consider using CoD instead of Fate though, given the prevalence of code support and stuff. But FATE works, too. I'd actually be kinda thrilled about a statless game, too. Been a while since I've had one of those to play on.


  • Coder

    @Ataru said in Dune Coda Stuff:

    Hi friends,

    Ominous already.

    So I've been away from MU*ing for over a year now ... returning to find WORA gone, Reach and much change. I've been lurking a bit and seeing what is happening in the community. It is good to see many names I recognize and look forward to RPing with again.

    Yay. I think.

    Anywho, while lurking, I've noticed in a few threads that there was interest in a Dune game.

    Hm. peeks at her forum signature. Yeees, there might be.

    Well, my Dune server is still up and running (I need to talk to @Chime about keeping it going and what I owe her and all, if she could ping me that would be great) and the wiki and I still have all my notes for news files, the grid and well everything.

    You're fine for now. Still trying to sort out my long-term plans for Mechanipus. Worst case, in a few months time I'll be looking to shut down the web side of things; looking into offsite wikis/forums/etc might be very helpful. Direct MUSH hosting I can maintain more or less indefinitely.

    I'll post a link to the wiki below as well as to the address of the game. I will hang out there if anyone wants to login as a guest (I think I need to turn CREATE on in the shell, I'll look into it, it might work already) and chat about it. If there is interest, I would be happy to complete its development and manage the thing. Its still the one setting I would be most keen to play as much as I miss WoD (or CoD now I guess).

    So if there is interest, let me know here or ping me on the game. I won't do it if its not really something people are after ... I'm happy to use the server space for something else which might be of more interest to people. Anywho, good to be returning to the MU* community!

    Interested. Not sure I have time, but interested.



  • Oh @Chime ... I missed you.



  • I approve of this idea. If you need assistance, I'd gladly toss my hat in the ring.



  • One may have forgotten #1's password. @Chime or anyone else. I forget how one fixes that. You know. Hypothetically ... yeah.


  • Pitcrew

    @Ataru

    There IS a way to fix it. I don't remember what it is, but it is possible, never fear. Somebody will be able to tell you how to do it, as someone was once able to tell me.

    Until then...someone else may have done this before. I feel your pain. ^^





  • @TNP Thanx!


  • Coder

    @Sunny said in Dune Coda Stuff:

    @Ataru

    There IS a way to fix it. I don't remember what it is, but it is possible, never fear. Somebody will be able to tell you how to do it, as someone was once able to tell me.

    Until then...someone else may have done this before. I feel your pain. ^^

    If it's a RhostMUSH, you can use a conf file parameter to reset #1's password.

    add to the netrhost.conf file:

    newpass_god 777

    It resets #1's password to the default 'Nyctasia'.

    Once you've @rebooted your system for this, you should naturally remove this entry from your netrhost.conf, or it'll keep repasswording #1 :)



  • Hey @Ashen-Shugar ... thanx! Sadly its TinyMUX :)


  • Coder

    @Ataru I can log in and set that for you if you like.

    If you have a tinymux source tree (brazil's or mine or anything within the last 6 years or so), go up to the convert/omega/ directory; normally we mess with the mux stuff in mux/src/ or mux/, but this is back above that point. Assuming your source tree was ~/tinymux/, you'd do something like:

    $ cd ~/tinymux/convert/omega
    $ ./configure
    $ make
    $ ls -l omega
    -rwxr-xr-x 1 lucca lucca 2497824 Apr 27 16:48 omega
    

    This should give you a handy executable called omega, used for flatfile db conversions between game types and other delightful stuff that probably only we code people really enjoy-- except for option -1:

    $ ./omega 
    After the options, there should be one or two command-line arguments left.
    Version: 1.1.0.0
    omega <options> <infile> [<outfile>]
    Supported options:
      -i <type>      Input file type (p6h, r7h, t5x, t6h)
      -o <type>      Output file type (p6h, r7h, t5x, t6h)
      -v <ver>       Output version
      -c <charset>   Input charset
      -d <charset>   Output charset
    
      -1             Reset #1 password to 'potrzebie'
      -x <dbref>     Extract <dbref> in @decomp format
    
    If no <outfile> is given, output is directed to standard out.
    

    So, if you have a FLATFILE backup of your db (see the db_unload command on Brazil's or the mux-backup-flat or similar on later versions of mine), you can do

    ./omega -1 mygame.FLAT mygame-reset.FLAT
    

    Then move your db's out of the way and reload from the new flatfile; do a db_load (or mux-load-flat) . Be sure to log in and change the password on #1.

    ALTERNATIVELY if you are more adventurous and understand how to use a text editor and are careful and assume all responsibility for damage that careless typos might cause:

    Given a flatfile, open it in an editor! It's just a text file, and you might learn something. Taking a peek:

    $ head netmux.20160427-165833.flat 
    +X996100
    +S2
    +N256
    -R1
    !0
    "Limbo"
    -1
    -1
    1
    -1
    

    The +X line is the db format header; if it doesn't match this, you don't have a flatfile or you have a very very wildly different mush. That number is the decimal representation of a bitmask; see convert/omega/t5xgame.h. In hex, that's 0xF3304. The bottom 8 bits are db format version-- four, in this case.

    #define T5X_V_MASK      0x000000FFUL
    #define T5X_V_ZONE      0x00000100UL
    #define T5X_V_LINK      0x00000200UL
    #define T5X_V_DATABASE  0x00000400UL
    #define T5X_V_ATRNAME   0x00000800UL
    #define T5X_V_ATRKEY    0x00001000UL
    #define T5X_V_PARENT    0x00002000UL
    #define T5X_V_ATRMONEY  0x00008000UL
    #define T5X_V_XFLAGS    0x00010000UL
    #define T5X_V_POWERS    0x00020000UL
    #define T5X_V_3FLAGS    0x00040000UL
    #define T5X_V_QUOTED    0x00080000UL
    

    Running down the list, we can see that 0xF3304 indicates zone+link+atrkey+parent+xflags+powers+3flags+quoted features present, version four. No need to fuss with that, for now. The above was from an empty minimal.db setup; typical games will have +A records declaring attribute names. E.g.:

    $ head thereach.db.FLAT 
    +X996100
    +S21151
    +N113103
    -R415
    +A256
    "1:BBTIME"
    +A257
    "1:GET_GROUP"
    +A258
    "1:NXT_MESS"
    

    +S is the size hint, roughly the number of objects in the DB. +N is the next-attr-index; Minimal.db has only the builtins, but that larger corpus has 113k different attribute names. -R is the record count of connected players. Attribute definitions have the +Aindex and then a quoted string with the name. Inside the string, that 1: is info about the attribute's flags. Remember, the @attribute command stores attribute flags in the db-- and here's where they show up. e.g. on Reach we had &short-desc me=... visible to everyone, so sure enough:

    +A1887
    "2049:SHORT-DESC"
    

    So you can search for attributes by name in the +A area to resolve their index, and then pull up those indexes in an actual db object. Are we having fun yet?

    After the attributes stuff, if any have been defined, you'll see a !0, followed by some lines, then eventually <. That's your #0 object. In minimal, it has no attributes, so you have only the object number, name, and the minimal numeric fields for things like flags and owner, parent, zone, pennies, etc. For a more developed db, you might have something like:

    !0
    "OOC Polis"
    -1
    -1
    615
    135
    -1
    -1
    110
    139
    0
    0
    2
    0
    0
    0
    >219
    "Sun Jun 28 09:05:53.650895 2015"
    >6
    "^A188:0:We've moved onto Fallcoast! fallcoast.net - port 2009. Come visit!"
    >2824
    "^A974:0:ooc"
    >7772
    "^A103:0:%r%tThe Reach is a New World of Darkness (nWoD) game set in the fictional county of %xhDunlin's Reach%xn, Maine. It takes place between two towns that are separated by a swath of ocean; the mainland town, %xhAleswich%xn, is the economical and industry-driven capital of Dunlin's Reach, with the town of %xhDunlin's Port%xn being a rich, indulgent tourist town with a dark past.%r%r%tWe offer PCs in %xhVampire: the Requiem%xn, %xhChangeling: the Lost%xn, %xhWerewolf: the Forsaken%xn, %xhHunter: The Vigil%xn, %xhMage: the Awakening%xn, %xhGeist: the Sin-Eaters%xn and a variety of %xhMortal+ 'Sighted'%xn characters from Second Sight, World of Darkness: Immortals, World of Darkness: Inferno and the Book of Spirits to just name a few. This is the OOC room where players can kick back, relax and rest up to talk about dodging those crazy Great Old Ones.%r%r%tBecause if there's anything we hate about Dunlin's Reach, it's all the goddamn Elder Gods.%r"
    >250
    "000001FF FFFFFFFF"
    >19477
    "^A1003:0:yes"
    >29286
    "^A974:0:strcat( setq( c, sortby( fn_idlesort, filter( fil_notdark, lcon( %!, CONNECT )))), setq( w, widthcol( ncol( add( max( last( sort( iter( %qc, strlen( %i0 )), n )), 14), 4 ), words( %qc )))), vtable( iter( %qc, strcat( setq( a, edit( get( %i0/alias ), |, , )),setq( a, strcat( if( and( lte( strlen( %qa ), 4 ), strlen( %qa )), ansi( hx, %(%qa%))%b), singletime( idle( %i0 )))), setq( b, sub( %qw, inc( strlen( %qa )))), setq( m, edit( moniker( %i0 ), |, , )), if( lte( strlen( name( %i0 )), %qb ), ljust( %qm%b, %qb, ansi( hx, . )),ljust( %qm, sub( %qb, 3 ))... ) %qa ), %b, | ), 0, |, ansi( r, | )))"
    <
    

    The values of the object are > attrindex "value" -- but note that as with attrs there is some extra metadata, so you'd better use an editor that lets you see and manipulate control characters.

    >2824
    "^A974:0:ooc"
    

    What deviltry is that? Well, we look it up: >2824 is:

    +A2824
    "1:COORD"
    

    &coord was an attr used by the infamous +who command to show what "map" coordinate people were in for that area. But 974? That's a DBREF, likely of whatever jackass set that on the object.

    !974
    "Coventry"
    

    ...Oh yeah...

    But we wanted to know how to set a password, so back to minimal.db and it's #1:

    !1
    "Wizard"
    0
    -1
    -1
    -1
    0
    -1
    1
    -1
    1000
    19
    0
    0
    0
    0
    >218
    "Wed Apr 27 16:57:08.39992 2016"
    >219
    "Wed Apr 27 16:57:08.39992 2016"
    >30
    "Wed Apr 27 16:57:25.165357 2016"
    >49
    "20"
    >38
    "20"
    >5
    "$SHA1$qV3LDfRK6IPX$9M6Vg82nbN3IcXThVVS31aV/Yd0="
    >88
    "::1"
    >144
    "::1"
    >84
    "#1;::1;Wed Apr 27 16:57:25.165644 2016;;;;;;;0;0;;;;;;;"
    >222
    "Shutdown"
    >224
    "3 3 3 1 1461801448"
    <
    

    Many of you doing security work can see the answer right there; a SHA1 hash and associated Base64 encoded data. Can you reverse that to get a password out? Well, technically it could be brute forced depending on the strength of the password (and mush users have TERRIBLE passwords because they're all using unencrypted telnet anyway), but for most reasonable cases of manual examination, no. The hash isn't enough to log in with.

    But we only need to reset it, which can be done simply by replacing that line with an already known hash. For example, because that's a minimal.db, we know the above hash was generated from "potrzebie" and can just use that.

    Why >5 though? It doesn't show up in the +A records as it's a builtin. In attrs.h:

    #define A_PASS      5   /* Password (only meaningful for players) */
    

    Indeed, attr index 5 is password. And in db.cp:

    // The following 'special' attributes adopt invalid names to make them
    // inaccessible to softcode.  A small price of this is that we must
    // manually upper-case them in the table.
    //
    ATTR AttrTableSpecial[] =
    {
        {T("*PASSWORD"),   A_PASS,     AF_DARK | AF_NOPROG | AF_NOCMD | AF_INTERNAL},
        {T("*PRIVILEGES"), A_PRIVS,    AF_DARK | AF_NOPROG | AF_NOCMD | AF_INTERNAL},
        {T("*MONEY"),      A_MONEY,    AF_DARK | AF_NOPROG | AF_NOCMD | AF_INTERNAL},
        {NULL,                  0,          0}
    };
    

    So really, making password accessible as &password and returned in examine, etc would be quite easy to do-- it's just a really bad idea for security. Examining hashes like this requires shell access to the game, as it probably should be.

    We could construct a small script to do this sort of reset safely, but it's only needed for losing #1; wizards and such can already @newpassword people as needed. I'm not going to write such a tool though, as... omega already does it. See above.


  • Coder

    @Chime

    Nerd.

    <3


Log in to reply
 

Looks like your connection to MU Soapbox was lost, please wait while we try to reconnect.