Ir para conteúdo

Featured Replies

Postado
  • Autor

tem que usar essas functions para storage

getCreatureStorage(de quem vai verificar, e numero) -- para verificar
doCreatureSetStorage(de quem vai verificar, e numero, alteração) -- para alterar

e na storage

pode coloca numero ou string  e tem um limite de caracteres para poder ser armazenado na database

 

 

poderia me passar um script funcional com isso para que eu possa analisar e fazer alguns testes? pq falando assim não vou entender muito bem aueheau

  • Respostas 10
  • Visualizações 779
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • Criativo...   esse local campainha = {1473, 1475} não serve pra nada, pois você não usa...     Faria sentido colocar isso caso a <TAG/> do XML, fosse uma action e dentro do script, embai

  • local time = 1 function onUse(cid, item, frompos, item2, topos) if exhaustion.check(cid, 23000000) == false then exhaustion.set(cid, 23000000, 4) else return doPlayerSendCan

  • Caronte, Salvando tópicos desde 1997 

Postado

criei um simples mais vai ser fácil para entender como funciona storage

só criar na pasta talkactions e usar comando com god e ler os comentários

--[[
a final oq é uma storage resume é uma função que funciona como
uma chave q leva um valor (Numero ou Letras)
]]
local chave = 12345  -- aqui nome da chame pode ser nome de numeros
function onSay(cid, words, param, channel)
--getCreatureStorage(cid,chave) aqui vai olhar valor que ta no nome nomalmente vai ser -1
doPlayerSendTextMessage(cid,19,"chave "..getCreatureStorage(cid,chave).."") -- aqui um modo de test vai aparecer msg para player
      
      if getCreatureStorage(cid,chave) == -1 then -- se valor da chave for -1 então vai ler
            doPlayerSendTextMessage(cid,19,"sim minha chave com nome "..chave.." tem valor "..getCreatureStorage(cid,chave).."" )
            doCreatureSetStorage(cid,chave,1) -- aqui que vai alterar os valor das chaves vai ser um agora
      else -- ser usar comando denovo vai cair no else pq alter chave lembra
            doPlayerSendTextMessage(cid,19,"você não tem a chave -1")
      end
      
return true
end

aqui achei um tutor falando de storage tbm

 

http://www.tibiaking.com/forum/topic/18198-o-que-sao-storages/

Postado

local time = 1



function onUse(cid, item, frompos, item2, topos)
    if exhaustion.check(cid, 23000000) == false then
        exhaustion.set(cid, 23000000, 4)
    else
        return doPlayerSendCancel(cid, "Campaínha já foi tocada, espere:  " ..exhaustion.get(cid, 23000000).."")
    end


doSendMagicEffect(frompos,18)
doSendAnimatedText(frompos,"Tindon",107)
addEvent(doSendAnimatedText, time*400, frompos,"Tindon", 107)
end

amigo n tem necessidade de usar:

 if exhaustion.check(cid, 23000000) == false then

pode usar 

if exhaustion.check(cid, 23000000) then

547657261_assinaturatibiaking.jpg.c1cc2728d9b7e7142cd10bf237f3370d.jpg

'' Uma ideia é apenas uma ideia, até ser desenvolvida, mastigada, retratada, analisada e por fim se tornar uma boa ideia. ''

Postado
  • Autor
amigo n tem necessidade de usar:

 if exhaustion.check(cid, 23000000) == false then

pode usar 

if exhaustion.check(cid, 23000000) then

 

 

 

 

 

Se tirar, fica assim:

[07/06/2015 18:03:25] [Error - Action Interface]
[07/06/2015 18:03:25] data/actions/scripts/campainha.lua:onUse
[07/06/2015 18:03:25] Description:
[07/06/2015 18:03:25] data/actions/scripts/campainha.lua:8: attempt to concatenate a boolean value
[07/06/2015 18:03:25] stack traceback:
[07/06/2015 18:03:25]     data/actions/scripts/campainha.lua:8: in function <data/actions/scripts/campainha.lua:4>

Editado por biel.stocco (veja o histórico de edições)

Postado

Olá pessoal!

Vi o tutorial sobre addEvent do Killua e decidi colocar em prática..
Então fiz esse sistema de campaínha para treino e decidi compartilhar com vocês que tanto me ajudam com sistemas e dúvidas!

