Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Experimantal #19

Open
wants to merge 16 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
58 changes: 50 additions & 8 deletions client.lua
Original file line number Diff line number Diff line change
Expand Up @@ -725,8 +725,12 @@ function PlayAnimation(ped, anim)
while not HasAnimDictLoaded(anim.dict) do
Wait(0)
end

TaskPlayAnim(ped, anim.dict, anim.name, anim.blendInSpeed, anim.blendOutSpeed, anim.duration, anim.flag, anim.playbackRate, false, false, false, '', false)
if IsEntityAPed(ped) then
TaskPlayAnim(ped, anim.dict, anim.name, anim.blendInSpeed, anim.blendOutSpeed, anim.duration, anim.flag, anim.playbackRate, false, false, false, '', false)
else
PlayEntityAnim(ped, anim.name, anim.dict, 1.0, false, true,false,0.0,32768)
--PlayEntityAnim(ped, anim.name, anim.dict, 1.0, false, false,false,1.0,2.0)
end

RemoveAnimDict(anim.dict)

Expand Down Expand Up @@ -757,6 +761,7 @@ function SpawnPed(props)
local ped
if Config.isRDR then
ped = CreatePed_2(props.model, props.x, props.y, props.z, 0.0, true, false)
Wait(300)
else
ped = CreatePed(0, props.model, props.x, props.y, props.z, 0.0, true, false)
end
Expand Down Expand Up @@ -1055,13 +1060,44 @@ RegisterNUICallback('closeVehicleMenu', function(data, cb)
cb({})
end)

local tempobjec = nil

function getCamCoords()
local x1, y1, z1 = table.unpack(GetCamCoord(Cam))
local pitch1, roll1, yaw1 = table.unpack(GetCamRot(Cam, 2))

local x2 = x1
local y2 = y1
local z2 = z1
local pitch2 = pitch1
local roll2 = roll1
local yaw2 = yaw1

local spawnPos, entity, distance = GetInView(x2, y2, z2, pitch2, roll2, yaw2)
return spawnPos, entity, distance
end

RegisterNUICallback('createTempobj', function(data, cb)
CurrentSpawn = {
modelName = data.modelName,
type = 3
}
if tempobjec then
DeleteEntity(tempobjec)
tempobjec = nil
end
local spawnPos, entity, distance = getCamCoords()
entity = SpawnObject(CurrentSpawn.modelName, GetHashKey(CurrentSpawn.modelName), spawnPos.x, spawnPos.y, spawnPos.z, 0.0, 0.0, yaw2, false, true, nil, nil, nil)
tempobjec = entity
cb({})
end)
RegisterNUICallback('closeObjectMenu', function(data, cb)
if data.modelName and (Permissions.spawn.byName or Contains(Objects, data.modelName)) then
CurrentSpawn = {
modelName = data.modelName,
type = 3
}
end
end
SetNuiFocus(false, false)
cb({})
end)
Expand Down Expand Up @@ -1525,10 +1561,8 @@ function LoadDatabase(db, relative, replace)
local y = spawn.props.quaternion.y
local z = spawn.props.quaternion.z
local w = -spawn.props.quaternion.w

SetEntityQuaternion(handles[spawn.entity], x, y, z, w)
end

if spawn.props.attachment and spawn.props.attachment.to ~= 0 then
local from = handles[spawn.entity]
local to = spawn.props.attachment.to == -1 and PlayerPedId() or handles[spawn.props.attachment.to]
Expand Down Expand Up @@ -1963,7 +1997,7 @@ local function loadYmap(xml)
isEntity = false
i = i + 1
key = tostring(i)
end
end
curElem = nil
end,
text = function(text, cdata)
Expand Down Expand Up @@ -2175,8 +2209,11 @@ end)
function TryClearTasks(handle)
if Permissions.properties.ped.clearTasks and CanModifyEntity(handle) then
RequestControl(handle)
ClearPedTasks(handle)

if IsEntityAPed(handle) then
ClearPedTasks(handle)
else
StopEntityAnim(handle)
end
if Database[handle] then
Database[handle].scenario = nil
Database[handle].animation = nil
Expand Down Expand Up @@ -2797,6 +2834,11 @@ function MainSpoonerUpdates()
camX = string.format('%.2f', x2),
camY = string.format('%.2f', y2),
camZ = string.format('%.2f', z2),

