Tags, and Client versions
 

News:

29 December 2022 - PtokaX 0.5.3.0 (20th anniversary edition) released...
11 April 2017 - PtokaX 0.5.2.2 released...
8 April 2015 Anti child and anti pedo pr0n scripts are not allowed anymore on this board!
28 September 2015 - PtokaX 0.5.2.1 for Windows 10 IoT released...
3 September 2015 - PtokaX 0.5.2.1 released...
16 August 2015 - PtokaX 0.5.2.0 released...
1 August 2015 - Crowdfunding for ADC protocol support in PtokaX ended. Clearly nobody want ADC support...
30 June 2015 - PtokaX 0.5.1.0 released...
30 April 2015 Crowdfunding for ADC protocol support in PtokaX
26 April 2015 New support hub!
20 February 2015 - PtokaX 0.5.0.3 released...
13 April 2014 - PtokaX 0.5.0.2 released...
23 March 2014 - PtokaX testing version 0.5.0.1 build 454 is available.
04 March 2014 - PtokaX.org sites were temporary down because of DDOS attacks and issues with hosting service provider.

Main Menu

Tags, and Client versions

Started by pHaTTy, 17 December, 2003, 12:11:55

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

pHaTTy

Can someone give me a big list of all ways of catching clients,


<++ = DC++
><++ is ODC++

mldc = mldc

as many as ppl can for all clients

and data that is maybe sent by these clients, for others ways not just client tag wise

ie

if a client sends certain numbers to hub, that can be caught, or things like that, maybe certain numbers

and also please things like client versions as many as possible

errrm that all i think, oh and as many ways of finding fake tags

thanx

-phatty

Resistance is futile!

NightLitch

#1
As for a start maybe I Am sharing this wonderful
PaseMyInfo Function to you all...

I find it very good... but maybe it can be better...

NOTE: Code gotten from Skrollster...  
function doParseMyInfo( sMyInfo )
	local sClient = "u" -- undefined
	local sIsDcPlusplus,c,sDTagInfo = strfind( sMyInfo, "^%$MyINFO %$ALL [^ ]+ [^$]*<%+%+ ([^$<>]+)>%$" )
	local sIsDCGUI,c,sGTagInfo = strfind( sMyInfo, "^%$MyINFO %$ALL [^ ]+ [^$]*]+)>%$" )
	local sIsNMDC2,c,sNTagInfo = strfind( sMyInfo, "^%$MyINFO %$ALL [^ ]+ [^$]*]+)>%$" )
	local sIsOther,c,sSpeed,sShare = strfind( sMyInfo, "^%$MyINFO %$ALL [^ ]+ [^$]*%$ $([^$]+)[^$]%$[^$]*%$%s*(%d+)%$" )
	local sTagInfo
	local iShare = tonumber( sShare )
	if sIsNMDC2 then
			sTagInfo = sNTagInfo
			sClient = "n" -- NMDC v2
	elseif sIsDCGUI then
		sTagInfo = sGTagInfo
		sClient = "g" -- dcgui
	elseif sIsDcPlusplus then
		sTagInfo = sDTagInfo
		local sIsOdc,c,sOdcTag = strfind( sMyInfo, "^%$MyINFO %$ALL [^ ]+ [^$]*")
		local sFakeInfo = strfind( sMyInfo,"<%+%+ V:.*><%+%+ V:.*>")
		if sFakeInfo then 
			sClient = "f" --Faking dc++ tag
		elseif sIsOdc then
			sClient = "o" -- oDC
		else
			sClient = "d" -- DC++
		end
	elseif sIsOther then
		local sIsMLDC = strfind( sMyInfo, "mld" )
		if sIsMLDC then
			sClient = "m"
		end
		if sSpeed and iShare then
			return sClient, iShare, sSpeed, nil
		else
			return sClient, nil, nil, nil
		end
	else
		sClient = "f"-- fake
		return sClient, nil, nil, nil
	end
	local tFlags = {}
	sTagInfo = sTagInfo..","
	gsub( sTagInfo, "(.):([^,]+),", function( letter, value ) %tFlags[letter] = value ; end )
	if not tFlags["H"] or not tFlags["S"] or not tFlags["V"] or not tFlags["M"]then
		sClient = "f" -- fake
		return sClient, nil, nil, nil
	end
	if sClient == "n" then
		tFlags["H"] = doGetHubNumber(tFlags["H"], 3)
	elseif sClient == "d" then
		tFlags["V"] = tonumber(tFlags["V"])
		if tFlags["V"] and tFlags["V"] < 0.24 then
			tFlags["H"] = doGetHubNumber(tFlags["H"], 1)
		else
			tFlags["H"] = doGetHubNumber(tFlags["H"], 3)
		end
		if tFlags["H"] < 0 then
			sClient = "f"
		end
	elseif sClient == "g" then
		tFlags["H"] = doGetHubNumber(tFlags["H"], 1)
	elseif sClient == "o" then
		iVersion = tonumber(tFlags["V"])
		if iVersion < 0.24 then
			tFlags["H"] = doGetHubNumber(tFlags["H"], 1)
		else
			tFlags["H"] = doGetHubNumber(tFlags["H"], 3)
		end
		local sIsOdc,c,sOdcTag = strfind(sMyInfo , "^%$MyINFO %$ALL [^ ]+ [^$]*")
		tFlags["V"]=sOdcTag
		if tFlags["H"] < 0 then
			sClient = "f"
		end
	end
	return sClient, iShare, sSpeed, tFlags
