Flipi Posted October 12, 2013 Posted October 12, 2013 hola, tengo un problema con el script, la cosa es que funciona todo bien, pero cuando dejo el comando activado y me desconecto del server, en el mtaserver me aparece un error: Error: WARNING: Resource\server.lua:11: Bad 'vehicle' pointer @ 'setVehicleHeadLightColor'(1) Server-side: local discoTimer = {} local discoState = {} function Disco(player,command) local vehicle = getPedOccupiedVehicle(player) if (vehicle) then if discoState[player] == false then discoState[player] = true discoTimer[player] = setTimer( function ( playerVehicle ) setVehicleHeadLightColor( playerVehicle, math.random(0,255), math.random(0,255), math.random(0,255) ) end , 150, 0, vehicle ) outputChatBox( "* #0080FFDisco light Activado!", player, 255, 255, 255, true ) elseif outputChatBox( "* #0080FFDisco light Desactivado!", player, 255, 255, 255, true ) then if discoTimer[player] then killTimer( discoTimer[player] ) discoTimer[player] = nil discoState[player] = false setVehicleHeadLightColor( playerVehicle, 255, 255, 255 ) end end else outputChatBox( "* #0080FFNecesitas un vehiculo para usar el comando!", player, 255, 255, 255, true ) end end addCommandHandler("disco",Disco) function setStateOnStart() for _, players in ipairs( getElementsByType( "player" ) ) do discoState[players] = false end end addEventHandler( "onResourceStart", getResourceRootElement( getThisResource() ), setStateOnStart ); function setStateOnJoin() discoState[player] = false end addEventHandler( "onPlayerJoin", getRootElement(), setStateOnJoin ) function removeStateOnQuit() discoState[player] = false end addEventHandler( "onPlayerQuit", getRootElement(), setStateOnJoin )
~ProtoN! Posted October 12, 2013 Posted October 12, 2013 Hola! El error esta en local vehicle = getPedOccupiedVehicle(player)--Acá estas definiendo la varible con vehicle y en setVehicle... poners playerVehicle function (playerVehicle) -- Acá no hace falta poner playerVehicle ya que no estas poniendo el argumento en ningun otro lado, esto te da errores setVehicleHeadLightColor(vehicleSource --Acá poné vehicle, math.random(0,255), math.random(0,255), math.random(0,255) ) end También en esta líneas function removeStateOnQuit() discoState[player] = false killTimer( discoTimer[player] ) --Acá puse que cuando salga destruya el timer así no se ejecuta mas end addEventHandler( "onPlayerQuit", getRootElement(), setStateOnJoin -- Acá debría ir removeStateOnQuit) y también tenés que agregar la función para que se prendan las luces, sino nunca se van a ver los colores Acá te dejo el script arreglado(Agregá la función para que se prendan las luces que no las agregué ) local discoTimer = {} local discoState = {} function Disco(player,command) local vehicle = getPedOccupiedVehicle(player) if (vehicle) then if discoState[player] == false then discoState[player] = true discoTimer[player] = setTimer( function () setVehicleHeadLightColor(vehicle, math.random(0,255), math.random(0,255), math.random(0,255) ) end, 150, 0, vehicle ) outputChatBox( "* #0080FFDisco light Activado!", player, 255, 255, 255, true ) else outputChatBox( "* #0080FFDisco light Desactivado!", player, 255, 255, 255, true ) if discoTimer[player] then killTimer( discoTimer[player] ) discoState[player] = false setVehicleHeadLightColor(vehicle, 255, 255, 255 ) end end else outputChatBox( "* #0080FFNecesitas un vehiculo para usar el comando!", player, 255, 255, 255, true ) end end addCommandHandler("disco",Disco) function setStateOnStart() for _, players in ipairs( getElementsByType( "player" ) ) do discoState[players] = false end end addEventHandler( "onResourceStart", getResourceRootElement( getThisResource() ), setStateOnStart ); function setStateOnJoin() discoState[player] = false end addEventHandler( "onPlayerJoin", getRootElement(), setStateOnJoin ) function removeStateOnQuit() discoState[player] = false killTimer( discoTimer[player] ) end addEventHandler( "onPlayerQuit", getRootElement(), removeStateOnQuit) ~ProtoN!
Flipi Posted October 12, 2013 Author Posted October 12, 2013 Hola!El error esta en local vehicle = getPedOccupiedVehicle(player)--Acá estas definiendo la varible con vehicle y en setVehicle... poners playerVehicle function (playerVehicle) -- Acá no hace falta poner playerVehicle ya que no estas poniendo el argumento en ningun otro lado, esto te da errores setVehicleHeadLightColor(vehicleSource --Acá poné vehicle, math.random(0,255), math.random(0,255), math.random(0,255) ) end También en esta líneas function removeStateOnQuit() discoState[player] = false killTimer( discoTimer[player] ) --Acá puse que cuando salga destruya el timer así no se ejecuta mas end addEventHandler( "onPlayerQuit", getRootElement(), setStateOnJoin -- Acá debría ir removeStateOnQuit) y también tenés que agregar la función para que se prendan las luces, sino nunca se van a ver los colores Acá te dejo el script arreglado(Agregá la función para que se prendan las luces que no las agregué ) local discoTimer = {} local discoState = {} function Disco(player,command) local vehicle = getPedOccupiedVehicle(player) if (vehicle) then if discoState[player] == false then discoState[player] = true discoTimer[player] = setTimer( function () setVehicleHeadLightColor(vehicle, math.random(0,255), math.random(0,255), math.random(0,255) ) end, 150, 0, vehicle ) outputChatBox( "* #0080FFDisco light Activado!", player, 255, 255, 255, true ) else outputChatBox( "* #0080FFDisco light Desactivado!", player, 255, 255, 255, true ) if discoTimer[player] then killTimer( discoTimer[player] ) discoState[player] = false setVehicleHeadLightColor(vehicle, 255, 255, 255 ) end end else outputChatBox( "* #0080FFNecesitas un vehiculo para usar el comando!", player, 255, 255, 255, true ) end end addCommandHandler("disco",Disco) function setStateOnStart() for _, players in ipairs( getElementsByType( "player" ) ) do discoState[players] = false end end addEventHandler( "onResourceStart", getResourceRootElement( getThisResource() ), setStateOnStart ); function setStateOnJoin() discoState[player] = false end addEventHandler( "onPlayerJoin", getRootElement(), setStateOnJoin ) function removeStateOnQuit() discoState[player] = false killTimer( discoTimer[player] ) end addEventHandler( "onPlayerQuit", getRootElement(), removeStateOnQuit) SAbes que no me funciona , pongo el comando y me dice solo cuando se desactiva, pero no realiza la funcion cuando pongo esto en la linea 16 funciona, pero aparece el mismo error al desconectarme del servidor elseif outputChatBox( "* #0080FFDisco light Desactivado!", player, 255, 255, 255, true ) then
~ProtoN! Posted October 13, 2013 Posted October 13, 2013 Poné el tiempo en el server de noche masomenos las 00:00 hs Como te dije antes, tenes que agregar la funcion para que se prendan las luces! Usá setVehicleOverrideLights(vehicle theVehicle, int value) ~ProtoN!
Flipi Posted October 13, 2013 Author Posted October 13, 2013 Poné el tiempo en el server de noche masomenos las 00:00 hsComo te dije antes, tenes que agregar la funcion para que se prendan las luces! Usá setVehicleOverrideLights(vehicle theVehicle, int value) no entiendo
~ProtoN! Posted October 13, 2013 Posted October 13, 2013 El script lo hiciste vos? o no tenés ni idea de como scriptear? Acá te dejo el script con lo de las luces, no lo puedo probar por que no estoy en mi pc. Probalo y decime que tal local discoTimer = {} local discoState = {} function Disco(player,command) local vehicle = getPedOccupiedVehicle(player) if (vehicle) then if discoState[player] == false then discoState[player] = true discoTimer[player] = setTimer( function () setVehicleOverrideLights(vehicle, 2) setVehicleHeadLightColor(vehicle, math.random(0,255), math.random(0,255), math.random(0,255) ) end, 150, 0, vehicle ) outputChatBox( "* #0080FFDisco light Activado!", player, 255, 255, 255, true ) else outputChatBox( "* #0080FFDisco light Desactivado!", player, 255, 255, 255, true ) if discoTimer[player] then killTimer( discoTimer[player] ) discoState[player] = false setVehicleOverrideLights(vehicle, 1) setVehicleHeadLightColor(vehicle, 255, 255, 255 ) end end else outputChatBox( "* #0080FFNecesitas un vehiculo para usar el comando!", player, 255, 255, 255, true ) end end addCommandHandler("disco",Disco) function setStateOnStart() for _, players in ipairs( getElementsByType( "player" ) ) do discoState[players] = false end end addEventHandler( "onResourceStart", getResourceRootElement( getThisResource() ), setStateOnStart ); function setStateOnJoin() discoState[player] = false end addEventHandler( "onPlayerJoin", getRootElement(), setStateOnJoin ) function removeStateOnQuit() discoState[player] = false killTimer( discoTimer[player] ) end addEventHandler( "onPlayerQuit", getRootElement(), removeStateOnQuit) ~ProtoN!
Flipi Posted October 13, 2013 Author Posted October 13, 2013 El script lo hiciste vos? o no tenés ni idea de como scriptear?Acá te dejo el script con lo de las luces, no lo puedo probar por que no estoy en mi pc. Probalo y decime que tal local discoTimer = {} local discoState = {} function Disco(player,command) local vehicle = getPedOccupiedVehicle(player) if (vehicle) then if discoState[player] == false then discoState[player] = true discoTimer[player] = setTimer( function () setVehicleOverrideLights(vehicle, 2) setVehicleHeadLightColor(vehicle, math.random(0,255), math.random(0,255), math.random(0,255) ) end, 150, 0, vehicle ) outputChatBox( "* #0080FFDisco light Activado!", player, 255, 255, 255, true ) else outputChatBox( "* #0080FFDisco light Desactivado!", player, 255, 255, 255, true ) if discoTimer[player] then killTimer( discoTimer[player] ) discoState[player] = false setVehicleOverrideLights(vehicle, 1) setVehicleHeadLightColor(vehicle, 255, 255, 255 ) end end else outputChatBox( "* #0080FFNecesitas un vehiculo para usar el comando!", player, 255, 255, 255, true ) end end addCommandHandler("disco",Disco) function setStateOnStart() for _, players in ipairs( getElementsByType( "player" ) ) do discoState[players] = false end end addEventHandler( "onResourceStart", getResourceRootElement( getThisResource() ), setStateOnStart ); function setStateOnJoin() discoState[player] = false end addEventHandler( "onPlayerJoin", getRootElement(), setStateOnJoin ) function removeStateOnQuit() discoState[player] = false killTimer( discoTimer[player] ) end addEventHandler( "onPlayerQuit", getRootElement(), removeStateOnQuit) El script lo hice yo, pero a lo que me refiero es que no tiene nada que ver lo de las luces, ya que el problema es que cuando dejo el comando activado y me desconecto del server aparece este error: Resource\server.lua:11: Bad 'vehicle' pointer @ 'setVehicleHeadLightColor'(1). Entonce nose cual es el problema, ya que con el killtimer tampoco funciona ...
~ProtoN! Posted October 13, 2013 Posted October 13, 2013 Copiá el código que te di yo y usalo en tu script, el problema del setVehicleHeadLightColor() ya te lo solucioné. Y te solucioné un par de errores mas que tenía el script. ~ProtoN!
Flipi Posted October 13, 2013 Author Posted October 13, 2013 Copiá el código que te di yo y usalo en tu script, el problema del setVehicleHeadLightColor() ya te lo solucioné.Y te solucioné un par de errores mas que tenía el script. probé el que me diste y tampoco me funciona
~ProtoN! Posted October 13, 2013 Posted October 13, 2013 que raro, yo lo probé y me andubo. Mañana lo reviso bien, es que estoy en una netbook y se traba mucho ~ProtoN!
Flipi Posted October 13, 2013 Author Posted October 13, 2013 que raro, yo lo probé y me andubo.Mañana lo reviso bien, es que estoy en una netbook y se traba mucho ah dle, jeje no te preocupes, igual gracias
Sensacion Posted October 13, 2013 Posted October 13, 2013 El script lo hice yo, pero a lo que me refiero es que no tiene nada que ver lo de las luces, ya que el problema es que cuando dejo el comando activado y me desconecto del server aparece este error: Resource\server.lua:11: Bad 'vehicle' pointer @ 'setVehicleHeadLightColor'(1). Entonce nose cual es el problema, ya que con el killtimer tampoco funciona ... está mal discoState[player] = false en onPlayerJoin y en onPlayerQuit, reemplaza player por source.
Flipi Posted October 13, 2013 Author Posted October 13, 2013 El script lo hice yo, pero a lo que me refiero es que no tiene nada que ver lo de las luces, ya que el problema es que cuando dejo el comando activado y me desconecto del server aparece este error: Resource\server.lua:11: Bad 'vehicle' pointer @ 'setVehicleHeadLightColor'(1). Entonce nose cual es el problema, ya que con el killtimer tampoco funciona ... está mal discoState[player] = false en onPlayerJoin y en onPlayerQuit, reemplaza player por source. Me sigue apareciendo el mismo error cuando dejo el comando activado y me desconecto del server: Error: WARNING: script\server.lua:12: Bad 'vehicle' pointer @ 'setVehicleHeadLightColor'(1)
Recommended Posts