/* EQEmu: EQEmulator
Copyright (C) 2001-2026 EQEmu Development Team
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see .
*/
#ifdef LUA_EQEMU
#include "lua_packet.h"
#include "zone/masterentity.h"
#include "luabind/luabind.hpp"
#include "luabind/object.hpp"
struct Opcodes { };
Lua_Packet::Lua_Packet(int opcode, int size) {
SetLuaPtrData(new EQApplicationPacket(static_cast(opcode), size));
owned_ = true;
}
Lua_Packet::Lua_Packet(int opcode, int size, bool raw) {
if(raw) {
SetLuaPtrData(new EQApplicationPacket(OP_Unknown, size));
owned_ = true;
EQApplicationPacket *self = reinterpret_cast(d_);
self->SetOpcodeBypass(opcode);
} else {
SetLuaPtrData(new EQApplicationPacket(static_cast(opcode), size));
owned_ = true;
}
}
Lua_Packet& Lua_Packet::operator=(const Lua_Packet& o) {
if(o.owned_) {
owned_ = true;
EQApplicationPacket *app = reinterpret_cast(o.d_);
if(app) {
d_ = new EQApplicationPacket(app->GetOpcode(), app->pBuffer, app->size);
EQApplicationPacket *self = reinterpret_cast(d_);
self->SetOpcodeBypass(app->GetOpcodeBypass());
} else {
d_ = nullptr;
}
} else {
owned_ = false;
d_ = o.d_;
}
return *this;
}
Lua_Packet::Lua_Packet(const Lua_Packet& o) {
if(o.owned_) {
owned_ = true;
EQApplicationPacket *app = reinterpret_cast(o.d_);
if(app) {
d_ = new EQApplicationPacket(app->GetOpcode(), app->pBuffer, app->size);
EQApplicationPacket *self = reinterpret_cast(d_);
self->SetOpcodeBypass(app->GetOpcodeBypass());
} else {
d_ = nullptr;
}
} else {
owned_ = false;
d_ = o.d_;
}
}
int Lua_Packet::GetSize() {
Lua_Safe_Call_Int();
return static_cast(self->size);
}
int Lua_Packet::GetOpcode() {
Lua_Safe_Call_Int();
return static_cast(self->GetOpcode());
}
void Lua_Packet::SetOpcode(int op) {
Lua_Safe_Call_Void();
self->SetOpcodeBypass(static_cast(op));
}
int Lua_Packet::GetRawOpcode() {
Lua_Safe_Call_Int();
return static_cast(self->GetOpcodeBypass());
}
int Lua_Packet::GetProtocolOpcode() {
Lua_Safe_Call_Int();
return static_cast(self->GetProtocolOpcode());
}
void Lua_Packet::SetRawOpcode(int op) {
Lua_Safe_Call_Void();
self->SetOpcode(static_cast(op));
}
int Lua_Packet::GetWritePosition() {
Lua_Safe_Call_Int();
return self->GetWritePosition();
}
void Lua_Packet::SetWritePosition(int offset) {
Lua_Safe_Call_Void();
self->SetWritePosition(offset);
}
void Lua_Packet::WriteInt8(int value) {
Lua_Safe_Call_Void();
self->WriteUInt8(static_cast(value));
}
void Lua_Packet::WriteInt8(int offset, int value) {
Lua_Safe_Call_Void();
if(offset + sizeof(int8) <= self->size) {
*reinterpret_cast(self->pBuffer + offset) = value;
}
}
void Lua_Packet::WriteInt16(int value) {
Lua_Safe_Call_Void();
self->WriteUInt16(static_cast(value));
}
void Lua_Packet::WriteInt16(int offset, int value) {
Lua_Safe_Call_Void();
if(offset + sizeof(int16) <= self->size) {
*reinterpret_cast(self->pBuffer + offset) = value;
}
}
void Lua_Packet::WriteInt32(int value) {
Lua_Safe_Call_Void();
self->WriteUInt32(static_cast(value));
}
void Lua_Packet::WriteInt32(int offset, int value) {
Lua_Safe_Call_Void();
if(offset + sizeof(int32) <= self->size) {
*reinterpret_cast(self->pBuffer + offset) = value;
}
}
void Lua_Packet::WriteInt64(int64 value) {
Lua_Safe_Call_Void();
self->WriteUInt64(static_cast(value));
}
void Lua_Packet::WriteInt64(int offset, int64 value) {
Lua_Safe_Call_Void();
if(offset + sizeof(int64) <= self->size) {
*reinterpret_cast(self->pBuffer + offset) = value;
}
}
void Lua_Packet::WriteFloat(float value) {
Lua_Safe_Call_Void();
self->WriteFloat(value);
}
void Lua_Packet::WriteFloat(int offset, float value) {
Lua_Safe_Call_Void();
if(offset + sizeof(float) <= self->size) {
*reinterpret_cast(self->pBuffer + offset) = value;
}
}
void Lua_Packet::WriteDouble(double value) {
Lua_Safe_Call_Void();
self->WriteDouble(value);
}
void Lua_Packet::WriteDouble(int offset, double value) {
Lua_Safe_Call_Void();
if(offset + sizeof(double) <= self->size) {
*reinterpret_cast(self->pBuffer + offset) = value;
}
}
void Lua_Packet::WriteString(std::string value) {
Lua_Safe_Call_Void();
self->WriteString(value.c_str());
}
void Lua_Packet::WriteString(int offset, std::string value) {
Lua_Safe_Call_Void();
if(offset + value.length() + 1 <= self->size) {
memcpy(self->pBuffer + offset, value.c_str(), value.length());
*reinterpret_cast(self->pBuffer + offset + value.length()) = 0;
}
}
void Lua_Packet::WriteFixedLengthString(std::string value) {
Lua_Safe_Call_Void();
self->WriteLengthString(static_cast(value.size()), value.c_str());
}
void Lua_Packet::WriteFixedLengthString(int offset, std::string value, int string_length) {
Lua_Safe_Call_Void();
if(offset + string_length <= static_cast(self->size)) {
memset(self->pBuffer + offset, 0, string_length);
memcpy(self->pBuffer + offset, value.c_str(), value.length());
}
}
int Lua_Packet::ReadInt8(int offset) {
Lua_Safe_Call_Int();
if(offset + sizeof(int8) <= self->size) {
int8 v = *reinterpret_cast(self->pBuffer + offset);
return v;
}
return 0;
}
int Lua_Packet::ReadInt16(int offset) {
Lua_Safe_Call_Int();
if(offset + sizeof(int16) <= self->size) {
int16 v = *reinterpret_cast(self->pBuffer + offset);
return v;
}
return 0;
}
int Lua_Packet::ReadInt32(int offset) {
Lua_Safe_Call_Int();
if(offset + sizeof(int32) <= self->size) {
int32 v = *reinterpret_cast(self->pBuffer + offset);
return v;
}
return 0;
}
int64 Lua_Packet::ReadInt64(int offset) {
Lua_Safe_Call_Int();
if(offset + sizeof(int64) <= self->size) {
int64 v = *reinterpret_cast(self->pBuffer + offset);
return v;
}
return 0;
}
float Lua_Packet::ReadFloat(int offset) {
Lua_Safe_Call_Real();
if(offset + sizeof(float) <= self->size) {
float v = *reinterpret_cast(self->pBuffer + offset);
return v;
}
return 0;
}
double Lua_Packet::ReadDouble(int offset) {
Lua_Safe_Call_Real();
if(offset + sizeof(double) <= self->size) {
double v = *reinterpret_cast(self->pBuffer + offset);
return v;
}
return 0;
}
std::string Lua_Packet::ReadString(int offset) {
Lua_Safe_Call_String();
if(offset < static_cast(self->size)) {
std::string ret;
int i = offset;
for(;;) {
if(i >= static_cast(self->size)) {
break;
}
char c = *reinterpret_cast(self->pBuffer + i);
if(c == '\0') {
break;
}
ret.push_back(c);
++i;
}
return ret;
}
return "";
}
std::string Lua_Packet::ReadFixedLengthString(int offset, int string_length) {
Lua_Safe_Call_String();
if(offset + string_length <= static_cast(self->size)) {
std::string ret;
int i = offset;
for(;;) {
if(i >= offset + string_length) {
break;
}
char c = *reinterpret_cast(self->pBuffer + i);
ret.push_back(c);
++i;
}
return ret;
}
return "";
}
luabind::scope lua_register_packet() {
return luabind::class_("Packet")
.def(luabind::constructor<>())
.def(luabind::constructor())
.def(luabind::constructor())
.property("null", &Lua_Packet::Null)
.property("valid", &Lua_Packet::Valid)
.def("GetOpcode", &Lua_Packet::GetOpcode)
.def("GetRawOpcode", &Lua_Packet::GetRawOpcode)
.def("GetProtocolOpcode", &Lua_Packet::GetProtocolOpcode)
.def("GetSize", &Lua_Packet::GetSize)
.def("GetWritePosition", &Lua_Packet::GetWritePosition)
.def("ReadDouble", &Lua_Packet::ReadDouble)
.def("ReadFixedLengthString", &Lua_Packet::ReadFixedLengthString)
.def("ReadFloat", &Lua_Packet::ReadFloat)
.def("ReadInt16", &Lua_Packet::ReadInt16)
.def("ReadInt32", &Lua_Packet::ReadInt32)
.def("ReadInt64", &Lua_Packet::ReadInt64)
.def("ReadInt8", &Lua_Packet::ReadInt8)
.def("ReadString", &Lua_Packet::ReadString)
.def("SetOpcode", &Lua_Packet::SetOpcode)
.def("SetRawOpcode", &Lua_Packet::SetRawOpcode)
.def("SetWritePosition", &Lua_Packet::SetWritePosition)
.def("WriteDouble", (void(Lua_Packet::*)(double))&Lua_Packet::WriteDouble)
.def("WriteDouble", (void(Lua_Packet::*)(int, double))&Lua_Packet::WriteDouble)
.def("WriteFixedLengthString", (void(Lua_Packet::*)(int, std::string, int))&Lua_Packet::WriteFixedLengthString)
.def("WriteFixedLengthString", (void(Lua_Packet::*)(std::string))&Lua_Packet::WriteFixedLengthString)
.def("WriteFloat", (void(Lua_Packet::*)(float))&Lua_Packet::WriteFloat)
.def("WriteFloat", (void(Lua_Packet::*)(int, float))&Lua_Packet::WriteFloat)
.def("WriteInt16", (void(Lua_Packet::*)(int))&Lua_Packet::WriteInt16)
.def("WriteInt16", (void(Lua_Packet::*)(int, int))&Lua_Packet::WriteInt16)
.def("WriteInt32", (void(Lua_Packet::*)(int))&Lua_Packet::WriteInt32)
.def("WriteInt32", (void(Lua_Packet::*)(int, int))&Lua_Packet::WriteInt32)
.def("WriteInt64", (void(Lua_Packet::*)(int, int64))&Lua_Packet::WriteInt64)
.def("WriteInt64", (void(Lua_Packet::*)(int64))&Lua_Packet::WriteInt64)
.def("WriteInt8", (void(Lua_Packet::*)(int))&Lua_Packet::WriteInt8)
.def("WriteInt8", (void(Lua_Packet::*)(int, int))&Lua_Packet::WriteInt8)
.def("WriteString", (void(Lua_Packet::*)(int, std::string))&Lua_Packet::WriteString)
.def("WriteString", (void(Lua_Packet::*)(std::string))&Lua_Packet::WriteString);
}
//TODO: Reorder these to match emu_oplist.h again
luabind::scope lua_register_packet_opcodes() {
return luabind::class_("Opcode")
.enum_("constants")
[(
luabind::value("ExploreUnknown", static_cast(OP_ExploreUnknown)),
luabind::value("Heartbeat", static_cast(OP_Heartbeat)),
luabind::value("ReloadUI", static_cast(OP_ReloadUI)),
luabind::value("IncreaseStats", static_cast(OP_IncreaseStats)),
luabind::value("ApproveZone", static_cast(OP_ApproveZone)),
luabind::value("Dye", static_cast(OP_Dye)),
luabind::value("Stamina", static_cast(OP_Stamina)),
luabind::value("ControlBoat", static_cast(OP_ControlBoat)),
luabind::value("MobUpdate", static_cast(OP_MobUpdate)),
luabind::value("ClientUpdate", static_cast(OP_ClientUpdate)),
luabind::value("ChannelMessage", static_cast(OP_ChannelMessage)),
luabind::value("SimpleMessage", static_cast(OP_SimpleMessage)),
luabind::value("FormattedMessage", static_cast(OP_FormattedMessage)),
luabind::value("TGB", static_cast(OP_TGB)),
luabind::value("Bind_Wound", static_cast(OP_Bind_Wound)),
luabind::value("Charm", static_cast(OP_Charm)),
luabind::value("Begging", static_cast(OP_Begging)),
luabind::value("MoveCoin", static_cast(OP_MoveCoin)),
luabind::value("SpawnDoor", static_cast(OP_SpawnDoor)),
luabind::value("Sneak", static_cast(OP_Sneak)),
luabind::value("ExpUpdate", static_cast(OP_ExpUpdate)),
luabind::value("DumpName", static_cast(OP_DumpName)),
luabind::value("RespondAA", static_cast(OP_RespondAA)),
luabind::value("UpdateAA", static_cast(OP_UpdateAA)),
luabind::value("SendAAStats", static_cast(OP_SendAAStats)),
luabind::value("SendAATable", static_cast(OP_SendAATable)),
luabind::value("AAAction", static_cast(OP_AAAction)),
luabind::value("BoardBoat", static_cast(OP_BoardBoat)),
luabind::value("LeaveBoat", static_cast(OP_LeaveBoat)),
luabind::value("AdventureInfoRequest", static_cast(OP_AdventureInfoRequest)),
luabind::value("AdventureInfo", static_cast(OP_AdventureInfo)),
luabind::value("AdventureRequest", static_cast(OP_AdventureRequest)),
luabind::value("AdventureDetails", static_cast(OP_AdventureDetails)),
luabind::value("LDoNButton", static_cast(OP_LDoNButton)),
luabind::value("AdventureData", static_cast(OP_AdventureData)),
luabind::value("AdventureFinish", static_cast(OP_AdventureFinish)),
luabind::value("LeaveAdventure", static_cast(OP_LeaveAdventure)),
luabind::value("AdventureUpdate", static_cast(OP_AdventureUpdate)),
luabind::value("SendExpZonein", static_cast(OP_SendExpZonein)),
luabind::value("RaidUpdate", static_cast(OP_RaidUpdate)),
luabind::value("GuildLeader", static_cast(OP_GuildLeader)),
luabind::value("GuildPeace", static_cast(OP_GuildPeace)),
luabind::value("GuildRemove", static_cast(OP_GuildRemove)),
luabind::value("GuildMemberList", static_cast(OP_GuildMemberList)),
luabind::value("GuildMemberUpdate", static_cast(OP_GuildMemberUpdate)),
luabind::value("GuildMemberLevelUpdate", static_cast(OP_GuildMemberLevelUpdate)),
luabind::value("GuildInvite", static_cast(OP_GuildInvite)),
luabind::value("GuildMOTD", static_cast(OP_GuildMOTD)),
luabind::value("SetGuildMOTD", static_cast(OP_SetGuildMOTD)),
luabind::value("GuildPublicNote", static_cast(OP_GuildPublicNote)),
luabind::value("GetGuildsList", static_cast(OP_GetGuildsList)),
luabind::value("GuildDemote", static_cast(OP_GuildDemote)),
luabind::value("GuildInviteAccept", static_cast(OP_GuildInviteAccept)),
luabind::value("GuildWar", static_cast(OP_GuildWar)),
luabind::value("GuildDelete", static_cast(OP_GuildDelete)),
luabind::value("GuildManageRemove", static_cast(OP_GuildManageRemove)),
luabind::value("GuildManageAdd", static_cast(OP_GuildManageAdd)),
luabind::value("GuildManageStatus", static_cast(OP_GuildManageStatus)),
luabind::value("GuildManageBanker", static_cast(OP_GuildManageBanker)),
luabind::value("GetGuildMOTD", static_cast(OP_GetGuildMOTD)),
luabind::value("Trader", static_cast(OP_Trader)),
luabind::value("Bazaar", static_cast(OP_Bazaar)),
luabind::value("BecomeTrader", static_cast(OP_BecomeTrader)),
luabind::value("TraderItemUpdate", static_cast(OP_TraderItemUpdate)),
luabind::value("TraderShop", static_cast(OP_TraderShop)),
luabind::value("TraderBuy", static_cast(OP_TraderBuy)),
luabind::value("PetCommands", static_cast(OP_PetCommands)),
luabind::value("TradeSkillCombine", static_cast(OP_TradeSkillCombine)),
luabind::value("AugmentItem", static_cast(OP_AugmentItem)),
luabind::value("ItemName", static_cast(OP_ItemName)),
luabind::value("ShopItem", static_cast(OP_ShopItem)),
luabind::value("ShopPlayerBuy", static_cast(OP_ShopPlayerBuy)),
luabind::value("ShopPlayerSell", static_cast(OP_ShopPlayerSell)),
luabind::value("ShopDelItem", static_cast(OP_ShopDelItem)),
luabind::value("ShopRequest", static_cast(OP_ShopRequest)),
luabind::value("ShopEnd", static_cast(OP_ShopEnd)),
luabind::value("LFGCommand", static_cast(OP_LFGCommand)),
luabind::value("LFGAppearance", static_cast(OP_LFGAppearance)),
luabind::value("GroupUpdate", static_cast(OP_GroupUpdate)),
luabind::value("GroupInvite", static_cast(OP_GroupInvite)),
luabind::value("GroupDisband", static_cast(OP_GroupDisband)),
luabind::value("GroupInvite2", static_cast(OP_GroupInvite2)),
luabind::value("GroupFollow", static_cast(OP_GroupFollow)),
luabind::value("GroupFollow2", static_cast(OP_GroupFollow2)),
luabind::value("GroupCancelInvite", static_cast(OP_GroupCancelInvite)),
luabind::value("CustomTitles", static_cast(OP_CustomTitles)),
luabind::value("Split", static_cast(OP_Split)),
luabind::value("Jump", static_cast(OP_Jump)),
luabind::value("ConsiderCorpse", static_cast(OP_ConsiderCorpse)),
luabind::value("SkillUpdate", static_cast(OP_SkillUpdate)),
luabind::value("GMEndTrainingResponse", static_cast(OP_GMEndTrainingResponse)),
luabind::value("GMEndTraining", static_cast(OP_GMEndTraining)),
luabind::value("GMTrainSkill", static_cast(OP_GMTrainSkill)),
luabind::value("GMTraining", static_cast(OP_GMTraining)),
luabind::value("DeleteItem", static_cast(OP_DeleteItem)),
luabind::value("CombatAbility", static_cast(OP_CombatAbility)),
luabind::value("TrackUnknown", static_cast(OP_TrackUnknown)),
luabind::value("TrackTarget", static_cast(OP_TrackTarget)),
luabind::value("Track", static_cast(OP_Track)),
luabind::value("ItemLinkClick", static_cast(OP_ItemLinkClick)),
luabind::value("ItemLinkResponse", static_cast(OP_ItemLinkResponse)),
luabind::value("ItemLinkText", static_cast(OP_ItemLinkText)),
luabind::value("RezzAnswer", static_cast(OP_RezzAnswer)),
luabind::value("RezzComplete", static_cast(OP_RezzComplete)),
luabind::value("SendZonepoints", static_cast(OP_SendZonepoints)),
luabind::value("SetRunMode", static_cast(OP_SetRunMode)),
luabind::value("InspectRequest", static_cast(OP_InspectRequest)),
luabind::value("InspectAnswer", static_cast(OP_InspectAnswer)),
luabind::value("SenseTraps", static_cast(OP_SenseTraps)),
luabind::value("DisarmTraps", static_cast(OP_DisarmTraps)),
luabind::value("Assist", static_cast(OP_Assist)),
luabind::value("AssistGroup", static_cast(OP_AssistGroup)),
luabind::value("PickPocket", static_cast(OP_PickPocket)),
luabind::value("LootRequest", static_cast(OP_LootRequest)),
luabind::value("EndLootRequest", static_cast(OP_EndLootRequest)),
luabind::value("MoneyOnCorpse", static_cast(OP_MoneyOnCorpse)),
luabind::value("LootComplete", static_cast(OP_LootComplete)),
luabind::value("LootItem", static_cast(OP_LootItem)),
luabind::value("MoveItem", static_cast(OP_MoveItem)),
luabind::value("WhoAllRequest", static_cast(OP_WhoAllRequest)),
luabind::value("WhoAllResponse", static_cast(OP_WhoAllResponse)),
luabind::value("Consume", static_cast(OP_Consume)),
luabind::value("AutoAttack", static_cast(OP_AutoAttack)),
luabind::value("AutoAttack2", static_cast(OP_AutoAttack2)),
luabind::value("TargetMouse", static_cast(OP_TargetMouse)),
luabind::value("TargetCommand", static_cast(OP_TargetCommand)),
luabind::value("TargetReject", static_cast(OP_TargetReject)),
luabind::value("TargetHoTT", static_cast(OP_TargetHoTT)),
luabind::value("Hide", static_cast(OP_Hide)),
luabind::value("Forage", static_cast(OP_Forage)),
luabind::value("Fishing", static_cast(OP_Fishing)),
luabind::value("Bug", static_cast(OP_Bug)),
luabind::value("Emote", static_cast(OP_Emote)),
luabind::value("Consider", static_cast(OP_Consider)),
luabind::value("FaceChange", static_cast(OP_FaceChange)),
luabind::value("RandomReq", static_cast(OP_RandomReq)),
luabind::value("RandomReply", static_cast(OP_RandomReply)),
luabind::value("Camp", static_cast(OP_Camp)),
luabind::value("YellForHelp", static_cast(OP_YellForHelp)),
luabind::value("SafePoint", static_cast(OP_SafePoint)),
luabind::value("Buff", static_cast(OP_Buff)),
luabind::value("ColoredText", static_cast(OP_ColoredText)),
luabind::value("SpecialMesg", static_cast(OP_SpecialMesg)),
luabind::value("Consent", static_cast(OP_Consent)),
luabind::value("ConsentResponse", static_cast(OP_ConsentResponse)),
luabind::value("Stun", static_cast(OP_Stun)),
luabind::value("BeginCast", static_cast(OP_BeginCast)),
luabind::value("CastSpell", static_cast(OP_CastSpell)),
luabind::value("InterruptCast", static_cast(OP_InterruptCast)),
luabind::value("Death", static_cast(OP_Death)),
luabind::value("FeignDeath", static_cast(OP_FeignDeath)),
luabind::value("Illusion", static_cast(OP_Illusion)),
luabind::value("LevelUpdate", static_cast(OP_LevelUpdate)),
luabind::value("LevelAppearance", static_cast(OP_LevelAppearance)),
luabind::value("MemorizeSpell", static_cast(OP_MemorizeSpell)),
luabind::value("HPUpdate", static_cast(OP_HPUpdate)),
luabind::value("Mend", static_cast(OP_Mend)),
luabind::value("Taunt", static_cast(OP_Taunt)),
luabind::value("GMDelCorpse", static_cast(OP_GMDelCorpse)),
luabind::value("GMFind", static_cast(OP_GMFind)),
luabind::value("GMServers", static_cast(OP_GMServers)),
luabind::value("GMGoto", static_cast(OP_GMGoto)),
luabind::value("GMSummon", static_cast(OP_GMSummon)),
luabind::value("GMKill", static_cast(OP_GMKill)),
luabind::value("GMLastName", static_cast(OP_GMLastName)),
luabind::value("GMToggle", static_cast(OP_GMToggle)),
luabind::value("GMEmoteZone", static_cast(OP_GMEmoteZone)),
luabind::value("GMBecomeNPC", static_cast(OP_GMBecomeNPC)),
luabind::value("GMHideMe", static_cast(OP_GMHideMe)),
luabind::value("GMZoneRequest", static_cast(OP_GMZoneRequest)),
luabind::value("GMZoneRequest2", static_cast(OP_GMZoneRequest2)),
luabind::value("Petition", static_cast(OP_Petition)),
luabind::value("PetitionRefresh", static_cast(OP_PetitionRefresh)),
luabind::value("PDeletePetition", static_cast(OP_PDeletePetition)),
luabind::value("PetitionBug", static_cast(OP_PetitionBug)),
luabind::value("PetitionUpdate", static_cast(OP_PetitionUpdate)),
luabind::value("PetitionCheckout", static_cast(OP_PetitionCheckout)),
luabind::value("PetitionCheckout2", static_cast(OP_PetitionCheckout2)),
luabind::value("PetitionDelete", static_cast(OP_PetitionDelete)),
luabind::value("PetitionResolve", static_cast(OP_PetitionResolve)),
luabind::value("PetitionCheckIn", static_cast(OP_PetitionCheckIn)),
luabind::value("PetitionUnCheckout", static_cast(OP_PetitionUnCheckout)),
luabind::value("PetitionQue", static_cast(OP_PetitionQue)),
luabind::value("SetServerFilter", static_cast(OP_SetServerFilter)),
luabind::value("NewSpawn", static_cast(OP_NewSpawn)),
luabind::value("Animation", static_cast(OP_Animation)),
luabind::value("ZoneChange", static_cast(OP_ZoneChange)),
luabind::value("DeleteSpawn", static_cast(OP_DeleteSpawn)),
luabind::value("EnvDamage", static_cast(OP_EnvDamage)),
luabind::value("Action", static_cast(OP_Action)),
luabind::value("Damage", static_cast(OP_Damage)),
luabind::value("ManaChange", static_cast(OP_ManaChange)),
luabind::value("ClientError", static_cast(OP_ClientError)),
luabind::value("Save", static_cast(OP_Save)),
luabind::value("LocInfo", static_cast(OP_LocInfo)),
luabind::value("Surname", static_cast(OP_Surname)),
luabind::value("ClearSurname", static_cast(OP_ClearSurname)),
luabind::value("SwapSpell", static_cast(OP_SwapSpell)),
luabind::value("DeleteSpell", static_cast(OP_DeleteSpell)),
luabind::value("CloseContainer", static_cast(OP_CloseContainer)),
luabind::value("ClickObjectAction", static_cast(OP_ClickObjectAction)),
luabind::value("GroundSpawn", static_cast(OP_GroundSpawn)),
luabind::value("ClearObject", static_cast(OP_ClearObject)),
luabind::value("ZoneUnavail", static_cast(OP_ZoneUnavail)),
luabind::value("ItemPacket", static_cast(OP_ItemPacket)),
luabind::value("TradeRequest", static_cast(OP_TradeRequest)),
luabind::value("TradeRequestAck", static_cast(OP_TradeRequestAck)),
luabind::value("TradeAcceptClick", static_cast(OP_TradeAcceptClick)),
luabind::value("TradeMoneyUpdate", static_cast(OP_TradeMoneyUpdate)),
luabind::value("TradeCoins", static_cast(OP_TradeCoins)),
luabind::value("CancelTrade", static_cast(OP_CancelTrade)),
luabind::value("FinishTrade", static_cast(OP_FinishTrade)),
luabind::value("SaveOnZoneReq", static_cast(OP_SaveOnZoneReq)),
luabind::value("Logout", static_cast