Bean666 Posted February 26, 2021 Share Posted February 26, 2021 (edited) Hello i disabled original weapons sound using setWorldSoundEnabled ( 5, false ), all of them, but the reload seems to be affected, what is the index ID for the reload sound so I can enable it?, also the punching sound is gone Edited February 26, 2021 by Bean666 Link to comment
Bean666 Posted February 26, 2021 Author Share Posted February 26, 2021 i even tried using showsound but firing one shot from a gun shows not just one index so its pretty confusing. Link to comment
SpecT Posted February 26, 2021 Share Posted February 26, 2021 (edited) Hey, I played a little bit with the world sounds and found some stuff. Here is what I found: IDs 55 and 51 of the group 5 (weapons) are the reloading sounds for the pistols. But its different for the other types of weapons. For example the AK47 reload sound ID is 31. It will take some time to find them all tho since there is no (or at least I didn't find one) list of the sound IDs from each group. local allowedSoundIDs = { -- all the punching IDs are here, just find the reload sounds of all weapons and add them 9, 28, 31,32,34,35, 45,46,47,48, 50,51,54,55,56,57,58, 64,67, 75, 86,87,88 } setWorldSoundEnabled ( 5, false ) for i, sound in pairs(allowedSoundIDs) do setWorldSoundEnabled(5, sound, true) end Edited February 26, 2021 by SpecT 1 Link to comment
Bean666 Posted February 26, 2021 Author Share Posted February 26, 2021 (edited) 1 hour ago, SpecT said: Hey, I played a little bit with the world sounds and found some stuff. Here is what I found: IDs 55 and 51 of the group 5 (weapons) are the reloading sounds for the pistols. But its different for the other types of weapons. For example the AK47 reload sound ID is 31. It will take some time to find them all tho since there is no (or at least I didn't find one) list of the sound IDs from each group. local allowedSoundIDs = { -- all the punching IDs are here, just find the reload sounds of all weapons and add them 9, 28, 31,32,34,35, 45,46,47,48, 50,51,54,55,56,57,58, 64,67, 75, 86,87,88 } setWorldSoundEnabled ( 5, false ) for i, sound in pairs(allowedSoundIDs) do setWorldSoundEnabled(5, sound, true) end Hello, thankyou! but can you help me once again here, So basically this shows that everytime the boss dies theres a loop that goes thru players and checks if they have the bossparticipated data to true, we killed the boss and a player got the exp and rewards despite not joining the fight, the data is turned to true by attacking the boss, which he wasnt present at the time, so why was this triggered? idk if its possible or he was joking but can u see if there are reasons why that happened or if its possible to happen? C Side ( the damage and data set to true ) function bossdamaged ( attacker, weapon, bodypart ) if getElementType ( source ) == "ped" then if (getElementData (source, "boss") == true) or (getElementData(source, "soldier") == true) or (getElementData(source, "scientist") == true) then if isTimer(bosshptimer) then killTimer(bosshptimer) end triggerServerEvent ("bossdamaged", source, source, attacker, weapon, bodypart ) cancelEvent() end if getElementData(source, "boss") == true then if getElementData(attacker, "bossparticipated") == true then return end setElementData(attacker, "bossparticipated", true) end end end addEventHandler ( "onClientPedDamage", getRootElement(), bossdamaged) S Side ( the reward and loop ) function bossdeath ( ) if source == bossz then if isTimer(refreshtimer) then killTimer(refreshtimer) end triggerClientEvent(root, "removehp", root) triggerClientEvent(root, "stopmusic", root) for i,v in ipairs(getElementsByType("player")) do toggleControl(v, "jump", true) if getElementData(v, "bossparticipated") == true then local amount = math.random(30000, 50000) local expamount = math.random(8000, 10000) givePlayerMoney(v, amount) exports["amlevelsystem"]:addPlayerXp(v, expamount); outputChatBox("+"..tonumber(amount).."$ +"..tonumber(expamount).." EXP", v, 0, 255, 0, true) setTimer(function() setElementData(v, "bossparticipated", false) end, 1000, 1) end end Edited February 26, 2021 by Bean666 Link to comment
SpecT Posted February 26, 2021 Share Posted February 26, 2021 I don't think it should be possible or at least I don't see anything wrong in the code. You can put some debug outputChatBox messages in the client side function and stay away from the boss while someone else fights with it and see if it detects you to damage the boss somehow. It's not cool if the guy you test it with is joking. Ask him for a screenshot of the reward message. BTW some optimization you can do: in the server side you have 2 triggerClientEvent calls. You can easily merge them to a one. For example "onBossEventEnd" whidh will include all the stuff from the 2 functions "removehp" and "stopmusic" into 1 function. 1 Link to comment
Bean666 Posted February 27, 2021 Author Share Posted February 27, 2021 10 hours ago, SpecT said: I don't think it should be possible or at least I don't see anything wrong in the code. You can put some debug outputChatBox messages in the client side function and stay away from the boss while someone else fights with it and see if it detects you to damage the boss somehow. It's not cool if the guy you test it with is joking. Ask him for a screenshot of the reward message. BTW some optimization you can do: in the server side you have 2 triggerClientEvent calls. You can easily merge them to a one. For example "onBossEventEnd" whidh will include all the stuff from the 2 functions "removehp" and "stopmusic" into 1 function. Client: function onBossEventEnd() removehp() stopmusic() end addEvent("onBossEventEnd", true) addEventHandler("onBossEventEnd", getRootElement(), onBossEventEnd) Server: triggerClientEvent(root, "onBossEventEnd", root) something like this? Link to comment
SpecT Posted February 27, 2021 Share Posted February 27, 2021 3 hours ago, Bean666 said: Client: function onBossEventEnd() removehp() stopmusic() end addEvent("onBossEventEnd", true) addEventHandler("onBossEventEnd", getRootElement(), onBossEventEnd) Server: triggerClientEvent(root, "onBossEventEnd", root) something like this? Yes, and also replace the "getRootElement()" with "root" as it's faster. 1 Link to comment
Bean666 Posted February 27, 2021 Author Share Posted February 27, 2021 (edited) 21 minutes ago, SpecT said: Yes, and also replace the "getRootElement()" with "root" as it's faster. oh okay thanks but what about if I want to show a "GUI" or "DX" to a certain player, is using getLocalPlayer() or localPlayer fine on the addEventHandler? function showgui() guiSetVisible(wear, true) guiSetVisible(cancel, true) guiSetAlpha(wear, 0) guiSetAlpha(cancel, 0) showCursor(true) addEventHandler("onClientPreRender", getRootElement(), drawpurifier) end addEvent("showgui", true) addEventHandler("showgui", getLocalPlayer(), showgui) addEventHandler("onMarkerHit", resourceRoot, function(hitElement) if source == rmarker3 then if getElementType( hitElement ) == "player" then if getElementData(hitElement, "purifier") == "true" then outputChatBox("You are already a purifier", hitElement, 255, 0, 0) return end triggerClientEvent(hitElement, "showgui", hitElement) end end end) Edited February 27, 2021 by Bean666 Link to comment
SpecT Posted February 27, 2021 Share Posted February 27, 2021 6 hours ago, Bean666 said: oh okay thanks but what about if I want to show a "GUI" or "DX" to a certain player, is using getLocalPlayer() or localPlayer fine on the addEventHandler? function showgui() guiSetVisible(wear, true) guiSetVisible(cancel, true) guiSetAlpha(wear, 0) guiSetAlpha(cancel, 0) showCursor(true) addEventHandler("onClientPreRender", getRootElement(), drawpurifier) end addEvent("showgui", true) addEventHandler("showgui", getLocalPlayer(), showgui) addEventHandler("onMarkerHit", resourceRoot, function(hitElement) if source == rmarker3 then if getElementType( hitElement ) == "player" then if getElementData(hitElement, "purifier") == "true" then outputChatBox("You are already a purifier", hitElement, 255, 0, 0) return end triggerClientEvent(hitElement, "showgui", hitElement) end end end) function showgui() guiSetVisible(wear, true) guiSetVisible(cancel, true) guiSetAlpha(wear, 0) guiSetAlpha(cancel, 0) showCursor(true) addEventHandler("onClientPreRender", root, drawpurifier) end addEvent("showgui", true) addEventHandler("showgui", root, showgui) addEventHandler("onMarkerHit", resourceRoot, function(hitElement) if source == rmarker3 then if getElementType( hitElement ) == "player" then if getElementData(hitElement, "purifier") == "true" then outputChatBox("You are already a purifier", hitElement, 255, 0, 0) return end triggerClientEvent(hitElement, "showgui", hitElement) end end end) Use the predefined variables instead function calls to get them. Like this it should work fine as you are triggering the client event only for the specific "hitElement" player. Link to comment
Bean666 Posted February 27, 2021 Author Share Posted February 27, 2021 1 hour ago, SpecT said: function showgui() guiSetVisible(wear, true) guiSetVisible(cancel, true) guiSetAlpha(wear, 0) guiSetAlpha(cancel, 0) showCursor(true) addEventHandler("onClientPreRender", root, drawpurifier) end addEvent("showgui", true) addEventHandler("showgui", root, showgui) addEventHandler("onMarkerHit", resourceRoot, function(hitElement) if source == rmarker3 then if getElementType( hitElement ) == "player" then if getElementData(hitElement, "purifier") == "true" then outputChatBox("You are already a purifier", hitElement, 255, 0, 0) return end triggerClientEvent(hitElement, "showgui", hitElement) end end end) Use the predefined variables instead function calls to get them. Like this it should work fine as you are triggering the client event only for the specific "hitElement" player. oh so it wouldn't matter if i put root instead of getLocalPlayer() on the addEventHandler? Link to comment
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now