* added SendWorldPacket script func.

This commit is contained in:
False.Genesis 2007-10-28 17:26:19 +00:00
parent e7c3f27f54
commit c7cc44d4cb
2 changed files with 26 additions and 0 deletions

View File

@ -50,6 +50,7 @@ void DefScriptPackage::_InitDefScriptInterface(void)
AddFunc("getobjectvalue",&DefScriptPackage::SCGetObjectValue); AddFunc("getobjectvalue",&DefScriptPackage::SCGetObjectValue);
AddFunc("getrace",&DefScriptPackage::SCGetRace); AddFunc("getrace",&DefScriptPackage::SCGetRace);
AddFunc("getclass",&DefScriptPackage::SCGetClass); AddFunc("getclass",&DefScriptPackage::SCGetClass);
AddFunc("sendworldpacket",&DefScriptPackage::SCSendWorldPacket);
} }
DefReturnResult DefScriptPackage::SCshdn(CmdSet& Set) DefReturnResult DefScriptPackage::SCshdn(CmdSet& Set)
@ -857,6 +858,30 @@ DefReturnResult DefScriptPackage::SCGetClass(CmdSet &Set)
return ""; return "";
} }
DefReturnResult DefScriptPackage::SCSendWorldPacket(CmdSet &Set)
{
WorldSession *ws = ((PseuInstance*)parentMethod)->GetWSession();
if(!ws)
{
logerror("Invalid Script call: SCSendWorldPacket: WorldSession not valid");
DEF_RETURN_ERROR;
}
ByteBuffer *bb = bytebuffers.GetNoCreate(_NormalizeVarName(Set.defaultarg,Set.myname));
if(bb)
{
uint32 opcode = (uint32)DefScriptTools::toNumber(Set.arg[0]);
if(opcode) // prevent sending CMSG_NULL_ACTION
{
WorldPacket wp(opcode, bb->size());
if(bb->size())
wp.append(bb->contents(), bb->size());
ws->SendWorldPacket(wp);
return true;
}
}
return false;
}

View File

@ -41,5 +41,6 @@ DefReturnResult SCPrintScript(CmdSet&);
DefReturnResult SCGetObjectValue(CmdSet&); DefReturnResult SCGetObjectValue(CmdSet&);
DefReturnResult SCGetRace(CmdSet&); DefReturnResult SCGetRace(CmdSet&);
DefReturnResult SCGetClass(CmdSet&); DefReturnResult SCGetClass(CmdSet&);
DefReturnResult SCSendWorldPacket(CmdSet&);
#endif #endif