On Sun, 2003-11-09 at 20:31, Mark Wedel wrote: > Preston Crow wrote: > > I have a working scripting interface for the client. It's mostly in the > > common code, and I put in the necessary hooks in the client-specific > > code. > > > > It creates a new process for each script that you want to run, and sends > > information to it on its stdin, and reads commands from its stdout. The > > script can send any command that you can manually send, it can request > > information from the client (stored information, like map data), and it > > can listen to commands that the client receives from the server (like hp > > changes). > > > > I've written a few scripts in Bash, such as one that invokes word of > > recall whenever my hp drop to less than 50%, as well as a very long one > > that cleans up my apartment. > > > > When I last discussed this here, I didn't get a strong message as to > > whether to check in my changes. A scripting interface is clearly > > something a number of players want, but it's also clearly something that > > gives players an advantage. > > > > Should I check it in? > > That's a much better implementation, IMO, as now the scripting language is in > whatever you want (I'd probably say that you then have to write a basic startup > routine for each language that parses the data sent to it). Eg, your basic perl > routine that parses all the data passed to it, or whatever. > > IT obviously gives some advantage. OTOH, without it, it is basically making > things more difficult through obscurity. EG, right now, I could take the client > source, and code in something that applies a healing potion if you hp are too low. It's now checked in. The documentation is mostly in a big comment block at the top of common/script.c. I'm sure that there's room for improvement, but it seems to be quite stable and useful for me. It's fairly low-level and exposes some of the client internals (especially when querying the map). --PC _______________________________________________ crossfire-devel mailing list crossfire-devel at lists.real-time.com https://mailman.real-time.com/mailman/listinfo/crossfire-devel