Fixo Please
- Fórum
- OTServ
- Tutoriais
- Tutoriais de Scripting
- Criando Spells/monsters/npc's
Criando Spells/monsters/npc's
Por Tonynh, 14 de jul. de 2009 em Tutoriais de Scripting
info
Grupo: Conde
Registrado: 13/05/07
Posts: 778
Reputação: +14
Char no Tibia: Shea Fald

Falaê, otimo tutorial...
Pode ajudar muita gente, mas o problema é que tem muito tópico falando sobre isso!...
Aprovado :button_ok:
info
Grupo: Herói
Registrado: 07/01/08
Posts: 2.3k
Reputação: +514
Gênero: Masculino
Char no Tibia: Tonynh

Vindo de vc.. Valeu xD
Bom se tem outros tutorias, eu acho que os membros ainda possuem algumas dúvidas.. só espero que esse tuto, ajude muita gente ^^
E outra coisa.. a maioria dos tutoriais.. são de Npcs, Monsters, Speels, ja prontas ^^
que é só..
Ctrl + c
Ctrl + v
ai funciona.. em meu tutorial, quis representar o que cada coisa significa.. as "funções básicas" para que cada um, possa fazer o npc, monster, spell do jeito que bem entender ^^
Editado Julho 15 por Tonynh
info
Grupo: Barão
Registrado: 08/04/09
Posts: 234
Reputação: +11
Char no Tibia: Kino Calmera

Ótimo tutorial, apesar de já termos alguns, esse ficou show.
Aprovado e Movido.
info
Grupo: Herói
Registrado: 07/01/08
Posts: 2.3k
Reputação: +514
Gênero: Masculino
Char no Tibia: Tonynh

Obrigado pelo elogio, sei que estou contribuindo para o Xtibia com esse tutorial..
> Em breve com mais conteúdos ao Xtibia. :smile_positivo:
Sem mais~~
Att,
Tonynh
Editado Julho 17 por Tonynh
info
Grupo: Campones
Registrado: 09/07/09
Posts: 6
Reputação: 0

po cara perfeito tutorial (:
me ajudo pakas =] :smile_positivo:
info
Grupo: Herói
Registrado: 07/01/08
Posts: 2.3k
Reputação: +514
Gênero: Masculino
Char no Tibia: Tonynh

Obrigado cainhobong pelo elogio.. e é pra isso mesmo que postei o tutorial no Xtibia.. pra ajudar a quem precisa :smile_positivo:
Abraços.. e boa sorte
Perfeito tutorial.
Como sempre, vem fazendo um bom trabalho.
Eu já sou experiente em Spells, mas sou Iniciante em Monsters, então muito obrigado cara !
Jajá tou colocando sua fanbar heheheh!
info
Grupo: Herói
Registrado: 07/01/08
Posts: 2.3k
Reputação: +514
Gênero: Masculino
Char no Tibia: Tonynh

Opa.. obrigado pelos elogios :smile_positivo:
Espero que este tutorial abra as portas para a sua criação de monsters.. :smile_positivo:
Abraços..
Att,
Tonynh
info
Grupo: Campones
Registrado: 05/07/08
Posts: 16
Reputação: 0
Char no Tibia: KarlozxD

huhu, legal vo ver se aprendo alguma coisa
vlw..
info
Grupo: Herói
Registrado: 07/01/08
Posts: 2.3k
Reputação: +514
Gênero: Masculino
Char no Tibia: Tonynh

Agradeço a todos pelos elogios..
Digo mais! estarei sem dá suporte a este tópico.. pois acho que já está explicado demais.
Caso tenham alguma dúvida mandem-me uma PM.
Abraços a todos.
Att,
Tonynh
info
Grupo: Barão
Registrado: 16/11/07
Posts: 200
Reputação: +88

Muito bom para iniciantes!
Aprovado :button_ok:
Valeu.
um detalhe, dá pra descobrir o outfit criando uma talkaction, ela te diz o que está usando. acho que tem uma dessas na seção de actions.
info
Grupo: Campones
Registrado: 18/07/09
Posts: 49
Reputação: 0
Char no Tibia: Daan Knight

