• Several Baja questions

    From Evan Elias@VERT to All on Tue Aug 15 14:59:41 2000
    OTE: DCTEdit v0.04 [10]ãI've been tinkering with the idea of porting my game DoorMUD to baja, sort of ãanyway. It would work by having an external "server" program (ie, a standard ãEXE written w/ C++, that isn't a door) running in the background while players ãare in the game. A Baja "client" module would communicate with the server, ãusing files for input and output. I think this might have the potential to be ãvery efficient, since only one copy of the server would need to be running at ãany time. So if 5 users were in the game, only 1 DOS program would be ãrunning, instead of 5.ããHowever, I have a few Baja questions before I can get started on this:ãã1. How fast/efficient are the Baja file manipulation routines? When ãfile-sharing is used, is it compatible with C's sopen function?ãã2. How do I open files in binary mode? Or is that the default for baja's ãfopen?ãã3. Which system variable stores the node number? (I wasn't sure if ã_USERON.NUMBER was the node number or the account number)ãã4. What happens when a user hangs up? Does the module just quit? That would ãbe very bad for me, since the MUD needs to perform routines so that the player ãis no longer listed as online... is there a way to set a certain subroutine to ãbe called in case of a hang-up?ããAny help is GREATLY appreciated :)ããThanks,ãEvan Eliasãhttp://dmud.thebbs.orgã---ã þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.netã
  • From Digital Man@VERT to Evan Elias on Tue Aug 15 19:05:35 2000
    RE: Several Baja questionsãBY: Evan Elias to All on Tue Aug 15 2000 09:59 pmãã > I've been tinkering with the idea of porting my game DoorMUD to baja, sort oã > anyway. It would work by having an external "server" program (ie, a standarã > EXE written w/ C++, that isn't a door) running in the background while playeã > are in the game. A Baja "client" module would communicate with the server,ã > using files for input and output. I think this might have the potential to ã > very efficient, since only one copy of the server would need to be running aã > any time. So if 5 users were in the game, only 1 DOS program would beã > running, instead of 5.ããOr perhaps even easier (but perhaps not quite as efficient), create a 32-bitãWinSock/telnet version. This could be Synchronet-specific (getting the socketãhandle from XTRN.DAT) or better yet, DOOR32.SYS compatible (which is supportedãby Synchronet, Mystic and EleBBS at the moment). This would still be aãsingle-instance per user, but the fact that it was 32-bit and used socketsãdirectly would improve the performance dramatically.ãã > However, I have a few Baja questions before I can get started on this:ã > ã > 1. How fast/efficient are the Baja file manipulation routines? ããOnly slightly slower than a native 32-bit application.ãã > Whenã > file-sharing is used, is it compatible with C's sopen function?ããYes.ãã > 2. How do I open files in binary mode? Or is that the default for baja'sã > fopen?ããI believe (I don't have the docs in front of me), it only supports binary mode.ãã > 3. Which system variable stores the node number? ããI believe it's _node_num (check DOCS\BAJA.DOC).ãã > (I wasn't sure ifã > _USERON.NUMBER was the node number or the account number)ã ãThat is the account/user number.ã ã > 4. What happens when a user hangs up? Does the module just quit? ããYes, unless the OFFLINE Baja function has been called.ãã > That woulã > be very bad for me, since the MUD needs to perform routines so that the playã > is no longer listed as online... is there a way to set a certain subroutine ã > be called in case of a hang-up?ããYou can use the OFFLINE Baja function and check for disconnection manually Iãthink (_sys_status bit ON_REMOTE).ããRobã---ã þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.netã
  • From Evan Elias@VERT to Digital Man on Wed Aug 16 13:02:22 2000
    RE: Several Baja questionsãBY: Digital Man to Evan Elias on Wed Aug 16 2000 02:05 amããOTE: DCTEdit v0.04 [14]ã > Or perhaps even easier (but perhaps not quite as efficient),ã > create a 32-bit WinSock/telnet version. This could beã > Synchronet-specific (getting the socke handle from XTRN.DAT)ã > or better yet, DOOR32.SYS compatible (which is support byã > Synchronet, Mystic and EleBBS at the moment). This wouldã > still be a single-instance per user, but the fact that itã > was 32-bit and used sockets directly would improve theã > performance dramatically.ããWell, only problem for me there is, I don't know much about 32-bit coding :(ãSo making a Baja port would probably be easier for me. Plus, I like the ãconcept of not having an extra window open for each user in the game, and ãadded features like seeing who's online, global paging, etc are always nice.ãã > You can use the OFFLINE Baja function and check forã > disconnection manually I think (_sys_status bit ON_REMOTE).ããAre there any known issues regarding this that I'll have to worry about? (ie , ãfunctions working differently in offline mode). One thing that concerned me ãwas if you're inputting an entire string in offline mode, I wasn't sure if ãthere was a way to detect hang-ups in that case, since the function doesn't ãreturn until the user hits enter... if they hang up in offline mode, will the ãfunction terminate or will it just freeze?ããThanks for answering all my questions... got one more though :) Is there an ãeasy way to take the current command character and add it to a string? I ãnoticed there wasn't an option in sprintf to put the command character into a ãstring, and I didn't see any other ways to do it either, since very few ãfunctions allow you to manipulate the command char.ããThe reason I want to append it to a string is I want to do most string input ãone character at a time (using inkey) so that other operations can be done ãwhile a user is in the process of entering a string.ããThe only way I could think of to put the command character onto the end of a ãstring was to have a separate cmdkey for every key on the keyboard, and then ãmanually add the proper character to the string using strcat... but that would ãbe somewhat tedious since there'd be a billion cmdkey's. Is there an easier ãway?ããThanks,ãEvan Eliasã---ã þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.netã
  • From Evan Elias@VERT to Digital Man on Wed Aug 16 13:24:31 2000
    RE: Several Baja questionsãBY: Digital Man to Evan Elias on Wed Aug 16 2000 02:05 amããOTE: DCTEdit v0.04 [1]ãOne other problem I'm having w/ trying to do key-by-key string input... all of ãthe character input functions (inkey, getkey, getkeye) seem to convert the ãcharacter to upper-case. Is there any way around this?ããMuch thanks,ãEvan Eliasã---ã þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.netã
  • From Digital Man@VERT to Evan Elias on Wed Aug 16 23:37:10 2000
    RE: Several Baja questionsãBY: Evan Elias to Digital Man on Wed Aug 16 2000 08:02 pmãã > RE: Several Baja questionsã > BY: Digital Man to Evan Elias on Wed Aug 16 2000 02:05 amã > ã > OTE: DCTEdit v0.04 [14]ã > > Or perhaps even easier (but perhaps not quite as efficient),ã > > create a 32-bit WinSock/telnet version. This could beã > > Synchronet-specific (getting the socke handle from XTRN.DAT)ã > > or better yet, DOOR32.SYS compatible (which is support byã > > Synchronet, Mystic and EleBBS at the moment). This wouldã > > still be a single-instance per user, but the fact that itã > > was 32-bit and used sockets directly would improve theã > > performance dramatically.ã > ã > Well, only problem for me there is, I don't know much about 32-bit coding :(ããIn general, 32-bit programming is much like 16-bit programming, but with theãmemory limitations. :-) Honestly, as long as you're using a 32-bit developmentãtool, there aren't many differences, except of course in C/C++ ints are 32-bitãinstead of 16-bit (use shorts or longs to specify size).ãã > So making a Baja port would probably be easier for me. Plus, I like theã > concept of not having an extra window open for each user in the game, andã > added features like seeing who's online, global paging, etc are always nice.ããLook into the Synchronet XSDK for C/C++ programmers. You get all theseãadvantages and then some.ã ã > > You can use the OFFLINE Baja function and check forã > > disconnection manually I think (_sys_status bit ON_REMOTE).ã > ã > Are there any known issues regarding this that I'll have to worry about? (ieã > functions working differently in offline mode). One thing that concerned meã > was if you're inputting an entire string in offline mode, I wasn't sure ifã > there was a way to detect hang-ups in that case, since the function doesn'tã > return until the user hits enter... if they hang up in offline mode, will thã > function terminate or will it just freeze?ããI don't know off-hand. You could always experiment with it.ã ã > Thanks for answering all my questions... got one more though :) Is there anã > easy way to take the current command character and add it to a string? ããgetkeyãstrcat my_str strãã > Iã > noticed there wasn't an option in sprintf to put the command character into ã > string, and I didn't see any other ways to do it either, since very fewã > functions allow you to manipulate the command char.ããThe command character is always put into the first character of the commandãstring, so any function that operates (or can operate) on the command stringã(str) can use the command char too.ããRobã---ã þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.netã
  • From Evan Elias@VERT to Digital Man on Sun Aug 20 03:16:40 2000
    RE: Several Baja questionsãBY: Digital Man to Evan Elias on Thu Aug 17 2000 06:37 amããOTE: DCTEdit v0.04 [6]ã > Look into the Synchronet XSDK for C/C++ programmers. You getã > all these advantages and then some.ããOk, I'll give it a look then :) Where can I download it from?ãã > getkeyã > strcat my_str strãã > The command character is always put into the first characterã > of the command string, so any function that operates (or canã > operate) on the command string (str) can use the commandã > char too.ããAre you sure about that? I couldn't get it to work :( Getkey (or getkeye, ãinkey, etc) didn't seem to modify the command string when I tried... I did a ãsecond test, just having "getkey" then "print str", the command string was ãunchanged :(ããWell, if I can figure out the Synchronet XSDK I suppose I'll just use that ãinstead of baja anyway, so it's no big deal.ããThanks,ãEvanã---ã þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.netã
  • From Digital Man@VERT to Evan Elias on Sun Aug 20 08:40:15 2000
    RE: Several Baja questionsãBY: Evan Elias to Digital Man on Sun Aug 20 2000 10:16 amãã > > Look into the Synchronet XSDK for C/C++ programmers. You getã > > all these advantages and then some.ã > ã > Ok, I'll give it a look then :) Where can I download it from?ããftp://vert.synchro.net/main/sbbs/xsdk_300.zipãã > > getkeyã > > strcat my_str strã > ã > > The command character is always put into the first characterã > > of the command string, so any function that operates (or canã > > operate) on the command string (str) can use the commandã > > char too.ã > ã > Are you sure about that? I couldn't get it to work :(ããRobã---ã þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.netã
  • From Digital Man@VERT to Evan Elias on Sun Aug 20 08:41:06 2000
    RE: Several Baja questionsãBY: Evan Elias to Digital Man on Sun Aug 20 2000 10:16 amãã > Are you sure about that? I couldn't get it to work :( Getkey (or getkeye,ããI'll check it out when I get back to the states in a week or so.ããRobã---ã þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.netã
  • From Reaper Man@VERT/TIME to Evan Elias on Fri Aug 18 11:22:00 2000
    RE: Several Baja questionsãBY: Evan Elias to Digital Man on Wed Aug 16 2000 08:02 pmãã > Well, only problem for me there is, I don't know much about 32-bit coding :(ã > So making a Baja port would probably be easier for me. Plus, I like theã > concept of not having an extra window open for each user in the game, andã > added features like seeing who's online, global paging, etc are always nice.ããhmm, what if instead of spawning multiple copies, you had a host program thatãconnected to the sockets, and another program that would make a connection withãthe host and tell it what node to load up.ãam i just talking out my fourth point of contact or would it work?ãã---ã þ Synchronet þ Time Warp of the Future Time.Darktech.Org 9am pt - 12am ptã
  • From Evan Elias@VERT to Digital Man on Mon Aug 21 14:05:25 2000
    RE: Several Baja questionsãBY: Digital Man to Evan Elias on Sun Aug 20 2000 03:40 pmããOTE: DCTEdit v0.04 [1]ã > > Ok, I'll give it a look then :) Where can I download itã > > from?ã > ftp://vert.synchro.net/main/sbbs/xsdk_300.zipããMuch thanks... downloading it right now :)ã---ã þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.netã
  • From Evan Elias@VERT to Reaper Man on Mon Aug 21 14:10:09 2000
    RE: Several Baja questionsãBY: Reaper Man to Evan Elias on Fri Aug 18 2000 06:22 pmããOTE: DCTEdit v0.04 [4]ã > hmm, what if instead of spawning multiple copies, you had aã > host program tha connected to the sockets, and anotherã > program that would make a connection w the host and tell itã > what node to load up. am i just talking out my fourth pointã > of contact or would it work?ããThe problem there is that I think one copy of the external program needs to be ãrunning per node. When an external program terminates for a node, control ãpasses back to the BBS... I don't think there's a way to avoid that :( So if ãthere wasn't one copy running per node, I don't think there'd be a way for the ãBBS to know that the user was still in the door.ããI'm not sure though... I can always try tinkering with stuff. After all, I ãdidn't even think originally there was any way I could get my door to run ãmulti-node in the first place :)ã---ã þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.netã
  • From Reaper Man@VERT/ROVER to Evan Elias on Thu Aug 24 09:08:00 2000
    RE: Several Baja questionsãBY: Evan Elias to Reaper Man on Mon Aug 21 2000 09:10 pmãã > I'm not sure though... I can always try tinkering with stuff. After all, Iã > didn't even think originally there was any way I could get my door to runã > multi-node in the first place :)ããyeah, i didn't consider how the bbs would see if the user was done...ãperhaps you could have several "nodes" that would talk to a central proccessãvia tcp ports for lack of better idea. the first node to come up would spawnãthis "server" and once every node had disconnected from the "server" it wouldãterminate itself.ããI have a warmer, fuzzier feeling about this method...ãã---ã þ Synchronet þ Rover Central, Kenora Ontario, Canadaã
  • From Evan Elias@VERT to Reaper Man on Wed Aug 30 10:46:21 2000
    RE: Several Baja questionsãBY: Reaper Man to Evan Elias on Thu Aug 24 2000 04:08 pmããOTE: DCTEdit v0.04 [4]ã > yeah, i didn't consider how the bbs would see if the userã > was done... perhaps you could have several "nodes" thatã > would talk to a central proccess via tcp ports for lack ofã > better idea. the first node to come up would spaw thisã > "server" and once every node had disconnected from theã > "server" it woul terminate itself. I have a warmer, fuzzierã > feeling about this method...ããWell, that would definitely work, but alas the original problem is back -- ãthere'd be one copy of the "client" program open for each node in the game :( ãOhwell... not really a big deal... I just liked the concept of potentially ãbeing able to have many users in the game at once without the visual clutter ãof having so many programs running on the Windows taskbar.ã---ã þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.netã
  • From Tracker1@VERT/RGRGUMBY to Reaper Man on Wed Aug 30 17:24:00 2000
    RE: Several Baja questionsãBY: Reaper Man to Evan Elias on Thu Aug 24 2000 04:08 pmãã > RE: Several Baja questionsã > BY: Evan Elias to Reaper Man on Mon Aug 21 2000 09:10 pmã > ã > > I'm not sure though... I can always try tinkering with stuff. After all, ã > > didn't even think originally there was any way I could get my door to runã > > multi-node in the first place :)ã > ã > yeah, i didn't consider how the bbs would see if the user was done...ã > perhaps you could have several "nodes" that would talk to a central proccessã > via tcp ports for lack of better idea. the first node to come up would spawã > this "server" and once every node had disconnected from the "server" it woulã > terminate itself.ã > ã > I have a warmer, fuzzier feeling about this method...ããmicrosoft calls this COM.. :)ããã---ã þ Synchronet þ Rangergumby's Outpost - tracker1.darktech.orgã
  • From Reaper Man@VERT/FLAMINT to Evan Elias on Fri Sep 1 08:28:00 2000
    RE: Several Baja questionsãBY: Evan Elias to Reaper Man on Wed Aug 30 2000 17:46:00ãã > Well, that would definitely work, but alas the original problem is back --ã > there'd be one copy of the "client" program open for each node in the game :ã > Ohwell... not really a big deal... I just liked the concept of potentiallyã > being able to have many users in the game at once without the visual clutterã > of having so many programs running on the Windows taskbar.ããthats the easy part...ãjust have the server on the task bar, and all the "nodes" could opt to not showãup in the task bar.ãand if you did a ctrl-alt-del you could either have them listed in there byãnode number conected to, or have them run as windowless apps, kinda like a .dllãã---ã þ Synchronet þ Flamin' Torch BBS - Fired Up and ready to go flamint.dyndns.orgã
  • From Evan Elias@VERT to Reaper Man on Sat Sep 2 06:39:53 2000
    RE: Several Baja questionsãBY: Reaper Man to Evan Elias on Fri Sep 01 2000 03:28 pmããOTE: DCTEdit v0.04 [4]ã > thats the easy part... just have the server on the task bar,ã > and all the "nodes" could opt to not s up in the task bar.ã > and if you did a ctrl-alt-del you could either have themã > listed in there by node number conected to, or have them runã > as windowless apps, kinda like a .dllããHmm.. how do I go about making a program not show up on the task bar? As I've ãsaid before... my Windows programming experience is somehwat lacking :(ããActually though, there's no need for a separate server program now, since the ãWindows console port runs quickly enough regardless of how many users are in ãthe game.ããBut I would still like to have a way to make the program not clutter the task ãbar, possibly as a command-line option for BBS's that are centered around MUDs ãand hence would often have many copies of the door open at once.ããSo if ya know how to make a C++ Win32 Console program not show up on the ãtaskbar, please let me know :)ã---ã þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.netã
  • From Reaper Man@VERT/FLAMINT to Evan Elias on Sun Sep 3 10:02:00 2000
    RE: Several Baja questionsãBY: Evan Elias to Reaper Man on Sat Sep 02 2000 13:39:00ãã > So if ya know how to make a C++ Win32 Console program not show up on theã > taskbar, please let me know :)ããok I do know how to do this in vb.ãone place you might look is the msdn library site.ãthey have some kind of online search and you can see what other people haveãwritten on the topic.ãhttp://search.microsoft.com/us/dev/default.aspãno hatemail please... but there are a few good things here when it comes to apiãcalls and I guess they will have something about c++ since they have thisãvisual C++ stuff.ãã---ã þ Synchronet þ Flamin' Torch BBS - Fired Up and ready to go flamint.dyndns.orgã
  • From Evan Elias@VERT to Reaper Man on Mon Sep 4 06:57:05 2000
    RE: Several Baja questionsãBY: Reaper Man to Evan Elias on Sun Sep 03 2000 05:02 pmããOTE: DCTEdit v0.04 [0]ã > ok I do know how to do this in vb. one place you might lookã > is the msdn library site. they have some kind of onlineã > search and you can see what other people have written on theã > topic. http://search.microsoft.com/us/dev/default.asp noã > hatemail please... but there are a few good things here whenã > it comes to calls and I guess they will have something aboutã > c++ since they have this visual C++ stuff.ããOk, I'll give it a look. Thanks!ããEvan Eliasã---ã þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.netã