Ir para conteúdo
  • Cadastre-se

xWhiteWolf

Héroi
  • Total de itens

    3604
  • Registro em

  • Última visita

  • Dias Ganhos

    158

Tudo que xWhiteWolf postou

  1. acho q ainda não, n sei o nome.. é um dos projetos patrocinados do xtibia.
  2. tenta fazer as mudanças desse ultimo script no script original, eu usei oque vc colou pra editar e vc pode ter removido alguma linha importante.
  3. setPlayerStorageValue(cid, 1023, os.time()) em vez de setar como os.time() sete como os.time() + 59, assim vc em vez de colocar 1 segundo, vc coloca 1 + 59 segundos, que dá 1 minuto.
  4. sim, eu sei, mas registrar via combat/attack é meio escroto.. a real é q depois q eu fiz esse sistema eu percebi q ele tinha q ser feito diretamente via source pra evitar essas gambiarras feias. Quando eu criei isso (a 2 anos atrás) eu tava aprendendo a brincar com lua ainda e não tinha noção de complexidade.
  5. não, vc só faz 1 script e troca o if isInArray por essa linha que eu fiz aí, aí depois, dependendo de como vc quiser o sistema vc coloca essas linhas abaixo (se colocar abaixo do if math.random vc só vai poder minerar dnv 1 segundo dps naquele piso após conseguir algum premio) se colocar antes vc vai precisar esperar 1 segundo mesmo q não ganhe nada. setPlayerStorageValue(cid, 1020, toPosition.x) setPlayerStorageValue(cid, 1021, toPosition.y) setPlayerStorageValue(cid, 1022, toPosition.z) setPlayerStorageValue(cid, 1023, os.time())
  6. que bizarro cara, realmente não sei a mensagem sobe a cada ataque que vc dá no monstro, a cada vez q ele morre ou só qnd abre o sv?
  7. a solução é o seguinte, toda vez que vc minerar vc tem que escolher 4 storages, slá 1020, 1021, 1022, 1023 (um exemplo). Aí no 1020 vc seta o valor dele como toPosition.x, no 1021 vc seta como toPosition.y, no 1022 toPosition.z e no 1023 vc seta os.time(); Aí toda vez que vc for minerar vc tem que verificar além do id do piso, esses 4 storages. Ficaria assim a checagem if isInArray(terra, itemEx.itemid) and (toPosition.x ~= getPlayerStorageValue(cid, 1020) or toPosition.y ~= getPlayerStorageValue(cid, 1021) or toPosition.z ~= getPlayerStorageValue(cid, 1022) or os.time() > getPla
  8. ID DA PICARETA <action itemid="2553" script="mining.lua"/> Se você colocar exatamente como está no tópico e dar use With na pick de id 2553 e clicar no chão de id 351~355 você ganha o item. Só tem q lembrar de remover o script da pick normal pra não dar duplicata. IDS DE TERRA terra = {351,352,353,354,355}
  9. que estranho, o erro que dá é falando q não encontrando um evento com nome de critical, na certa vc deve estar usando outro nome na tag do creaturescripts
  10. @di12345d você não bota o script com a tag usando o id do piso, vc bota usando o id da picareta. @elipe até tem mas ficaria uma gambiarra danada pra salvar a posição do ultimo uso e o tempo, compensa mais deixar como está
  11. local drops = {} function getDrops(cid) for i= -1,getPlayerStorageValue(cid, config.storage) do if levels[i] then table.insert(drops, levels[i]) end end return true end a tabela de drops inicialmente tá vazia, aí eu vou de -1 até o valor do storage configurado pra ser o level; se existir levels ele insere o item na tabela de drops. Por fim ele pega aleatoriamente um dos itens da tabela de drops. Oque tá acontecendo no seu script é q vc cometeu um erro bem simples, vc colocou [100] = 2177, 2157, 2156, 2158, 2155, 2153, 2154 a tabela entende isso da seguinte maneira
  12. atualmente não, só vi um servidor na minha vida q é nesse formato (8.6 com mount) e ele tem uma baita de uma equipe por trás e duvido q eles vão disponibilizar pro fórum.
  13. sim, usa client próprio pra botar as sprites das montarias, modifica a source pra aceitá-las e criar as funções de mount, faz a sobreposição das outfits com as mounts e por fim cria os scripts pra lidar com as montarias.
  14. claro, abaixo de function onUse(cid, item, fromPosition, itemEx, toPosition) coloque if getPlayerVocation(cid) ~= X then return false end Se a classe for diferente de X (insira o numero da classe aqui) então cancele.
  15. @vine96 Olá, até é possível adaptá-lo porém o TFS 1.2 não tem statschange, ele tem creaturechangeHealth que é similar porém não funcionaria da mesma maneira. O código ficaria assim: mas vc precisaria criar a função getCriticalLevel(), essa função deveria somente retornar o valor do storage que vc escolher...
  16. ele só sai só pra baixo se vc esquecer de botar direction="1" na tag do xml.
  17. cara, usa spoiler pfv.. é só clicar no olhinhoo aqui no editor eu modifiquei a linha que dava erro: if(tool.range[1] and self.item.level < tool.range[1]) or (tool.range[2] and self.item.level >= tool.range[2]) then só fiz uma checagem pra ver se tool.range[1] e [2] existia antes de comparar o valor. O erro falava q esse tool.range[1] OU tool.range[2] não existia (valor nulo ou nil). O restante tá identico. Sobre o sistema, ele é bem complexo.. eu nao to com saco ultimamente pra ficar lendo e testando mas o problema é q vc tem q salvar q o item tem o atributo e checar p
  18. troca a linha do broadcast por isso aqui: if getPlayerGuildId(killer) >= 1 and getPlayerGuildName(killer) then doBroadcastMessage("[Gran Tower] "..getCreatureName(killer).." just destroyed the Gran Tower in the name of the guild ".. getPlayerGuildName(killer) ..", run to destroy the Grand Tower and take it.") else doBroadcastMessage("[Gran Tower] The Gran Aura is with "..getCreatureName(killer)..", run to destroy the Grand Tower and take it.") end
  19. dá algum erro ou só não funciona? que versões que vcs tão usando?
  20. eu sempre uso onLogin, por isso te aconselhei. O onLogout dá pra burlar, o onLogin não
  21. mesmo sendo ao deslogar, vc pode usar onLogin.. dessa forma se ele logar e tiver com o storage ele é enviado pro templo. O efeito é o mesmo.
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo