Browse Source

MakeRandomInt(min,max) and MakeRandomFloat(min,max) for LUA

Fix #266 - MakeRandomInt and MakeRandomFloat support
Image 3 years ago
parent
commit
742336a4c1

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

@@ -11772,4 +11772,26 @@ int EQ2Emu_lua_IsOpen(lua_State* state) {
 		return 1;
 	}
 	return 0;
+}
+
+int EQ2Emu_lua_MakeRandomInt(lua_State* state) {
+	if (!lua_interface)
+		return 0;
+
+	sint32 min = lua_interface->GetSInt32Value(state);
+	sint32 max = lua_interface->GetSInt32Value(state, 2);
+	sint32 result = MakeRandomInt(min, max);
+	lua_interface->SetSInt32Value(state, result);
+	return 1;
+}
+
+int EQ2Emu_lua_MakeRandomFloat(lua_State* state) {
+	if (!lua_interface)
+		return 0;
+
+	float min = lua_interface->GetFloatValue(state);
+	float max = lua_interface->GetFloatValue(state, 2);
+	float result = MakeRandomFloat(min, max);
+	lua_interface->SetFloatValue(state, result);
+	return 1;
 }

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

@@ -556,4 +556,7 @@ int EQ2Emu_lua_AddPlayerMailByCharID(lua_State* state);
 int EQ2Emu_lua_OpenDoor(lua_State* state);
 int EQ2Emu_lua_CloseDoor(lua_State* state);
 int EQ2Emu_lua_IsOpen(lua_State* state);
+
+int EQ2Emu_lua_MakeRandomInt(lua_State* state);
+int EQ2Emu_lua_MakeRandomFloat(lua_State* state);
 #endif

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

@@ -1270,6 +1270,9 @@ void LuaInterface::RegisterFunctions(lua_State* state) {
 	lua_register(state, "OpenDoor", EQ2Emu_lua_OpenDoor);
 	lua_register(state, "CloseDoor", EQ2Emu_lua_CloseDoor);
 	lua_register(state, "IsOpen", EQ2Emu_lua_IsOpen);
+	
+	lua_register(state, "MakeRandomInt", EQ2Emu_lua_MakeRandomInt);
+	lua_register(state, "MakeRandomFloat", EQ2Emu_lua_MakeRandomFloat);
 }
 
 void LuaInterface::LogError(const char* error, ...)  {