Ir para conteúdo

[Ajuda] Slot Weapon


Riuzaky

Posts Recomendados

Queria uma reformulação nesse script que da pra utilizar duas pedras no mesmo item que adiciona alguns stats aos itens, porque o problema dele é, quando usa a stone no equipamento o atributos é random ou seja uma sword pode ter +10% distance, e eu queria que fosse assim..

 

Em sword, adicionar (1~10% de skill de sword)

Em club, adicionar (1~10% de skill de club)

Em axe, adicionar (1~10% de skill de axe)

Em distance weapon, adicionar (1~10% de skill de distance) (bows,crossbows)

Em equipaments, adicionar (1~10% de max hp ou mp) (armaduras, helmets, etc)

Em mage equipaments, adicionar (1~10% de skill de ml) (yalahari mask, focus cape etc)

 

Eu posso configurar a parte chata, de item por item, mas só queria pelo menos um exemplo pois não manjo nada de script.

 

 

 

--[[

Slot system 100% by mock \o

]]

---Config

local conf = {

maxSlotCount=2,

ignoredIds={}

}

--End

function choose(...) --- Function by mock.

local arg = {...}

return arg[math.random(1,#arg)]

end

if not getItemAttack then

function getItemAttack(uid)

return getItemAttribute(uid,'attack')

end

function getItemDefense(uid)

return getItemAttribute(uid,'defense')

end

end

local function isArmor(uid) -- Function by Mock the bear.

if (getItemInfo(uid.itemid).armor ~= 0) and (getItemWeaponType(uid.uid) == 0) then

return true

end

return false

end

local function isWeapon(uid) -- Function by Mock the bear.

uid = uid or 0

local f = getItemWeaponType(uid)

if f == 1 or f == 2 or f == 3 then

return true

end

return false

end

local function isShield(uid) -- Function by Mock the bear.

uid = uid or 0

if getItemWeaponType(uid) == 4 then

return true

end

return false

end

local function isBow(uid) -- Function by Mock the bear.

uid = uid or 0

if getItemWeaponType(uid) == 5 and not isItemStackable(uid) then

return true

end

return false

end

function onUse(cid, item, fromPosition, itemEx, toPosition) -- Script by mock the bear (MTB)

if item.uid == 0 or item.itemid == 0 then return false end

toPosition.stackpos = 255

if item.uid == 0 or item.itemid == 0 then return false end

toPosition.stackpos = 255

if isInArray(conf.ignoredIds, itemEx.itemid)

or (not getItemWeaponType(itemEx.uid) or getItemWeaponType(itemEx.uid) > 5)

or (getItemWeaponType(itemEx.uid) == 0 and not isArmor(itemEx))

or itemEx.itemid == 0 or itemEx.type > 1 or isItemStackable(itemEx.uid) then

doPlayerSendCancel(cid, "You cant open a slot on this item.")

return TRUE

end

if isCreature(itemEx.uid) then

return FALSE

end

local nam = getItemName(itemEx.uid)

function getper()

local n = 1

for i=1,10 do

n = n+math.random(0,10)

if n < 8*i then

break

end

end

return n

end

function getSlotCount(nam)

local c = 0

for _ in nam:gmatch('%[(.-)%]') do

c = c+1

end

return c

end

if getSlotCount(nam) < conf.maxSlotCount then

local l = choose('hp','mp','ml','cas','shield','dist')

local p = getper()

 

doSendMagicEffect(toPosition,30)

nam = nam..' ['..l..'.+'..p..'%]'

doItemSetAttribute(itemEx.uid,'name',nam)

doRemoveItem(item.uid,1)

else

doPlayerSendCancel(cid, "You cant open a slot on this item.")

end

return true

end

 

 

se alguém puder fico grato e retribuo com rep+

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.
×
×
  • Criar Novo...