Parabens eu adorei mais aqui em casa naum da pq eu entro em spells ai tem 2 pastas scripts e lib
cara ali em cima vai script e a minha xml ve se vc arruma coloca essa magia pra todas as vocações e ve se ela nuam tah bugada e adorei mais uma vez seu tutorial
Editado Agosto 12 por danielnel







info
Grupo: Herói
Registrado: 07/01/08
Posts: 2.3k
Reputação: +514
Gênero: Masculino
Char no Tibia: Tonynh
Olá Xtibianos, muita gente aqui do fórum procura por dicas de como fazer suas " Edições " em seu servidor.
Estou aqui para postar um tutorial.. que achei a necessidade de fazer um.
---------x---------
INTRODUCAO:
1.0- SPEELS
2.0- MONSTROS
3.0- NPC'S
---------x---------
1.0- SPEELS
Existem as spells de instant e as spells de rune, as spells de instant sao aquelas em q o monstro usa nele, e as de runa ele vai usar em vc. Entao a primeira coisa que precisamos fazer é decidir se vamos fazer uma spell de runa ou de instant, vou mostrar aqui apenas um exemplo.
> Vamos começar, seguindo um exemplo de uma magia que encontrei.. resumirei o maximo..:
Primeiro, crie um arquivo chamado crossover.lua, na pasta Data>Spells>Instant
Obs: A localização " instant " será o tipo da magia, o qual será criada.
Começamos o script com isso:
Essa é a area em que a magia ira pegar, o numero 0 simboliza os espaços que a magia nao pega e os numeros 1, os lugares onde acontecerá a magia, no exemplo acima, é uma magia em forma de cruz
Pulamos entao uma linha e acrescentamos isso:
Explicações..:
attackType = o tipo de ataque que será, no exemplo será um ataque fisico, mas tbm poderia ser um ataque de fogo, ou de energy
needDirection = se o ataque precisa de direção, como as firewaves
areaEffect = o tipo de animação que saira na area na magia
animationEffect = a animação de quando o player sofrer dano da magia
damageEffect = o efeito que saira quando o player receber o dano
animationColor = a cor da animação da Magia
offensive = se a magia é de ataque ou nao
drawblood = se embaixo do player vai sair sangue quando ele receber a magia
Explicado. Pulamos mais uma vez uma linha.. e adicionamos isto:
Essa é a função que fara com que oque explicamos acima funcione, pulamos outra linha e acrescentamos:
Essa é a fórmula do Dano que o player irá tomar ao receber a magia, agora pra finalizar adiconamos:
Pronto ja terminamos nossa primeira spell, agora para faze-la funcionar precisamos acrescenta-la aou arquivo spells.xml
vamos lá, na pasta Data>Spells abra o arquivo spells.xml e na sessao de INSTANT, acrescente esta linha:
------------x----------
spell name="CrossOver" words="crossover" maglv="12" mana="160" enabled="1"><vocation id="2" /><vocation id="1" /></spell>
------------x----------
Explicação..:
------------x----------
spell name = nome da magia (pode ser qualquer um)
words = as palavras magicas que terao que ser ditas pra magia funcionar (tem q ser igual ao nome do script da magia)
magvl = maglv necessario para usar essa magia
mana = mana que será gasta
enabled = se a magia esta abilitada ou nao
vocation id = para quais vocações essa magia funcionará, no caso acima ela so funciona pra sorc e druid
------------x----------
Axo que está tudo pronto na parte de SPEELS, vamos ao segundo passo:
2.0- MONSTERS
Crie um arquivo .xml com um nome qualquer na pasta Data>Monsters
Esse é um exemplo de um monstro que eu criei, escolhi ele porque ele apresenta quase todas as funções de um monster, vamos as explicações que realmente interessam.
Vamos falar sobre o looktype e a lootchance:
"Ah eu quero criar um Boss dos orc, mas nao sei quais sao as roupinhas"
Abaixo a lista dos looktypes dos monstros mais comums
Ps: Você também pode por roupas de players, exemplo.. para os atuais servidores SQL, recomendo para ser mais simples, você por a roupa desejada " in game " Fazer logout, Relogar.. abrir o SQL editor, e no nome de seu char, e verificar o looktype, lookfeet.. entre outros
Voltando..
E a lootchance
"Eu quero fazer um faraó, mas quero que item fulano caia toda hora e que item ciclano caia mto raramente", entao ai vai a lista da loot chance:
Bom, terminamos a explicação dos monstros.. vamos agora ao Tutorial de npc..
3.0- NPC'S
Como exemplo de npc, vamos criar um NPC, que quando vc pedir ele sumone um monstro pra vc
Começamos a função de um NPC com isso
------------x----------
focus = 0
contador = 0
talk_start = 0
target = 0
following = false
attacking = false
function onThingMove(creature, thing, oldpos, oldstackpos)
end
function onCreatureAppear(creature)
end
function onCreatureDisappear(cid, pos)
if focus == cid then
selfSay('Ate breve.')
focus = 0
contador = 0
talk_start = 0
end
end
function onCreatureTurn(creature)
end
function msgcontains(txt, str)
return (string.find(txt, str) and not string.find(txt, '(%w+)' .. str) and not string.find(txt, str .. '(%w+)'))
end
function onCreatureSay(cid, type, msg)
msg = string.lower(msg)
------------x----------
Depois acrescentamos:
------------x----------
if ((string.find(msg, '(%a*)hi(%a*)')) and (focus == 0)) and getDistanceToCreature(cid) < 3 then
selfSay('Hail ' .. creatureGetName(cid) .. '! Voce gostaria de treinar com algum de meus monstros?')
focus = cid
contador = 1
talk_start = os.clock()
end
------------x----------
Quando vc falar HI pra ele ele vai te dizer:
selfSay('Hail ' .. creatureGetName(cid) .. '! Voce gostaria de treinar com algum de meus monstros?')
Dai pulamos uma linha e acrescentamos:
------------x----------
if string.find(msg, '(%a*)hi(%a*)') and (focus ~= cid) and getDistanceToCreature(cid) < 3 then
selfSay('Espere ' .. creatureGetName(cid) .. '!')
end
------------x----------
Isso é, se alguem chegar e falar Hi e ele estiver falando com vc, ele vai dizer para o outro:
selfSay('Espere ' .. creatureGetName(cid) .. '!')
Entao agora para responder a pergunta que o Npc nos fez, pulamos uma linha e colocamos:
------------x----------
if msgcontains(msg, 'yes') and focus == cid and contador == 1 then
selfSay('/m trainer')
talk_start = os.clock()
end
------------x----------
No caso, quando vc falar yes, ele vai sumonar um trainer,aqui vc poderia substituir por qualquer outro bixo, entao fechamos o script com isso:
------------x----------
if string.find(msg, '(%a*)bye(%a*)') and focus == cid and getDistanceToCreature(cid) < 3 then
selfSay('Ate Breve jovem ' .. creatureGetName(cid) .. '!')
focus = 0
talk_start = 0
end
end
function onCreatureChangeOutfit(creature)
end
function onThink()
if (os.clock() - talk_start) > 30 then
if focus > 0 then
selfSay('Próximo Por favor...')
end
focus = 0
contador = 0
end
end
------------x----------
Que nada mais é do que, o que ele fala e faz depois que vc fala BYE, e oq ele fala e faz depois que vc se afasta muito dele.
Vamos explicar algumas funções dos NPCs:
PS: O tutorial possuia muitos " Quotes " então o site recusou como erro. O que seria pra ser como Quote ficaram como:
( ------------x---------- )
Desculpa qualquer coisa ai.. erros de português e etc.. :smile_positivo:
ESPERO TER CONTRIBUIDO COM O XTIBIA ^^
> Este tutorial foi feito por mim. A criação do mesmo estava postado no meu blog, antes de deleta-lo. Qualquer copia do mesmo, favor pedir permissão.
Créditos 100% Meus
Att,
Tonynh
Editado Novembro 8 por Tonynh