Browse Source

SetSpeedMultiplier modified to act as a fraction of 100

Fix #57
- SetSpeedMultiplier is already used in Spells for snare, but never worked correctly.
Image 4 years ago
parent
commit
a4ff0e539f

+ 5 - 1
EQ2/source/WorldServer/LuaFunctions.cpp

@@ -7136,7 +7136,7 @@ int EQ2Emu_lua_GetItemSkillReq(lua_State* state) {
 	return 1;
 }
 
-int EQ2Emu_lua_SetSpeeedMultiplier(lua_State* state) {
+int EQ2Emu_lua_SetSpeedMultiplier(lua_State* state) {
 	if (!lua_interface)
 		return 0;
 
@@ -7147,6 +7147,10 @@ int EQ2Emu_lua_SetSpeeedMultiplier(lua_State* state) {
 	if (spell && spell->resisted)
 		return 0;
 
+	// if its a percentage of 100 its a slow, we want to go at a fraction of the speed
+	if (val > 1.0f)
+		val = 1.0f - (val / 100.0f);
+
 	if (spell && spell->spell && spell->targets.size() > 0) {
 		ZoneServer* zone = spell->caster->GetZone();
 		for (int32 i = 0; i != spell->targets.size(); i++) {

+ 1 - 1
EQ2/source/WorldServer/LuaFunctions.h

@@ -346,7 +346,7 @@ int EQ2Emu_lua_BreatheUnderwater(lua_State* state);
 int EQ2Emu_lua_BlurVision(lua_State* state);
 int EQ2Emu_lua_SetVision(lua_State* state);
 int EQ2Emu_lua_GetItemSkillReq(lua_State* state);
-int EQ2Emu_lua_SetSpeeedMultiplier(lua_State* state);
+int EQ2Emu_lua_SetSpeedMultiplier(lua_State* state);
 int EQ2Emu_lua_SetIllusion(lua_State* state);
 int EQ2Emu_lua_ResetIllusion(lua_State* state);
 int EQ2Emu_lua_AddThreatTransfer(lua_State* state);

+ 1 - 1
EQ2/source/WorldServer/LuaInterface.cpp

@@ -948,7 +948,7 @@ void LuaInterface::RegisterFunctions(lua_State* state) {
 	lua_register(state, "BlurVision", EQ2Emu_lua_BlurVision);
 	lua_register(state, "SetVision", EQ2Emu_lua_SetVision);
 	lua_register(state, "GetItemSkillReq", EQ2Emu_lua_GetItemSkillReq);
-	lua_register(state, "SetSpeedMultiplier", EQ2Emu_lua_SetSpeeedMultiplier);
+	lua_register(state, "SetSpeedMultiplier", EQ2Emu_lua_SetSpeedMultiplier);
 	lua_register(state, "SetIllusion", EQ2Emu_lua_SetIllusion);
 	lua_register(state, "ResetIllusion", EQ2Emu_lua_ResetIllusion);
 	lua_register(state, "AddThreatTransfer", EQ2Emu_lua_AddThreatTransfer);