end

function doGetHubNumber(sHubTag, iHubCheckMethod)
	local tHubs = {0}
	local _,c = gsub( sHubTag, "(%d+)", function( x ) %tHubs[1] = %tHubs[1] + tonumber( x ) end, 3 )
	if not (c == iHubCheckMethod) then tHubs[1] = 0 - tHubs[1] end
	return tHubs[1]
end

Type of Clients:

 u: unknow tag (probably NMDC)
  f: tag parsed badly (probably faker)
 m: mldc client
 d: valid dc++ tag
 o: valid oDC tag
 g: valid DCGUI tag
 n: valid NMDC v2 user with tag


/NightLitch
//NL

c h i l l a

#2
dc++ and its modds have in their PK  from the Key string..

a DCPLUSPLUS(VERSION)   I think thats quite relyable

pHaTTy

QuoteOriginally posted by c h i l l a
dc++ has in his PK  from the Key string..

a DCPLUSPLUS(VERSION)   I think thats quite relyable

yep thanx thats great, thats the sort of stuff i need to know :))

thanx, if you know anymore then please tell me, or if anyone knwo more please,,,
Resistance is futile!

c h i l l a

hmm..  but I think its not catchable by Ptokax...
I just see it when someone downloads form me or I from him...  then I see it on BCDC,  but I haven't seen any PK string on Connect to Ptokax...  so not worthy actually...  but I will look, cause this is really becoming a big issue.. how to detect whitch client it really is.

NightLitch

I think you are up to something better than I have posted I think...

And I will be most happy to see what you have to bring us Phatty... :-)

If there can be better Client Check than the one I use
that Skrollster have made then post it...

I hope you share it when it's ready bro....

/NL
//NL

pHaTTy

it will be here soon, but first i need to find all possible ways of catching clients, wether its lua or not ;)
Resistance is futile!

c h i l l a

#7
i mixed it all up, well just got here for more info about $Key and $Lock and when they are sent, okey...

http://wza.digitalbrains.com/DC/doc/Introduction.html

pHaTTy

now you confused me....:P

thats just dc protocol, im looking for tags etc :P :))
Resistance is futile!

c h i l l a

but if you look  in client to client handshakes..  there  the client sends a $Lock  with a PK  and in that PK you can find the DCPLUSPLUS     if it a dc++mod.
but you need to connect to the client first.

pHaTTy

QuoteOriginally posted by c h i l l a
but if you look  in client to client handshakes..  there  the client sends a $Lock  with a PK  and in that PK you can find the DCPLUSPLUS     if it a dc++mod.
but you need to connect to the client first.

yep that i have thx, but i stil do not know all of the ways of finding them, ie versions, for dc stealth, what ways i can i find that when connecting to it...
Resistance is futile!

[NL]trucker

Phatty

i think you better ask for the adresses of the makers of all these clients and ask them about it.

they should be ablle to give you the info you want.
Owner of FunnyHub
 
Funyhub.no-ip.info
       Forum Master of


Event_Horizon

QuoteOriginally posted by [NL]trucker
Phatty

i think you better ask for the adresses of the makers of all these clients and ask them about it.

they should be ablle to give you the info you want.

good idea, but plz do it in a PM

these client addresses shouldn't be more public as they are... sone of them are good for OPs & Owners but not for a normal User
Greez ????_H???z??
??????????????????

??/v\\ \'?\' ?@?? ???? is Secured by RoboCop? Created by Optimus?

SaintSinner

