Pacheco465 Posted July 27, 2020 Share Posted July 27, 2020 Alguém poderia me ajudar? como eu poderia adicionar este script para dropar uma quantia que seria digitada no comando? Server local function createGroundWeapon(weaponid, ammo, clip, posX, posY, posZ, rotX, rotY, rotZ, interior, dimension) local temp = createElement("groundweapon") for i,p in ipairs(getElementsByType("player")) do triggerClientEvent(p,"GroundPickups:createGroundWeapon",p,temp,weaponid,ammo,clip,posX,posY,posZ,rotX,rotY,rotZ,interior,dimension) end return temp end local function destroyWeapons() for i,p in ipairs(getElementsByType("groundweapon")) do destroyElement(p) end end local function pickupWeapon(groundweapon,weaponid,ammo,clip) if client~=source then return end destroyElement(groundweapon) giveWeapon(client,weaponid,ammo,true) end local function dropWeapon(weaponid, ammo, clip, posX, posY, posZ, rotX, rotY, rotZ, interior, dimension) if client~=source then return end createGroundWeapon(weaponid, ammo, clip, posX, posY, posZ, rotX, rotY, rotZ, interior, dimension) takeWeapon(client,weaponid) end local function initScript() addEvent("GroundPickups:pickupWeapon", true) addEvent("GroundPickups:dropWeapon", true) addEventHandler("GroundPickups:pickupWeapon",root,pickupWeapon) addEventHandler("GroundPickups:dropWeapon",root,dropWeapon) addEventHandler("onResourceStop",resourceRoot,destroyWeapons) end addEventHandler("onResourceStart",resourceRoot,initScript) Client local screenWidth, screenHeight = guiGetScreenSize() -- Get the screen resolution local currentGround = nil local elementgg = {} local bannedTeamsEnabled = true local bannedTeams = { -- Useful if you got an RPG server and want to prevent abuse with weapon-spawning classes, then use above variable to toggle using below table and add your server's team names that wont be able to use drop gun ["Official Squads"] = true, ["Gangs"] = true, } weaponmarkercolors = { [0] = {255,255,255}, [1] = {100,100,255}, [2] = {0,230,0}, [3] = {0,150,0}, [4] = {255,255,0}, [5] = {255,204,0}, [6] = {150,0,150}, [7] = {255,0,255}, [8] = {0,0,255}, [9] = {204,255,255}, [10] = {255,100,100}, [11] = {255,255,255}, [12] = {255,255,255} } weaponsIDS = { --0 [1] = 331, --1 [2] = 333, [3] = 334, [4] = 335, [5] = 336, [6] = 337, [7] = 338, [8] = 339, [9] = 341, --2 [22] = 346, [23] = 347, [24] = 348, --3 [25] = 349, [26] = 350, [27] = 351, --4 [28] = 352, [29] = 353, [32] = 372, --5 [30] = 355, [31] = 356, --6 [33] = 357, [34] = 358, --7 [35] = 359, [36] = 360, [37] = 361, [38] = 362, --8 [16] = 342, [17] = 343, [18] = 344, [39] = 363, --9 [41] = 365, [42] = 366, [43] = 367, --10 [10] = 321, [11] = 322, [12] = 323, [13] = 324, [14] = 325, [15] = 326, --11 [44] = 368, [45] = 369, [46] = 371, --12 [40] = 364 } colshapes = {} function createGroundWeapon(groundweapon,weaponid, ammo, clip, posX, posY, posZ, rotX, rotY, rotZ, interior, dimension) if(elementgg[groundweapon] == nil) then local temp = createColSphere(posX,posY,posZ+0.5, 1) colshapes[temp] = {} colshapes[temp].groundweapon = groundweapon colshapes[temp].weaponid = weaponid colshapes[temp].ammo = ammo colshapes[temp].clip = clip elementgg[groundweapon] = temp local slot = getSlotFromWeapon(weaponid) --createObject local object = createObject(weaponsIDS[weaponid],posX,posY,posZ,rotX,rotY,rotZ) setElementFrozen(object, true) setElementCollisionsEnabled(object, false) setElementInterior(object,interior) setElementDimension(object,dimension) colshapes[temp].object = object --createMarker local marker = createMarker(posX,posY,posZ+0.05,"corona", 0.5,weaponmarkercolors[slot][1],weaponmarkercolors[slot][2], weaponmarkercolors[slot][3], 20) setElementInterior(marker,interior) setElementDimension(marker,dimension) colshapes[temp].marker = marker local x,y,z = getElementPosition(localPlayer) if getDistanceBetweenPoints2D(x,y,posX,posY) < 0.25 then local_activate(temp, localPlayer,true) end end end function destroyGroundWeapon(groundweapon) local col = elementgg[groundweapon] local object = colshapes[col].object local marker = colshapes[col].marker colshapes[col] = nil if(isElement(object)) then destroyElement(object) end if(isElement(marker)) then destroyElement(marker) end if(isElement(col)) then destroyElement(col) end elementgg[groundweapon] = nil end function pickupWeapon(cmd,state) if (cmd == "pickup" or state=="down") and isTimer(spamTimer) then return end spamTimer=setTimer(function() end,500,1) if(isElement(currentGround)) then local weaponid = colshapes[currentGround].weaponid local ammo = colshapes[currentGround].ammo local clip = colshapes[currentGround].clip local slot = getPedWeaponSlot(localPlayer) if slot == getSlotFromWeapon(weaponid) and getPedWeapon(localPlayer,slot) ~= weaponid and getPedTotalAmmo(localPlayer,slot) > 0 then dropWeapon() end if ammo then local groundweapon = colshapes[currentGround].groundweapon triggerServerEvent("GroundPickups:pickupWeapon",localPlayer,groundweapon,weaponid,ammo,clip) for i,p in ipairs(getElementsByType("colshape")) do if isElementWithinColShape(localPlayer, p) then local_activate(p, localPlayer,true) break end end end end end function dropWeapon(cmd,state) if (cmd == "drop" or state=="down") and isTimer(spamTimer) then return end spamTimer=setTimer(function() end,500,1) local team = getPlayerTeam(localPlayer) if team and bannedTeams[getTeamName(team)] and bannedTeamsEnabled then outputChatBox("You cannot drop weapons while in a gang/squad",255,0,0) return end local slot = getPedWeaponSlot(localPlayer) if slot > 0 then local weaponid = getPedWeapon(localPlayer, slot) if weaponid ~= 0 then local x,y,z = getElementPosition(localPlayer) local hit, hitX, hitY, hitZ, as = processLineOfSight(x, y, z, x, y, -3000, true, false, false, true, false, false, false, false) z = hit and hitZ or z-0.95 triggerServerEvent("GroundPickups:dropWeapon",localPlayer,weaponid, getPedTotalAmmo(localPlayer), getPedAmmoInClip(localPlayer), x,y,z, 97.3,120,math.random(0,359),getElementInterior(localPlayer),getElementDimension(localPlayer)) end end end function local_activate(shape, element,dimension) local playersInCol = getElementsWithinColShape(shape,"player") if #playersInCol == 1 and playersInCol[1] ~= localPlayer then return end if element == localPlayer and #playersInCol <= 1 then currentGround = shape end end addEventHandler("onClientResourceStart", getRootElement(), function(startedRes) if(startedRes == getThisResource()) then addCommandHandler("pickup",pickupWeapon) addCommandHandler("dropararma",dropWeapon) bindKey("6","down","pickup") else for i,p in pairs(getElementsByType("groundweapon")) do createGroundWeapon(p) end end end ) addEventHandler("onClientResourceStop", resourceRoot, function(startedRes) for i,p in ipairs(getElementsByType("groundweapon")) do destroyGroundWeapon(p) end end ) addEventHandler("onClientRender", getRootElement(), function() if isElement(currentGround) and colshapes[currentGround] then local weaponid = colshapes[currentGround].weaponid local ammo = colshapes[currentGround].ammo sx,sy = screenWidth/2, screenHeight/2 local str = getPedWeaponSlot(localPlayer) == getSlotFromWeapon(weaponid) and "swap weapons" or "pickup weapon" dxDrawRectangle(sx-80, sy-20, 160, 85, tocolor(0, 0, 0, 128)) if getPedWeaponSlot(localPlayer) == getSlotFromWeapon(weaponid) and weaponid ~= getPedWeapon(localPlayer) then dxDrawImage(sx-13, sy+13, 26, 26, "img/swap.png") dxDrawImage(sx+20, sy-2, 50, 50, "img/" .. weaponid .. ".png") dxDrawImage(sx-70, sy-2, 50, 50, "img/" .. getPedWeapon(localPlayer, getSlotFromWeapon(weaponid)) .. ".png") dxDrawText(tostring(ammo),sx+45, sy+53, sx+45, sy+53,tocolor(255,255,255,255), 1, "default-bold", "center", "center") dxDrawText(tostring(getPedTotalAmmo(localPlayer, getSlotFromWeapon(weaponid))) .. " (you)",sx-45, sy+53, sx-45, sy+53,tocolor(255,255,255,255), 1, "default-bold", "center", "center") else dxDrawImage(sx-25, sy-2, 50, 50, "img/" .. tonumber(weaponid) .. ".png") dxDrawText(tostring(ammo),sx, sy+53, sx, sy+53,tocolor(255,255,255,255), 1, "default-bold", "center", "center") end dxDrawText("Use '6' to " .. str,sx, sy-18, sx, sy-18,tocolor(255,255,50,255), 1, "default-bold", "center") end end ) addEventHandler("onClientElementDestroy", getRootElement(), function() if(getElementType(source) == "groundweapon") then destroyGroundWeapon(source) end end ) addEventHandler("onClientColShapeHit", getResourceRootElement(), function(element,dimension) local_activate(source, element,dimension) end ) addEventHandler("onClientColShapeLeave", getResourceRootElement(), function(element,dimension) if(element == localPlayer) then currentGround = nil for i,p in ipairs(getElementsByType("colshape")) do if isElementWithinColShape(localPlayer, p) then local_activate(p, localPlayer,true) break end end end end ) addEvent("GroundPickups:createGroundWeapon", true) addEventHandler("GroundPickups:createGroundWeapon",localPlayer,createGroundWeapon) 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