Browse Source

LUA SetFactionID and GetFactionID support for Spawn

Partially addresses issue #107
Image 4 years ago
parent
commit
9134eadf80

+ 20 - 0
EQ2/source/WorldServer/LuaFunctions.cpp

@@ -373,6 +373,26 @@ int EQ2Emu_lua_GetFactionAmount(lua_State* state) {
 	return 0;
 }
 
+int EQ2Emu_lua_SetFactionID(lua_State* state) {
+	if (!lua_interface)
+		return 0;
+	Spawn* spawn = lua_interface->GetSpawn(state);
+	int32 value = lua_interface->GetInt32Value(state, 2);
+	if (spawn) {
+		spawn->SetFactionID(value);
+	}
+	return 0;
+}
+
+int EQ2Emu_lua_GetFactionID(lua_State* state) {
+	Spawn* spawn = lua_interface->GetSpawn(state);
+	if (spawn) {
+		lua_interface->SetInt32Value(state, spawn->GetFactionID());
+		return 1;
+	}
+	return 0;
+}
+
 int EQ2Emu_lua_GetGender(lua_State* state) {
 	Spawn* spawn = lua_interface->GetSpawn(state);
 	if (spawn) {

+ 2 - 0
EQ2/source/WorldServer/LuaFunctions.h

@@ -100,6 +100,8 @@ int EQ2Emu_lua_GetSpawnGroupID(lua_State* state);
 int EQ2Emu_lua_GetSpawnLocationID(lua_State* state);
 int EQ2Emu_lua_GetSpawnLocationPlacementID(lua_State* state);
 int EQ2Emu_lua_GetFactionAmount(lua_State* state);
+int EQ2Emu_lua_SetFactionID(lua_State* state);
+int EQ2Emu_lua_GetFactionID(lua_State* state);
 int EQ2Emu_lua_GetGender(lua_State* state);
 int EQ2Emu_lua_GetTarget(lua_State* state);
 int EQ2Emu_lua_HasFreeSlot(lua_State* state);

+ 2 - 0
EQ2/source/WorldServer/LuaInterface.cpp

@@ -674,6 +674,8 @@ void LuaInterface::RegisterFunctions(lua_State* state) {
 	lua_register(state, "GetSpawnGroupID", EQ2Emu_lua_GetSpawnGroupID);
 	lua_register(state, "GetSpawnLocationID", EQ2Emu_lua_GetSpawnLocationID);
 	lua_register(state, "GetSpawnLocationPlacementID", EQ2Emu_lua_GetSpawnLocationPlacementID);
+	lua_register(state, "SetFactionID", EQ2Emu_lua_SetFactionID);
+	lua_register(state, "GetFactionID", EQ2Emu_lua_GetFactionID);
 	lua_register(state, "GetFactionAmount", EQ2Emu_lua_GetFactionAmount);
 	lua_register(state, "GetGender", EQ2Emu_lua_GetGender);
 	lua_register(state, "GetTarget", EQ2Emu_lua_GetTarget);