Ir para conteúdo
  • 0

Não Morrer Enquanto Usa Fly/Surf Poketibia


PokeRed

Pergunta

Olá, preciso muito de uma ajuda. Em meu projeto de pokétibia estou com um bug (base fenix)

Ao player morrer no fly, o pokemon não sai da pokebola nem heala.

caso vocês não saibam arrumar esse bug, conseguiriam me ajudar em um script para o player não tomar dano enquanto está em fly/surf/hide??

 

desde já agradeço.

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

Faz um tempo que não mexo com poketibia, então não consigo te ajudar completamente, mas vou tentar te dar uma luz.

 

Quando o player solta o poke, o sistema atualiza o status da pokebola, dizendo que agora o poke está fora.

 

Quando o play chama o poke de volta, o sistema atualiza o status da pokebola, salvando que agora o poke está dentro.

 

Pra usar surf/fly/ride o player solta o poke, e monta nele, ou seja, o sistema acha que o poke está fora da pokebola.

 

Se ele morre, o sistema ainda acha que o poke está fora. É preciso fazer um tratamento no sistema dizendo que se morreu o poke volte pra dentro da pokebola.

 

Como procuraria resolver isso:

 

Criando um script de morte, quando o player morrer, verifica se ele estava em fly/surf/ride, SE estava, então volta o poke pra pokebola.

 

Ou seja, criar um script de onDeath, e copiar parte do go/back, na verdade só o back, que é voltar pra pokebola.

Link para o comentário
Compartilhar em outros sites

  • 0
1 hora atrás, Eskylo disse:

Faz um tempo que não mexo com poketibia, então não consigo te ajudar completamente, mas vou tentar te dar uma luz.

 

Quando o player solta o poke, o sistema atualiza o status da pokebola, dizendo que agora o poke está fora.

 

Quando o play chama o poke de volta, o sistema atualiza o status da pokebola, salvando que agora o poke está dentro.

 

Pra usar surf/fly/ride o player solta o poke, e monta nele, ou seja, o sistema acha que o poke está fora da pokebola.

 

Se ele morre, o sistema ainda acha que o poke está fora. É preciso fazer um tratamento no sistema dizendo que se morreu o poke volte pra dentro da pokebola.

 

Como procuraria resolver isso:

 

Criando um script de morte, quando o player morrer, verifica se ele estava em fly/surf/ride, SE estava, então volta o poke pra pokebola.

 

Ou seja, criar um script de onDeath, e copiar parte do go/back, na verdade só o back, que é voltar pra pokebola.

Muito obrigado; no caso nesse arquivo.lua ondeath, vou colocar nele apenas o back do goback, é isso?

 

caso sim, farei e voltarei para confirmar se funcionou. ^^

Link para o comentário
Compartilhar em outros sites

  • 0

Esse é o caminho, criar um script do tipo ondeath, as vezes já existe algum que vc pode utilizar ou criar do zero mesmo

 

A primeira coisa que deve fazer é checar se o player morreu no fly/ride/surf

 

SE SIM, aí aplicar o tratamento do BACK, para que a pokebola possa ser usada pra soltar o poke quando ele nascer de novo.

 

Não tenho certeza se é só copiar/colar, as vezes precisa de uma pequena alteração.

 

Se precisar vai postando os scripts que vamos tentando te ajudar

Link para o comentário
Compartilhar em outros sites

  • 0
3 minutos atrás, Eskylo disse:

Esse é o caminho, criar um script do tipo ondeath, as vezes já existe algum que vc pode utilizar ou criar do zero mesmo

 

A primeira coisa que deve fazer é checar se o player morreu no fly/ride/surf

 

SE SIM, aí aplicar o tratamento do BACK, para que a pokebola possa ser usada pra soltar o poke quando ele nascer de novo.

 

Não tenho certeza se é só copiar/colar, as vezes precisa de uma pequena alteração.

 

Se precisar vai postando os scripts que vamos tentando te ajudar

Sim, o bug ocorre somente quando morre no fly/surf/hide. (a pokebola fica preta sem ultilização e so volta se o adm usar /s e usar o poke anterior e dar fly/surf) ai o pokemon morto com o fly volta.

 

vou mostrar meu Goback: action/creaturescript/script/goback

 

