private void AcceptConnections(IAsyncResult resultt)
{
try
{
ReceiveHeader(resultt);
}
catch { }
}
private byte[] receiveBuffer;
private ushort type;
private ushort size;
public void ReceiveHeader(IAsyncResult result)
{
// only accept 4 bytes which is size and type
Wrapper wr = result.AsyncState as Wrapper;
wr._socket = _socket.EndAccept(result);
wr._Port = this.OutPort;
wr.buffer = new byte[4];
wr._socket.BeginReceive(wr.buffer, 0, 4, SocketFlags.None, new AsyncCallback(ReceiveHeader_Callback), wr);
AnnounceNewConnection.Invoke(wr);
_socket.BeginAccept(AcceptConnections, new Wrapper());
}
public void ReceiveBody(IAsyncResult result)
{
Wrapper wr = result.AsyncState as Wrapper;
wr._socket = _socket.EndAccept(result);
wr._Port = this.OutPort;
wr.buffer = new byte[size - 4];
wr._socket.BeginReceive(wr.buffer, 0, (size - 4), SocketFlags.None, new AsyncCallback(ReceiveBody_Callback), wr);
AnnounceNewConnection.Invoke(wr);
_socket.BeginAccept(AcceptConnections, new Wrapper());
}
private void ReceiveHeader_Callback(IAsyncResult asyncResult)
{
try
{
Wrapper wr = asyncResult.AsyncState as Wrapper;
if (!wr._socket.Connected)
return;
SocketError error = SocketError.Disconnecting;
int hSize = wr._socket.EndReceive(asyncResult, out error);
if (error == SocketError.Success && size != 0)
{
if (hSize == 4)
{
byte[] rBuffer = new byte[4];
System.Buffer.BlockCopy(receiveBuffer, 0, rBuffer, 0, 4);
DataPacket header = new DataPacket(rBuffer);
size = header.Size;
type = header.Type;
ReceiveBody(asyncResult);
}
else
AnnounceDisconnection.Invoke(wr);
}
else
AnnounceDisconnection.Invoke(wr);
}
catch
{
}
}
private void ReceiveBody_Callback(IAsyncResult asyncResult)
{
try
{
Wrapper wr = asyncResult.AsyncState as Wrapper;
if (!wr._socket.Connected)
return;
SocketError error = SocketError.Disconnecting;
int bSize = wr._socket.EndReceive(asyncResult, out error);
if (error == SocketError.Success)
{
if (bSize == (size - 4))
{
byte[] rBuffer = new byte[size];
System.Buffer.BlockCopy(receiveBuffer, 0, rBuffer, 4, bSize);
DataPacket bpacket = new DataPacket(rBuffer);
bpacket.Size = size;
bpacket.Type = type;
byte[] question = new byte[] { 1 };
AnnounceReceive.Invoke(bpacket, wr, question);
if (wr._socket.Connected && question[0] == 1)
ReceiveHeader(asyncResult);
ReceiveHeader(asyncResult);
}
else
AnnounceDisconnection.Invoke(wr);
}
else
AnnounceDisconnection.Invoke(wr);
}
catch
{}
}
}
i think im doing something stupid but i got no idea what it is , don't really code it for me , just tell me what im doing and what i should be doing , thanks folks
[Release] EXP/SP Rates splitter 02/18/2024 - SRO PServer Guides & Releases - 38 Replies so,this project was only in underground section,but i decided to release it here,
this is a patcher which sets sp rates,so now you can make smth like:
exp rates:200x
sp rates:300x
download in attachments (source code included)
this works only for vsro 188 serverfiles
put it in your serverfiles folder,run Rates Splitter.exe (make sure your gameserver is called SR_GameServer.exe) and set your rates
Async Socket Wrapper 11/11/2011 - CO2 Programming - 8 Replies So I was bored and thought I would code a socket wrapper. It's a class library, but full project is available for download + an example use for a socket server.
It contains both wrapper for server and client stuff, which means it can be used for either private servers as server-socket or for a proxy.
WinAsync - This class contains all the events.
public delegate void WinEvent(WinClient wClient);
public delegate void WinBufferEvent(WinClient wClient, WinBuffer Buffer);
...
[VK]Splitter entfernen! 06/08/2011 - Metin2 Trading - 0 Replies Verkaufe Stein-Handbuch!
Verkaufe auf S25 Leviathan einen Account(Level 1,hat ein Stein-Handbuch).
Damit kannst du deine Splitter aus einen beliebiegen Gegenstand entfernen!
Nehme nur E*Gold!
Macht Gebote!
[How To]Splitter Enfernen 11/03/2008 - Metin2 Guides & Templates - 20 Replies Hi,
Ich sage euch nun wie ihr Splitter enfernen koennt wenn ihr welche in euren waffen bzw ruetungen habt.Das geht auf jedem Server (ausser deutschen)!.Zuerst muesst ihr lvl 25 erreicht haben was nicht ausserordentlich schwer ist auf longju,Us,chinatown usw :D.Danach geht ihr zu Deokbae (dem holzfaeller) in map2 und klickt auf ihn.Das muesste dann ca so aussehen : 黄金斧.Danach geht ihr (egal welches lvl ihr seit also koennt auch lvl 70 sein^^) St.Wilde Generaele killen.Irgendwann nach langem...
Splitter-,- 08/31/2008 - Metin2 Private Server - 15 Replies huhu,
wollt mal fragn ob es am markt auch splitter entfernen gibt?
Und wenn ja wie sieht das aus?
oder kann mir das jemand ingame verkaufn der itemshopt...