try to download each one and connect to
a test hub and see what each one sends...
just a thought. :D
   


[NL]trucker

then he still needs to know where to get them so send
him the urls of the progs and he could do so.

ofcours in pm.
Owner of FunnyHub
 
Funyhub.no-ip.info
       Forum Master of


pHaTTy

no doesnt matter, dont send any urls, i not got time to go around to 10 forums, i asked here to get them in 1 thread, not all over the web :p
Resistance is futile!

plop

<+V:
<++V:
<+ V:
all 3 bcdc++ versions, 2 of them show the limiter in bytes.
on some mods the speed is shown by a L: (bcdc++ cafe is using U:)

dcpro

IDC same as dc++ tag just the hub tag is in the wrong order.
H:op/reg/guest

no L or L:* means no limiter, limiter is showing the speed "per" slot.

tag like dc++ but with a letter wich isn't a K means czdc (old versions).


plop
http://www.plop.nl lua scripts/howto\'s.
http://www.thegoldenangel.net
http://www.vikingshub.com
http://www.lua.org

>>----> he who fights hatred with hatred, drives the spreading of hatred <----<<

MrZ

Hia:))

I maybe dumb, but dosnt all this just fall in the drain if they are smart enough to type in their own tag, or let the client simulate dc++ ??

We are right now in trying to rise the client version alowed in a hub, just to try stop fakers..even if we know they always be one step b4 us :-/

NightLitch... can u pls explain what the script from Skrollster does..

Z ya guys
Always remember that you are unique... just like everyone else :-D

plop

QuoteOriginally posted by MrZ
Hia:))

I maybe dumb, but dosnt all this just fall in the drain if they are smart enough to type in their own tag, or let the client simulate dc++ ??

We are right now in trying to rise the client version alowed in a hub, just to try stop fakers..even if we know they always be one step b4 us :-/

NightLitch... can u pls explain what the script from Skrollster does..

Z ya guys
the average I.Q. of faker is low, there are a couple smart 1ce but the rest walks after them.
so if we scripters do our best we can beat the dumb faker.
1 of the way's my a.i. bot auto bans 1 type of fake tag reached the stealth forum month's after i build that (prob more but no hub name was given on that).
we can't make it imposible for them 2 enter, but @ least we can make it very hard.

plop
http://www.plop.nl lua scripts/howto\'s.
http://www.thegoldenangel.net
http://www.vikingshub.com
http://www.lua.org

>>----> he who fights hatred with hatred, drives the spreading of hatred <----<<

NightLitch

Well MrZ, where to begin... heh...

This "script" function is a finish Client Checker,
Phatty tries to create a better ...

But I have found this one really realiable...

Exept for some days ago when there was many DC:PRO
clients coming into our hub.

Have tried modify the function for it but my knowlege seems
to be to little for creating it... Or as before I have missed
a simple part... :-)

But you can try this Script MrZ perhaps it will do until Phatty
brings us his fine Client Checker... :-)

-------------------------------------------------------------------------------------------------------------------------------------------
				---===[ CLIENT CHECKER ]===---
--					     By: NightLitch 2003
--			        Request by: Dyzan
-------------------------------------------------------------------------------------------------------------------------------------------
--
-- Allowed Clients: Dc++, oDC, DcGui & Nmdc 2
--
-- NOTES:
--
--		NMDCv1 is blocked
--		MLDC is blocked
--		FakeClient is blocked (It should be)
--
-------------------------------------------------------------------------------------------------------------------------------------------

 BotName = "[-Client-Checker-]"

 -- Master --
MSR = {
Lvl = 0,
MinSlots = 3,
MaxSlots = 15,
MaxHubs = 5,
MinSlotsPerHub = 2,
DcppVer = "0.302",
oDcVer = "5.200",
DcGuiVer = "0.2.10",
Nmdc2Ver = "2.02",
}

 -- Moderator --
MOD = {
Lvl = 4,
MinSlots = 3,
MaxSlots = 15,
MaxHubs = 5,
MinSlotsPerHub = 2,
DcppVer = "0.302",
oDcVer = "5.200",
DcGuiVer = "0.2.10",
Nmdc2Ver = "2.02",
}

 -- Operator --
OPR = {
Lvl = 1,
MinSlots = 3,
MaxSlots = 15,
MaxHubs = 5,
MinSlotsPerHub = 2,
DcppVer = "0.302",
oDcVer = "5.200",
DcGuiVer = "0.2.10",
Nmdc2Ver = "2.02",
}

 -- Vip User --
