Ir para conteúdo
  • Cadastre-se

Posts Recomendados

Preciso de um monstro que vai ser um guarda que vai atacar todos os players que nao tiver x storage? alguem ai consegue?

Editado por doido (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

Estou sem tempo no momento de fazer mas vou te dar uma idéia:
Você encontra no fórum um NPC que faz quase isso, ele ataca players PK, basta modificá-lo para verificar storage ao invés de PK.

Bom resolvi tentar mesmo com pouco tempo, lembrando que não testei apenas peguei de um post de NPC que atacava PK e modifiquei pra atacar storage, se der erros não-referentes a minhas modificações talvez eu não possa dar suporte.
Em data/npc/lib, crie um arquivo chamado guard.lua e adicione o conteúdo abaixo, configurandoo em 'storage' a sua storage, 'valorStorage' o valor de storage do player que o NPC deve atacar, 'min' o mínimo que o NPC vai hitar e 'max' o máximo que o NPC vai hitar.

Spoiler

Guard = {
    config = {              
        attackspeed = 1000,
        storage = STORAGE,
        valorStorage = VALOR,
    },
    combat = {type = COMBAT_PHYSICALDAMAGE, min = 100, max = 200}
}

function Guard:new()
        local ret = {}
        setmetatable({}, {__index = self.combat})
        setmetatable(ret, {__index = self})
        return ret
end

function Guard:reset()
    self.config = Guard.config
    self.target = 0
    selfFollow(0)
    doTeleportThing(self.id, self.position)
end

function Guard:updateTarget()
    if self.target ~= 0 then
        return
    end
    local creatures = getSpectators(getThingPosition(self.id), self.range, self.range, false)
    for i = 1, #creatures do
        local target = creatures
        if isPlayer(target) and getPlayerStorageValue(target, self.config.storage) == self.config.valorStorage then
            if not getTilePzInfo(getThingPosition(target)) then
                if selfFollow(target) then
                    selfSay("I don't tolerate people like you, ".. getCreatureName(target))
                    self.target = target
                    self:attack()
                    break
                end
            end
        else
            self:reset()
        end
    end
end

function Guard:attack()
    if self.target == 0 then
        self:reset()
        return
    end
    self.time = self.time or os.clock()
    if self.time < os.clock() then
        if getDistanceBetween(getThingPosition(self.id), getThingPosition(self.target)) == 1 then
            doTargetCombatHealth(self.id, self.target, self.combat.type, -self.combat.min, -self.combat.max, CONST_ME_DRAWBLOOD)
        end
        self.time = self.time + (self.config.attackspeed/1000)
    end
end

 

Agora em data/npc/scripts, crie um arquivo chamado guard.lua e adicione o conteúdo abaixo:

Spoiler

local guard = Guard:new()
function onCreatureAppear(cid)
    if cid == getNpcId() then
        guard.id = getNpcId()
        guard.target = 0
        guard.position = getNpcPos()
    end
end

function onCreatureDisappear(cid)
    if cid == guard.target then
        guard:reset()
    end
end

function onCreatureSay(cid, type, msg)
    return false
end

function onThink()
    guard:updateTarget()
    if guard.target ~= 0 then
        if isPlayer(guard.target) then
            guard:attack()
        else
            guard:reset()
        end
    else
        guard:reset()
    end
end

 

E em data/npc/ crie um arquivo chamado guard.xml e adicione o conteúdo abaixo:

Spoiler

<?xml version="1.0" encoding="UTF-8"?>
<npc name="Guard" script="guard.lua" walkinterval="0" speed="200" floorchange="0">
    <health now="100" max="100"/>
    <look type="134" head="57" body="59" legs="40" feet="76" addons="0"/>
    <parameters/>
</npc>

 

 

Se ajudei por favor dee REP+
 

Créditos pelo postador do script original link > @Garou

Te ajudei? Clique em  Gostei ! 

²²²d¬¬b²²²

 

 

"She's got a smile that it seems to me...."  ♪♪

Link para o post
Compartilhar em outros sites

Amigo ele so vai atacar quem nao tiver a storage entendeu seu o player tiver a storage ele nao vai atacar ta dessa forma?

e tem que dar para matar ele tbm

Editado por doido (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
51 minutos atrás, doido disse:

Amigo ele so vai atacar quem nao tiver a storage entendeu seu o player tiver a storage ele nao vai atacar ta dessa forma?

e tem que dar para matar ele tbm

 

Infelizmente não sei se é possível fazer isso com monstro para poder mata-lo..... Se é possível foge de minhas capacidades :(
Mas eu tentei...

Te ajudei? Clique em  Gostei ! 

²²²d¬¬b²²²

 

 

"She's got a smile that it seems to me...."  ♪♪

Link para o post
Compartilhar em outros sites

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

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

  • Conteúdo Similar

    • Por LeoTK
      Salve galera neste tópico irei postar algumas prints do mapa do servidor para quem queira acompanhar e quem sabe até utilizar de inspiração para mapear o seu NTO.
       
      #Att 11/08/2022

       
       
       
       
      Konoha (Em Desenvolvimento)
       
       
       
       
    • Por DiigooMix
      Como o título já diz, será que alguém possui sprite do hitto e se possível as transformações dele?
    • Por OmegaZero
      Olá gostaria que alguém me ajudasse com uma "scripting" não sei se é pela mesma, seria o seguinte uma determinada arma teria a chance de dar double hit e não sei oque fazer alguem poderia ajudar?

      OBS:não sei se é o local correto se não for mova, desculpe
    • Por Madarasenju
      Olá galera do Tibia King, queria por uns npc's no meu server que não tem função de trade nem nada do tipo, queria que eles só andassem como enfeite, Rep+ Pra quem me ajudar... grato desde já.
    • Por SilenceRoot
      A magia é assim o você usa a a magia e ela ficará ativado por 10 segundos, até que o inimigo lance a primeira magia ou todos de uma vez, quando ele lançar a primeira magia, ele não lhe acertará ou seja esquivando dela, e logo em seguida será teletransportado aleatoriamente ao redor do inimigo que usou.
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo