Welcome!

Join our community of MMO enthusiasts and game developers! By registering, you'll gain access to discussions on the latest developments in MMO server files and collaborate with like-minded individuals. Join us today and unlock the potential of MMO server development!

Join Today!

(Tera Project) Tera Emulator by P5yl0 Update 140315

Junior Spellweaver
Joined
Mar 3, 2015
Messages
164
Reaction score
75
Yes, i see now.
The strange here is: packet E265 detects for both client side changes (maybe 1 setting?)

opcode for UISettings

EvilEva - (Tera Project) Tera Emulator by P5yl0 Update 140315 - RaGEZONE Forums


opcode for Hotkey bar

EvilEva - (Tera Project) Tera Emulator by P5yl0 Update 140315 - RaGEZONE Forums
 
Junior Spellweaver
Joined
Mar 3, 2015
Messages
164
Reaction score
75
Allright, here we go.

Have some troubles with network so...
Here is crappy part, i've coded today.

Recv.Add(unchecked((short) 0xC233), typeof (PlayerDAO.RpCharacterSettingsNew)); //1725 EU

//Byte
protected byte[] Std;

//New func
public class RpCharacterSettingsNew : ARecvPacket
{

//protected byte[] Settings;

public override void Read()
{
//Settings = ReadB((int)Reader.BaseStream.Length);
DAOManager.playerDAO.Std = ReadB((int)Reader.BaseStream.Length);

}

public override void Process()
{
//Connection.Account.UiSettings = Settings;
Connection.Account.UiSettings = DAOManager.playerDAO.Std;

//Gonna to catch hex on fly
Log.Info(DAOManager.playerDAO.BytesToHex(Connection.Account.UiSettings));

//DAOManager.playerDAO.Std = Settings; //test

}

/*private static readonly string[] Baths = {
"00", "01", "02", "03", "04", "05", "06", "07", "08", "09", "0A", "0B", "0C",
"0D", "0E", "0F", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19",
"1A", "1B", "1C", "1D", "1E", "1F", "20", "21", "22", "23", "24", "25", "26",
"27", "28", "29", "2A", "2B", "2C", "2D", "2E", "2F", "30", "31", "32", "33",
"34", "35", "36", "37", "38", "39", "3A", "3B", "3C", "3D", "3E", "3F", "40",
"41", "42", "43", "44", "45", "46", "47", "48", "49", "4A", "4B", "4C", "4D",
"4E", "4F", "50", "51", "52", "53", "54", "55", "56", "57", "58", "59", "5A",
"5B", "5C", "5D", "5E", "5F", "60", "61", "62", "63", "64", "65", "66", "67",
"68", "69", "6A", "6B", "6C", "6D", "6E", "6F", "70", "71", "72", "73", "74",
"75", "76", "77", "78", "79", "7A", "7B", "7C", "7D", "7E", "7F", "80", "81",
"82", "83", "84", "85", "86", "87", "88", "89", "8A", "8B", "8C", "8D", "8E",
"8F", "90", "91", "92", "93", "94", "95", "96", "97", "98", "99", "9A", "9B",
"9C", "9D", "9E", "9F", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "A8",
"A9", "AA", "AB", "AC", "AD", "AE", "AF", "B0", "B1", "B2", "B3", "B4", "B5",
"B6", "B7", "B8", "B9", "BA", "BB", "BC", "BD", "BE", "BF", "C0", "C1", "C2",
"C3", "C4", "C5", "C6", "C7", "C8", "C9", "CA", "CB", "CC", "CD", "CE", "CF",
"D0", "D1", "D2", "D3", "D4", "D5", "D6", "D7", "D8", "D9", "DA", "DB", "DC",
"DD", "DE", "DF", "E0", "E1", "E2", "E3", "E4", "E5", "E6", "E7", "E8", "E9",
"EA", "EB", "EC", "ED", "EE", "EF", "F0", "F1", "F2", "F3", "F4", "F5", "F6",
"F7", "F8", "F9", "FA", "FB", "FC", "FD", "FE", "FF"
};

public static string NewBytesToHex(byte[] data)
{
StringBuilder builder = new StringBuilder(data.Length * 2);
for (int i = 0; i < data.Length; i++)
builder.Append(Baths[data]);
return builder.ToString();
}*/
}

Saving function:


public void SaveCharacterSettings(Player player)
{

string SqlQuery = "UPDATE `character` SET `uisettings`=?uiset WHERE `id`=?pid";
MySqlCommand SqlCommand = new MySqlCommand(SqlQuery, PlayerDAOConnection);
SqlCommand.Parameters.AddWithValue("?pid", player.Id);
SqlCommand.Parameters.AddWithValue("?uiset", BytesToHex(Std));

try
{
SqlCommand.ExecuteNonQuery();
Log.Info("Successfuly saved " + BytesToHex(Std));
}
catch (MySqlException ex)
{
Log.ErrorException("DAO: PLAYER SETTINGS SAVE ERROR!", ex);
return;
}

}

finally...

DAOManager.playerDAO.SaveCharacterSettings(player);

Okay, here it is.

And now need to load it as byte lmao...
 
Joined
Feb 2, 2012
Messages
412
Reaction score
249
that packet is UISettings your right...
but there are 2 UiSettings...

