Register to post in forums, or Log in to your existing account
 

Play RetroMUD
Post new topic  Reply to topic     Home » Forums » CMUD General Discussion
Scarn
Apprentice


Joined: 24 Jul 2005
Posts: 137

PostPosted: Tue Oct 06, 2015 11:14 pm   

COM objects.
 
So I want to start branching out into COM objects, I'm trying to load the text in a text file into a CMUD variable. Is this what COM is for?

I've skimmed the help file but it's a little advanced for me to understand, so far I understand that I need to CALL the program (notepad) and then the txt file location?

Would someone be able to show me an example of the simplest form of using COM that I could then build on?
Reply with quote
shalimar
GURU


Joined: 04 Aug 2002
Posts: 4691
Location: Pensacola, FL, USA

PostPosted: Tue Oct 06, 2015 11:20 pm   
 
If you are just trying to edit text files you likely want the #FILE #READ and #WRITE commands.
I am sure it could be done via COM as well though.
_________________
Discord: Shalimarwildcat
Reply with quote
Scarn
Apprentice


Joined: 24 Jul 2005
Posts: 137

PostPosted: Tue Oct 06, 2015 11:58 pm   
 
What I want to do is grab all the data from a text file and display it into a window (it'll be for quest info) working off my map... Basically walk into a quest and my 'Quest' window populates with data from X file.
Reply with quote
Daern
Sorcerer


Joined: 15 Apr 2011
Posts: 809

PostPosted: Wed Oct 07, 2015 6:26 am   
 
As shalimar mentioned, CMUD's built-in commands would be more appropriate for this use case. You don't need to interact with notepad at all to read a text file, since zScript already provides a mechanism for it. From a brief google search, it doesn't look like Notepad actually supports COM, it is a very simplistic program.

COM is a system used for programs to talk between each other. However, every individual program is responsible for making public the functions that it wants to expose through COM, so it's hard to provide a global example that really encapsulates everything. You would need to read the documentation of the program in question to see what functions are available to be called. A good starting point for experimenting could be to call CMUD's own COM interface (documentation here, replacing zMUD with CMUD as necessary). For example, if you wanted to send a string to the current session, you could do something like this:

Code:
$cmud = %comcreate("CMUD.Application")
#call $cmud.CurrentSession.SendStr("foo")


Obviously calling CMUD's COM interface from within CMUD itself seems somewhat redundant, but the idea to wrap your head around is that CMUD has made these functions publicly available to be called from within any application that supports COM. As an example, I've experimented with running CMUD on a webserver, and using COM to send commands and pull live data from the MUD to display on a webpage.
Reply with quote
Scarn
Apprentice


Joined: 24 Jul 2005
Posts: 137

PostPosted: Fri Oct 09, 2015 4:29 am   
 
I'll have an investigate!
Reply with quote
Scarn
Apprentice


Joined: 24 Jul 2005
Posts: 137

PostPosted: Fri Oct 09, 2015 4:35 am   
 
How would you do the above in lua?
Reply with quote
Daern
Sorcerer


Joined: 15 Apr 2011
Posts: 809

PostPosted: Fri Oct 09, 2015 7:32 am   
 
Using the LuaCOM library:

Code:
require("luacom")
local cmud = luacom.CreateObject("CMUD.Application")
cmud.CurrentSession:SendStr("foo")
Reply with quote
Scarn
Apprentice


Joined: 24 Jul 2005
Posts: 137

PostPosted: Fri Oct 09, 2015 11:43 am   
 
Ah, was using . instead of :
Reply with quote
Display posts from previous:   
Post new topic   Reply to topic     Home » Forums » CMUD General Discussion All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum

© 2009 Zugg Software. Hosted by Wolfpaw.net