Register for your free account! | Forgot your password?

You last visited: Today at 16:02

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



CSREmu

Discussion on CSREmu within the SRO PServer Guides & Releases forum part of the SRO Private Server category.

Closed Thread
 
Old   #1
 
Shadowz75's Avatar
 
elite*gold: 0
Join Date: Mar 2009
Posts: 443
Received Thanks: 597
CSREmu - autospawn,npcs...

Revision 22

Now the autospawn + skill use bug,... bugs SHOULD be fixed

Download



Regards

Revision 21:
It seems like csremu cant load the textdata at some/most of the pcs. thats why it crashes at levelup+ there is no autospawn. Let me find the problem, and i will try to fix it as soon as possible

Fixed the Alexandria NPC's

HOW TO:

delete your current textdata folder and extract the new one that you downloaded here.

Download:




Revision 20:

Delete your database and use the new one.

I have only 2 solutions for the Requesting.. Bug:

Restart the sro_client until it works. And dont press Enter to login click with your mouse!

Fixes:

-the bug that you can only create +1 weapons

-the crash when you pick up gold

-minor bugs

Added:


Alexandria Shops and Teleports - Thanks to Foma for collecting some infos on ISRO that i needed :

Thanks to Windrius for the new protection

Download


Regards



Revision 19:

Silkroad Version:1.252

movement - groundwalking works, sykwalking doesnt(didnt figured it out yet)
item movement - working
item usage - only capes,pots till now
autospawn - monsters,npcs,teleports(you can use the teleports to alexandria, but the npcs there wont work)
npc shop usage- except alexandria(i still need a lvl 95+ on isro to collect some packets in/around alexandria)
npc storage - not working
npc teleports - working
chat - public,party,whisper,notice
skills - working(no skill effects)
buffs - working(only imbue increase the dmg,so other buffs are useless for now)
stats - working
leveling - working(skillpoint calculation sucks, but is ok)
pvp - working ,buy capes on the grocery traders
party - working
hotkeys - working
autopotion - working, but it doesnt get saved for now
pets&horses - not working

best feature: mangyang giants! :P

csremu commands:
createuser - creates a new user in the database
clear - clears the console
notice - send a global server notice
pflow game- see the packetflow of the gameserver
pflow login- see the packetflow of the loginserver
exit - exit this application

English:

Some changes to old revisions:

- Every 20 sec new users get loaded. E.g. if you create a user wait 20 sec and you can use it

-No Europe Support. They are working like on the other version, but i will focus on Chinese

For Tutorials look at this page :

They should still work. You still need the mediapatcher and loader from the old tutorial:

Well here is the old videotutorial :

The source is closed, means only i got the newest one. If you still want to look at the old sources( i improved/changed a lot since Rev 18) :

The Download:



Finally the thanks and credits to other people how helped me:

Thanks to Eckoro,Windrius,SREMU Team,Lyzerk,Cheat Project Germany,Elitepvpers,ProjectHax,Stealthex and Drew Benton

Regards Shadowz75

Deutsch:

Ein paar kleine Änderungen:

- Jede 20 sekunden werden die user neu geladen.Wenn man z.b. einen neuen user erstellt wartet man 20 sekunden , dann kann man ihn benutzen

- Kein Euro Support(vorerst).Allerdings geht immenoch alles was man auch mit ihnen in Rev 18 machen konnte

Alle Tutorials zusammgenfasst :s.oben bei English
Man braucht immernoch den Mediapatcher:s.oben bei English

Readme s.oben bei English

Das alte Videotutorial : s.oben bei English

Die Source ist jetzt closed, dh nur ich habe sie. Die alten Sources sind immernoch verfügbar:

Download:
s.oben bei English

Finally the thanks and credits to other people how helped me:

Thanks to Eckoro,Windrius,SREMU Team,Lyzerk,Cheat Project Germany,Elitepvpers,ProjectHax,Stealthex and Drew Benton

Grüße Dickernoob

