DLL Talk / DBP_EZSClient Plugin - EZ_Serv Plugin for Dark Basic Professional |
| Author | Message | ||
|
CattleRustler
Moderator ![]() ![]() Joined: Fri Aug 8th 2003 Location: case modding at overclock.net |
DBP_EZSClient Plugin The DBP_EZSClient Plugin for DBP is designed to simplify the usage of the EZ_Serv TCPIP Server application with your DBP programs. The Plugin handles all tcpip communications, parses and responds to all ezs specific protocol messages, allows the user to build and maintain Protocol-Pass-Thru (PPT) stub lists so that the plugin can parse them automatically, and even builds and maintains remote client lists (independent Server and Zone levels) exposing all of this data to the end user’s application. Function List: ezs_SetParserMode ByVal ModeType As Integer ezs_Connect ByVal Host As String, ByVal Port As Integer ezs_GetTCPData() As String ezs_GetConnectionState() As Integer ezs_Send ByVal tData As String ezs_Disconnect ezs_GetSCCount() As Integer ezs_GetZCCount() As Integer ezs_GetSCNickByIndex(ByVal Index As Integer) As String ezs_GetSCIDByNick(ByVal Nick As String) As Integer ezs_SetLoginData ByVal ClientNick As String, ByVal ClientPassword As String ezs_SetClientVersion ByVal Version As String ezs_SetPPTDelim ByVal Delimiter As String ezs_SetPPTIDMode ByVal ModeType As Integer ezs_AddPPTStub ByVal StubName As String ezs_RemovePPTStub ByVal StubName As String ezs_GetServerTime(ByVal PartIndex As Integer) As String ezs_GetCommand() As String ezs_GetCommandID() As String ezs_GetCommandData() As String The download contains the dll, a doc file, and a keyword ini. You can download the package from HERE or by clicking my sig link. This plugin requires the MS .NET Framework 1.1 or higher Thanks, all feedback welcome CR |
||
| Back to top |
|||
|
CattleRustler
Moderator ![]() ![]() Joined: Fri Aug 8th 2003 Location: case modding at overclock.net |
this plugin is still under development but I added 2 functions that were missing... ezs_GetShortID() ezs_GetLongID() previously the plugin only allowed you to get this data if the server was set to use logins. Moggie100 pointed out that you couldnt get this data from the plugin when not using logins :/ Call those fucntion above at any time to get their values, whether or not the server is set to require logins. The data returned is YOUR client's id's. download the patched plugin here |
||
| Back to top |
|||
|
Philip 1337
User Joined: Tue Aug 27th 2002 Location: United Kingdom |
Quote: "ezs_GetShortID()
ezs_GetLongID()" Yes this is what I need oh and the keywords file needs an update ![]() |
||
| Back to top |
|||
|
CattleRustler
Moderator ![]() ![]() Joined: Fri Aug 8th 2003 Location: case modding at overclock.net |
yeah I have been having a problem with a development related tool and have not been able to release any plugin updates because of it. Sorry for the delay, I have tons of cool stuff for the plugin but its held up in a pre-release step. Hoping to have that fixed soon. for now add those 2 funcs manually to the ini file. follow the format in the file. If anyone is experiencing weird crashing of the plugin, etc - this is a byproduct of the problem I am working on... more to come |
||
| Back to top |
|||
|
Philip 1337
User Joined: Tue Aug 27th 2002 Location: United Kingdom |
Quote: "
+ Code SnippetCannot perform 'integer' cast on type. " For some reason, it only lets you return it as a string and when i read the string it is empty "" ![]() |
||
| Back to top |
|||
|
CattleRustler
Moderator ![]() ![]() Joined: Fri Aug 8th 2003 Location: case modding at overclock.net |
it does return string. are you connected before you call the func? if not it will be empty since the id is assigned by the server after connection |
||
| Back to top |
|||
|
Philip 1337
User Joined: Tue Aug 27th 2002 Location: United Kingdom |
Yes I am connected to the server before calling it and it returns nothing ![]() |
||
| Back to top |
|||
|
jasonhtml
User ![]() Joined: Sat Mar 20th 2004 Location: OC, California, USA |
im a little confused on how to recieve variables from the server, cause there is no EZS_RECIEVE command... Deathquest: 60% (MMORPG) DD Studios Website: http://www.geocities.com/jasonhtml/ DD Studios Forum: http://s6.invisionfree.com/DD_Studios_Forum |
||
| Back to top |
|||
|
CattleRustler
Moderator ![]() ![]() Joined: Fri Aug 8th 2003 Location: case modding at overclock.net |
your PPT data gets formatted at the server into 3 buckets, separated by your PPT Delimiter, the plugin parses these buckets provided you have suspplied the pptdelim to the plugin etc. So for example if your delimiter is % then server sends: PPTStubName%SenderID%Data The plugin puts each of these pieces in to the following 3 fields in the plugin class: Command, CommandID, CommandData If you call ezs_GetCommand(), ezs_GetCommandID(),and ezs_GetCommandData() in your main loop youll get the values as they exist at the time of the call... sCMD as string sCMD_ID as string sCMD_Data as string Do sCMD=ezs_GetCommand() sCMD_ID=ezs_GetCommandID() sCMD_Data=ezs_GetCommandData() rem do something with sCMD,sCMD_ID,sCMD_Data here Loop hope that helps. I am most likely going to rework the plugin to not handle the tcpip stuff, and use exeats plugin again, but it will still parse messages and retain remote clients lists etc. Theres a problem with Async calls and Delegates and other things being included in the .Net converted dll for dbp as a plugin. Not 100% sure on all this though, since its hard to pinpoint the problem when I cant step the vbnet code at runtime. |
||
| Back to top |
|||
|
Google Ad
AdBot Joined: Aug 26th 2002 Location: Everywhere |
|||
| Back to top |
|||
|
jasonhtml
User ![]() Joined: Sat Mar 20th 2004 Location: OC, California, USA |
uh... so the server can only hold 1 variable(or piece of data) at a time? so, when u give it a second piece of data, where does the other one go? Deathquest: 60% (MMORPG) DD Studios Website: http://www.geocities.com/jasonhtml/ DD Studios Forum: http://s6.invisionfree.com/DD_Studios_Forum |
||
| Back to top |
|||
|
CattleRustler
Moderator ![]() ![]() Joined: Fri Aug 8th 2003 Location: case modding at overclock.net |
the server is a traffic cop for messages. it sends them to various clients depending on the what the message was and who it was for, it never "holds" messages. Your client receieves the data and needs to decide what to do with it (store it, act on it, etc). the plugin is a vehicle to receive messages and parse them into their constituent parts. the client plugin isnt necessary, you could code your own tcpip client and data parser to "talk" to ez_serv. When the data is received and broken into the three parts it just sits there waiting to be removed (ezs_Get... functions) Whether you read the values or not is up to you, the plugin doesnt care. If a new message is received, whethere or not you have read the last one, the old data is overwritten with the new data. There is currently no buffer system - this will be added soon. Exeat's winsock plugin has a message buffer currently. A message buffer acts like a Stack where data messages are pushed onto the stack as they are received, and popped off the stack when you call the function that gets the data message. The stack or buffer is a first on - first off schema. The point of it is to hold onto messages so the client doesnt miss any messages if the client is not fast enough to grab them as they arrive. |
||
| Back to top |
|||
|
jasonhtml
User ![]() Joined: Sat Mar 20th 2004 Location: OC, California, USA |
ok, so, would it be a good idea to have a special client to run with the server if u want to store multiple variables and data or something like that? for example, a player would give it a command to get file "ex.txt" and then the server would tell the special client to give the player that file, would that work well? or no? Deathquest: 60% (MMORPG) DD Studios Website: http://www.geocities.com/jasonhtml/ DD Studios Forum: http://s6.invisionfree.com/DD_Studios_Forum |
||
| Back to top |
|||
|
CattleRustler
Moderator ![]() ![]() Joined: Fri Aug 8th 2003 Location: case modding at overclock.net |
yes, making a logic-client is quite possible. you could send it special messages (TO_ONE in the marshal types, see ezs help). Then this logic-client could perform special tasks that the other regular clients have no concept of. Then it could notify the regular clients about it, if need be. Ez_serv is very open-ended, allowing all sorts of possibilities, its just a matter of people actually coding something |
||
| Back to top |
|||
|
jasonhtml
User ![]() Joined: Sat Mar 20th 2004 Location: OC, California, USA |
k, thx Deathquest: 60% (MMORPG) DD Studios Website: http://www.geocities.com/jasonhtml/ DD Studios Forum: http://s6.invisionfree.com/DD_Studios_Forum |
||
| Back to top |
|||
|
Kharnor
User Joined: Sat Jul 5th 2003 Location: Australia |
Well i hope you get a buffer system added soon, because otherwise your client plugin's virtually worthless. It's great not having to worry about login and pong messages and the like, but not having a message buffer makes it very hard to code anything. So until you get it worked out ill have to stick with exeat's winsock stuff and parse all those commands myself. btw, your sig link is broken? Entia non sunt multiplicanda praeter necessitatem |
||
| Back to top |
|||
|
Philip 1337
User Joined: Tue Aug 27th 2002 Location: United Kingdom |
I agree with Kharnor, I've put my project on hold because I need the Buffer System. ![]() |
||
| Back to top |
|||
|
CattleRustler
Moderator ![]() ![]() Joined: Fri Aug 8th 2003 Location: case modding at overclock.net |
there are major problems with the client plugin so I'd say anyone using ezs should use their own tcpip method and their own parser. I apologize for this but due to unforeseen circumstances I can now only support the ezs app itself - the client plugin is off the table. Quote: "btw, your sig link is broken?"
yes, I brought down my whole site except for the main domain pagegood luck to everyone. |
||
| Back to top |
|||
|
Kharnor
User Joined: Sat Jul 5th 2003 Location: Australia |
Ah, ok. Guess I'll have to stop procrastinating and start coding then, because I can't wait for you to do it for me anymore! Any reason for taking the site down other than to take a break until next year? Entia non sunt multiplicanda praeter necessitatem |
||
| Back to top |
|||
|
CattleRustler
Moderator ![]() ![]() Joined: Fri Aug 8th 2003 Location: case modding at overclock.net |
I am disolving my business partnership with my friend in NJ, and registering the business where I live (NY) in my own name, not a partnership. Plus I have a zillion other things going on with work, pregnant wife, house reorganizing, etc etc so no time for squat! hopefully things will calm down in 06 |
||
| Back to top |
|||
Sorry, but it has been so long since anyone replied to this Thread that it has been automatically locked.
You may read it but not reply.
You may read it but not reply.
Forum Search
Enter a word or phrase to search our Forum for:
|
|






