Ir para conteúdo

Featured Replies

Postado
  • Autor
7 horas atrás, Zazeros disse:

@Zzyzx Então voce pode criar 2 itens, uma espada que de esse dano 3x3 e outra igual a ela que não, ai voce põe nos actions que quando clicar nela, ela "liga" e o script transforma ela na espada 3x3 que voce criou, quando voce clica de novo, o script "desliga" ela, transformando ela na outra espada.

 

mas ai que ta, essa pedra vai poder usar em qualquer item que a pessoa quiser, "WAND, SWORD, CLUB, ARROW, AXE", em todos desde a mais fraca até a mais forte.

       112674.gif

 

 

 

  • Respostas 19
  • Visualizações 2.1k
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • Tópico muito mal explicado, assim não da pra saber o que você quer exatamente. Script da pedra que transformará a Sword; local config = { Pedra = 2220, -- ID da pedra que transformará um

  • Da pra copiar o sistema de encantamento de armas do tibia. Talvez baixar um items.otb editor e duplicar as sprites das armas, dai quando usa a pedra nelas se transformam em outro id (mesma sprite

  • 3 = é o monstro que será atacado, significa que ali é a parte central dos efeitos 2 = se eu não me engano é o player, pra spells tipo exevo mas san 1 = area atingida pelo effect 0 = are

Postado
3 horas atrás, Zzyzx disse:

 

mas ai que ta, essa pedra vai poder usar em qualquer item que a pessoa quiser, "WAND, SWORD, CLUB, ARROW, AXE", em todos desde a mais fraca até a mais forte.

 

Da pra copiar o sistema de encantamento de armas do tibia.

Talvez baixar um items.otb editor e duplicar as sprites das armas, dai quando usa a pedra nelas se transformam em outro id (mesma sprite) por um tempo configurável, depois volta pro id original.

 

Esse id duplicado seria a arma em 3x3. (outro script)

 

exemplo:

 

  • Por tempo de duração

actions/scripts/triweapon

 

Citar

function onUse(cid, item, fromPosition, itemEx, toPosition)
    if(item.itemid == IDPEDRA and itemEx.itemid == IDARMA) then
        doTransformItem(itemEx.uid, IDARMADUPLICADA)

        doItemSetAttribute(item.uid, "duration", os.time() + 30 * 24 * 60 * 60
        doDecayItem(itemEx.uid)
        doRemoveItem(item.uid, 1)

        doSendMagicEffect(toPosition, CONST_ME_MAGIC_RED)
        return true
    end

 

 

  • Se volta ao normal usando a pedra nela:

 

actions/scripts/triweaponback

Citar

function onUse(cid, item, fromPosition, itemEx, toPosition)
    if(item.itemid == IDPEDRA and itemEx.itemid == IDARMADUPLICADA) then
        doTransformItem(itemEx.uid, IDARMA)

        doDecayItem(itemEx.uid)
        doRemoveItem(item.uid, 1)

        doSendMagicEffect(toPosition, CONST_ME_MAGIC_RED)
        return true
    end

 

  • Tempo de duração:

creaturescripts/login.lua

Citar

 

local items = getAllItemsById(cid)
for i = 1, #items do
    local dur = getItemAttribute(items[i].uid, "duration")
    if dur and dur < os.time() then
        doRemoveItem(items[i].uid)
    end
end

 

 

 

items/items.xml

Citar

<attribute key="duration" value="X" />

 

 

  • Dano 3x3

weapons/scripts/triweapon01 (com critical)

Citar

local chance = 85
local arr = {{0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 1, 1, 1, 1, 1, 1, 1, 0}, {0, 1, 1, 1, 1, 1, 1, 1, 0}, {0, 1, 1, 1, 1, 1, 1 , 1, 0}, {0, 1, 1, 1, 3, 1, 1, 1, 0}, {0, 1, 1, 1, 1, 1, 1, 1, 0}, {0, 1, 1, 1, 1, 1, 1, 1, 0}, {0, 1, 1, 1, 1, 1, 1, 1, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0}}
 
 
local combat = {}
for i = 1, 2 do
    table.insert(combat, createCombatObject())
    if i == 1 then
        setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
        setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_GROUNDSHAKER)
        setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, 0, -107100, 0, -137100)
    else
        setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_HOLYDAMAGE)
        setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_HOLYDAMAGE)
        setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, 0, -100000, 0, -300000)
        
        local area = createCombatArea(arr)
        setCombatArea(combat, area)
    end
end
 
function onUseWeapon(cid, var)
    local index = math.random(100) <= chance and 2 or 1
    if index == 2 then
        doSendAnimatedText(getPlayerPosition(cid),"White Star", TEXTCOLOR_YELLOW)
    end
    return doCombat(cid, combat[index], var)
end

 

 

 

Não é bem a solução pro seu problema, até por que essa weapon com critical tem um dano diferente. Mas ta ai uma opção caso você não consiga o código 100% do sistema.

Editado por Daniel (veja o histórico de edições)

Postado
  • Autor

@Daniel 

interessante essa parada ai, mas deixa eu tirar algumas duvidas, se eu editar no "items.otb", duplicar algumas sprites, para as pessoas ver esse item eles vão ter que baixar o cliente do servidor, ou no cliente normal 8.6 eles conseguem ver normal?

outra coisa essa parte do dano 3x3, é possivel por ela pra funcionar com o ataque normal do item, tipo balanceado pelo skill sabe, se ele hitar 100, vai hitar 100 nos 3x3, não por uma base,  com min "500 - 1000" e max?

       112674.gif

 

 

 

Postado

Tópico muito mal explicado, assim não da pra saber o que você quer exatamente.
Script da pedra que transformará a Sword;

local config = {    
    Pedra = 2220, -- ID da pedra que transformará um item em outro
    Normal = 2350, -- ID da arma normal 
    Transform = 2351, -- ID da arma transformada
    Effect = 5 -- Efeito ao transformar a arma
}
function onUse(cid, item, fromPosition, itemEx, toPosition)    
    if item.itemid == config.Pedra and itemEx.itemid == config.Normal then
        doTransformItem(itemEx.uid, config.Transform)
        doSendMagicEffect(getCreaturePosition(cid), config.Effect)
        doPlayerSendTextMessage(cid, 27, "Voce transformou sua arma!!")
        return true
    elseif item.itemid == config.Pedra and itemEx.itemid == config.Transform then
        doTransformItem(itemEx.uid, config.Normal)
        doSendMagicEffect(getCreaturePosition(cid), config.Effect)
        doPlayerSendTextMessage(cid, 27, "Sua arma voltou ao estado natural.")
        return true
    else 
        doSendMagicEffect(getCreaturePosition(cid), 2)
        doPlayerSendTextMessage(cid, 27, "Algo deu errado.")
        return false
    end
    return true
end

Weapons.XML

<melee id="ID da arma transformada" event="script" value="Weapon.lua">
		<vocation id="ida das voc que poderão usar"/>
</melee>

Weapons/scripts;

local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_HOLYDAMAGE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_HOLYDAMAGE)
setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_WHIRLWINDSWORD)
setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -5.0, -2000, -5.0, -15000) 

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

function onUseWeapon(cid, var)
    return doCombat(cid, combat, var)
end

 

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Conteúdo Similar

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.6k

Informação Importante

Confirmação de Termo