Tutorial
Quote:
CSREMU(C# Silkroad Emulator)
############################

THIS IS A PRE-ALPHA AND THERE'S STILL MUCH TO DO, SO IF YOU CAN HELP DO IT.

Video Tutorial:


Tutorial:
Download & install TortoiseSVN :
Create a new folder in your Silkroad folder. Right click->SVN Checkout .At the URL of repository use this link:

Now download those things:
Download this:
Download this:
Install both.(you can use this Tutorial: )
Dump the .sql file(Database\\emulator.sql) into your database with e.g. Navicat Lite.
Configure your settings in the Binary\\Settings.txt file.
Extract the data.rar into your Binary\\ folder and a new folder ('data') will appear.
Start the GameServer.exe and then the LoginServer.exe.
Create a new user account with the UserManager.exe.

Patch your Media.pk2 with the MediaPatcher(thanks to the creator,i changed 15778 to 15779) in the Binary folder.
Then copy the Loadersremu(created by the SREmu team) and the silkhook.dll into your Silkroad Folder.
Start the Loadersremu and a errormessage will appear:OMG- Unable to patch nprotect(cause nprotect was removed,
hackshield is the new anticheat).Just press ok and Silkroad will start

Then log in and create a new Character the normal way.
Then go to your database in the character table and change the your character settings.

Use the GM Console to load Monsters/Items.(shift + ~ = american keybord)
e.g. /loadmonster MOB_ then press F2 and you see a list.
e.g. /makeitem ITEM_ then press F3 and see the list.
e.g. ~TEST = notice

Test Video:


Credits:
The SREMU Team,Eckoro,Cheat Project Germany,ProjectHax,Elitepvpers and Drew Benton

Submitting a patch:
Create a .patch File and create a new thread at
or pm me on epvpers(username Shadowz75)

Got Errors?
Go to and create a new thread.



###########
#Shadowz75#
###########[/url]
or pm me on epvpers(username Shadowz75)

Got Errors?
Go to and create a new thread.



###########
#Shadowz75#
###########
Shadowz75 is offline  
Thanks
164 Users
Old 02/21/2010, 15:41   #2
 
elite*gold: 0
Join Date: Dec 2009
Posts: 1,425
Received Thanks: 573
Nice Emulator.
Exploiter~Li is offline  
Old 02/21/2010, 15:44   #3
 
elite*gold: 20
Join Date: Aug 2007
Posts: 1,710
Received Thanks: 1,609
Ok let me start.

What do we have here?
Changed function names, added some easy ****.
50% here is same as lyzerks emu

I'd post some examples if I had lyzerks emu decompiled atm, but look at the database. Thats the same. Code. Most functions are same.
Anyway.. Next time remember to give lyzerk credits
Windrius is offline  
Thanks
7 Users
Old 02/21/2010, 15:58   #4
 
Shadowz75's Avatar
 
elite*gold: 0
Join Date: Mar 2009
Posts: 443
Received Thanks: 597
Wtf, did you looked over it?I guess not. I used Lyzerks way to save skills,masteries. Thats all.Did Lyzerk used sth like this:

.Could you use europe characters on Lyzerk Source?Could you drop items and pick them up?
Shadowz75 is offline  
Thanks
3 Users
Old 02/21/2010, 16:05   #5
 
elite*gold: 20
Join Date: Aug 2007
Posts: 1,710
Received Thanks: 1,609
Quote:
Originally Posted by Shadowz75 View Post
Wtf, did you looked over it?I guess not. I used Lyzerks way to save skills,masteries. Thats all.Did Lyzerk used sth like this:

.Could you use europe characters on Lyzerk Source?Could you drop items and pick them up?
No.
I didn't say you completly copied it.
I said 50% of functions are same..

Did you see this? ALMOST everything here is a rip from lyzerks emu. Hmm... what does rip mean? :/

EDIT: You even missed 1 packet just like lyzerk in OnIngameRequest
Windrius is offline  
Thanks
2 Users
Old 02/21/2010, 16:06   #6
 
sakykBzz's Avatar
 
elite*gold: 0
Join Date: Feb 2010
Posts: 76
Received Thanks: 7
Quote:
Originally Posted by Shadowz75 View Post
Wtf, did you looked over it?I guess not. I used Lyzerks way to save skills,masteries. Thats all.Did Lyzerk used sth like this:

.Could you use europe characters on Lyzerk Source?Could you drop items and pick them up?
fight dude! fight!
and dont forget to proove -.-
sakykBzz is offline  
Thanks
1 User
Old 02/21/2010, 16:12   #7
 
-[>Lucy_Nyu<]-'s Avatar
 
elite*gold: 0
Join Date: Dec 2009
Posts: 478
Received Thanks: 75
lyzerk emu = full of ****
-[>Lucy_Nyu<]- is offline  
Old 02/21/2010, 16:12   #8
 
Shadowz75's Avatar
 
elite*gold: 0
Join Date: Mar 2009
Posts: 443
Received Thanks: 597
Quote:
Originally Posted by Windrius View Post
No.
I didn't say you completly copied it.
I said 50% of functions are same..

Did you see this? ALMOST everything here is a rip from lyzerks emu. Hmm... what does rip mean? :/

EDIT: You even missed 1 packet just like lyzerk in OnIngameRequest
Wtf do you mean? Cause the packets are the same? Cause if you want to get data from the database you gotta use this way:
Code:
  Player.General[Index_].CharacterName = Char;
  272             Player.General[Index_].CharacterID = Database.GetUInt("SELECT * FROM characters WHERE name='" + Char + "'", "id");
  273             Player.General[Index_].UniqueID = Player.General[Index_].CharacterID + 300000;
  274             Player.Stats[Index_].HP = Database.GetUInt("SELECT * FROM characters WHERE name='" + Char + "'", "hp");
  275             Player.Stats[Index_].MP = Database.GetUInt("SELECT * FROM characters WHERE name='" + Char + "'", "mp");
  276             Player.Stats[Index_].CHP = Database.GetInt("SELECT * FROM characters WHERE name='" + Char + "'", "s_hp");
  277             Player.Stats[Index_].CMP = Database.GetInt("SELECT * FROM characters WHERE name='" + Char + "'", "s_mp");
  278             Player.Stats[Index_].Model = Database.GetUInt("SELECT * FROM characters WHERE name='" + Char + "'", "chartype");
  279             Player.Stats[Index_].Volume = Database.GetByte("SELECT * FROM characters WHERE name='" + Char + "'", "volume");
  280             Player.Stats[Index_].Level = Database.GetByte("SELECT * FROM characters WHERE name='" + Char + "'", "level");
  281             Player.Stats[Index_].Experience = Database.GetULong("SELECT * FROM characters WHERE name='" + Char + "'", "experience");
  282             Player.Stats[Index_].Gold = Database.GetULong("SELECT * FROM characters WHERE name='" + Char + "'", "gold");
  283             Player.Stats[Index_].Skillpoints = Database.GetUInt("SELECT * FROM characters WHERE name='" + Char + "'", "sp");
  284             Player.Stats[Index_].Attributes = Database.GetUShort("SELECT * FROM characters WHERE name='" + Char + "'", "attribute");
  285             Player.Stats[Index_].BerserkBar = Database.GetByte("SELECT * FROM characters WHERE name='" + Char + "'", "berserkbar");
  286             Player.Flags[Index_].Berserk = Database.GetByte("SELECT * FROM characters WHERE name='" + Char + "'", "berserking");
  287             Player.Speeds[Index_].WalkSpeed = Database.GetFloat("SELECT * FROM characters WHERE name='" + Char + "'", "walkspeed");
  288             Player.Speeds[Index_].RunSpeed = Database.GetFloat("SELECT * FROM characters WHERE name='" + Char + "'", "runspeed");
  289             Player.Speeds[Index_].BerserkSpeed = Database.GetFloat("SELECT * FROM characters WHERE name='" + Char + "'", "berserkspeed");
  290             Player.Stats[Index_].MinPhy = Database.GetUShort("SELECT * FROM characters WHERE name='" + Char + "'", "min_phyatk");
  291             Player.Stats[Index_].MaxPhy = Database.GetUShort("SELECT * FROM characters WHERE name='" + Char + "'", "max_phyatk");
  292             Player.Stats[Index_].MinMag = Database.GetUShort("SELECT * FROM characters WHERE name='" + Char + "'", "min_magatk");
  293             Player.Stats[Index_].MaxMag = Database.GetUShort("SELECT * FROM characters WHERE name='" + Char + "'", "max_magatk");
  294             Player.Stats[Index_].PhyDef = Database.GetUShort("SELECT * FROM characters WHERE name='" + Char + "'", "phydef");
  295             Player.Stats[Index_].MagDef = Database.GetUShort("SELECT * FROM characters WHERE name='" + Char + "'", "magdef");
  296             Player.Stats[Index_].Hit = Database.GetUShort("SELECT * FROM characters WHERE name='" + Char + "'", "hit");
  297             Player.Stats[Index_].Parry = Database.GetUShort("SELECT * FROM characters WHERE name='" + Char + "'", "parry");
  298             Player.Stats[Index_].Strength = Database.GetUShort("SELECT * FROM characters WHERE name='" + Char + "'", "strength");
  299             Player.Stats[Index_].Intelligence = Database.GetUShort("SELECT * FROM characters WHERE name='" + Char + "'", "intelligence");
  300             Player.Stats[Index_].SkillpointBar = Database.GetUShort("SELECT * FROM characters WHERE name='" + Char + "'", "skillpointbar");
  301             Player.Flags[Index_].GM = Database.GetByte("SELECT * FROM characters WHERE name='" + Char + "'", "gm");
  302             Player.Flags[Index_].PvP = -1;
  303             Player.Position[Index_].XSector = Database.GetByte("SELECT * FROM characters WHERE name='" + Char + "'", "xsect");
  304             Player.Position[Index_].YSector = Database.GetByte("SELECT * FROM characters WHERE name='" + Char + "'", "ysect");
  305             Player.Position[Index_].X = Database.GetFloat("SELECT * FROM characters WHERE name='" + Char + "'", "xpos");
  306             Player.Position[Index_].Y = Database.GetFloat("SELECT * FROM characters WHERE name='" + Char + "'", "ypos");
  307             Player.Position[Index_].Z = Database.GetFloat("SELECT * FROM characters WHERE name='" + Char + "'", "zpos");
  308             Player.General[Index_].MaxSlots = Database.GetByte("SELECT * FROM characters WHERE name='" + Char + "'", "maxitemslot");
  309
Or how would you do it?Simsalabim and the data is in your Player array?
btw here is the euro proof(i know that there is a error displayed, thats why someone sent me this picture):
Shadowz75 is offline  
Thanks
4 Users
Old 02/21/2010, 16:16   #9
 
Shadow_Soul's Avatar
 
elite*gold: 0
Join Date: Feb 2010
Posts: 193
Received Thanks: 34
il test it its nice coz it works with the latest version of sro
Shadow_Soul is offline  
Old 02/21/2010, 16:17   #10
 
elite*gold: 20
Join Date: Aug 2007
Posts: 1,710
Received Thanks: 1,609
Quote:
Originally Posted by Shadowz75 View Post
Wtf do you mean? Cause the packets are the same? Cause if you want to get data from the database you gotta use this way:
Code:
  Player.General[Index_].CharacterName = Char;
  272             Player.General[Index_].CharacterID = Database.GetUInt("SELECT * FROM characters WHERE name='" + Char + "'", "id");
  273             Player.General[Index_].UniqueID = Player.General[Index_].CharacterID + 300000;
  274             Player.Stats[Index_].HP = Database.GetUInt("SELECT * FROM characters WHERE name='" + Char + "'", "hp");
  275             Player.Stats[Index_].MP = Database.GetUInt("SELECT * FROM characters WHERE name='" + Char + "'", "mp");
  276             Player.Stats[Index_].CHP = Database.GetInt("SELECT * FROM characters WHERE name='" + Char + "'", "s_hp");
  277             Player.Stats[Index_].CMP = Database.GetInt("SELECT * FROM characters WHERE name='" + Char + "'", "s_mp");
  278             Player.Stats[Index_].Model = Database.GetUInt("SELECT * FROM characters WHERE name='" + Char + "'", "chartype");
  279             Player.Stats[Index_].Volume = Database.GetByte("SELECT * FROM characters WHERE name='" + Char + "'", "volume");
  280             Player.Stats[Index_].Level = Database.GetByte("SELECT * FROM characters WHERE name='" + Char + "'", "level");
  281             Player.Stats[Index_].Experience = Database.GetULong("SELECT * FROM characters WHERE name='" + Char + "'", "experience");
  282             Player.Stats[Index_].Gold = Database.GetULong("SELECT * FROM characters WHERE name='" + Char + "'", "gold");
  283             Player.Stats[Index_].Skillpoints = Database.GetUInt("SELECT * FROM characters WHERE name='" + Char + "'", "sp");
  284             Player.Stats[Index_].Attributes = Database.GetUShort("SELECT * FROM characters WHERE name='" + Char + "'", "attribute");
  285             Player.Stats[Index_].BerserkBar = Database.GetByte("SELECT * FROM characters WHERE name='" + Char + "'", "berserkbar");
  286             Player.Flags[Index_].Berserk = Database.GetByte("SELECT * FROM characters WHERE name='" + Char + "'", "berserking");
  287             Player.Speeds[Index_].WalkSpeed = Database.GetFloat("SELECT * FROM characters WHERE name='" + Char + "'", "walkspeed");
  288             Player.Speeds[Index_].RunSpeed = Database.GetFloat("SELECT * FROM characters WHERE name='" + Char + "'", "runspeed");
  289             Player.Speeds[Index_].BerserkSpeed = Database.GetFloat("SELECT * FROM characters WHERE name='" + Char + "'", "berserkspeed");
  290             Player.Stats[Index_].MinPhy = Database.GetUShort("SELECT * FROM characters WHERE name='" + Char + "'", "min_phyatk");
  291             Player.Stats[Index_].MaxPhy = Database.GetUShort("SELECT * FROM characters WHERE name='" + Char + "'", "max_phyatk");
  292             Player.Stats[Index_].MinMag = Database.GetUShort("SELECT * FROM characters WHERE name='" + Char + "'", "min_magatk");
  293             Player.Stats[Index_].MaxMag = Database.GetUShort("SELECT * FROM characters WHERE name='" + Char + "'", "max_magatk");
  294             Player.Stats[Index_].PhyDef = Database.GetUShort("SELECT * FROM characters WHERE name='" + Char + "'", "phydef");
  295             Player.Stats[Index_].MagDef = Database.GetUShort("SELECT * FROM characters WHERE name='" + Char + "'", "magdef");
  296             Player.Stats[Index_].Hit = Database.GetUShort("SELECT * FROM characters WHERE name='" + Char + "'", "hit");
  297             Player.Stats[Index_].Parry = Database.GetUShort("SELECT * FROM characters WHERE name='" + Char + "'", "parry");
  298             Player.Stats[Index_].Strength = Database.GetUShort("SELECT * FROM characters WHERE name='" + Char + "'", "strength");
  299             Player.Stats[Index_].Intelligence = Database.GetUShort("SELECT * FROM characters WHERE name='" + Char + "'", "intelligence");
  300             Player.Stats[Index_].SkillpointBar = Database.GetUShort("SELECT * FROM characters WHERE name='" + Char + "'", "skillpointbar");
  301             Player.Flags[Index_].GM = Database.GetByte("SELECT * FROM characters WHERE name='" + Char + "'", "gm");
  302             Player.Flags[Index_].PvP = -1;
  303             Player.Position[Index_].XSector = Database.GetByte("SELECT * FROM characters WHERE name='" + Char + "'", "xsect");
  304             Player.Position[Index_].YSector = Database.GetByte("SELECT * FROM characters WHERE name='" + Char + "'", "ysect");
  305             Player.Position[Index_].X = Database.GetFloat("SELECT * FROM characters WHERE name='" + Char + "'", "xpos");
  306             Player.Position[Index_].Y = Database.GetFloat("SELECT * FROM characters WHERE name='" + Char + "'", "ypos");
  307             Player.Position[Index_].Z = Database.GetFloat("SELECT * FROM characters WHERE name='" + Char + "'", "zpos");
  308             Player.General[Index_].MaxSlots = Database.GetByte("SELECT * FROM characters WHERE name='" + Char + "'", "maxitemslot");
  309
Or how would you do it?Simsalabim and the data is in your Player array?
btw here is the euro proof(i know that there is a error displayed, thats why someone sent me this picture):
I DON'T MEAN THAT OMG!!! LOOK AT THE PACKETS >_<

Quote:
writer.SetOpcode(SERVER_OPCODES.GAME_SERVER_CHARDA TA);
writer.AppendDword(Player.Stats[Index_].Model);
writer.AppendByte(Player.Stats[Index_].Volume);
writer.AppendByte(Player.Stats[Index_].Level);
writer.AppendByte(Player.Stats[Index_].Level);
writer.AppendLword(Player.Stats[Index_].Experience);
writer.AppendWord(Player.Stats[Index_].SkillpointBar);
writer.AppendWord(0);
writer.AppendLword(Player.Stats[Index_].Gold);
writer.AppendDword(Player.Stats[Index_].Skillpoints);
writer.AppendWord(Player.Stats[Index_].Attributes);
writer.AppendByte(Player.Stats[Index_].BerserkBar);
writer.AppendDword(0);
writer.AppendDword(Player.Stats[Index_].HP);
writer.AppendDword(Player.Stats[Index_].MP);
if (Player.Flags[Index_].GM == 1)
writer.AppendByte(1);
else
writer.AppendByte((byte)(Player.Stats[Index_].Level < 20 ? 1 : 0));

writer.AppendByte(0);
writer.AppendWord(0);
writer.AppendDword(0);

writer.AppendByte(0);

writer.AppendByte(Player.General[Index_].MaxSlots);

byte itemcount = 0;
for (int j = 0; j <= Player.General[Index_].MaxSlots; j++)
{
if (Database.GetUInt("SELECT * FROM items WHERE owner='" + Char + "' AND itemnumber='item" + j + "'", "itemid") != 0)
itemcount++;

}
writer.AppendByte(itemcount);
int count;
for (byte i = 0; i <= Player.General[Index_].MaxSlots; i++)
{
if (Player.Items[Index_].Item(i).model != 0)
{
writer.AppendByte(i);
writer.AppendDword(Player.Items[Index_].Item(i).model);
switch (Player.Items[Index_].Item(i).type)
{
case 0:
writer.AppendByte(Player.Items[Index_].Item(i).plusvalue);
writer.AppendLword(0);
writer.AppendDword(Player.Items[Index_].Item(i).durability);
writer.AppendByte(Player.Items[Index_].Item(i).blueamount);
count = 1;
while (count <= 9)
{
uint blue = Database.GetUInt("SELECT * FROM items WHERE slot='" + i + "'", "blue" + count);
if (blue != 0)
{
uint blueamount = Database.GetUInt("SELECT * FROM items WHERE slot='" + i + "'", "blue" + count + "amount");
writer.AppendDword(blue);
writer.AppendDword(blueamount);
}
count++;
}
break;
case 1:
writer.AppendWord(Player.Items[Index_].Item(i).quantity);
break;
case 2:
writer.AppendByte(0);
writer.AppendWord(1);
break;
}
}
}

writer.AppendByte(5);
writer.AppendByte(0);

writer.AppendByte(0);

uint[] mastery = new uint[8];
byte[] level = new byte[8];
for (uint i = 1; i <= 7; i++)
{
mastery[i] = Database.GetUInt("SELECT * FROM mastery WHERE owner='" + Char + "' AND mastery_row='mastery_" + i + "'", "mastery");
if (mastery[i] != 0)
{
level[i] = Database.GetByte("SELECT * FROM mastery WHERE owner='" + Char + "' AND mastery_row='mastery_" + i + "'", "level");
writer.AppendByte(1);
writer.AppendDword(mastery[i]);
writer.AppendByte(level[i]);
}
}

writer.AppendWord(2);

Player.Skills[Index_].SkillAmount = Database.GetInt("SELECT * FROM skills WHERE owner='" + Char + "'", "AmountSkill");

for (int i = 1; i <= Player.Skills[Index_].SkillAmount; i++)
{
Player.Skills[Index_].Skilllist[i] = Database.GetUInt("SELECT * FROM skills WHERE owner='" + Char + "'", "Skill" + i);
writer.AppendByte(1);
writer.AppendDword(Player.Skills[Index_].Skilllist[i]);
writer.AppendByte(1);
}

writer.AppendByte(2);
writer.AppendWord(1);
writer.AppendDword(0);

writer.AppendByte(0);
writer.AppendByte(0);
writer.AppendDword(Player.General[Index_].UniqueID);

writer.AppendByte(Player.Position[Index_].XSector);
writer.AppendByte(Player.Position[Index_].YSector);
writer.AppendFloat(Player.Position[Index_].X);
writer.AppendFloat(Player.Position[Index_].Z);
writer.AppendFloat(Player.Position[Index_].Y);

writer.AppendWord(0);
writer.AppendByte(0);
writer.AppendByte(1);
writer.AppendByte(0);
writer.AppendWord(0);
writer.AppendWord(0);

writer.AppendByte(Player.Flags[Index_].Berserk);
writer.AppendFloat(Player.Speeds[Index_].WalkSpeed);
writer.AppendFloat(Player.Speeds[Index_].RunSpeed);
writer.AppendFloat(Player.Speeds[Index_].BerserkSpeed);

writer.AppendByte(0);

if (Player.Flags[Index_].GM == 1)
{
string gmname = string.Format("[GM]{0}", Char);
writer.AppendWord((ushort)gmname.Length);
writer.AppendString(false, gmname);
}
else
{
writer.AppendWord((ushort)Char.Length);
writer.AppendString(false, Char);
}

writer.AppendWord(0);
writer.AppendDword(0x00000100);
writer.AppendDword(0);
writer.AppendDword(0);
writer.AppendDword(0);
writer.AppendByte(0);

writer.AppendByte((byte)Player.Flags[Index_].PvP);
writer.AppendDword(0);
writer.AppendDword(Player.General[Index_].AccountID);
writer.AppendByte(Player.Flags[Index_].GM);

writer.AppendDword(0);
writer.AppendDword(0);
writer.AppendWord(0);
writer.AppendWord(1);
writer.AppendWord(1);
writer.AppendWord(0);
ServerSocket.Send(writer.getWorkspace(), Index_);

Stats.OnStatPacket(Index_);

writer.SetOpcode(SERVER_OPCODES.GAME_SERVER_LOADIN G_END);
ServerSocket.Send(writer.getWorkspace(), Index_);
}
Windrius is offline  
Thanks
6 Users
Old 02/21/2010, 16:20   #11
 
