Ir para conteúdo

Featured Replies

Postado
if v < 29 then 

Se as charges do seu AoL forem menores que 29, ou seja, você tiver morrido 29 vezes com ele, você não vai perder items, experiência, ou seja lá o quê você deixa de perder com AoL. Se você colocar como mostrou (v >= 1), o item vai ser removido automaticamente, visto que, caso as charges não sejam maiores ou iguais a 1, é programado para remover o item.

doPlayerSetLossSkill(cid, false)

E sobre essa função: como eu já disse, não faço ideia do quê AoL faz, e me baseei no código do danihcv. Você pode removê-la, se quiser.

doItemSetAttribute(getPlayerSlotItem(cid, 2).uid, "charges", v - 1)

E sobre isso: os atributos tem valor inicial nulo.

Neste código, fiz uma coisinha na variável v para que, no caso do valor do atributo charges ser nulo, o valor adotado seja 0. Setando o valor deste atributo para v - 1, as charges passariam a ser negativas. 

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

não respondo pms solicitando suporte em programação/scripting

  • Respostas 29
  • Visualizações 939
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • Tente: function onDeath(cid)     aol = 2173     slot = getPlayerSlotItem(cid, CONST_SLOT_NECKLACE)          if slot.itemid == aol and getItemAttribute(slot.uid, 'charges') == 1 then         doRemove

  • Testei desse modo. As charges bugaram e deixaram o item infinito, por isso não indiquei essas tags.

  • vdd, testei no otx nao bugou, ate que chegou na ultima charge, perdao pelo post

Postado
if v < 29 then 

Se as charges do seu AoL forem menores que 29, ou seja, você tiver morrido 29 vezes com ele, você não vai perder items, experiência, ou seja lá o quê você deixa de perder com AoL. Se você colocar como mostrou (v >= 1), o item vai ser removido automaticamente, visto que, caso as charges não sejam maiores ou iguais a 1, é programado para remover o item.

doPlayerSetLossSkill(cid, false)

E sobre essa função: como eu já disse, não faço ideia do quê AoL faz, e me baseei no código do danihcv. Você pode removê-la, se quiser.

doItemSetAttribute(getPlayerSlotItem(cid, 2).uid, "charges", v - 1)

E sobre isso: os atributos tem valor inicial nulo.

Neste código, fiz uma coisinha na variável v para que, no caso do valor do atributo charges ser nulo, o valor adotado seja 0. Setando o valor deste atributo para v - 1, as charges passariam a ser negativas. 

 

O problema é que não testei, e tenho certas batalhas com doItemSetAttribute e getPlayerSlotItem :P, quando tento checar o atributo attack do slot esquerdo da mão do player retorna nil, mesmo com espada, o desgraça...

                              _
                          .-'` `}
                  _./)   /       }
                .'o   \ |       }
                '.___.'`.\    {`
                /`\_/  , `.    }                                      ME DA UMA NOZ!
                \=' .-'   _`\  {
                 `'`;/      `,  }
                    _\   @   ;  }
                   /__`;-...'--'

Cluck!

Postado

Tente:

function onDeath(cid)
    aol = 2173
    slot = getPlayerSlotItem(cid, CONST_SLOT_NECKLACE)
    
    if slot.itemid == aol and getItemAttribute(slot.uid, 'charges') == 1 then
        doRemoveItem(slot.uid)
    end
    
    return true
end

PS: Não se esqueça de registrar o creature event death em login.lua




Se não obtiver sucesso, outro método possível seria por storage:

function onDeath(cid)
    aol = {2173, 30}
    stor = 76543
    slot = getPlayerSlotItem(cid, CONST_SLOT_NECKLACE)
    
    if slot.itemid == aol[1] then
        if getPlayerStorageValue(cid, stor) < 1 then
            setPlayerStorageValue(cid, stor, aol[2] - 1)
        elseif getPlayerStorageValue(cid, stor) == 1 then
            setPlayerStorageValue(cid, stor, -1)
            doRemoveItem(slot.uid)
        else
            setPlayerStorageValue(cid, stor, getPlayerStorageValue(cid, stor) - 1)
        end
    end
    
    return true
end

Novamente: Não se esqueça de registrar o creature event death em login.lua




Certifique-se de que a seguinte tag no seu amulet of loss em items.xml (por precaução):

<attribute key="preventDrop" value="1" />

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

The corrupt fear us.

The honest support us.

The heroic join us.

Postado

Para que essas lenga lengas toda? o.O

 

vai em item.xml e mude isso

	<item id="2173" article="an" name="amulet of loss">
		<attribute key="weight" value="420"/>
		<attribute key="slotType" value="necklace"/>
		<attribute key="preventDrop" value="1"/>
		<attribute key="charges" value="1"/>
	</item>

para isso

	<item id="2173" article="an" name="amulet of loss">
		<attribute key="weight" value="420"/>
		<attribute key="slotType" value="necklace"/>
		<attribute key="preventDrop" value="1"/>
		<attribute key="charges" value="30"/>
	</item>

Te ajudei? Então Rep + ;)

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.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.6k

Informação Importante

Confirmação de Termo