Ir para conteúdo
Banner com Efeitos

Featured Replies

Postado

Bom galera, criei esse "sisteminha" esses dias, pois estava brincando com strings, tentando aprender mais sobre elas, e então em meio de alguns testes, me veio a ideia de criar um sistema onde ao equipar determinado item, um efeito sairá da posição de onde o personagem estiver com o primeiro nome do item a cada x segundos (animated text), ex.: equipei a zaoan sword, id 11301. Quando o efeito sair, sairá o nome "zaoan" da posição atual do meu personagem a cada 3 segundos, enquanto o item estiver equipado. Notem que o sistema usa animated text, logo versões de tfs mais novas não rodarão esse sistema. Notem também que como eu estava sem criatividade, eu usei um storagevalue em moveevents para quando o player equipar o item e para quando ele desequipar. Daria pra fazer sem o storage? Sim. Mas, como eu estava com preguiça, deixei do jeito que tava mesmo e pronto.

Outro ponto a destacar: Fiz o sistema apenas para efeitos de itens equipados NAS MAOS, ou seja, se você adicionar um id de uma legs no sistema, ele não rodará o efeito, a não ser que você ponha a legs na mao, o que seria estranho, hahaha. Como disse, criei o sistema para testar algumas coisas, mas como ficou legalzinho eu resolvi postar. hahaha enfim,

Eis o sistema:
 
Em moveevents.xml adicione a seguinte tag:

 

Mostrar conteúdo oculto

Onde está em escrito ID você põe os ids das weapons/shields que você quer o efeito. para acrescentar mais de um id, basta usar ; entre os ids, ex.: itemid="11301;2186;x;y;z" e.e'

 

 

Agora crie um arquivo .lua chamado itemseffect.lua (em moveevents!)

se ele tiver algo dentro, apague e ponha isso:

 

Mostrar conteúdo oculto
function onEquip(cid, item, slot)
setPlayerStorageValue(cid, 164333, 1) --storage value qualquer, que você não vá usar para mais nada e.e'
return true
end


function onDeEquip(cid, item, slot)
setPlayerStorageValue(cid, 164333, 0) --deverá ser o mesmo storage do onEquip, caso contrário vai dar ruim.
return true
end

 

Feito isso, vá para a pasta creaturescripts.

em creaturescripts.xml adicione a seguinte tag

 

Mostrar conteúdo oculto

<event type="think" name="ItemEffect" event="script" value="itemeffect.lua"/>

 

Agora em login.lua, antes do ultimo return true, acrescente a seguinte linha:

Mostrar conteúdo oculto

registerCreatureEvent(cid, "ItemEffect")

 

Crie então um arquivo .lua e renomei-o para itemeffect.lua 

Apague tudo que tiver dentro dele (se tiver algo) e ponha o seguinte:

 

Mostrar conteúdo oculto

 

local config = {
tempo = 3 -- tempo, em segundos que o efeito demorará para sair.
}


local weapons = {
[11301] = TEXTCOLOR_LIGHTBLUE,
[2186] = TEXTCOLOR_RED
}

--[ID da arma/escudo] = Tipo de efeito do animated text. Não esqueça de acrescentar as vírgulas no final de cada 
--linha antes da ultima, para evitar bugs de vetor. Apenas siga o exemplo acima e vai estar tudo certo. hahahah




function ItemEffect(cid)
if isPlayer(cid) then
for k, v in pairs(weapons) do
local teste1 = getPlayerSlotItem(cid, CONST_SLOT_LEFT)
local teste2 = getPlayerSlotItem(cid, CONST_SLOT_RIGHT)
if teste1.itemid == k or teste2.itemid == k then
local name = string.explode(getItemNameById(k), " ")
doSendAnimatedText(getCreaturePosition(cid), name[1], v)
end
end
end
end


function onThink(cid, interval)


     if getPlayerStorageValue(cid, 164333) ~= 1 then
return true
end
if (getPlayerStorageValue(cid, 164334) - os.time()) <= 0 then --164334 é para guardar o intervalo de tempo.
ItemEffect(cid)
setPlayerStorageValue(cid, 164334, config.tempo + os.time())
else
return true
end
return TRUE
end

 

Quando eu estiver com menos preguiça eu dou uma "upada" no sistema, aperfeiçoando e tals.

Espero que tenham gostado! Para servidores Baiak, ou custom high exp esse sistema é bacaninha. hahaha. Sintam-se livres para modificarem-no! E se o fizerem, postem aqui para sabermos o que fizeram de novo, xD Enfim, é isso. hahaha Vlw flw.

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

Postado

Em nome da comunidade do TK, muito obrigado pela contribuição! :wow:
Seu tópico de conteúdo foi aprovado e será movido para a seção adequada. Você ganhou 1 REP+!


Eu usaria uns addEvents no onEquip, ao invés de usar um onThink, pouparia memória.

Se quiser sua dúvida tirada, mande PM com os links, e não com a dúvida (outros podem ter a mesma dúvida, e o fórum serve para ser usado).

 

Tópicos:


Mostrar conteúdo oculto

 

yNlhRVC.png

 

55px-Judo_yellow_belt.svg.png

  • 7 months later...
Postado

Estou adicionando algumas estatuas com alguns scripts nelas e sao em muitas cidades.. Queria saber se tem alguma maneira de adaptar este script para a estatua fica falando:

 

Estatua ItemID=0123 

Ficar saindo letras igual um Teleport que em globalevents sai: "Monsters" a cada segundo...

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