camrotX = string.format('%.2f', pitch2),
camrotY = string.format('%.2f', roll2),
camrotZ = string.format('%.2f', yaw2),

camHeading = string.format('%.2f', yaw2),
focusTarget = FocusTarget,
freeFocus = FreeFocus
Expand Down
2 changes: 1 addition & 1 deletion data/rdr3/objects.lua
Original file line number Diff line number Diff line change
Expand Up @@ -17153,4 +17153,4 @@ Objects = {
"yarrow02_p",
"yarrow03_p",
"yarrow04_p",
}
}
2 changes: 1 addition & 1 deletion data/rdr3/peds.lua
Original file line number Diff line number Diff line change
Expand Up @@ -1981,4 +1981,4 @@ Peds = {
"western_saddle_02",
"western_saddle_03",
"western_saddle_04",
}
}
68 changes: 40 additions & 28 deletions ui/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
<script src="script.js"></script>
</head>
<body>
<div id="hud">
<div id="hud" style="width:25%">
<div id="crosshair" class="inactive">+</div>
<div id="info">
<div id="entity-info"><span id="entity-type"></span>: <span id="entity-id"></span> (<span id="model-name"></span>) <span id="entity-net-id"></span></div>
Expand Down Expand Up @@ -134,7 +134,16 @@
<div>Y: <span id="cam-y"></span></div>
<div>Z: <span id="cam-z"></span></div>
<div>Heading: <span id="cam-heading"></span></div>
</div>
</div>
<div id="cam-info">
<div>Camera - Rot:</div>
<div>X: <span id="cam-rot-x"></span></div>
<div>Y: <span id="cam-rot-y"></span></div>
<div>Z: <span id="cam-rot-z"></span></div>
</div>
<button id="copy-cam-coord" class="copy-button" style="width: 100%;">
<i class="fas fa-clipboard" aria-hidden="true"></i>
</button>
<div id="cursor-info">
<div>Cursor:</div>
<div>X: <span id="cursor-x"></span></div>
Expand All @@ -143,7 +152,7 @@
</div>
</div>
</div>
<div id="spawn-menu" class="menu">
<div id="spawn-menu" style="width:25%" class="menu">
<div id="spawn-categories">
<div class="spawn-category">
<button id="spawn-menu-peds">Peds</button>
Expand All @@ -163,7 +172,7 @@
</div>
<button id="spawn-menu-close">Close</button>
</div>
<div id="ped-menu" class="menu">
<div id="ped-menu" style="width:25%" class="menu">
<div id="ped-search" class="search">
<input type="text" id="ped-search-filter" class="search-filter" value="">
<button id="favourite-peds" class="favourites">
Expand All @@ -174,7 +183,7 @@
<button id="ped-spawn-by-name" class="spawn-by-name">Spawn By Name</button>
<button id="ped-menu-close-btn">Back</button>
</div>
<div id="vehicle-menu" class="menu">
<div id="vehicle-menu" style="width:25%" class="menu">
<div id="vehicle-search" class="search">
<input type="text" id="vehicle-search-filter" class="search-filter" value="">
<button id="favourite-vehicles" class="favourites">
Expand All @@ -185,7 +194,7 @@
<button id="vehicle-spawn-by-name" class="spawn-by-name">Spawn By Name</button>
<button id="vehicle-menu-close-btn">Back</button>
</div>
<div id="object-menu" class="menu">
<div id="object-menu" style="width:25%" class="menu">
<div id="object-search" class="search">
<input type="text" id="object-search-filter" class="search-filter" value="">
<button id="favourite-objects" class="favourites">
Expand All @@ -196,7 +205,7 @@
<button id="object-spawn-by-name" class="spawn-by-name">Spawn By Name</button>
<button id="object-menu-close-btn">Back</button>
</div>
<div id="object-database" class="menu">
<div id="object-database" style="width:25%" class="menu">
<div id="object-database-stats">
<div class="object-database-stat">All: <span id="object-database-total-entities"></span></div>
<div class="object-database-stat">Net: <span id="object-database-total-networked"></span></div>
Expand All @@ -209,15 +218,15 @@
<button id="object-database-delete-all-btn">Delete All</button>
<button id="object-database-close-btn">Close</button>
</div>
<div id="add-to-db-menu" class="menu">
<div id="add-to-db-menu" style="width:25%" class="menu">
<div id="add-to-db-options">
<span>Handle:</span>
<input id="custom-entity-handle">
<button id="add-custom-entity-btn">Add</button>
</div>
<button id="add-to-db-menu-close">Back</button>
</div>
<div id="attachment-options-menu" class="menu">
<div id="attachment-options-menu" style="width:25%" class="menu">
<button id="attachment-options-detach">Detach</button>
<div id="attach-to-list" class="list"></div>
<div>
Expand Down Expand Up @@ -299,16 +308,16 @@
</div>
<button id="attachment-options-menu-close">Back</button>
</div>
<div id="properties-menu" class="menu">
<div id="properties-menu" style="width:25%" class="menu">
<div id="properties-menu-entity">
<div class="label">Properties for <span id="properties-menu-entity-type"></span></div>
<div class="value" id="properties-menu-entity-id"></div>
</div>
<div id="properties" class="list">
<div class="property" id="properties-model-container">
<div class="property" style="display: flex;">
<div class="label">Model</div>
<div class="value" id="properties-model"></div>
<button id="copy-model-name" class="copy-button">
<button id="copy-model-name" class="copy-button" style="margin-left: 15px;">
<i class="fas fa-clipboard" aria-hidden="true"></i>
</button>
</div>
Expand Down Expand Up @@ -413,6 +422,7 @@
</div>
<div class="property object-property">
<button id="properties-lights-options">Light Options</button>
<button id="properties-animation-for-entity">Animtaions For Entity</button>
</div>
<div class="property">
<button id="properties-register-as-networked">Register as Networked</button>
Expand All @@ -424,7 +434,7 @@
</div>
<button id="properties-menu-close-btn">Close</button>
</div>
<div id="ped-options-menu" class="menu">
<div id="ped-options-menu" style="width:25%" class="menu">
<div id="ped-options" class="list">
<div class="property player-property">
<button id="properties-player-model">Change Model</button>
Expand Down Expand Up @@ -506,8 +516,8 @@
</div>
<button id="ped-options-menu-close">Back</button>
</div>
<div id="entity-select-menu" class="menu"></div>
<div id="walk-style-menu" class="menu">
<div id="entity-select-menu" style="width:25%" class="menu"></div>
<div id="walk-style-menu" style="width:25%" class="menu">
<div id="walk-style-search" class="search">
<input type="text" id="walk-style-search-filter" class="search-filter" value="">
<button id="favourite-walk-styles" class="favourites">
Expand All @@ -517,7 +527,7 @@
<div id="walk-style-list" class="list"></div>
<button id="walk-style-menu-close">Back</button>
</div>
<div id="weapon-menu" class="menu">
<div id="weapon-menu" style="width:25%" class="menu">
<div id="weapon-search" class="search">
<input type="text" id="weapon-search-filter" class="search-filter" value="">
<button id="favourite-weapons" class="favourites">
Expand All @@ -527,7 +537,7 @@
<div id="weapon-list" class="list"></div>
<button id="weapon-menu-close">Back</button>
</div>
<div id="vehicle-options-menu" class="menu">
<div id="vehicle-options-menu" style="width:25%" class="menu">
<div id="vehicle-options" class="list">
<div class="property">
<button id="properties-repair-vehicle">Repair Vehicle</button>
Expand All @@ -546,18 +556,19 @@
</div>
<button id="vehicle-options-menu-close">Back</button>
</div>
<div id="scenario-menu" class="menu">
<div id="scenario-menu" style="width:25%" class="menu">
<div id="scenario-search" class="search">
<input type="text" id="scenario-search-filter" class="search-filter" value="">
<button id="favourite-scenarios" class="favourites">
<i class="far fa-star"></i>
</button>
</div>
<div id="scenario-list" class="list"></div>
<button id="copscenario">Copy Selected Scenario</button>
<button id="scenario-stop">Stop Scenario</button>
<button id="scenario-menu-close">Back</button>
</div>
<div id="save-load-db-menu" class="menu">
<div id="save-load-db-menu" style="width:25%" class="menu">
<div id="db-list" class="list"></div>
<div id="load-db-options">
<div>
Expand All @@ -580,7 +591,7 @@
<button id="import-export-db-btn">Import/Export</button>
<button id="save-load-db-menu-close-btn">Close</button>
</div>
<div id="import-export-db">
<div id="import-export-db" style="width:25%">
<div id="import-export-controls">
<select id="import-export-format">
<option value="spooner-db-json">Spooner DB JSON</option>
Expand All @@ -596,7 +607,7 @@
<textarea id="import-export-content" spellcheck="false"></textarea>
<button id="import-export-db-close">Close</button>
</div>
<div id="lights-options-menu" class="menu">
<div id="lights-options-menu" style="width:25%" class="menu">
<div id="lights-options" class="list">
<div class="property">
<div class="label">Intensity (local)</div>
Expand All @@ -615,7 +626,7 @@
</div>
<button id="lights-options-menu-close">Back</button>
</div>
<div id="animation-menu" class="menu">
<div id="animation-menu" style="width:25%" class="menu">
<div id="animation-search" class="search">
<input type="text" id="animation-search-filter" class="search-filter" value="">
<button id="favourite-animations" class="favourites">
Expand All @@ -625,6 +636,7 @@
<div id="animation-list" class="list"></div>
<div id="animation-settings">
<div class="property">
<button id="copyanim">Copy Selected Anims</button>
<div class="label">Max Search Results (Total Results: <span id="animation-search-total-results"></span>)</div>
<input type="number" id="animation-search-max-results" value="1000" min="1" step="1">
</div>
Expand Down Expand Up @@ -652,7 +664,7 @@
<button id="animation-stop">Stop Animation</button>
<button id="animation-menu-close">Back</button>
</div>
<div id="propset-menu" class="menu">
<div id="propset-menu" style="width:25%" class="menu">
<div id="propset-search" class="search">
<input type="text" id="propset-search-filter" class="search-filter" value="">
<button id="favourite-propsets" class="favourites">
Expand All @@ -663,7 +675,7 @@
<button id="propset-spawn-by-name" class="spawn-by-name">Spawn By Name</button>
<button id="propset-menu-close-btn">Back</button>
</div>
<div id="pickup-menu" class="menu">
<div id="pickup-menu" style="width:25%" class="menu">
<div id="pickup-search" class="search">
<input type="text" id="pickup-search-filter" class="search-filter" value="">
<button id="favourite-pickups" class="favourites">
Expand All @@ -674,7 +686,7 @@
<button id="pickup-spawn-by-name" class="spawn-by-name">Spawn By Name</button>
<button id="pickup-menu-close-btn">Back</button>
</div>
<div id="player-model-menu" class="menu">
<div id="player-model-menu" style="width:25%" class="menu">
<div id="player-model-search" class="search">
<input type="text" id="player-model-search-filter" class="search-filter" value="">
<button id="favourite-player-models" class="favourites">
Expand All @@ -685,7 +697,7 @@
<button id="player-model-spawn-by-name" class="spawn-by-name">Spawn By Name</button>
<button id="player-model-menu-close-btn">Back</button>
</div>
<div id="config-flags-menu" class="menu">
<div id="config-flags-menu" style="width:25%" class="menu">
<div id="config-flags-list" class="list"></div>
<div class="add-config-flag-container">
<div id="config-flag-label">Set flag:</div>
Expand All @@ -696,7 +708,7 @@
</div>
<button id="close-config-flags-menu">Back</button>
</div>
<div id="help-menu">
<div id="help-menu" style="width:25%">
<h1>Object Spooner Help</h1>
<div id="help-content">
<h2>Cursor colours</h2>
Expand Down Expand Up @@ -879,7 +891,7 @@ <h3>Import/Export menu</h3>
<td>Ymap</th>
<td>Native map format used by GTA V/RDR2</td>
<td>Yes</td>
<td>Yes</td>
<td>No</td>
</tr>
<tr>
<td>propplacer JSON</td>
Expand Down
Loading