DU
pedido

Script proibe itens

Por Duuhzinhow, 23 de mai. de 2015 em Archived

itens
creaturescript
ajuda
script
11
1.6k
DuuhzinhowD
23 de maio de 2015 às 20:05

Galera, preciso de um script que no caso eu colocaria uma lista de IDs de itens, que uma "x" vocaçao nao poderia usar.

 

Rep+ me ajudem por favor hahaha

xSONYxX
DuuhzinhowD
23 de maio de 2015 às 21:28

Absolutamente nada haver com o pedido.

xSONYxX
24 de maio de 2015 às 02:07

Vdd, sorry, mandei o link errado, não tô achando um original, entretanto; no forum tem um script assim, da uma olhadinha direito

RigByR
24 de maio de 2015 às 14:14

Né mais facil fazer isso por .xml?

 

<movevent type="Equip" itemid="7886;2456;+ID's" slot="hand;feet;ring;head;necklace;backpack;legs;armor" level="5" event="function" value="onEquipItem">
<vocation id="2"/> -- Vocações que pode usar o item
</movevent>
DuuhzinhowD
27 de maio de 2015 às 14:19

 

Né mais facil fazer isso por .xml?

<movevent type="Equip" itemid="7886;2456;+ID's" slot="hand;feet;ring;head;necklace;backpack;legs;armor" level="5" event="function" value="onEquipItem">
<vocation id="2"/> -- Vocações que pode usar o item
</movevent>

Seria um saco por serem muitos IDs

Por isso pedi um script pra fazer uma lista..

up ;v

up worriedsmiley.gif

BrunoB
29 de maio de 2015 às 11:06

Vamos fazer o teste...

 

Em data/movements/scripts crie um arquivo chamado byVocation.lua com o seguinte conteúdo:

 

 

local vocations = {
	['sorcerer']            = {2160, 3063, 3040},
	['druid']                = {3080, 2400, 8453},
	['paladin']             = {2410, 3023, 3160},
	['knight']               = {2400, 2340, 3031},
	['master sorcerer']  = {2160, 3063, 3040},
	['elder druid']         = {3080, 2400, 8453},
	['royal paladin']      = {2410, 3023, 3160},
	['elite knight']        = {2400, 2340, 3031}
}

-- Não mexa em nada abaixo
function onEquip(cid, item, slot)
	local vocation = getPlayerVocationName(cid)
	local items = {}

	for i = 1, #vocations[vocation] do
		table.insert(items, vocations[vocation][i])
	end

	if not isInArray(items, item.itemid) then
		doPlayerSendCancel(cid, 'Este item nao pode ser usado por sua vocacao.')
	end

	return true
end
Basta colocar os id's em suas respectivas arrays.

 

 

 

Agora em data/movements/movements.xml adicione a seguinte linha:

<movevent type="Equip" itemid="3063;3040;3080;2400; todos os ids;" slot="hand;feet;ring;head;necklace;backpack;legs;armor" event="script" value="byVocation.lua" />
Tem necessidade de colocar id por id no xml, para que ele reconheça o script...

 

Qualquer erro me fale.

1 mês depois...
DuuhzinhowD
05 de junho de 2015 às 14:51

 

Vamos fazer o teste...

Em data/movements/scripts crie um arquivo chamado byVocation.lua com o seguinte conteúdo:

 

local vocations = {
	['sorcerer']            = {2160, 3063, 3040},
	['druid']                = {3080, 2400, 8453},
	['paladin']             = {2410, 3023, 3160},
	['knight']               = {2400, 2340, 3031},
	['master sorcerer']  = {2160, 3063, 3040},
	['elder druid']         = {3080, 2400, 8453},
	['royal paladin']      = {2410, 3023, 3160},
	['elite knight']        = {2400, 2340, 3031}
}

-- Não mexa em nada abaixo
function onEquip(cid, item, slot)
	local vocation = getPlayerVocationName(cid)
	local items = {}

	for i = 1, #vocations[vocation] do
		table.insert(items, vocations[vocation][i])
	end

	if not isInArray(items, item.itemid) then
		doPlayerSendCancel(cid, 'Este item nao pode ser usado por sua vocacao.')
	end

	return true
end
Basta colocar os id's em suas respectivas arrays.



Agora em data/movements/movements.xml adicione a seguinte linha:

<movevent type="Equip" itemid="3063;3040;3080;2400; todos os ids;" slot="hand;feet;ring;head;necklace;backpack;legs;armor" event="script" value="byVocation.lua" />
Tem necessidade de colocar id por id no xml, para que ele reconheça o script...

Qualquer erro me fale.

 

Deu esse erro no xml

 

 

data/movements/movements.xml:574: parser error : Opening and ending tag mismatch

: movements line 2 and movevent
</movevent>
^
data/movements/movements.xml:575: parser error : Extra content at the end of the
document
<movevent type="DeEquip" itemid="8819" slot="armor" event="function" val
ue="onD
^
[Warning - BaseEvents::loadFromXml] Cannot open movements.xml file.
Line: 575, Info: Extra content at the end of the document
> ERROR: Unable to load MoveEvents!

BrunoB
05 de junho de 2015 às 15:02

Deu esse erro no xml

 

 

data/movements/movements.xml:574: parser error : Opening and ending tag mismatch

: movements line 2 and movevent

</movevent>

^

data/movements/movements.xml:575: parser error : Extra content at the end of the

document

<movevent type="DeEquip" itemid="8819" slot="armor" event="function" val

ue="onD

^

[Warning - BaseEvents::loadFromXml] Cannot open movements.xml file.

Line: 575, Info: Extra content at the end of the document

 

 

> ERROR: Unable to load MoveEvents!

 

Coloca a linha toda do xml que você colocou

4 semanas depois...
DuuhzinhowD
27 de junho de 2015 às 18:50

Coloca a linha toda do xml que você colocou

 

 

 

<movevent type="Equip" itemid="2520;2515;2512" slot="hand;feet;ring;head;necklace;backpack;legs;armor" event="script" value="itens.lua"/>

Sim nomeei o .lua como "itens"

 

e aqui o script

local vocations = {

['dark warrior'] = {2520, 2515, 2512},

}

 

-- Não mexa em nada abaixo

function onEquip(cid, item, slot)

local vocation = getPlayerVocationName(cid)

local items = {}

 

for i = 1, #vocations[vocation] do

table.insert(items, vocations[vocation])

end

 

if not isInArray(items, item.itemid) then

doPlayerSendCancel(cid, 'Este item nao pode ser usado por sua vocacao.')

end

 

return true

end

 

up

1 mês depois...
BrunoB
14 de julho de 2015 às 17:38

O tópico foi fechado e movido para lixeira por estar inativo a mais de 10 dias. Caso seja preciso reabrir o mesmo, favor entrar em contato com a equipe.