function onLogout(cid)
    if not isCreature(cid) then return true end    
    local thisitem = getPlayerSlotItem(cid, 😎
    
    if thisitem.uid <= 0 then return true end
    
    local ballName = getItemAttribute(thisitem.uid, "poke")
    local btype = getPokeballType(thisitem.itemid)
    
    ---------------------------------------------------------------
    if #getCreatureSummons(cid) > 1 and getPlayerStorageValue(cid, 212124) <= 0 then    --alterado v1.6
       if getPlayerStorageValue(cid, 637501) == -2 or getPlayerStorageValue(cid, 637501) >= 1 then  
          BackTeam(cid)       
       end
    end
    --////////////////////////////////////////////////////////////////////////////////////////--
    if getPlayerStorageValue(cid, 52480) >= 1 and getPlayerStorageValue(cid, 52481) >= 0 then 
       doEndDuel(cid)
    end
    --////////////////////////////////////////////////////////////////////////////////////////--
    if #getCreatureSummons(cid) == 2 and getPlayerStorageValue(cid, 212124) >= 1 then
       local cmed2 = getCreatureSummons(cid)[1]
       local poscmed = getThingPos(cmed2)
       local cmeddir = getCreatureLookDir(cmed2)
       local namecmed = getCreatureName(cmed2)
       local hp, maxHp = getCreatureHealth(getCreatureSummons(cid)[1]), getCreatureMaxHealth(getCreatureSummons(cid)[1])
       local gender = getPokemonGender(cmed2) 
       doRemoveCreature(getCreatureSummons(cid)[1])
       local back = doCreateMonster(namecmed, poscmed)
       addEvent(doCreatureSetSkullType, 150, back, gender)
       doCreatureSetLookDir(back, cmeddir)
       addEvent(doCreatureAddHealth, 100, back, hp-maxHp)
                                                                            
       -- pokemon controlador    
       local ball2 = getPlayerSlotItem(cid, 😎
       local mynewpos = getThingPos(getCreatureSummons(cid)[1])
       doRemoveCreature(getCreatureSummons(cid)[1])
       local pk2 = doSummonCreature(getItemAttribute(ball2.uid, "poke"), mynewpos) 
       doConvinceCreature(cid, pk2)
       addEvent(doAdjustWithDelay, 100, cid, pk2, true, true, false)
       setPlayerStorageValue(cid, 888, -1)    
       cleanCMcds(ball2.uid)
       doCreatureSetLookDir(getCreatureSummons(cid)[1], 2)
       registerCreatureEvent(pk2, "SummonDeath")   
    end
    
    ----------------------------------------------------------------------
    local summon = getCreatureSummons(cid)[1]      
      
    if #getCreatureSummons(cid) >= 1 and thisitem.uid > 1 then
        if getPlayerStorageValue(cid, 212124) <= 0 then
           doItemSetAttribute(thisitem.uid, "hp", (getCreatureHealth(summon) / getCreatureMaxHealth(summon)))
        end                                                          
        setPlayerStorageValue(cid, 212124, 0)
        doTransformItem(thisitem.uid, pokeballs[btype].on)
        doSendMagicEffect(getThingPos(summon), pokeballs[btype].effect)
        doRemoveCreature(summon)
    end

    if getCreatureOutfit(cid).lookType == 814 then
        doPlayerStopWatching(cid)
    end

    if tonumber(getPlayerStorageValue(cid, 17000)) and getPlayerStorageValue(cid, 17000) >= 1 then  
        markFlyingPos(cid, getThingPos(cid))
    end
    
    if getPlayerStorageValue(cid, 22545) == 1 then     
       setGlobalStorageValue(22550, getGlobalStorageValue(22550)-1)
       if getGlobalStorageValue(22550) <= 0 then
          endGoldenArena()          
       end 
    end

return TRUE
end

local deathtexts = {"Oh nao! POKENAME, volte!", "Volte, POKENAME!", "Isso e o suficiente, POKENAME!", "Voce fez oque pode, POKENAME!",
            "Voce precisa descansar, POKENAME!", "bom trabalho, POKENAME!", "POKENAME, Voce esta muito ferido!"}

function onDeath(cid, deathList)

    local owner = getCreatureMaster(cid)

        if getPlayerStorageValue(cid, 637500) >= 1 then
           doSendMagicEffect(getThingPos(cid), 211)
           doRemoveCreature(cid)
           return true
        end
        
        if getPlayerStorageValue(cid, 212123) >= 1 then
           return true
        end
        
        --////////////////////////////////////////////////////////////////////////////////////////--
        checkDuel(owner)                                                                          
        --////////////////////////////////////////////////////////////////////////////////////////--
        
    local thisball = getPlayerSlotItem(owner, 😎
    local ballName = getItemAttribute(thisball.uid, "poke")
    
    btype = getPokeballType(thisball.itemid)

        if #getCreatureSummons(owner) > 1 then
           BackTeam(owner, getCreatureSummons(owner))      
        end

        doSendMagicEffect(getThingPos(cid), pokeballs[btype].effect)
        doTransformItem(thisball.uid, pokeballs[btype].off)

        doPlayerSendTextMessage(owner, 22, "Seu pokemon esta desmaiado.")

    local say = deathtexts[math.random(#deathtexts)]
        say = string.gsub(say, "POKENAME", getCreatureName(cid))

    if getPlayerStorageValue(cid, 33) <= 0 then
        doCreatureSay(owner, say, TALKTYPE_SAY)
    end

    doItemSetAttribute(thisball.uid, "hp", 0)
    if ehMonstro(deathList[1]) then
       doItemSetAttribute(thisball.uid, "happy", getPlayerStorageValue(cid, 1008) - happyLostOnDeath)
    end
    doItemSetAttribute(thisball.uid, "hunger", getPlayerStorageValue(cid, 1009))

    if useOTClient then
       doPlayerSendCancel(owner, '12//,hide')      --alterado v1.7
    end

    doRemoveCreature(cid)

return false
end

Link para o comentário
Compartilhar em outros sites

  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...