Ir para conteúdo

Sliffer

Campones
  • Total de itens

    5
  • Registro em

  • Última visita

Sobre Sliffer

Perfil

  • Gênero
    Masculino

Informações

  • Forma que conheci o xTibia
    Amigos
  • Sou
    Programador

Últimos Visitantes

O bloco dos últimos visitantes está desativado e não está sendo visualizado por outros usuários.

Sliffer's Achievements

  1. Vou dar uma pesquisada aqui, porque tenho q rever a sintaxe de lua kkk ultimamente to so no java/c++ já já eu do uma editada. [EDIT] Acabei encontrando umas coisinhas bem legais aqui que em Lua você pode conseguir o tamanho de um vetor com o caracter # antes do nome, não precisando do controle da quantidade. Então basicamente voce faria mais ou menos: local movesTable = {}function isInside (movesTable, moveName) for i=1, #movesTable do if movesTable[i] == moveName then return true end end return falseend Exemplo de funcionamento: Note que a primeira execução na tela preta deu true e a segunda deu false, na primeira eu pedi pra imprimir se dentro do movesTable tinha Psychic, ele retornou verdadeiro. No segundo eu pedi pra ver se tinha Magma Storm, ele já retornou falso pois não encontrou.
  2. Já tentou voltar com o banco de dados padrão? Pelo erro aí ele não tá encontrando a bag que é pra colocar o item dentro dela.
  3. Erro de segmentação amigo, porque você está acessando uma posição do vetor que não existe. Não tem um lugar dessa estrutura que guarde quantos moves o pokémon tem não? Porq aí você pode ler só até o move que ele tem e depois para. Se for você fazendo essa tabela de moves eu recomendaria fazer as sequencias de moves como um vetor pra acessar melhor isso daí, deixaria o código mais legível pq tem 12 estruturas IGUAIS dentro dessa movestable, acho bem desnecessário
  4. Pra checar o move você precisa ter no mínimo uma forma de gerar o moveset do pokémon e usar o isInArray nessa tabela. Aí já vai depender de como você tem isso guardado Supondo que a funcao q vc passou antes funcione eu tentaria algo assim: [editando] if isInArray (pokeMoves, nomeDoMove) then doPlayerSendCancel(cid,"Seu pokemon ja possui este movimento")return trueend A função isInArray procura por um elemento dentro do vetor com 2 parametros sendo o primeiro o nome do vetor e o segundo o nome do que voce está buscando nele. Vc não joga uma comparacao que retorna um booleano nela pokeMoves ali seria o vetor que contem os nomes das skills que o pokemon tem e o nomeDoMove seria a variavel guardando o nome do move que você está adicionando.
  5. Olha maninho, lembro que já consegui colocar isso em um servidor antigo meu, 8.1, mas estou meio por fora (voltando pra area do tibia agora)... Eu vou dar umas pesquisadas aqui em scripts e vou ver se consigo dar um retorno. Estou meio enferrujado nem tenho como testar aqui, mas eu tentei o seguinte: local LEVER1 = 1945 -- IDs das alavancaslocal LEVER2 = 1946 -- IDs das alavancaslocal ITEMS = {2160, 2173} -- Lista de itens possíveislocal ITEMS_NUMBER = 2 -- Numero de itens que voce tem acima, sempre atualizefunction onUse(cid, item, fromPosition, itemEx, toPosition) if((item.itemid == LEVER1) or (item.itemid == LEVER2)) then -- Se o item for a alavanca de um lado ou de outro, então doPlayerAddItem(cid, ITEMS[math.random(1, ITEMS_NUMBER)], 1) --Adiciona um item para o player. O item é decidido na sorte a partir do sorteio da posicao 1 até ITEMS_NUMBER do array ITEMS doSendMagicEffect(fromPosition, CONST_ME_EXPLOSIONAREA) doCreatureSay(cid, "SURPRISE!", TALKTYPE_MONSTER) if (item.itemid == LEVER1) then doTransformItem(item.uid, LEVER2) -- Se for uma alavanca virada vira a outra e vice-versa elseif (item.itemid == LEVER2) then doTransformItem(item.uid, LEVER1) end else return false end return trueend A lógica é mais ou menos essa, estou acostumado com C++ nao sei se isso irá rodar em LUA, estou meio ocupado agora e estou sem os programas pra testar, fiz meio que comparando alguns scripts pra pegar mais ou menos a sintaxe (Scripts como de instrumentos, potions, piggybank, etc.) quanto à tag no actions.xml nao me recordo como funciona direito, desculpe. Amanhã a tarde testo em algum servidor que baixar aqui, abraços P.S.: Vale a pena relembrar que algumas linhas não são obrigatorias, como as de exibicao de efeito/mensagem. Estou voltando a mexer com otserv e vou ter que dar umas estudadas pelo forum afora, se eu descobrir algo eu edito o código aqui! P.S.: Lembrei de uma coisa, tem q mexer sim pq se nao me engano coisas "únicas" precisa do storage id
  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...