AE
pedido

Munição Pra Só Uma Arma Específica

Por Aerdor, 11 de dez. de 2012 em Scripts

resolvido
23
2k
AerdorA
11 de dezembro de 2012 às 12:34

Tipo.. queria saber como fazer pra por exemplo... O burst arrow só poder ser usado com um único bow e não com qualquer um.

 

Alguém ai tem noção de como fazer?

RoksasR
11 de dezembro de 2012 às 12:49

Em data/movements/scripts, crie um arquivo chamado uniquearm.lua e adicione isso dentro:

 

function onEquip(cid, item, slot)
if getPlayerStorageValue(cid, 2544) < 1 then
setPlayerStorageValue(cid, 2544, getPlayerStorageValue(cid, 2544) + 1)
end
return true
end

function onDeEquip(cid, item, slot)
if getPlayerStorageValue(cid, 2544) > 0 then
setPlayerStorageValue(cid, 2544, getPlayerStorageValue(cid, 23224) - 1)
end
return true
end

 

Agora em movements.xml você adiciona a tag:

 

<movevent type="Equip" itemid="ID DO BOW" level="2" slot="shield" event="Equip" script="uniquearm.lua">

<vocation id="0"/>

<vocation id="5"/>

</movevent>

 

Em vermelho, o ID do bow que você quer, e em verde as vocações que podem usar!

 

@EDIT

 

Agora na mesma pasta (data/movements/scripts) você adiciona um arquivo com o nome uniqueammo.lua, dentro coloque isso:

 

function onEquip(cid, item, slot)
		if(item.itemid == 2544) then
			if getPlayerStorageValue(cid,2455,1) then
doPlayerSendTextMessage(cid,"Você equipou o Bow Especial!")
			end
else
doPlayerSendTextMessage(cid,"Esta munição não se usa com essa arma!")
		return true
	end
end

 

E a tag em movements.xml:

 

<movevent type="Equip" itemid="ID DO ARROW" level="2" slot="arrow" event="Equip" script="uniquearm.lua">

<vocation id="0"/>

<vocation id="5"/>

</movevent>

 

Basta editar conforme a outra tag lá em cima.

Boa sorte! Poste resultados.

Editado Dezembro 11 por Roksas

OneshotO
11 de dezembro de 2012 às 13:00

Provavelmente seu servidor possui um arquivo chamado burst_arrow.lua na pasta data/weapons/scripts, abra-o, apague tudo que há dentro dele e cole o seguinte conteúdo abaixo:

 

local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_BLOCKARMOR, 1)
setCombatParam(combat, COMBAT_PARAM_BLOCKSHIELD, 1)
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_FIREAREA)
setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_BURSTARROW)
setCombatFormula(combat, COMBAT_FORMULA_SKILL, 1, 0, 1, 0)

local area = createCombatArea({
{1, 1, 1},
{1, 3, 1},
{1, 1, 1}
})

setCombatArea(combat, area)

local function getPlayerWeaponId(cid) -- By Oneshot
local ret = 0
for slot = 6, 5, -1 do
	local item = getPlayerSlotItem(cid, slot)
	if item.itemid > 0 and isInArray({1, 2, 3, 4}, getItemInfo(item.itemid).weaponType) then
		ret = item.itemid
		break
	end
end
return ret
end

function onUseWeapon(cid, var)
if getPlayerWeaponId(cid) == 7438 then
	return doCombat(cid, combat, var)
end
doPlayerSendCancel(cid, "You cannot use this arrow with this ordinary bow.")
return false
end

Editado Dezembro 11 por Oneshot

AerdorA
11 de dezembro de 2012 às 13:06

@Roksas, não consegui do seu jeito mano :S

 

@Oneshot, não tá indo, até com o id do item colocado dá a msg q não é possível usar D:

OneshotO
11 de dezembro de 2012 às 13:12

       if getPlayerWeaponId(cid) == 7438 then
               return doCombat(cid, combat, var)
       end

 

Estranho, aqui funcionou muito bem. O ID deve ser modificado ali naquela linha, abraços.

AerdorA
11 de dezembro de 2012 às 13:15

Sim, eu botei assim:

 

function onUseWeapon(cid, var)
   if getPlayerWeaponId(cid) == 2432 then
       return doCombat(cid, combat, var)
   end
   doPlayerSendCancel(cid, "You cannot use this arrow with this ordinary bow.")
   return false
end

 

A munição é gasta com qualquer arma que eu coloco, mas n sai o dano e nem o efeito. Até aí tudo bem, gastar a munição é o de menos, o problema eh q n ta funcionando com a arma especificada :(

OneshotO
11 de dezembro de 2012 às 16:31

Ah, claro, você quer utilizar Burst Arrow com Fire Axe. Faz muito sentido, isso.

Editado Dezembro 11 por Oneshot

AerdorA
11 de dezembro de 2012 às 17:03

Não mano, tá editado UHASUHASUHASUHASUHSAUHASUHA

Não é mais fire axe UHASUHASUHASUHUSAHUASH

OneshotO
11 de dezembro de 2012 às 17:30

Verifique se arma editada tem todas as propriedades de um bow ou crossbow.

AerdorA
11 de dezembro de 2012 às 18:31

Possui sim, até pq se eu experimentar trocar o tipo de munição, pra arrow normal por exemplo, ele funciona normalmente. :|

OneshotO
11 de dezembro de 2012 às 18:39

Posta para mim, o Item ID 2432 do seu items.xml.

Editado Dezembro 11 por Oneshot

AerdorA
11 de dezembro de 2012 às 19:13

- <item id="2432" article="a" name="Ultimate Fire Bow">

<attribute key="weight" value="5000" />

<attribute key="attack" value="80" />

<attribute key="weaponType" value="distance" />

<attribute key="slotType" value="two-handed" />

<attribute key="ammoType" value="arrow" />

<attribute key="range" value="8" />

</item>

 

 

- <item id="2546" article="a" name="burst arrow" plural="burst arrows">

<attribute key="weight" value="90" />

<attribute key="slotType" value="ammo" />

<attribute key="attack" value="75" />

<attribute key="hitChance" value="100" />

<attribute key="weaponType" value="ammunition" />

<attribute key="ammoType" value="arrow" />

<attribute key="shootType" value="burstarrow" />

<attribute key="ammoAction" value="removecount" />

</item>

OneshotO
11 de dezembro de 2012 às 19:20

No caso, você tirou a linha do ID 2432 do weapons.xml, parecida com essa?

 

<melee id="2432" level="35" unproperly="1" event="function" value="default"/>

 

Mas não deixe de tentar com outro tipo de item que seja bow.

AerdorA
11 de dezembro de 2012 às 19:38

Não modifiquei essa linha, continua a mesma coisa.

Testei até com o bow normal e não foi mano :\

 

Valeu por estar se empenhando pra ajudar, você é o único, já ganha meu rep+

OneshotO
11 de dezembro de 2012 às 19:40

A linha que eu passei acima tem que ser retirada.

 

Por curiosidade, que servidor você usa?

Editado Dezembro 11 por Oneshot