Edikosh9998 Posted August 11, 2011 Share Posted August 11, 2011 Hola a todos, me presento, mi nickname es Edikosh y bueno, estoy en MTA hace muy poco (1 mes aproximadamente). Igualmente, a pesar de haber estado tan poco, me ha interesado tanto saber mas sobre este Mod que decidi entrar al mundo del scripteo. Ademas, yo jugue al SAMP ya muchos años, y les juro que me entere hace un mes que existia esto, y la verdad creo que es mucho mejor. Me presento con una duda, estoy scripteando un script que prende y apaga el motor. Ya eso funciono. Luego, quize poner que cuando prende el motor, aparezca la barra de gasolina. Con la ayuda de castillo, lo puse hacer. Ahora el problema es que quiero saber es si esta bien el script. Quize agregar, una lista de lugares donde se crearia un Marker y que en ese marker, puedas llenar tanque a traves de un comando SOLO si tocas ese Marker. PERDONEN, capaz puede llegar a ser una burrada el script, soy nuevo asi que plis no se burlen : -------------Client Side ------------------------------ puestosGasolina : {{1937.4731,-1772.6284,12.7925,0}} function Gasolina (bool) if bool then ------------------------Label----------------------------------------- combustibleLbl = guiCreateLabel (0.775, 0.85,0.18,0.04,"Gasolina",true) guiLabelSetColor(combustibleLbl,255,255,255) guiLabelSetVerticalAlign(combustibleLbl,"center") guiLabelSetHorizontalAlign(combustibleLbl,"center",false) guiSetFont(combustibleLbl,"default-small") ------------------------Barra de proceso------------------------------- combustibleBarra = guiCreateProgressBar(0.775,0.85,0.18,0.04,true) guiMoveToBack (combustibleBarra) guiProgressBarSetProgress(combustibleBarra,100) else if isElement(combustibleLbl) then destroyElement(combustibleLbl) end if isElement(combustibleBarra) then destroyElement(combustibleBarra) end for i,v in ipairs (puestosGasolina) do gasolinaMarker = createMarker (v[1],v[2],v[3],"cylinder",2,255,255,0,177) setElementData(gasolinaMarker,"FUEL",true) setElementInterior(gasolinaMarker(v[4]) end end end end addEvent("cuandoEntraAlAuto",true) addEventHandler("cuandoEntraAlAuto",getRootElement(),Gasolina) function bajarFuel(vehiculo) if (vehiculo == getPedOccupiedVehicle(getLocalPlayer()) then guiProgressBarSetProgress(combustibleBarra,guiProgressBarGetProgress(combustibleBarra) -5) if (guiProgressBarGetProgress(combustibleBarra) == 0) then toggleControl("accelerate",false) toggleControl("brake_reverse",false) guiSetText(combustibleLbl,"Sin combustible") end end end end setTimer(bajarFuel,10000,0,getLocalPlayer()) function llenartanque(vehiculo) if (vehiculo == getPedOccupedVehicle == true) and (getElementData (vehicle, "FUEL") == true)) then if (guiProgressBarGetProgress(combustibleBarra) <80) then guiProgressBarSetProgress(combustibleBarra,100) toggleControl("accelerate",false) toggleControl("brake_reverse",false) elseif (guiProgressBarGetProgress(combustibleBarra) <90) then outPutChatBox ("No necesitas cargar combustible!") end end addCommandHandler("llenartanque",llenartanque) function timerCombustible(enabled) if(isPlayerInVehicle(getLocalPlayer())) then if(enabled == true) then tanqueTimer = setTimer(llenartanque,10000,0) else killTimer(refillTimer) end else outputChatBox("Necesitas estar en un vehiculo!") end end addEventHandler("cuandoEstaRefilleando",true) addEventHandler("cuandoEstaRefilleando",getRootElement(),timerCombustible) -------------Server Side-------------------------------- function Motor (playerSource,commandName) local theVehicle = getPedOccupiedVehicle (playerSource) local motor = getVehicleEngineState (theVehicle) if motor == false then setVehicleEngineState(theVehicle,true) triggerClientEvent(playerSource,"cuandoEntraAlAuto",playerSource,true) elseif motor == true then setVehicleEngineState(theVehicle,false) triggerClientEvent(playerSource,"cuandoEntraAlAuto",playerSource,false) end end addCommandHandler("motor",Motor) function cuandoEntraAlMarker(player,sDimension) triggerClientEvent("cuandoEstaRefilleando",getRootElement(),true) end addEventHandler("onMarkerHit",getRootElement(),cuandEntraAlMarker) function cuandoSaleDelMarker(player,sDimension) triggerClientEvent("cuandoEstaRefilleando",getRootElement(),false) end addEventHandler("onMarkerLeave",getRootElement(),cuandoSaleDelMarker) Muchas gracias por leer, espero no tenga problemas en el foro porque la verdad siempre hay alguno que quiere armar bardo, burlando, criticando o algo por el estilo. Saludos. Link to comment
Castillo Posted August 11, 2011 Share Posted August 11, 2011 Ok, te explico, lo que estas intentando es crear una tabla por lo que veo, pero esta mal, te dire como es. -------------Client Side ------------------------------ function Gasolina (bool) if bool then ------------------------Label----------------------------------------- combustibleLbl = guiCreateLabel (0.775, 0.85,0.18,0.04,"Gasolina",true) guiLabelSetColor(combustibleLbl,255,255,255) guiLabelSetVerticalAlign(combustibleLbl,"center") guiLabelSetHorizontalAlign(combustibleLbl,"center",false) guiSetFont(combustibleLbl,"default-small") ------------------------Barra de proceso------------------------------- combustibleBarra = guiCreateProgressBar(0.775,0.85,0.18,0.04,true) guiMoveToBack (combustibleBarra) guiProgressBarSetProgress(combustibleBarra,100) else if isElement(combustibleLbl) then destroyElement(combustibleLbl) end if isElement(combustibleBarra) then destroyElement(combustibleBarra) end end end addEvent("cuandoEntraAlAuto",true) addEventHandler("cuandoEntraAlAuto",getRootElement(),Gasolina) function bajarFuel() if (isPedInVehicle(getLocalPlayer())) then guiProgressBarSetProgress(combustibleBarra,guiProgressBarGetProgress(combustibleBarra) -5) if (guiProgressBarGetProgress(combustibleBarra) == 0) then toggleControl("accelerate",false) toggleControl("brake_reverse",false) guiSetText(combustibleLbl,"Sin combustible") end end end setTimer(bajarFuel,10000,0) function llenartanque() if (isPedInVehicle(getLocalPlayer()) and getElementData(getPedOccupedVehicle(getLocalPlayer()), "FUEL") == true) then if (guiProgressBarGetProgress(combustibleBarra) < 80) then guiProgressBarSetProgress(combustibleBarra,100) toggleControl("accelerate",false) toggleControl("brake_reverse",false) elseif (guiProgressBarGetProgress(combustibleBarra) < 90) then outPutChatBox ("No necesitas cargar combustible!") end end end addCommandHandler("llenartanque",llenartanque) function timerCombustible(enabled) if(isPedInVehicle(getLocalPlayer())) then if(enabled == true) then tanqueTimer = setTimer(llenartanque,10000,0) else killTimer(refillTimer) end else outputChatBox("Necesitas estar en un vehiculo!") end end addEvent("cuandoEstaRefilleando",true) addEventHandler("cuandoEstaRefilleando",getRootElement(),timerCombustible) -------------Server Side-------------------------------- local puestosGasolina = { {1937.4731, -1772.6284, 12.7925, 0}, } addEventHandler("onResourceStart",resourceRoot, function () for i,v in ipairs (puestosGasolina) do local gasolinaMarker = createMarker (v[1],v[2],v[3],"cylinder",2,255,255,0,177) if gasolinaMarker then setElementData(gasolinaMarker,"FUEL",true) setElementInterior(gasolinaMarker,v[4]) addEventHandler("onMarkerHit",gasolinaMarker,cuandoEntraAlMarker) addEventHandler("onMarkerLeave",gasolinaMarker,cuandoSaleDelMarker) end end end) function Motor (playerSource,commandName) local theVehicle = getPedOccupiedVehicle (playerSource) local motor = getVehicleEngineState (theVehicle) if motor == false then setVehicleEngineState(theVehicle,true) triggerClientEvent(playerSource,"cuandoEntraAlAuto",playerSource,true) elseif motor == true then setVehicleEngineState(theVehicle,false) triggerClientEvent(playerSource,"cuandoEntraAlAuto",playerSource,false) end end addCommandHandler("motor",Motor) function cuandoEntraAlMarker(player,sDimension) triggerClientEvent(player,"cuandoEstaRefilleando",player,true) end function cuandoSaleDelMarker(player,sDimension) triggerClientEvent(player,"cuandoEstaRefilleando",player,false) end Ok, arregle varios errores en tu script, proba a ver que tal. Link to comment
Edikosh9998 Posted August 11, 2011 Author Share Posted August 11, 2011 Gracias por tu ayuda, pero igual hay algo que falta, que seguramente yo no puse. Porque cuando lo pruebo, no esta apareciendo el GUI. Esta el marker, anda el motor, pero no esta el GUI. Sabes alguna forma de saber cual puede llegar a ser el error o algo?. Yo habia entendido con un tal "debugscript 3" pero no entiendo como usarlo. Saludos. Link to comment
Castillo Posted August 11, 2011 Share Posted August 11, 2011 Copia el client side de nuevo, arregle unos errores. Link to comment
Recommended Posts