di3g0 Posted August 27, 2021 Share Posted August 27, 2021 Tengo un script de comprar weed , y cuando elimino la weed y luego me acerco al marker a comprar de nuevo no me deja ,me aparece el ultimo mensaje: 'Ya tengo mota' osea que solo puedo comprar una vez y y despues que la elimino no me deja comprar nuevamente. despues la segunda duda es como comprar algo y usarlo un numero de veces, por ejemplo que compre weed o una bebida y que no me dure para siempre, que se acabe y se elimine despues de 4 clics por ejemplo... por ejemplo buyWeed se activa con la H , y con clic derecho startSmokingWeed es para fumar , aunque si no lo elimino con otro comando no se elimina solo, por mas fumadas que le de function buyWeed () local money = getPlayerMoney( source ) if not weed[source] then --if not weed[source] then if money >= 180 then local player = source weed[player] = true -- añadimos la compra a la tabla setPedAnimation( source,"DEALER", "shop_pay") takePlayerMoney(source, 180) animTimers[source] = setTimer(startSmokingWeed,4500,1,source) else outputChatBox( "Vuelve cuando tengas el dinero",source,200,0,0) end else outputChatBox( "Ya tengo mota",source,200,0,0) end end addEvent("buyWeed", true) addEventHandler("buyWeed", root, buyWeed) Esta es la parte del lado del cliente function buyWeed() ---playSound3D("beerbuy.mp3", 496.03125, -76.0400390625, 998.7578125) local isPlayerNearWeedMachine = false; for markerId,markerElement in ipairs (vendingMachineWeedMarker) do if (isElementWithinColShape( localPlayer, markerElement )) and not (isPlayerNearWeedMachine) then isPlayerNearWeedMachine = true; end end if (isPlayerNearWeedMachine) then unbindKey("H","down",buyWeed ) triggerServerEvent( "buyWeed",localPlayer ) end end Link to comment
RekZ Posted August 30, 2021 Share Posted August 30, 2021 Ese error del que hablas no se encuentra en la zona de comprar xd mas bien parece un error de cuando ejecutas la animacion al usar el objeto, puede que ala hora de usar la maria o la bebida o cualquiera de esas cosas no estes restando el que estas usando. Link to comment
alex17" Posted August 30, 2021 Share Posted August 30, 2021 postea la parte de startSmokingWeed . Lo que necesitas en sencillo de solucionar Link to comment
di3g0 Posted September 4, 2021 Author Share Posted September 4, 2021 On 30/08/2021 at 10:44, RekZ said: Ese error del que hablas no se encuentra en la zona de comprar xd mas bien parece un error de cuando ejecutas la animacion al usar el objeto, puede que ala hora de usar la maria o la bebida o cualquiera de esas cosas no estes restando el que estas usando. si tiene que ser eso, porque solo tiene la animacion , lo de restar creeme que lo intenté pero es una de esas cosas que no me salen por nada del mundo xd esta es la parte de usar: function smokeWeedDrag( thePlayer ) setPedAnimation( thePlayer, "GANGS", "smkcig_prtl", 0, false, true, false, true ) ---setTimer( function() --- setElementHealth ( thePlayer, getElementHealth(thePlayer) + 2 )--- WEED da +1 de salud --- end, 5000, 1) end addCommandHandler( "smokeweed_drag", smokeWeedDrag ) On 30/08/2021 at 20:50, alex17" said: postea la parte de startSmokingWeed . Lo que necesitas en sencillo de solucionar claro , es esta: weed = {} local weed = { } local cooldowns = { } local syncTimer = { } function startSmokingWeed ( thePlayer ) if isPedInVehicle(thePlayer) then return end --setElementData ( thePlayer, "smokingweed", not getElementData ( thePlayer, "smokingweed" ) ) if weed[thePlayer] == nil and not isTimer(cooldowns[thePlayer]) then -- Bink control fumando bindKey( thePlayer, "mouse2", "down", "weedDMPS" ) bindKey( thePlayer, "mouse2", "down", "smokeweed_drag" ) bindKey( thePlayer, "M", "down", "smokeweed_drag" ) weed[thePlayer] = nil setPedAnimation( thePlayer, "SMOKING", "M_smk_in", -1, false, true, true, false ) cooldowns[thePlayer] = setTimer( function() end, 3000, 1 ) -- interiors and dimension syncTimer[thePlayer] = setTimer(function() if thePlayer and weed[thePlayer] then setElementInterior( weed[thePlayer], getElementInterior(thePlayer)) setElementDimension( weed[thePlayer], getElementDimension(thePlayer)) elseif isTimer(syncTimer[thePlayer]) then killTimer(syncTimer[thePlayer]) end end, 500, 0) -- Create and attach weed local wed = createObject(1485, 0,0,0) weed[thePlayer] = wed setTimer( function()--- los segundos que tarda en crearse el cigarro - 1600- exports.bone_attach:attachElementToBone(wed,thePlayer,12,0.05,0.1,0.13,0,-180,59) end, 1650, 1)--- end end addCommandHandler("weedDMPS", startSmokingWeed ) Link to comment
alex17" Posted September 5, 2021 Share Posted September 5, 2021 (edited) 4 hours ago, di3g0 said: si tiene que ser eso, porque solo tiene la animacion , lo de restar creeme que lo intenté pero es una de esas cosas que no me salen por nada del mundo xd esta es la parte de usar: function smokeWeedDrag( thePlayer ) setPedAnimation( thePlayer, "GANGS", "smkcig_prtl", 0, false, true, false, true ) ---setTimer( function() --- setElementHealth ( thePlayer, getElementHealth(thePlayer) + 2 )--- WEED da +1 de salud --- end, 5000, 1) end addCommandHandler( "smokeweed_drag", smokeWeedDrag ) claro , es esta: weed = {} local weed = { } local cooldowns = { } local syncTimer = { } function startSmokingWeed ( thePlayer ) if isPedInVehicle(thePlayer) then return end --setElementData ( thePlayer, "smokingweed", not getElementData ( thePlayer, "smokingweed" ) ) if weed[thePlayer] == nil and not isTimer(cooldowns[thePlayer]) then -- Bink control fumando bindKey( thePlayer, "mouse2", "down", "weedDMPS" ) bindKey( thePlayer, "mouse2", "down", "smokeweed_drag" ) bindKey( thePlayer, "M", "down", "smokeweed_drag" ) weed[thePlayer] = nil setPedAnimation( thePlayer, "SMOKING", "M_smk_in", -1, false, true, true, false ) cooldowns[thePlayer] = setTimer( function() end, 3000, 1 ) -- interiors and dimension syncTimer[thePlayer] = setTimer(function() if thePlayer and weed[thePlayer] then setElementInterior( weed[thePlayer], getElementInterior(thePlayer)) setElementDimension( weed[thePlayer], getElementDimension(thePlayer)) elseif isTimer(syncTimer[thePlayer]) then killTimer(syncTimer[thePlayer]) end end, 500, 0) -- Create and attach weed local wed = createObject(1485, 0,0,0) weed[thePlayer] = wed setTimer( function()--- los segundos que tarda en crearse el cigarro - 1600- exports.bone_attach:attachElementToBone(wed,thePlayer,12,0.05,0.1,0.13,0,-180,59) end, 1650, 1)--- end end addCommandHandler("weedDMPS", startSmokingWeed ) TE ELIMINE MUCHAS COSAS INNECESARIAS EN TU CODIGO QUE NO HACIAN NADA. PRUEBA Y ME AVISAS SI FUNCA local weed = { } local syncTimer = { } function startSmokingWeed ( thePlayer ) if not isPedInVehicle(thePlayer) then -- verificamos que no este en un auto if not weed[thePlayer] then -- verificamos que no tenga mota weed[thePlayer] = createObject(1485, 0,0,0) -- creamos su oregano bindKey( thePlayer, "mouse2", "down", "weedDMPS" ) bindKey( thePlayer, "mouse2", "down", "smokeweed_drag" ) bindKey( thePlayer, "M", "down", "smokeweed_drag" ) setTimer( function()--- los segundos que tarda en crearse el cigarro - 1600- exports.bone_attach:attachElementToBone(wed,thePlayer,12,0.05,0.1,0.13,0,-180,59) end , 1650, 1) else outputChatBox("Ya Tienes mota", thePlayer, 255, 0, 0) end end end function smokeWeedDrag( thePlayer ) if weed[thePlayer] then -- verificamos que tenga mota setPedAnimation( thePlayer, "GANGS", "smkcig_prtl", 0, false, true, false, true ) removeCommandHandler("smokeweed_drag", smokeWeedDrag ) -- removemos el comando hasta que termine de fumar su motita setTimer( function() weed[thePlayer] = nil -- como ya se la fumo eliminamos la mota para que pueda comprar otra addCommandHandler( "smokeweed_drag", smokeWeedDrag ) -- le habilitamos nuevamente el comando --setElementHealth ( thePlayer, getElementHealth(thePlayer) + 2 )--- WEED da +1 de salud end , 5000, 1) end end addCommandHandler( "smokeweed_drag", smokeWeedDrag ) Edited September 5, 2021 by alex17" 1 Link to comment
di3g0 Posted September 14, 2021 Author Share Posted September 14, 2021 On 05/09/2021 at 00:22, alex17" said: TE ELIMINE MUCHAS COSAS INNECESARIAS EN TU CODIGO QUE NO HACIAN NADA. PRUEBA Y ME AVISAS SI FUNCA local weed = { } local syncTimer = { } function startSmokingWeed ( thePlayer ) if not isPedInVehicle(thePlayer) then -- verificamos que no este en un auto if not weed[thePlayer] then -- verificamos que no tenga mota weed[thePlayer] = createObject(1485, 0,0,0) -- creamos su oregano bindKey( thePlayer, "mouse2", "down", "weedDMPS" ) bindKey( thePlayer, "mouse2", "down", "smokeweed_drag" ) bindKey( thePlayer, "M", "down", "smokeweed_drag" ) setTimer( function()--- los segundos que tarda en crearse el cigarro - 1600- exports.bone_attach:attachElementToBone(wed,thePlayer,12,0.05,0.1,0.13,0,-180,59) end , 1650, 1) else outputChatBox("Ya Tienes mota", thePlayer, 255, 0, 0) end end end function smokeWeedDrag( thePlayer ) if weed[thePlayer] then -- verificamos que tenga mota setPedAnimation( thePlayer, "GANGS", "smkcig_prtl", 0, false, true, false, true ) removeCommandHandler("smokeweed_drag", smokeWeedDrag ) -- removemos el comando hasta que termine de fumar su motita setTimer( function() weed[thePlayer] = nil -- como ya se la fumo eliminamos la mota para que pueda comprar otra addCommandHandler( "smokeweed_drag", smokeWeedDrag ) -- le habilitamos nuevamente el comando --setElementHealth ( thePlayer, getElementHealth(thePlayer) + 2 )--- WEED da +1 de salud end , 5000, 1) end end addCommandHandler( "smokeweed_drag", smokeWeedDrag ) Te digo que no me sirvió como tal ,pero no sabia que se podia usar asi los addCommandHandler dentro de la funcion y eso me sirvió mucho ya que usé executeCommandHandlers y tal y al final acabó saliendome que hice una tabla y le sumé +1 y puse if tal +1 then , y llamé la otra funcion de parar y funcionó joyita... osea era recontra facil salu2 Link to comment
ғɪʟɪғ Posted September 21, 2021 Share Posted September 21, 2021 A Xd yo tampoco sabia que se podia usar eso XD es como que yo a las ventas que ago les pongo un comandos y ago una funcion que al precional boton se ejecute el comando de la ventana :V luego aprendi a usar guiSetVisible 1 Link to comment
di3g0 Posted September 22, 2021 Author Share Posted September 22, 2021 16 hours ago, ғɪʟɪғ said: A Xd yo tampoco sabia que se podia usar eso XD es como que yo a las ventas que ago les pongo un comandos y ago una funcion que al precional boton se ejecute el comando de la ventana :V luego aprendi a usar guiSetVisible tal cual broh :v yo ya llevo 2 años con esto y recien aprendo estas cosas xd 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