SH
sistema

No Damage Party System

Por shumagora, 11 de nov. de 2013 em Globalevents e Spells

party
system
grupo
no attack
membro party
otserv
tibia
script
15
6.1k
shumagoraS
11 de novembro de 2013 às 18:28

Olá Camaradagem do XTibia.

Venho disponibilizar um sistema muito útil para servidores fiéis ao Tibia(CipSoft).

Ele consiste em não atacar membros da party, ótimo para quest, pvp e hunt's.

Não posso afirmar se funcionará em todos os servidores, testado somente em 10.1.

 

config.lua

noDamageToPartyMembers = true

data/creaturescripts/creaturescripts.xml

<event type="combat" name="partyAndGuildProtection" event="script" value="partyAndGuildProtection.lua"/>

data/creaturescripts/scripts/partyAndGuildProtection.lua

function onCombat(cid, target)
if(isInParty(target)) then
if(getConfigValue("noDamageToPartyMembers")) then
if(isInParty(cid)) then
return false
end
end
end
return true
end
data/creaturescripts/scripts/login.lua
registerCreatureEvent(cid, "partyAndGuildProtection")
Créditos ao Global 10.1 por conter partyAndGuildProtection.lua, porém contia bugs e não atacava nem player.
Créditos a mim por fixar esse problema e disponibilizar.
partyAndGuildProtection.lua bugado do servidor.

function onCombat(cid, target)
if(isPlayer(cid) and isPlayer(target)) then
if(getConfigValue("noDamageToGuildMates")) then
if(getPlayerGuildId(cid) == getPlayerGuildId(target)) then
return false
end
end
if(getConfigValue("noDamageToPartyMembers")) then
if(getPlayerParty(cid) == getPlayerParty(target)) then
return false
end
end
end
return true
end

Editado Novembro 11 por shumagora

11 de novembro de 2013 às 20:52

se testo esse script com o TFS ou OTX?

shumagoraS
12 de novembro de 2013 às 00:35

TFS

KincaJrK
12 de novembro de 2013 às 08:51

Funciona na versão 9.8 também?

shumagoraS
12 de novembro de 2013 às 11:20

bem provável. faz a experiência, caso não dê certo, só desfazer ;)

VincV
12 de novembro de 2013 às 16:16

um player em party n pode attaca outro que estaja em party com outro player...

OmegaO
12 de novembro de 2013 às 19:57

O lorbug tem razão, acho que pra corrigir, deveria ser assim:

function onCombat(cid, target)
	if(isInParty(target)) then
		if(getConfigValue("noDamageToPartyMembers")) then
			if(isInParty(cid)) then
				if isInArray(getPlayerParty(cid), target) then
					return false
				end
			end
		end
	end
	return true
end


Além disso, seu tópico possui apenas um creaturescript, não um sistema. Fico contente por você trazer conteúdo para o fórum e vou movê-lo para a seção correta.

3 semanas depois...
shumagoraS
30 de novembro de 2013 às 05:14

Omega, valeu a tentativa, mas erros ocorreram. em lib/050-fuction.lua e creaturescripts

3 meses depois...
CreatservC
26 de fevereiro de 2014 às 15:02

Otimo script.

MersTurialM
28 de fevereiro de 2014 às 17:59

Achava que ja tinha esse sistema no client.. más, que bom que postou

1 ano depois...
alanmtdA
18 de setembro de 2015 às 11:24

Desculpe por reviver o topico, mas Eu quero isso pra 8.60 tem como?

Editado Setembro 18 por alanmtd1

ClarymC
18 de setembro de 2015 às 11:52

Bom, então se vários players estiverem em partys diferentes, eles não podem se atacar?

6 meses depois...
AdriezA
28 de março de 2016 às 15:27

pode tinha ter um comando pra ativar e desativar

dalvorsnD
30 de março de 2016 às 22:30

Não tem erro nenhum no script do global que voce botou em anexo, e o jeito dele verificar é muito mais eficaz que o seu =s

Ele compara os cids dos lideres da party, ja o seu necessita iterar sobre a lista de todos os membros da party pra poder verificar

2 anos depois...
18 de março de 2018 às 01:15

alguém sabe se esse sistema funciona em tfs 1.2?