Ir para conteúdo

Featured Replies

Postado

Não que esteja ruim, não. Não foi por isso que eu citei, mas você copiar algo e nem sequer citar sobre o desenvolvedor é plágio.
Tá certo, haja como quiser.

The corrupt fear us.

The honest support us.

The heroic join us.

  • Respostas 17
  • Visualizações 901
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • O aumento de velocidade e magic level, você pode editar em items.xml, aplicando as seguintes linhas no código referente ao item em questão: <attribute key="speed" value="30" /> <attribute k

  • Fiz ai pra você LEMBRANDO olha até ali embaixo o DeEquip é importante na xml. local config = { tempo = 1, items = {11384} -- ITEM QUE VAI } function MagicBuff(cid, tempo, item) if (isCrea

Postado

Tá bom, mestre da arte do CTRL+C/CTRL+V.
Enfim, não vou discutir com criança.


@avalax
Apropriei o script:

local tab = {
	effect = {55, 1000}, --  {magicEffectNumber, delay em milissegundos}
	stor = 54321 -- storage
}

local condition = createConditionObject(CONDITION_ATTRIBUTES)
setConditionParam(condition, CONDITION_PARAM_TICKS, -1)
setConditionParam(condition, CONDITION_PARAM_STAT_MAGICLEVEL, 30)

function effectOnEquip(cid)
	if not isCreature(cid) then return false end
		if getPlayerStorageValue(cid, tab.stor) < 1 then return false end
	doSendMagicEffect(getThingPos(cid), tab.effect[1])
	return addEvent(effectOnEquip, tab.effect[2] * 1000, cid)
end

function onEquip(cid, item)
	if getPlayerStorageValue(cid, tab.stor) < 1 then
		setPlayerStorageValue(cid, tab.stor, 1)
		doChangeSpeed(cid, getCreatureSpeed(cid) + 30)
		doAddCondition(cid, condition)
		return addEvent(effectOnEquip, tab.effect[2] * 1000, cid)
	end
	return true
end

function onDeEquip(cid, item)
	setPlayerStorageValue(cid, tab.stor, -1)
	doChangeSpeed(cid, getCreatureSpeed(cid) - 30)
	doRemoveCondition(cid, CONDITION_ATTRIBUTES)
	return true
end




Só pra garantir que o player fique com a storage negativa ao morrer/fazer logout:

itembuff.lua (data/creaturescripts/scripts):

local item, stor = 1234, 54321 -- itemID, storage

function onPrepareDeath(cid)
    if getPlayerStorageValue(cid, stor) > 0 then
        setPlayerStorageValue(cid, stor, -1)
        if isContainer(getPlayerSlotItem(cid, 3).uid) then
            doRemovePlayerItem(cid, item, 1)
            doAddContainerItem(getPlayerSlotItem(cid, 3).uid, item, 1)
        end
    end
    return true
end

function onLogout(cid)
    if getPlayerStorageValue(cid, stor) > 0 then
        setPlayerStorageValue(cid, stor, -1)
        if isContainer(getPlayerSlotItem(cid, 3).uid) then
            doRemovePlayerItem(cid, item, 1)
            doAddContainerItem(getPlayerSlotItem(cid, 3).uid, item, 1)
        end
    end
    return true
end

PS: a storage usado no creature script tem de ser a mesma do movement script.




Tag - creaturescripts.xml (data/creaturescripts):

<event type="preparedeath" name="ItemBuffPD" event="script" value="itembuff.lua"/>
<event type="logout" name="ItemBuffLO" event="script" value="itembuff.lua"/>

 


Adicione o registro do creature event (preparedeath) em login.lua (data/creaturescripts/scripts):

registerCreatureEvent(cid, "ItemBuffPD")

The corrupt fear us.

The honest support us.

The heroic join us.

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.7k

Informação Importante

Confirmação de Termo