Jump to content

Ayuda slotbot nemesis


Anthrax

Recommended Posts

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

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
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
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

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 :S

Link to comment
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

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! :D, 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 :S

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
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
Para desaparecer el Nemesis puedes usar un

destroyElement junto a un setTimer

Con respecto a la linea 117 no se que puede ser :/

Funciono! solo sale un solo un nemesis :D, 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
Para desaparecer el Nemesis puedes usar un

destroyElement junto a un setTimer

Con respecto a la linea 117 no se que puede ser :/

Funciono! solo sale un solo un nemesis :D, 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
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
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 :D

Link to comment

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
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...