MA
pedido

Player só ataca outro se forem moradores de cidades distintas

Por Mazynho, 29 de mar. de 2014 em Scripts

script
8
785
MazynhoM
29 de março de 2014 às 04:14

Galera gostaria de um script bem simples, quero um script que faça com que um player só possa atacar outro player se esse outro for de outra cidade (Town ID diferente).

29 de março de 2014 às 12:08

testa ae..

function onCombat(cid, target)

if isPlayer(cid) and isPlayer(target) then
   if getPlayerTown(cid) == getPlayerTown(target) then
    return false
   end
end

 return true
end

Editado Março 29 por DuuhCarvalho

MazynhoM
29 de março de 2014 às 13:02

 

 

testa ae..

function onCombat(cid, target)if isPlayer(cid) and isPlayer(target) then   if getPlayerTown(cid) == getPlayerTown(target) then    return false   endend return trueend

 

Esta funcionando, mais ou menos como o que fiz:

function onCombat(cid, target)
if not isPlayer(target.uid) then
	return true
end
	if (getPlayerTown(cid) ~= getPlayerTown(target.uid)) or isPlayer(target.uid) == false  then
		return true
	end
		doPlayerSendCancel(cid, "Voce nao pode atacar players da sua equipe.")
		return false
end

Ao atacar um player da mesma cidade apare isso: you may not attack this player. (no meu script também), porém se você ficar clicando varias vezes para atacar ele acaba atacando e depois que ataca uma vez para atacar novamente funciona de primeira.

 

A tag que estou usando é esta: <event type="combat" name="Combate" event="script" value="Combate.lua" />

OBS.: Esse que fiz foi baseado num script que o DrakyLucas fez, porém essa mensagem que tem nele não está exibindo.

Editado Março 29 por Mazynho

29 de março de 2014 às 13:11
function onStatsChange(cid, attacker, type, combat, value)


 if getPlayerTown(cid) == getPlayerTown(attacker) and type == STATSCHANGE_HEALTHLOSS or type == STATSCHANGE_MANALOSS then
  return false
 end


 return true
end  

tag em login.lua :

registerCreatureEvent(cid, "Nome do Evento")

tag em creaturescripts.xml :

<event type="statschange" name="Nome do Evento" event="script" value="Nome do Script.lua"/>

testa ae..

MazynhoM
29 de março de 2014 às 13:22
function onStatsChange(cid, attacker, type, combat, value)


 if getPlayerTown(cid) == getPlayerTown(attacker) and type == STATSCHANGE_HEALTHLOSS or type == STATSCHANGE_MANALOSS then
  return false
 end


 return true
end  

tag em login.lua :

registerCreatureEvent(cid, "Nome do Evento")

tag em creaturescripts.xml :

<event type="statschange" name="Nome do Evento" event="script" value="Nome do Script.lua"/>

testa ae..

 

 

"Ao atacar um player da mesma cidade apare isso: you may not attack this player. (no meu script também), porém se você ficar clicando varias vezes para atacar ele acaba atacando e depois que ataca uma vez para atacar novamente funciona de primeira." Isso ainda está acontecendo porém agora depois que consegue marcar não está atacando, fica apenas marcado, mas ele pega battle.

 

Você poderia fazer com que ele e o alvo não pegasse battle nem skull e se possível fazer com que o target fosse desmarcado (Retirado o alvo, tipo um stop).

Editado Março 29 por Mazynho

zipter98Z
29 de março de 2014 às 14:20

Recomendaria também fazer um evento onTarget.

MazynhoM
29 de março de 2014 às 14:23

Recomendaria também fazer um evento onTarget.

 

Ajuda ai zipter e da uma olhada la nas mensagens que te mandei.

1 mês depois...
19 de abril de 2014 às 19:00

Movido para resolvidos .