Shadowz75's Avatar
 
elite*gold: 0
Join Date: Mar 2009
Posts: 443
Received Thanks: 597
Quote:
Originally Posted by Windrius View Post
I DON'T MEAN THAT OMG!!! LOOK AT THE PACKETS >_<
its the ingame request , and?do you mean that i miss the packet including the uniqueid and another dword? this **** isnt needed
Shadowz75 is offline  
Thanks
1 User
Old 02/21/2010, 16:23   #12
 
Shadow_Soul's Avatar
 
elite*gold: 0
Join Date: Feb 2010
Posts: 193
Received Thanks: 34
i believe shadow, i never saw exp on lyzerk's server before.. iam downloading and installing stuff now,ty shadowz75 for this emu,we apreciate it,i thinck that windrius is jealous or something
Shadow_Soul is offline  
Old 02/21/2010, 16:24   #13
 
elite*gold: 20
Join Date: Aug 2007
Posts: 1,710
Received Thanks: 1,609
Quote:
Originally Posted by Shadowz75 View Post
its the ingame request , and?do you mean that i miss the packet including the uniqueid and another dword? this **** isnt needed
No I mean look inside.
EVERYTHING IS SAME.
omg must I show every letter here that is same?
look at attack function. Same too.
I'm telling you. This is so copied from lyzerks emu

Quote:
Originally Posted by Shadow_Soul View Post
i believe shadow, i never saw exp on lyzerk's server before.. iam downloading and installing stuff now,ty shadowz75 for this emu,we apreciate it,i thinck that windrius is jealous or something
Ou mai gawd. get exp so hard to add. omfg impossible.
Windrius is offline  
Thanks
2 Users
Old 02/21/2010, 16:26   #14
 
Shadowz75's Avatar
 
elite*gold: 0
Join Date: Mar 2009
Posts: 443
Received Thanks: 597
Quote:
Originally Posted by Windrius View Post
No I mean look inside.
EVERYTHING IS SAME.
omg must I show every letter here that is same?
look at attack function. Same too.
I'm telling you. This is so copied from lyzerks emu
funny guy, cause the packet is the same? look at the sremu c++ source and tell me and you'll see its almost the same. thats because the structure is the same.i already parsed this packet: (thanks for the quest part, eckoro)
Code:
public static void GetCharacterDat a(HandshakeApi.TPacket packet)
        {
            PacketReader reader = new PacketReader(new IntPtr(packet.data), packet.size);
            uint model = reader.Read<uint>();
            byte volume = reader.Read<byte>();
            byte level = reader.Read<byte>();
            byte highestlevel = reader.Read<byte>();
            ulong exp = reader.Read<ulong>();
            ushort xpbar = reader.Read<ushort>();
            ushort spbar = reader.Read<ushort>();
            ulong gold = reader.Read<ulong>();
            uint sp = reader.Read<uint>();
            ushort avaiblestatpoints = reader.Read<ushort>();
            reader.Read<uint>();
            byte berserkguage = reader.Read<byte>();
            uint curhp = reader.Read<uint>();
            uint curmp = reader.Read<uint>();
            byte noobicon = reader.Read<byte>();
            byte dailypl = reader.Read<byte>();
            ushort totalpk = reader.Read<ushort>();
            uint pkpenaltypoint = reader.Read<uint>();
            byte rank = reader.Read<byte>();
            byte maxslots = reader.Read<byte>();
            byte itemcount = reader.Read<byte>();

            byte[] slot = new byte[itemcount];
            uint[] itemid = new uint[itemcount];
            byte[] plus = new byte[itemcount];
            ulong[] modifier = new ulong[itemcount];
            uint[] durability = new uint[itemcount];
            byte[] blueamount = new byte[itemcount];
            ushort[] quantitiy = new ushort[itemcount];
            uint[] blue = new uint[itemcount];
            uint[] blue2 = new uint[itemcount];

            byte count;
            for (byte i = 0; i < itemcount; i++)
            {
                slot[i] = reader.Read<byte>();
                itemid[i] = reader.Read<uint>();

                switch (DatabaseFiles.ItemData.Item[itemid[i]].type)
                {
                    case 0:
                        plus[i] = reader.Read<byte>();
                        modifier[i] = reader.Read<ulong>();
                        durability[i] = reader.Read<uint>();
                        blueamount[i] = reader.Read<byte>();
                        count = 1;
                        while (count <= 9)
                        {
                            if (blueamount[i] != 0)
                            {
                                blue[i] = reader.Read<uint>();
                                blue2[i] = reader.Read<uint>();
                            }
                            count++;
                        }
                        break;
                    case 1:
                        quantitiy[i] = reader.Read<ushort>();
                        break;
                    case 2:
                        reader.Read<byte>();
                        reader.Read<ushort>();
                        break;
                }
            }

            byte avatarliststart = reader.Read<byte>();

            byte avatarcount = reader.Read<byte>();
            uint[] avataritemid = new uint[avatarcount];

            for (byte i = 0; i < avatarcount; i++)            
                avataritemid[i] = reader.Read<uint>();
            
            byte avatarlistend = reader.Read<byte>();

            byte[] nextmastery = new byte[7];
            uint[] mastery = new uint[7];
            byte[] masterylevel = new byte[7];

            for (byte i = 0; i <7 ; i++)
            {
                nextmastery[i] = reader.Read<byte>();
                mastery[i] = reader.Read<uint>();
                masterylevel[i] = reader.Read<byte>();
            }

            byte skillliststart = reader.Read<byte>();
            byte skilllist = reader.Read<byte>();

            byte[] skillstart = new byte[skilllist];
            uint[] skillid = new uint[skilllist];
            byte[] skillevel = new byte[skilllist];

            for (byte i = 0; i < skilllist; i++)
            {
                skillstart[i] = reader.Read<byte>();
                skillid[i] = reader.Read<uint>();
                skillevel[i] = reader.Read<byte>();
            }
            byte skilllistend = reader.Read<byte>();

            byte questliststart = reader.Read<byte>();

            byte amountofcompletedquests = reader.Read<byte>();
            reader.Read<uint>();

            uint[] questidc = new uint[amountofcompletedquests];

            for (byte i = 0; i < amountofcompletedquests; i++)
            {
                questidc[i] = reader.Read<uint>();
            }

            byte amountofpendingquests = reader.Read<byte>();

            uint[] questid = new uint[amountofpendingquests];
            byte[] questrepetitionamount = new byte[amountofpendingquests];
            byte[] questcompletitionamount = new byte[amountofpendingquests];
            byte[] questtype = new byte[amountofpendingquests];
            byte[] objectiveorderno = new byte[amountofpendingquests];
            byte[] status = new byte[amountofpendingquests];
            ushort[] objectivereflength = new ushort[amountofpendingquests];
            string[] objectiveref = new string[amountofpendingquests];
            uint[] amountofitemsORkillsORnpcid = new uint[amountofpendingquests];
            byte[] amountofobjecttives = new byte[amountofpendingquests];
            uint[] questnpc = new uint[amountofpendingquests];
            byte[] amountquestnpc = new byte[amountofpendingquests];
            for (byte i = 0; i < amountofpendingquests; i++)
            {
                questid[i] = reader.Read<uint>();
                questrepetitionamount[i] = reader.Read<byte>();
                questcompletitionamount[i] = reader.Read<byte>();
                questtype[i] = reader.Read<byte>();
                reader.Read<byte>();
                reader.Read<byte>();
                objectiveorderno[i] = reader.Read<byte>();
                status[i] = reader.Read<byte>();
                objectivereflength[i] = reader.Read<ushort>();
                byte[] tmp = new byte[objectivereflength[i]];
                reader.ReadArray<byte>(tmp, tmp.Length);
                objectiveref[i] = Encoding.ASCII.GetString(tmp);
                switch (questtype[i])
                {
                    case 0x18:
                        amountofobjecttives[i] = reader.Read<byte>();
                        for (int l = 0; l < amountofobjecttives[i]; l++)
                            amountofitemsORkillsORnpcid[i] = reader.Read<uint>();
                        break;

                    case 0x58:
                        amountofobjecttives[i] = reader.Read<byte>();
                        for (int l = 0; l < amountofobjecttives[i]; l++)
                            amountofitemsORkillsORnpcid[i] = reader.Read<uint>();
                        amountquestnpc[i] = reader.Read<byte>();
                        for (int l = 0; l < amountquestnpc[i]; l++)
                            questnpc[i] = reader.Read<uint>();
                        break;
                }
            }

  
            byte questistend = reader.Read<byte>();


            uint playerid = reader.Read<uint>();
            byte xzone = reader.Read<byte>();
            byte yzone = reader.Read<byte>();
            float x = reader.Read<float>();
            float z = reader.Read<float>();
            float y = reader.Read<float>();
            ushort angle = reader.Read<ushort>();
            byte havedestination = reader.Read<byte>();
            byte nodestination = reader.Read<byte>();
            if (havedestination == 0)
            {
                byte nodest = reader.Read<byte>();
                ushort angle2 = reader.Read<ushort>();
            }
            else
            {
                byte xzone2 = reader.Read<byte>();
                byte yzone2 = reader.Read<byte>();
                ushort x2 = reader.Read<ushort>();
                ushort z2 = reader.Read<ushort>();
                ushort y2 = reader.Read<ushort>();
            }

            byte deathflag = reader.Read<byte>();
            byte moveementflag = reader.Read<byte>();
            byte berserkermode = reader.Read<byte>();
            float walkingspeed = reader.Read<float>();
            float runningspeed = reader.Read<float>();
            float berserkerspeed = reader.Read<float>();
            byte noofbuffs = reader.Read<byte>();

            uint[] buffskillid = new uint[noofbuffs];
            uint[] buffduration = new uint[noofbuffs];

            for (byte i = 0; i < noofbuffs; i++)
            {
                buffskillid[i] = reader.Read<uint>();
                buffduration[i] = reader.Read<uint>();
            }

            ushort playernamelength = reader.Read<ushort>();
            byte[] bplayername = new byte[playernamelength];
            reader.ReadArray<byte>(bplayername, bplayername.Length);
            string playername = Encoding.ASCII.GetString(bplayername);
            ushort aliasnamelength = reader.Read<ushort>();
            byte[] baliasname = new byte[aliasnamelength];
            reader.ReadArray<byte>(baliasname, baliasname.Length);
            string aliasname = Encoding.ASCII.GetString(baliasname);

            byte joblevel = reader.Read<byte>();
            byte jobtype = reader.Read<byte>();
            uint currentexp = reader.Read<uint>();
            uint thiefexp = reader.Read<uint>();
            uint hunterexp = reader.Read<uint>();
            reader.Read<byte>();
            reader.Read<byte>();
            reader.Read<byte>();
            byte pkflag = reader.Read<byte>();
            reader.Read<ushort>();
            reader.Read<uint>();
            reader.Read<ushort>();
            uint accountid = reader.Read<uint>();
            byte gmflag = reader.Read<byte>();
}
Shadowz75 is offline  
Thanks
1 User
Old 02/21/2010, 16:26   #15
 
Shadow_Soul's Avatar
 
elite*gold: 0
Join Date: Feb 2010
Posts: 193
Received Thanks: 34
i realy don't care if it,is at least he is open source and give us,the emu to play with,not like greedy Lyzerk....so ty a lot shdowz,and ignore windrius
Shadow_Soul is offline  
Closed Thread


Similar Threads Similar Threads
CSREMU help -.-
08/09/2011 - SRO Private Server - 3 Replies
Hello.. Well, I've tried searching for proper client download for CSREMU, but i can't find one.. nor can i find the proper tool's needed, since their all scattered, and impossible to detect which one is real or not.
CSREMU Help :S:S
10/03/2010 - SRO Private Server - 33 Replies
I know it give much threads or a extra forum but i think its better when i start a new thread here my problem is when i start all ! and load sro stabnds the server on check omg o.o i looked on database by navicat and i changed name
CSREmu
04/07/2010 - SRO Private Server - 2 Replies
CSREmu but when I enter to silkroad the server this check!!!!!!!! that I can do!!!!!!!!!? pls help me! :(
CSREMU
02/28/2010 - SRO Private Server - 8 Replies
Can i play csremu with 1.236 client cuz when i log on i get crash -.-" Is it beacuase of the wrong version or could it be smth else?



All times are GMT +2. The time now is 16:02.


Powered by vBulletin®
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2024 elitepvpers All Rights Reserved.