Postado Junho 7, 2015 10 anos 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
Postado Junho 7, 2015 10 anos 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 Junho 7, 2015 10 anos 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 '' Uma ideia é apenas uma ideia, até ser desenvolvida, mastigada, retratada, analisada e por fim se tornar uma boa ideia. ''
Postado Junho 7, 2015 10 anos 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 Junho 7, 2015 10 anos por biel.stocco (veja o histórico de edições)
Postado Junho 7, 2015 10 anos 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 = 1function 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).."") enddoSendMagicEffect(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.. 4 é 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: [FAQ] BBCODE [LIB] Constant [RME] Administrando bordas. [TALK] Broadcast Editável. [TALK] Sugest. [TALK] Checkpoint. [MOVE] Pântano pegajoso. [ACTION] Piggy Bank. (Cassino). [GLOBAL] Uptime Ad. [C0DE] Consertando 'Invalid Password' [PROGRAM] Quest Maker
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.