VIP = {
Lvl = 2,
MinSlots = 3,
MaxSlots = 15,
MaxHubs = 5,
MinSlotsPerHub = 2,
DcppVer = "0.302",
oDcVer = "5.200",
DcGuiVer = "0.2.10",
Nmdc2Ver = "2.02",
}

 -- Reg User --
REG = {
Lvl = 3,
MinSlots = 3,
MaxSlots = 15,
MaxHubs = 5,
MinSlotsPerHub = 2,
DcppVer = "0.302",
oDcVer = "5.200",
DcGuiVer = "0.2.10",
Nmdc2Ver = "2.02",
}

 -- Regular User --
USR = {
Lvl = -1,
MinSlots = 3,
MaxSlots = 15,
MaxHubs = 5,
MinSlotsPerHub = 2,
DcppVer = "0.302",
oDcVer = "5.200",
DcGuiVer = "0.2.10",
Nmdc2Ver = "2.02",
}

-- Allow Connections Speeds --
AllowSpeed = {}
AllowSpeed["28.8Kbps"] = 0
AllowSpeed["33.6Kbps"] = 0
AllowSpeed["56Kbps"] = 0
AllowSpeed["ISDN"] = 0
AllowSpeed["DSL"] = 1
AllowSpeed["Cable"] = 1
AllowSpeed["LAN(T1)"] = 1
AllowSpeed["LAN(T3)"] = 1
AllowSpeed["Satellite"] = 0
-------------------------------------------------------------------------------------------------------------
function Main()
	frmHub:RegBot(BotName)
end
-------------------------------------------------------------------------------------------------------------
function DataArrival(curUser,data)
	if (strsub(data,1,7) == "$MyINFO") then
		local sClient, iShare, sSpeed, tFlags = doParseMyInfo(data)
-- Master Check Slots/Hubs/MinSlotsPerHub -------------------------------------------------------------------
		if curUser.iProfile == MSR.Lvl then
			CheckClient(curUser,sClient,tFlags,MSR)
			CheckSlotsHubs(curUser,MSR.MinSlots,MSR.MaxSlots,MSR.MaxHubs,MSR.MinSlotsPerHub,tFlags)
-- Moderator Check Slots Slots/Hubs/MinSlotsPerHub ----------------------------------------------------------
		elseif curUser.iProfile == MOD.Lvl then
			CheckClient(curUser,sClient,tFlags,MOD)
			CheckSlotsHubs(curUser,MOD.MinSlots,MOD.MaxSlots,MOD.MaxHubs,MOD.MinSlotsPerHub,tFlags)
-- Operator Check Slots/Hubs/MinSlotsPerHub -----------------------------------------------------------------
		elseif curUser.iProfile == OPR.Lvl then
			CheckClient(curUser,sClient,tFlags,OPR)
			CheckSlotsHubs(curUser,OPR.MinSlots,OPR.MaxSlots,OPR.MaxHubs,OPR.MinSlotsPerHub,tFlags)
-- Vip Check Slots/Hubs/MinSlotsPerHub ----------------------------------------------------------------------
		elseif curUser.iProfile == VIP.Lvl then
			CheckClient(curUser,sClient,tFlags,VIP)
			CheckSlotsHubs(curUser,VIP.MinSlots,VIP.MaxSlots,VIP.MaxHubs,VIP.MinSlotsPerHub,tFlags)
-- Reg Check Slots/Hubs/MinSlotsPerHub ----------------------------------------------------------------------
		elseif curUser.iProfile == REG.Lvl then
			CheckClient(curUser,sClient,tFlags,REG)
			CheckSlotsHubs(curUser,REG.MinSlots,REG.MaxSlots,REG.MaxHubs,REG.MinSlotsPerHub,tFlags)
-- User Check Slots/Hubs/MinSlotsPerHub ---------------------------------------------------------------------
		elseif curUser.iProfile == USR.Lvl then
			CheckClient(curUser,sClient,tFlags,USR)
			CheckSlotsHubs(curUser,USR.MinSlots,USR.MaxSlots,USR.MaxHubs,USR.MinSlotsPerHub,tFlags)
		end
-- Speed Check ----------------------------------------------------------------------------------------------
		SpeedCheck(curUser, sSpeed)
	end
