Parazitas Posted August 6, 2018 Posted August 6, 2018 Hey, I tying to fix this: when I log in automaticly turns on gui.. but I need just turn on with bind press or marker hit.. bc it's so anoyng when join auto turn on login panel and animation gui. I tried change onClientResourceStart to onClientKey but not work still... I tried simplify script.. just do on player marker hit load ifp on him and when he write command remove ipf.. but still nothing.. local animationManagerWindow = nil local replaceAnimationLabel, playAnimationLabel = nil, nil local restoreDefaultsButton, stopAnimationButton = nil, nil local replaceAnimationGridList, playAnimationGridList = nil, nil local isShowingAnimationBlocksInPlayGridList = true local currentBlockNameSelected = nil local isLocalPlayerAnimating = false local function PopulatePlayAnimationGridListWithBlocks () isShowingAnimationBlocksInPlayGridList = true currentBlockNameSelected = nil guiGridListClear ( playAnimationGridList ) -- Add IFP blocks to the play animation gridlist for customAnimationBlockIndex, customAnimationBlock in ipairs ( globalLoadedIfps ) do local rowIndex = guiGridListAddRow ( playAnimationGridList, " + "..customAnimationBlock.friendlyName ) guiGridListSetItemData ( playAnimationGridList, rowIndex, 1, customAnimationBlockIndex ) end end local function PopulatePlayAnimationGridListWithCustomBlockAnimations ( ifpIndex ) isShowingAnimationBlocksInPlayGridList = false currentBlockNameSelected = globalLoadedIfps [ifpIndex].blockName guiGridListClear ( playAnimationGridList ) guiGridListAddRow ( playAnimationGridList, ".." ) -- Add IFP blocks to the play animation gridlist for _, customAnimationName in ipairs ( globalLoadedIfps [ifpIndex].animations ) do local rowIndex = guiGridListAddRow ( playAnimationGridList, " "..customAnimationName ) guiGridListSetItemData ( playAnimationGridList, rowIndex, 1, customAnimationName ) end end addEventHandler("onClientResourceStart", resourceRoot, function() triggerServerEvent ( "onCustomAnimationSyncRequest", resourceRoot, localPlayer ) outputChatBox ("Press 'X' to toggle Animation Manager", 255, 255, 255) showCursor ( true ) animationManagerWindow = guiCreateWindow(118, 116, 558, 371, "Animation Manager", false) guiWindowSetSizable(animationManagerWindow, false) replaceAnimationLabel = guiCreateLabel(12, 26, 245, 19, "Replace Animations With", false, animationManagerWindow) guiSetFont(replaceAnimationLabel, "default-bold-small") guiLabelSetHorizontalAlign(replaceAnimationLabel, "center", false) replaceAnimationGridList = guiCreateGridList(12, 49, 245, 255, false, animationManagerWindow) guiGridListAddColumn(replaceAnimationGridList, "Animation Blocks", 0.9) restoreDefaultsButton = guiCreateButton(49, 314, 174, 41, "Restore Defaults", false, animationManagerWindow) playAnimationLabel = guiCreateLabel(294, 26, 245, 19, "Play Animation", false, animationManagerWindow) guiSetFont(playAnimationLabel, "default-bold-small") guiLabelSetHorizontalAlign(playAnimationLabel, "center", false) stopAnimationButton = guiCreateButton(329, 314, 174, 41, "Stop Animation", false, animationManagerWindow) playAnimationGridList = guiCreateGridList(294, 49, 245, 255, false, animationManagerWindow) guiGridListAddColumn(playAnimationGridList, "Animation Blocks", 0.9) -- load IFP files and add them to the play animation gridlist for customAnimationBlockIndex, customAnimationBlock in ipairs ( globalLoadedIfps ) do local ifp = engineLoadIFP ( customAnimationBlock.path, customAnimationBlock.blockName ) if not ifp then outputChatBox ("Failed to load '"..customAnimationBlock.path.."'") end end -- now add replaceable ifps to the other grid list for _, ifpIndex in ipairs ( globalReplaceableIfpsIndices ) do local customAnimationBlock = globalLoadedIfps [ ifpIndex ] local rowIndex = guiGridListAddRow ( replaceAnimationGridList, customAnimationBlock.friendlyName ) guiGridListSetItemData ( replaceAnimationGridList, rowIndex, 1, ifpIndex ) end PopulatePlayAnimationGridListWithBlocks () end ) local function ReplacePedBlockAnimations ( player, ifpIndex ) local customIfpBlockName = globalLoadedIfps [ ifpIndex ].blockName for _, animationName in pairs ( globalPedAnimationBlock.animations ) do -- make sure that we don't replace a partial animation if not globalPedAnimationBlock.partialAnimations [ animationName ] then engineReplaceAnimation ( player, "ped", animationName, customIfpBlockName, animationName ) end end end local function HandleReplacedAnimationGridListDoubleClick () local replacedAnimGridSelectedRow, replacedAnimGridSelectedCol = guiGridListGetSelectedItem ( replaceAnimationGridList ); if replacedAnimGridSelectedRow and replacedAnimGridSelectedRow ~= -1 then local ifpFriendlyName = guiGridListGetItemText( replaceAnimationGridList, replacedAnimGridSelectedRow, replacedAnimGridSelectedCol ) local ifpIndex = guiGridListGetItemData(replaceAnimationGridList, replacedAnimGridSelectedRow, replacedAnimGridSelectedCol ) ReplacePedBlockAnimations ( localPlayer, ifpIndex ) triggerServerEvent ( "onCustomAnimationReplace", resourceRoot, localPlayer, ifpIndex ) outputChatBox ("Replaced 'ped' block animations with '"..ifpFriendlyName.."'", 255, 255, 255) end end local function HandlePlayAnimationGridListDoubleClick () local playAnimGridSelectedRow, playAnimGridSelectedCol = guiGridListGetSelectedItem ( playAnimationGridList ); if playAnimGridSelectedRow and playAnimGridSelectedRow ~= -1 then local itemText = guiGridListGetItemText( playAnimationGridList, playAnimGridSelectedRow, playAnimGridSelectedCol ) if isShowingAnimationBlocksInPlayGridList then local ifpIndex = guiGridListGetItemData(playAnimationGridList, playAnimGridSelectedRow, playAnimGridSelectedCol ) PopulatePlayAnimationGridListWithCustomBlockAnimations ( ifpIndex ) else if itemText == ".." then PopulatePlayAnimationGridListWithBlocks ( ) else local animationName = guiGridListGetItemData(playAnimationGridList, playAnimGridSelectedRow, playAnimGridSelectedCol ) setPedAnimation ( localPlayer, currentBlockNameSelected, animationName ) triggerServerEvent ( "onCustomAnimationSet", resourceRoot, localPlayer, currentBlockNameSelected, animationName ) isLocalPlayerAnimating = true end end end end addEventHandler( "onClientGUIDoubleClick", resourceRoot, function ( button, state, absoluteX, absoluteY ) if button == "left" and state == "up" then if source == replaceAnimationGridList then HandleReplacedAnimationGridListDoubleClick ( ) elseif source == playAnimationGridList then HandlePlayAnimationGridListDoubleClick ( ) end end end ) addEventHandler( "onClientGUIClick", resourceRoot, function ( button, state ) if button == "left" and state == "up" then if source == restoreDefaultsButton then -- restore all replaced animations of "ped" block engineRestoreAnimation ( localPlayer, "ped" ) triggerServerEvent ( "onCustomAnimationRestore", resourceRoot, localPlayer, "ped" ) outputChatBox ("Restored ped block animations", 255, 255, 255) elseif source == stopAnimationButton then setPedAnimation ( localPlayer, false ) triggerServerEvent ( "onCustomAnimationSet", resourceRoot, localPlayer, false, false ) end end end ) bindKey ( "X", "down", function ( key, keyState ) if ( keyState == "down" ) then local isAnimationMangerWindowVisible = guiGetVisible ( animationManagerWindow ) guiSetVisible ( animationManagerWindow, not isAnimationMangerWindowVisible ) showCursor ( not isAnimationMangerWindowVisible ) end end ) addEvent ("onClientCustomAnimationSyncRequest", true ) addEventHandler ("onClientCustomAnimationSyncRequest", root, function ( playerAnimations ) for player, anims in pairs ( playerAnimations ) do if isElement ( player ) then if anims.current then setPedAnimation ( player, anims.current[1], anims.current[2] ) end if anims.replacedPedBlock then ReplacePedBlockAnimations ( player, anims.replacedPedBlock ) end end end end ) addEvent ("onClientCustomAnimationSet", true ) addEventHandler ("onClientCustomAnimationSet", root, function ( blockName, animationName ) if source == localPlayer then return end if blockName == false then setPedAnimation ( source, false ) return end setPedAnimation ( source, blockName, animationName ) end ) addEvent ("onClientCustomAnimationReplace", true ) addEventHandler ("onClientCustomAnimationReplace", root, function ( ifpIndex ) if source == localPlayer then return end ReplacePedBlockAnimations ( source, ifpIndex ) end ) addEvent ("onClientCustomAnimationRestore", true ) addEventHandler ("onClientCustomAnimationRestore", root, function ( blockName ) if source == localPlayer then return end engineRestoreAnimation ( source, blockName ) end ) setTimer ( function () if isLocalPlayerAnimating then if not getPedAnimation (localPlayer) then isLocalPlayerAnimating = false triggerServerEvent ( "onCustomAnimationStop", resourceRoot, localPlayer ) end end end, 100, 0 )
SycroX Posted August 6, 2018 Posted August 6, 2018 (edited) local animationManagerWindow = nil local replaceAnimationLabel, playAnimationLabel = nil, nil local restoreDefaultsButton, stopAnimationButton = nil, nil local replaceAnimationGridList, playAnimationGridList = nil, nil local isShowingAnimationBlocksInPlayGridList = true local currentBlockNameSelected = nil local isLocalPlayerAnimating = false local function PopulatePlayAnimationGridListWithBlocks () isShowingAnimationBlocksInPlayGridList = true currentBlockNameSelected = nil guiGridListClear ( playAnimationGridList ) -- Add IFP blocks to the play animation gridlist for customAnimationBlockIndex, customAnimationBlock in ipairs ( globalLoadedIfps ) do local rowIndex = guiGridListAddRow ( playAnimationGridList, " + "..customAnimationBlock.friendlyName ) guiGridListSetItemData ( playAnimationGridList, rowIndex, 1, customAnimationBlockIndex ) end end local function PopulatePlayAnimationGridListWithCustomBlockAnimations ( ifpIndex ) isShowingAnimationBlocksInPlayGridList = false currentBlockNameSelected = globalLoadedIfps [ifpIndex].blockName guiGridListClear ( playAnimationGridList ) guiGridListAddRow ( playAnimationGridList, ".." ) -- Add IFP blocks to the play animation gridlist for _, customAnimationName in ipairs ( globalLoadedIfps [ifpIndex].animations ) do local rowIndex = guiGridListAddRow ( playAnimationGridList, " "..customAnimationName ) guiGridListSetItemData ( playAnimationGridList, rowIndex, 1, customAnimationName ) end end addEventHandler("onClientResourceStart", resourceRoot, function() triggerServerEvent ( "onCustomAnimationSyncRequest", resourceRoot, localPlayer ) outputChatBox ("Press 'X' to toggle Animation Manager", 255, 255, 255) animationManagerWindow = guiCreateWindow(118, 116, 558, 371, "Animation Manager", false) guiWindowSetSizable(animationManagerWindow, false) guiSetVisible(animationManagerWindow, false) replaceAnimationLabel = guiCreateLabel(12, 26, 245, 19, "Replace Animations With", false, animationManagerWindow) guiSetFont(replaceAnimationLabel, "default-bold-small") guiLabelSetHorizontalAlign(replaceAnimationLabel, "center", false) replaceAnimationGridList = guiCreateGridList(12, 49, 245, 255, false, animationManagerWindow) guiGridListAddColumn(replaceAnimationGridList, "Animation Blocks", 0.9) restoreDefaultsButton = guiCreateButton(49, 314, 174, 41, "Restore Defaults", false, animationManagerWindow) playAnimationLabel = guiCreateLabel(294, 26, 245, 19, "Play Animation", false, animationManagerWindow) guiSetFont(playAnimationLabel, "default-bold-small") guiLabelSetHorizontalAlign(playAnimationLabel, "center", false) stopAnimationButton = guiCreateButton(329, 314, 174, 41, "Stop Animation", false, animationManagerWindow) playAnimationGridList = guiCreateGridList(294, 49, 245, 255, false, animationManagerWindow) guiGridListAddColumn(playAnimationGridList, "Animation Blocks", 0.9) -- load IFP files and add them to the play animation gridlist for customAnimationBlockIndex, customAnimationBlock in ipairs ( globalLoadedIfps ) do local ifp = engineLoadIFP ( customAnimationBlock.path, customAnimationBlock.blockName ) if not ifp then outputChatBox ("Failed to load '"..customAnimationBlock.path.."'") end end -- now add replaceable ifps to the other grid list for _, ifpIndex in ipairs ( globalReplaceableIfpsIndices ) do local customAnimationBlock = globalLoadedIfps [ ifpIndex ] local rowIndex = guiGridListAddRow ( replaceAnimationGridList, customAnimationBlock.friendlyName ) guiGridListSetItemData ( replaceAnimationGridList, rowIndex, 1, ifpIndex ) end PopulatePlayAnimationGridListWithBlocks () end ) local function ReplacePedBlockAnimations ( player, ifpIndex ) local customIfpBlockName = globalLoadedIfps [ ifpIndex ].blockName for _, animationName in pairs ( globalPedAnimationBlock.animations ) do -- make sure that we don't replace a partial animation if not globalPedAnimationBlock.partialAnimations [ animationName ] then engineReplaceAnimation ( player, "ped", animationName, customIfpBlockName, animationName ) end end end local function HandleReplacedAnimationGridListDoubleClick () local replacedAnimGridSelectedRow, replacedAnimGridSelectedCol = guiGridListGetSelectedItem ( replaceAnimationGridList ); if replacedAnimGridSelectedRow and replacedAnimGridSelectedRow ~= -1 then local ifpFriendlyName = guiGridListGetItemText( replaceAnimationGridList, replacedAnimGridSelectedRow, replacedAnimGridSelectedCol ) local ifpIndex = guiGridListGetItemData(replaceAnimationGridList, replacedAnimGridSelectedRow, replacedAnimGridSelectedCol ) ReplacePedBlockAnimations ( localPlayer, ifpIndex ) triggerServerEvent ( "onCustomAnimationReplace", resourceRoot, localPlayer, ifpIndex ) outputChatBox ("Replaced 'ped' block animations with '"..ifpFriendlyName.."'", 255, 255, 255) end end local function HandlePlayAnimationGridListDoubleClick () local playAnimGridSelectedRow, playAnimGridSelectedCol = guiGridListGetSelectedItem ( playAnimationGridList ); if playAnimGridSelectedRow and playAnimGridSelectedRow ~= -1 then local itemText = guiGridListGetItemText( playAnimationGridList, playAnimGridSelectedRow, playAnimGridSelectedCol ) if isShowingAnimationBlocksInPlayGridList then local ifpIndex = guiGridListGetItemData(playAnimationGridList, playAnimGridSelectedRow, playAnimGridSelectedCol ) PopulatePlayAnimationGridListWithCustomBlockAnimations ( ifpIndex ) else if itemText == ".." then PopulatePlayAnimationGridListWithBlocks ( ) else local animationName = guiGridListGetItemData(playAnimationGridList, playAnimGridSelectedRow, playAnimGridSelectedCol ) setPedAnimation ( localPlayer, currentBlockNameSelected, animationName ) triggerServerEvent ( "onCustomAnimationSet", resourceRoot, localPlayer, currentBlockNameSelected, animationName ) isLocalPlayerAnimating = true end end end end addEventHandler( "onClientGUIDoubleClick", resourceRoot, function ( button, state, absoluteX, absoluteY ) if button == "left" and state == "up" then if source == replaceAnimationGridList then HandleReplacedAnimationGridListDoubleClick ( ) elseif source == playAnimationGridList then HandlePlayAnimationGridListDoubleClick ( ) end end end ) addEventHandler( "onClientGUIClick", resourceRoot, function ( button, state ) if button == "left" and state == "up" then if source == restoreDefaultsButton then -- restore all replaced animations of "ped" block engineRestoreAnimation ( localPlayer, "ped" ) triggerServerEvent ( "onCustomAnimationRestore", resourceRoot, localPlayer, "ped" ) outputChatBox ("Restored ped block animations", 255, 255, 255) elseif source == stopAnimationButton then setPedAnimation ( localPlayer, false ) triggerServerEvent ( "onCustomAnimationSet", resourceRoot, localPlayer, false, false ) end end end ) bindKey ( "X", "down", function ( key, keyState ) if ( keyState == "down" ) then local isAnimationMangerWindowVisible = guiGetVisible ( animationManagerWindow ) guiSetVisible ( animationManagerWindow, not isAnimationMangerWindowVisible ) showCursor ( not isAnimationMangerWindowVisible ) end end ) addEvent ("onClientCustomAnimationSyncRequest", true ) addEventHandler ("onClientCustomAnimationSyncRequest", root, function ( playerAnimations ) for player, anims in pairs ( playerAnimations ) do if isElement ( player ) then if anims.current then setPedAnimation ( player, anims.current[1], anims.current[2] ) end if anims.replacedPedBlock then ReplacePedBlockAnimations ( player, anims.replacedPedBlock ) end end end end ) addEvent ("onClientCustomAnimationSet", true ) addEventHandler ("onClientCustomAnimationSet", root, function ( blockName, animationName ) if source == localPlayer then return end if blockName == false then setPedAnimation ( source, false ) return end setPedAnimation ( source, blockName, animationName ) end ) addEvent ("onClientCustomAnimationReplace", true ) addEventHandler ("onClientCustomAnimationReplace", root, function ( ifpIndex ) if source == localPlayer then return end ReplacePedBlockAnimations ( source, ifpIndex ) end ) addEvent ("onClientCustomAnimationRestore", true ) addEventHandler ("onClientCustomAnimationRestore", root, function ( blockName ) if source == localPlayer then return end engineRestoreAnimation ( source, blockName ) end ) setTimer ( function () if isLocalPlayerAnimating then if not getPedAnimation (localPlayer) then isLocalPlayerAnimating = false triggerServerEvent ( "onCustomAnimationStop", resourceRoot, localPlayer ) end end end, 100, 0 ) Edited August 6, 2018 by #َxLysandeR Chillin' with some demons, satans and vamps
Parazitas Posted August 6, 2018 Author Posted August 6, 2018 (edited) Damn.. thank you so much.. maybe you can tell me what you change? I need to know maybe finaly learn something.. ?:D and I don't wanna make another post so I put in here. I writte this script but its not work.. what I do wrong in here? function animacija(attacker, weapon, bodypart, loss) if (bodypart == 9) then setPedAnimation(source, "ped", "KO_shot_face") end end addEventHandler("onPlayerWasted", getRootElement(), animacija) Edited August 6, 2018 by Parazitas
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