É um sistema bem simples e fácil de configurar, mesmo assim gostaria de criticas(construtivas) e sugestões uehue

 

 

O script funciona assim:

Da use na campaínha, então aparece um efeito e o texto "Tindon", depois aparece novamente outro "Tindon". Existe um exaust para evitar abusos/caras chatos - SIIIIIMPLES DE TUDO.. bora lá!

 

 

 

 

1°- Vá em data/actions e abra o arquivo actions.xml, então adicione essa linha antes do final do arquivo:

<action itemid="1473;1475" script="campainha.lua"/>

ps: antes do final do actions.xml.. o final do arquivo é o </actions>

ps²: 1473 e 1475 são os IDs dos itens que servirão como campaínha, são separados por " ; "  - caso acrescente mais coloque itemid="1473;1474;1475" etc

Então salve seu Actions.xml e feche-o.

 

 

 

2°- Vá em data/actions/scripts e crie um novo arquivo com extensão lua chamado campainha.lua, cole isso dentro:

local time = 1



function onUse(cid, item, frompos, item2, topos)
    if exhaustion.check(cid, 23000000) == false then
        exhaustion.set(cid, 23000000, 4)
    else
        return doPlayerSendCancel(cid, "Campaínha já foi tocada, espere:  " ..exhaustion.get(cid, 23000000).."")
    end


doSendMagicEffect(frompos,18)
doSendAnimatedText(frompos,"Tindon",107)
addEvent(doSendAnimatedText, time*400, frompos,"Tindon", 107)
end

Pronto, o sistema de campaínha está instalado!

 

 

 

3°- Entendendo o super mega simples script:

if exhaustion.check(cid, 23000000) == false then
        exhaustion.set(cid, 23000000, 4)
    else
        return doPlayerSendCancel(cid, "Campaínha já foi tocada, espere:  " ..exhaustion.get(cid, 23000000).."")
    end

Spoiler 

Aqui é a função do exaust..

(cid, 23000000) - cid é para o exaust se aplicar ao player que apertou a campaínha, e 23000000 é a storage que salva o exaust

exhaustion.set(cid, 23000000, 4)   cid e 23000000 identico ao de cima.. é o tempo em segundos de exaust

return doPlayerSendCancel(cid, "Campaínha já foi tocada, espere:  " ..exhaustion.get(cid, 23000000). - se o player ainda estive com exaust, aparecerá a mensagem"Campaínha já foi tocada, espere:  " e os segundos que falta para poder usar novamente

 

Se checar a storage 23000000 que equivale a 4 segundos e ela estiver vazia, o sistema acontece e adiciona o tempo de 4 segundos na storage.

Se a storage 23000000 não estiver vazia, aparece aquela mensagem para o player.

ps: as três storages são 23000000, se mudar uma, mude as três!

local time = 1

 

Spoiler 
o tempo em segundos que irá demorar para aparecer o segundo "Tindon"

 

doSendMagicEffect(frompos,18)

 

Spoiler 
   frompos é onde irá aparecer o efeito(no caso, encima do item usado) e 18 é o ID do efeito que irá aparecer ao usar.

 

doSendAnimatedText(frompos,"Tindon",107)

 

Spoiler 
  frompos é onde irá aparecer o texto,  "Tindon" é o texto que irá aparecer e 107 é a cor do texto(vai desde 0 que é preto até 215 que é branco)

 

addEvent(doSendAnimatedText, time*1000, frompos,"Tindon", 107)

 

Spoiler 
aqui é a parte que o treino entra..   

 

doSendAnimatedText é a função que o addEvent irá chamar

time*400 é o tempo que irá demorar para chamar a função( time foi uma variável configurada acima em milisegundos, então multiplica * por 400 para que o tempo configurado na variável 0,4 segundos [para transformar o time em segundos, multiplique por 1000 ao invés de 400])

frompos é onde ocorrerá o evento, como explicado acima(no caso, encima do item usado)

"Tindon" é o texto que irá aparecer no addEvent

107 é a cor do texto, dei uma mini explicada acima.

 

 

 

 

@Caronte vlww mano!

 

 

É isso pessoal, meu primeiro script postado e é bem simples ueheu

Se possível, indiquem-me algo para treinar pois tenho grande interesse na área de scripts!

Caronte,

Salvando tópicos desde 1997 

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

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