• TibiaFace

    Tibiaface | Una comunidad Open Tibia donde encontras : mapas, scripts, Otserver, npc y amigos etc ...

    .
    demo menumenu

    Afiliados



    Votar:

    [Spells] Invisible Spell

    Compartir:

    Ver el tema anterior Ver el tema siguiente Ir abajo  Mensaje (Página 1 de 1.)

    1[Spells] Invisible Spell Empty [Spells] Invisible Spell Jue Dic 03, 2020 11:38 am

    SoyFabi

    SoyFabi
    Miembro
    Miembro
    Descripcion escribió:Buenas ando trabajando en un spell que te pone Invisible por un breve tiempo, en este caso uso el comando /ghost pero en player eso hace que los jugadores no te puedan atacar ni los monsters, ahi todo bien, pero estoy intentado que el invisible se desactive cuando alguien tira un spell en area, es decir como el de Warlock que se pone invisible por un breve tiempo pero cuando le tiras una runa como exevo gran mas tera, se releva el warlock es decir se desactiva la invisibilidad...

    Aqui el scripts que uso para ponerse en Invisible.


    Código:
    function onCastSpell(cid, var)
       parameters = {cid=cid}
       setPlayerGroupId(cid, 2) -- GROUP 2 PARA USAR EL COMANDO /GHOST
       doCreatureExecuteTalkAction(cid, "/ghost", TRUE)
       doSendMagicEffect(getCreaturePosition(cid), 10) --EFECTO QUE SALDRA AL USAR
       addEvent(talk, 1000, parameters) ---TIEMPO QUE DURARA EL SPELL
        return true
    end

    function talk(parameters)
    doCreatureExecuteTalkAction(parameters.cid, "/ghost", TRUE)
    doSendMagicEffect(getCreaturePosition(cid), 210)
    setPlayerGroupId(parameters.cid, 2)
    end





    Imagen Explicativa escribió:Imagen Explicativa: [Spells] Invisible Spell Tibiaf10
    Version del Scripts: OTx Old Version(0.3.7)

    2 participantes

    2[Spells] Invisible Spell Empty Re: [Spells] Invisible Spell Mar Dic 08, 2020 6:44 am

    [Adm] SevuOT

    [Adm] SevuOT
    Miembro
    Miembro
    Buenos dias [Tienes que estar registrado y conectado para ver este vínculo] lo que pides es realmente peligroso para un servidor serio, ya que si por alguna razón tu servidor se cierra sin antes devolver a estos jugadores invisibles a su estado normal entonces pueden aprovecharse para hacer cosas malas en tu servidor, como hacer quest sin morir, sin ser atacados, podrán matar personas sin ser visto, podrán robar cosas sin ser visto por jugadores normales.

    Solución factible:
    Pero en respuesta a tu tema, lo que pides requiere modificaciones en las fuentes, para poder verificar cuando alguien haga un hechizo expansivo y poder quitarte la invisibilidad, no estoy del todo seguro pero creo que en tfs 0.4 o menor, no existe un evento que filtre esto a través de lua
    #1(Tampoco estoy seguro si el evento onCombat registra que un player en modo ghost ha sido golpeado, asi que no puedo darte mas info por ahora.)

    Solución rápida y conveniente:
    Otra alternativa es agregar una función a cada spell expansiva la cual se encargara de verificar jugadores en un rango y verificar si son invisibles y volverlos visibles, a mi no me gusta la idea pero cada quien tiene sus propósitos, deberías intentar usar onCombatTile en las spells y verificar con la función getSpectators Wink
    #1 mas de lo mismo



    Si necesitas hospedaje para tu servidor usa este enlace y mira los buenos planes de Windows y Linux:
    Si tu cuenta de PayPal no esta verificada no importara, igual aceptan pagos con cuentas no verificadas.


    [Spells] Invisible Spell TRJEB8aSRYK5IulEU6ilJw
    2 participantes

    3[Spells] Invisible Spell Empty Re: [Spells] Invisible Spell Mar Dic 08, 2020 1:57 pm

    SoyFabi

    SoyFabi
    Miembro
    Miembro
    Lo del ghost esta solucionado, ya que como dices cuando alguien utiliza el spell y el ot se cierra por un error o algo el player al logear se le desactiva el ghost, ya que le añadi un Login.
    Código:
     if(getPlayerGroupId(cid) == 2) then
        setPlayerGroupId(cid, 1)
        end
        if(isPlayerGhost(cid)) then
        doCreatureExecuteTalkAction(cid, "/ghost", TRUE)
        end

    Intentare esa manera que me dices, o sino lo dejare asi, pero ademas de eso hare que el spell invisible dure 4 seg y que el player no pueda atacar asi para evitar que se aprovechen.

    Pero no se un scripts que me haga por unos segundos que no pueda atacar.

    Tengo un scripts que hace que el player no pueda atacar por unos segundos pero solo sirve en target, no se como colocarlo que me afecte a mi
    Código:
    --[[
    Made by Moira (Lurk on TibiaKing)
    NÃO REMOVA OS CRÉDITOS
    ]]--
    local storage = 234512 -- tenha certeza de estar usando um numero que ainda não esteja em uso no seu servidor
    local tempo = 50 -- tempo em segundos para usar a magia novamente
    local tempo_block = 5 -- quanto tempo o player afetado pela magia vai ficar sem poder atacar OUTRO PLAYER
    local templo_cannot_be_blocked = 50 -- tempo em que o target vai ficar invuneravel a spell caso já tenha sido afetado por ela
    local combat = createCombatObject()
    setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE)
    setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_FIREATTACK)
    setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_FIRE)

    function onCastSpell(cid, var)
    local target = getCreatureTarget(cid)
       if isPlayer(target) and getPlayerStorageValue(cid, storage) < os.time() and getPlayerStorageValue(target, 234514) < os.time() then
          doPlayerTargetCreature(target, target)
          setPlayerStorageValue(target, 234513, tempo_block + os.time())
          setPlayerStorageValue(target, 234514, templo_cannot_be_blocked + os.time())
          setPlayerStorageValue(cid, storage, tempo + os.time())
          return doCombat(cid, combat, var)
       elseif getPlayerStorageValue(target, 234514) > os.time() then
          doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Este Jugador ha sido afectado recientemente, espera ".. getPlayerStorageValue(target, 234514) - os.time() .." segundos para bloquear de nuevo.")
          return false
       elseif getPlayerStorageValue(cid, storage) > os.time() then
          doPlayerSendCancel(cid, "Tienes que esperar ".. getPlayerStorageValue(cid, storage) - os.time() .." segundos para usar de nuevo el Jutsu.")
       else
          doPlayerSendCancel(cid, "Solo puedes usar este Jutsu en Players.")
       end
       return false
    end

    2 participantes

    Contenido patrocinado


    2 participantes

    Ver el tema anterior Ver el tema siguiente Volver arriba  Mensaje (Página 1 de 1.)

    Permisos de este foro:
    No puedes responder a temas en este foro.

     

    BienvenidosTibiaFace es una comunidad de Open Tibia. Para participar debes estar registrado (click para Regístrate).