-
Total de itens
341 -
Registro em
-
Última visita
-
Dias Ganhos
18
Posts postados por Night Wolf
-
-
1º - Informe-nos a versão que vc utiliza tanto de tibia quanto de TFS, se é Otclient etc.
2º - Poste os links dos que você tentou e deu errado pra gente tentar arumar
3º - Informe os erros que deu. -
Se vc não tiver nada na source que defina a resistencia positiva ou negativa à determinado elemento, vc pode tentar alterar um item aleatório e botar resistencia negativa nele por certo tempo. O único problema q imagino é se o player remover o item, deslogar ou morrer... mas aí vc pode fazer creaturescripts pra evitar isso.
Com movements vc evita de remover o item q tá com debuff, com condition_infight vc evita q deslogue e com onDeath vc evita q ele drope o item com a resist. -
edit porque escrevi correndo e ficou um texto disléxico:
Tem certeza q fazer dessa forma é a melhor opção? Oque vc quer que sua magia realmente faça? -
eu realmente ficava o dia todo no suporte, mas isso foi em outro fórum.. aqui ainda não fiz isso, apenas ajudo esporadicamente qnd sobra um tempinho. Se eu realmente voltar a ficar ativo todos os dias no suporte, aí eu vou ter todos os requisitos (posts e rep) que me faltam.. então relaxe gafanhoto <3 ahuhuahu
-
e se ele não possuir esse item 2250? a magia não irá funcionar? E se ele usar a spell e jogar fora o item 2502?
-
"Como posso pegar um valor da database e colocar em uma variável: Ex: Variavelid = Valor do id da tabela players"
em geral os servidores utilizam a função db.getResult pra pegar o resultado de uma query na database, porém isso muda com a versão.
"E como pegar o ultimo ID criado?"
utilize a query na databaseSELECT * from players ORDER BY id DESC LIMIT 1
Selecionar tudo de players, ordenar por id de forma descendente e pegar só o primeiro.
"Esses IDs das tabelas são gerados automaticamente em sequencia?"
Depente, id do que? se for de players, sim pois eles possuem um trigger (ativador) que cada vez que uma conta é inserida o id é auto incrementado (se era 15, vira 16 no novo) -
Nossa, me citaram aqui auheuhhua enfim..
Não acho que eu mereça o cargo de Herói, por mais que eu já tenha ajudado muito a seção de scripting eu ainda sou relativamente novo aqui no xtibia. Minha conta original está banida desde 2007 porque eu liberei grande parte dos códigos que eram vendidos na época, uso essa daqui atualmente (criada em 2014) mas minhas contribuições no xt foram pontuais e em grande parte restritas ao suporte. O skulls, caronte, zipter, (e alguns outros q nao lembro agora) fazem muito mais que eu pelo fórum e a verdade é que eu estou ficando pra trás por conta de falta de tempo e ou conhecimento. Pra mim o cargo de herói tinha que ser dado pra alguém que realmente fez história e mudou o opentibia de forma definitiva, citaram o Colex aqui e eu não poderia concordar mais: O cara quando estava na BlackOnyx criou coisas que até hoje o Tibia global tenta imitar... não dá pra dizer que nenhum de nós está realmente no mesmo nível que alguém como ele. Ao restante, não é uma pip diferente que vai dizer se vc contribuiu ou não, ajude quem puder por ajudar e não por uma mudança mínima no seu perfil.
Abraços do Lobo. -
@@Skulls, funcionou? não era pra funcionar.. funções de storage são restritas à players pois envolvem modificações na database. Acho q se pá vc tá pegando o uid de um monstro e na hora de salvar na database deve estar com o mesmo numero (uid) de um player existente. Mas sei lá né, pelo menos no 0.4 que eu mexo é assim, não sei se alguma source tem suporte pra storage em monstros
-
-
Rapaz, se for 0.3~0.4 vc tem uma gama infinita de creaturescripts pra brincar..
onAttack onFollow onTarget
Experimenta cada um deles com return false e verifica qual que impede o monstro de seguir o player.
Não sei se vou levar advertencia por postar link de outros fóruns mas não tem como eu copiar todo o contéudo que eu escrevi lá aqui.
To meio sem tempo pra ficar abrindo sv e fazendo testes, mas prometo q se vc não conseguir eu vou fazer de tudo pra tentar algo aqui também. Boa sorte amigo, e se conseguir, por favor compartilhe a solução ^^ -
não se tiver outro target, o problema do script acima é que ele não assume modo defensivo na presença de outro player.. lembro de um teste q eu fiz com um demon e somente um personagem da vocação q nao podia ser atacada, oque aconteceu foi que o demon ficava correndo pra lá e pra cá em volta do player como se tivesse se preparando pra ir atacar ele, mas não ia. Não lembro se o demon me seguia caso eu fugisse mas pro seu caso acredito q isso nao seria um problema.. a menos q vc esteja pensando em fazer monstros de raças que não atacam os humanos, por exemplo.. mas aí compensa mais trabalhar em cima da IA via source
-
então tenta trocar pra toda vez que for iniciar o combat, se for player checar as criaturas em volta e ver se há monstros passivos e aí vc usa o dotargetCombat, se fizer um script só pro combat dos monstros, vc pode configurar quais vão ser agressivos só botando a tag do creaturescript no xml
-
Isso daqui é um script pra monstros não atacarem determinadas vocações, alguns NTO's utilizam algo semelhante para não atacar determinados storages, acredito que com as modificações corretas daria pra implementar um sistema complexo de hierarquia na ordem de ataques:
Se o lobo tem um cervo e um humano pra atacar, qual dos dois ele escolhe?
Observe o script:local notattackable = {1,2,5,6} --- vocações que não receberão ataque function onCombat(cid, target) if(not isPlayer(target)) then return true else targets = getMonsterTargetList(cid) if isInArray(notattackable, getPlayerVocation(target)) then addEvent(check,1000,cid,targets) return false else return true end end end function check(cid,targets) for i=1, #targets do if isInArray(notattackable, getPlayerVocation(targets[i])) then addEvent(check,1000,cid,targets) return false else stopEvent(check) return true end end end
não é de minha autoria, tenho aqui no pc salvo mas peguei de algum lugar acho.. só não lembro onde.
Com algumas tabelas vc consegue controlar muita coisa nesse script, só tem que verificar se na targetList ele considera outros monstros, porque se não... teria que modificar essa função na source -
pensei nisso hoje, se nao me engano tem scripts de monstros passivos por aí via source editing, com a tag de monstros passivos daria pra fazer monstros agressivos atacarem os passivos da mesma forma que atacam um player, mas como não mexo com c++, não faço idéia de como seria uma possivel implementação disso
-
a gente só vai conseguir te ajudar se vc explicar melhor oque vc quer, cria paredes? quantas? onde? posição fixa? porque ele iria ficar a cada hora checando uma mesma posição pra criar parede lá? faz parte de alguma quest?
Este tópico já foi visualizado por 10 usuário(s) [ Ocultar Lista ]
Vê quantas perguntas tem pra ser respondidas? na próxima vc cria um tópico com todas elas já respondidas e aí talvez as 10 pesoas que visualizaram seu tópico já poderiam ter te ajudado> -
duas coisas impedem um monstro de ser criado: Ele não existir e a posição não estiver livre. Vc tem que verificar essas duas coisas antes de criá-lo.
-
O código acima irá funcionar e servir o propósito, porém uma boa prática quando trabalhamos com functions no addEvent é re-checar os parâmetros que iremos utilizar do callback. Em outras palavras, se vamos utilizar o cid na function, temos que checar se ele ainda existe quando o addEvent for chamado.
addEvent(function() if isCreature(cid) then doTeleportThing(cid, townpos) doSendMagicEffect(getPlayerPosition(cid), 10) end end, 5 * 1000, cid, townpos) -- 5 * 1000 representa 5 segundos ate teleportar.
-
basicamente é isso daqui:
variavel skillTotal é a skill do player + (attack * 12)
levelTotal é o level * 2local skillTotal = skill + attack * 12 local levelTotal = level * 2 MÍNIMO QUE VAI TIRAR: -(skillTotal * 1.1 + levelTotal), MÁXIMO QUE VAI TIRAR: -(skillTotal * 7 + levelTotal)
-
@@Skulls então, não é aleatório, ele segue a ordem do next. Isso que vc falou de indexação fora de ordem está correto, mas tem casos em que ipairs não funcionaria como tabelas contendo nil pois o next iria retornar falso e cancelar (semelhante à um break)
-
Eu ainda acho que o doPlayerAddItem tem que receber como player o V e nao o K, mas vou deixar isso pro dono do código, pois estou enferrujado e posso estar falando bobagem.
sim, é o v. Se o código realmente foi testado e funcionou, eu não sei dizer porquê.
getPlayersOnline() retorna tabela de players online na forma
{uid1, uid2, uid3}
vc ta querendo dar os itens via uid na função pois doPlayerAddItem requer um uid no parâmetro, logo vc quer o value da tabela, não o índice.
A diferença entre pairs e ipairs é que ambas são funções de busca porém pairs itera em pares sequenciais (i = i + 1) enquanto que ipairs busca o próximo elemento diferente de nil.
Há casos em que pairs não irá funcionar e casos que ipairs não irá funcionar. Portanto é bom conhecer os dois usos e testar sempre.
pairs e ipairs não retornam informações diferentes, quem dita isso é o return da função, pairs e ipairs são meras funções pra percorrer a tabela retornada.
Leia isso daqui tb: http://www.lua.org/pil/7.3.html -
editado: não tinha lido a ultima página.. já falaram do os.time(). foi mal.
-
Sim, tem que registrar em login.lua. E, por precaução, também registre no arquivo .xml do Kecleon (data/monsters).
só fazendo um adendo aqui: quando vc quer que um monstro ative um callback, vc só registra o evento no monstro. Caso contrário se tiver algum player com o nome do pokemon, ele vai mudar a outfit também. -
faz statsChange, uma tabela com cor de outfit e tipo de combat (dá pra extrair o combat pela statschange).
Se a cor do outfit for a cor da resistencia, dá return false e cria outro combat mais fraco (cuidado com stackoverflow aqui pq ele vai tentar fazer isso tendendo a infinito). Do contrário, seta a cor do outfit como sendo a referente ao combat. Fim. -
o texto não condiz em nada com o gif e com seu segundo comentário.
Se decide, vai ser aleatoriamente ou ele vai pegar o tipo de combat que ele é atacado e mudar de cor?
-
Quem Está Navegando 0 membros estão online
- Nenhum usuário registrado visualizando esta página.
Alguns ataques dão um dano absurdo
em Scripts
Postado
skill elevada, ser adm, weapons com dano absurdo.. tudo isso poderia explicar os ataques exagerados. Não tem como saber..