end
-------------------------------------------------------------------------------------------------------------
function CheckSlotsHubs(curUser,mnSlots,mxSlots,mxHubs,SlotPerHub,tFlags)
	if tFlags["S"]==nil then
		curUser:SendData(BotName,"You are hidding your Tag for checking your slots.") 
		curUser:Disconnect()
	elseif (tonumber(tFlags["S"]) < mnSlots) then
		curUser:SendData(BotName,"You have too litle slots open ( "..tFlags["S"].." ) Minimum slots is ( "..mnSlots.." ). ")
		curUser:Disconnect()
	elseif (tonumber(tFlags["S"]) > mxSlots) then
		curUser:SendData(BotName,"You have too many slots open ( "..tFlags["S"].." ) Maximum slots is ( "..mxSlots.." ). ")
		curUser:Disconnect()
	elseif tFlags["H"]==nil then
		curUser:SendData(BotName,"You are hidding your Tag for checking your hubs.") 
		curUser:Disconnect()
	elseif (tonumber(tFlags["H"]) > mxHubs) then
		curUser:SendData(BotName,"You are in too many hubs ( "..tFlags["H"].." ) Max Hubs is ( "..mxHubs.." ). ")
		curUser:Disconnect()
	elseif (SlotPerHub and tonumber(tFlags["S"]) < tonumber(tFlags["H"]) * SlotPerHub) then
		curUser:SendData(BotName, "You have not met the Minimum slots/hub ( "..SlotPerHub.." ), You need to Share ( "..(tFlags["H"]*SlotPerHub).." ) slots.")
		curUser:Disconnect()
	end
end
-------------------------------------------------------------------------------------------------------------
function CheckClient(curUser,sClient,tFlags,Level)
-- DC++ Check --
	if sClient == "d" then
		VersionCheck(curUser,tFlags,Level.DcppVer,"DC++","http://dcplusplus.sourceforge.net")
-- oDC Check --
	elseif sClient == "o" then
		VersionCheck(curUser,tFlags,Level.oDcVer,"oDC","http://gempond.com/odc")
-- DcGui Check --
	elseif sClient == "g" then
		VersionCheck(curUser,tFlags,Level.DcGuiVer,"DcGui","http://dc.ketelhot.de")
-- MLDC Check
	elseif sClient == "m" then
		curUser:SendData(BotName,"Your client is not allowed here....")
		curUser:Disconnect()
-- FakeDC Check --
	elseif sClient == "f" then
		curUser:SendData(BotName,"Your client is not allowed here....")
		curUser:Disconnect()
-- Unknown Check --
	elseif sClient == "u" then 
		curUser:SendData(BotName,"Your client is not allowed here....")
		curUser:Disconnect()
-- NMDC 2 Check --
	elseif sClient == "n" then 
		VersionCheck(curUser,tFlags,Level.Nmdc2Ver,"NMDC 2","http://neo-modus.com")
	else
		curUser:SendData(BotName,"Your client is not allowed here....")
		curUser:Disconnect()
	end
end
-------------------------------------------------------------------------------------------------------------
function VersionCheck(curUser,tFlags,Version,Client,DownloadClient)
	if (tFlags["V"] == nil )then
		curUser:SendTo(BotName, "You are hidding your Tag for checking your client version.")
	end
	if Client == "DcGui" then
		if (tFlags["V"] < Version) then
			curUser:SendData(BotName,"You are using "..Client.." version [ "..tFlags["V"].." ]") 
			curUser:SendData(BotName,"The oldest version allowed is "..Client.." [ "..Version.." ], you may download the latest "..Client.." at "..DownloadClient) 
			curUser:Disconnect()
		end
	else
		if (tFlags["V"] < tonumber(Version)) then
			curUser:SendData(BotName,"You are using "..Client.." version [ "..tFlags["V"].." ]") 
			curUser:SendData(BotName,"The oldest version allowed is "..Client.." [ "..Version.." ], you may download the latest "..Client.." at "..DownloadClient) 
			curUser:Disconnect()
		end
	end
