Neving Posted March 2, 2016 Share Posted March 2, 2016 Hola buenas, estoy tratando de cambiar el nombre de los vehículos en mi server de DayZ pero soy incapaz. Me refiero al nombre que sale cuando te acercas a los vehículos por ejemplo, no una vez que te metes en ellos y aparece el cartel en grande con el nombre del vehículo. ¿Qué debo hacer? Un saludo y gracias. Link to comment
Tomas Posted March 2, 2016 Share Posted March 2, 2016 Supongo que el draw utiliza getVehicleNameFromModel, postea la parte del script en la cuál se obtiene el nombre y te ayudo a crear excepciones Link to comment
Neving Posted March 2, 2016 Author Share Posted March 2, 2016 Tomas said: Supongo que el draw utiliza getVehicleNameFromModel, postea la parte del script en la cuál se obtiene el nombre y te ayudo a crear excepciones El problema es que no encuentro la función dxDrawText (supongo que utilizará esta) la cual se encarga de escribir el nombre de los vehículos. Link to comment
DBY Posted March 2, 2016 Share Posted March 2, 2016 Creo que está en survivorSystem_c si mal no recuerdo. Puedes hacer una tabla con index el modelo o el nombre del vehículo. vNames = { ["Regina"] = "Caja con ruedas" } Y en el dxDraw pones vNames[getVehicleNameFromModel(getElementModel(vehicle))] Link to comment
Neving Posted March 3, 2016 Author Share Posted March 3, 2016 AFK said: Creo que está en survivorSystem_c si mal no recuerdo. Puedes hacer una tabla con index el modelo o el nombre del vehículo. vNames = { ["Regina"] = "Caja con ruedas" } Y en el dxDraw pones vNames[getVehicleNameFromModel(getElementModel(vehicle))] He estado probando tu código aquÍ: local x,y,z = getElementPosition(getLocalPlayer()) for i,veh in ipairs(getElementsByType("vehicle")) do local px,py,pz = getElementPosition (veh) local vehID = getElementModel(veh) local vehicle = getPedOccupiedVehicle(getLocalPlayer()) if veh ~= vehicle then if vehID ~= 548 then local pdistance = getDistanceBetweenPoints3D ( x,y,z,px,py,pz ) if pdistance <= 6 then --Get screenposition local sx,sy = getScreenFromWorldPosition ( px, py, pz+0.95, 0.06 ) if sx and sy then --Draw Vehicle vNames = { ["Sabre"] = "Cajaconruedas" } local w = dxGetTextWidth(getVehicleName(veh),1.02,"default-bold") dxDrawText ( vNames[getVehicleNameFromModel(getElementModel(vehicle))], sx-(w/2), sy, sx-(w/2), sy, tocolor ( 100, 255, 100, 200 ), 1.02, "default-bold" ) <---- 1322 end end end end end Y esto es lo que me muestra el debugscript3 He estado probando a cambiar el nombre por el modelo y a quitar la función de getVehicleNameFromModel pero tampoco hay solución. Link to comment
Sasu Posted March 3, 2016 Share Posted March 3, 2016 local x,y,z = getElementPosition(getLocalPlayer()) for i,veh in ipairs(getElementsByType("vehicle")) do local px,py,pz = getElementPosition (veh) local vehID = getElementModel(veh) local vehicle = getPedOccupiedVehicle(getLocalPlayer()) if veh ~= vehicle then if vehID ~= 548 then local pdistance = getDistanceBetweenPoints3D ( x,y,z,px,py,pz ) if pdistance <= 6 then --Get screenposition local sx,sy = getScreenFromWorldPosition ( px, py, pz+0.95, 0.06 ) if sx and sy then --Draw Vehicle vNames = { ["Sabre"] = "Cajaconruedas" } local vName = getVehicleName(veh) vName = vNames[vName] or vName local w = dxGetTextWidth(vName,1.02,"default-bold") dxDrawText ( vName, sx-(w/2), sy, sx-(w/2), sy, tocolor ( 100, 255, 100, 200 ), 1.02, "default-bold" ) <---- 1322 end end end end end Te recomiendo poner la tabla afuera de la funcion. Link to comment
Dokitoh Posted March 3, 2016 Share Posted March 3, 2016 Neving said: AFK said: Creo que está en survivorSystem_c si mal no recuerdo. Puedes hacer una tabla con index el modelo o el nombre del vehículo. vNames = { ["Regina"] = "Caja con ruedas" } Y en el dxDraw pones vNames[getVehicleNameFromModel(getElementModel(vehicle))] He estado probando tu código aquÍ: local x,y,z = getElementPosition(getLocalPlayer()) for i,veh in ipairs(getElementsByType("vehicle")) do local px,py,pz = getElementPosition (veh) local vehID = getElementModel(veh) local vehicle = getPedOccupiedVehicle(getLocalPlayer()) if veh ~= vehicle then if vehID ~= 548 then local pdistance = getDistanceBetweenPoints3D ( x,y,z,px,py,pz ) if pdistance <= 6 then --Get screenposition local sx,sy = getScreenFromWorldPosition ( px, py, pz+0.95, 0.06 ) if sx and sy then --Draw Vehicle vNames = { ["Sabre"] = "Cajaconruedas" } local w = dxGetTextWidth(getVehicleName(veh),1.02,"default-bold") dxDrawText ( vNames[getVehicleNameFromModel(getElementModel(vehicle))], sx-(w/2), sy, sx-(w/2), sy, tocolor ( 100, 255, 100, 200 ), 1.02, "default-bold" ) <---- 1322 end end end end end Y esto es lo que me muestra el debugscript3 He estado probando a cambiar el nombre por el modelo y a quitar la función de getVehicleNameFromModel pero tampoco hay solución. Prueba a sustituir: getElementModel(vehicle) por esto: getElementModel(veh) Link to comment
Neving Posted March 3, 2016 Author Share Posted March 3, 2016 Vale, ya lo conseguí, gracias a todos Link to comment
Recommended Posts