Anthrax Posted April 20, 2014 Share Posted April 20, 2014 Hola a todos, bueno tengo un problema y me gustaría que me ayuden a solucionarlo. cuando inicio el recurso nemesis tengo el siguiente error: Warning: slothbot\sbserver.lua:117: Bad argument @' getElementPosition' [Expected at argument, got boolean] Aqui esta el script del slothbot: addEvent( "onBotFindEnemy", true )--Line 66 function assigntarget ( player ) if ( not wasEventCancelled() ) then if (isElement(player)) and (getElementData (source, "slothbot") == true) then if (getElementData ( source, "target" ) ~= player ) and (getElementType ( player ) == "player") then setElementData ( source, "target", player ) if (getElementData ( source, "status" ) ~= "chasing" ) then assigncontroller(source) setElementData ( source, "status", "chasing" ) end elseif (getElementData ( source, "target" ) ~= player ) and (getElementType ( player ) == "ped") then setElementData ( source, "target", player ) if (getElementData ( source, "status" ) ~= chasing ) then assigncontroller(source) setElementData ( source, "status", "chasing" ) end end end end end addEventHandler( "onBotFindEnemy", getRootElement(), assigntarget )--Line 86 --initializes the ped to start walking the paths addEvent( "onHuntStart", true ) function beginsearch (theped) if (isElement(theped)) then if (getElementData (theped, "slothbot") == true) then setElementData ( theped, "target", nil ) setElementData ( theped, "leader", nil ) assigncontroller(theped) setElementData ( theped, "status", "hunting" ) end end end addEventHandler( "onHuntStart", getRootElement(), beginsearch ) --detects what mode the ped is changed to and activates the correct behaviour (hunting, shooting, following, etc) function changestatus (dataName) if getElementType ( source ) == "ped" and dataName == "status" and (getElementData (source, "slothbot") == true) then if (getElementData ( source, "status" ) ~= "stasis" ) then local allshapes = getElementsByType ( "colshape" ) for SKey,theShape in ipairs(allshapes) do if (isElement(theShape)) then if getElementParent (theShape) == source then destroyElement (theShape) -- removes the target colshape that the ped was running towards in hunt mode end end end end if (getElementData ( source, "status" ) == "chasing" ) then local player = getElementData ( source, "target" ) local oldTx, oldTy, oldTz = getElementPosition( player )--Line 117 local oldPx, oldPy, oldPz = getElementPosition( source ) setTimer ( chase_move, 700, 1, source, oldTx, oldTy, oldTz, oldPx, oldPy, oldPz ) elseif (getElementData ( source, "status" ) == "hunting" ) then setTimer ( findPath, 200, 1, source ) elseif (getElementData ( source, "status" ) == "waiting" ) then setTimer ( wait_mode, 200, 1, source ) elseif (getElementData ( source, "status" ) == "following" ) then local player = getElementData ( source, "leader" ) local oldTx, oldTy, oldTz = getElementPosition( player ) local oldPx, oldPy, oldPz = getElementPosition( source ) setTimer ( follow_move, 700, 1, source, oldTx, oldTy, oldTz, oldPx, oldPy, oldPz ) elseif (getElementData ( source, "status" ) == "guarding" ) then local px,py,pz = getElementPosition( source ) guard_move (source, px, py, pz) end end end addEventHandler( "onElementDataChange", getRootElement(), changestatus ) Este es el script del nemesis function boss ( ) Nemesis = exports [ "slothBot" ]:spawnBot ( -1935.5480957031, 665.44055175781, 47.0, 90, 312, 0, 0, Nemesis, 0, "chasing", true ) exports.extra_health:setElementExtraHealth ( Nemesis, 2500 ) outputChatBox ("Nemesis!!!") myBlip = (createBlipAttachedTo ( Nemesis, 23 )) setElementData ( Nemesis, "nemesis", true ) setTimer(boss, 800000, 1) end addEventHandler ( "onResourceStart", getResourceRootElement(getThisResource()), boss ) Aparte de todo esto, quisiera que el nemesis ataque con cualquier arma. E intentado ponerle y se queda inmovilizado pero con el arma puesta. Muschas gracias por aqyudarme Link to comment
Tomas Posted April 20, 2014 Share Posted April 20, 2014 (edited) Con respecto a lo de la línea 117 al tener un pedazo pequeño del código se es dificil saber el problema. A mi me parece que es porque no está definido "player". Edited April 20, 2014 by Guest Link to comment
alex17 Posted April 20, 2014 Share Posted April 20, 2014 Intenta con esto Nemesis = exports [ "slothBot" ]:spawnBot ( -1935.5480957031, 665.44055175781, 47.0, 90, 312, 0, 0, Nemesis, 38, "hunting", true ) -- el 38 es el id de la minigun D: -- exports.extra_health:setElementExtraHealth ( Nemesis, 2500 ) outputChatBox ("Nemesis!!!") myBlip = (createBlipAttachedTo ( Nemesis, 23 )) setElementData ( Nemesis, "nemesis", true ) setTimer(boss, 800000, 1) end addEventHandler ( "onResourceStart", getResourceRootElement(getThisResource()), boss ) Link to comment
Anthrax Posted April 20, 2014 Author Share Posted April 20, 2014 Con respecto a lo de la línea 117 al tener un pedazo pequeño del código se es dificil saber el problema. A mi me parece que es porque no está definido "player".Y en que parte trata sobre el arma? Aqui te doy el codigo completo del slothbot http://pastebin.com/MggQhLSf y sobre el arma, solo es una ayuda de como debería añadirla correctamente al bot. En el codigo de nemesis no tiene arma. Olvide una cosa muy importante, cuando reinicio el recurso sale un nemesis mas. Lo que deseo es que solo haya un nemesis y no salga otro mas cuando lo reinicio, necesito ayuda en eso Link to comment
Anthrax Posted April 20, 2014 Author Share Posted April 20, 2014 Intenta con esto Nemesis = exports [ "slothBot" ]:spawnBot ( -1935.5480957031, 665.44055175781, 47.0, 90, 312, 0, 0, Nemesis, 38, "hunting", true ) -- el 38 es el id de la minigun D: -- exports.extra_health:setElementExtraHealth ( Nemesis, 2500 ) outputChatBox ("Nemesis!!!") myBlip = (createBlipAttachedTo ( Nemesis, 23 )) setElementData ( Nemesis, "nemesis", true ) setTimer(boss, 800000, 1) end addEventHandler ( "onResourceStart", getResourceRootElement(getThisResource()), boss ) Lo intente, el error de la linea 117 se soluciono, pero el nemesis se queda inmovilizado con la minigun ni ataca . Cuando no tiene arma si ataca. Link to comment
Tomas Posted April 20, 2014 Share Posted April 20, 2014 Sobre el arma puedes utilizar lo que dijo Alex. Y sobre reinciar el resource, puedes usar lo que yo tengo en mi server. local tiempo = getTime() function () if tiempo == 23:30 then exports: ........ Ando del cel, espero sepas comprenderme Link to comment
Tomas Posted April 20, 2014 Share Posted April 20, 2014 Intenta con esto Nemesis = exports [ "slothBot" ]:spawnBot ( -1935.5480957031, 665.44055175781, 47.0, 90, 312, 0, 0, Nemesis, 38, "hunting", true ) -- el 38 es el id de la minigun D: -- exports.extra_health:setElementExtraHealth ( Nemesis, 2500 ) outputChatBox ("Nemesis!!!") myBlip = (createBlipAttachedTo ( Nemesis, 23 )) setElementData ( Nemesis, "nemesis", true ) setTimer(boss, 800000, 1) end addEventHandler ( "onResourceStart", getResourceRootElement(getThisResource()), boss ) Lo intente, el error de la linea 117 se soluciono, pero el nemesis se queda inmovilizado con la minigun ni ataca . Cuando no tiene arma si ataca. Intenta con esto: Nemesis = exports [ "slothBot" ]:spawnBot ( -1935.5480957031, 665.44055175781, 47.0, 90, 312, 0, 0, Nemesis, 38, "chasing", true ) -- el 38 es el id de la minigun D: -- exports.extra_health:setElementExtraHealth ( Nemesis, 2500 ) outputChatBox ("Nemesis!!!") myBlip = (createBlipAttachedTo ( Nemesis, 23 )) setElementData ( Nemesis, "nemesis", true ) setTimer(boss, 800000, 1) end addEventHandler ( "onResourceStart", getResourceRootElement(getThisResource()), boss ) Link to comment
Anthrax Posted April 20, 2014 Author Share Posted April 20, 2014 Intenta con esto: Nemesis = exports [ "slothBot" ]:spawnBot ( -1935.5480957031, 665.44055175781, 47.0, 90, 312, 0, 0, Nemesis, 38, "chasing", true ) -- el 38 es el id de la minigun D: -- exports.extra_health:setElementExtraHealth ( Nemesis, 2500 ) outputChatBox ("Nemesis!!!") myBlip = (createBlipAttachedTo ( Nemesis, 23 )) setElementData ( Nemesis, "nemesis", true ) setTimer(boss, 800000, 1) end addEventHandler ( "onResourceStart", getResourceRootElement(getThisResource()), boss ) Nemesis ataca con la minigun y se mueve! , pero volvio a aparecer el error de la linea 117 Sobre el arma puedes utilizar lo que dijo Alex.Y sobre reinciar el resource, puedes usar lo que yo tengo en mi server. local tiempo = getTime() function () if tiempo == 23:30 then exports: ........ Ando del cel, espero sepas comprenderme No es lo que busco, en mi server tengo el tiempo estatico a 02:00.Lo que quiero es que solo haya un nemesis. Como veras cuando pasa 40 minutos sale otro nemesis y se sigue sumando una y otra vez hasta tener 5 o mas nemesis al mismo tiempo, quiero detener eso D: Link to comment
Tomas Posted April 20, 2014 Share Posted April 20, 2014 Para desaparecer el Nemesis puedes usar un destroyElement junto a un setTimer Con respecto a la linea 117 no se que puede ser Link to comment
alex17 Posted April 20, 2014 Share Posted April 20, 2014 mmm yo tambien tengo un scrip d enemesis y te dire que siempre me aparece el error de la linea 117 lo e tratado de solucionar y no he podido y como no me afecta en nada al scrip de nemesis lo deje asi D: Link to comment
Tomas Posted April 20, 2014 Share Posted April 20, 2014 mmm yo tambien tengo un scrip d enemesis y te dire que siempre me aparece el error de la linea 117 lo e tratado de solucionar y no he podido y como no me afecta en nada al scrip de nemesis lo deje asi D: Me pasa igual, tambien me da el mismo error, aunque a mi me da en la 1177 ._. pero es por lo mismo, intenta eliminando esa función. Porque si con "chasing" da error y con "hunting" no quizás esa función no trabaja con "chasing" y por lo tanto no puede ejecutarse correctamente. Me cuentas como te fue e.e Link to comment
Anthrax Posted April 20, 2014 Author Share Posted April 20, 2014 Para desaparecer el Nemesis puedes usar undestroyElement junto a un setTimer Con respecto a la linea 117 no se que puede ser Funciono! solo sale un solo un nemesis , pero sale un error nuevo Warning: @nemesis\Nemesis.lua:8 Bad argument @ 'DestroyElement' [Expected Element at argument 1] function boss ( ) Nemesis = exports [ "slothBot" ]:spawnBot ( -1935.5480957031, 665.44055175781, 47.0, 90, 312, 0, 0, Nemesis, 0,"hunting", true ) exports.extra_health:setElementExtraHealth ( Nemesis, 2500 ) outputChatBox ("Nemesis!!!") myBlip = (createBlipAttachedTo ( Nemesis, 23 )) setElementData ( Nemesis, "nemesis", true ) setTimer(boss, 60000, 1) setTimer(destroyElement, 60000, 1, Nemesis) setTimer(destroyElement, 60000, 1, myBlip) end addEventHandler ( "onResourceStart", getResourceRootElement(getThisResource()), boss ) mmm yo tambien tengo un scrip d enemesis y te dire que siempre me aparece el error de la linea 117 lo e tratado de solucionar y no he podido y como no me afecta en nada al scrip de nemesis lo deje asi D: Bueno el error 117 lo dejare asi, olvidenlo. Link to comment
Alexs Posted April 20, 2014 Share Posted April 20, 2014 Muchas cosas generan errores, si el recurso funciona y es efectivo en todas sus características es buena idea ignorar el debugscript. Link to comment
Anthrax Posted April 20, 2014 Author Share Posted April 20, 2014 Muchas cosas generan errores, si el recurso funciona y es efectivo en todas sus características es buena idea ignorar el debugscript. Pero los errores no causan problemas en el server?, como ejemplo el [Time Out] en los jugadores Link to comment
Tomas Posted April 21, 2014 Share Posted April 21, 2014 Para desaparecer el Nemesis puedes usar undestroyElement junto a un setTimer Con respecto a la linea 117 no se que puede ser Funciono! solo sale un solo un nemesis , pero sale un error nuevo Warning: @nemesis\Nemesis.lua:8 Bad argument @ 'DestroyElement' [Expected Element at argument 1] function boss ( ) Nemesis = exports [ "slothBot" ]:spawnBot ( -1935.5480957031, 665.44055175781, 47.0, 90, 312, 0, 0, Nemesis, 0,"hunting", true ) exports.extra_health:setElementExtraHealth ( Nemesis, 2500 ) outputChatBox ("Nemesis!!!") myBlip = (createBlipAttachedTo ( Nemesis, 23 )) setElementData ( Nemesis, "nemesis", true ) setTimer(boss, 60000, 1) setTimer(destroyElement, 60000, 1, Nemesis) setTimer(destroyElement, 60000, 1, myBlip) end addEventHandler ( "onResourceStart", getResourceRootElement(getThisResource()), boss ) mmm yo tambien tengo un scrip d enemesis y te dire que siempre me aparece el error de la linea 117 lo e tratado de solucionar y no he podido y como no me afecta en nada al scrip de nemesis lo deje asi D: Bueno el error 117 lo dejare asi, olvidenlo. El error se debe a que si al Nemesis lo matan no existe, es decir no se puede ejecutar destroyElement . Muchas cosas generan errores, si el recurso funciona y es efectivo en todas sus características es buena idea ignorar el debugscript. Pero los errores no causan problemas en el server?, como ejemplo el [Time Out] en los jugadores Por un simple "Warning" no te dará TimedOut. Un super spam llega a dar lag. Y algo extremo si, puede llegar a dar Timed Out Link to comment
alex17 Posted April 21, 2014 Share Posted April 21, 2014 function boss ( ) Nemesis = exports [ "slothBot" ]:spawnBot ( -1935.5480957031, 665.44055175781, 47.0, 90, 312, 0, 0, Nemesis, 0,"hunting", true ) outputChatBox ("Nemesis!!!",getRootElement(), 255, 0, 0, true ) myBlip = createBlipAttachedTo ( Nemesi, 23 ) setElementData(Nemesi, "nemesis",true) if nemesi then exports.extra_health:setElementExtraHealth ( Nemesis, 2500 ) end end setTimer(boss,6000,1) addEvent("onBotWasted",true) addEventHandler("onBotWasted",getRootElement(), function (killer) if (source == Nemesi) then killerName = getPlayerName(killer) outputChatBox ( getPlayerName ( killer ) .. "#0000ff killed the nemesis ",getRootElement(), 255, 255, 255, true ) destroyElement(myBlip) --respawn-- setTimer(boss, 300000 , 1 ) -- 60000 = 1 min end end) prueva con esto aver si te funciona D: Link to comment
Anthrax Posted April 22, 2014 Author Share Posted April 22, 2014 function boss ( ) Nemesis = exports [ "slothBot" ]:spawnBot ( -1935.5480957031, 665.44055175781, 47.0, 90, 312, 0, 0, Nemesis, 0,"hunting", true ) outputChatBox ("Nemesis!!!",getRootElement(), 255, 0, 0, true ) myBlip = createBlipAttachedTo ( Nemesi, 23 ) setElementData(Nemesi, "nemesis",true) if nemesi then exports.extra_health:setElementExtraHealth ( Nemesis, 2500 ) end end setTimer(boss,6000,1) addEvent("onBotWasted",true) addEventHandler("onBotWasted",getRootElement(), function (killer) if (source == Nemesi) then killerName = getPlayerName(killer) outputChatBox ( getPlayerName ( killer ) .. "#0000ff killed the nemesis ",getRootElement(), 255, 255, 255, true ) destroyElement(myBlip) --respawn-- setTimer(boss, 300000 , 1 ) -- 60000 = 1 min end end) prueva con esto aver si te funciona D: Disculpa la demora, estaba muy ocupado estos dias. Probe tu script y me da 2 errores y no aparece el nemesis. Bueno mejor me quedo con el destroyElement junto a un setTimer ese si funciona bien. Ademas gracias sin ti no pude ponerle arma a un boss Gracias a todos doy esto por cerrado Link to comment
alex17 Posted April 22, 2014 Share Posted April 22, 2014 mmm Prueva este ya lo prove y me funciona bien le agrege un par de funciones como dar dinero y un killmessage cuando mates a nemesis tambie te da exp y el blip se destruye cuando matas al nemesi D: function boss () Nemesis = exports [ "slothBot" ]:spawnBot ( -1935.5480957031, 665.44055175781, 47.0, 90, math.random ( 300, 303 ), 0, 0, Nemesis, 38, "chasing", true ) setElementModel ( Nemesis, 100 ) -- en nuemero del skin qe qieres --- outputChatBox ("Nemesis spaweado",getRootElement(), 255, 255, 255, true ) myblip = createBlipAttachedTo ( Nemesis, 23 ) setElementData(Nemesis, "nemesis",true) if Nemsis then exports.extra_health:setElementExtraHealth ( Nemesis, 800 ) end end setTimer(boss,1000,1) addEvent("onBotWasted",true) addEventHandler("onBotWasted",getRootElement(), function (killer) if (source == Nemesis) then givePlayerMoney(killer,math.random(4000,5000)) --- dinero al matarlo -- killerName = getPlayerName(killer) weapon = getPedWeapon(killer) wr, wg, wb = getPlayerNametagColor(killer) exports.killmessages:outputMessage ( {killerName,{"padding",width=3},{"icon",id=weapon or 0},{"padding",width=3},{"color",r=141,g=7,b=220},"Nemesis"},getRootElement(),wr,wg,wb ) -- killmesagge -- outputChatBox ( getPlayerName ( killer ) .. "#0000ff killed the nemesis",getRootElement(), 255, 255, 255, true ) exports.exp_system:addPlayerEXP ( killer, math.random(1, 500)) destroyElement(myblip) -- respawn setTimer(boss, 60000 , 1 ) -- tiempo de respwn 60000 = 1 min -- end end) Link to comment
Recommended Posts