Skip to content

Instantly share code, notes, and snippets.

@throwarray
Last active January 20, 2022 17:39
Show Gist options
  • Save throwarray/aadc1c602ec9beae010f8ba2bbf6c599 to your computer and use it in GitHub Desktop.
Save throwarray/aadc1c602ec9beae010f8ba2bbf6c599 to your computer and use it in GitHub Desktop.
function LoadAnimationDictionary(animationD)
RequestAnimDict(animationD)
while not HasAnimDictLoaded(animationD) do
Citizen.Wait(1)
end
end
function RequestTextureDictionary (dict)
RequestStreamedTextureDict(dict)
while not HasStreamedTextureDictLoaded(dict) do Citizen.Wait(0) end
return dict
end
function LoadModel (model)
RequestModel(model)
while not HasModelLoaded(model) do
Citizen.Wait(1)
end
end
--------------------------------------------------------------------------------
function Shovel ()
local shovelModel = GetHashKey("prop_ld_shovel")
local animDict = "random@burial"
LoadAnimationDictionary(animDict)
LoadModel(shovelModel)
local playerPed = PlayerPedId()
local sceneCoords = GetOffsetFromEntityInWorldCoords(playerPed, 0.0, 0.0, -1.0)
local sceneRot = GetEntityRotation(playerPed, 2)
local shovel = CreateObject(shovelModel, GetEntityCoords(playerPed), true, false, false)
SetNetworkIdCanMigrate(NetworkGetNetworkIdFromEntity(shovel), false)
SetCurrentPedWeapon(playerPed, GetHashKey("weapon_unarmed"), true)
TaskPlayAnim(playerPed, "random@burial", "a_burial", 8.0, -4.0, -1, 1, 0, 0, 0, 0);
--TaskPlayAnim(playerPed, "random@burial", "c_burial", 8.0, -4.0, -1, 1, 0, 0, 0, 0);
AttachEntityToEntity(shovel, playerPed, GetPedBoneIndex(playerPed, 28422), 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0, 0, 0, 0, 2, 1)
SetBlockingOfNonTemporaryEvents(playerPed, 0)
Wait(5000)
function DropShovel (playerPed, shovel, done)
Citizen.CreateThread(function ()
TaskPlayAnim(playerPed, "random@burial", "a_burial_stop", 8.0, -4.0, 2000, 0, 0, 0, 0, 0)
while GetEntityAnimCurrentTime(playerPed, "random@burial", "a_burial_stop") < 0.355 do
Wait(0)
end
DetachEntity(shovel)
if done then
done(shovel)
end
end)
end
DropShovel(playerPed, shovel)
SetEntityDynamic(shovel, 0)
--DeleteEntity(shovel)
end
function GiveWallet (ped)
local walletModel = GetHashKey("prop_ld_wallet_pickup")
local animDict = "RANDOM@ATMROBBERY4"
LoadAnimationDictionary(animDict)
LoadModel(walletModel)
local playerPed = PlayerPedId()
local wallet = CreateObject(walletModel, GetEntityCoords(PlayerPedId(), true), true, false, false)
local sceneCoords = GetOffsetFromEntityInWorldCoords(ped, 0.0, 0.0, -1.0)
local sceneRot = vector3(0.0, 0.0, 0.0)
local sceneId = NetworkCreateSynchronisedScene(
sceneCoords,
sceneRot,
2, true, false, 1065353216, 0, 1065353216
)
NetworkAddPedToSynchronisedScene(playerPed, sceneId,
animDict, "Return_Wallet_Positive_C_Player",
1.5, -1.5, 262, 0, 1148846080, 0
)
NetworkAddPedToSynchronisedScene(ped, sceneId,
animDict, "Return_Wallet_Positive_C_Female",
1.5, -1.5, 262, 0, 1148846080, 0
)
SetCurrentPedWeapon(playerPed, GetHashKey("weapon_unarmed"), true)
AttachEntityToEntity(wallet, playerPed,
GetPedBoneIndex(playerPed, 28422),
0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0, 0, 0, 0, 2, 1
)
NetworkForceLocalUseOfSyncedSceneCamera(sceneId, animDict,
"Return_Wallet_Positive_C_Cam"
)
NetworkStartSynchronisedScene(sceneID)
Wait(1800)
DetachEntity(wallet, 0, true)
AttachEntityToEntity(wallet, playerPed, GetPedBoneIndex(ped, 28422),
0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0, 0, 0, 0, 2, 1
)
Wait(3200)
ClearPedTasks(ped)
NetworkStopSynchronisedScene(sceneId)
NetworkUnlinkNetworkedSynchronisedScene(sceneId)
SetEntityDynamic(wallet, false)
SetEntityAsNoLongerNeeded(wallet)
DeleteObject(wallet)
end
function Roar ()
LoadAnimationDictionary("ANIM@MP_FM_EVENT@INTRO")
local sceneId = NetworkCreateSynchronisedScene(GetOffsetFromEntityInWorldCoords(PlayerPedId(), 0.05, 0.5, -1.11), 0.0, 0.0, (GetEntityHeading(PlayerPedId()) + 90.0), 2, false, false, 1065353216, 0, 1065353216)
NetworkForceLocalUseOfSyncedSceneCamera(sceneId, "ANIM@MP_FM_EVENT@INTRO", "BEAST_TRANSFORM_CAM")
TaskPlayAnim(PlayerPedId(), "ANIM@MP_FM_EVENT@INTRO", "BEAST_TRANSFORM", 1000.0, -2.0, -1, 0, 0, 0, 0, 0)
N_0x2208438012482a1a(PlayerPedId(), 0, 0)
N_0xc9b43a33d09cada7(sceneId)
print('beastId', sceneId)
end
function OtherChest ()
local playerPed = PlayerPedId()
local chestModel = GetHashKey("xm_prop_x17_chest_closed")
local animDict = "anim@TreasureHunt@DoubleAction@Action"
LoadAnimationDictionary(animDict)
LoadModel(chestModel)
local chestCoords = GetOffsetFromEntityInWorldCoords(playerPed, 1.0, 0.0, -1.0)
local chest = CreateObject(chestModel, chestCoords, true, false, false)
local sceneCoords = GetEntityCoords(chest)
local sceneRot = vector3(0.0, 0.0, 0.0)
SetModelAsNoLongerNeeded(chestModel)
local sceneId = NetworkCreateSynchronisedScene(
sceneCoords,
sceneRot,
2, true, false, 1065353216, 0, 1065353216
)
NetworkAddPedToSynchronisedScene(playerPed, sceneId,
animDict, "Double_Action_PickUP",
1.5, -1.5, 262, 0, 1148846080, 0
)
NetworkAddEntityToSynchronisedScene(
chest, sceneId,
animDict, "Double_Action_PickUP_CHEST",
1.5, -1.5, 4
)
NetworkForceLocalUseOfSyncedSceneCamera(sceneId, animDict, "Double_Action_PickUp_CAM")
NetworkStartSynchronisedScene(sceneID)
Wait(13000)
NetworkStopSynchronisedScene(sceneId)
NetworkUnlinkNetworkedSynchronisedScene(sceneId)
FreezeEntityPosition(chest, true)
PlayEntityAnim(chest, "HOLD_CHEST", animDict, 1000.0, false, 1, 0, 0, 0) -- keeps open
SetEntityDynamic(chest, 0)
SetObjectAsNoLongerNeeded(chest)
RemoveAnimDict(animDict)
end
function HatchetChest ()
local chestModel = GetHashKey('ba_prop_battle_chest_closed')
local hatchetModel = GetHashKey("w_me_stonehatchet")
local playerPed = PlayerPedId()
LoadAnimationDictionary("anim@TreasureHunt@Hatchet@Action")
LoadModel(hatchetModel)
LoadModel(chestModel)
local chestCoords = GetOffsetFromEntityInWorldCoords(playerPed, 1.0, 0.0, -1.0)
local chest = CreateObject(chestModel, chestCoords, true, false, false)
local hatchet = CreateObjectNoOffset(hatchetModel, chestCoords, true, false, false)
SetModelAsNoLongerNeeded(chestModel)
SetModelAsNoLongerNeeded(hatchetModel)
SetNetworkIdCanMigrate(NetworkGetNetworkIdFromEntity(chest), false)
SetNetworkIdCanMigrate(NetworkGetNetworkIdFromEntity(hatchet), false)
SetEntityProofs(chest, true, true, true, true, true, true, 0, false)
SetEntityVisible(hatchet, false, 0)
SetEntityHeading(hatchet, GetEntityHeading(chest))
local sceneRot = vector3(0.0, 0.0, 0.0) --[[GetAnimInitialOffsetRotation(
"anim@TreasureHunt@Hatchet@Action", "Hatchet_Pickup",
vVar1, func_1947(iParam0->f_10), 0, 2
)]]
local sceneCoords = GetEntityCoords(chest)
local sceneId = NetworkCreateSynchronisedScene(
sceneCoords, sceneRot,
2, true, false, 1065353216, 0, 1065353216
)
NetworkAddPedToSynchronisedScene(
playerPed, sceneId,
"anim@TreasureHunt@Hatchet@Action", "Hatchet_Pickup",
1.5, -1.5, 262, 0, 1148846080, 0
)
NetworkAddEntityToSynchronisedScene(
chest, sceneId,
"anim@TreasureHunt@Hatchet@Action", "Hatchet_Pickup_chest",
1.5, -1.5, 4
)
NetworkAddEntityToSynchronisedScene(
hatchet, sceneId,
"anim@TreasureHunt@Hatchet@Action", "Hatchet_Pickup_Hatchet",
1.5, -1.5, 4
)
local now
local startTime = GetGameTimer()
local sceneActive = true
SetCurrentPedWeapon(PlayerPedId(), GetHashKey("weapon_unarmed"), true)
SetEntityVisible(hatchet, true, 0)
NetworkForceLocalUseOfSyncedSceneCamera(
sceneId, "anim@TreasureHunt@hatchet@Action", "HATCHET_PickUp_CAM"
)
RequestScriptAudioBank("DLC_CHRISTMAS2017/FM_TH", false)
PlaySoundFrontend(-1, "item_found", "dlc_xm_fm_th_sounds", false)
NetworkStartSynchronisedScene(sceneID)
local injured = false
local gainItem = false
while sceneActive do
now = GetGameTimer()
-- check interupted
if injured then
sceneActive = false
-- anim played long enough to grab item?
if now >= startTime + 8000 then
gainItem = true
end
end
-- anim is finished
if now >= startTime + 9000 then
sceneActive = false
gainItem = true
end
Wait(0)
end
DeleteObject(hatchet) -- *
if gainItem then
GiveWeaponToPed(playerPed, GetHashKey("weapon_stone_hatchet"), 100, false, true)
SetCurrentPedWeapon(playerPed, GetHashKey("weapon_stone_hatchet"), true)
--SetPedCurrentWeaponVisible(playerPed, 1, 1, 1, 0)
--SetCurrentPedWeapon(playerPed, GetHashKey("weapon_stone_hatchet"), true)
if injured then
end
elseif injured then
end
NetworkStopSynchronisedScene(sceneId)
NetworkUnlinkNetworkedSynchronisedScene(sceneId)
RemoveAnimDict("anim@TreasureHunt@hatchet@Action")
ReleaseScriptAudioBank("DLC_CHRISTMAS2017/FM_TH")
Wait(0)
if DoesEntityExist(chest) then
-- PlayEntityAnim(chest, "HOLD_CHEST", "anim@TreasureHunt@Hatchet@Action", 1000.0, false, 1, 0, 0, 0)
FreezeEntityPosition(chest, true)
SetEntityDynamic(chest, 0)
SetObjectAsNoLongerNeeded(chest)
end
end
function ShakePed (ped)
local animDict = "anim@mp_player_intcelebrationpaired@m_m_manly_handshake"
ClearPedTasks(PlayerPedId())
ClearPedTasks(ped)
LoadAnimationDictionary(animDict)
--LoadAnimationDictionary("mini@arm_wrestling")
local playerPed = PlayerPedId()
local sceneCoords = GetOffsetFromEntityInWorldCoords(playerPed, 0.0, 0.0, -1.0)
local playerHeading = GetEntityHeading(playerPed)
local sceneId = NetworkCreateSynchronisedScene(sceneCoords, GetEntityRotation(playerPed), 2, 1, 0, 1065353216, 0, 1065353216)
NetworkAddPedToSynchronisedScene(playerPed, sceneId, animDict, "MANLY_HANDSHAKE_LEFT", 8.0, -1.5, 157, 16, 1148846080, 0)
NetworkAddPedToSynchronisedScene(ped, sceneId, animDict, "MANLY_HANDSHAKE_RIGHT", 8.0, -1.5, 157, 16, 1148846080, 0)
--NetworkForceLocalUseOfSyncedSceneCamera(sceneId, "aw_ig_intro_alt1_cam", "mini@arm_wrestling")
NetworkStartSynchronisedScene(sceneId)
RemoveAnimDict(animDict)
Wait(7500)
NetworkStopSynchronisedScene(sceneId)
NetworkUnlinkNetworkedSynchronisedScene(sceneId)
end
function Rescue (ped)
local animDict = "random@crash_rescue@get_victim_to_friend"
local playerPed = PlayerPedId()
LoadAnimationDictionary(animDict)
local sceneCoords = GetOffsetFromEntityInWorldCoords(playerPed, 0.0, 0.0, 0.0)
local playerHeading = GetEntityHeading(playerPed)
local playerRotation = GetEntityRotation(playerPed, 2)
local sceneId = NetworkCreateSynchronisedScene(sceneCoords,
0.0, 0.0, 0.0,
vector3(0.0, 0.0, 36.0),
2, 1, 0, 1065353216, 0, 1065353216
)
NetworkAddPedToSynchronisedScene(playerPed, sceneId, animDict, "helping_friend_inside_victim", 8.0, -1.5, 157, 16, 1148846080, 0)
NetworkAddPedToSynchronisedScene(ped, sceneId, animDict, "helping_friend_inside_friend", 8.0, -1.5, 157, 16, 1148846080, 0)
NetworkForceLocalUseOfSyncedSceneCamera(
sceneId, "HELPING_FRIEND_INSIDE_CAM", "random@crash_rescue@get_victim_to_friend"
)
NetworkStartSynchronisedScene(sceneId)
Wait(12000)
RemoveAnimDict(animDict)
NetworkStopSynchronisedScene(sceneId)
NetworkUnlinkNetworkedSynchronisedScene(sceneId)
end
Citizen.CreateThread(function ()
Wait(0)
--Shovel()
--OtherChest();
--HatchetChest()
--Roar()
local playerPed = PlayerPedId()
local pedModel = GetHashKey("mp_m_shopkeep_01")
LoadModel(pedModel)
local ped
-- ped = CreatePed(
-- 4,
-- pedModel,
-- GetOffsetFromEntityInWorldCoords(playerPed, 1.0, 0.0, -1.0),
-- GetEntityHeading(playerPed) - 180.0,
-- true,
-- false
-- )
-- SetEntityRegister(ped, 1)
-- SetNetworkIdExistsOnAllMachines(PedToNet(ped), 1)
--GiveWallet(ped)
--ShakePed(ped)
--Rescue(ped)
if DoesEntityExist(ped) then
SetEntityDynamic(ped, 0)
SetEntityAsNoLongerNeeded(ped)
end
SetModelAsNoLongerNeeded(pedModel)
end)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment