Ir para conteúdo

Featured Replies

Postado

um novo problema:

 

tenho dois times definidos por storages

já fiz o script que nao deixa players do mesmo time se atacarem (onTarget)

 

entretanto, runas de area, exori grans etc acerta também players do mesmo time.

existe alguma maneira de bloquear esse efeito sem utilizar um compensador?

(por exemplo adicionar a vida retirada no mesmo instante)

 

desde ja, agradeço!

Resolvido por Wise

Ir para solução
  • Respostas 5
  • Visualizações 754
  • Created
  • Última resposta

Top Posters In This Topic

Postado

se seu server for 8.54+ dá pra usar onStatsChange retornando falso caso seja do mesmo time, do contrário vc tem que fazer return false em onCombat, onAttack, onTarget.. etc.

Todos os meus trabalhos importantes estão na seção "Sobre mim" no meu perfil; Dá uma passada lá!

"Há três caminhos para o fracasso: não ensinar o que se sabe, não praticar o que se ensina, e não perguntar o que se ignora." - São Beda

I7Pm6ih.png

(obg ao @Beeny por fazer essa linda sign <3)

Postado
  • Solução

Como o @xWhiteWolf disse, caso seu servidor tenha o creature event statschange:

function onStatsChange(cid, attacker, type, combat, value)
    storage = 12345
    
    if value > 0 and type == STATSCHANGE_HEALTHLOSS or (getCreatureCondition(cid, CONDITION_MANASHIELD) and type == STATSCHANGE_MANALOSS) then
        if isPlayer(attacker) and getPlayerStorageValue(attacker, storage) == getPlayerStorageValue(cid, storage) then return false end
    end
    
    return true
end



Senão:

local storage = 12345

function onCombat(cid, target)
    if isPlayer(target) and getPlayerStorageValue(target, storage) == getPlayerStorageValue(cid, storage) then return false end
    return true
end

function onAttack(cid, target)
    if isPlayer(target) and getPlayerStorageValue(target, storage) == getPlayerStorageValue(cid, storage) then return false end
    return true
end

function onTarget(cid, target)
    if isPlayer(target) and getPlayerStorageValue(target, storage) == getPlayerStorageValue(cid, storage) then return false end
    return true
end

PS: não se esqueça de registrar os creature events em login.lua

Editado por xWhiteWolf (veja o histórico de edições)

The corrupt fear us.

The honest support us.

The heroic join us.

Postado
  • Autor

Funcionou perfeitamente!!

Entretanto o servidor cai em todos os exori

Acho que deve ser algum problema na distro.. estou usando o TFS 0.3.6... devo ter causado Crash no servidor

Vou mudar pro TFS 1.0 e creio que esse tipo de problema não existirá.

 

Há muitas mudanças no tfs 1.0 no quesito de scripts?

Editado por Marcelo Druida (veja o histórico de edições)

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.6k

Informação Importante

Confirmação de Termo