![]() |
#21 |
Member
Join Date: Jul 2006
Name: Brandon
Location: Shelby Township, Michigan
Home MUD: The Builder Academy
Home MUD: 4 Dimensions
Posts: 142
![]() |
Re: Revolutionary New OLC and Scripting
NIMScripts command functions do not replace existing mud commands by default, a special call to "return(1)" alerts the MUD that it should not continue looking for other commands (command syntax properly entered, so stop here) -- if this is not used, the command executes and then the mud continues to the next command. So, in effect, you can override or augment standard commands like 'wear', 'lock', 'drop', 'get' etc by adding a command like this to a "prop" (similar to Diku "object")
DG can do this as well. DG overrides the actual mudcommand by default, but can be set not to. A few examples below: Code:
Name: 'Look', Trigger Intended Assignment: Rooms Trigger Type: Command , Numeric Arg: 100, Arg list: look Commands: if !%arg% %send% %actor% Alas, it is too dark to see anything. end Code:
Name: 'Look', Trigger Intended Assignment: Rooms Trigger Type: Command , Numeric Arg: 100, Arg list: * Commands: if %cmd.mudcommand% == look && !%arg% %send% %actor% Alas, it is too dark to see anything. else return 0 end Code:
Name: 'Look', Trigger Intended Assignment: Rooms Trigger Type: Command , Numeric Arg: 100, Arg list: * Commands: return 0 if %cmd.mudcommand% == look && !%arg% %send% %actor% You notice a movement out of the corner of your eye. end Note: I'm not trying to one up NIMSCript, I'm really mostly comparing because it piques my interest as well, to the best of my knowledge DG was what I'd always considered to be, by far, the most advanced scripting used in any DIKU derived codebase that wasn't just an existing language embedded into the MUD. (ie, I'm not comparing it non mud-specific languages like lua which can be embedded.) |
![]() |
![]() |
![]() |
#22 |
Banned
Join Date: Jan 2009
Home MUD: nimud.divineright.org 5333
Posts: 195
![]() |
Re: Revolutionary New OLC and Scripting
Code:
Name: 'Look', Trigger Intended Assignment: Rooms Trigger Type: Command , Numeric Arg: 100, Arg list: * Commands: return 0 if %cmd.mudcommand% == look && !%arg% %send% %actor% You notice a movement out of the corner of your eye. end Note: I'm not trying to one up NIMSCript, I'm really mostly comparing because it piques my interest as well, to the best of my knowledge DG was what I'd always considered to be, by far, the most advanced scripting used in any DIKU derived codebase that wasn't just an existing language embedded into the MUD. (ie, I'm not comparing it non mud-specific languages like lua which can be embedded.)[/quote] Is it mere coincidence that both languages use %variable% syntax? Probably not. NiMScripts have been made available as early as December 1993, so it's likely that parts of NiM's interpreter ended up as DG Scripts. Here's an example of the mining script: Code:
Vnum: [ 3506] Name: [mine] Type: [ 0] [COMMAND (When a command is typed.)] Script: if ( pre(%astr%,{mine}), { goto({mine}) }, { goto({end}); } ); label(mine); return(1); %minehere% is(sector(here()),4); if ( %minehere%, {}, { goto({nothere}); } ); if ( skill(%actor%,{mining},{0}), { goto({success}); }, { goto({fail}); } ); label(success); echo(%actor%,{You throw the pick against earth.}); oecho(%actor%,{%name% throws a pick against the earth and a few bits of debris scatter around.}); wait(20); echo(%actor%,{You rummage through the debris and pick up anything of value.}); if ( check(10), { goto({gem}); } ); if ( check(35), { goto({gold}); } ); echo(%actor%, {You find nothing useful in the debris.}); goto({end}); label(gold); dispense(%actor%,{17040}); echo(%actor%,{You find a hunk of gold!}); goto({end}); label(gem); dispense(%actor%,{50}); echo(%actor%,{You find a gem!}); goto({end}); label(nothere); echo(%actor%,{You cannot mine here.}); goto({end}); label(fail); echo(%actor%,{You miss and nearly strike your foot!}); goto({end}); label(end); Here is an example of the script used to manage a pirate ship adventure: Code:
Vnum: [ 6211] Name: [aelmon-shipmate] Type: [ 1] [EACH_PULSE (Each pulse.)] Script: label(start); %state% {pending}; if ( not(random(0,20)), {goto(boarding);}); if ( not(random(0,20)), {goto(fishing);}); if ( not(random(0,20)), {goto(storm);}); if ( not(random(0,20)), {goto(return)}); wait(6); label(boarding); %state% {boarding}; wait(101); do({shout Merchant ship, ahoy! All hands on deck!}); reset(6215); reset(6216); reset(6217); wait(30); dig(6210,{east},6215); do({shout Plank is lowered, board the enemy ship!}); wait(1002); do({shout all aboard the Aelmon, we set sail soon!}); wait(103); do({shout Plank is raised, anchor's away!}); undig(6210,{east}); wait(100); goto(start); label(fishing); %state% {fishing}; wait(10); do({:baits his hook.}); wait(10); do({:fishes over the side.}); wait(random(50,150)); do({:catches a fish and reels it in!}); do({at 20 oload 6209}); wait(10); do({drop fish}); wait(10); if(random(0,1),{goto(start);},{goto(fishing);}); label(return); %state% {returning}; wait(40); do({shout Land ho! Starboard!}); wait(15); recho(6210,{The ship floats safely into the Marina.}); recho(6211,{The ship floats safely into the Marina.}); recho(6212,{The ship floats safely into the Marina.}); recho(6213,{The ship floats safely into the Marina.}); wait(20); do({shout Drop anchor!}); wait(30); do({shout We have returned to port!}); moveall(6211,6200,{look}); moveall(6212,6200,{look}); moveall(6213,6200,{look}); moveall(6210,6200,{look}); goto(start); label(landfall); wait(10); do({shout Storm!}); wait(50); recho(6210,{Wind buffets the ship; you hear the mast break!}); recho(6211,{Wind buffets the ship; you hear the mast break!}); recho(6212,{Wind buffets the ship; you hear the mast break!}); recho(6213,{Wind buffets the ship; you hear the mast break!}); wait(50); do({shout All hands abandon ship!}); recho(6210,{The boat begins to capsize!}); recho(6211,{The boat begins to capsize!}); recho(6212,{The boat begins to capsize!}); recho(6213,{The boat begins to capsize!}); wait(50); do({shout Abandon ship!}); moveall(6210,6218,{look}); moveall(6211,6218,{look}); moveall(6212,6218,{look}); moveall(6213,6218,{look}); wait(100); label(storm); %state% {storm}; if ( cmp(weather(),3), { goto(landfall); } ); if ( cmp(weather(),2), { do({shout Batten down the hatches! Lower the misenmast!}); wait(100); } ); goto(start); Last edited by locke : 03-16-2009 at 10:25 PM. |
![]() |
![]() |
![]() |
#23 | |
Legend
Join Date: Apr 2002
Name: Richard
Home MUD: God Wars II
Posts: 2,052
![]() ![]() |
Re: Revolutionary New OLC and Scripting
Quote:
I'm not sure if it's really a "revolutionary new OLC and scripting" if it's been around for 14 years though.... |
|
![]() |
![]() |
![]() |
#24 | ||
Member
Join Date: Jul 2006
Name: Brandon
Location: Shelby Township, Michigan
Home MUD: The Builder Academy
Home MUD: 4 Dimensions
Posts: 142
![]() |
Re: Revolutionary New OLC and Scripting
Quote:
And Locke, do not let me catch you editing Wikipedia again to add this: Quote:
This is an old revision of this page, as edited by 98.111.199.226 (talk) at 17:36, 4 March 2009. It may differ significantly from the current revision. I'd bet money that 98.111.199.226 is your current IP or was as of two weeks ago. EDIT: (I traced the IP, it's in Pennsylvania, anyone know if that is where Locke lives?) In fact do me a larger favor. Stop editing any and all MUD related wikipedia pages to make references to NiMUD. NiMUD's page was deleted some time ago due to being voted to be of little consequence, relatively unknown, and to have few MUDs running it. Since then you seem to have tried editing almost every other DIKU codebase's page in existence to add mention of NiMUD to it. Why do you bother? I'm guessing vanity, and that hopefully if it is mentioned on enough other pages you will have an easier time making the claim that it is of enough consequence to deserve its own page once again. Frankly I don't care for the reason, I do not want to see NiMUD referenced as being an inspiration for CircleMUD or DG Scripts when it was pre-dated by both. Last edited by Fizban : 03-16-2009 at 02:11 PM. |
||
![]() |
![]() |
![]() |
#25 | |
Banned
Join Date: Jan 2009
Home MUD: nimud.divineright.org 5333
Posts: 195
![]() |
Re: Revolutionary New OLC and Scripting
Quote:
At the time the only other system available for Merc and that I was aware of aside from MUSHcode was MobProgs. I based the %-% variable method from MS-DOS Batch File language. Since I was at the time developing The Isles using the DJGPP Compiler, and it seemed like something easy to implement. I've since then learned a lot more about programming and my experience has become quite vast. I can see where I could write a better language in retrospect, but don't really see a reason to because writing the software is not profitable for me. I'm also displeased with its illegal sale by Owen Emlen, so my days in MUD development are pretty numbered. Considering many of the advanced features were only recently programmed, and since this thread proves its superior feature set, I would say "revolutionary" and "new" are fine adjectives. Additional evidence to back this up is in the 80 or so downloads since January, proving the software is still a cult classic. Fizban, As for your unfounded claims versus me on Wikipedia, you might want to consider that I have an avid fanbase, many of which do actively use other websites and it is very possible that discussions on my MUD may have lead to others erroneously making claims on other websites. Regards, Locke Last edited by locke : 03-16-2009 at 10:45 PM. |
|
![]() |
![]() |
![]() |
#26 | |
Banned
Join Date: Jan 2009
Home MUD: nimud.divineright.org 5333
Posts: 195
![]() |
Re: Revolutionary New OLC and Scripting
Quote:
These letters prove the circulation of NiMUD as early as October. I had already uploaded this information to several MUD archival sites, including wuarchive, and other defunct FTP directories services. Bull**** your way out of believing it all you want, but I speak the truth when I talk about the 3Q-4Q of 1993. NIMUD. - rec.games.mud.diku | Google Groups CthulhuMUD (kuh-tool-loo) - rec.games.mud.diku | Google Groups <- October, at least 1 month after it was released to several FTP sites and announced privately on MUD bboards such as at Hidden Worlds MU* Last edited by locke : 03-16-2009 at 10:48 PM. |
|
![]() |
![]() |
![]() |
#27 | |
Member
Join Date: Jul 2006
Name: Brandon
Location: Shelby Township, Michigan
Home MUD: The Builder Academy
Home MUD: 4 Dimensions
Posts: 142
![]() |
Re: Revolutionary New OLC and Scripting
Quote:
Summary for those with tl;dr syndrome: I make no claims about the history of NiMScript, but I will vehemently deny any claim that DG is a derivative of said language as I have never heard of NiMScript till recently and have worked with Thomas Arp on TBA for five years and know that 99%+ of what is today known as DG Scripts was written by him or was in the initial release by the DG Staff when they released it. (ie. he coded the majority of the differenced between what it was then and is today, not that he coded the initial language that was used on Death's Gate) |
|
![]() |
![]() |
![]() |
#28 |
Banned
Join Date: Jan 2009
Home MUD: nimud.divineright.org 5333
Posts: 195
![]() |
Re: Revolutionary New OLC and Scripting
Last edited by locke : 03-18-2009 at 04:11 PM. |
![]() |
![]() |
![]() |
#29 | |
Banned
Join Date: Jan 2009
Home MUD: nimud.divineright.org 5333
Posts: 195
![]() |
Re: Revolutionary New OLC and Scripting
Quote:
|
|
![]() |
![]() |
![]() |
#30 | |
Legend
Join Date: Apr 2002
Name: Richard
Home MUD: God Wars II
Posts: 2,052
![]() ![]() |
Re: Revolutionary New OLC and Scripting
Quote:
|
|
![]() |
![]() |
![]() |
#31 |
Member
Join Date: Jul 2006
Name: Brandon
Location: Shelby Township, Michigan
Home MUD: The Builder Academy
Home MUD: 4 Dimensions
Posts: 142
![]() |
Re: Revolutionary New OLC and Scripting
That just made me chuckle, I hadn't even bothered clicking his link to look at it till you quoted it but yeah....when you provide a link to back up your side of a story and the link actually backs up the other person's more than your own I think it's time to realize that well, just maybe, the other person was actually *gasp* right.
|
![]() |
![]() |
![]() |
#32 |
Banned
Join Date: Jan 2009
Home MUD: nimud.divineright.org 5333
Posts: 195
![]() |
Re: Revolutionary New OLC and Scripting
Oh, you're right it is. Well, there you have it. It's actually the post mentioned in a later reply above that shows OLC to be written for CthulhuMUD, my first mud, which became NiMUD.
Although I did mention the release date inside an original release as December 31st, 1993. Merc had just came out when I was starting MUDs. The MUD I started on was a Merc 1.0, called Nameless MUD. By naming my software Nameless Incarnate, I was attempting to keep things documented. Chris Woodward was in the hospital by late 1994, so we certainly couldn't have been developing the software in 1994 together because he was incapacitated. By late 1994 he to leave Penn State during his first semester, and had gained a considerate amount of weight and was actually slightly shorter than me - whereas when I met him he was taller than me and rail thin. By December 13, 1995 he was dead. So, claims made that he somehow continued to work after the initial release is impossible and he did not work on the MUD after early 1994, if at all in 1994. That post must be from a NeXT machine which I had access to after Chris went to college. Before that I had only worked locally using DJ Delorie's GNU C Compiler for MS-DOS, which is where The Isles OLC was original written. Both Chris and I had installed this compiler as per the instructions on the Merc 2.0 port. Since we were already fans of the software, we downloaded the newest version of Merc as soon as it was made available. So, the development occurred almost immediately after Merc 2.2's release and it was later included as an add-on to Envy, but only after ILAB was written a year or so later. I believe Chris was still alive when ILAB was started, because I remember him giving me permission to permit the port, and of course being friends he thought it was a cool thing. Both of us were excited when Jason Dinkel approached us sometime later. This is OT though, we're here to discuss NiMScripts and new OLC features, not Wikipedia or The Isles start date. Last edited by locke : 03-17-2009 at 02:12 PM. |
![]() |
![]() |
![]() |
#33 |
Banned
Join Date: Jan 2009
Home MUD: nimud.divineright.org 5333
Posts: 195
![]() |
Re: Revolutionary New OLC and Scripting
Merc 2.0 released in 1993 : Merc 2.0 Beta released for anon ftp - rec.games.mud.diku | Google Groups
Already on MSDOS: Merc for dos - rec.games.mud.diku | Google Groups Already distributed by April 21: Merc 2.0 Beta - rec.games.mud.diku | Google Groups This is the post that shows Hidden Worlds added their OLC, mid-1993. This was the first one I ever saw on a Merc and it was the inspiration for ours though I never immorted -- Chris Woodward did -- our OLC was released only a few months later: Merc2 Area Editor - rec.games.mud.diku | Google Groups Me announcing CthulhuMUD using my friend Chris Tchou's Andrew account: Cthulhu MUD - rec.games.mud.diku | Google Groups Sept 1, 1993 -- this is precisely the time when we wrote OLC for our MUDs. It was only a few weeks/a month later that it was hacked and stolen, so we then released it publically. I re-released it several times in 1993 and 1994. Cthulhu MUD the saga continues - rec.games.mud.diku | Google Groups Looking for a site Where's Hidden Worlds..?? - rec.games.mud.diku | Google Groups Hidden Worlds goes down Hidden Worlds is back up! - rec.games.mud.diku | Google Groups Hidden Worlds back up! Last edited by locke : 03-17-2009 at 02:01 PM. |
![]() |
![]() |
![]() |
#34 |
Banned
Join Date: Jan 2009
Home MUD: nimud.divineright.org 5333
Posts: 195
![]() |
Re: Revolutionary New OLC and Scripting
CircleMUD 2.11 now available at ftp.cs.jhu.edu
![]() Cthulhumud - rec.games.mud.diku | Google Groups User looking for CthulhuMUD October 7th, 1993 C T H U L H U M U D - rec.games.mud.diku | Google Groups CthuhuMUD back on new server CircleMUD 2.20 now available at ftp.cs.jhu.edu ![]() NiMUD had been created at this point, and my personal "NiMUD" development site, post-Chris Woodward: NIMUD. - rec.games.mud.diku | Google Groups Dec 3, 1993 Evidence that OLC was already written: Looking for online creation code - rec.games.mud.diku | Google Groups Dec 27-31, 1993 .. I gave it to the one person, then I released it because I felt everybody deserved it. Last edited by locke : 03-17-2009 at 02:15 PM. |
![]() |
![]() |
![]() |
#35 |
Banned
Join Date: Jan 2009
Home MUD: nimud.divineright.org 5333
Posts: 195
![]() |
Re: Revolutionary New OLC and Scripting
What the confusion is about is that I also released one Dec 31, 1994. This was a one year anniversary.
|
![]() |
![]() |
![]() |
#36 |
Member
Join Date: Jul 2006
Name: Brandon
Location: Shelby Township, Michigan
Home MUD: The Builder Academy
Home MUD: 4 Dimensions
Posts: 142
![]() |
Re: Revolutionary New OLC and Scripting
Simply something that piqued my curiosity, why were you posting under the name Donald H. Jones and signing the posts Herb Gilliand in the signature?
|
![]() |
![]() |
![]() |
#37 |
Legend
Join Date: Apr 2002
Name: Richard
Home MUD: God Wars II
Posts: 2,052
![]() ![]() |
Re: Revolutionary New OLC and Scripting
Yup, but I was talking about Merc 2.2, which The Isles was based on. I just downloaded Merc 2.2 and The Isles to verify the dates, and noticed that the date I gave previously was incorrect - sorry about that. Merc 2.2 was actually released 24th November 1993. I may have been thinking of 13th October 1993 because it was the date Merc Industries dissolved.
I also noticed this header in the scr.c file in The Isles distribution: Code:
/* * Nimud scripts. * This script parser was begun on 5/7/94 by Herb Gilliland * (aka Locke of The Isles). It was written to allow a more advanced mud * software to come into play. The next_command() and multi_interpret() * routines were derived from the MOBprograms in Merc 2.2, and the work of * the buggy code of Natasha. I found the whole MOBprograms to be bugged * to hell, and, since I myself didn't want to remain with the primitive * and crude script language that I developed, I wanted to make something * that was really useful. I must thank the writers of MudOS (LpMUD) and * all MOOs, MUSEs, MUSHes and MUCKs, this really is based on the ideas * made by them. * Enjoy. * See adjoining text for information on the syntax. */ |
![]() |
![]() |
![]() |
#38 |
Banned
Join Date: Jan 2009
Home MUD: nimud.divineright.org 5333
Posts: 195
![]() |
Re: Revolutionary New OLC and Scripting
It was my friend's email - he owned the account and I asked for access to it. I didn't have internet access, I was only 13 and my parents didn't have the internet. I was mainly into BBSes right before that.
|
![]() |
![]() |
![]() |
#39 | |
Banned
Join Date: Jan 2009
Home MUD: nimud.divineright.org 5333
Posts: 195
![]() |
Re: Revolutionary New OLC and Scripting
Quote:
Thanks for proving something I asserted earlier, KaVir. Except, I must admonish the above statement because: the only thing remotely inspired by MOBProgs is a single function, do(); There are over 150 functions in the language. The list is too big to post here, but it accounts for a very small percentage of the work. I doubt a single line looks like MOBProgs. You've also proven that The Isles was based on Merc 2.0, not Merc 2.2, initially. What kind of Merc do you think I was running in September, 1993? Obviously a Merc 2.0 or 2.1, perhaps even 2.1c Last edited by locke : 03-17-2009 at 08:01 PM. |
|
![]() |
![]() |
![]() |
#40 | ||
Legend
Join Date: Apr 2002
Name: Richard
Home MUD: God Wars II
Posts: 2,052
![]() ![]() |
Re: Revolutionary New OLC and Scripting
Quote:
However the degree of inspiration and derivation isn't the issue here. All I'm pointing out is that your Nimud scripts were based on the MOBprograms code shipped with Merc 2.2, which means you couldn't have started work on them until Merc 2.2 had been released on 24th November 1993. However that is a moot point anyway, as you state within the code that you started work on the Nimud scripts 7th May 1994. Quote:
"The Isles is a modified Merc 2.2 source code, with many features not present in the original Merc source." "We wanted a different system altogether, and we were pretty sure that this feature (present in CthulhuMUD, a long gone god) would be the ticket." "Changed armor to resemble (vaguely) the CthulhuMUD/Aldara3 setup (damagable)." However once again this isn't important to the point in question, which is whether or not DG Scripts copied parts of the Nimud Scripts as you have suggested. We know that Worlds of Carnage was the first Diku to implement a scripting system. That system inspired others, including Cythera, LegendMUD, and the version implemented in Merc 2.2. It is possible (although this is only speculation) that Death's Gate MUD also drew some inspiration from Worlds of Carnage, but it couldn't have copied the Nimud scripting system because it predates it. |
||
![]() |
![]() |
![]() |
Thread Tools | |
|
|