Ir para conteúdo
  • Cadastre-se

Posts Recomendados

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:

 

<movevent type="Equip" itemid="ID" event="script" value="itemseffect.lua">
</movevent>
<movevent type="DeEquip" itemid="ID" event="script" value="itemseffect.lua"/>

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:

 

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

 

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

 

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

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:

 

 

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)
Link para o post
Compartilhar em outros sites

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:


 

yNlhRVC.png

 

55px-Judo_yellow_belt.svg.png

Link para o post
Compartilhar em outros sites
  • 7 months later...

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

Link para o post
Compartilhar em outros sites

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

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

  • Conteúdo Similar

    • Por Ribeiro Foda
      Olá pessoal! Estou precisando de 1 script de quest para 8.4. 
       
      Esse script de quest serve para eu montar 1 ancient helmet se eu tiver as peças e colocar elas no lugar certo, e quando puxar uma alavanca e tiver todas as peças o ancient helmet aparece.
       
      Aqui está 1 video de como é:

       
      Vejam só do 0:13 a 00:44.
       
      P.S: Eu ja fiz esse lugar no mapa eu só preciso da script da quest!
       
      ATT: R1B31R0!
    • Por jeddhemi
      script que estou utilizando trearak.lua: 
       

       
      local tpId = 1387 local tps = {          ["Trearak"] = {pos = {x=32646, y=31307, z=15}, toPos = {x=32689, y=31470, z=13}, time = 60}, }     function removeTp(tp)         local t = getTileItemById(tp.pos, tpId)         if t then                 doRemoveItem(t.uid, 1)                 doSendMagicEffect(tp.pos, CONST_ME_POFF)         end end     function onDeath(cid)         local tp = tps[getCreatureName(cid)]         if tp then                 doCreateTeleport(tpId, tp.toPos, tp.pos)                 doCreatureSay(cid, "O teleport irá sumir em "..tp.time.." segundos.", TALKTYPE_ORANGE_1)                 addEvent(removeTp, tp.time*1000, tp)         end         return TRUE end   <event type="death" name="tp" event="script" value="Trearak.lua"/>   <ali onde esta escrito "tp" eu possuo outro monstro que funciona o script e no events tambem esta com "tp" isso pode interferir em outros script repetir o mesmo evento?  no caso: <event type="death" name="tp" event="script" value="AncientLightDwarvenKingdom.lua"/>    
    • Por TsplayerT
      ALO, COM QUEM EU FALO?
       
           Galera fui abrir meu Server de POkeTibia, porém apareçeu erros no Console quando fui logar-se e assim não consigui entrar no server
           Erro apresentado no Console:

       
      Estarei disponibilisando os arquivos citados no erro.
       
      Arquivo: Cooldown Bar
       


       
      Arquivo: Login
       


       
      POR FAVOR, ME AJUDEM PORQUE SEMPRE TENTO AJUDAR A TODOS
      DAREI REP +
      Obrigado
    • Por juvelino
      Galera to com um mega problema e nao consigo resolver...

      Quando eu vou abrir meu ot da o seguinte erro:
       
      >>Loading items
      Data/items/items.xml:17517: parser error : expected '>'

      [Warning - Items: :loadFromXml] Cannot load items file.
      Line: 17517, Info: Premature end of data in tag items line 2

      Unable to load items (XML)! Continue? (y/n)
       
      Minha ultima linha dos items é assim: </items>
      Me diz oque fazer ai       

       
    • Por xBlackWolf
      Olá a todos, estou mexendo em um servidor aqui 10.35 e percebi que os paladins não conseguem atacar de longe com os arrows! Acho que é algum bug nos Bows, vi um usuário aqui falando que resolveu pelas lib's mas não tenho idéia de como arrumar, alguem já passou por isso ? ele só ataca de perto, a 1sqm. Se não estiver colado no bixo ele não ataca, como se o item fosse um club ou uma sword...
       
      E também tenho outra dúvida, é possível fazer 1 arrow ser usada apenas com certo arco ?? Como poderia ser feito?
       
       
      Aguardo respostas!
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo