diff --git a/MTA10/mods/deathmatch/logic/CStaticFunctionDefinitions.cpp b/MTA10/mods/deathmatch/logic/CStaticFunctionDefinitions.cpp index a23b8842f3..a5ea000f04 100644 --- a/MTA10/mods/deathmatch/logic/CStaticFunctionDefinitions.cpp +++ b/MTA10/mods/deathmatch/logic/CStaticFunctionDefinitions.cpp @@ -1738,13 +1738,13 @@ bool CStaticFunctionDefinitions::SetPedDoingGangDriveby ( CClientEntity & Entity } -bool CStaticFunctionDefinitions::SetPedLookAt ( CClientEntity & Entity, CVector & vecPosition, int iTime, CClientEntity * pTarget ) +bool CStaticFunctionDefinitions::SetPedLookAt ( CClientEntity & Entity, CVector & vecPosition, int iTime, int iBlend, CClientEntity * pTarget ) { - RUN_CHILDREN SetPedLookAt ( **iter, vecPosition, iTime, pTarget ); + RUN_CHILDREN SetPedLookAt ( **iter, vecPosition, iTime, iBlend, pTarget ); if ( IS_PED ( &Entity ) ) { CClientPed& Ped = static_cast < CClientPed& > ( Entity ); - Ped.LookAt ( vecPosition, iTime, pTarget ); + Ped.LookAt ( vecPosition, iTime, iBlend, pTarget ); return true; } return false; diff --git a/MTA10/mods/deathmatch/logic/CStaticFunctionDefinitions.h b/MTA10/mods/deathmatch/logic/CStaticFunctionDefinitions.h index d10162b570..ee4f1f20bc 100644 --- a/MTA10/mods/deathmatch/logic/CStaticFunctionDefinitions.h +++ b/MTA10/mods/deathmatch/logic/CStaticFunctionDefinitions.h @@ -142,7 +142,7 @@ class CStaticFunctionDefinitions static bool RemovePedClothes ( CClientEntity& Entity, unsigned char ucType ); static bool SetPedControlState ( CClientEntity& Entity, const char* szControl, bool bState ); static bool SetPedDoingGangDriveby ( CClientEntity& Entity, bool bGangDriveby ); - static bool SetPedLookAt ( CClientEntity& Entity, CVector & vecPosition, int iTime, CClientEntity * pTarget ); + static bool SetPedLookAt ( CClientEntity& Entity, CVector & vecPosition, int iTime, int iBlend, CClientEntity * pTarget ); static bool SetPedHeadless ( CClientEntity& Entity, bool bHeadless ); static bool SetPedFrozen ( CClientEntity& Entity, bool bFrozen ); static bool SetPedCameraRotation ( CClientEntity& Entity, float fRotation ); diff --git a/MTA10/mods/shared_logic/CClientPed.cpp b/MTA10/mods/shared_logic/CClientPed.cpp index 1f77a06b64..46d433cb3a 100644 --- a/MTA10/mods/shared_logic/CClientPed.cpp +++ b/MTA10/mods/shared_logic/CClientPed.cpp @@ -4563,13 +4563,13 @@ void CClientPed::SetSunbathing ( bool bSunbathing, bool bStartStanding ) } -bool CClientPed::LookAt ( CVector vecOffset, int iTime, CClientEntity * pEntity ) +bool CClientPed::LookAt ( CVector vecOffset, int iTime, int iBlend, CClientEntity * pEntity ) { if ( m_pPlayerPed ) { CEntity * pGameEntity = NULL; if ( pEntity ) pGameEntity = pEntity->GetGameEntity (); - CTaskSimpleTriggerLookAt * pTask = g_pGame->GetTasks ()->CreateTaskSimpleTriggerLookAt ( pGameEntity, iTime, 0, vecOffset ); + CTaskSimpleTriggerLookAt * pTask = g_pGame->GetTasks ()->CreateTaskSimpleTriggerLookAt ( pGameEntity, iTime, 0, vecOffset, false, 0.250000, iBlend ); if ( pTask ) { pTask->SetAsSecondaryPedTask ( m_pPlayerPed, TASK_SECONDARY_PARTIAL_ANIM ); diff --git a/MTA10/mods/shared_logic/CClientPed.h b/MTA10/mods/shared_logic/CClientPed.h index 0f853b3cc0..27de72ac39 100644 --- a/MTA10/mods/shared_logic/CClientPed.h +++ b/MTA10/mods/shared_logic/CClientPed.h @@ -345,7 +345,7 @@ class CClientPed : public CClientStreamElement, public CAntiCheatModule bool IsSunbathing ( void ); void SetSunbathing ( bool bSunbathing, bool bStartStanding = true ); - bool LookAt ( CVector vecOffset, int iTime = 1000, CClientEntity * pEntity = NULL ); + bool LookAt ( CVector vecOffset, int iTime = 1000, int iBlend = 1000, CClientEntity * pEntity = NULL ); bool UseGun ( CVector vecTarget, CClientEntity * pEntity ); bool IsAttachToable ( void ); diff --git a/MTA10/mods/shared_logic/lua/CLuaFunctionDefs.Ped.cpp b/MTA10/mods/shared_logic/lua/CLuaFunctionDefs.Ped.cpp index 5b0d5014eb..e4f9dc2a29 100644 --- a/MTA10/mods/shared_logic/lua/CLuaFunctionDefs.Ped.cpp +++ b/MTA10/mods/shared_logic/lua/CLuaFunctionDefs.Ped.cpp @@ -1271,20 +1271,23 @@ int CLuaFunctionDefs::SetPedLookAt ( lua_State* luaVM ) vecPosition.fY = static_cast < float > ( lua_tonumber ( luaVM, 3 ) ); vecPosition.fZ = static_cast < float > ( lua_tonumber ( luaVM, 4 ) ); int iTime = 3000; - CClientEntity * pTarget = NULL; + int iBlend = 1000; + CClientEntity * pTarget = NULL; int iArgument5 = lua_type ( luaVM, 5 ); + int iArgument6 = lua_type ( luaVM, 6 ); if ( iArgument5 == LUA_TNUMBER || iArgument5 == LUA_TSTRING ) { iTime = static_cast < int > ( lua_tonumber ( luaVM, 5 ) ); + iBlend = static_cast < int > ( lua_tonumber ( luaVM, 6 ) ); - if ( lua_type ( luaVM, 6 ) == LUA_TLIGHTUSERDATA ) - pTarget = lua_toelement ( luaVM, 6 ); + if ( lua_type ( luaVM, 7 ) == LUA_TLIGHTUSERDATA ) + pTarget = lua_toelement ( luaVM, 7 ); } if ( pEntity ) { - if ( CStaticFunctionDefinitions::SetPedLookAt ( *pEntity, vecPosition, iTime, pTarget ) ) + if ( CStaticFunctionDefinitions::SetPedLookAt ( *pEntity, vecPosition, iTime, iBlend, pTarget ) ) { lua_pushboolean ( luaVM, true ); return 1;