Ir para conteúdo
  • 0

Npc Que Ataca Todos Os Players.


HellCommander

Pergunta

Galera, estou aqui para ver se é possível, vocês me ajudarem neste assunto.

Bom, estou á procura de um SCRIPT, onde, o npc ataca qualquer player á vista. com um outifit de ' Guarda de castelo '.

 

Me desculpe se eu estar postando no lugar errado, sou novo aqui!

 

OBS: se possível, explica bem aonde eu coloco tal scripT ( ESTE NPC, PODE SER MORTO COM OS PLAYERS ATACANDO. )

 

á.. e aproveitando o embalo, se possível, fazer outro NPC que ataque somente PLAYERS SKULL'S ! de outifit direfente do guarda /\. e também pode ser morto com os players atacando. e que dê xp ( configuravel ) se possível. ( este vai ser guarde de cidade )

 

 

REP +, pra quem ajudar. Obrigado pela atenção.

 

Se não for possível isto, me avisem. REP ++ pelo script.

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

13 respostass a esta questão

Posts Recomendados

  • 0

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

Link para o comentário
Compartilhar em outros sites

  • 0

vou testar aqui, se funcionar tudo certinho, REP + ! obrigado ae mano!

 

á e uma dúvida sobre este script... este script é do npc que ataca os players SKULL? ou oque ataca o player por nada.. ?

 

vlws..

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

  • 0

Caso queira ainda o Npc Q ataque todos msm q n tenha skull vc deve editar essa Liinha

if isCreature(target) and not isNpc(target) and getCreatureSkull(target) >= 3 then
-------------------------------------------------------------
Trocando por esta
if isCreature(target) and not isNpc(target) then

Link para o comentário
Compartilhar em outros sites

  • 0

Cara..primeiro vc exporta o seu npc para o RME, feito isso tenta colocar ele caso não apareça talvez deu algum erro X=

Caso tenha um erro posta ai para arrumarmos ele, caso não tenha erro nem nada, você coloco ele errado X=

Link para o comentário
Compartilhar em outros sites

  • 0

O ERRO é o seguinte: Error - LuaInterface: : loadfile ] cannot open data/npc/scripts/guard.lua

 

Sendo que coloquei exatamente como você falou. fui Data/npc/scripts e adicionei um arquivo .lua com o nome guard.lua < com o .lua na frente. e adicionei isto lá dentro. :

 

local guard = Guard:new()[/size][/font]

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 isCreature(guard.target) then

guard:attack()

else

guard:reset()

end

else

guard:reset()

end

end

 

 

Depois fui Data/npc e adicionei um arquivo,XML com o nome : guard.xml e adicionei isto lá dentro :

 

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

<npc name="Guard" script="guard.lua" walkinterval="1000" speed="200" floorchange="0">

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

<look type="134" head="57" body="59" legs="40" feet="76" addons="0"/>

<parameters/>

</npc>

 

Tudo como você falou. ele aparece no RME porém no server ele não aparece.!

se poder me ajudar, REP++ !

 

Obrigado pela atenção!

Link para o comentário
Compartilhar em outros sites

  • 0

mano, teria como você tirar namoral? eu tirei aqui e não funcionou ainda.. se ajudar REP+ ! vlws.

 

Q tal: ?

 

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 isCreature(guard.target) then
guard:attack()
else
guard:reset()
end
else
guard:reset()
end
end

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

  • 0

vou testar aqui. só um momento

 

Afs, o erro ainda Ocorrê ! não sei mais oque eu faço. fiz tudo certo, como falei lá em cima. /\

e agora eu apaguei oque estava na pasta npc/scripts/guard, e coloquei oque ele falou. :

 

 

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 isCreature(guard.target) then

guard:attack()

else

guard:reset()

end

else

guard:reset()

end

end

 

 

E AINDA não funcionou ! ;/

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

  • 0

e.e N sei mais o q falar para fazer kra..

mas "Talevez" a versao desse script seja de um distro superior q tenha mais funçoes e td mais... n manjo as functions q tem de um distro para outro então n posso afirmar isso mas sl Só uma dica..

Link para o comentário
Compartilhar em outros sites

  • 0
O ERRO é o seguinte: Error - LuaInterface: : loadfile ] cannot open data/npc/scripts/guard.lua

 

Pelo que eu vi, esta faltando essa parte: data/npc/scripts/

 

Ficaria assim:

 

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

 

Se não der certo...

 

Tente esse:

 

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

 

Ou tente esse:

 

<?xml version="1.0"?>
<npc name="Guard" script="data/npc/scripts/guard.lua" walkinterval="1000" speed="200" floorchange="0">
<health now="3800" max="3800"/>
<look type="134" head="57" body="59" legs="40" feet="76" addons="0"/>
</npc>

 

OBS: Ver se aonde esta o script, tem o nome guard, porq tbm pode ser isso.

 

AJUDEI?, +REP happy.png

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

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