Sorry your browser is not supported!

You are using an outdated browser that does not support modern web technologies, in order to use this site please update to a new browser.

Browsers supported include Chrome, FireFox, Safari, Opera, Internet Explorer 10+ or Microsoft Edge.

DLL Talk / DBP_EZSClient Plugin - EZ_Serv Plugin for Dark Basic Professional

Author
Message
CattleRustler
Retired Moderator
20
Years of Service
User Offline
Joined: 8th Aug 2003
Location: case modding at overclock.net
Posted: 10th Sep 2005 23:53 Edited at: 11th Sep 2005 21:10
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

CattleRustler
Retired Moderator
20
Years of Service
User Offline
Joined: 8th Aug 2003
Location: case modding at overclock.net
Posted: 18th Sep 2005 18:28
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

Philip 1337
21
Years of Service
User Offline
Joined: 27th Aug 2002
Location: United Kingdom
Posted: 22nd Sep 2005 17:04 Edited at: 22nd Sep 2005 17:07
Quote: "ezs_GetShortID()
ezs_GetLongID()"


Yes this is what I need

oh and the keywords file needs an update

CattleRustler
Retired Moderator
20
Years of Service
User Offline
Joined: 8th Aug 2003
Location: case modding at overclock.net
Posted: 23rd Sep 2005 01:27 Edited at: 23rd Sep 2005 01:28
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

Philip 1337
21
Years of Service
User Offline
Joined: 27th Aug 2002
Location: United Kingdom
Posted: 23rd Sep 2005 17:18
Quote: "
Cannot 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 ""

CattleRustler
Retired Moderator
20
Years of Service
User Offline
Joined: 8th Aug 2003
Location: case modding at overclock.net
Posted: 24th Sep 2005 01:51 Edited at: 24th Sep 2005 01:52
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

Philip 1337
21
Years of Service
User Offline
Joined: 27th Aug 2002
Location: United Kingdom
Posted: 24th Sep 2005 14:06
Yes I am connected to the server before calling it and it returns nothing

jasonhtml
20
Years of Service
User Offline
Joined: 20th Mar 2004
Location: OC, California, USA
Posted: 10th Oct 2005 17:09
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
CattleRustler
Retired Moderator
20
Years of Service
User Offline
Joined: 8th Aug 2003
Location: case modding at overclock.net
Posted: 10th Oct 2005 21:23
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.

jasonhtml
20
Years of Service
User Offline
Joined: 20th Mar 2004
Location: OC, California, USA
Posted: 11th Oct 2005 01:22
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
CattleRustler
Retired Moderator
20
Years of Service
User Offline
Joined: 8th Aug 2003
Location: case modding at overclock.net
Posted: 11th Oct 2005 03:14
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.

jasonhtml
20
Years of Service
User Offline
Joined: 20th Mar 2004
Location: OC, California, USA
Posted: 11th Oct 2005 03:59
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
CattleRustler
Retired Moderator
20
Years of Service
User Offline
Joined: 8th Aug 2003
Location: case modding at overclock.net
Posted: 11th Oct 2005 15:13
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

jasonhtml
20
Years of Service
User Offline
Joined: 20th Mar 2004
Location: OC, California, USA
Posted: 12th Oct 2005 01:53
k, thx

Deathquest: 60% (MMORPG)
DD Studios Website: http://www.geocities.com/jasonhtml/
DD Studios Forum: http://s6.invisionfree.com/DD_Studios_Forum
Kharnor
20
Years of Service
User Offline
Joined: 5th Jul 2003
Location: Australia
Posted: 22nd Oct 2005 04:44
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
Philip 1337
21
Years of Service
User Offline
Joined: 27th Aug 2002
Location: United Kingdom
Posted: 22nd Oct 2005 23:59
I agree with Kharnor, I've put my project on hold because I need the Buffer System.

CattleRustler
Retired Moderator
20
Years of Service
User Offline
Joined: 8th Aug 2003
Location: case modding at overclock.net
Posted: 25th Oct 2005 02:32 Edited at: 25th Oct 2005 02:35
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 page

good luck to everyone.

SORRY UR NOT COMEDIAN
Kharnor
20
Years of Service
User Offline
Joined: 5th Jul 2003
Location: Australia
Posted: 25th Oct 2005 09:08 Edited at: 25th Oct 2005 09:08
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
CattleRustler
Retired Moderator
20
Years of Service
User Offline
Joined: 8th Aug 2003
Location: case modding at overclock.net
Posted: 27th Oct 2005 23:47
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

SORRY UR NOT COMEDIAN

Login to post a reply

Server time is: 2024-04-26 11:42:06
Your offset time is: 2024-04-26 11:42:06