Ir para conteúdo

dominus

Membro
  • Registro em

  • Última visita

Tudo que dominus postou

  1. É só modificar essa parte: if queststatus1 == -1 and queststatus2 == -1 and queststatus3 == -1 and queststatus4 == -1 then Por esta: if queststatus1 >= -1 and queststatus2 >= -1 and queststatus3 >= -1 and queststatus4 >= -1 then Ou seja, essa parte se tornou desnecessária, bom seria remove-la, mas isso já resolve seu problema. Estive observando o script e fiquei me perguntando se isso funciona: If playe1.itemid > 0 and ... Acho que deveria ser assim: If player1.uid > 0 and ...
  2. dominus postou uma resposta no tópico em Códigos C++
    Muito bom. Vou usar no meu ot. Vlw por ter postado esse código pra nos. Rep+
  3. Possivelmente isso deva ser bug no character. Isso já aconteceu comigo. Um char meu bugou no meu ot e ficou upando skill sem parar, mesmo eu mudando rate etc.... só deletando ele foi que resolveu.
  4. dominus postou uma resposta no tópico em Suporte Tibia OTServer
    Posta o código closindoor.lua e lib/050-function para ser analisado. Diga qual a versão do ot serve que tu usas.
  5. dominus postou uma resposta no tópico em Suporte Tibia OTServer
    Essa função não existe. "setSpeechBubble"
  6. dominus postou uma resposta no tópico em Suporte Tibia OTServer
    Qual sistema de war você está usando? Qual a versão do servidor?
  7. Esse script faz com que strings geradas pelo plauer se tornem funções executáveis no servidor. Qualquer erro de sintaxe derruba o servidor.
  8. O erro é simplesmente que string.explode () usa "str" como string, só que ela esta sendo chamado com um valor numérico. Você pode retornar um valor caso não seja uma string. If not type (str) == "string" then return "" end Ou dessa forma: if( type(str) ~= "string" or type(sep) ~= 'string' or isInArray({tostring(str):len(), sep:len()}, 0)) then return {} end Nesse caso estou adicionando uma sentença ao código já existente. Ps: isso é para ser posto na função string.explode ()
  9. Caso você necessite usar esse script, adiciona "acess", dessa forma um player comun não poderá usar. A tag de acesso, você encontra dentro do próprio arquivo talkactions.xml
  10. Toda vez que faço o download ele me manda um arquivo com 40 e poucos kbits. Tem como arrumar o link ou postar em outro site por favor. Obrigado.
  11. Averiguei o sistema e descobrir o error que ocorrer; existe uma latência em Lua, devido a isso ele demora um tempo até atualizar o sistema provocando aquele "bug" de transformar os items sem o tempo. Então cheguei a duas formas de fazer o que tu queres: uma seria adicionar atributos no item: items/items.xml <item id="id do item" article="a" name="item"> <attribute key="decayTo" value="0000"/> <attribute key="duration" value="10"/> </item> adicionando esses dois atributos "decayto" e "duration", o item vai trocar de id quando terminar a duração. O problema desse sistema é que ao iniciar o servidor automaticamente todos os items ele vai decair com o tempo, apenas os items criados "in-game" é que não decaem. Pra eles decairem o player precisará dar "use" nele ativando esse scripts: function onUse(cid,item,pos) doDecayItem(item.uid) doSendMagicEffect(pos, CONST_ME_MAGIC_BLUE) return true end -----------//########################//------------------------- A segunda forma de fazer isso seria adicionando "actionid" diferentes em cada item para podermos diferenciar cada um deles. assim poderia usar o script abaixo sem necessitar por atributos no items.xml: <action itemid="0000" event="script" value="nome do arquivo.lua"/> local obj = {} function onUse(cid,item,pos) local agora,tempo = os.time(),10 if not(obj[item.actionid])then obj[item.actionid] = agora+tempo doSendMagicEffect(pos, CONST_ME_MAGIC_BLUE) elseif(obj[item.actionid] <= agora)then doTransformItem(item.uid,15143) doSendMagicEffect(pos, CONST_ME_MAGIC_RED) obj[item.actionid] = nil else doPlayerSendCancel(cid, "O item sera transformado as: "..(os.date("%H:%M:%S", obj[item.actionid] or 0))..".") end return true end Eu não sei se eu entendi bem, mas o que tu queres é que os items funcionem de forma independentes, tipo: se o item demora 10 minutos para mudar e eu clicar no primeiro item e cerca de 2 minutos depois clicar no segundo item, esse segundo item só poderá mudar 2 minutos depois do primeiro, pois tem que ser passado 10 minutos para cada item individualmente. foi isso que entendi.
  12. Substitui essa parte: elseif (store <= agora) then por esta: elseif (store > 0 and store <= agora) then
  13. O erro se deu por culpa do teclado do android que põe as palavras em minúsculas. Era para ficar assim: doTransformItem() Modifiquei o script adicionando stores globais. function onUse (cid, item, pos) -- valor do intervalo local tempo = 10 -- 2 horas local agora = os.time () local store = getGlobalStorageValue(#"STORE_GLOBAL") if (store <= 0) then setGlobalStorageValue(#"STORE_GLOBAL",agora+tempo) elseif (store <= agora) then doTransformItem(item.uid, 15143) doSendMagicEffect(pos, CONST_ME_MAGIC_RED) else doPlayerSendCancel (cid,"O item sera transformado as: "..(os.date ("%H:%M:%S", item.actionid))..".") end return true end Agora qualquer item que use esse script somente sera executado a ação depois do termino do tempo.
  14. Modifiquei o script. function onUse (cid, item) -- valor do intervalo local tempo = 2*60*60 -- 2 horas local agora = os.time () local newitem = 0000 -- ponha o id do item que ele vai se transformar if (item.actionid == 0) then doItemSetAttribute (item.uid,"aid", agora+tempo) elseif (item.actionid <= agora) then dotransformeItem (item.uid,newitem) else doPlayerSendCancel (cid,"O item sera transformado as: "..(os.date ("%H:%M:%S", item.actionid))..".") end return true end
  15. @markimbozi Remover o acesso das portas é só retirar a actionid que está inserida nela. Eu nao me lembro exatamente qual o termo que tem que ser mudado Para libera os outfits; vai na pasta xml/outfits.xml e inspeciona a diferença entre os outfits que já estão liberados e os que não estejam.
  16. O erro esta aqui: for i = 1, #t do Ele não sabe o que é "t", essa letra não tem valor algum, por isso deu esse erro. Especifique o valor dessa variável - tem que ser uma string, pois estás à usar o operador de tamanho "#".
  17. Seria isto o que tu queres? function onUse (cid, item) -- valor do intervalo local tempo = 2*60*60 -- 2 horas local agora = os.time () if (item.actionid == 0) then doItemSetAttribute (item.uid,"aid", agora+tempo) elseif (item.actionid <= agora) then -- aqui é executado a ação. -- essa função com o número 0, ela desliga a ação. -- caso queira que essa ação se repita de tempos em tempos, troque o numero 0 pelo termo "agora+tempo" <<< sem as aspas. doItemSetAttribute (item.uid,"aid",0) else doPlayerSendCancel (cid,"somente podera ser usada as: "..(os.date ("%H:%M:%S", item.actionid))..".") end return true end
  18. Como assim tempo configuravel? O player pode determinar o tempo ao usá-lo? Ou ele está prescrito no script?
  19. dominus postou uma resposta no tópico em Suporte Tibia OTServer
    Vou tentar te ajudar. Além de ter o script.xml do guard, tem que adiciona-lo no arquivo monster.xml, caso tu tenha feito isso e continua com erro, posta o arquivo woe.
  20. dominus postou uma resposta no tópico em Suporte Tibia OTServer
    Para adicionar essas duas funções; abre o arquivo data/creaturescript/scripts/login.lua após a função onLogin () adiciona essa função setPlayerMaglevel (cid, valor da ml) setPlayerSkillLevel (cid, skill-Id, valor da skill) Na questão do skull system, o erro não é source code do distro; apenas adicionando um evento na pasta globalevents resolveria o problema. Eu tenho um sistema semelhante que mantém a white slull do player o dia inteiro, poderia eu reorganiza-lo para resolver seu problema, mas estou tc do meu celular e estou sem net em casa. Se possível eu te passo ele reorganizado, mas eu apenas faço scripts para versão tfs 0.3.6 - 8.45 que é a que eu uso, por isso pode ser que der algum tipo de erro ao usá-lo em outra versão. -------------//##############//----------------- Eu modifiquei meu sistema baseado no pressuposto que será usado skull o dia todo e no outro dia haveria de iniciar tudo de novo. Abra o arquivo: data/creaturescripts/creaturescripts.xml insere essa linha de comando: <event type="think" name="skullCheck" event="script" value="skullcheck.lua"/> Abra o arquivo: data/creaturescripts/scripts/login.lua insere essa linha de comando no mesmo local onde existe outros semelhantes: registerCreatureEvent(cid, "SkullCheck") Agora na pasta: data/creaturescripts/scripts Crie um arquivo com o nome skullcheck.lua e adicione esse codigo: function onThink(cid, interval) if(not isCreature(cid)) then return end local get = getPlayerStorageValue(cid, tonumber(os.date("%d%m%y"))) if(get > 0)then doCreatureSetSkullType(cid, get) elseif not (getCreatureCondition(cid, CONDITION_INFIGHT)) and get == 0 and getCreatureSkullType(cid) > 0 then doCreatureSetSkullType(cid, SKULL_NONE) end end Agora, lá no código do skull system que tu usas, substitua essa função: "doCreatureSetSkullType(cid, ret)" por essa função: "setPlayerStorageValue(cid, tonumber(os.date("%d%m%y")), ret)" <<< sem as aspas externas. esse sistema foi feita para a versão 0.3.6 tfs, então poderá ser que haja algum error de compatibilidade. espero que funcione.
  21. dominus postou uma resposta no tópico em Suporte Tibia OTServer
    Não vou poder te passar o script para resolver seus problemas pois estou usando celular. 1°) o sistema mod que tu usas ele não tem um evento para ficar marcando skull do player, ou seja pelo sistema base do skull system que vem no distro, após o tempo de pz acabar ele retira a skull, assim necessitando que haja um evento para continuar marcando essa skull no player. 2 ° e 3°) é facil de resolver adicionando funções como setplayerskilllvl (), setplayermaglvl () etc adiciona isso em login .lua
  22. Se ele estiver pegando skull depois da implementação do script, o erro está no script; caso não, então é problema na souce code. Se o erro for depois da implementação do sistema, posta o script para ser analisado, assim poderemos ajuda-lo.
  23. dominus postou uma resposta no tópico em Suporte Tibia OTServer
    À idéia é boa e pode ser feita, mas a forma eficiente de se fazer é modificando o código fonte - o que não é tão facil assim.
  24. Na pasta weapons/script você pode criar um script lua para ser usado com a arma deseja. Adicione a arma no arquivo weapons.xml

Informação Importante

Confirmação de Termo