Beautiful
the most interesting issue is that certain table is missing from Hendi Dumper in the latest version... example character_skin_data, cash_commodity_data isn't dump correctly
it also seems to be following most of Vana stuff
Only thing is the MCDB usage.
@op I'm happy you kept on updating this, good job. It'd be nice if you included your update log since last time.
Also, I don't understand why isn't the Cash Shop a separated server? If you're having trouble making it work with the other servers, it's pretty easy and I can help with that (the interoperability part is probably the easiest part). Making it a separate server will reduce the load on the channel server and make things more organized.
hyperbody dont cast to mp only to hp
buffing yourself seems to cause Error38 o.O
pressing okay when you die seems to cause relieve on the same map/same as you relog.
normal players are able to use /m command
there seems to be Dispose issue when saving characters
Fraysa
maybe you should fork it
this seems to be everywhere when you save character, tried to get into cash shop etc
2/13/2014 12:26:38 PM System.ObjectDisposedException: Cannot access a disposed object.
Object name: 'System.Net.Sockets.Socket'.
at System.Net.Sockets.Socket.Send(Byte[] buffer, Int32 offset, Int32 size, SocketFlags socketFlags, SocketError& errorCode)
at System.Net.Sockets.Socket.Send(Byte[] buffer, Int32 offset, Int32 size, SocketFlags socketFlags)
at Loki.Net.ServerHandler`3.Send(Packet outPacket)
at Loki.Interoperability.InteroperabilityClient.UpdateBuddies(Character character, Boolean initialize, Int32 buddyID)
at Loki.Net.ChannelClientHandler.Terminate()
at Loki.Net.ClientHandler`3.Dispose()
also there is a bug ->
case (int)SkillNames.SuperGM.HyperBody:
this.SecondaryStatups.Add(SecondaryBuffStat.HyperBodyHP, skill.ParameterA);
this.SecondaryStatups.Add(SecondaryBuffStat.HyperBodyHP, skill.ParameterB);
break;
change the second one to SecondaryBuffStat.HyperBodyMP
Only thing is the MCDB usage.
Nuggyman I'm happy you kept on updating this, good job. It'd be nice if you included your update log since last time. However, I'd like to point out a few things.
- I don't understand why isn't the Cash Shop a separated server? If you're having trouble making it work with the other servers, it's pretty easy and I can help with that (the interoperability part is probably the easiest part). Making it a separate server will reduce the load on the channel server and make things much more organized and use less data (For example, you don't need the whole character class's data. You only need certain stuff from it, so it's a waste to store such information).
- I'm not sure about the speed of your dynamic MySQL data retriever. It seems pretty slow from what I've tested it. For example, logging in into an account should've took a mere second, but it took about 3 to 5 seconds on your emulator.
- I think it's time to switch to NX
. It will reduce your load time dramatically.
Best of luck to you!
1.I didn't code any skills/buffs since v0.75 so they might be buggy.Fraysa
maybe you should fork it
this seems to be everywhere when you save character, tried to get into cash shop etc
2/13/2014 12:26:38 PM System.ObjectDisposedException: Cannot access a disposed object.
Object name: 'System.Net.Sockets.Socket'.
at System.Net.Sockets.Socket.Send(Byte[] buffer, Int32 offset, Int32 size, SocketFlags socketFlags, SocketError& errorCode)
at System.Net.Sockets.Socket.Send(Byte[] buffer, Int32 offset, Int32 size, SocketFlags socketFlags)
at Loki.Net.ServerHandler`3.Send(Packet outPacket)
at Loki.Interoperability.InteroperabilityClient.UpdateBuddies(Character character, Boolean initialize, Int32 buddyID)
at Loki.Net.ChannelClientHandler.Terminate()
at Loki.Net.ClientHandler`3.Dispose()
Bugs so far..
Code:hyperbody dont cast to mp only to hp buffing yourself seems to cause Error38 o.O pressing okay when you die seems to cause relieve on the same map/same as you relog. normal players are able to use /m command there seems to be Dispose issue when saving characters
will update more bugs as I find it..
1.I don't really see the point in doing so, the whole channel is loaded in 7 seconds so I don't really care.
2.It takes me less then a second lol
3.Again the whole channel is loaded in 7 seconds so I don't see the point in switching, one time I tried but I came across some annoying bugs.
1.I didn't code any skills/buffs since v0.75 so they might be buggy.
2.As I said the packets of buffs aren't updated.
3 and 4.I'll fix them next week.
5.I'll need more info.
2/13/2014 11:56:58 AM System.ObjectDisposedException: Cannot access a disposed object.Object name: 'System.Net.Sockets.Socket'.
at System.Net.Sockets.Socket.Send(Byte[] buffer, Int32 offset, Int32 size, SocketFlags socketFlags, SocketError& errorCode)
at System.Net.Sockets.Socket.Send(Byte[] buffer, Int32 offset, Int32 size, SocketFlags socketFlags)
at Loki.Net.ServerHandler`3.Send(Packet outPacket)
at Loki.Interoperability.InteroperabilityClient.SetCash(Int32 accountID, Int32 nx, Int32 maplepoints, Int32 paypal)
at Loki.Maple.Characters.Character.Save()
at Loki.Net.ChannelClientHandler.Terminate()
at Loki.Net.ClientHandler`3.Dispose()
2/13/2014 11:56:58 AM System.ObjectDisposedException: Cannot access a closed Stream.
at System.IO.__Error.StreamIsClosed()
at System.IO.MemoryStream.set_Position(Int64 value)
at Loki.IO.ByteBuffer.set_Position(Int32 value)
at Loki.Net.ClientHandler`3.OnReceive(IAsyncResult ar)
2/13/2014 12:29:35 PM Warning: Unregistered channel server Scania-1.
2/13/2014 12:37:52 PM MySql.Data.MySqlClient.MySqlException (0x80004005): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE ID = '1'' at line 1
at MySql.Data.MySqlClient.MySqlStream.ReadPacket()
at MySql.Data.MySqlClient.NativeDriver.GetResult(Int32& affectedRow, Int32& insertedId)
at MySql.Data.MySqlClient.Driver.GetResult(Int32 statementId, Int32& affectedRows, Int32& insertedId)
at MySql.Data.MySqlClient.Driver.NextResult(Int32 statementId)
at MySql.Data.MySqlClient.MySqlDataReader.NextResult()
at MySql.Data.MySqlClient.MySqlCommand.ExecuteReader(CommandBehavior behavior)
at MySql.Data.MySqlClient.MySqlCommand.ExecuteNonQuery()
at MySql.Data.MySqlClient.MySqlHelper.ExecuteNonQuery(MySqlConnection connection, String commandText, MySqlParameter[] commandParameters)
at MySql.Data.MySqlClient.MySqlHelper.ExecuteNonQuery(String connectionString, String commandText, MySqlParameter[] parms)
at Loki.Data.Database.Execute(String nonQuery, Object[] args)
at Loki.Data.Datum.Update(String constraints, Object[] args)
at CallSite.Target(Closure , CallSite , Object , String , Int32 )
at Loki.Interoperability.ChannelServerHandler.SetCash(Packet inPacket)
at Loki.Interoperability.ChannelServerHandler.Dispatch(Packet inPacket)
at Loki.Net.ClientHandler`3.Handle(Byte[] rawPacket, Boolean fromCommand, Packet packet)
at Loki.Net.ClientHandler`3.OnReceive(IAsyncResult ar)
when you try to create a character you will get this
Channel
Code:2/13/2014 11:56:58 AM System.ObjectDisposedException: Cannot access a disposed object.Object name: 'System.Net.Sockets.Socket'. at System.Net.Sockets.Socket.Send(Byte[] buffer, Int32 offset, Int32 size, SocketFlags socketFlags, SocketError& errorCode) at System.Net.Sockets.Socket.Send(Byte[] buffer, Int32 offset, Int32 size, SocketFlags socketFlags) at Loki.Net.ServerHandler`3.Send(Packet outPacket) at Loki.Interoperability.InteroperabilityClient.SetCash(Int32 accountID, Int32 nx, Int32 maplepoints, Int32 paypal) at Loki.Maple.Characters.Character.Save() at Loki.Net.ChannelClientHandler.Terminate() at Loki.Net.ClientHandler`3.Dispose() 2/13/2014 11:56:58 AM System.ObjectDisposedException: Cannot access a closed Stream. at System.IO.__Error.StreamIsClosed() at System.IO.MemoryStream.set_Position(Int64 value) at Loki.IO.ByteBuffer.set_Position(Int32 value) at Loki.Net.ClientHandler`3.OnReceive(IAsyncResult ar)
and in Login
Code:2/13/2014 12:29:35 PM Warning: Unregistered channel server Scania-1. 2/13/2014 12:37:52 PM MySql.Data.MySqlClient.MySqlException (0x80004005): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE ID = '1'' at line 1 at MySql.Data.MySqlClient.MySqlStream.ReadPacket() at MySql.Data.MySqlClient.NativeDriver.GetResult(Int32& affectedRow, Int32& insertedId) at MySql.Data.MySqlClient.Driver.GetResult(Int32 statementId, Int32& affectedRows, Int32& insertedId) at MySql.Data.MySqlClient.Driver.NextResult(Int32 statementId) at MySql.Data.MySqlClient.MySqlDataReader.NextResult() at MySql.Data.MySqlClient.MySqlCommand.ExecuteReader(CommandBehavior behavior) at MySql.Data.MySqlClient.MySqlCommand.ExecuteNonQuery() at MySql.Data.MySqlClient.MySqlHelper.ExecuteNonQuery(MySqlConnection connection, String commandText, MySqlParameter[] commandParameters) at MySql.Data.MySqlClient.MySqlHelper.ExecuteNonQuery(String connectionString, String commandText, MySqlParameter[] parms) at Loki.Data.Database.Execute(String nonQuery, Object[] args) at Loki.Data.Datum.Update(String constraints, Object[] args) at CallSite.Target(Closure , CallSite , Object , String , Int32 ) at Loki.Interoperability.ChannelServerHandler.SetCash(Packet inPacket) at Loki.Interoperability.ChannelServerHandler.Dispatch(Packet inPacket) at Loki.Net.ClientHandler`3.Handle(Byte[] rawPacket, Boolean fromCommand, Packet packet) at Loki.Net.ClientHandler`3.OnReceive(IAsyncResult ar)
also it would be nice if you could have something like this for unscript stuff and maybe a script folder -> npc,reactor,map,portal
You must be registered to see links< Unscript stuff
a script folder npc/reactor/map/portal etc..
2/13/2014 2:08:21 PM System.NullReferenceException: Object reference not set to an instance of an object.
at Loki.Maple.Life.Mob.SwitchController(Character newController)
at Loki.Maple.Characters.Character.Attack(Packet inPacket, AttackType type)
at Loki.Net.ChannelClientHandler.Dispatch(Packet inPacket)
at Loki.Net.ClientHandler`3.Handle(Byte[] rawPacket, Boolean fromCommand, Packet packet)
at Loki.Net.ClientHandler`3.OnReceive(IAsyncResult ar)
Whenever I read a post by Fraysa I get the feeling of
Nice source again, still have the copy you sent, maybe I should finally work on it lol..
@Fraysa
since you are a very good C# programmer
I believe you can start to contribute to the svn or start a fork project... Im sure there are some good C# programmers around here who knows it may be something..
well then maybe someone will make a fork of this.. would be great to look at..
You can pick it up if you want. Updating this to v146 shouldn't be that hard.. only packet-wise and maybe some more addons.
public void SetCash(Packet inPacket) {
int accountID = inPacket.ReadInt(), cash;
dynamic datum = new Datum("accounts");
cash = inPacket.ReadInt();
if (cash != 0)
{
datum.CardNX = cash;
}
cash = inPacket.ReadInt();
if (cash != 0)
{
datum.MaplePoints = cash;
}
cash = inPacket.ReadInt();
if (cash != 0)
{
datum.PaypalNX = cash;
}
datum.Update("ID = '{0}'", accountID);
}
public void SetCash(Packet inPacket) {
int accountID = inPacket.ReadInt(), cash;
dynamic datum = new Datum("accounts");
cash = inPacket.ReadInt();
if (cash != 0)
{
datum.CardNX = cash;
datum.Update("ID = '{0}'", accountID);
}
cash = inPacket.ReadInt();
if (cash != 0)
{
datum.MaplePoints = cash;
datum.Update("ID = '{0}'", accountID);
}
cash = inPacket.ReadInt();
if (cash != 0)
{
datum.PaypalNX = cash;
datum.Update("ID = '{0}'", accountID);
}
}
You want a fork?
You must be registered to see links
There. You got your fork. Work away.
You must be registered to see links
will you be contributing to the code at all ?