Sistema De Reflectboots

35383
Por 35383
em Mods, funções e outros

35383

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 23/10/11Posts: 35Char no Tibia: Um que existe

Bem é se alguem conseguir o item e algum mané atacar ele ele vai refletir o attack em dobro

e você pode escolher se é em holy,physical,death,fire ou energy (eu recomendo holy,mais bonito)

 

Instalando

 

Vá em data/lib e crie um arquivo chamado reflectboots.lua apague tudo

e adicione isso:

 

function isHandedWeapon(itemuid)
   local typee = getItemWeaponType(itemuid) or 0
   if typee >= 1 and typee <= 6 then
       return CONST_SLOT_RIGHT
   end
   return -1
end

function getItemType(itemid)
   local slottypes = {"head", "body", "legs", "feet", "ring", "necklace"}
   local consts = {
   ["head"] = CONST_SLOT_HEAD,
   ["armor"] = CONST_SLOT_ARMOR,
   ["legs"] = CONST_SLOT_LEGS,
   ["feet"] = CONST_SLOT_FEET,
   ["ring"] = CONST_SLOT_RING,
   ["necklace"] = CONST_SLOT_NECKLACE
   } 
   local arq = io.open("data/items/items.xml", "r"):read("*all")
   local attributes = arq:match('<item id="' .. itemid .. '".+name="' .. getItemNameById(itemid) ..'">(.-)</item>')
   local slot = ""
   for i,x in pairs(slottypes) do
       if attributes:find(x) then
               slot = x
                   break
           end
   end
   if slot == "body" then
       slot = "armor"
   end
return consts[slot]
end

function addReflectCharges(item, charges, reflectpercent)
   if charges ~= "inf" then
       charges = charges+1
       doItemSetAttribute(item, "mcharges", charges)
       doItemSetAttribute(item, "charges", charges)
       doItemSetAttribute(item, "name", getItemNameById(getThing(item).itemid) .. " that is brand-new")
   else
       doItemSetAttribute(item, "charges", -1)
       doItemSetAttribute(item, "mcharges", "inf")
   end
   doItemSetAttribute(item, "reflect", reflectpercent)
   doItemSetAttribute(item, "description", "That item reflects " .. reflectpercent .. " percent of physical damage.")
end

function renewCharges(item)
   if getItemAttribute(item, "charges") and getItemAttribute(item, "mcharges") ~= "inf" then
       doItemSetAttribute(item, "charges", getItemAttribute(item, "mcharges"))
       doItemSetAttribute(item, "name", getItemNameById(getThing(item).itemid) .. " that is brand-new")
   end
end

 

 

Agora vá em data/creaturescripts/scripts e adicione o script reflect.lua com esse script:

 

function onStatsChange(cid, attacker, type, combat, value)
   local slots = {CONST_SLOT_HEAD, CONST_SLOT_NECKLACE, CONST_SLOT_ARMOR, CONST_SLOT_RIGHT, CONST_SLOT_LEFT, CONST_SLOT_LEGS, CONST_SLOT_FEET, CONST_SLOT_RING}
   local reflectpercent = 0
   local itens = {}
   for i = 1, #slots do
       if getPlayerSlotItem(cid, slots[i]).uid > 1 and (getItemType(getPlayerSlotItem(cid, slots[i]).itemid) == slots[i] or isInArray({CONST_SLOT_RIGHT, CONST_SLOT_LEFT}, isHandedWeapon(getPlayerSlotItem(cid, slots[i]).uid))) and getItemAttribute(getPlayerSlotItem(cid, slots[i]).uid, "mcharges") and (getItemAttribute(getPlayerSlotItem(cid, slots[i]).uid, "charges") > 1 or getItemAttribute(getPlayerSlotItem(cid, slots[i]).uid, "mcharges") == "inf") then
           reflectpercent = reflectpercent+getItemAttribute(getPlayerSlotItem(cid, slots[i]).uid, "reflect")
           table.insert(itens, getPlayerSlotItem(cid, slots[i]))
       end
   end
   if combat == 1 and reflectpercent > 0 then
       if math.ceil(-value*((100-reflectpercent)/100)) < 0 then
           doCreatureAddHealth(cid,  math.ceil(-value*((100-reflectpercent)/100)))
           doSendAnimatedText(getCreaturePosition(cid), math.ceil(value*((100-reflectpercent)/100)), COLOR_RED)
           local a = doCreateItem(2019, 2, getCreaturePosition(cid))
           doSendMagicEffect(getCreaturePosition(cid), 0)
           doDecayItem(a)
       else
           doSendMagicEffect(getCreaturePosition(cid), 3)
       end
       if math.ceil(-value*(reflectpercent/100)) < 0 then
           doCreatureAddHealth(attacker, math.ceil(-value*(reflectpercent/100)))
           doSendAnimatedText(getCreaturePosition(attacker), math.ceil(value*(reflectpercent/100)), COLOR_GREY)
           local a = doCreateItem(2019, 2, getCreaturePosition(attacker))
           doSendMagicEffect(getCreaturePosition(attacker), 9)
           doDecayItem(a)
       end
       for i,x in pairs(itens) do
           if getItemAttribute(x.uid, "mcharges") ~= "inf" then
               doItemSetAttribute(x.uid, "charges", getItemAttribute(x.uid, "charges")-1)
               doItemSetAttribute(x.uid, "name", getItemNameById(x.itemid) .. " that has " .. getItemAttribute(x.uid, "charges")-1 .. " charge" .. (getItemAttribute(x.uid, "charges")-1 > 1 and "s" or "") .. " left")
           end
       end
   else
   return TRUE
   end
