Jump to content

Ayuda con Algunos Errores, Causan Aumento de CPU


Narutimmy

Recommended Posts

Hola todos soy naru xD... 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 :)

RIn9QWB.png

  
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) 
  
  
  

----------------

AEdFaF0.png

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) 

------------

wSAedbu.png

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

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

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
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
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...