end
-------------------------------------------------------------------------------------------------------------
function doParseMyInfo( sMyInfo )
	local sClient = "u" -- undefined
	local sIsDcPlusplus,c,sDTagInfo = strfind( sMyInfo, "^%$MyINFO %$ALL [^ ]+ [^$]*<%+%+ ([^$<>]+)>%$" )
	local sIsDCGUI,c,sGTagInfo = strfind( sMyInfo, "^%$MyINFO %$ALL [^ ]+ [^$]*]+)>%$" )
	local sIsNMDC2,c,sNTagInfo = strfind( sMyInfo, "^%$MyINFO %$ALL [^ ]+ [^$]*]+)>%$" )
	local sIsOther,c,sSpeed,sShare = strfind( sMyInfo, "^%$MyINFO %$ALL [^ ]+ [^$]*%$ $([^$]+)[^$]%$[^$]*%$%s*(%d+)%$" )
	local sTagInfo
	local iShare = tonumber( sShare )
	if sIsNMDC2 then
			sTagInfo = sNTagInfo
			sClient = "n" -- NMDC v2
	elseif sIsDCGUI then
		sTagInfo = sGTagInfo
		sClient = "g" -- dcgui
	elseif sIsDcPlusplus then
		sTagInfo = sDTagInfo
		local sIsOdc,c,sOdcTag = strfind( sMyInfo, "^%$MyINFO %$ALL [^ ]+ [^$]*")
		local sFakeInfo = strfind( sMyInfo,"<%+%+ V:.*><%+%+ V:.*>")
		if sFakeInfo then 
			sClient = "f" --Faking dc++ tag
		elseif sIsOdc then
			sClient = "o" -- oDC
		else
			sClient = "d" -- DC++
		end
	elseif sIsOther then
		local sIsMLDC = strfind( sMyInfo, "mld" )
		if sIsMLDC then
			sClient = "m"
		end
		if sSpeed and iShare then
			return sClient, iShare, sSpeed, nil
		else
			return sClient, nil, nil, nil
		end
	else
		sClient = "f"-- fake
		return sClient, nil, nil, nil
	end
	local tFlags = {}
	sTagInfo = sTagInfo..","
	gsub( sTagInfo, "(.):([^,]+),", function( letter, value ) %tFlags[letter] = value ; end )
	if not tFlags["H"] or not tFlags["S"] or not tFlags["V"] or not tFlags["M"]then
		sClient = "f" -- fake
		return sClient, nil, nil, nil
	end
	if sClient == "n" then
		tFlags["H"] = doGetHubNumber(tFlags["H"], 3)
	elseif sClient == "d" then
		tFlags["V"] = tonumber(tFlags["V"])
		if tFlags["V"] and tFlags["V"] < 0.24 then
			tFlags["H"] = doGetHubNumber(tFlags["H"], 1)
		else
			tFlags["H"] = doGetHubNumber(tFlags["H"], 3)
		end
		if tFlags["H"] < 0 then
			sClient = "f"
		end
	elseif sClient == "g" then
		tFlags["H"] = doGetHubNumber(tFlags["H"], 1)
	elseif sClient == "o" then
		iVersion = tonumber(tFlags["V"])
		if iVersion < 0.24 then
			tFlags["H"] = doGetHubNumber(tFlags["H"], 1)
		else
			tFlags["H"] = doGetHubNumber(tFlags["H"], 3)
		end
		local sIsOdc,c,sOdcTag = strfind(sMyInfo , "^%$MyINFO %$ALL [^ ]+ [^$]*")
		tFlags["V"]=sOdcTag
		if tFlags["H"] < 0 then
			sClient = "f"
		end
	end
	return sClient, iShare, sSpeed, tFlags
end
-------------------------------------------------------------------------------------------------------------
function doGetHubNumber(sHubTag, iHubCheckMethod)
	local tHubs = {0}
	local _,c = gsub( sHubTag, "(%d+)", function( x ) %tHubs[1] = %tHubs[1] + tonumber( x ) end, 3 )
	if not (c == iHubCheckMethod) then tHubs[1] = 0 - tHubs[1] end
	return tHubs[1]
end

Have made some quick mods so I hope it works otherwise
tell me...

/NL
//NL

NightLitch

Hope you don't mind I posted this script Phatty... :-)

Have a good one / NL
//NL

MrZ

hehe:))

Tnx guys..lova ya
Always remember that you are unique... just like everyone else :-D

turkiye

QuoteOriginally posted by MrZ
hehe:))

Tnx guys..lova ya

HEHHEHEHEHEHE :D

c h i l l a

dc and its derivates send  $Version 1,0091|
neomodus
nothing new,

whitch clients actually support the $MultiConnectToMe ??

NightLitch

How is the project going Phatty ??? Am Wating... :-p

There is so many clients out there now...

problem to block or check many of them...

How do I see the different on the REAL client and a
emulated one ?? can I see it ???

and want to know if DCTC is the same as DcGui ??? cause
both run in Linux ??

But the Main issue is between the Real & emulated can
it be checked in some way ??? Or do we have to live with it ???
//NL

SMF spam blocked by CleanTalk