* fixed object update
* re-added language lookup in chat messages, for example "say,Gnomish pwnt". note they are CASE-sensitive and depend on which language name is set in /data/scp/language.scp!
This commit is contained in:
parent
de2614fa80
commit
7ea59ad349
@ -11,6 +11,7 @@
|
|||||||
#include "CacheHandler.h"
|
#include "CacheHandler.h"
|
||||||
#include "SCPDatabase.h"
|
#include "SCPDatabase.h"
|
||||||
|
|
||||||
|
|
||||||
void DefScriptPackage::_InitDefScriptInterface(void)
|
void DefScriptPackage::_InitDefScriptInterface(void)
|
||||||
{
|
{
|
||||||
AddFunc("pause",&DefScriptPackage::SCpause);
|
AddFunc("pause",&DefScriptPackage::SCpause);
|
||||||
@ -64,21 +65,17 @@ DefReturnResult DefScriptPackage::SCSendChatMessage(CmdSet& Set){
|
|||||||
std::stringstream ss;
|
std::stringstream ss;
|
||||||
uint32 type=atoi(Set.arg[0].c_str());
|
uint32 type=atoi(Set.arg[0].c_str());
|
||||||
uint32 lang=atoi(Set.arg[1].c_str());
|
uint32 lang=atoi(Set.arg[1].c_str());
|
||||||
// TODO: need better database support to get the lang id from a given name
|
|
||||||
/*ss << lang;
|
ss << lang;
|
||||||
if(ss.str()!=Set.arg[1]) // given lang is NOT a number
|
if(ss.str()!=Set.arg[1]) // given lang is NOT a number
|
||||||
{
|
{
|
||||||
|
uint32 dblang;
|
||||||
for(uint32 i=0;i<=33;i++)
|
dblang = ((PseuInstance*)parentMethod)->dbmgr.GetDB("language").GetFieldByValue("name",Set.arg[1]);
|
||||||
{
|
logdev("looking up language id for lang '%s', found %i",Set.arg[1].c_str(),dblang);
|
||||||
((PseuInstance*)parentMethod)->dbmgr.GetDB("language").GetFieldByValue("name"
|
if(dblang != -1)
|
||||||
if(!stricmp(Set.arg[1].c_str(),LookupName(i,langNames)))
|
lang = dblang;
|
||||||
{
|
}
|
||||||
lang=i;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}*/
|
|
||||||
std::string msg=Set.arg[2];
|
std::string msg=Set.arg[2];
|
||||||
std::string to=Set.arg[3];
|
std::string to=Set.arg[3];
|
||||||
((PseuInstance*)parentMethod)->GetWSession()->SendChatMessage(type,lang,msg,to);
|
((PseuInstance*)parentMethod)->GetWSession()->SendChatMessage(type,lang,msg,to);
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
#define DEFSCRIPTINTERFACEINCLUDE_H
|
#define DEFSCRIPTINTERFACEINCLUDE_H
|
||||||
#define USING_DEFSCRIPT_EXTENSIONS true
|
#define USING_DEFSCRIPT_EXTENSIONS true
|
||||||
|
|
||||||
void _InitDefScriptInterface();
|
void _InitDefScriptInterface(void);
|
||||||
// Useable own internal functions:
|
// Useable own internal functions:
|
||||||
DefReturnResult SCpause(CmdSet&);
|
DefReturnResult SCpause(CmdSet&);
|
||||||
DefReturnResult SCSendChatMessage(CmdSet&);
|
DefReturnResult SCSendChatMessage(CmdSet&);
|
||||||
|
|||||||
@ -167,7 +167,7 @@ void WorldSession::_MovementUpdate(uint8 objtypeid, uint64 uguid, WorldPacket& r
|
|||||||
{
|
{
|
||||||
uint8 flags;
|
uint8 flags;
|
||||||
uint32 unk32,flags2,time,transtime,higuid;
|
uint32 unk32,flags2,time,transtime,higuid;
|
||||||
float unkf,x,y,z,o,tx,ty,tz,to;
|
float unkfx,unkfy,unkfz,x,y,z,o,tx,ty,tz,to;
|
||||||
uint64 transguid;
|
uint64 transguid;
|
||||||
// uint64 fullguid; // see below
|
// uint64 fullguid; // see below
|
||||||
float speedWalk, speedRun, speedSwimBack, speedSwim, speedWalkBack, speedTurn, speedFly, speedFlyBack;
|
float speedWalk, speedRun, speedSwimBack, speedSwim, speedWalkBack, speedTurn, speedFly, speedFlyBack;
|
||||||
@ -189,26 +189,35 @@ void WorldSession::_MovementUpdate(uint8 objtypeid, uint64 uguid, WorldPacket& r
|
|||||||
{
|
{
|
||||||
if(flags & UPDATEFLAG_TRANSPORT)
|
if(flags & UPDATEFLAG_TRANSPORT)
|
||||||
{
|
{
|
||||||
recvPacket >> unkf >> unkf >> unkf >> o; // 3x (float)0 followed by orientation
|
recvPacket >> unkfx >> unkfy >> unkfz >> o; // 3x (float)0 followed by orientation
|
||||||
|
logdev("TRANSPORT_FLOATS @ flags: x=%f y=%f z=%f o=%f",unkfx,unkfy,unkfz,o);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
recvPacket >> x >> y >> z >> o;
|
recvPacket >> x >> y >> z >> o;
|
||||||
|
logdev("FLOATS: x=%f y=%f z=%f o=%f",x,y,z,o);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if(flags & UPDATEFLAG_LIVING)
|
||||||
|
{
|
||||||
if(flags2 & FLAGS2_TRANSPORT)
|
if(flags2 & FLAGS2_TRANSPORT)
|
||||||
{
|
{
|
||||||
recvPacket >> transguid >> tx >> ty >> tz >> to;
|
recvPacket >> transguid >> tx >> ty >> tz >> to;
|
||||||
recvPacket >> unk32; // added in 2.0.3
|
recvPacket >> unk32; // added in 2.0.3
|
||||||
|
logdev("TRANSPORT_FLOATS @ flags2: x=%f y=%f z=%f o=%f",tx,ty,tz,to);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
if(flags & UPDATEFLAG_LIVING)
|
|
||||||
{
|
|
||||||
recvPacket >> unk32;
|
recvPacket >> unk32;
|
||||||
|
|
||||||
|
/*
|
||||||
|
// not sure if this is/was correct, MaNGOS doesnt use it anymore
|
||||||
if(flags2 & 0x2000) // 0x2000 = ??
|
if(flags2 & 0x2000) // 0x2000 = ??
|
||||||
{
|
{
|
||||||
recvPacket >> unkf >> unkf >> unkf >> unkf;
|
recvPacket >> unkf >> unkf >> unkf >> unkf;
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
recvPacket >> speedWalk >> speedRun >> speedSwimBack >> speedSwim;
|
recvPacket >> speedWalk >> speedRun >> speedSwimBack >> speedSwim;
|
||||||
recvPacket >> speedWalkBack >> speedFly >> speedFlyBack >> speedTurn; // fly added in 2.0.x
|
recvPacket >> speedWalkBack >> speedFly >> speedFlyBack >> speedTurn; // fly added in 2.0.x
|
||||||
if(u)
|
if(u)
|
||||||
@ -237,8 +246,8 @@ void WorldSession::_MovementUpdate(uint8 objtypeid, uint64 uguid, WorldPacket& r
|
|||||||
if(flags & UPDATEFLAG_HIGHGUID)
|
if(flags & UPDATEFLAG_HIGHGUID)
|
||||||
{
|
{
|
||||||
recvPacket >> higuid; // 2.0.6 - high guid was there, unk for 2.0.12
|
recvPacket >> higuid; // 2.0.6 - high guid was there, unk for 2.0.12
|
||||||
// not sure if this is correct
|
// not sure if this is correct, MaNGOS sends 0 always.
|
||||||
obj->SetUInt32Value(OBJECT_FIELD_GUID+1,higuid); // note that this sets only the high part of the guid
|
//obj->SetUInt32Value(OBJECT_FIELD_GUID+1,higuid); // note that this sets only the high part of the guid
|
||||||
}
|
}
|
||||||
|
|
||||||
if(flags & UPDATEFLAG_FULLGUID)
|
if(flags & UPDATEFLAG_FULLGUID)
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user