1.there iss AccoutnUiSettings Packet
2. there is an PlayerUiSettings packet.

both have C and S packets.. so there are 4 packets for UiSettings...

the account UiSettings is first read when you enter int the Lobby..
i thinks its directly S_AccountUiSettings.. sent from server to the Client..
the second comes.. when you enter the world then theres S_PlayerUiSettings from server...

the C_Uisettings are client side...
they happen when you open the Options and click on Save Settings..

so short. C_..... are send from the client when the settings go saved.
S_.... are read from the server...and send to the client...
 
Junior Spellweaver
Joined
Mar 3, 2015
Messages
164
Reaction score
75
Yup. It is.



Allright, the hotkey bar, it's finished.
You guys can discuss about it as you want, but i will code everything in 1 packet from server side.
Server side hotkey bar packet sending coded.

Character bar after exit/relog

EvilEva - (Tera Project) Tera Emulator by P5yl0 Update 140315 - RaGEZONE Forums


Now i'm gonna to test it a bit.
Also, questing tracker is on my mind after this...
 
Junior Spellweaver
Joined
Mar 3, 2015
Messages
164
Reaction score
75
going to translate now in google what you are typed xD (can't understand)
 
Junior Spellweaver
Joined
Mar 3, 2015
Messages
164
Reaction score
75
Yeah, google translator is...

Sure, it's 0xE265

Don't worry, ready source code will be released this friday as always.
I'm gonna to test now AI monster event (want to code monster madness event, where all npc monsters around will come and attack player)
 
Shh, quiet, you might piss somebody off
Developer
Joined
Dec 23, 2011
Messages
1,795
Reaction score
2,140
Yeah, google translator is...

Sure, it's 0xE265

Don't worry, ready source code will be released this friday as always.
I'm gonna to test now AI monster event (want to code monster madness event, where all npc monsters around will come and attack player)

i try send hotkey with that packet, but that don't work, okay i will wait for the update, i want help on project you know
 
Junior Spellweaver
Joined
Mar 3, 2015
Messages
164
Reaction score
75
Sure, this is tricky.
There is need to play with bytes values on fly in memory.
 
Junior Spellweaver
Joined
Mar 3, 2015
Messages
164
Reaction score
75
65 lvl unique armor set

EvilEva - (Tera Project) Tera Emulator by P5yl0 Update 140315 - RaGEZONE Forums


EvilEva - (Tera Project) Tera Emulator by P5yl0 Update 140315 - RaGEZONE Forums




P.S. Found questing tracker closing opcode (not coded yet, but you can see now hex value in gameserver console)

0xAB61

using Communication.Logic;
using Utils;
using Data.DAO;

namespace Network.Client
{
public class CpQuestClose : ARecvPacket
{
protected byte[] Qbyte;

public override void Read()
{
//Catching byte
Qbyte = ReadB((int)Reader.BaseStream.Length);
}
public override void Process()
{
//show as hex log
Log.Info("The Quest tracker hex value is " + DAOManager.playerDAO.BytesToHex(Qbyte));
}
}
}
 
Junior Spellweaver
Joined
Mar 3, 2015
Messages
164
Reaction score
75
I will code inventory by myself later...
P.S. Added Unreal Tournament killstreaks (1 kill, 2kill, 3..., notice, etc)
 
Newbie Spellweaver
Joined
Aug 23, 2008
Messages
74
Reaction score
19
Dudes. You should create a own Github Repo to get that more organized. There everything is easier to track :D
 
Junior Spellweaver
Joined
Mar 3, 2015
Messages
164
Reaction score
75
updated 20 march 2015



EvilEva - (Tera Project) Tera Emulator by P5yl0 Update 140315 - RaGEZONE Forums


UPDATE 200315



(Note: If you are installed and used before previous releases of Tera Project, remove database from MySQL and reinstall them! Or client will hang after selecting character)

Fixlist, addons, any:

1. 140315 - Mount/Dismount bug (game crash, character lose issue. In older revisions, if you will leave your char ingame mounted, next relog after trying to mount another pet, there was a game crash, solved now)

2.
140315 - On Server selection hang solved.

3.
200315 - Inventory saving completed

4.
200315 - Characters delete from MySQL function added

5.
200315 - Attack/Skills using delay fix

6.
200315 - Character updating while relog back to char list from game world

7.
200315 - Ui Panel/Hotkey Bar saving to MySQL

8.
200315 - Tracker Quest log function (for developers, opcode 0xAB61)

9.
200315 - Levelcap up to 65

10.
200315 - Unreal Tournament like killstreaks while questing/killing monsters

Download links on first post
 
Initiate Mage
Joined
Jun 30, 2014
Messages
2
Reaction score
0
Hello first I would thank you Developer so much for what you have done so far.
And now to my question, can you share the ids of items like gear or decorative stuff? or can we normal people without any knowelege find it out by ourself?
with best regards
 
Junior Spellweaver
Joined
Mar 3, 2015
Messages
164
Reaction score
75
Sure, P5yl0 did it long time ago.
Go to Data folder, open items.xml file with notepad++ or sublime text
Enjoy xD
 
Junior Spellweaver
Joined
Mar 3, 2015
Messages
164
Reaction score
75
About Linux, it's better to ask from Bola xD.
I'm nub in Linux and everything about it : D
 
Back
Top