Flipi Posted October 12, 2013 Share 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 ) Link to comment
~ProtoN! Posted October 12, 2013 Share 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) Link to comment
Flipi Posted October 12, 2013 Author Share 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 Link to comment
~ProtoN! Posted October 13, 2013 Share 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) Link to comment
Flipi Posted October 13, 2013 Author Share 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 Link to comment
~ProtoN! Posted October 13, 2013 Share 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) Link to comment
Flipi Posted October 13, 2013 Author Share 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 ... Link to comment
~ProtoN! Posted October 13, 2013 Share 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. Link to comment
Flipi Posted October 13, 2013 Author Share 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 Link to comment
~ProtoN! Posted October 13, 2013 Share 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 Link to comment
Flipi Posted October 13, 2013 Author Share 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 Link to comment
Sensacion Posted October 13, 2013 Share 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. Link to comment
Flipi Posted October 13, 2013 Author Share 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) Link to comment
Recommended Posts