end

 

Agora na mesma pasta, procure por login.lua, e antes do ultimo return true, adicione essa isso:

 

registerCreatureEvent(cid, "ReflectDamage")

 

Agora vá em creaturescripts.xml e adicione esta tag:

 

<event type="statschange" name="ReflectDamage" event="script" value="reflect.lua"/>

 

Simples não?O script está pronto para se usado

 

O script segue com tais funçoes para voce usar em outros scripts:

 

addReflectCharges(item, charges, reflectpercent)

♦Função: Ela é o coraçao do script, sem ela voce nao faz nada, voce usa ela pra adicionar cargas a um item qualquer, des de que seja equipavel.

 

♦item - O uid do item que vai ser adicionado as cargas.

♦charges - Numero de cargas, caso voce use "inf", assim mesmo com as aspas, o item tera infinitas cargas.

♦reflectpercent - Porcentagem de reflexão que o item vai ter.

 

renewCharges(item)

♦ Função: Recarregar as cargas de um item.

 

♦ item - O uid do item que vai ser recarregado.

 

O script usado para adicionar o colar foi uma talkaction assim:

 

function onSay(cid, words, param)
   local item = doPlayerAddItem(cid, 2125)
   addReflectCharges(item, 40, 75)
return TRUE
end

 

Creditos:

Sheamus88(pelo script)

SecondHeartbeat

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 10/07/11Posts: 15Char no Tibia: Second Hearbeat

vou testar aki se for bacana

dou rep +

Craig+Jones+133+All+Hope+Is+Gone.jpg

 

 

 

 

"Slipk Ever"

35383

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 23/10/11Posts: 35Char no Tibia: Um que existe

Tipow não é de Reflect Boots mas você pode por para ser

SecondHeartbeat

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 10/07/11Posts: 15Char no Tibia: Second Hearbeat

tem como fazer uma magia disso ?

Craig+Jones+133+All+Hope+Is+Gone.jpg

 

 

 

 

"Slipk Ever"

35383

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 23/10/11Posts: 35Char no Tibia: Um que existe

Como assim tipo uma proteção?

me explica melhor que talvez eu fasa um pra vc

 

afé porque o xtibia ta estranho aqui em casa

fagundes14

Hy MaTTheW
avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 06/10/11Posts: 96Char no Tibia: Worna Crien

@Sheamus88

 

Tem Como Adaptar Esse Sitema Para Para 8.0 ?

alldakie

avatar
Marquês
Marquês

INFOS

Grupo: MarquêsRegistrado: 28/07/11Posts: 1223

Belo script, gostei muito, vai ser muito útil mais para frente!

 

Continue com o seu ótimo trabalho!

SecondHeartbeat

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 10/07/11Posts: 15Char no Tibia: Second Hearbeat

tipo uma magia q o kina ativaçe e dava 30% de chance de reflect

Craig+Jones+133+All+Hope+Is+Gone.jpg

 

 

 

 

"Slipk Ever"

35383

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 23/10/11Posts: 35Char no Tibia: Um que existe

tipo uma magia q o kina ativaçe e dava 30% de chance de reflect

lol cara sei que sou scripter mas eu não consigo criar um desses pede a uma scripter

mais experiente tipo Vodkart,Demonbholder ou SkyDangerous

 

@Sheamus88

 

Tem Como Adaptar Esse Sitema Para Para 8.0 ?

Desculpe mas não sei mecher com esse troço de pór pra 8.0 ou 8.54 essas coisas só sei que é 8.60

supraaxx

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 29/10/10Posts: 6Char no Tibia: Maldito Killer Black

só n entendi como adiciona o efeito em um item . . tipo n achei onde ta o id XXXX pra mim mudar pelo que eu quero ;*

lfelipebsilva05

avatar
Cavaleiro
Cavaleiro

INFOS

Grupo: CavaleiroRegistrado: 21/11/11Posts: 160

tem que adc o systema e dps por a tag? obg'

Pardalziin

Pardal
avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 15/09/10Posts: 85Char no Tibia: Marekel Iser

Mto bom cara,acredito que se inspirou no jogo MU nao é?

otserver.png

 

Pardal-espanhol%252520%252528F%2525C3%2525AAmea%252529.JPG

coyotestark

avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 15/02/11Posts: 259Char no Tibia: Aias Laf Du

nao entendi como usar isto.

pq tipo como eu escolho o item que tera este reflect?

minha versao eh 850+ mas memso assim quero testar mas nao sei aonde eu escolho o item a ser equipado.

385417_122391137880813_100003297811828_101325_1909172176_n.jpg

Nao sou Gigante mas grande o suficiente para entender tudo a minha volta.

Snowsz

avatar
Artesão
Artesão

INFOS

Grupo: ArtesãoRegistrado: 22/01/12Posts: 121Char no Tibia: Not...

ei carinha tem como por pra ter chance de refletir ? é q vou criar um shield reflequitivo passa o script com chance de refletir e com charges infinitias e outro com charges no-infinitas pf

Oi '-'