<!-- MHonArc v2.4.4 -->
<!--X-Subject: Re: Execution -->
<!--X-From-R13: @nguna Kbfcr <lbfcrNunjnvv.rqh> -->
<!--X-Date: from fabius.globecomm.net [207.51.48.6] by mx4.ibm.net id 859270455.87266-1 Tue Mar 25 06:14:15 1997 -->
<!--X-Message-Id: Pine.GSO.3.95q.970324180932.13639A-100000@uhunix2 -->
<!--X-Content-Type: text/plain -->
<!--X-Reference: 199703250344.DAA07340#out2,ibm.net -->
<!--X-Head-End-->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
<head>
<title>MUD-Dev message, Re: Execution</title>
<!-- meta name="robots" content="noindex,nofollow" -->
<link rev="made" href="mailto:yospe#hawaii,edu">
</head>
<body background="/backgrounds/paperback.gif" bgcolor="#ffffff"
text="#000000" link="#0000FF" alink="#FF0000" vlink="#006000">
<font size="+4" color="#804040">
<strong><em>MUD-Dev<br>mailing list archive</em></strong>
</font>
<br>
[ <a href="../">Other Periods</a>
| <a href="../../">Other mailing lists</a>
| <a href="/search.php3">Search</a>
]
<br clear=all><hr>
<!--X-Body-Begin-->
<!--X-User-Header-->
<!--X-User-Header-End-->
<!--X-TopPNI-->
Date:
[ <a href="msg00201.html">Previous</a>
| <a href="msg00203.html">Next</a>
]
Thread:
[ <a href="msg00199.html">Previous</a>
| <a href="msg00192.html">Next</a>
]
Index:
[ <A HREF="author.html#00202">Author</A>
| <A HREF="#00202">Date</A>
| <A HREF="thread.html#00202">Thread</A>
]
<!--X-TopPNI-End-->
<!--X-MsgBody-->
<!--X-Subject-Header-Begin-->
<H1>Re: Execution</H1>
<HR>
<!--X-Subject-Header-End-->
<!--X-Head-of-Message-->
<UL>
<LI><em>To</em>: Multiple Recipients of MUD Design Mailing List <<A HREF="mailto:mud-dev#null,net">mud-dev#null,net</A>></LI>
<LI><em>Subject</em>: Re: Execution</LI>
<LI><em>From</em>: Nathan Yospe <<A HREF="mailto:yospe#hawaii,edu">yospe#hawaii,edu</A>></LI>
<LI><em>Date</em>: Mon, 24 Mar 1997 20:19:06 -1000</LI>
<LI><em>Reply-To</em>: Nathan Yospe <<A HREF="mailto:yospe#hawaii,edu">yospe#hawaii,edu</A>></LI>
</UL>
<!--X-Head-of-Message-End-->
<!--X-Head-Body-Sep-Begin-->
<HR>
<!--X-Head-Body-Sep-End-->
<!--X-Body-of-Message-->
<PRE>
On Sun, 23 Mar 1997, Chris Gray wrote:
:[Nathan Y:]
:
:[C++ extract for dynamic execution deleted.]
:
:My C++ is sketchy, but I think I followed that. In the basics, it is
:pretty similar to mine, although my implementation looks a lot uglier.
:I think all schemes that allow mixing of native and interpreted code
:are going to have some basic similarities.
:
:I have some questions about your example script, however:
:
:- what is the difference between 'parent' and 'master'? I imagine 'master'
: to be the PC who started it all with 'hunt', but what is 'parent'?
: I imagine it to be the PC or the drone which caused this one to be
: created, but if so, how does a message from a deep descendant get
: back to the master? Hmm. I guess this was just meant as an example,
: given that 'drone:parent()' is being used after it has already been
: verified to be null. Ooops.
Huh? Can't find an example of a null drone:parent() that hasn't stopped
execution. Parent is, it would appear, the drone that spawned this one, if
any.
Yeah, I guess so... I'm having a tough time with this myself... looks like
the semicompile scripting language from Physmud++ v.2... I'm not sure if I
still have a copy of that around. I've gotten into this habit of scrapping
functional codebases and starting over as my programming skills increase..
one hazard of a sharp learning curve. Um. Well, it looks like it was an
example... probably.
:- how does it stop? Does 'exits' return all of the exits of the room?
: Is it something to do with the 'addlevel(-1)'?
No. The addlevel thing was probably a counter to restrict the size of a
search path. Umm. I wonder... I'll post up an example from my current
language at some point. My new version is OO... a nice improvement. It
also has inheritance, and much cleaner function definition. The exits()
thing was almost certainly a call to the room to get all of the exits.
Hmmm. OK, I'm starting to get this. Here you go:
:- are drones actual NPC's? If so, does 'terminate' delete the NPC or
: just stop this execution of its script?
Drones seem to have been NPCs. Terminate stops execution.
:Anyway, thanks for the example - I always like to see snippets of other
:people's stuff, just to get the flavour of it.
I'll try to translate it. Its a little obsolete, but...
/*
> hunt // the 'hunt' program
expect
character ch // acting character
string input // input string
bool override // override of 'instincts'
short mode // skill based failure mode
end expect
begin
*/
// The above is essentially equivalent to what is now:
void <area>:hunt(Character ch, String input, bool override, short mode){
// Where <area> is equivalent to a Java package, and all arguments are
// passed similarly to Java references.
/*
// parse the string
string parseword = input:extract()
// search through all backpacks, etc for a drone
character drone = ch:getcharfromcontents("drone")
^^^
// This seems to be the only existant mistake. Should be "skills:drone".
*/
// this merely calls a method of the String class to get the first word
// off of the input String. The second line grabs the drone character,
// which the player should be carrying around....
/*
if(drone == null)
// this will only happen if something goes wrong. There should be a
// check for these drones in the skill that launches this command.
ch:show("You don't have any hunting drones to deploy.\r\n")
terminate
end if
*/
// If the drone doesn't exist (the skillcheck should have spotted this...)
// bail out.
/*
drone:moveto(ch:room())
ch:show("You deploy a hunting drone."\r\n)
*/
// extract the drone from inventory and deploy it. This part is patently
// impossible now. Instead, a call would have been made to the drone's
// location, using drone:exit(), which only works because there is only
// one exit, hopefully, from the location. Better would have been
// drone.exit(drone.local().exits());
/*
drone:execute(hunt2, parseword)
*/
// executes another homebrew program. Used for any program added to an
// already existant class.
/*
terminate
&
*/
// essentially translated - return; }
The other program is similar. There are still holdovers in my current
language. The new language is a bit easier to translate into C++ when the
code is stable... meaning I can have it autotranslated and added in as a
hardcoded feature next time around with no coding.
__ _ __ _ _ , , , ,
/_ / / ) /_ /_) / ) /| /| / /\ First Light of a Nova Dawn
/ / / \ /_ /_) / \ /-|/ |/ /_/ Final Night of a World Gone
Nathan F. Yospe - University of Hawaii Dept of Physics - yospe#hawaii,edu
</PRE>
<!--X-Body-of-Message-End-->
<!--X-MsgBody-End-->
<!--X-Follow-Ups-->
<HR>
<!--X-Follow-Ups-End-->
<!--X-References-->
<!--X-References-End-->
<!--X-BotPNI-->
<UL>
<LI>Prev by Date:
<STRONG><A HREF="msg00201.html">Re: Resets and repops</A></STRONG>
</LI>
<LI>Next by Date:
<STRONG><A HREF="msg00203.html">Re: Resets and repops (a really short post)</A></STRONG>
</LI>
<LI>Prev by thread:
<STRONG><A HREF="msg00199.html">Execution</A></STRONG>
</LI>
<LI>Next by thread:
<STRONG><A HREF="msg00192.html">Mixture</A></STRONG>
</LI>
<LI>Index(es):
<UL>
<LI><A HREF="index.html#00202"><STRONG>Date</STRONG></A></LI>
<LI><A HREF="thread.html#00202"><STRONG>Thread</STRONG></A></LI>
</UL>
</LI>
</UL>
<!--X-BotPNI-End-->
<!--X-User-Footer-->
<!--X-User-Footer-End-->
<ul><li>Thread context:
<BLOCKQUOTE><UL>
<LI><STRONG>Re: Resets and repops (a really short post)</STRONG>, <EM>(continued)</EM>
<ul compact>
<LI><strong><A NAME="00248" HREF="msg00248.html">Re: Resets and repops (a really short post)</A></strong>,
Nathan Yospe <a href="mailto:yospe#hawaii,edu">yospe#hawaii,edu</a>, Sat 29 Mar 1997, 04:09 GMT
</LI>
<LI><strong><A NAME="00252" HREF="msg00252.html">Re: Resets and repops (a really short post)</A></strong>,
Nathan Yospe <a href="mailto:yospe#hawaii,edu">yospe#hawaii,edu</a>, Sat 29 Mar 1997, 08:32 GMT
</LI>
<LI><strong><A NAME="00258" HREF="msg00258.html">Re: Resets and repops (a really short post)</A></strong>,
claw <a href="mailto:claw#null,net">claw#null,net</a>, Sat 29 Mar 1997, 13:57 GMT
</LI>
</ul>
</LI>
<LI><strong><A NAME="00199" HREF="msg00199.html">Execution</A></strong>,
Chris Gray <a href="mailto:cg#ami-cg,GraySage.Edmonton.AB.CA">cg#ami-cg,GraySage.Edmonton.AB.CA</a>, Mon 24 Mar 1997, 15:00 GMT
<UL>
<li><Possible follow-up(s)><br>
<LI><strong><A NAME="00202" HREF="msg00202.html">Re: Execution</A></strong>,
Nathan Yospe <a href="mailto:yospe#hawaii,edu">yospe#hawaii,edu</a>, Tue 25 Mar 1997, 14:14 GMT
</LI>
</UL>
</LI>
<LI><strong><A NAME="00192" HREF="msg00192.html">Mixture</A></strong>,
Furball <a href="mailto:K.L.Lo-94#student,lut.ac.uk">K.L.Lo-94#student,lut.ac.uk</a>, Mon 24 Mar 1997, 05:40 GMT
<UL>
<li><Possible follow-up(s)><br>
<LI><strong><A NAME="00193" HREF="msg00193.html">Re: Mixture</A></strong>,
Adam Wiggins <a href="mailto:nightfall#inficad,com">nightfall#inficad,com</a>, Mon 24 Mar 1997, 13:12 GMT
</LI>
<LI><strong><A NAME="00204" HREF="msg00204.html">Re: Mixture</A></strong>,
Travis S Casey <a href="mailto:casey#nu,cs.fsu.edu">casey#nu,cs.fsu.edu</a>, Tue 25 Mar 1997, 22:12 GMT
</LI>
<LI><strong><A NAME="00205" HREF="msg00205.html">Re: Mixture</A></strong>,
Furball <a href="mailto:K.L.Lo-94#student,lut.ac.uk">K.L.Lo-94#student,lut.ac.uk</a>, Tue 25 Mar 1997, 22:22 GMT
</LI>
</UL>
</LI>
</UL></BLOCKQUOTE>
</ul>
<hr>
<center>
[ <a href="../">Other Periods</a>
| <a href="../../">Other mailing lists</a>
| <a href="/search.php3">Search</a>
]
</center>
<hr>
</body>
</html>