Ir para conteúdo

[Resolvido] NPC


bloder

Posts Recomendados

Tipo do script: NPC's

Protocolo (versão do Tibia): 8.50

Servidor utilizado: The Forgotten Server

Nível de experiência:Pouca

Adicionais/Informações:

Alguem me ajuda a aumentar a velocidade desse npc, por ele anda muito devagar ai os players conseguem fugir dele.agradeço desde ja.

 

 

local target = 0

local prevTarget = 0

local maxChaseDistance = 20

local origPos = 0

local lastAttack = 0

local followTimeout = 30

 

local function isSkulled(cid)

if(getPlayerSkullType(cid) >= 3 and isPlayerPzLocked(cid) == TRUE) then

return true

end

 

return false

end

 

local function goToOrigPos()

target = 0

lastAttack = 0

selfFollow(0)

doTeleportThing(getNpcCid(), origPos)

end

 

local function updateTarget()

if(isPlayer(target) == FALSE) then

goToOrigPos()

elseif(not isSkulled(target)) then

selfSay("Now, behave in the future.")

goToOrigPos()

end

 

if(target == 0) then

local list = getSpectators(getNpcPos(), 9, 9, false)

for i = 1, table.getn(list) do

local _target = list

if(_target ~= 0) then

if(isPlayer(_target) == TRUE and isSkulled(_target)) then

if(getTilePzInfo(getCreaturePosition(_target)) == FALSE) then

if(selfFollow(_target)) then

target = _target

if(target ~= prevTarget) then

selfSay("We do not tolerate people like you here!")

end

 

prevTarget = target

break

end

end

end

end

end

end

end

 

function onCreatureAppear(cid)

if(cid == getNpcCid()) then

origPos = getNpcPos()

end

end

 

function onCreatureDisappear(cid)

if(cid == target) then

goToOrigPos()

end

end

 

function onCreatureMove(creature, oldPos, newPos)

--

end

 

function onThink()

updateTarget()

 

if(target == 0) then

return

end

 

local playerPos = getCreaturePosition(target)

local myPos = getNpcPos()

 

if(myPos.z ~= playerPos.z) then

goToOrigPos()

return

end

 

if(math.abs(myPos.x - origPos.x) > maxChaseDistance or math.abs(myPos.y - origPos.y) > maxChaseDistance) then

selfSay("I'll catch you next time.")

goToOrigPos()

return

end

 

if(lastAttack == 0) then

lastAttack = os.clock()

end

 

if(os.clock() - lastAttack > followTimeout) then

selfSay("You got me this time, but just wait.")

goToOrigPos()

return

end

 

if((math.abs(playerPos.x - myPos.x) <= 1) and (math.abs(playerPos.y - myPos.y) <= 1)) then

doTargetCombatHealth(getNpcCid(), target, COMBAT_LIFEDRAIN, -500, -800, CONST_ME_EXPLOSIONAREA)

lastAttack = os.clock()

end

end

Link para o comentário
Compartilhar em outros sites

hmm poderia falar oque o npc faz e tipow tudu ele so com essa parte nao da :s

DevilMoon ele corre atras de players que estão Pks e ataka eles e depois ele some

 

Manda o NPC.XML Dele ai...

arquivo XML dele é esse

<?xml version="1.0"?>

 

<npc name="Justiceiro" script="data/npc/scripts/defender.lua" access="5" lookdir="2" autowalk="25">

<mana now="800" max="800"/>

<health now="200" max="200"/>

<look type="131" head="116" body="94" legs="78" feet="115" addons="3"/>

</npc>

 

 

vai ali no xml do seu npc

 

e tem uma parte ali

 

que ta +ou- assim:

 

speed="900"

 

 

aumenta pra quanto voce quiser

 

speed="1200"

 

eu não achei essa parte,mais Vlw pela ajuda :thumbsupsmiley:

Link para o comentário
Compartilhar em outros sites

tente adicionar

 

<npc name="Juesticeiro" script="data/npc/scripts/defender.lua" walkinterval="0" floorchange="0" speed="900">

<mana now="800" max="800"/>

<health now="200" max="200"/>

<look type="131" head="116" body="94" legs="78" feet="115" addons="3"/>

</npc>

Editado por Nicekid
Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...