Donwload tortoise svn, and copy from the first post the svn link.
Donload visual basic c++ and compiles .sln files
P.S: Windows server 2008 is suck, to many ram and very slow. I prefer 2003
Printable View
Nice, i'll be testing this asap ^_^
Rhisis is already on rev 28 and they have got some major stuff working :) I smell a project which is soon going to pass by caalis ;)
This looks interesting..
It is interesting... and its a fact, that it WILL be the face of Flyff Emulators soon. :)
what day have 0.02><
bad eng
Lol damn rev 31 alrdy..everyday there's like 2 Rev's XD You uys are quick.
Hey, how do you guys send the drop packet when an item drops?
I looked over it and tried but it keeps crashing client on osa =|
It would be nice if we could help eachother's project out if theres something :P
And by the way, rhisis is a really good project, keep up the good work!
~ Nicco
my god
releases every month .....
=.=
but....suport..LOL
To spawn an item its just send the item spawn packet, from MoverPacket.cpp:
just add it to visible thread handle and make it spawn with that packet.PHP Code:Packet pak = Packet();
pak.setPlayer(player);
pak.addHeader(mover, PAK_MOVER_SPAWN);
pak.addByte(mover->getType());
pak.addInt(mover->getMoverId());
pak.addByte(mover->getType());
pak.addShort(mover->getMoverId());
pak.addShort(mover->getSize());
pak.addPos(mover->getPos(false));
pak.addShort(mover->getAngle() * 50);
pak.addInt(mover->getId());
//Item part start
ItemSpawned* item = (ItemSpawned*)mover;
pak.addInt(-1);
pak.addInt(ItemBanks::getItemBankById(item->getMoverId())->getItemId());
pak.addInt(0);
pak.addInt(0);
pak.addShort(item->getItem()->getAmount()); // Quantity
pak.addShort(0);
if(ItemBanks::getItemBankById(item->getMoverId())->endurance!=0)
pak.addInt(ItemBanks::getItemBankById(item->getMoverId())->endurance);
else
pak.addInt(-1);
pak.addInt(0);
pak.addInt(item->getItem()->getRefine());
pak.addInt(0);
pak.addByte(item->getItem()->getElement());
pak.addInt(item->getItem()->getEleRefine());
pak.addInt(0);
pak.addByte(item->getItem()->getSocketSize());
for(int i = 0; i < item->getItem()->getSocketSize(); i++)
pak.addShort(0);
pak.addInt(0);
pak.addInt64(item->getItem()->getAwakening().total);
pak.addInt(0);
pak.completePacket();
pak.packetSend();
To pick up its at followMover :P
Thanks for saying its a good project :P
Yeah, I did try to look on the packet and did similar way:
But I don't know what the itembank values are...Code:public void sendNewDropSpawn(Drop drop)
{
// TODO: Test out this packet and see if it works etc
Packet pak = new Packet();
pak.StartNewMergedPacket(drop.dwMoverID, PAK_MOVER_SPAWN);
pak.Addbyte(4); // 4 = item
pak.Addint(drop.dwMoverID);
pak.Addbyte(4);
pak.Addshort(drop.dwMoverID);
pak.Addshort(drop.dwMoverSize);
pak.Addfloat(drop.c_position.x);
pak.Addfloat(drop.c_position.y);
pak.Addfloat(drop.c_position.z);
pak.Addshort(drop.c_position.angle);
pak.Addint(drop.item.itemid);
pak.Addint(-1);
pak.Addint(drop.item.uniqueid); // UniqueID???
pak.Addint(0);
pak.Addint(0);
pak.Addshort(drop.item.quantity);
pak.Addshort(0);
pak.Addint(drop.item.uniqueid); // UniqueID???
pak.Addint(0);
pak.Addint(drop.item.refine);
pak.Addint(0);
pak.Addbyte(drop.item.element);
pak.Addint(drop.item.eRefine);
pak.Addint(0);
pak.Addint(drop.item.sockets.Length);
for(int i=0;i<drop.item.sockets.Length;i++)
{
pak.Addshort(0);
//pak.Addshort(drop.item.sockets[i]); // May not work!! If not, use pak.Addshort(0);
}
pak.Addint(0);
pak.Addlong(drop.item.awakening);
pak.Addint(0);
pak.Send(this);
}
Fixed missed the -1Code:public void sendNewDropSpawn(Drop drop)
{
// TODO: Test out this packet and see if it works etc
Packet pak = new Packet();
pak.StartNewMergedPacket(drop.dwMoverID, PAK_MOVER_SPAWN);
pak.Addbyte(4); // 4 = item
pak.Addint(drop.dwMoverID);
pak.Addbyte(4);
pak.Addshort(drop.dwMoverID);
pak.Addshort(drop.dwMoverSize);
pak.Addfloat(drop.c_position.x);
pak.Addfloat(drop.c_position.y);
pak.Addfloat(drop.c_position.z);
pak.Addshort(drop.c_position.angle);
pak.Addshort(drop.dwMoverID);
pak.AddInt(-1);
pak.AddItemData(drop);
pak.Send(this);
}
Thats my take on it.