Ir para conteúdo
  • 0

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


Aerdor

Pergunta

Posts Recomendados

  • 0

Então, cara, tenho apenas uma mínima ideia de qual possa ser o problema.

 

O problema pode ser qualquer função interna usada na composição da minha função getPlayerWeaponId(cid) e para resolver, eu preciso do nome correto do servidor global que você usa para ver como ele funciona e porque ele não está retornando um itemid correto.

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

  • 0

Pronto, achei o problema, estava na função mesmo.

 


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, 5}, getItemInfo(item.itemid).weaponType) then
		ret = item.itemid
		break
	end
end
return ret
end

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

 

Sobre o consumo da munição mesmo com a arma incorreta, só com alterações nas sources para ficar legal. Ou você pode colocar para adicionar o item, logo abaixo da mensagem de erro.

 

doPlayerAddItem(cid, 2546, 1)

 

Mas aí só ficaria legal mesmo com um autostack, senão a munição seria removida e o item pararia na mochila ou no chão por exemplo.

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

×
×
  • Criar Novo...