Ir para conteúdo

Featured Replies

Postado
  • Este é um post popular.

Monstros Passivos

 

Sabe, esse é um dos sistemas mais desejados, da família dos sistemas que surgiram com os Pokétibias, depois do TV System.

 

Aquele sistema que faz com que existam monstros que não atacam você, se você não atacar ou usar magias antes. Não tem nenhum segredo, resolvi fazer o meu em Lua e C++ por puro comodismo.

 

Então vamos ao passo-a-passo.

 

 

No seu arquivo monster.h, procure por isso:

bool isHostile() {return mType->isHostile;}

Troque por:

bool isHostile() const {
             std::string value;
             if(!getStorage("hostile", value))
                 return mType->isHostile;
            
             return booleanString(value);
        }

No seu monster.cpp, procure por:

Monster::selectTarget

Abaixo de:

if(!isTarget(creature))
    return false; 

Adicione:

if(!isHostile())
   return false;

Crie um arquivo chamado passive_system.lua no diretório creaturescripts/scripts, cole isso:

PASSIVE_BEHAVIOR = {"Deer", "Rabbit"} -- Aqui ficam os monstros que não atacam, mesmo que atacados.
function onCombat(cid, target)
    if isMonster(target) then
        if not isInArray(PASSIVE_BEHAVIOR, getCreatureName(target)) then
            doCreatureSetStorage(target, "hostile", 1)
        end
        doMonsterSetTarget(target, cid)
    end
    return true
end

No arquivo login.lua:

registerCreatureEvent(cid, "PassiveSystem")

No arquivo creaturescripts.xml:

<event type="combat" name="PassiveSystem" event="script" value="passive_system.lua"/>

Dê um Rebuild All no seu servidor, ou compile, deletando a pasta obj.

Para usar basta mudar a flag hostile do monstro para 0 no arquivo XML dele.

 

Boa diversão.

 

Abraços,

Oneshot

  • Respostas 12
  • Visualizações 4.6k
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • @DeadAlive essa versão da sua source não suporta storage em forma de letras vamos dizer assim, tente mudar "hostile" para 1800 não esqueça de mudar no creature script. @topic como fazer o monstro

  • jacareverde
    jacareverde

    @off desculpa reviver o tópico, mas acho que a melhoria deste codigo irá trazer prestigio para o fórum e melhor o conteudo desta comunidade.   Estou quebrando a cabeça para fazer funcionar direito o

Postado

Muito boa mesmo, eu não to mexendo mais com OTserver porque voltei pro global, mas é muito legal mesmo esse sistema, reputado!

Skype @kaiquegabriel__ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~Atenciosamente,

kaiquegabriel.

Não dou suporte via pm.

Em caso de dúvidas, crie um tópico e espere o suporte.

  • 3 weeks later...

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