Narutimmy Posted March 25, 2015 Share Posted March 25, 2015 Hola todos soy naru ... tngo mucho sin pasarme por aca pero ahora vengo a pedir ayuda tengo algunos erroes de debug que simplemente ya no puedo resolver he arreglado muchos pero estos simpemente no . Tengo un VPS de 1GB Ram y 1CPU todo bien cuando inicio el sv me da un 20% de consumo de CPU , pero al pasar algunos dias u horas comienza a aumentar llegando a 80% aonque solo esten 5usrrs online o incluso vacio. Yo pienso que es alguna funcion que se cicla y genera ese consumo lo digo porque en debugscript no dejan de salir estos errores se repiten una y otra vez sin parar. Terminaod la intro vengo con los Erroes agradeceria mucho al que me ayido elementWeaponbBack = {} function weaponSwitchbBack ( previousWeaponID, currentWeaponID ) local weapon1 = getElementData(source,"currentweapon_2") if not weapon1 then return end local ammoData1,weapID1 = getWeaponAmmoType(weapon1) local x,y,z = getElementPosition(source) local rx,ry,rz = getElementRotation(source) if previousWeaponID == weapID1 then if elementWeaponbBack[source] then detachElementFromBone(elementWeaponbBack[source]) destroyElement(elementWeaponbBack[source]) elementWeaponbBack[source] = false end if (getElementData(source,"SkinBug") == true) then return else if weapon1 == "Machete" then elementWeaponbBack[source] = createObject(339,x,y,z) setObjectScale(elementWeaponbBack[source],0.999) elseif weapon1 == "Katana" then elementWeaponbBack[source] = createObject(339,x,y,z) setObjectScale(elementWeaponbBack[source],0.999) elseif weapon1 == "Fire Axe" then elementWeaponbBack[source] = createObject(339,x,y,z) setObjectScale(elementWeaponbBack[source],0.999) elseif weapon1 == "Golf Club" then elementWeaponbBack[source] = createObject(333,x,y,z) setObjectScale(elementWeaponbBack[source],0.999) elseif weapon1 == "Baseball Bat" then elementWeaponbBack[source] = createObject(336,x,y,z) setObjectScale(elementWeaponbBack[source],0.999) elseif weapon1 == "Shovel" then elementWeaponbBack[source] = createObject(337,x,y,z) setObjectScale(elementWeaponbBack[source],0.999) elseif weapon1 == "--" then else elementWeaponbBack[source] = createObject(getWeaponObjectID(weapID1),x,y,z) ----LINEA 606 setObjectScale(elementWeaponbBack[source],0.875) ----LINEA 607 end end if elementBackpack[source] then attachElementToBone(elementWeaponbBack[source],source,3,-0.18,-0.2,0.3,-0.1,180,180) else attachElementToBone(elementWeaponbBack[source],source,3,-0.18,-0.1,0.3,-0.1,225,180) end elseif currentWeaponID == weapID1 then detachElementFromBone(elementWeaponbBack[source]) destroyElement(elementWeaponbBack[source]) ----LINEA 617 elementWeaponbBack[source] = false end end addEventHandler ( "onPlayerWeaponSwitch", getRootElement(), weaponSwitchbBack ) addEventHandler("onElementModelChange", getRootElement(), weaponSwitchbBack) ---------------- function setVehiclesFuelPerMinute() for i, veh in ipairs(getElementsByType("vehicle")) do if getVehicleEngineState(veh) == true then if getElementData(getElementData(veh, "parent"), "fuel") >= 0 then ---LINEA 2324 setElementData(getElementData(veh, "parent"), "fuel", getElementData(getElementData(veh, "parent"), "fuel") - getVehicleFuelRemove(getElementModel(veh), getElementData(veh, "parent"))) else setVehicleEngineState(veh, false) end end end end setTimer(setVehiclesFuelPerMinute, 10000, 0) ------------ bone_0,bone_t,bone_f = {},{},{} bone_0[1],bone_t[1],bone_f[1] = 5,nil,6 --head bone_0[2],bone_t[2],bone_f[2] = 4,5,8 --neck bone_0[3],bone_t[3],bone_f[3] = 3,nil,31 --spine bone_0[4],bone_t[4],bone_f[4] = 1,2,3 --pelvis bone_0[5],bone_t[5],bone_f[5] = 4,32,5 --left clavicle bone_0[6],bone_t[6],bone_f[6] = 4,22,5 --right clavicle bone_0[7],bone_t[7],bone_f[7] = 32,33,34 --left shoulder bone_0[8],bone_t[8],bone_f[8] = 22,23,24 --right shoulder bone_0[9],bone_t[9],bone_f[9] = 33,34,32 --left elbow bone_0[10],bone_t[10],bone_f[10] = 23,24,22 --right elbow bone_0[11],bone_t[11],bone_f[11] = 34,35,36 --left hand bone_0[12],bone_t[12],bone_f[12] = 24,25,26 --right hand bone_0[13],bone_t[13],bone_f[13] = 41,42,43 --left hip bone_0[14],bone_t[14],bone_f[14] = 51,52,53 --right hip bone_0[15],bone_t[15],bone_f[15] = 42,43,44 --left knee bone_0[16],bone_t[16],bone_f[16] = 52,53,54 --right knee bone_0[17],bone_t[17],bone_f[17] = 43,42,44 --left ankle bone_0[18],bone_t[18],bone_f[18] = 53,52,54 --right angle bone_0[19],bone_t[19],bone_f[19] = 44,43,42 --left foot bone_0[20],bone_t[20],bone_f[20] = 54,53,52 --right foot function putAttachedElementsOnBones() for element,ped in pairs(attached_ped) do if not isElement(element) then clearAttachmentData(element) elseif isElementStreamedIn(ped) then local bone = attached_bone[element] local x,y,z = getPedBonePosition(ped,bone_0[bone]) local xx,xy,xz,yx,yy,yz,zx,zy,zz = getBoneMatrix(ped,bone) local offx,offy,offz = attached_x[element],attached_y[element],attached_z[element] local offrx,offry,offrz = attached_rx[element],attached_ry[element],attached_rz[element] local objx = x+offx*xx+offy*yx+offz*zx local objy = y+offx*xy+offy*yy+offz*zy local objz = z+offx*xz+offy*yz+offz*zz local rxx,rxy,rxz,ryx,ryy,ryz,rzx,rzy,rzz = getMatrixFromEulerAngles(offrx,offry,offrz) local txx = rxx*xx+rxy*yx+rxz*zx local txy = rxx*xy+rxy*yy+rxz*zy local txz = rxx*xz+rxy*yz+rxz*zz local tyx = ryx*xx+ryy*yx+ryz*zx local tyy = ryx*xy+ryy*yy+ryz*zy local tyz = ryx*xz+ryy*yz+ryz*zz local tzx = rzx*xx+rzy*yx+rzz*zx local tzy = rzx*xy+rzy*yy+rzz*zy local tzz = rzx*xz+rzy*yz+rzz*zz offrx,offry,offrz = getEulerAnglesFromMatrix(txx,txy,txz,tyx,tyy,tyz,tzx,tzy,tzz) setElementPosition(element,objx,objy,objz) setElementRotation(element,offrx,offry,offrz,"ZXY") else setElementPosition(element,getElementPosition(ped)) end end end addEventHandler("onClientPreRender",root,putAttachedElementsOnBones) Muchas Gracias de antemano Link to comment
Tomas Posted March 25, 2015 Share Posted March 25, 2015 Sobre el error 1, deberías postear las funciones que son llamadas en ese trozo de código, ya que el error podría venir de ahí, también vi que en una parte dice if ... == true then return else , ¿lo que quieres es cancelar la función o proseguir al else? (lo cuál no estoy muy seguro si es posible). Sobre el error 2, function setVehiclesFuelPerMinute() for i, veh in ipairs(getElementsByType("vehicle")) do if getVehicleEngineState(veh) == true then local parent = getElementData(veh, "parent") if not parent then return end if parent >= 0 then ---LINEA 2324 setElementData(parent, "fuel",parent, "fuel") - getVehicleFuelRemove(getElementModel(veh), parent)) else setVehicleEngineState(veh, false) end end end end setTimer(setVehiclesFuelPerMinute, 10000, 0) Tercer error, créditos a Arran por el fix, bone_0,bone_t,bone_f = {},{},{} bone_0[1],bone_t[1],bone_f[1] = 5,nil,6 --head bone_0[2],bone_t[2],bone_f[2] = 4,5,8 --neck bone_0[3],bone_t[3],bone_f[3] = 3,nil,31 --spine bone_0[4],bone_t[4],bone_f[4] = 1,2,3 --pelvis bone_0[5],bone_t[5],bone_f[5] = 4,32,5 --left clavicle bone_0[6],bone_t[6],bone_f[6] = 4,22,5 --right clavicle bone_0[7],bone_t[7],bone_f[7] = 32,33,34 --left shoulder bone_0[8],bone_t[8],bone_f[8] = 22,23,24 --right shoulder bone_0[9],bone_t[9],bone_f[9] = 33,34,32 --left elbow bone_0[10],bone_t[10],bone_f[10] = 23,24,22 --right elbow bone_0[11],bone_t[11],bone_f[11] = 34,35,36 --left hand bone_0[12],bone_t[12],bone_f[12] = 24,25,26 --right hand bone_0[13],bone_t[13],bone_f[13] = 41,42,43 --left hip bone_0[14],bone_t[14],bone_f[14] = 51,52,53 --right hip bone_0[15],bone_t[15],bone_f[15] = 42,43,44 --left knee bone_0[16],bone_t[16],bone_f[16] = 52,53,54 --right knee bone_0[17],bone_t[17],bone_f[17] = 43,42,44 --left ankle bone_0[18],bone_t[18],bone_f[18] = 53,52,54 --right angle bone_0[19],bone_t[19],bone_f[19] = 44,43,42 --left foot bone_0[20],bone_t[20],bone_f[20] = 54,53,52 --right foot function putAttachedElementsOnBones() for element,ped in pairs(attached_ped) do if not isElement(element) then clearAttachmentData(element) elseif isElementStreamedIn(ped) then local bone = attached_bone[element] local x,y,z = getPedBonePosition(ped,bone_0[bone]) local xx,xy,xz,yx,yy,yz,zx,zy,zz = getBoneMatrix(ped,bone) local offx,offy,offz = attached_x[element],attached_y[element],attached_z[element] local offrx,offry,offrz = attached_rx[element],attached_ry[element],attached_rz[element] local objx = x+offx*xx+offy*yx+offz*zx local objy = y+offx*xy+offy*yy+offz*zy local objz = z+offx*xz+offy*yz+offz*zz if (not tonumber(tostring(objx)) or not tonumber(tostring(objy)) or not tonumber(tostring(objz))) then return end if (not tonumber(tostring(offrx)) or not tonumber(tostring(offry)) or not tonumber(tostring(offrz))) then return end local rxx,rxy,rxz,ryx,ryy,ryz,rzx,rzy,rzz = getMatrixFromEulerAngles(offrx,offry,offrz) local txx = rxx*xx+rxy*yx+rxz*zx local txy = rxx*xy+rxy*yy+rxz*zy local txz = rxx*xz+rxy*yz+rxz*zz local tyx = ryx*xx+ryy*yx+ryz*zx local tyy = ryx*xy+ryy*yy+ryz*zy local tyz = ryx*xz+ryy*yz+ryz*zz local tzx = rzx*xx+rzy*yx+rzz*zx local tzy = rzx*xy+rzy*yy+rzz*zy local tzz = rzx*xz+rzy*yz+rzz*zz offrx,offry,offrz = getEulerAnglesFromMatrix(txx,txy,txz,tyx,tyy,tyz,tzx,tzy,tzz) setElementPosition(element,objx,objy,objz) setElementRotation(element,offrx,offry,offrz,"ZXY") else setElementPosition(element,getElementPosition(ped)) end end end addEventHandler("onClientPreRender",root,putAttachedElementsOnBones) De todos modos, el error 3 es un debug client-side, no afectaría la CPU de tu máquina, sino la de tu cliente, de todas formas recomiendo tener un debug limpio ^^ Link to comment
Narutimmy Posted March 25, 2015 Author Share Posted March 25, 2015 Buenas @Tomas Gracias por la ayuda sobre el error 1 Si lo que pasa es que ciertas "skins" o models al ponerles un item en la espalda con attach y eso se bugean osea se ven flotando o cosas asi asi que puse que si el user tiene la data "SkinBug" no aga nada y si no la tiene continua (con el else) creo tambien se puede usar if not pero nose si ahi alguna diferencia. Y sobre lo de los eventos estna hasta abajo lo que hace uno es cuando cambias de model te elimina los objetos en el cuerpo y te los pone de vuelta y el segundo de onPlayerWeaponSwitch es cuando cambias de arma con la rueda del raton para que la arma dem ano pase a la espalda y la de espalda a la mano. Link to comment
Tomas Posted March 26, 2015 Share Posted March 26, 2015 Buenas @Tomas Gracias por la ayuda sobre el error 1 Si lo que pasa es que ciertas "skins" o models al ponerles un item en la espalda con attach y eso se bugean osea se ven flotando o cosas asi asi que puse que si el user tiene la data "SkinBug" no aga nada y si no la tiene continua (con el else) creo tambien se puede usar if not pero nose si ahi alguna diferencia.Y sobre lo de los eventos estna hasta abajo lo que hace uno es cuando cambias de model te elimina los objetos en el cuerpo y te los pone de vuelta y el segundo de onPlayerWeaponSwitch es cuando cambias de arma con la rueda del raton para que la arma dem ano pase a la espalda y la de espalda a la mano. Al código lo interpreté, cuando me refería a funciones quería decir las funciones que son llamadas dentro de la función de los eventos que antes mencionaste, dime cuáles errores continúan en otra reply porque todo quedó muy entreverado Sobre el error 1; intenta con esto: elementWeaponbBack = {} function weaponSwitchbBack ( previousWeaponID, currentWeaponID ) local weapon1 = getElementData(source,"currentweapon_2") if not weapon1 then return end local ammoData1,weapID1 = getWeaponAmmoType(weapon1) local x,y,z = getElementPosition(source) local rx,ry,rz = getElementRotation(source) if getElementData(source,"SkinBug") then return end if previousWeaponID == weapID1 then if elementWeaponbBack[source] then detachElementFromBone(elementWeaponbBack[source]) destroyElement(elementWeaponbBack[source]) elementWeaponbBack[source] = false end if weapon1 == "Machete" then elementWeaponbBack[source] = createObject(339,x,y,z) setObjectScale(elementWeaponbBack[source],0.999) elseif weapon1 == "Katana" then elementWeaponbBack[source] = createObject(339,x,y,z) setObjectScale(elementWeaponbBack[source],0.999) elseif weapon1 == "Fire Axe" then elementWeaponbBack[source] = createObject(339,x,y,z) setObjectScale(elementWeaponbBack[source],0.999) elseif weapon1 == "Golf Club" then elementWeaponbBack[source] = createObject(333,x,y,z) setObjectScale(elementWeaponbBack[source],0.999) elseif weapon1 == "Baseball Bat" then elementWeaponbBack[source] = createObject(336,x,y,z) setObjectScale(elementWeaponbBack[source],0.999) elseif weapon1 == "Shovel" then elementWeaponbBack[source] = createObject(337,x,y,z) setObjectScale(elementWeaponbBack[source],0.999) elseif weapon1 == "--" then else elementWeaponbBack[source] = createObject(getWeaponObjectID(weapID1),x,y,z) ----LINEA 606 setObjectScale(elementWeaponbBack[source],0.875) ----LINEA 607 end if elementBackpack[source] then attachElementToBone(elementWeaponbBack[source],source,3,-0.18,-0.2,0.3,-0.1,180,180) else attachElementToBone(elementWeaponbBack[source],source,3,-0.18,-0.1,0.3,-0.1,225,180) end elseif currentWeaponID == weapID1 then detachElementFromBone(elementWeaponbBack[source]) destroyElement(elementWeaponbBack[source]) ----LINEA 617 elementWeaponbBack[source] = false end end addEventHandler ( "onPlayerWeaponSwitch", getRootElement(), weaponSwitchbBack ) addEventHandler("onElementModelChange", getRootElement(), weaponSwitchbBack) Link to comment
Narutimmy Posted March 26, 2015 Author Share Posted March 26, 2015 Gracias voy a probar y te cuento. Link to comment
Recommended Posts