Em data/npc/lib, crie um arquivo chamado guard.lua e adicione o conteúdo abaixo:
Guard = {
config = {
attackspeed = 1000,
},
combat = {type = COMBAT_PHYSICALDAMAGE, min = 100, max = 200}
}[/font][/size]
[size=3][font=verdana, geneva, sans-serif]function Guard:new()
local ret = {}
setmetatable({}, {__index = self.combat})
setmetatable(ret, {__index = self})
return ret
end[/font][/size]
[size=3][font=verdana, geneva, sans-serif]function Guard:reset()
self.config = Guard.config
self.target = 0
selfFollow(0)
doTeleportThing(self.id, self.position)
end[/font][/size]
[size=3][font=verdana, geneva, sans-serif]function Guard:updateTarget()
if self.target ~= 0 then
return
end[/font][/size]
[size=3][font=verdana, geneva, sans-serif] local creatures = getSpectators(getThingPosition(self.id), self.range, self.range, false)
for i = 1, #creatures do
local target = creatures[i]
if isCreature(target) and not isNpc(target) and getCreatureSkull(target) >= 3 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[/font][/size]
[size=3][font=verdana, geneva, sans-serif]function Guard:attack()
if self.target == 0 then
self:reset()
return
end[/font][/size]
[size=3][font=verdana, geneva, sans-serif] 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:
local guard = Guard:new()[/size][/font]
[font=verdana, geneva, sans-serif][size=3]function onCreatureAppear(cid)
if cid == getNpcId() then
guard.id = getNpcId()
guard.target = 0
guard.position = getNpcPos()
end
end[/size][/font]
[font=verdana, geneva, sans-serif][size=3]function onCreatureDisappear(cid)
if cid == guard.target then
guard:reset()
end
end[/size][/font]
[font=verdana, geneva, sans-serif][size=3]function onCreatureSay(cid, type, msg)
return false
end[/size][/font]
[font=verdana, geneva, sans-serif][size=3]function onThink()
guard:updateTarget()
if guard.target ~= 0 then
if isCreature(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:
<?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>
Creditos: OneShot
Creio que nao é tudo que você quer mas é um guarda que ataca players com skull ai é so mudar o outfit nessa linha:
<look type="134" head="57" body="59" legs="40" feet="76" addons="0"/>
o numero do outfit se muda em looktype
Abraços
"Eu sou um castigo de Deus. E se você não cometeu grandes pecados,
Deus não teria enviado um castigo como eu."