Follow along with the video below to see how to install our site as a web app on your home screen.
Note: This feature may not be available in some browsers.
typedef void (ClientCom::*ClientHandler)();
static ClientHandler Handlers[0xFF+1] = {
....
&ClientCom::onDumpStatics , // "F_DUMP_STATICS"
void ClientCom::onDumpStatics() // Changing Offset
{
uint32 unk1;
uint16 unk2, unk3, offsetX, offsetY;
m_readBuffer >> unk1 >> unk2 >> offsetX >> unk3 >> offsetY;
if(m_Plr && ( m_Plr->GetOffX() != offsetX || m_Plr->GetOffY() != offsetY) )
m_Plr->onPlayerMovementOffset(offsetX,offsetY);
}
void Player::onPlayerMovementOffset(uint16 offsetX,uint16 offsetY)
{
if(offsetX > 998)
offsetX = 998;
if(offsetY > 998)
offsetY = 998;
m_OffSetX = offsetX;
m_OffSetY = offsetY;
m_zone_x = m_OffSetX << 12;
m_zone_y = m_OffSetY << 12;
ConvertWorldPos();
void Item::Delete()
{
Query* q = StatusDatabase::createQuery();
std::stringstream ssSQL;
ssSQL << "DELETE FROM player_items WHERE guid=";
ssSQL << GetGuid() << ")";
q->setQueryText(ssSQL.str());
StatusDatabase::executeSynchronousQuery(q);
delete q;
delete this;
}
From here begin clothes to show for other players -> ->
player.cpp (need to be convert .. alot errors )
bool del=false;
for (int i=0; i<DorConstants::NumberOfEquipSlots; i++)
{
equippedItems[i]=q->getUint32();
if( equippedItems[i] )
{
ItemProto * item = sStorage->GetItemByEntry( equippedItems[i] );
if( Convert[i] && item)
{
stringstream zz;
zz << "INSERT INTO `player_items` (guid,playerid,entry,slot_id,counts) VALUES(";
zz << sStorage->GenerateGuid( TYPEID_ITEM ) << ",";
zz << GetPlayerID() << ",";
zz << item->entry << ",";
zz << Convert[i] << ",";
zz << "1" << ")";
Query* d = StatusDatabase::createQuery();
d->setQueryText(zz.str());
StatusDatabase::executeSynchronousQuery(d);
}
del=true;
equippedItems[i]=0;
}
}
delete q;
if(del)
{
Query* c = StatusDatabase::createQuery();
stringstream zz;
zz << "UPDATE `character` SET equipped_1=0,equipped_2=0,equipped_3=0,equipped_4=0,equipped_5=0,equipped_6=0,equipped_7=0,equipped_8=0,equipped_9=0,equipped_10=0,equipped_11=0,equipped_12=0,equipped_13=0,equipped_14=0,equipped_15=0,equipped_16=0,equipped_17=0,equipped_18=0,equipped_19=0,equipped_20=0 WHERE character_id="<<m_playerID;
c->setQueryText(zz.str());
StatusDatabase::executeSynchronousQuery(c);
}
m_ItemInterface = new ItemInterface(this);
m_ItemInterface->Load();
player.h - added
-> ItemInterface * m_ItemInterface; // this is in enw emu
std::map<uint16,Player*> m_inrange; // neet to be added - no give errors when build client
WorldStatsDatabase.cpp ->
std::vector<CharacterInfo*>* StatusDatabase::loginCharList(uint32 accountID)
{
Query* q = GLOBAL_STATUS_DB->createQuery();
std::stringstream ssSQL;
ssSQL << "SELECT character_id, name, model, zone, equipped_1, level, career, realm, heldleft, race, last_time_played FROM `character` WHERE account_id=" << accountID;
q->setQueryText(ssSQL.str());
GLOBAL_STATUS_DB->executeSynchronousQuery(q); ///- this query can be executed synchronously as time isn't critical
// q->fetchRow();
std::vector<CharacterInfo*>* v = new std::vector<CharacterInfo*>();
while (q->fetchRow())
{
CharacterInfo* ci = new CharacterInfo;
ci->ID = q->getUint32();
std::ostringstream oss;
oss << "<SummaryData version=\"9\" blockTypeId=\"1\">";
oss << "<Name>";
oss << q->getString();
oss << "</Name>";
oss << "<Imagenum>";
oss << q->getUint32();
oss << "</Imagenum>";
oss << "<Region>";
oss << q->getUint32();
oss << "</Region>";
oss << "<WornList capacity=\"1\">"; //: note voluntarily cut. Goes to 15 on commercial server
oss << "<Worn index=\"1\">" << q->getUint32() << "</Worn>";
oss << "</WornList>";
oss << "<ReadiedList capacity=\"5\">";
oss << "<Readied index=\"0\">1916</Readied>"; //we still need to figure out what is readied.
oss << "</ReadiedList>";
oss << "<Level>";
oss << q->getUint32();
oss << "</Level>";
oss << "<CharClass>";
oss << q->getUint32();
oss << "</CharClass>";
oss << "<Realm>";
oss << q->getUint32();
oss << "</Realm>";
oss << "<HeldLeft>";
oss << q->getUint32();
oss << "</HeldLeft>";
oss << "<Race>";
oss << q->getUint32();
oss << "</Race>";
oss << "<FeatureHigh>2147483648</FeatureHigh>"; //??
oss << "<FeatureLow>1495468152</FeatureLow>";
oss << "<RevisionId>97769940</RevisionId>";
oss << "</SummaryData>";
ci->xmlDesc.assign(oss.str());
ci->lastTimePlayed = q->getUint32();
v->push_back(ci);
}
delete q;
return v;
}
hahaharight here lol me and my friend leo started 8 months ago still working tryin to fix these main bugs