Ir para conteúdo

[pedido] Npc Que Mata Os Pk, Red Skull


mkshiwa

Posts Recomendados

Arquivo xml:

 

<?xml version="1.0" encoding="UTF-8"?>

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

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

<look type="131" head="19" body="19" legs="19" feet="19"/>

 

<interaction range="3" idletime="60">

 

<interact keywords="hi" focus="1">

<keywords>hello</keywords>

 

<response text="Nothing to see here, move along.">

<action name="idle" value="1"/>

</response>

</interact>

 

<interact keywords="bye" focus="0">

<keywords>farewell</keywords>

 

<response text="Good bye."/>

</interact>

</interaction>

 

</npc>

 

 

Arquivo lua :

 

local target = 0

local prevTarget = 0

local maxChaseDistance = 20

local origPos = 0

local lastAttack = 0

local followTimeout = 10

 

local function isSkulled(cid)

if(getCreatureSkullType(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, -200, -300, CONST_ME_BLOCKHIT)

lastAttack = os.clock()

end

end

O cityguard ja vem nos TFS atuais,

Espero ter ajudado;

Atensiosamente, Darkanso.

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

Visitante
Este tópico está impedido de receber novos posts.
×
×
  • Criar Novo...