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
makena
Apprentice


Joined: 11 Aug 2006
Posts: 100

PostPosted: Mon Dec 18, 2006 9:34 am   

Multiplaying
 
I love CMUD. Its beautiful, fast, efficent. Throughout the beta I bought multiple copies to show my support.

But, I multiplay exclusively, and I believe CMUD is clearly lacking here.
I am having trouble making it do things I would like it to do. At the root of it, I think my problem is I am unsure of how we are supposed to multiplay with CMUD.

I CAN make triggers, aliases, use variables, etc.
I DO understand how specific CMUD syntax requirnents are.
In fact if I was a solo char player, I would be mudding right now, not writing this.

Ok we have packages. So it would be spify and efficent if I could make one package, that might handle basic stuff that all characters need (spell tracking, weapon tracking, damage tracking, etc, things that are not character specific). This package works for testing purposes with one session one char. But try it with either setup up below, and it isn't reliable or even seeming to work right.

I have tried my scripts the most obvious ways..
One session with multiple session windows...
Multiple sessions each with one session window...

In my experimenting, each has its problems and its merits from events, %char, autologin, package confusion, layouts.

Is anyone using CMUD to multiplay?
Two or more characters on the same mud at the same time, etc?
(not talking in one session, and playing another mud in another session)

HOW are you trying to implement it all? One of my ways? A different way?
*cry* its late, hope this makes sense
Reply with quote
Fang Xianfu
GURU


Joined: 26 Jan 2004
Posts: 5155
Location: United Kingdom

PostPosted: Thu Dec 21, 2006 1:36 am   
 
I've done it with one session more than I've done it with two, but two sessions is the way Zugg would prefer you to do it I think.

It's simple to make two sessions as long as you don't change the default package or anything like that. Scripts for one character go in that character's package. You can create another .pkg file containing a global module and add it to each session's package list (rclick, edit session, files tab, click the plus, navigate to the file) for scripts you want to use on both characters. That way you only have to change the script once (Note: I haven't tried this very much at all. Loading two instances of the same package should be working properly thanks to fixes in b1.21 or 1.22, but I suppose it's possible it's still not working. If it's not, send in a bug report).

If you'd rather use one session and lose out on the autologin and such for the second window, you can simply open your session, and use the "new window" option in the package editor to create a new window. Set it to use its own network connection and point it at the MUD, and you're off. Character-specific settings go in their specific window - multi-character settings will require you to create a module separate to the two windows. It can be local in this example since both windows are in the same package. This way isn't really recommended, but it's worked when I multiplayed in the past.
Reply with quote
makena
Apprentice


Joined: 11 Aug 2006
Posts: 100

PostPosted: Thu Dec 21, 2006 10:16 am   
 
Thanks for the reply Fang.

Quote:

You can create another .pkg file containing a global module and add it to each session's package list (rclick, edit session, files tab, click the plus, navigate to the file) for scripts you want to use on both characters. That way you only have to change the script once (Note: I haven't tried this very much at all. Loading two instances of the same package should be working properly thanks to fixes in b1.21 or 1.22, but I suppose it's possible it's still not working. If it's not, send in a bug report).


This seems to be the problem I am having. When I open three sessions that use my "engine" package (which only a global module), I get three instances of the package in the tabs of the settings editor, and in the list of packages enabled for this window. Things are just strange and unprdictable from there. I am going to try and simply reproduce it and submit it in the beta forum.

Quote:

If you'd rather use one session and lose out on the autologin and such for the second window

No way!
Reply with quote
Zugg
MASTER


Joined: 25 Sep 2000
Posts: 23379
Location: Colorado, USA

PostPosted: Wed Jan 17, 2007 9:35 pm   
 
Quote:
I get three instances of the package in the tabs of the settings editor

That is true. Each session will load it's own copy of the "global" package that you created. That's how it works. And this should work fine. You'll need to be more specific about what you mean by "strange and unpredictable".

I'm considering adding a way to have a single copy of a global package, although during beta testing when I had it working like that it caused lots of other problems.
Reply with quote
makena
Apprentice


Joined: 11 Aug 2006
Posts: 100

PostPosted: Thu Jan 18, 2007 12:22 am   
 
In the global package I created, I have an alias to set a "tank" var (stored in the global package). This var won't always have the correct value when changed, if multiple instances are loaded. Same with triggers that set my characters hp/mana/etc.

I currently work around this by created a dummy session with this package enabled, and load this dummy session first, then connect my characters. That works how I envisioned. :(
This actually had a great side effect, atm, because I can put buttons in this session, and tile it just right, so each character can see all the buttons (work around for multiple instances of a button)

thank you VERY much for the response.

Quote:
I'm considering adding a way to have a single copy of a global package
Very Happy
Reply with quote
Fang Xianfu
GURU


Joined: 26 Jan 2004
Posts: 5155
Location: United Kingdom

PostPosted: Thu Jan 18, 2007 4:51 am   
 
Mmm, that problem with the tank var is because the package isn't actually global settings, it's two separate packages that happen to be identical. It'll be great when global settings like that work :D

Incidentally, if you really want to get it working that way now, here's an extract from an email I wrote to someone a while ago on the topic:

Quote:
Open the package editor, click new and then Window from the list. You can name it what you like - I'm going to call the window that existed already MyMudA, and the one you just created MyMudB.

You'll want to leave the command line, status bar and visible options checked. The window position option you can play around with on your own, it's pretty intuitive. The network connection should be set to override - you need to type the address of your mud (it'll probably be on the dropdown list already) and enter the port. Then you just click "save changes" and close the package editor, and your new window should appear and work fine.

If you open the package editor again, you'll see it now has two windows, MyMudA and MyMudB. Settings can only be created inside these windows, as children of them, and settings only apply to whichever window they're inside. So if you create an alias "test" for MyMudA, typing "test" in the MyMudB window won't run the alias. If you want to create settings that'll be visible to both, click New, then Module - name the module. Then create your "global settings" inside the module rather than inside the window - settings inside modules are shared to all windows and modules in the same package by default (as you'll see if you click on the module - it has the local option enabled). The final product would look like the attached cmud4.jpg.
Reply with quote
makena
Apprentice


Joined: 11 Aug 2006
Posts: 100

PostPosted: Thu Jan 18, 2007 6:54 pm   
 
Thanks for the reply. It might be because I just woke up, but this doesn't seem to help or make sense in this situtation.

Why is it "two seprate packages that are identical"? Are you saying, its physically one file, but CMUD makes a copy each for each session currently using it?
(You have two sessions that each load with XX.pkg, when you load both sessions, cmud makes a working copy of xx.pkg for each session?)

regarding your quote, fang..
Where is that module saved? Are both those windows part of one session, or two individual sessions?
I am trying to get away from using a session file with multiple char windows.
With that setup you don't get autologin/%char, etc... (I know fang knows this, he has mentioned it before)
Furthermore, I dont always use the same setup of characters, or have character XXX on (always), so I can't just dump my global settings on one char.
Your example seems to be a session file with multiple char windows.

Sorry for the confusion.
Reply with quote
Fang Xianfu
GURU


Joined: 26 Jan 2004
Posts: 5155
Location: United Kingdom

PostPosted: Thu Jan 18, 2007 7:02 pm   
 
makena wrote:
Why is it "two seprate packages that are identical"? Are you saying, its physically one file, but CMUD makes a copy each for each session currently using it?
(You have two sessions that each load with XX.pkg, when you load both sessions, cmud makes a working copy of xx.pkg for each session?)

That's exactly what I'm saying, yes.

makena wrote:
Where is that module saved? Are both those windows part of one session, or two individual sessions?

One session. Click the link to cmud4.jpg. The module could equally be a global module in another package, though. The second window could even be in its own package, but you've got to use one session to make it only load one copy of your global package.

And yes, I know about not being able to use autolog - you still can, you just can't use #char and #pass, which is a drawback but not a major one. It'll get your global settings to function as you're expecting, though (change a variable on one character, it's changed for the other character too). It's just a dirty workaround until it's working as you expect - wouldn't even be too hard to set up the different packages afterwards from the settings you have in one package there, really.
Reply with quote
Hyomoto
Newbie


Joined: 06 Jan 2007
Posts: 4

PostPosted: Fri Jan 19, 2007 8:20 pm   
 
If found my packages can get messed up between sessions, so I have to make sure to clean my library of other sessions before I quit and save it. Then I just begin a new window in the current session but I have many problems such as ALARM not firing in the inactive windows even though triggers usually will.
Reply with quote
Fang Xianfu
GURU


Joined: 26 Jan 2004
Posts: 5155
Location: United Kingdom

PostPosted: Fri Jan 19, 2007 9:37 pm   
 
Yes, the #alarm bug's on the list.
_________________
Rorso's syntax colouriser.

- Happy bunny is happy! (1/25)
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