Histórico de Curtidas
-
augustomeneghetti recebeu reputação de BrunoWots em [PEDIDO] Como editar um monsterBom.. vamos começar por partes.
Vou dar um ctrl c + ctrl v em algumas partes e vou explicando passo a passo, vale lembrar que eu não manjo 100% pois nunca me preocupei com algumas coisas.. então o que eu tiver certeza vou deixar explicito, o que for uma hipotese para mim vou falar EU ACHO.
Vamos lá.
<monster name="Demon" nameDescription="a demon" race="fire" experience="6000" speed="275" manacost="10000">
Auto-explicativo. Utilize para mudar o nome do monstro.
<monster name="Demon" nameDescription="a demon" race="fire" experience="6000" speed="275" manacost="10000">
Serve para você escolher o que vai apareçer quanto você der look num monstro.. por exemplo você da look num demon.. vai apareçer "You se a demon".. ai se você quiser alterar isso, a vontade
<monster name="Demon" nameDescription="a demon" race="fire" experience="6000" speed="275" manacost="10000">
Raça propriamente dita, essa parte é simples de entender porém eu nunca parie para prestar atenção no que isso influencia, mas provavelmente deve influenciar em algo.
<monster name="Demon" nameDescription="a demon" race="fire" experience="6000" speed="275" manacost="10000">
Altere a experiencia do monstro aqui.. por exemplo, seu ot server é exp de 10x
Nesse caso um demon irá lhe dar 6000 de exp * 10, ficando então 60,000 de exp, se você alterar para 7000 a exp, irá dar 70,000 de exp o demon, você tem que levar em conta a exp como 1x elevado a rate do seu server, se você quer que um monstro de 10k de exp, você vai lá e põe 10k, e por seu server ser 10x ele vai dar 100k, algo que você não quer.. nesse caso utilize 1k de exp
<monster name="Demon" nameDescription="a demon" race="fire" experience="6000" speed="275" manacost="10000">
Velocidade propriamente dita do monstro, altere isso para faze-lo andar mais rapido/devagar, ou deixe em zero para o monstro ficar parado
<monster name="Demon" nameDescription="a demon" race="fire" experience="6000" speed="275" manacost="10000">
Provavelmente deve ser a mana necessária para sumonar o demon, mas calma lá.. ja vamos chegar num ponto onde definimos se o monstro é sumonavel ou não.
-----------------------------
<health now="8200" max="8200"/>
Aqui você define a health do monstro.. por exemplo
<health now="500" max="8200"/>
Se você fizer isso, o monstro vai ter um TOTAL de 8200 de HP, mas quando ele nascer, ele vai nascer com 500 de HP, ou seja, a barrinha de life dele vai estar no vermelho praticamente
-----------------------------
<look type="35" corpse="5995"/>
Aqui você define o sprite do seu monstro
Não lembro de cabeça.. mas vamos fingir que o citizen outfit é look type 100, você tem o looktype 35, e quer fazer um demon com outfit de citizen, você muda para 100, ou qualquer outro valor referente ao outfit que você procura.
<look type="35" corpse="5995"/>
Aqui você define qual será o sprite do seu monstro quando ele morrer.
Agora, vamos fazer algo mais divertido?
Vamos alterar o seguinte código:
" <look type="35" corpse="5995"/>"
Suponha-se que você quer utilizar o outfit citizen, mas dessa maneira você não pode definir as cores, e nem fazer um monstro com addon, então agora vou te ensinar como fazer isso
Insira no código as seguintes informações destacadas:
<look type="35" head="114" body="114" legs="0" feet="0" addons="3" corpse="5995"/>
Agora vamos as explicações:
<look type="35" head="114" body="114" legs="0" feet="0" addons="3" corpse="5995"/>
Define a cor do cabelo do seu monstro, porém você tem que definir com numeros, ja te ensino o macete para descobrir como conseguir esses valores
No caso, 114 representa o preto, então seu monsto terá cabelo preto, se você definir como 0, será cabelo branco.
<look type="35" head="114" body="114" legs="0" feet="0" addons="3" corpse="5995"/>
Mesma coisa do caso acima, porém para o peitoral do corpo.. e assim por diante
Basta você imaginar na ordem do Set outfit do próprio Tibia, quando você vai em ser outfit, temos as seguintes coisas:
Head = Head
Primary = Body
Secondary = Legs
Detail = feet
Entendeu?
Para definir os addons do seu monstro você editará a seguinte parte:
<look type="35" head="114" body="114" legs="0" feet="0" addons="3" corpse="5995"/>
Se você quiser que ele tenha APENAS o addon 1, deixe dessa maneira:
addons="1"
Para o addon 2:
addons="2"
Agora, você quer saber a melhor maneira de deixar o monstro como você quer? Simples, coloque seu ot server online, e pegue um char de teste, selecione nele o outfit com as cores e addons que você quer, e depois deslogue do char, feito isso abra o MYSQL (a versão que você utilizar), lá vá em editar players, se você utilizar o SQLite Studio assim como eu, logo a frente do nome do seu char de teste, vai ter as informações com o numero da cor e outfit que você selecionou
<targetchange interval="5000" chance="8"/>
Nessa parte você coloca um valor para definir a cada QUANTO TEMPO ele irá sorteiar baseado no valor ao lado (chance) se o monstro irá mudar seu alvo de um jogador para outro.
Na parte a seguir vamos definir algumas coisas utilizando o padrão Binário, mas ai você me pergunta o que é binário?
Simples, definição de verdadeiro e falso a partir de 0 e 1.
Para verdadeiro utilizaremos 1, para falso 0.
<flag summonable="0"/>
Define se é possivel um player normal sumonar o monstro através da magia "utevo res".. no caso está definido como não, não é possivel.
<flag attackable="1"/>
Define se é possivel UM JOGADOR atacar o monstro, por exemplo, se você definir como 0, ao tentar atacar o monstro vai ser impossivel.
<flag hostile="1"/>
Define se é um monstro hostil, ou simplificando, se estiver como 1 ele te ataca, mas se estiver como 0 ele seria um rabbit da vida, pode ser atacado mas não ataca de volta.
<flag illusionable="0"/>
Define se é possivel utilizar a magia "utevo res ina" no monstro.. ou seja, um player comum (mage) se transformar no monstro por um determinado tempo
<flag convinceable="0"/>
Mesma coisa do summonable PRATICAMENTE, porém é através de uma runa que existe no jogo, se você utilizar ela num monstro ele irá virar seu summon.
<flag pushable="0"/>
No caso, demons não são possiveis de arrastar, mas se você alterar para 1, será possivel arrastar seu demon.
<flag canpushitems="1"/>
Define se o monstro em si irá arrastar itens, no caso você tacou uma parcel na frente do bixo e saiu correndo, ele arrasta ela tirando-a do seu caminho.
<flag canpushcreatures="1"/>
Mesma coisa do item anterior, porém com criaturas, se uma criatura entrar na frente do seu monstro, ele irá arrasta-lá para chegar até você.
<flag targetdistance="1"/>
A distancia que você quer que o monstro fique do jogador, exemplo: Você quer que o demon ataque o jogador a 2 sqm's de distancia, basta alterar para 2 o valor.
<flag staticattack="90"/>
Não sei dizer o que fazer, se alguem souber, peço que poste.
<flag runonhealth="0"/>
Define a vida em que o monstro irá fugir de você (porém não sei dizer se funciona como a vida mesmo ou em % da vida, se alguem puder deixar mais claro isso)
---------------------------
</flags>
<attacks>
<attack name="melee" interval="2000" skill="100" attack="110"/>
<attack name="manadrain" interval="2000" chance="13" range="7" min="0" max="-120"/>
<attack name="fire" interval="2000" chance="30" range="7" radius="7" target="1" min="-150" max="-250">
<attribute key="shootEffect" value="fire"/>
<attribute key="areaEffect" value="firearea"/>
</attack>
Nessa parte iremos trabalhar as spells do monstro.
A parte destacada em negrito, é onde você coloca os ataques, ou seja, todo ataque novo que você quiser fazer OU TIRAR, terá que ser assim, e sempre terá de ser dentro do padrão, no caso eu retirar todos os ataques e deixar apenas um novo.
<attacks>
<attack name="melee" interval="2000" skill="100" attack="110"/>
</attack>
Dessa maneira o demon irá utilizar APENAS o melee skill, com um intervalo de 2000 milésimos, a parte e skill e attack basta pensar que ele é um player, vamos utilizar um exemplo.
<attack name="melee" interval="2000" skill="100" attack="25"/>
Isso equivale a um jogador com skill 100 utilizando uma arma com attack 25. (Por exemplo um paladino com spear)
<defenses armor="55" defense="55">
<defense name="healing" interval="2000" chance="15" min="130" max="240">
<attribute key="areaEffect" value="blueshimmer"/>
</defense>
<defense name="speed" interval="1000" chance="8" speedchange="290" duration="5000">
<attribute key="areaEffect" value="redshimmer"/>
</defense>
</defenses>
O critério utilizado acima nos ataques, também servem para buffs do monstro, por exemplo aqui em defense, você pode ver que ele tem uma chamada speed, que é um haste que o monstro usa para correr mais rapido. Mas esse não é o foco que irei abordar aqui.
A parte em negrito aborda a defesa do monstro, mesmo criterio utilizado acima no ataque, porém para defesa.
Agora, você queria adicionar uma spell de healing, correto?
então vamos lá
Peguei como exemplo a linha de código de um monstro do meu servidor, basta você inserir isso no seu código que estará tudo perfeito.
<defense name="healing" interval="1000" chance="25" min="500000" max="50000000">
Interval define o intervalo do chance, ou seja, a cada 1000 milésimos será sortiado com uma chance de 25 de o monstro healar (detalhe, se não for sortiado dentro da chance o monsto não irá healar) entre o valor min e max, e a próposito, estou falando sortiar, mas o mais correto seria dizer:
"Sortear um valor random", pois não há como definir o valor a ser sortiado (se não nem sequer seria um sorteio né?"
-------------------------------------
<elements>
<element physicalPercent="30"/>
<element energyPercent="50"/>
<element earthPercent="20"/>
<element icePercent="-15"/>
<element holyPercent="-15"/>
<element deathPercent="20"/>
</elements>
Essa parte é BEM SIMPLES, é a % de defesa do monstro contra danos magicos/fisicos:
Levando em conta os dados acima vamos lá:
<element physicalPercent="30"/>
O monstro tem uma defesa de 30% contra physical, ou seja, se você iria hitar 100 nele, o valor 100 será diminuido para 70, que será o seu hit final
<element icePercent="-15"/>
Aqui ja fica diferente.. DESTAQUE para o sinal de -, isso significa que o monstro É FRACO ao elemento ice, ou seja, você iria hitar 100?
Seu hit final vai ser 100 + 15% = 115 de dano
É essa formula para qualquer valor, por exemplo:
300 de dano (15% do valor é igual a 45), ou seja, 345 de dano de ice
-----------------------------
<immunities>
<immunity fire="1"/>
<immunity drown="1"/>
<immunity paralyze="1"/>
<immunity invisible="1"/>
</immunities>
Aqui são as imunidades do monstro, vamos lá, 1 por 1:
<immunity fire="1"/>
Significa que o monsto tem 100% de proteção a fogo, então não importa o que ele não toma dano de fogo.
<immunity drown="1"/>
Não me lembro o que é drown, se não me engano é andar embaixo da água, se for 0 o monstro iria perder vida (SE NÃO ME ENGANO)
<immunity paralyze="1"/>
Ao utilizar a paralise rune no monstro, isso define se ele será afetado ou não
<immunity invisible="1"/>
Define se o monstro irá ver invisbilidade (utana vid ou stealth ring)
Caso essa opção esteja marcado como 0, se você utilizar utana vid, o demon não irá lhe atacar por não te ver.
-----------------------
<summons maxSummons="1">
<summon name="fire elemental" interval="1000" chance="12"/>
</summons>
O demon é um monsto que sumona bixos, no caso aqui você define em MAXSUMMONS qual o limite de bixos que ele poderá sumonar, e em baixo qual o bixo propriamente dito que será sumonado, no caso você pode alterar o fire elemental para um rat se quiser.
------------------------
<voices interval="5000" chance="10">
<voice sentence="MUHAHAHAHA!" yell="1"/>
<voice sentence="Your soul will be mine!" yell="0"/>
</voices>
Deixei apenas as 2 opções para uma explicação mais objetiva, o primeiro em negrito é uma fala do monstro, porém está como yell=1, isso significa que quando ele falar, ele irá gritar na verdade, então será possivel ver essa fala dele de fora da tela.
A fala de baixo no caso, ja representa uma simples fala qualquer que só se pode ser vista estando na mesma tela do monstro em si.
-----------
~
Enfim..
Só restou explicar a ultima parte de loot, mas com tudo que ja expliquei acima, creio que você pegou uma base e isso não será necessário né?
hehe, espero que esse post tenha lhe ajudado, qualquer dúvida, basta perguntar, ajudarei no que for possivel.
-
augustomeneghetti recebeu reputação de amora murder em [PEDIDO] Como editar um monsterBom.. vamos começar por partes.
Vou dar um ctrl c + ctrl v em algumas partes e vou explicando passo a passo, vale lembrar que eu não manjo 100% pois nunca me preocupei com algumas coisas.. então o que eu tiver certeza vou deixar explicito, o que for uma hipotese para mim vou falar EU ACHO.
Vamos lá.
<monster name="Demon" nameDescription="a demon" race="fire" experience="6000" speed="275" manacost="10000">
Auto-explicativo. Utilize para mudar o nome do monstro.
<monster name="Demon" nameDescription="a demon" race="fire" experience="6000" speed="275" manacost="10000">
Serve para você escolher o que vai apareçer quanto você der look num monstro.. por exemplo você da look num demon.. vai apareçer "You se a demon".. ai se você quiser alterar isso, a vontade
<monster name="Demon" nameDescription="a demon" race="fire" experience="6000" speed="275" manacost="10000">
Raça propriamente dita, essa parte é simples de entender porém eu nunca parie para prestar atenção no que isso influencia, mas provavelmente deve influenciar em algo.
<monster name="Demon" nameDescription="a demon" race="fire" experience="6000" speed="275" manacost="10000">
Altere a experiencia do monstro aqui.. por exemplo, seu ot server é exp de 10x
Nesse caso um demon irá lhe dar 6000 de exp * 10, ficando então 60,000 de exp, se você alterar para 7000 a exp, irá dar 70,000 de exp o demon, você tem que levar em conta a exp como 1x elevado a rate do seu server, se você quer que um monstro de 10k de exp, você vai lá e põe 10k, e por seu server ser 10x ele vai dar 100k, algo que você não quer.. nesse caso utilize 1k de exp
<monster name="Demon" nameDescription="a demon" race="fire" experience="6000" speed="275" manacost="10000">
Velocidade propriamente dita do monstro, altere isso para faze-lo andar mais rapido/devagar, ou deixe em zero para o monstro ficar parado
<monster name="Demon" nameDescription="a demon" race="fire" experience="6000" speed="275" manacost="10000">
Provavelmente deve ser a mana necessária para sumonar o demon, mas calma lá.. ja vamos chegar num ponto onde definimos se o monstro é sumonavel ou não.
-----------------------------
<health now="8200" max="8200"/>
Aqui você define a health do monstro.. por exemplo
<health now="500" max="8200"/>
Se você fizer isso, o monstro vai ter um TOTAL de 8200 de HP, mas quando ele nascer, ele vai nascer com 500 de HP, ou seja, a barrinha de life dele vai estar no vermelho praticamente
-----------------------------
<look type="35" corpse="5995"/>
Aqui você define o sprite do seu monstro
Não lembro de cabeça.. mas vamos fingir que o citizen outfit é look type 100, você tem o looktype 35, e quer fazer um demon com outfit de citizen, você muda para 100, ou qualquer outro valor referente ao outfit que você procura.
<look type="35" corpse="5995"/>
Aqui você define qual será o sprite do seu monstro quando ele morrer.
Agora, vamos fazer algo mais divertido?
Vamos alterar o seguinte código:
" <look type="35" corpse="5995"/>"
Suponha-se que você quer utilizar o outfit citizen, mas dessa maneira você não pode definir as cores, e nem fazer um monstro com addon, então agora vou te ensinar como fazer isso
Insira no código as seguintes informações destacadas:
<look type="35" head="114" body="114" legs="0" feet="0" addons="3" corpse="5995"/>
Agora vamos as explicações:
<look type="35" head="114" body="114" legs="0" feet="0" addons="3" corpse="5995"/>
Define a cor do cabelo do seu monstro, porém você tem que definir com numeros, ja te ensino o macete para descobrir como conseguir esses valores
No caso, 114 representa o preto, então seu monsto terá cabelo preto, se você definir como 0, será cabelo branco.
<look type="35" head="114" body="114" legs="0" feet="0" addons="3" corpse="5995"/>
Mesma coisa do caso acima, porém para o peitoral do corpo.. e assim por diante
Basta você imaginar na ordem do Set outfit do próprio Tibia, quando você vai em ser outfit, temos as seguintes coisas:
Head = Head
Primary = Body
Secondary = Legs
Detail = feet
Entendeu?
Para definir os addons do seu monstro você editará a seguinte parte:
<look type="35" head="114" body="114" legs="0" feet="0" addons="3" corpse="5995"/>
Se você quiser que ele tenha APENAS o addon 1, deixe dessa maneira:
addons="1"
Para o addon 2:
addons="2"
Agora, você quer saber a melhor maneira de deixar o monstro como você quer? Simples, coloque seu ot server online, e pegue um char de teste, selecione nele o outfit com as cores e addons que você quer, e depois deslogue do char, feito isso abra o MYSQL (a versão que você utilizar), lá vá em editar players, se você utilizar o SQLite Studio assim como eu, logo a frente do nome do seu char de teste, vai ter as informações com o numero da cor e outfit que você selecionou
<targetchange interval="5000" chance="8"/>
Nessa parte você coloca um valor para definir a cada QUANTO TEMPO ele irá sorteiar baseado no valor ao lado (chance) se o monstro irá mudar seu alvo de um jogador para outro.
Na parte a seguir vamos definir algumas coisas utilizando o padrão Binário, mas ai você me pergunta o que é binário?
Simples, definição de verdadeiro e falso a partir de 0 e 1.
Para verdadeiro utilizaremos 1, para falso 0.
<flag summonable="0"/>
Define se é possivel um player normal sumonar o monstro através da magia "utevo res".. no caso está definido como não, não é possivel.
<flag attackable="1"/>
Define se é possivel UM JOGADOR atacar o monstro, por exemplo, se você definir como 0, ao tentar atacar o monstro vai ser impossivel.
<flag hostile="1"/>
Define se é um monstro hostil, ou simplificando, se estiver como 1 ele te ataca, mas se estiver como 0 ele seria um rabbit da vida, pode ser atacado mas não ataca de volta.
<flag illusionable="0"/>
Define se é possivel utilizar a magia "utevo res ina" no monstro.. ou seja, um player comum (mage) se transformar no monstro por um determinado tempo
<flag convinceable="0"/>
Mesma coisa do summonable PRATICAMENTE, porém é através de uma runa que existe no jogo, se você utilizar ela num monstro ele irá virar seu summon.
<flag pushable="0"/>
No caso, demons não são possiveis de arrastar, mas se você alterar para 1, será possivel arrastar seu demon.
<flag canpushitems="1"/>
Define se o monstro em si irá arrastar itens, no caso você tacou uma parcel na frente do bixo e saiu correndo, ele arrasta ela tirando-a do seu caminho.
<flag canpushcreatures="1"/>
Mesma coisa do item anterior, porém com criaturas, se uma criatura entrar na frente do seu monstro, ele irá arrasta-lá para chegar até você.
<flag targetdistance="1"/>
A distancia que você quer que o monstro fique do jogador, exemplo: Você quer que o demon ataque o jogador a 2 sqm's de distancia, basta alterar para 2 o valor.
<flag staticattack="90"/>
Não sei dizer o que fazer, se alguem souber, peço que poste.
<flag runonhealth="0"/>
Define a vida em que o monstro irá fugir de você (porém não sei dizer se funciona como a vida mesmo ou em % da vida, se alguem puder deixar mais claro isso)
---------------------------
</flags>
<attacks>
<attack name="melee" interval="2000" skill="100" attack="110"/>
<attack name="manadrain" interval="2000" chance="13" range="7" min="0" max="-120"/>
<attack name="fire" interval="2000" chance="30" range="7" radius="7" target="1" min="-150" max="-250">
<attribute key="shootEffect" value="fire"/>
<attribute key="areaEffect" value="firearea"/>
</attack>
Nessa parte iremos trabalhar as spells do monstro.
A parte destacada em negrito, é onde você coloca os ataques, ou seja, todo ataque novo que você quiser fazer OU TIRAR, terá que ser assim, e sempre terá de ser dentro do padrão, no caso eu retirar todos os ataques e deixar apenas um novo.
<attacks>
<attack name="melee" interval="2000" skill="100" attack="110"/>
</attack>
Dessa maneira o demon irá utilizar APENAS o melee skill, com um intervalo de 2000 milésimos, a parte e skill e attack basta pensar que ele é um player, vamos utilizar um exemplo.
<attack name="melee" interval="2000" skill="100" attack="25"/>
Isso equivale a um jogador com skill 100 utilizando uma arma com attack 25. (Por exemplo um paladino com spear)
<defenses armor="55" defense="55">
<defense name="healing" interval="2000" chance="15" min="130" max="240">
<attribute key="areaEffect" value="blueshimmer"/>
</defense>
<defense name="speed" interval="1000" chance="8" speedchange="290" duration="5000">
<attribute key="areaEffect" value="redshimmer"/>
</defense>
</defenses>
O critério utilizado acima nos ataques, também servem para buffs do monstro, por exemplo aqui em defense, você pode ver que ele tem uma chamada speed, que é um haste que o monstro usa para correr mais rapido. Mas esse não é o foco que irei abordar aqui.
A parte em negrito aborda a defesa do monstro, mesmo criterio utilizado acima no ataque, porém para defesa.
Agora, você queria adicionar uma spell de healing, correto?
então vamos lá
Peguei como exemplo a linha de código de um monstro do meu servidor, basta você inserir isso no seu código que estará tudo perfeito.
<defense name="healing" interval="1000" chance="25" min="500000" max="50000000">
Interval define o intervalo do chance, ou seja, a cada 1000 milésimos será sortiado com uma chance de 25 de o monstro healar (detalhe, se não for sortiado dentro da chance o monsto não irá healar) entre o valor min e max, e a próposito, estou falando sortiar, mas o mais correto seria dizer:
"Sortear um valor random", pois não há como definir o valor a ser sortiado (se não nem sequer seria um sorteio né?"
-------------------------------------
<elements>
<element physicalPercent="30"/>
<element energyPercent="50"/>
<element earthPercent="20"/>
<element icePercent="-15"/>
<element holyPercent="-15"/>
<element deathPercent="20"/>
</elements>
Essa parte é BEM SIMPLES, é a % de defesa do monstro contra danos magicos/fisicos:
Levando em conta os dados acima vamos lá:
<element physicalPercent="30"/>
O monstro tem uma defesa de 30% contra physical, ou seja, se você iria hitar 100 nele, o valor 100 será diminuido para 70, que será o seu hit final
<element icePercent="-15"/>
Aqui ja fica diferente.. DESTAQUE para o sinal de -, isso significa que o monstro É FRACO ao elemento ice, ou seja, você iria hitar 100?
Seu hit final vai ser 100 + 15% = 115 de dano
É essa formula para qualquer valor, por exemplo:
300 de dano (15% do valor é igual a 45), ou seja, 345 de dano de ice
-----------------------------
<immunities>
<immunity fire="1"/>
<immunity drown="1"/>
<immunity paralyze="1"/>
<immunity invisible="1"/>
</immunities>
Aqui são as imunidades do monstro, vamos lá, 1 por 1:
<immunity fire="1"/>
Significa que o monsto tem 100% de proteção a fogo, então não importa o que ele não toma dano de fogo.
<immunity drown="1"/>
Não me lembro o que é drown, se não me engano é andar embaixo da água, se for 0 o monstro iria perder vida (SE NÃO ME ENGANO)
<immunity paralyze="1"/>
Ao utilizar a paralise rune no monstro, isso define se ele será afetado ou não
<immunity invisible="1"/>
Define se o monstro irá ver invisbilidade (utana vid ou stealth ring)
Caso essa opção esteja marcado como 0, se você utilizar utana vid, o demon não irá lhe atacar por não te ver.
-----------------------
<summons maxSummons="1">
<summon name="fire elemental" interval="1000" chance="12"/>
</summons>
O demon é um monsto que sumona bixos, no caso aqui você define em MAXSUMMONS qual o limite de bixos que ele poderá sumonar, e em baixo qual o bixo propriamente dito que será sumonado, no caso você pode alterar o fire elemental para um rat se quiser.
------------------------
<voices interval="5000" chance="10">
<voice sentence="MUHAHAHAHA!" yell="1"/>
<voice sentence="Your soul will be mine!" yell="0"/>
</voices>
Deixei apenas as 2 opções para uma explicação mais objetiva, o primeiro em negrito é uma fala do monstro, porém está como yell=1, isso significa que quando ele falar, ele irá gritar na verdade, então será possivel ver essa fala dele de fora da tela.
A fala de baixo no caso, ja representa uma simples fala qualquer que só se pode ser vista estando na mesma tela do monstro em si.
-----------
~
Enfim..
Só restou explicar a ultima parte de loot, mas com tudo que ja expliquei acima, creio que você pegou uma base e isso não será necessário né?
hehe, espero que esse post tenha lhe ajudado, qualquer dúvida, basta perguntar, ajudarei no que for possivel.
-
augustomeneghetti recebeu reputação de akashiyablanc em [PEDIDO] Como editar um monsterBom.. vamos começar por partes.
Vou dar um ctrl c + ctrl v em algumas partes e vou explicando passo a passo, vale lembrar que eu não manjo 100% pois nunca me preocupei com algumas coisas.. então o que eu tiver certeza vou deixar explicito, o que for uma hipotese para mim vou falar EU ACHO.
Vamos lá.
<monster name="Demon" nameDescription="a demon" race="fire" experience="6000" speed="275" manacost="10000">
Auto-explicativo. Utilize para mudar o nome do monstro.
<monster name="Demon" nameDescription="a demon" race="fire" experience="6000" speed="275" manacost="10000">
Serve para você escolher o que vai apareçer quanto você der look num monstro.. por exemplo você da look num demon.. vai apareçer "You se a demon".. ai se você quiser alterar isso, a vontade
<monster name="Demon" nameDescription="a demon" race="fire" experience="6000" speed="275" manacost="10000">
Raça propriamente dita, essa parte é simples de entender porém eu nunca parie para prestar atenção no que isso influencia, mas provavelmente deve influenciar em algo.
<monster name="Demon" nameDescription="a demon" race="fire" experience="6000" speed="275" manacost="10000">
Altere a experiencia do monstro aqui.. por exemplo, seu ot server é exp de 10x
Nesse caso um demon irá lhe dar 6000 de exp * 10, ficando então 60,000 de exp, se você alterar para 7000 a exp, irá dar 70,000 de exp o demon, você tem que levar em conta a exp como 1x elevado a rate do seu server, se você quer que um monstro de 10k de exp, você vai lá e põe 10k, e por seu server ser 10x ele vai dar 100k, algo que você não quer.. nesse caso utilize 1k de exp
<monster name="Demon" nameDescription="a demon" race="fire" experience="6000" speed="275" manacost="10000">
Velocidade propriamente dita do monstro, altere isso para faze-lo andar mais rapido/devagar, ou deixe em zero para o monstro ficar parado
<monster name="Demon" nameDescription="a demon" race="fire" experience="6000" speed="275" manacost="10000">
Provavelmente deve ser a mana necessária para sumonar o demon, mas calma lá.. ja vamos chegar num ponto onde definimos se o monstro é sumonavel ou não.
-----------------------------
<health now="8200" max="8200"/>
Aqui você define a health do monstro.. por exemplo
<health now="500" max="8200"/>
Se você fizer isso, o monstro vai ter um TOTAL de 8200 de HP, mas quando ele nascer, ele vai nascer com 500 de HP, ou seja, a barrinha de life dele vai estar no vermelho praticamente
-----------------------------
<look type="35" corpse="5995"/>
Aqui você define o sprite do seu monstro
Não lembro de cabeça.. mas vamos fingir que o citizen outfit é look type 100, você tem o looktype 35, e quer fazer um demon com outfit de citizen, você muda para 100, ou qualquer outro valor referente ao outfit que você procura.
<look type="35" corpse="5995"/>
Aqui você define qual será o sprite do seu monstro quando ele morrer.
Agora, vamos fazer algo mais divertido?
Vamos alterar o seguinte código:
" <look type="35" corpse="5995"/>"
Suponha-se que você quer utilizar o outfit citizen, mas dessa maneira você não pode definir as cores, e nem fazer um monstro com addon, então agora vou te ensinar como fazer isso
Insira no código as seguintes informações destacadas:
<look type="35" head="114" body="114" legs="0" feet="0" addons="3" corpse="5995"/>
Agora vamos as explicações:
<look type="35" head="114" body="114" legs="0" feet="0" addons="3" corpse="5995"/>
Define a cor do cabelo do seu monstro, porém você tem que definir com numeros, ja te ensino o macete para descobrir como conseguir esses valores
No caso, 114 representa o preto, então seu monsto terá cabelo preto, se você definir como 0, será cabelo branco.
<look type="35" head="114" body="114" legs="0" feet="0" addons="3" corpse="5995"/>
Mesma coisa do caso acima, porém para o peitoral do corpo.. e assim por diante
Basta você imaginar na ordem do Set outfit do próprio Tibia, quando você vai em ser outfit, temos as seguintes coisas:
Head = Head
Primary = Body
Secondary = Legs
Detail = feet
Entendeu?
Para definir os addons do seu monstro você editará a seguinte parte:
<look type="35" head="114" body="114" legs="0" feet="0" addons="3" corpse="5995"/>
Se você quiser que ele tenha APENAS o addon 1, deixe dessa maneira:
addons="1"
Para o addon 2:
addons="2"
Agora, você quer saber a melhor maneira de deixar o monstro como você quer? Simples, coloque seu ot server online, e pegue um char de teste, selecione nele o outfit com as cores e addons que você quer, e depois deslogue do char, feito isso abra o MYSQL (a versão que você utilizar), lá vá em editar players, se você utilizar o SQLite Studio assim como eu, logo a frente do nome do seu char de teste, vai ter as informações com o numero da cor e outfit que você selecionou
<targetchange interval="5000" chance="8"/>
Nessa parte você coloca um valor para definir a cada QUANTO TEMPO ele irá sorteiar baseado no valor ao lado (chance) se o monstro irá mudar seu alvo de um jogador para outro.
Na parte a seguir vamos definir algumas coisas utilizando o padrão Binário, mas ai você me pergunta o que é binário?
Simples, definição de verdadeiro e falso a partir de 0 e 1.
Para verdadeiro utilizaremos 1, para falso 0.
<flag summonable="0"/>
Define se é possivel um player normal sumonar o monstro através da magia "utevo res".. no caso está definido como não, não é possivel.
<flag attackable="1"/>
Define se é possivel UM JOGADOR atacar o monstro, por exemplo, se você definir como 0, ao tentar atacar o monstro vai ser impossivel.
<flag hostile="1"/>
Define se é um monstro hostil, ou simplificando, se estiver como 1 ele te ataca, mas se estiver como 0 ele seria um rabbit da vida, pode ser atacado mas não ataca de volta.
<flag illusionable="0"/>
Define se é possivel utilizar a magia "utevo res ina" no monstro.. ou seja, um player comum (mage) se transformar no monstro por um determinado tempo
<flag convinceable="0"/>
Mesma coisa do summonable PRATICAMENTE, porém é através de uma runa que existe no jogo, se você utilizar ela num monstro ele irá virar seu summon.
<flag pushable="0"/>
No caso, demons não são possiveis de arrastar, mas se você alterar para 1, será possivel arrastar seu demon.
<flag canpushitems="1"/>
Define se o monstro em si irá arrastar itens, no caso você tacou uma parcel na frente do bixo e saiu correndo, ele arrasta ela tirando-a do seu caminho.
<flag canpushcreatures="1"/>
Mesma coisa do item anterior, porém com criaturas, se uma criatura entrar na frente do seu monstro, ele irá arrasta-lá para chegar até você.
<flag targetdistance="1"/>
A distancia que você quer que o monstro fique do jogador, exemplo: Você quer que o demon ataque o jogador a 2 sqm's de distancia, basta alterar para 2 o valor.
<flag staticattack="90"/>
Não sei dizer o que fazer, se alguem souber, peço que poste.
<flag runonhealth="0"/>
Define a vida em que o monstro irá fugir de você (porém não sei dizer se funciona como a vida mesmo ou em % da vida, se alguem puder deixar mais claro isso)
---------------------------
</flags>
<attacks>
<attack name="melee" interval="2000" skill="100" attack="110"/>
<attack name="manadrain" interval="2000" chance="13" range="7" min="0" max="-120"/>
<attack name="fire" interval="2000" chance="30" range="7" radius="7" target="1" min="-150" max="-250">
<attribute key="shootEffect" value="fire"/>
<attribute key="areaEffect" value="firearea"/>
</attack>
Nessa parte iremos trabalhar as spells do monstro.
A parte destacada em negrito, é onde você coloca os ataques, ou seja, todo ataque novo que você quiser fazer OU TIRAR, terá que ser assim, e sempre terá de ser dentro do padrão, no caso eu retirar todos os ataques e deixar apenas um novo.
<attacks>
<attack name="melee" interval="2000" skill="100" attack="110"/>
</attack>
Dessa maneira o demon irá utilizar APENAS o melee skill, com um intervalo de 2000 milésimos, a parte e skill e attack basta pensar que ele é um player, vamos utilizar um exemplo.
<attack name="melee" interval="2000" skill="100" attack="25"/>
Isso equivale a um jogador com skill 100 utilizando uma arma com attack 25. (Por exemplo um paladino com spear)
<defenses armor="55" defense="55">
<defense name="healing" interval="2000" chance="15" min="130" max="240">
<attribute key="areaEffect" value="blueshimmer"/>
</defense>
<defense name="speed" interval="1000" chance="8" speedchange="290" duration="5000">
<attribute key="areaEffect" value="redshimmer"/>
</defense>
</defenses>
O critério utilizado acima nos ataques, também servem para buffs do monstro, por exemplo aqui em defense, você pode ver que ele tem uma chamada speed, que é um haste que o monstro usa para correr mais rapido. Mas esse não é o foco que irei abordar aqui.
A parte em negrito aborda a defesa do monstro, mesmo criterio utilizado acima no ataque, porém para defesa.
Agora, você queria adicionar uma spell de healing, correto?
então vamos lá
Peguei como exemplo a linha de código de um monstro do meu servidor, basta você inserir isso no seu código que estará tudo perfeito.
<defense name="healing" interval="1000" chance="25" min="500000" max="50000000">
Interval define o intervalo do chance, ou seja, a cada 1000 milésimos será sortiado com uma chance de 25 de o monstro healar (detalhe, se não for sortiado dentro da chance o monsto não irá healar) entre o valor min e max, e a próposito, estou falando sortiar, mas o mais correto seria dizer:
"Sortear um valor random", pois não há como definir o valor a ser sortiado (se não nem sequer seria um sorteio né?"
-------------------------------------
<elements>
<element physicalPercent="30"/>
<element energyPercent="50"/>
<element earthPercent="20"/>
<element icePercent="-15"/>
<element holyPercent="-15"/>
<element deathPercent="20"/>
</elements>
Essa parte é BEM SIMPLES, é a % de defesa do monstro contra danos magicos/fisicos:
Levando em conta os dados acima vamos lá:
<element physicalPercent="30"/>
O monstro tem uma defesa de 30% contra physical, ou seja, se você iria hitar 100 nele, o valor 100 será diminuido para 70, que será o seu hit final
<element icePercent="-15"/>
Aqui ja fica diferente.. DESTAQUE para o sinal de -, isso significa que o monstro É FRACO ao elemento ice, ou seja, você iria hitar 100?
Seu hit final vai ser 100 + 15% = 115 de dano
É essa formula para qualquer valor, por exemplo:
300 de dano (15% do valor é igual a 45), ou seja, 345 de dano de ice
-----------------------------
<immunities>
<immunity fire="1"/>
<immunity drown="1"/>
<immunity paralyze="1"/>
<immunity invisible="1"/>
</immunities>
Aqui são as imunidades do monstro, vamos lá, 1 por 1:
<immunity fire="1"/>
Significa que o monsto tem 100% de proteção a fogo, então não importa o que ele não toma dano de fogo.
<immunity drown="1"/>
Não me lembro o que é drown, se não me engano é andar embaixo da água, se for 0 o monstro iria perder vida (SE NÃO ME ENGANO)
<immunity paralyze="1"/>
Ao utilizar a paralise rune no monstro, isso define se ele será afetado ou não
<immunity invisible="1"/>
Define se o monstro irá ver invisbilidade (utana vid ou stealth ring)
Caso essa opção esteja marcado como 0, se você utilizar utana vid, o demon não irá lhe atacar por não te ver.
-----------------------
<summons maxSummons="1">
<summon name="fire elemental" interval="1000" chance="12"/>
</summons>
O demon é um monsto que sumona bixos, no caso aqui você define em MAXSUMMONS qual o limite de bixos que ele poderá sumonar, e em baixo qual o bixo propriamente dito que será sumonado, no caso você pode alterar o fire elemental para um rat se quiser.
------------------------
<voices interval="5000" chance="10">
<voice sentence="MUHAHAHAHA!" yell="1"/>
<voice sentence="Your soul will be mine!" yell="0"/>
</voices>
Deixei apenas as 2 opções para uma explicação mais objetiva, o primeiro em negrito é uma fala do monstro, porém está como yell=1, isso significa que quando ele falar, ele irá gritar na verdade, então será possivel ver essa fala dele de fora da tela.
A fala de baixo no caso, ja representa uma simples fala qualquer que só se pode ser vista estando na mesma tela do monstro em si.
-----------
~
Enfim..
Só restou explicar a ultima parte de loot, mas com tudo que ja expliquei acima, creio que você pegou uma base e isso não será necessário né?
hehe, espero que esse post tenha lhe ajudado, qualquer dúvida, basta perguntar, ajudarei no que for possivel.
-
augustomeneghetti recebeu reputação de Show Time em [PEDIDO] Como editar um monsterBom.. vamos começar por partes.
Vou dar um ctrl c + ctrl v em algumas partes e vou explicando passo a passo, vale lembrar que eu não manjo 100% pois nunca me preocupei com algumas coisas.. então o que eu tiver certeza vou deixar explicito, o que for uma hipotese para mim vou falar EU ACHO.
Vamos lá.
<monster name="Demon" nameDescription="a demon" race="fire" experience="6000" speed="275" manacost="10000">
Auto-explicativo. Utilize para mudar o nome do monstro.
<monster name="Demon" nameDescription="a demon" race="fire" experience="6000" speed="275" manacost="10000">
Serve para você escolher o que vai apareçer quanto você der look num monstro.. por exemplo você da look num demon.. vai apareçer "You se a demon".. ai se você quiser alterar isso, a vontade
<monster name="Demon" nameDescription="a demon" race="fire" experience="6000" speed="275" manacost="10000">
Raça propriamente dita, essa parte é simples de entender porém eu nunca parie para prestar atenção no que isso influencia, mas provavelmente deve influenciar em algo.
<monster name="Demon" nameDescription="a demon" race="fire" experience="6000" speed="275" manacost="10000">
Altere a experiencia do monstro aqui.. por exemplo, seu ot server é exp de 10x
Nesse caso um demon irá lhe dar 6000 de exp * 10, ficando então 60,000 de exp, se você alterar para 7000 a exp, irá dar 70,000 de exp o demon, você tem que levar em conta a exp como 1x elevado a rate do seu server, se você quer que um monstro de 10k de exp, você vai lá e põe 10k, e por seu server ser 10x ele vai dar 100k, algo que você não quer.. nesse caso utilize 1k de exp
<monster name="Demon" nameDescription="a demon" race="fire" experience="6000" speed="275" manacost="10000">
Velocidade propriamente dita do monstro, altere isso para faze-lo andar mais rapido/devagar, ou deixe em zero para o monstro ficar parado
<monster name="Demon" nameDescription="a demon" race="fire" experience="6000" speed="275" manacost="10000">
Provavelmente deve ser a mana necessária para sumonar o demon, mas calma lá.. ja vamos chegar num ponto onde definimos se o monstro é sumonavel ou não.
-----------------------------
<health now="8200" max="8200"/>
Aqui você define a health do monstro.. por exemplo
<health now="500" max="8200"/>
Se você fizer isso, o monstro vai ter um TOTAL de 8200 de HP, mas quando ele nascer, ele vai nascer com 500 de HP, ou seja, a barrinha de life dele vai estar no vermelho praticamente
-----------------------------
<look type="35" corpse="5995"/>
Aqui você define o sprite do seu monstro
Não lembro de cabeça.. mas vamos fingir que o citizen outfit é look type 100, você tem o looktype 35, e quer fazer um demon com outfit de citizen, você muda para 100, ou qualquer outro valor referente ao outfit que você procura.
<look type="35" corpse="5995"/>
Aqui você define qual será o sprite do seu monstro quando ele morrer.
Agora, vamos fazer algo mais divertido?
Vamos alterar o seguinte código:
" <look type="35" corpse="5995"/>"
Suponha-se que você quer utilizar o outfit citizen, mas dessa maneira você não pode definir as cores, e nem fazer um monstro com addon, então agora vou te ensinar como fazer isso
Insira no código as seguintes informações destacadas:
<look type="35" head="114" body="114" legs="0" feet="0" addons="3" corpse="5995"/>
Agora vamos as explicações:
<look type="35" head="114" body="114" legs="0" feet="0" addons="3" corpse="5995"/>
Define a cor do cabelo do seu monstro, porém você tem que definir com numeros, ja te ensino o macete para descobrir como conseguir esses valores
No caso, 114 representa o preto, então seu monsto terá cabelo preto, se você definir como 0, será cabelo branco.
<look type="35" head="114" body="114" legs="0" feet="0" addons="3" corpse="5995"/>
Mesma coisa do caso acima, porém para o peitoral do corpo.. e assim por diante
Basta você imaginar na ordem do Set outfit do próprio Tibia, quando você vai em ser outfit, temos as seguintes coisas:
Head = Head
Primary = Body
Secondary = Legs
Detail = feet
Entendeu?
Para definir os addons do seu monstro você editará a seguinte parte:
<look type="35" head="114" body="114" legs="0" feet="0" addons="3" corpse="5995"/>
Se você quiser que ele tenha APENAS o addon 1, deixe dessa maneira:
addons="1"
Para o addon 2:
addons="2"
Agora, você quer saber a melhor maneira de deixar o monstro como você quer? Simples, coloque seu ot server online, e pegue um char de teste, selecione nele o outfit com as cores e addons que você quer, e depois deslogue do char, feito isso abra o MYSQL (a versão que você utilizar), lá vá em editar players, se você utilizar o SQLite Studio assim como eu, logo a frente do nome do seu char de teste, vai ter as informações com o numero da cor e outfit que você selecionou
<targetchange interval="5000" chance="8"/>
Nessa parte você coloca um valor para definir a cada QUANTO TEMPO ele irá sorteiar baseado no valor ao lado (chance) se o monstro irá mudar seu alvo de um jogador para outro.
Na parte a seguir vamos definir algumas coisas utilizando o padrão Binário, mas ai você me pergunta o que é binário?
Simples, definição de verdadeiro e falso a partir de 0 e 1.
Para verdadeiro utilizaremos 1, para falso 0.
<flag summonable="0"/>
Define se é possivel um player normal sumonar o monstro através da magia "utevo res".. no caso está definido como não, não é possivel.
<flag attackable="1"/>
Define se é possivel UM JOGADOR atacar o monstro, por exemplo, se você definir como 0, ao tentar atacar o monstro vai ser impossivel.
<flag hostile="1"/>
Define se é um monstro hostil, ou simplificando, se estiver como 1 ele te ataca, mas se estiver como 0 ele seria um rabbit da vida, pode ser atacado mas não ataca de volta.
<flag illusionable="0"/>
Define se é possivel utilizar a magia "utevo res ina" no monstro.. ou seja, um player comum (mage) se transformar no monstro por um determinado tempo
<flag convinceable="0"/>
Mesma coisa do summonable PRATICAMENTE, porém é através de uma runa que existe no jogo, se você utilizar ela num monstro ele irá virar seu summon.
<flag pushable="0"/>
No caso, demons não são possiveis de arrastar, mas se você alterar para 1, será possivel arrastar seu demon.
<flag canpushitems="1"/>
Define se o monstro em si irá arrastar itens, no caso você tacou uma parcel na frente do bixo e saiu correndo, ele arrasta ela tirando-a do seu caminho.
<flag canpushcreatures="1"/>
Mesma coisa do item anterior, porém com criaturas, se uma criatura entrar na frente do seu monstro, ele irá arrasta-lá para chegar até você.
<flag targetdistance="1"/>
A distancia que você quer que o monstro fique do jogador, exemplo: Você quer que o demon ataque o jogador a 2 sqm's de distancia, basta alterar para 2 o valor.
<flag staticattack="90"/>
Não sei dizer o que fazer, se alguem souber, peço que poste.
<flag runonhealth="0"/>
Define a vida em que o monstro irá fugir de você (porém não sei dizer se funciona como a vida mesmo ou em % da vida, se alguem puder deixar mais claro isso)
---------------------------
</flags>
<attacks>
<attack name="melee" interval="2000" skill="100" attack="110"/>
<attack name="manadrain" interval="2000" chance="13" range="7" min="0" max="-120"/>
<attack name="fire" interval="2000" chance="30" range="7" radius="7" target="1" min="-150" max="-250">
<attribute key="shootEffect" value="fire"/>
<attribute key="areaEffect" value="firearea"/>
</attack>
Nessa parte iremos trabalhar as spells do monstro.
A parte destacada em negrito, é onde você coloca os ataques, ou seja, todo ataque novo que você quiser fazer OU TIRAR, terá que ser assim, e sempre terá de ser dentro do padrão, no caso eu retirar todos os ataques e deixar apenas um novo.
<attacks>
<attack name="melee" interval="2000" skill="100" attack="110"/>
</attack>
Dessa maneira o demon irá utilizar APENAS o melee skill, com um intervalo de 2000 milésimos, a parte e skill e attack basta pensar que ele é um player, vamos utilizar um exemplo.
<attack name="melee" interval="2000" skill="100" attack="25"/>
Isso equivale a um jogador com skill 100 utilizando uma arma com attack 25. (Por exemplo um paladino com spear)
<defenses armor="55" defense="55">
<defense name="healing" interval="2000" chance="15" min="130" max="240">
<attribute key="areaEffect" value="blueshimmer"/>
</defense>
<defense name="speed" interval="1000" chance="8" speedchange="290" duration="5000">
<attribute key="areaEffect" value="redshimmer"/>
</defense>
</defenses>
O critério utilizado acima nos ataques, também servem para buffs do monstro, por exemplo aqui em defense, você pode ver que ele tem uma chamada speed, que é um haste que o monstro usa para correr mais rapido. Mas esse não é o foco que irei abordar aqui.
A parte em negrito aborda a defesa do monstro, mesmo criterio utilizado acima no ataque, porém para defesa.
Agora, você queria adicionar uma spell de healing, correto?
então vamos lá
Peguei como exemplo a linha de código de um monstro do meu servidor, basta você inserir isso no seu código que estará tudo perfeito.
<defense name="healing" interval="1000" chance="25" min="500000" max="50000000">
Interval define o intervalo do chance, ou seja, a cada 1000 milésimos será sortiado com uma chance de 25 de o monstro healar (detalhe, se não for sortiado dentro da chance o monsto não irá healar) entre o valor min e max, e a próposito, estou falando sortiar, mas o mais correto seria dizer:
"Sortear um valor random", pois não há como definir o valor a ser sortiado (se não nem sequer seria um sorteio né?"
-------------------------------------
<elements>
<element physicalPercent="30"/>
<element energyPercent="50"/>
<element earthPercent="20"/>
<element icePercent="-15"/>
<element holyPercent="-15"/>
<element deathPercent="20"/>
</elements>
Essa parte é BEM SIMPLES, é a % de defesa do monstro contra danos magicos/fisicos:
Levando em conta os dados acima vamos lá:
<element physicalPercent="30"/>
O monstro tem uma defesa de 30% contra physical, ou seja, se você iria hitar 100 nele, o valor 100 será diminuido para 70, que será o seu hit final
<element icePercent="-15"/>
Aqui ja fica diferente.. DESTAQUE para o sinal de -, isso significa que o monstro É FRACO ao elemento ice, ou seja, você iria hitar 100?
Seu hit final vai ser 100 + 15% = 115 de dano
É essa formula para qualquer valor, por exemplo:
300 de dano (15% do valor é igual a 45), ou seja, 345 de dano de ice
-----------------------------
<immunities>
<immunity fire="1"/>
<immunity drown="1"/>
<immunity paralyze="1"/>
<immunity invisible="1"/>
</immunities>
Aqui são as imunidades do monstro, vamos lá, 1 por 1:
<immunity fire="1"/>
Significa que o monsto tem 100% de proteção a fogo, então não importa o que ele não toma dano de fogo.
<immunity drown="1"/>
Não me lembro o que é drown, se não me engano é andar embaixo da água, se for 0 o monstro iria perder vida (SE NÃO ME ENGANO)
<immunity paralyze="1"/>
Ao utilizar a paralise rune no monstro, isso define se ele será afetado ou não
<immunity invisible="1"/>
Define se o monstro irá ver invisbilidade (utana vid ou stealth ring)
Caso essa opção esteja marcado como 0, se você utilizar utana vid, o demon não irá lhe atacar por não te ver.
-----------------------
<summons maxSummons="1">
<summon name="fire elemental" interval="1000" chance="12"/>
</summons>
O demon é um monsto que sumona bixos, no caso aqui você define em MAXSUMMONS qual o limite de bixos que ele poderá sumonar, e em baixo qual o bixo propriamente dito que será sumonado, no caso você pode alterar o fire elemental para um rat se quiser.
------------------------
<voices interval="5000" chance="10">
<voice sentence="MUHAHAHAHA!" yell="1"/>
<voice sentence="Your soul will be mine!" yell="0"/>
</voices>
Deixei apenas as 2 opções para uma explicação mais objetiva, o primeiro em negrito é uma fala do monstro, porém está como yell=1, isso significa que quando ele falar, ele irá gritar na verdade, então será possivel ver essa fala dele de fora da tela.
A fala de baixo no caso, ja representa uma simples fala qualquer que só se pode ser vista estando na mesma tela do monstro em si.
-----------
~
Enfim..
Só restou explicar a ultima parte de loot, mas com tudo que ja expliquei acima, creio que você pegou uma base e isso não será necessário né?
hehe, espero que esse post tenha lhe ajudado, qualquer dúvida, basta perguntar, ajudarei no que for possivel.
-
augustomeneghetti recebeu reputação de matheus.agropassos em [PEDIDO] Como editar um monsterBom.. vamos começar por partes.
Vou dar um ctrl c + ctrl v em algumas partes e vou explicando passo a passo, vale lembrar que eu não manjo 100% pois nunca me preocupei com algumas coisas.. então o que eu tiver certeza vou deixar explicito, o que for uma hipotese para mim vou falar EU ACHO.
Vamos lá.
<monster name="Demon" nameDescription="a demon" race="fire" experience="6000" speed="275" manacost="10000">
Auto-explicativo. Utilize para mudar o nome do monstro.
<monster name="Demon" nameDescription="a demon" race="fire" experience="6000" speed="275" manacost="10000">
Serve para você escolher o que vai apareçer quanto você der look num monstro.. por exemplo você da look num demon.. vai apareçer "You se a demon".. ai se você quiser alterar isso, a vontade
<monster name="Demon" nameDescription="a demon" race="fire" experience="6000" speed="275" manacost="10000">
Raça propriamente dita, essa parte é simples de entender porém eu nunca parie para prestar atenção no que isso influencia, mas provavelmente deve influenciar em algo.
<monster name="Demon" nameDescription="a demon" race="fire" experience="6000" speed="275" manacost="10000">
Altere a experiencia do monstro aqui.. por exemplo, seu ot server é exp de 10x
Nesse caso um demon irá lhe dar 6000 de exp * 10, ficando então 60,000 de exp, se você alterar para 7000 a exp, irá dar 70,000 de exp o demon, você tem que levar em conta a exp como 1x elevado a rate do seu server, se você quer que um monstro de 10k de exp, você vai lá e põe 10k, e por seu server ser 10x ele vai dar 100k, algo que você não quer.. nesse caso utilize 1k de exp
<monster name="Demon" nameDescription="a demon" race="fire" experience="6000" speed="275" manacost="10000">
Velocidade propriamente dita do monstro, altere isso para faze-lo andar mais rapido/devagar, ou deixe em zero para o monstro ficar parado
<monster name="Demon" nameDescription="a demon" race="fire" experience="6000" speed="275" manacost="10000">
Provavelmente deve ser a mana necessária para sumonar o demon, mas calma lá.. ja vamos chegar num ponto onde definimos se o monstro é sumonavel ou não.
-----------------------------
<health now="8200" max="8200"/>
Aqui você define a health do monstro.. por exemplo
<health now="500" max="8200"/>
Se você fizer isso, o monstro vai ter um TOTAL de 8200 de HP, mas quando ele nascer, ele vai nascer com 500 de HP, ou seja, a barrinha de life dele vai estar no vermelho praticamente
-----------------------------
<look type="35" corpse="5995"/>
Aqui você define o sprite do seu monstro
Não lembro de cabeça.. mas vamos fingir que o citizen outfit é look type 100, você tem o looktype 35, e quer fazer um demon com outfit de citizen, você muda para 100, ou qualquer outro valor referente ao outfit que você procura.
<look type="35" corpse="5995"/>
Aqui você define qual será o sprite do seu monstro quando ele morrer.
Agora, vamos fazer algo mais divertido?
Vamos alterar o seguinte código:
" <look type="35" corpse="5995"/>"
Suponha-se que você quer utilizar o outfit citizen, mas dessa maneira você não pode definir as cores, e nem fazer um monstro com addon, então agora vou te ensinar como fazer isso
Insira no código as seguintes informações destacadas:
<look type="35" head="114" body="114" legs="0" feet="0" addons="3" corpse="5995"/>
Agora vamos as explicações:
<look type="35" head="114" body="114" legs="0" feet="0" addons="3" corpse="5995"/>
Define a cor do cabelo do seu monstro, porém você tem que definir com numeros, ja te ensino o macete para descobrir como conseguir esses valores
No caso, 114 representa o preto, então seu monsto terá cabelo preto, se você definir como 0, será cabelo branco.
<look type="35" head="114" body="114" legs="0" feet="0" addons="3" corpse="5995"/>
Mesma coisa do caso acima, porém para o peitoral do corpo.. e assim por diante
Basta você imaginar na ordem do Set outfit do próprio Tibia, quando você vai em ser outfit, temos as seguintes coisas:
Head = Head
Primary = Body
Secondary = Legs
Detail = feet
Entendeu?
Para definir os addons do seu monstro você editará a seguinte parte:
<look type="35" head="114" body="114" legs="0" feet="0" addons="3" corpse="5995"/>
Se você quiser que ele tenha APENAS o addon 1, deixe dessa maneira:
addons="1"
Para o addon 2:
addons="2"
Agora, você quer saber a melhor maneira de deixar o monstro como você quer? Simples, coloque seu ot server online, e pegue um char de teste, selecione nele o outfit com as cores e addons que você quer, e depois deslogue do char, feito isso abra o MYSQL (a versão que você utilizar), lá vá em editar players, se você utilizar o SQLite Studio assim como eu, logo a frente do nome do seu char de teste, vai ter as informações com o numero da cor e outfit que você selecionou
<targetchange interval="5000" chance="8"/>
Nessa parte você coloca um valor para definir a cada QUANTO TEMPO ele irá sorteiar baseado no valor ao lado (chance) se o monstro irá mudar seu alvo de um jogador para outro.
Na parte a seguir vamos definir algumas coisas utilizando o padrão Binário, mas ai você me pergunta o que é binário?
Simples, definição de verdadeiro e falso a partir de 0 e 1.
Para verdadeiro utilizaremos 1, para falso 0.
<flag summonable="0"/>
Define se é possivel um player normal sumonar o monstro através da magia "utevo res".. no caso está definido como não, não é possivel.
<flag attackable="1"/>
Define se é possivel UM JOGADOR atacar o monstro, por exemplo, se você definir como 0, ao tentar atacar o monstro vai ser impossivel.
<flag hostile="1"/>
Define se é um monstro hostil, ou simplificando, se estiver como 1 ele te ataca, mas se estiver como 0 ele seria um rabbit da vida, pode ser atacado mas não ataca de volta.
<flag illusionable="0"/>
Define se é possivel utilizar a magia "utevo res ina" no monstro.. ou seja, um player comum (mage) se transformar no monstro por um determinado tempo
<flag convinceable="0"/>
Mesma coisa do summonable PRATICAMENTE, porém é através de uma runa que existe no jogo, se você utilizar ela num monstro ele irá virar seu summon.
<flag pushable="0"/>
No caso, demons não são possiveis de arrastar, mas se você alterar para 1, será possivel arrastar seu demon.
<flag canpushitems="1"/>
Define se o monstro em si irá arrastar itens, no caso você tacou uma parcel na frente do bixo e saiu correndo, ele arrasta ela tirando-a do seu caminho.
<flag canpushcreatures="1"/>
Mesma coisa do item anterior, porém com criaturas, se uma criatura entrar na frente do seu monstro, ele irá arrasta-lá para chegar até você.
<flag targetdistance="1"/>
A distancia que você quer que o monstro fique do jogador, exemplo: Você quer que o demon ataque o jogador a 2 sqm's de distancia, basta alterar para 2 o valor.
<flag staticattack="90"/>
Não sei dizer o que fazer, se alguem souber, peço que poste.
<flag runonhealth="0"/>
Define a vida em que o monstro irá fugir de você (porém não sei dizer se funciona como a vida mesmo ou em % da vida, se alguem puder deixar mais claro isso)
---------------------------
</flags>
<attacks>
<attack name="melee" interval="2000" skill="100" attack="110"/>
<attack name="manadrain" interval="2000" chance="13" range="7" min="0" max="-120"/>
<attack name="fire" interval="2000" chance="30" range="7" radius="7" target="1" min="-150" max="-250">
<attribute key="shootEffect" value="fire"/>
<attribute key="areaEffect" value="firearea"/>
</attack>
Nessa parte iremos trabalhar as spells do monstro.
A parte destacada em negrito, é onde você coloca os ataques, ou seja, todo ataque novo que você quiser fazer OU TIRAR, terá que ser assim, e sempre terá de ser dentro do padrão, no caso eu retirar todos os ataques e deixar apenas um novo.
<attacks>
<attack name="melee" interval="2000" skill="100" attack="110"/>
</attack>
Dessa maneira o demon irá utilizar APENAS o melee skill, com um intervalo de 2000 milésimos, a parte e skill e attack basta pensar que ele é um player, vamos utilizar um exemplo.
<attack name="melee" interval="2000" skill="100" attack="25"/>
Isso equivale a um jogador com skill 100 utilizando uma arma com attack 25. (Por exemplo um paladino com spear)
<defenses armor="55" defense="55">
<defense name="healing" interval="2000" chance="15" min="130" max="240">
<attribute key="areaEffect" value="blueshimmer"/>
</defense>
<defense name="speed" interval="1000" chance="8" speedchange="290" duration="5000">
<attribute key="areaEffect" value="redshimmer"/>
</defense>
</defenses>
O critério utilizado acima nos ataques, também servem para buffs do monstro, por exemplo aqui em defense, você pode ver que ele tem uma chamada speed, que é um haste que o monstro usa para correr mais rapido. Mas esse não é o foco que irei abordar aqui.
A parte em negrito aborda a defesa do monstro, mesmo criterio utilizado acima no ataque, porém para defesa.
Agora, você queria adicionar uma spell de healing, correto?
então vamos lá
Peguei como exemplo a linha de código de um monstro do meu servidor, basta você inserir isso no seu código que estará tudo perfeito.
<defense name="healing" interval="1000" chance="25" min="500000" max="50000000">
Interval define o intervalo do chance, ou seja, a cada 1000 milésimos será sortiado com uma chance de 25 de o monstro healar (detalhe, se não for sortiado dentro da chance o monsto não irá healar) entre o valor min e max, e a próposito, estou falando sortiar, mas o mais correto seria dizer:
"Sortear um valor random", pois não há como definir o valor a ser sortiado (se não nem sequer seria um sorteio né?"
-------------------------------------
<elements>
<element physicalPercent="30"/>
<element energyPercent="50"/>
<element earthPercent="20"/>
<element icePercent="-15"/>
<element holyPercent="-15"/>
<element deathPercent="20"/>
</elements>
Essa parte é BEM SIMPLES, é a % de defesa do monstro contra danos magicos/fisicos:
Levando em conta os dados acima vamos lá:
<element physicalPercent="30"/>
O monstro tem uma defesa de 30% contra physical, ou seja, se você iria hitar 100 nele, o valor 100 será diminuido para 70, que será o seu hit final
<element icePercent="-15"/>
Aqui ja fica diferente.. DESTAQUE para o sinal de -, isso significa que o monstro É FRACO ao elemento ice, ou seja, você iria hitar 100?
Seu hit final vai ser 100 + 15% = 115 de dano
É essa formula para qualquer valor, por exemplo:
300 de dano (15% do valor é igual a 45), ou seja, 345 de dano de ice
-----------------------------
<immunities>
<immunity fire="1"/>
<immunity drown="1"/>
<immunity paralyze="1"/>
<immunity invisible="1"/>
</immunities>
Aqui são as imunidades do monstro, vamos lá, 1 por 1:
<immunity fire="1"/>
Significa que o monsto tem 100% de proteção a fogo, então não importa o que ele não toma dano de fogo.
<immunity drown="1"/>
Não me lembro o que é drown, se não me engano é andar embaixo da água, se for 0 o monstro iria perder vida (SE NÃO ME ENGANO)
<immunity paralyze="1"/>
Ao utilizar a paralise rune no monstro, isso define se ele será afetado ou não
<immunity invisible="1"/>
Define se o monstro irá ver invisbilidade (utana vid ou stealth ring)
Caso essa opção esteja marcado como 0, se você utilizar utana vid, o demon não irá lhe atacar por não te ver.
-----------------------
<summons maxSummons="1">
<summon name="fire elemental" interval="1000" chance="12"/>
</summons>
O demon é um monsto que sumona bixos, no caso aqui você define em MAXSUMMONS qual o limite de bixos que ele poderá sumonar, e em baixo qual o bixo propriamente dito que será sumonado, no caso você pode alterar o fire elemental para um rat se quiser.
------------------------
<voices interval="5000" chance="10">
<voice sentence="MUHAHAHAHA!" yell="1"/>
<voice sentence="Your soul will be mine!" yell="0"/>
</voices>
Deixei apenas as 2 opções para uma explicação mais objetiva, o primeiro em negrito é uma fala do monstro, porém está como yell=1, isso significa que quando ele falar, ele irá gritar na verdade, então será possivel ver essa fala dele de fora da tela.
A fala de baixo no caso, ja representa uma simples fala qualquer que só se pode ser vista estando na mesma tela do monstro em si.
-----------
~
Enfim..
Só restou explicar a ultima parte de loot, mas com tudo que ja expliquei acima, creio que você pegou uma base e isso não será necessário né?
hehe, espero que esse post tenha lhe ajudado, qualquer dúvida, basta perguntar, ajudarei no que for possivel.
-
augustomeneghetti recebeu reputação de Igorzerah em [PEDIDO] Como editar um monsterBom.. vamos começar por partes.
Vou dar um ctrl c + ctrl v em algumas partes e vou explicando passo a passo, vale lembrar que eu não manjo 100% pois nunca me preocupei com algumas coisas.. então o que eu tiver certeza vou deixar explicito, o que for uma hipotese para mim vou falar EU ACHO.
Vamos lá.
<monster name="Demon" nameDescription="a demon" race="fire" experience="6000" speed="275" manacost="10000">
Auto-explicativo. Utilize para mudar o nome do monstro.
<monster name="Demon" nameDescription="a demon" race="fire" experience="6000" speed="275" manacost="10000">
Serve para você escolher o que vai apareçer quanto você der look num monstro.. por exemplo você da look num demon.. vai apareçer "You se a demon".. ai se você quiser alterar isso, a vontade
<monster name="Demon" nameDescription="a demon" race="fire" experience="6000" speed="275" manacost="10000">
Raça propriamente dita, essa parte é simples de entender porém eu nunca parie para prestar atenção no que isso influencia, mas provavelmente deve influenciar em algo.
<monster name="Demon" nameDescription="a demon" race="fire" experience="6000" speed="275" manacost="10000">
Altere a experiencia do monstro aqui.. por exemplo, seu ot server é exp de 10x
Nesse caso um demon irá lhe dar 6000 de exp * 10, ficando então 60,000 de exp, se você alterar para 7000 a exp, irá dar 70,000 de exp o demon, você tem que levar em conta a exp como 1x elevado a rate do seu server, se você quer que um monstro de 10k de exp, você vai lá e põe 10k, e por seu server ser 10x ele vai dar 100k, algo que você não quer.. nesse caso utilize 1k de exp
<monster name="Demon" nameDescription="a demon" race="fire" experience="6000" speed="275" manacost="10000">
Velocidade propriamente dita do monstro, altere isso para faze-lo andar mais rapido/devagar, ou deixe em zero para o monstro ficar parado
<monster name="Demon" nameDescription="a demon" race="fire" experience="6000" speed="275" manacost="10000">
Provavelmente deve ser a mana necessária para sumonar o demon, mas calma lá.. ja vamos chegar num ponto onde definimos se o monstro é sumonavel ou não.
-----------------------------
<health now="8200" max="8200"/>
Aqui você define a health do monstro.. por exemplo
<health now="500" max="8200"/>
Se você fizer isso, o monstro vai ter um TOTAL de 8200 de HP, mas quando ele nascer, ele vai nascer com 500 de HP, ou seja, a barrinha de life dele vai estar no vermelho praticamente
-----------------------------
<look type="35" corpse="5995"/>
Aqui você define o sprite do seu monstro
Não lembro de cabeça.. mas vamos fingir que o citizen outfit é look type 100, você tem o looktype 35, e quer fazer um demon com outfit de citizen, você muda para 100, ou qualquer outro valor referente ao outfit que você procura.
<look type="35" corpse="5995"/>
Aqui você define qual será o sprite do seu monstro quando ele morrer.
Agora, vamos fazer algo mais divertido?
Vamos alterar o seguinte código:
" <look type="35" corpse="5995"/>"
Suponha-se que você quer utilizar o outfit citizen, mas dessa maneira você não pode definir as cores, e nem fazer um monstro com addon, então agora vou te ensinar como fazer isso
Insira no código as seguintes informações destacadas:
<look type="35" head="114" body="114" legs="0" feet="0" addons="3" corpse="5995"/>
Agora vamos as explicações:
<look type="35" head="114" body="114" legs="0" feet="0" addons="3" corpse="5995"/>
Define a cor do cabelo do seu monstro, porém você tem que definir com numeros, ja te ensino o macete para descobrir como conseguir esses valores
No caso, 114 representa o preto, então seu monsto terá cabelo preto, se você definir como 0, será cabelo branco.
<look type="35" head="114" body="114" legs="0" feet="0" addons="3" corpse="5995"/>
Mesma coisa do caso acima, porém para o peitoral do corpo.. e assim por diante
Basta você imaginar na ordem do Set outfit do próprio Tibia, quando você vai em ser outfit, temos as seguintes coisas:
Head = Head
Primary = Body
Secondary = Legs
Detail = feet
Entendeu?
Para definir os addons do seu monstro você editará a seguinte parte:
<look type="35" head="114" body="114" legs="0" feet="0" addons="3" corpse="5995"/>
Se você quiser que ele tenha APENAS o addon 1, deixe dessa maneira:
addons="1"
Para o addon 2:
addons="2"
Agora, você quer saber a melhor maneira de deixar o monstro como você quer? Simples, coloque seu ot server online, e pegue um char de teste, selecione nele o outfit com as cores e addons que você quer, e depois deslogue do char, feito isso abra o MYSQL (a versão que você utilizar), lá vá em editar players, se você utilizar o SQLite Studio assim como eu, logo a frente do nome do seu char de teste, vai ter as informações com o numero da cor e outfit que você selecionou
<targetchange interval="5000" chance="8"/>
Nessa parte você coloca um valor para definir a cada QUANTO TEMPO ele irá sorteiar baseado no valor ao lado (chance) se o monstro irá mudar seu alvo de um jogador para outro.
Na parte a seguir vamos definir algumas coisas utilizando o padrão Binário, mas ai você me pergunta o que é binário?
Simples, definição de verdadeiro e falso a partir de 0 e 1.
Para verdadeiro utilizaremos 1, para falso 0.
<flag summonable="0"/>
Define se é possivel um player normal sumonar o monstro através da magia "utevo res".. no caso está definido como não, não é possivel.
<flag attackable="1"/>
Define se é possivel UM JOGADOR atacar o monstro, por exemplo, se você definir como 0, ao tentar atacar o monstro vai ser impossivel.
<flag hostile="1"/>
Define se é um monstro hostil, ou simplificando, se estiver como 1 ele te ataca, mas se estiver como 0 ele seria um rabbit da vida, pode ser atacado mas não ataca de volta.
<flag illusionable="0"/>
Define se é possivel utilizar a magia "utevo res ina" no monstro.. ou seja, um player comum (mage) se transformar no monstro por um determinado tempo
<flag convinceable="0"/>
Mesma coisa do summonable PRATICAMENTE, porém é através de uma runa que existe no jogo, se você utilizar ela num monstro ele irá virar seu summon.
<flag pushable="0"/>
No caso, demons não são possiveis de arrastar, mas se você alterar para 1, será possivel arrastar seu demon.
<flag canpushitems="1"/>
Define se o monstro em si irá arrastar itens, no caso você tacou uma parcel na frente do bixo e saiu correndo, ele arrasta ela tirando-a do seu caminho.
<flag canpushcreatures="1"/>
Mesma coisa do item anterior, porém com criaturas, se uma criatura entrar na frente do seu monstro, ele irá arrasta-lá para chegar até você.
<flag targetdistance="1"/>
A distancia que você quer que o monstro fique do jogador, exemplo: Você quer que o demon ataque o jogador a 2 sqm's de distancia, basta alterar para 2 o valor.
<flag staticattack="90"/>
Não sei dizer o que fazer, se alguem souber, peço que poste.
<flag runonhealth="0"/>
Define a vida em que o monstro irá fugir de você (porém não sei dizer se funciona como a vida mesmo ou em % da vida, se alguem puder deixar mais claro isso)
---------------------------
</flags>
<attacks>
<attack name="melee" interval="2000" skill="100" attack="110"/>
<attack name="manadrain" interval="2000" chance="13" range="7" min="0" max="-120"/>
<attack name="fire" interval="2000" chance="30" range="7" radius="7" target="1" min="-150" max="-250">
<attribute key="shootEffect" value="fire"/>
<attribute key="areaEffect" value="firearea"/>
</attack>
Nessa parte iremos trabalhar as spells do monstro.
A parte destacada em negrito, é onde você coloca os ataques, ou seja, todo ataque novo que você quiser fazer OU TIRAR, terá que ser assim, e sempre terá de ser dentro do padrão, no caso eu retirar todos os ataques e deixar apenas um novo.
<attacks>
<attack name="melee" interval="2000" skill="100" attack="110"/>
</attack>
Dessa maneira o demon irá utilizar APENAS o melee skill, com um intervalo de 2000 milésimos, a parte e skill e attack basta pensar que ele é um player, vamos utilizar um exemplo.
<attack name="melee" interval="2000" skill="100" attack="25"/>
Isso equivale a um jogador com skill 100 utilizando uma arma com attack 25. (Por exemplo um paladino com spear)
<defenses armor="55" defense="55">
<defense name="healing" interval="2000" chance="15" min="130" max="240">
<attribute key="areaEffect" value="blueshimmer"/>
</defense>
<defense name="speed" interval="1000" chance="8" speedchange="290" duration="5000">
<attribute key="areaEffect" value="redshimmer"/>
</defense>
</defenses>
O critério utilizado acima nos ataques, também servem para buffs do monstro, por exemplo aqui em defense, você pode ver que ele tem uma chamada speed, que é um haste que o monstro usa para correr mais rapido. Mas esse não é o foco que irei abordar aqui.
A parte em negrito aborda a defesa do monstro, mesmo criterio utilizado acima no ataque, porém para defesa.
Agora, você queria adicionar uma spell de healing, correto?
então vamos lá
Peguei como exemplo a linha de código de um monstro do meu servidor, basta você inserir isso no seu código que estará tudo perfeito.
<defense name="healing" interval="1000" chance="25" min="500000" max="50000000">
Interval define o intervalo do chance, ou seja, a cada 1000 milésimos será sortiado com uma chance de 25 de o monstro healar (detalhe, se não for sortiado dentro da chance o monsto não irá healar) entre o valor min e max, e a próposito, estou falando sortiar, mas o mais correto seria dizer:
"Sortear um valor random", pois não há como definir o valor a ser sortiado (se não nem sequer seria um sorteio né?"
-------------------------------------
<elements>
<element physicalPercent="30"/>
<element energyPercent="50"/>
<element earthPercent="20"/>
<element icePercent="-15"/>
<element holyPercent="-15"/>
<element deathPercent="20"/>
</elements>
Essa parte é BEM SIMPLES, é a % de defesa do monstro contra danos magicos/fisicos:
Levando em conta os dados acima vamos lá:
<element physicalPercent="30"/>
O monstro tem uma defesa de 30% contra physical, ou seja, se você iria hitar 100 nele, o valor 100 será diminuido para 70, que será o seu hit final
<element icePercent="-15"/>
Aqui ja fica diferente.. DESTAQUE para o sinal de -, isso significa que o monstro É FRACO ao elemento ice, ou seja, você iria hitar 100?
Seu hit final vai ser 100 + 15% = 115 de dano
É essa formula para qualquer valor, por exemplo:
300 de dano (15% do valor é igual a 45), ou seja, 345 de dano de ice
-----------------------------
<immunities>
<immunity fire="1"/>
<immunity drown="1"/>
<immunity paralyze="1"/>
<immunity invisible="1"/>
</immunities>
Aqui são as imunidades do monstro, vamos lá, 1 por 1:
<immunity fire="1"/>
Significa que o monsto tem 100% de proteção a fogo, então não importa o que ele não toma dano de fogo.
<immunity drown="1"/>
Não me lembro o que é drown, se não me engano é andar embaixo da água, se for 0 o monstro iria perder vida (SE NÃO ME ENGANO)
<immunity paralyze="1"/>
Ao utilizar a paralise rune no monstro, isso define se ele será afetado ou não
<immunity invisible="1"/>
Define se o monstro irá ver invisbilidade (utana vid ou stealth ring)
Caso essa opção esteja marcado como 0, se você utilizar utana vid, o demon não irá lhe atacar por não te ver.
-----------------------
<summons maxSummons="1">
<summon name="fire elemental" interval="1000" chance="12"/>
</summons>
O demon é um monsto que sumona bixos, no caso aqui você define em MAXSUMMONS qual o limite de bixos que ele poderá sumonar, e em baixo qual o bixo propriamente dito que será sumonado, no caso você pode alterar o fire elemental para um rat se quiser.
------------------------
<voices interval="5000" chance="10">
<voice sentence="MUHAHAHAHA!" yell="1"/>
<voice sentence="Your soul will be mine!" yell="0"/>
</voices>
Deixei apenas as 2 opções para uma explicação mais objetiva, o primeiro em negrito é uma fala do monstro, porém está como yell=1, isso significa que quando ele falar, ele irá gritar na verdade, então será possivel ver essa fala dele de fora da tela.
A fala de baixo no caso, ja representa uma simples fala qualquer que só se pode ser vista estando na mesma tela do monstro em si.
-----------
~
Enfim..
Só restou explicar a ultima parte de loot, mas com tudo que ja expliquei acima, creio que você pegou uma base e isso não será necessário né?
hehe, espero que esse post tenha lhe ajudado, qualquer dúvida, basta perguntar, ajudarei no que for possivel.
-
augustomeneghetti recebeu reputação de churupetinha em [PEDIDO] Como editar um monsterBom.. vamos começar por partes.
Vou dar um ctrl c + ctrl v em algumas partes e vou explicando passo a passo, vale lembrar que eu não manjo 100% pois nunca me preocupei com algumas coisas.. então o que eu tiver certeza vou deixar explicito, o que for uma hipotese para mim vou falar EU ACHO.
Vamos lá.
<monster name="Demon" nameDescription="a demon" race="fire" experience="6000" speed="275" manacost="10000">
Auto-explicativo. Utilize para mudar o nome do monstro.
<monster name="Demon" nameDescription="a demon" race="fire" experience="6000" speed="275" manacost="10000">
Serve para você escolher o que vai apareçer quanto você der look num monstro.. por exemplo você da look num demon.. vai apareçer "You se a demon".. ai se você quiser alterar isso, a vontade
<monster name="Demon" nameDescription="a demon" race="fire" experience="6000" speed="275" manacost="10000">
Raça propriamente dita, essa parte é simples de entender porém eu nunca parie para prestar atenção no que isso influencia, mas provavelmente deve influenciar em algo.
<monster name="Demon" nameDescription="a demon" race="fire" experience="6000" speed="275" manacost="10000">
Altere a experiencia do monstro aqui.. por exemplo, seu ot server é exp de 10x
Nesse caso um demon irá lhe dar 6000 de exp * 10, ficando então 60,000 de exp, se você alterar para 7000 a exp, irá dar 70,000 de exp o demon, você tem que levar em conta a exp como 1x elevado a rate do seu server, se você quer que um monstro de 10k de exp, você vai lá e põe 10k, e por seu server ser 10x ele vai dar 100k, algo que você não quer.. nesse caso utilize 1k de exp
<monster name="Demon" nameDescription="a demon" race="fire" experience="6000" speed="275" manacost="10000">
Velocidade propriamente dita do monstro, altere isso para faze-lo andar mais rapido/devagar, ou deixe em zero para o monstro ficar parado
<monster name="Demon" nameDescription="a demon" race="fire" experience="6000" speed="275" manacost="10000">
Provavelmente deve ser a mana necessária para sumonar o demon, mas calma lá.. ja vamos chegar num ponto onde definimos se o monstro é sumonavel ou não.
-----------------------------
<health now="8200" max="8200"/>
Aqui você define a health do monstro.. por exemplo
<health now="500" max="8200"/>
Se você fizer isso, o monstro vai ter um TOTAL de 8200 de HP, mas quando ele nascer, ele vai nascer com 500 de HP, ou seja, a barrinha de life dele vai estar no vermelho praticamente
-----------------------------
<look type="35" corpse="5995"/>
Aqui você define o sprite do seu monstro
Não lembro de cabeça.. mas vamos fingir que o citizen outfit é look type 100, você tem o looktype 35, e quer fazer um demon com outfit de citizen, você muda para 100, ou qualquer outro valor referente ao outfit que você procura.
<look type="35" corpse="5995"/>
Aqui você define qual será o sprite do seu monstro quando ele morrer.
Agora, vamos fazer algo mais divertido?
Vamos alterar o seguinte código:
" <look type="35" corpse="5995"/>"
Suponha-se que você quer utilizar o outfit citizen, mas dessa maneira você não pode definir as cores, e nem fazer um monstro com addon, então agora vou te ensinar como fazer isso
Insira no código as seguintes informações destacadas:
<look type="35" head="114" body="114" legs="0" feet="0" addons="3" corpse="5995"/>
Agora vamos as explicações:
<look type="35" head="114" body="114" legs="0" feet="0" addons="3" corpse="5995"/>
Define a cor do cabelo do seu monstro, porém você tem que definir com numeros, ja te ensino o macete para descobrir como conseguir esses valores
No caso, 114 representa o preto, então seu monsto terá cabelo preto, se você definir como 0, será cabelo branco.
<look type="35" head="114" body="114" legs="0" feet="0" addons="3" corpse="5995"/>
Mesma coisa do caso acima, porém para o peitoral do corpo.. e assim por diante
Basta você imaginar na ordem do Set outfit do próprio Tibia, quando você vai em ser outfit, temos as seguintes coisas:
Head = Head
Primary = Body
Secondary = Legs
Detail = feet
Entendeu?
Para definir os addons do seu monstro você editará a seguinte parte:
<look type="35" head="114" body="114" legs="0" feet="0" addons="3" corpse="5995"/>
Se você quiser que ele tenha APENAS o addon 1, deixe dessa maneira:
addons="1"
Para o addon 2:
addons="2"
Agora, você quer saber a melhor maneira de deixar o monstro como você quer? Simples, coloque seu ot server online, e pegue um char de teste, selecione nele o outfit com as cores e addons que você quer, e depois deslogue do char, feito isso abra o MYSQL (a versão que você utilizar), lá vá em editar players, se você utilizar o SQLite Studio assim como eu, logo a frente do nome do seu char de teste, vai ter as informações com o numero da cor e outfit que você selecionou
<targetchange interval="5000" chance="8"/>
Nessa parte você coloca um valor para definir a cada QUANTO TEMPO ele irá sorteiar baseado no valor ao lado (chance) se o monstro irá mudar seu alvo de um jogador para outro.
Na parte a seguir vamos definir algumas coisas utilizando o padrão Binário, mas ai você me pergunta o que é binário?
Simples, definição de verdadeiro e falso a partir de 0 e 1.
Para verdadeiro utilizaremos 1, para falso 0.
<flag summonable="0"/>
Define se é possivel um player normal sumonar o monstro através da magia "utevo res".. no caso está definido como não, não é possivel.
<flag attackable="1"/>
Define se é possivel UM JOGADOR atacar o monstro, por exemplo, se você definir como 0, ao tentar atacar o monstro vai ser impossivel.
<flag hostile="1"/>
Define se é um monstro hostil, ou simplificando, se estiver como 1 ele te ataca, mas se estiver como 0 ele seria um rabbit da vida, pode ser atacado mas não ataca de volta.
<flag illusionable="0"/>
Define se é possivel utilizar a magia "utevo res ina" no monstro.. ou seja, um player comum (mage) se transformar no monstro por um determinado tempo
<flag convinceable="0"/>
Mesma coisa do summonable PRATICAMENTE, porém é através de uma runa que existe no jogo, se você utilizar ela num monstro ele irá virar seu summon.
<flag pushable="0"/>
No caso, demons não são possiveis de arrastar, mas se você alterar para 1, será possivel arrastar seu demon.
<flag canpushitems="1"/>
Define se o monstro em si irá arrastar itens, no caso você tacou uma parcel na frente do bixo e saiu correndo, ele arrasta ela tirando-a do seu caminho.
<flag canpushcreatures="1"/>
Mesma coisa do item anterior, porém com criaturas, se uma criatura entrar na frente do seu monstro, ele irá arrasta-lá para chegar até você.
<flag targetdistance="1"/>
A distancia que você quer que o monstro fique do jogador, exemplo: Você quer que o demon ataque o jogador a 2 sqm's de distancia, basta alterar para 2 o valor.
<flag staticattack="90"/>
Não sei dizer o que fazer, se alguem souber, peço que poste.
<flag runonhealth="0"/>
Define a vida em que o monstro irá fugir de você (porém não sei dizer se funciona como a vida mesmo ou em % da vida, se alguem puder deixar mais claro isso)
---------------------------
</flags>
<attacks>
<attack name="melee" interval="2000" skill="100" attack="110"/>
<attack name="manadrain" interval="2000" chance="13" range="7" min="0" max="-120"/>
<attack name="fire" interval="2000" chance="30" range="7" radius="7" target="1" min="-150" max="-250">
<attribute key="shootEffect" value="fire"/>
<attribute key="areaEffect" value="firearea"/>
</attack>
Nessa parte iremos trabalhar as spells do monstro.
A parte destacada em negrito, é onde você coloca os ataques, ou seja, todo ataque novo que você quiser fazer OU TIRAR, terá que ser assim, e sempre terá de ser dentro do padrão, no caso eu retirar todos os ataques e deixar apenas um novo.
<attacks>
<attack name="melee" interval="2000" skill="100" attack="110"/>
</attack>
Dessa maneira o demon irá utilizar APENAS o melee skill, com um intervalo de 2000 milésimos, a parte e skill e attack basta pensar que ele é um player, vamos utilizar um exemplo.
<attack name="melee" interval="2000" skill="100" attack="25"/>
Isso equivale a um jogador com skill 100 utilizando uma arma com attack 25. (Por exemplo um paladino com spear)
<defenses armor="55" defense="55">
<defense name="healing" interval="2000" chance="15" min="130" max="240">
<attribute key="areaEffect" value="blueshimmer"/>
</defense>
<defense name="speed" interval="1000" chance="8" speedchange="290" duration="5000">
<attribute key="areaEffect" value="redshimmer"/>
</defense>
</defenses>
O critério utilizado acima nos ataques, também servem para buffs do monstro, por exemplo aqui em defense, você pode ver que ele tem uma chamada speed, que é um haste que o monstro usa para correr mais rapido. Mas esse não é o foco que irei abordar aqui.
A parte em negrito aborda a defesa do monstro, mesmo criterio utilizado acima no ataque, porém para defesa.
Agora, você queria adicionar uma spell de healing, correto?
então vamos lá
Peguei como exemplo a linha de código de um monstro do meu servidor, basta você inserir isso no seu código que estará tudo perfeito.
<defense name="healing" interval="1000" chance="25" min="500000" max="50000000">
Interval define o intervalo do chance, ou seja, a cada 1000 milésimos será sortiado com uma chance de 25 de o monstro healar (detalhe, se não for sortiado dentro da chance o monsto não irá healar) entre o valor min e max, e a próposito, estou falando sortiar, mas o mais correto seria dizer:
"Sortear um valor random", pois não há como definir o valor a ser sortiado (se não nem sequer seria um sorteio né?"
-------------------------------------
<elements>
<element physicalPercent="30"/>
<element energyPercent="50"/>
<element earthPercent="20"/>
<element icePercent="-15"/>
<element holyPercent="-15"/>
<element deathPercent="20"/>
</elements>
Essa parte é BEM SIMPLES, é a % de defesa do monstro contra danos magicos/fisicos:
Levando em conta os dados acima vamos lá:
<element physicalPercent="30"/>
O monstro tem uma defesa de 30% contra physical, ou seja, se você iria hitar 100 nele, o valor 100 será diminuido para 70, que será o seu hit final
<element icePercent="-15"/>
Aqui ja fica diferente.. DESTAQUE para o sinal de -, isso significa que o monstro É FRACO ao elemento ice, ou seja, você iria hitar 100?
Seu hit final vai ser 100 + 15% = 115 de dano
É essa formula para qualquer valor, por exemplo:
300 de dano (15% do valor é igual a 45), ou seja, 345 de dano de ice
-----------------------------
<immunities>
<immunity fire="1"/>
<immunity drown="1"/>
<immunity paralyze="1"/>
<immunity invisible="1"/>
</immunities>
Aqui são as imunidades do monstro, vamos lá, 1 por 1:
<immunity fire="1"/>
Significa que o monsto tem 100% de proteção a fogo, então não importa o que ele não toma dano de fogo.
<immunity drown="1"/>
Não me lembro o que é drown, se não me engano é andar embaixo da água, se for 0 o monstro iria perder vida (SE NÃO ME ENGANO)
<immunity paralyze="1"/>
Ao utilizar a paralise rune no monstro, isso define se ele será afetado ou não
<immunity invisible="1"/>
Define se o monstro irá ver invisbilidade (utana vid ou stealth ring)
Caso essa opção esteja marcado como 0, se você utilizar utana vid, o demon não irá lhe atacar por não te ver.
-----------------------
<summons maxSummons="1">
<summon name="fire elemental" interval="1000" chance="12"/>
</summons>
O demon é um monsto que sumona bixos, no caso aqui você define em MAXSUMMONS qual o limite de bixos que ele poderá sumonar, e em baixo qual o bixo propriamente dito que será sumonado, no caso você pode alterar o fire elemental para um rat se quiser.
------------------------
<voices interval="5000" chance="10">
<voice sentence="MUHAHAHAHA!" yell="1"/>
<voice sentence="Your soul will be mine!" yell="0"/>
</voices>
Deixei apenas as 2 opções para uma explicação mais objetiva, o primeiro em negrito é uma fala do monstro, porém está como yell=1, isso significa que quando ele falar, ele irá gritar na verdade, então será possivel ver essa fala dele de fora da tela.
A fala de baixo no caso, ja representa uma simples fala qualquer que só se pode ser vista estando na mesma tela do monstro em si.
-----------
~
Enfim..
Só restou explicar a ultima parte de loot, mas com tudo que ja expliquei acima, creio que você pegou uma base e isso não será necessário né?
hehe, espero que esse post tenha lhe ajudado, qualquer dúvida, basta perguntar, ajudarei no que for possivel.
-
augustomeneghetti recebeu reputação de isex em NPC de PremiumPrimeiramente, gostaria de dizer que eu estava procurando um npc similar a este por ai.. mas infelizmente não encontrei, então decidi pegar algum parecido e editar a meu gosto
No final do tópico vou explicar mais algumas coisas.. enfim, vamos lá
Essa é a parte que você irá colocar dentro do XML.
<npc name="Max" script="data/npc/scripts/max.lua" walkinterval="2000" floorchange="0"> <health now="100" max="100"/> <look type="132" head="94" body="114" legs="86" feet="0" addons="3"/> <parameters> <parameter key="message_greet" value="Seja bem vindo |PLAYERNAME|, estaria interessado em adquirir uma {premium}?"/> <parameter key="message_walkaway" value="Cuide-se, |PLAYERNAME|."/> <parameter key="message_farewell" value="Tenha cuidado, |PLAYERNAME|."/> </parameters> </npc> E isso aqui você irá jogar dentro do arquivo .lua que você irá criar.
local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) local talkState = {} function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end function onThink() npcHandler:onThink() end function creatureSayCallback(cid, type, msg) if(not npcHandler:isFocused(cid)) then return false end local talkUser = NPCHANDLER_CONVbehavior == CONVERSATION_DEFAULT and 0 or cid -- Conversa Jogador/NPC if(msgcontains(msg, 'valor')) then selfSay('Eu posso lhe dar 3 dias de premium por 100,000 gold coins.', cid) elseif(msgcontains(msg, 'premium') or msgcontains(msg, 'Premium')) then selfSay('Você gostaria de comprar 3 dias de premium?', cid) talkState[talkUser] = 1 -- Confirmação da Compra elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 1) then if(doPlayerRemoveItem(cid, 2160, 10) == true) then selfSay('Muito bem! Aproveite!', cid) doPlayerAddPremiumDays(cid, 3) talkState[talkUser] = 0 elseif(doPlayerRemoveItem(cid, 2152, 1000) == true) then selfSay('Muito bem! Aproveite!', cid) doPlayerAddPremiumDays(cid, 3) talkState[talkUser] = 0 elseif(doPlayerRemoveItem(cid, 2148, 100000) == true) then selfSay('Muito bem! Aproveite!', cid) doPlayerAddPremiumDays(cid, 3) talkState[talkUser] = 0 else selfSay('Desculpe, você não tem o {valor} necessário parar comprar uma premium.', cid) talkState[talkUser] = 0 end end return TRUE end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) Agora vamos as explicações.. Esse código em si eu peguei aqui no próprio TK de um outro usuário não me recordo qual pois fechei a página .. então os créditos vão para ele.. se quiser se manifestar aqui na página, sinta-se livre
Mas o código não fazia exatamente o que eu queria.. pois era necessário que o player tive-se APENAS crystal coins com ele.. caso ele tive-se o valor da premium em platinum coins ou gold que fosse, o NPC não aceitava.. então eu editei o NPC para checar se o jogador tem o valor necessário em qualquer um dos 3 tipos de dinheiro (crystal/platinum/gold)
Agora.. isso é um script tão simples.. mas porque se preocupar com algo assim? Depende do tipo de servidor que você está fazendo.. eu estou criando um OT voltando para o RPG, onde não será possivel trocar gold para platinum e talz.. quero fazer algo diferente.. e se o jogador esqueçer de trocar o dinheiro no banco por exemplo? Ele iria ter que andar um monte denovo para poder apenas trocar.. esse é o intuito do meu NPC, fazer com que problemas como esse não venham a aconteçer
Fora isso.. eu adicionei uma fala de Bye para o nome (detesto a fala padrão deles) que pode ser editada, e uma fala para quando o player andar para longe do npc.
No mais mesmo é só isso, algo simples.. pode ser inútil para muitos, ainda mais que hoje em dia ninguem se interessa em fazer um ot que venda premium pelo NPC ao invés do comando !buypremium.. mas se houver alguem que se interesse, espero que esse tópico seja de grande ajuda
-
augustomeneghetti recebeu reputação de Jpeedro em [PEDIDO] Como editar um monsterBom.. vamos começar por partes.
Vou dar um ctrl c + ctrl v em algumas partes e vou explicando passo a passo, vale lembrar que eu não manjo 100% pois nunca me preocupei com algumas coisas.. então o que eu tiver certeza vou deixar explicito, o que for uma hipotese para mim vou falar EU ACHO.
Vamos lá.
<monster name="Demon" nameDescription="a demon" race="fire" experience="6000" speed="275" manacost="10000">
Auto-explicativo. Utilize para mudar o nome do monstro.
<monster name="Demon" nameDescription="a demon" race="fire" experience="6000" speed="275" manacost="10000">
Serve para você escolher o que vai apareçer quanto você der look num monstro.. por exemplo você da look num demon.. vai apareçer "You se a demon".. ai se você quiser alterar isso, a vontade
<monster name="Demon" nameDescription="a demon" race="fire" experience="6000" speed="275" manacost="10000">
Raça propriamente dita, essa parte é simples de entender porém eu nunca parie para prestar atenção no que isso influencia, mas provavelmente deve influenciar em algo.
<monster name="Demon" nameDescription="a demon" race="fire" experience="6000" speed="275" manacost="10000">
Altere a experiencia do monstro aqui.. por exemplo, seu ot server é exp de 10x
Nesse caso um demon irá lhe dar 6000 de exp * 10, ficando então 60,000 de exp, se você alterar para 7000 a exp, irá dar 70,000 de exp o demon, você tem que levar em conta a exp como 1x elevado a rate do seu server, se você quer que um monstro de 10k de exp, você vai lá e põe 10k, e por seu server ser 10x ele vai dar 100k, algo que você não quer.. nesse caso utilize 1k de exp
<monster name="Demon" nameDescription="a demon" race="fire" experience="6000" speed="275" manacost="10000">
Velocidade propriamente dita do monstro, altere isso para faze-lo andar mais rapido/devagar, ou deixe em zero para o monstro ficar parado
<monster name="Demon" nameDescription="a demon" race="fire" experience="6000" speed="275" manacost="10000">
Provavelmente deve ser a mana necessária para sumonar o demon, mas calma lá.. ja vamos chegar num ponto onde definimos se o monstro é sumonavel ou não.
-----------------------------
<health now="8200" max="8200"/>
Aqui você define a health do monstro.. por exemplo
<health now="500" max="8200"/>
Se você fizer isso, o monstro vai ter um TOTAL de 8200 de HP, mas quando ele nascer, ele vai nascer com 500 de HP, ou seja, a barrinha de life dele vai estar no vermelho praticamente
-----------------------------
<look type="35" corpse="5995"/>
Aqui você define o sprite do seu monstro
Não lembro de cabeça.. mas vamos fingir que o citizen outfit é look type 100, você tem o looktype 35, e quer fazer um demon com outfit de citizen, você muda para 100, ou qualquer outro valor referente ao outfit que você procura.
<look type="35" corpse="5995"/>
Aqui você define qual será o sprite do seu monstro quando ele morrer.
Agora, vamos fazer algo mais divertido?
Vamos alterar o seguinte código:
" <look type="35" corpse="5995"/>"
Suponha-se que você quer utilizar o outfit citizen, mas dessa maneira você não pode definir as cores, e nem fazer um monstro com addon, então agora vou te ensinar como fazer isso
Insira no código as seguintes informações destacadas:
<look type="35" head="114" body="114" legs="0" feet="0" addons="3" corpse="5995"/>
Agora vamos as explicações:
<look type="35" head="114" body="114" legs="0" feet="0" addons="3" corpse="5995"/>
Define a cor do cabelo do seu monstro, porém você tem que definir com numeros, ja te ensino o macete para descobrir como conseguir esses valores
No caso, 114 representa o preto, então seu monsto terá cabelo preto, se você definir como 0, será cabelo branco.
<look type="35" head="114" body="114" legs="0" feet="0" addons="3" corpse="5995"/>
Mesma coisa do caso acima, porém para o peitoral do corpo.. e assim por diante
Basta você imaginar na ordem do Set outfit do próprio Tibia, quando você vai em ser outfit, temos as seguintes coisas:
Head = Head
Primary = Body
Secondary = Legs
Detail = feet
Entendeu?
Para definir os addons do seu monstro você editará a seguinte parte:
<look type="35" head="114" body="114" legs="0" feet="0" addons="3" corpse="5995"/>
Se você quiser que ele tenha APENAS o addon 1, deixe dessa maneira:
addons="1"
Para o addon 2:
addons="2"
Agora, você quer saber a melhor maneira de deixar o monstro como você quer? Simples, coloque seu ot server online, e pegue um char de teste, selecione nele o outfit com as cores e addons que você quer, e depois deslogue do char, feito isso abra o MYSQL (a versão que você utilizar), lá vá em editar players, se você utilizar o SQLite Studio assim como eu, logo a frente do nome do seu char de teste, vai ter as informações com o numero da cor e outfit que você selecionou
<targetchange interval="5000" chance="8"/>
Nessa parte você coloca um valor para definir a cada QUANTO TEMPO ele irá sorteiar baseado no valor ao lado (chance) se o monstro irá mudar seu alvo de um jogador para outro.
Na parte a seguir vamos definir algumas coisas utilizando o padrão Binário, mas ai você me pergunta o que é binário?
Simples, definição de verdadeiro e falso a partir de 0 e 1.
Para verdadeiro utilizaremos 1, para falso 0.
<flag summonable="0"/>
Define se é possivel um player normal sumonar o monstro através da magia "utevo res".. no caso está definido como não, não é possivel.
<flag attackable="1"/>
Define se é possivel UM JOGADOR atacar o monstro, por exemplo, se você definir como 0, ao tentar atacar o monstro vai ser impossivel.
<flag hostile="1"/>
Define se é um monstro hostil, ou simplificando, se estiver como 1 ele te ataca, mas se estiver como 0 ele seria um rabbit da vida, pode ser atacado mas não ataca de volta.
<flag illusionable="0"/>
Define se é possivel utilizar a magia "utevo res ina" no monstro.. ou seja, um player comum (mage) se transformar no monstro por um determinado tempo
<flag convinceable="0"/>
Mesma coisa do summonable PRATICAMENTE, porém é através de uma runa que existe no jogo, se você utilizar ela num monstro ele irá virar seu summon.
<flag pushable="0"/>
No caso, demons não são possiveis de arrastar, mas se você alterar para 1, será possivel arrastar seu demon.
<flag canpushitems="1"/>
Define se o monstro em si irá arrastar itens, no caso você tacou uma parcel na frente do bixo e saiu correndo, ele arrasta ela tirando-a do seu caminho.
<flag canpushcreatures="1"/>
Mesma coisa do item anterior, porém com criaturas, se uma criatura entrar na frente do seu monstro, ele irá arrasta-lá para chegar até você.
<flag targetdistance="1"/>
A distancia que você quer que o monstro fique do jogador, exemplo: Você quer que o demon ataque o jogador a 2 sqm's de distancia, basta alterar para 2 o valor.
<flag staticattack="90"/>
Não sei dizer o que fazer, se alguem souber, peço que poste.
<flag runonhealth="0"/>
Define a vida em que o monstro irá fugir de você (porém não sei dizer se funciona como a vida mesmo ou em % da vida, se alguem puder deixar mais claro isso)
---------------------------
</flags>
<attacks>
<attack name="melee" interval="2000" skill="100" attack="110"/>
<attack name="manadrain" interval="2000" chance="13" range="7" min="0" max="-120"/>
<attack name="fire" interval="2000" chance="30" range="7" radius="7" target="1" min="-150" max="-250">
<attribute key="shootEffect" value="fire"/>
<attribute key="areaEffect" value="firearea"/>
</attack>
Nessa parte iremos trabalhar as spells do monstro.
A parte destacada em negrito, é onde você coloca os ataques, ou seja, todo ataque novo que você quiser fazer OU TIRAR, terá que ser assim, e sempre terá de ser dentro do padrão, no caso eu retirar todos os ataques e deixar apenas um novo.
<attacks>
<attack name="melee" interval="2000" skill="100" attack="110"/>
</attack>
Dessa maneira o demon irá utilizar APENAS o melee skill, com um intervalo de 2000 milésimos, a parte e skill e attack basta pensar que ele é um player, vamos utilizar um exemplo.
<attack name="melee" interval="2000" skill="100" attack="25"/>
Isso equivale a um jogador com skill 100 utilizando uma arma com attack 25. (Por exemplo um paladino com spear)
<defenses armor="55" defense="55">
<defense name="healing" interval="2000" chance="15" min="130" max="240">
<attribute key="areaEffect" value="blueshimmer"/>
</defense>
<defense name="speed" interval="1000" chance="8" speedchange="290" duration="5000">
<attribute key="areaEffect" value="redshimmer"/>
</defense>
</defenses>
O critério utilizado acima nos ataques, também servem para buffs do monstro, por exemplo aqui em defense, você pode ver que ele tem uma chamada speed, que é um haste que o monstro usa para correr mais rapido. Mas esse não é o foco que irei abordar aqui.
A parte em negrito aborda a defesa do monstro, mesmo criterio utilizado acima no ataque, porém para defesa.
Agora, você queria adicionar uma spell de healing, correto?
então vamos lá
Peguei como exemplo a linha de código de um monstro do meu servidor, basta você inserir isso no seu código que estará tudo perfeito.
<defense name="healing" interval="1000" chance="25" min="500000" max="50000000">
Interval define o intervalo do chance, ou seja, a cada 1000 milésimos será sortiado com uma chance de 25 de o monstro healar (detalhe, se não for sortiado dentro da chance o monsto não irá healar) entre o valor min e max, e a próposito, estou falando sortiar, mas o mais correto seria dizer:
"Sortear um valor random", pois não há como definir o valor a ser sortiado (se não nem sequer seria um sorteio né?"
-------------------------------------
<elements>
<element physicalPercent="30"/>
<element energyPercent="50"/>
<element earthPercent="20"/>
<element icePercent="-15"/>
<element holyPercent="-15"/>
<element deathPercent="20"/>
</elements>
Essa parte é BEM SIMPLES, é a % de defesa do monstro contra danos magicos/fisicos:
Levando em conta os dados acima vamos lá:
<element physicalPercent="30"/>
O monstro tem uma defesa de 30% contra physical, ou seja, se você iria hitar 100 nele, o valor 100 será diminuido para 70, que será o seu hit final
<element icePercent="-15"/>
Aqui ja fica diferente.. DESTAQUE para o sinal de -, isso significa que o monstro É FRACO ao elemento ice, ou seja, você iria hitar 100?
Seu hit final vai ser 100 + 15% = 115 de dano
É essa formula para qualquer valor, por exemplo:
300 de dano (15% do valor é igual a 45), ou seja, 345 de dano de ice
-----------------------------
<immunities>
<immunity fire="1"/>
<immunity drown="1"/>
<immunity paralyze="1"/>
<immunity invisible="1"/>
</immunities>
Aqui são as imunidades do monstro, vamos lá, 1 por 1:
<immunity fire="1"/>
Significa que o monsto tem 100% de proteção a fogo, então não importa o que ele não toma dano de fogo.
<immunity drown="1"/>
Não me lembro o que é drown, se não me engano é andar embaixo da água, se for 0 o monstro iria perder vida (SE NÃO ME ENGANO)
<immunity paralyze="1"/>
Ao utilizar a paralise rune no monstro, isso define se ele será afetado ou não
<immunity invisible="1"/>
Define se o monstro irá ver invisbilidade (utana vid ou stealth ring)
Caso essa opção esteja marcado como 0, se você utilizar utana vid, o demon não irá lhe atacar por não te ver.
-----------------------
<summons maxSummons="1">
<summon name="fire elemental" interval="1000" chance="12"/>
</summons>
O demon é um monsto que sumona bixos, no caso aqui você define em MAXSUMMONS qual o limite de bixos que ele poderá sumonar, e em baixo qual o bixo propriamente dito que será sumonado, no caso você pode alterar o fire elemental para um rat se quiser.
------------------------
<voices interval="5000" chance="10">
<voice sentence="MUHAHAHAHA!" yell="1"/>
<voice sentence="Your soul will be mine!" yell="0"/>
</voices>
Deixei apenas as 2 opções para uma explicação mais objetiva, o primeiro em negrito é uma fala do monstro, porém está como yell=1, isso significa que quando ele falar, ele irá gritar na verdade, então será possivel ver essa fala dele de fora da tela.
A fala de baixo no caso, ja representa uma simples fala qualquer que só se pode ser vista estando na mesma tela do monstro em si.
-----------
~
Enfim..
Só restou explicar a ultima parte de loot, mas com tudo que ja expliquei acima, creio que você pegou uma base e isso não será necessário né?
hehe, espero que esse post tenha lhe ajudado, qualquer dúvida, basta perguntar, ajudarei no que for possivel.
-
augustomeneghetti recebeu reputação de guilherme.ianhez em [PEDIDO] Como editar um monsterBom.. vamos começar por partes.
Vou dar um ctrl c + ctrl v em algumas partes e vou explicando passo a passo, vale lembrar que eu não manjo 100% pois nunca me preocupei com algumas coisas.. então o que eu tiver certeza vou deixar explicito, o que for uma hipotese para mim vou falar EU ACHO.
Vamos lá.
<monster name="Demon" nameDescription="a demon" race="fire" experience="6000" speed="275" manacost="10000">
Auto-explicativo. Utilize para mudar o nome do monstro.
<monster name="Demon" nameDescription="a demon" race="fire" experience="6000" speed="275" manacost="10000">
Serve para você escolher o que vai apareçer quanto você der look num monstro.. por exemplo você da look num demon.. vai apareçer "You se a demon".. ai se você quiser alterar isso, a vontade
<monster name="Demon" nameDescription="a demon" race="fire" experience="6000" speed="275" manacost="10000">
Raça propriamente dita, essa parte é simples de entender porém eu nunca parie para prestar atenção no que isso influencia, mas provavelmente deve influenciar em algo.
<monster name="Demon" nameDescription="a demon" race="fire" experience="6000" speed="275" manacost="10000">
Altere a experiencia do monstro aqui.. por exemplo, seu ot server é exp de 10x
Nesse caso um demon irá lhe dar 6000 de exp * 10, ficando então 60,000 de exp, se você alterar para 7000 a exp, irá dar 70,000 de exp o demon, você tem que levar em conta a exp como 1x elevado a rate do seu server, se você quer que um monstro de 10k de exp, você vai lá e põe 10k, e por seu server ser 10x ele vai dar 100k, algo que você não quer.. nesse caso utilize 1k de exp
<monster name="Demon" nameDescription="a demon" race="fire" experience="6000" speed="275" manacost="10000">
Velocidade propriamente dita do monstro, altere isso para faze-lo andar mais rapido/devagar, ou deixe em zero para o monstro ficar parado
<monster name="Demon" nameDescription="a demon" race="fire" experience="6000" speed="275" manacost="10000">
Provavelmente deve ser a mana necessária para sumonar o demon, mas calma lá.. ja vamos chegar num ponto onde definimos se o monstro é sumonavel ou não.
-----------------------------
<health now="8200" max="8200"/>
Aqui você define a health do monstro.. por exemplo
<health now="500" max="8200"/>
Se você fizer isso, o monstro vai ter um TOTAL de 8200 de HP, mas quando ele nascer, ele vai nascer com 500 de HP, ou seja, a barrinha de life dele vai estar no vermelho praticamente
-----------------------------
<look type="35" corpse="5995"/>
Aqui você define o sprite do seu monstro
Não lembro de cabeça.. mas vamos fingir que o citizen outfit é look type 100, você tem o looktype 35, e quer fazer um demon com outfit de citizen, você muda para 100, ou qualquer outro valor referente ao outfit que você procura.
<look type="35" corpse="5995"/>
Aqui você define qual será o sprite do seu monstro quando ele morrer.
Agora, vamos fazer algo mais divertido?
Vamos alterar o seguinte código:
" <look type="35" corpse="5995"/>"
Suponha-se que você quer utilizar o outfit citizen, mas dessa maneira você não pode definir as cores, e nem fazer um monstro com addon, então agora vou te ensinar como fazer isso
Insira no código as seguintes informações destacadas:
<look type="35" head="114" body="114" legs="0" feet="0" addons="3" corpse="5995"/>
Agora vamos as explicações:
<look type="35" head="114" body="114" legs="0" feet="0" addons="3" corpse="5995"/>
Define a cor do cabelo do seu monstro, porém você tem que definir com numeros, ja te ensino o macete para descobrir como conseguir esses valores
No caso, 114 representa o preto, então seu monsto terá cabelo preto, se você definir como 0, será cabelo branco.
<look type="35" head="114" body="114" legs="0" feet="0" addons="3" corpse="5995"/>
Mesma coisa do caso acima, porém para o peitoral do corpo.. e assim por diante
Basta você imaginar na ordem do Set outfit do próprio Tibia, quando você vai em ser outfit, temos as seguintes coisas:
Head = Head
Primary = Body
Secondary = Legs
Detail = feet
Entendeu?
Para definir os addons do seu monstro você editará a seguinte parte:
<look type="35" head="114" body="114" legs="0" feet="0" addons="3" corpse="5995"/>
Se você quiser que ele tenha APENAS o addon 1, deixe dessa maneira:
addons="1"
Para o addon 2:
addons="2"
Agora, você quer saber a melhor maneira de deixar o monstro como você quer? Simples, coloque seu ot server online, e pegue um char de teste, selecione nele o outfit com as cores e addons que você quer, e depois deslogue do char, feito isso abra o MYSQL (a versão que você utilizar), lá vá em editar players, se você utilizar o SQLite Studio assim como eu, logo a frente do nome do seu char de teste, vai ter as informações com o numero da cor e outfit que você selecionou
<targetchange interval="5000" chance="8"/>
Nessa parte você coloca um valor para definir a cada QUANTO TEMPO ele irá sorteiar baseado no valor ao lado (chance) se o monstro irá mudar seu alvo de um jogador para outro.
Na parte a seguir vamos definir algumas coisas utilizando o padrão Binário, mas ai você me pergunta o que é binário?
Simples, definição de verdadeiro e falso a partir de 0 e 1.
Para verdadeiro utilizaremos 1, para falso 0.
<flag summonable="0"/>
Define se é possivel um player normal sumonar o monstro através da magia "utevo res".. no caso está definido como não, não é possivel.
<flag attackable="1"/>
Define se é possivel UM JOGADOR atacar o monstro, por exemplo, se você definir como 0, ao tentar atacar o monstro vai ser impossivel.
<flag hostile="1"/>
Define se é um monstro hostil, ou simplificando, se estiver como 1 ele te ataca, mas se estiver como 0 ele seria um rabbit da vida, pode ser atacado mas não ataca de volta.
<flag illusionable="0"/>
Define se é possivel utilizar a magia "utevo res ina" no monstro.. ou seja, um player comum (mage) se transformar no monstro por um determinado tempo
<flag convinceable="0"/>
Mesma coisa do summonable PRATICAMENTE, porém é através de uma runa que existe no jogo, se você utilizar ela num monstro ele irá virar seu summon.
<flag pushable="0"/>
No caso, demons não são possiveis de arrastar, mas se você alterar para 1, será possivel arrastar seu demon.
<flag canpushitems="1"/>
Define se o monstro em si irá arrastar itens, no caso você tacou uma parcel na frente do bixo e saiu correndo, ele arrasta ela tirando-a do seu caminho.
<flag canpushcreatures="1"/>
Mesma coisa do item anterior, porém com criaturas, se uma criatura entrar na frente do seu monstro, ele irá arrasta-lá para chegar até você.
<flag targetdistance="1"/>
A distancia que você quer que o monstro fique do jogador, exemplo: Você quer que o demon ataque o jogador a 2 sqm's de distancia, basta alterar para 2 o valor.
<flag staticattack="90"/>
Não sei dizer o que fazer, se alguem souber, peço que poste.
<flag runonhealth="0"/>
Define a vida em que o monstro irá fugir de você (porém não sei dizer se funciona como a vida mesmo ou em % da vida, se alguem puder deixar mais claro isso)
---------------------------
</flags>
<attacks>
<attack name="melee" interval="2000" skill="100" attack="110"/>
<attack name="manadrain" interval="2000" chance="13" range="7" min="0" max="-120"/>
<attack name="fire" interval="2000" chance="30" range="7" radius="7" target="1" min="-150" max="-250">
<attribute key="shootEffect" value="fire"/>
<attribute key="areaEffect" value="firearea"/>
</attack>
Nessa parte iremos trabalhar as spells do monstro.
A parte destacada em negrito, é onde você coloca os ataques, ou seja, todo ataque novo que você quiser fazer OU TIRAR, terá que ser assim, e sempre terá de ser dentro do padrão, no caso eu retirar todos os ataques e deixar apenas um novo.
<attacks>
<attack name="melee" interval="2000" skill="100" attack="110"/>
</attack>
Dessa maneira o demon irá utilizar APENAS o melee skill, com um intervalo de 2000 milésimos, a parte e skill e attack basta pensar que ele é um player, vamos utilizar um exemplo.
<attack name="melee" interval="2000" skill="100" attack="25"/>
Isso equivale a um jogador com skill 100 utilizando uma arma com attack 25. (Por exemplo um paladino com spear)
<defenses armor="55" defense="55">
<defense name="healing" interval="2000" chance="15" min="130" max="240">
<attribute key="areaEffect" value="blueshimmer"/>
</defense>
<defense name="speed" interval="1000" chance="8" speedchange="290" duration="5000">
<attribute key="areaEffect" value="redshimmer"/>
</defense>
</defenses>
O critério utilizado acima nos ataques, também servem para buffs do monstro, por exemplo aqui em defense, você pode ver que ele tem uma chamada speed, que é um haste que o monstro usa para correr mais rapido. Mas esse não é o foco que irei abordar aqui.
A parte em negrito aborda a defesa do monstro, mesmo criterio utilizado acima no ataque, porém para defesa.
Agora, você queria adicionar uma spell de healing, correto?
então vamos lá
Peguei como exemplo a linha de código de um monstro do meu servidor, basta você inserir isso no seu código que estará tudo perfeito.
<defense name="healing" interval="1000" chance="25" min="500000" max="50000000">
Interval define o intervalo do chance, ou seja, a cada 1000 milésimos será sortiado com uma chance de 25 de o monstro healar (detalhe, se não for sortiado dentro da chance o monsto não irá healar) entre o valor min e max, e a próposito, estou falando sortiar, mas o mais correto seria dizer:
"Sortear um valor random", pois não há como definir o valor a ser sortiado (se não nem sequer seria um sorteio né?"
-------------------------------------
<elements>
<element physicalPercent="30"/>
<element energyPercent="50"/>
<element earthPercent="20"/>
<element icePercent="-15"/>
<element holyPercent="-15"/>
<element deathPercent="20"/>
</elements>
Essa parte é BEM SIMPLES, é a % de defesa do monstro contra danos magicos/fisicos:
Levando em conta os dados acima vamos lá:
<element physicalPercent="30"/>
O monstro tem uma defesa de 30% contra physical, ou seja, se você iria hitar 100 nele, o valor 100 será diminuido para 70, que será o seu hit final
<element icePercent="-15"/>
Aqui ja fica diferente.. DESTAQUE para o sinal de -, isso significa que o monstro É FRACO ao elemento ice, ou seja, você iria hitar 100?
Seu hit final vai ser 100 + 15% = 115 de dano
É essa formula para qualquer valor, por exemplo:
300 de dano (15% do valor é igual a 45), ou seja, 345 de dano de ice
-----------------------------
<immunities>
<immunity fire="1"/>
<immunity drown="1"/>
<immunity paralyze="1"/>
<immunity invisible="1"/>
</immunities>
Aqui são as imunidades do monstro, vamos lá, 1 por 1:
<immunity fire="1"/>
Significa que o monsto tem 100% de proteção a fogo, então não importa o que ele não toma dano de fogo.
<immunity drown="1"/>
Não me lembro o que é drown, se não me engano é andar embaixo da água, se for 0 o monstro iria perder vida (SE NÃO ME ENGANO)
<immunity paralyze="1"/>
Ao utilizar a paralise rune no monstro, isso define se ele será afetado ou não
<immunity invisible="1"/>
Define se o monstro irá ver invisbilidade (utana vid ou stealth ring)
Caso essa opção esteja marcado como 0, se você utilizar utana vid, o demon não irá lhe atacar por não te ver.
-----------------------
<summons maxSummons="1">
<summon name="fire elemental" interval="1000" chance="12"/>
</summons>
O demon é um monsto que sumona bixos, no caso aqui você define em MAXSUMMONS qual o limite de bixos que ele poderá sumonar, e em baixo qual o bixo propriamente dito que será sumonado, no caso você pode alterar o fire elemental para um rat se quiser.
------------------------
<voices interval="5000" chance="10">
<voice sentence="MUHAHAHAHA!" yell="1"/>
<voice sentence="Your soul will be mine!" yell="0"/>
</voices>
Deixei apenas as 2 opções para uma explicação mais objetiva, o primeiro em negrito é uma fala do monstro, porém está como yell=1, isso significa que quando ele falar, ele irá gritar na verdade, então será possivel ver essa fala dele de fora da tela.
A fala de baixo no caso, ja representa uma simples fala qualquer que só se pode ser vista estando na mesma tela do monstro em si.
-----------
~
Enfim..
Só restou explicar a ultima parte de loot, mas com tudo que ja expliquei acima, creio que você pegou uma base e isso não será necessário né?
hehe, espero que esse post tenha lhe ajudado, qualquer dúvida, basta perguntar, ajudarei no que for possivel.
-
augustomeneghetti recebeu reputação de KilleRAnjOo em alguem me explica como crio quest ? por que nao tem intens exp :boost e shiny stone e o resto no RME mapaImporta os arquivos da versão do seu ot no RME, na teoria é pra funcionar.. não posso te garantir pois não uso RME, mas pelos meus conheçimentos creio que isso deva resolver, não sei exatamente onde fica a opção de importar, só dar uma fuçada que você acha
Dei uma explicada BEEEM superficial, até porque o código em si que eu uso é totalmente diferente desse ai que o dragonskai postou, então tentei te dar uma base explicando em cima do código dele
-
augustomeneghetti recebeu reputação de KilleRAnjOo em alguem me explica como crio quest ? por que nao tem intens exp :boost e shiny stone e o resto no RME mapaOs itens que faltam você tem que adicionar no RME, provavelmente o .dat que seu RME usa não tem os itens que você quer.. só atualizar isso
Sobre a quest, tem 2 maneiras de fazer, vou explicar apenas a mais simples de todas.
Crie um chest no seu mapa, e depois vá nas propriedades do chest, em UniqueID coloca o ID do item que você quer que seja dado como recompensa, pronto, você tem uma quest simples funcionando, só não irei me aprofundar mais porquê tenho preguiça de ensinar os outros meios
-
augustomeneghetti recebeu reputação de your2000 em (Resolvido)[HEEELP] Ajuuuda Poor favor, RMEE !basta ativar o auto-border
lol
não sei qual o atalho no RME, mas deve ser Ctrl + A ou apenas A
Edit: E lembra de não seleciona Raw Pallete, se não me engano ela não funciona com auto-border.
-
augustomeneghetti recebeu reputação de Schiffert em afim de ser socio ?VPS de 5 de memória
Opa, ai sim eu curti, to interessado
-
augustomeneghetti deu reputação a Darkressxx1 em Tibia | Warcraft. [RPG]Proyecto: ¡TIBIA - WORLD OF WARCRAFT! Mapper: Xadic Contribuidor: Nights Imagens: Mini-mapa: ` Xadic-Worldofwarcraft.rar (3.0 MB) (11.0 MB UN-ZIP). https://mega.co.nz/#!ixY3hAqT!_wjoKA6A34FNWX1HYoz3fiBGzVO_oFpwglPTSm-tGjE
-
augustomeneghetti deu reputação a Kimoszin em [MoveEvents] Tile que remove PZOla pessoal, venho trazer aqui pra vocês outro script simples,
- Para que server?
Simples, quando a pessoal quer sair, ela pisa encima do tile e perde o pz, aconselho botar no temple, ou em lugares no-pvp
Ela serve tambem para aqueles players que querem sair mais nao gostam de esperar o pz, ai apertam o exit...
- Como posso 'instalar' um script desse em meu OTserver?
Adicionar o actionID 7003 no tile que você quiser pelo map editor e ir em data\movements\scripts e depois movements.xml
tilepz.lua
function onStepIn(cid, item, frompos, topos) pos = getCreaturePosition(cid) if getCreatureCondition(cid, CONDITION_INFIGHT) == TRUE then doRemoveCondition(cid, CONDITION_INFIGHT) doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT, "Seu battle foi removido.") doSendMagicEffect(pos, CONST_ME_MAGIC_BLUE) else doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT, "Você nao esta em battle.") doSendMagicEffect(pos, CONST_ME_POFF) end end movements.xml <movevent type="StepIn" actionid="7003" event="script" value="tilepz.lua"/>
Abraços.
-
augustomeneghetti deu reputação a Gowzy em Mapping Thread - Gowzy !Fala rapaziada, beleza?
Bom, hoje resolvi criar esse tópico para mostrar um pouco do meu trabalho, para aprimorar e etc.
Espero que você tenham gostado, sugestões e críticas, como sempre, são bem-vindas.
Assim aprendemos!
Vamos lá:
(Na parte da água, ainda não sou muito bom nas montanhas)
-
augustomeneghetti recebeu reputação de dansantos2 em [PEDIDO] Comandos de GMvá em talkactions, lá você vai encontrar todos os comandos, basta editar por lá.. você encontrar algo mais ou menos assim
Basta adicionar o comando que você quer para o acesso de GM
-
augustomeneghetti recebeu reputação de luanluciano93 em PantanoUm pequeno pantano que estou fazendo para meu server, não está pronto ainda.. mas é isso ai
Antes de mais nada.. gostaria de dizer que eu sei que dá pra deixar MUITO mais bonito, e é o que eu estou fazendo.. como eu disse no inicio do tópico, não está pronto ainda
Edit: Provavelmente irei remover um pouco do excesso de jungle grass.. meio que to me sentindo incomodado com isso kk
-
augustomeneghetti deu reputação a luanluciano93 em Hunt + mini mapFicou bem legal ... parabéns e continue postando!
-
augustomeneghetti deu reputação a Danves em (Resolvido){Pedido} Teleportar quando acabar a PremiumFiz um creaturescripts que talvez só ele já funcione. Crie um com o nome vip.lua e cole dentro function onLogin(cid) if getPlayerPremiumDays(cid) > 0 and getPlayerStorageValue(cid, 95498) == -1 then setPlayerStorageValue(cid, 95498, 1) end if getPlayerPremiumDays(cid) <= 0 and getPlayerStorageValue(cid, 95498) == 1 then setPlayerStorageValue(cid, 95498, -1) local temple = getTownTemplePosition(getPlayerTown(cid)) doTeleportThing(cid, temple) doPlayerPopupFYI(cid, "Sua vip acabou.") end return true end Se não quer que teleporte pro templo, edite essa parte de vermelho com as pos e tal
local temple = getTownTemplePosition(getPlayerTown(cid))
No creaturescripts.xml <event type="login" name="Vip" script="vip.lua"/> No login.lua registerCreatureEvent(cid, "Vip") -
augustomeneghetti recebeu reputação de IagoNp em [PEDIDO] Como editar um monsterBom.. vamos começar por partes.
Vou dar um ctrl c + ctrl v em algumas partes e vou explicando passo a passo, vale lembrar que eu não manjo 100% pois nunca me preocupei com algumas coisas.. então o que eu tiver certeza vou deixar explicito, o que for uma hipotese para mim vou falar EU ACHO.
Vamos lá.
<monster name="Demon" nameDescription="a demon" race="fire" experience="6000" speed="275" manacost="10000">
Auto-explicativo. Utilize para mudar o nome do monstro.
<monster name="Demon" nameDescription="a demon" race="fire" experience="6000" speed="275" manacost="10000">
Serve para você escolher o que vai apareçer quanto você der look num monstro.. por exemplo você da look num demon.. vai apareçer "You se a demon".. ai se você quiser alterar isso, a vontade
<monster name="Demon" nameDescription="a demon" race="fire" experience="6000" speed="275" manacost="10000">
Raça propriamente dita, essa parte é simples de entender porém eu nunca parie para prestar atenção no que isso influencia, mas provavelmente deve influenciar em algo.
<monster name="Demon" nameDescription="a demon" race="fire" experience="6000" speed="275" manacost="10000">
Altere a experiencia do monstro aqui.. por exemplo, seu ot server é exp de 10x
Nesse caso um demon irá lhe dar 6000 de exp * 10, ficando então 60,000 de exp, se você alterar para 7000 a exp, irá dar 70,000 de exp o demon, você tem que levar em conta a exp como 1x elevado a rate do seu server, se você quer que um monstro de 10k de exp, você vai lá e põe 10k, e por seu server ser 10x ele vai dar 100k, algo que você não quer.. nesse caso utilize 1k de exp
<monster name="Demon" nameDescription="a demon" race="fire" experience="6000" speed="275" manacost="10000">
Velocidade propriamente dita do monstro, altere isso para faze-lo andar mais rapido/devagar, ou deixe em zero para o monstro ficar parado
<monster name="Demon" nameDescription="a demon" race="fire" experience="6000" speed="275" manacost="10000">
Provavelmente deve ser a mana necessária para sumonar o demon, mas calma lá.. ja vamos chegar num ponto onde definimos se o monstro é sumonavel ou não.
-----------------------------
<health now="8200" max="8200"/>
Aqui você define a health do monstro.. por exemplo
<health now="500" max="8200"/>
Se você fizer isso, o monstro vai ter um TOTAL de 8200 de HP, mas quando ele nascer, ele vai nascer com 500 de HP, ou seja, a barrinha de life dele vai estar no vermelho praticamente
-----------------------------
<look type="35" corpse="5995"/>
Aqui você define o sprite do seu monstro
Não lembro de cabeça.. mas vamos fingir que o citizen outfit é look type 100, você tem o looktype 35, e quer fazer um demon com outfit de citizen, você muda para 100, ou qualquer outro valor referente ao outfit que você procura.
<look type="35" corpse="5995"/>
Aqui você define qual será o sprite do seu monstro quando ele morrer.
Agora, vamos fazer algo mais divertido?
Vamos alterar o seguinte código:
" <look type="35" corpse="5995"/>"
Suponha-se que você quer utilizar o outfit citizen, mas dessa maneira você não pode definir as cores, e nem fazer um monstro com addon, então agora vou te ensinar como fazer isso
Insira no código as seguintes informações destacadas:
<look type="35" head="114" body="114" legs="0" feet="0" addons="3" corpse="5995"/>
Agora vamos as explicações:
<look type="35" head="114" body="114" legs="0" feet="0" addons="3" corpse="5995"/>
Define a cor do cabelo do seu monstro, porém você tem que definir com numeros, ja te ensino o macete para descobrir como conseguir esses valores
No caso, 114 representa o preto, então seu monsto terá cabelo preto, se você definir como 0, será cabelo branco.
<look type="35" head="114" body="114" legs="0" feet="0" addons="3" corpse="5995"/>
Mesma coisa do caso acima, porém para o peitoral do corpo.. e assim por diante
Basta você imaginar na ordem do Set outfit do próprio Tibia, quando você vai em ser outfit, temos as seguintes coisas:
Head = Head
Primary = Body
Secondary = Legs
Detail = feet
Entendeu?
Para definir os addons do seu monstro você editará a seguinte parte:
<look type="35" head="114" body="114" legs="0" feet="0" addons="3" corpse="5995"/>
Se você quiser que ele tenha APENAS o addon 1, deixe dessa maneira:
addons="1"
Para o addon 2:
addons="2"
Agora, você quer saber a melhor maneira de deixar o monstro como você quer? Simples, coloque seu ot server online, e pegue um char de teste, selecione nele o outfit com as cores e addons que você quer, e depois deslogue do char, feito isso abra o MYSQL (a versão que você utilizar), lá vá em editar players, se você utilizar o SQLite Studio assim como eu, logo a frente do nome do seu char de teste, vai ter as informações com o numero da cor e outfit que você selecionou
<targetchange interval="5000" chance="8"/>
Nessa parte você coloca um valor para definir a cada QUANTO TEMPO ele irá sorteiar baseado no valor ao lado (chance) se o monstro irá mudar seu alvo de um jogador para outro.
Na parte a seguir vamos definir algumas coisas utilizando o padrão Binário, mas ai você me pergunta o que é binário?
Simples, definição de verdadeiro e falso a partir de 0 e 1.
Para verdadeiro utilizaremos 1, para falso 0.
<flag summonable="0"/>
Define se é possivel um player normal sumonar o monstro através da magia "utevo res".. no caso está definido como não, não é possivel.
<flag attackable="1"/>
Define se é possivel UM JOGADOR atacar o monstro, por exemplo, se você definir como 0, ao tentar atacar o monstro vai ser impossivel.
<flag hostile="1"/>
Define se é um monstro hostil, ou simplificando, se estiver como 1 ele te ataca, mas se estiver como 0 ele seria um rabbit da vida, pode ser atacado mas não ataca de volta.
<flag illusionable="0"/>
Define se é possivel utilizar a magia "utevo res ina" no monstro.. ou seja, um player comum (mage) se transformar no monstro por um determinado tempo
<flag convinceable="0"/>
Mesma coisa do summonable PRATICAMENTE, porém é através de uma runa que existe no jogo, se você utilizar ela num monstro ele irá virar seu summon.
<flag pushable="0"/>
No caso, demons não são possiveis de arrastar, mas se você alterar para 1, será possivel arrastar seu demon.
<flag canpushitems="1"/>
Define se o monstro em si irá arrastar itens, no caso você tacou uma parcel na frente do bixo e saiu correndo, ele arrasta ela tirando-a do seu caminho.
<flag canpushcreatures="1"/>
Mesma coisa do item anterior, porém com criaturas, se uma criatura entrar na frente do seu monstro, ele irá arrasta-lá para chegar até você.
<flag targetdistance="1"/>
A distancia que você quer que o monstro fique do jogador, exemplo: Você quer que o demon ataque o jogador a 2 sqm's de distancia, basta alterar para 2 o valor.
<flag staticattack="90"/>
Não sei dizer o que fazer, se alguem souber, peço que poste.
<flag runonhealth="0"/>
Define a vida em que o monstro irá fugir de você (porém não sei dizer se funciona como a vida mesmo ou em % da vida, se alguem puder deixar mais claro isso)
---------------------------
</flags>
<attacks>
<attack name="melee" interval="2000" skill="100" attack="110"/>
<attack name="manadrain" interval="2000" chance="13" range="7" min="0" max="-120"/>
<attack name="fire" interval="2000" chance="30" range="7" radius="7" target="1" min="-150" max="-250">
<attribute key="shootEffect" value="fire"/>
<attribute key="areaEffect" value="firearea"/>
</attack>
Nessa parte iremos trabalhar as spells do monstro.
A parte destacada em negrito, é onde você coloca os ataques, ou seja, todo ataque novo que você quiser fazer OU TIRAR, terá que ser assim, e sempre terá de ser dentro do padrão, no caso eu retirar todos os ataques e deixar apenas um novo.
<attacks>
<attack name="melee" interval="2000" skill="100" attack="110"/>
</attack>
Dessa maneira o demon irá utilizar APENAS o melee skill, com um intervalo de 2000 milésimos, a parte e skill e attack basta pensar que ele é um player, vamos utilizar um exemplo.
<attack name="melee" interval="2000" skill="100" attack="25"/>
Isso equivale a um jogador com skill 100 utilizando uma arma com attack 25. (Por exemplo um paladino com spear)
<defenses armor="55" defense="55">
<defense name="healing" interval="2000" chance="15" min="130" max="240">
<attribute key="areaEffect" value="blueshimmer"/>
</defense>
<defense name="speed" interval="1000" chance="8" speedchange="290" duration="5000">
<attribute key="areaEffect" value="redshimmer"/>
</defense>
</defenses>
O critério utilizado acima nos ataques, também servem para buffs do monstro, por exemplo aqui em defense, você pode ver que ele tem uma chamada speed, que é um haste que o monstro usa para correr mais rapido. Mas esse não é o foco que irei abordar aqui.
A parte em negrito aborda a defesa do monstro, mesmo criterio utilizado acima no ataque, porém para defesa.
Agora, você queria adicionar uma spell de healing, correto?
então vamos lá
Peguei como exemplo a linha de código de um monstro do meu servidor, basta você inserir isso no seu código que estará tudo perfeito.
<defense name="healing" interval="1000" chance="25" min="500000" max="50000000">
Interval define o intervalo do chance, ou seja, a cada 1000 milésimos será sortiado com uma chance de 25 de o monstro healar (detalhe, se não for sortiado dentro da chance o monsto não irá healar) entre o valor min e max, e a próposito, estou falando sortiar, mas o mais correto seria dizer:
"Sortear um valor random", pois não há como definir o valor a ser sortiado (se não nem sequer seria um sorteio né?"
-------------------------------------
<elements>
<element physicalPercent="30"/>
<element energyPercent="50"/>
<element earthPercent="20"/>
<element icePercent="-15"/>
<element holyPercent="-15"/>
<element deathPercent="20"/>
</elements>
Essa parte é BEM SIMPLES, é a % de defesa do monstro contra danos magicos/fisicos:
Levando em conta os dados acima vamos lá:
<element physicalPercent="30"/>
O monstro tem uma defesa de 30% contra physical, ou seja, se você iria hitar 100 nele, o valor 100 será diminuido para 70, que será o seu hit final
<element icePercent="-15"/>
Aqui ja fica diferente.. DESTAQUE para o sinal de -, isso significa que o monstro É FRACO ao elemento ice, ou seja, você iria hitar 100?
Seu hit final vai ser 100 + 15% = 115 de dano
É essa formula para qualquer valor, por exemplo:
300 de dano (15% do valor é igual a 45), ou seja, 345 de dano de ice
-----------------------------
<immunities>
<immunity fire="1"/>
<immunity drown="1"/>
<immunity paralyze="1"/>
<immunity invisible="1"/>
</immunities>
Aqui são as imunidades do monstro, vamos lá, 1 por 1:
<immunity fire="1"/>
Significa que o monsto tem 100% de proteção a fogo, então não importa o que ele não toma dano de fogo.
<immunity drown="1"/>
Não me lembro o que é drown, se não me engano é andar embaixo da água, se for 0 o monstro iria perder vida (SE NÃO ME ENGANO)
<immunity paralyze="1"/>
Ao utilizar a paralise rune no monstro, isso define se ele será afetado ou não
<immunity invisible="1"/>
Define se o monstro irá ver invisbilidade (utana vid ou stealth ring)
Caso essa opção esteja marcado como 0, se você utilizar utana vid, o demon não irá lhe atacar por não te ver.
-----------------------
<summons maxSummons="1">
<summon name="fire elemental" interval="1000" chance="12"/>
</summons>
O demon é um monsto que sumona bixos, no caso aqui você define em MAXSUMMONS qual o limite de bixos que ele poderá sumonar, e em baixo qual o bixo propriamente dito que será sumonado, no caso você pode alterar o fire elemental para um rat se quiser.
------------------------
<voices interval="5000" chance="10">
<voice sentence="MUHAHAHAHA!" yell="1"/>
<voice sentence="Your soul will be mine!" yell="0"/>
</voices>
Deixei apenas as 2 opções para uma explicação mais objetiva, o primeiro em negrito é uma fala do monstro, porém está como yell=1, isso significa que quando ele falar, ele irá gritar na verdade, então será possivel ver essa fala dele de fora da tela.
A fala de baixo no caso, ja representa uma simples fala qualquer que só se pode ser vista estando na mesma tela do monstro em si.
-----------
~
Enfim..
Só restou explicar a ultima parte de loot, mas com tudo que ja expliquei acima, creio que você pegou uma base e isso não será necessário né?
hehe, espero que esse post tenha lhe ajudado, qualquer dúvida, basta perguntar, ajudarei no que for possivel.
-
augustomeneghetti recebeu reputação de luanluciano93 em Hunt + mini mapApenas trazendo + algumas imagens de como está indo meu servidor ..
E por fim o mini map
Vale lembrar que o mini map, apenas o formato da zona Oeste da ilha está definido, da parte Norte, Sul e Leste da city ainda não foi definido. até porque eu só terminei de fazer a city recentemente..
não é lá grande coisa.. maioria das hunts que eu fiz foram no sub-solo.. e eu não queria tirar print dos outros andares do mini map .. e sobre as hunts em si.. não quero mostrar muito elas.. vou mostrando apenas exporadicamente uma coisa ou outra do meu server
Lembrando que meu ot vai ser voltado para o RPG, e como na minha equipe só tem eu + 1 cara de supporter (que ainda está aprendendo).. to tendo que me virar, vo mechendo com mapping e scripting 100% sozinho ahahuahuaha
-
augustomeneghetti deu reputação a Absolute em Hunt + mini mapGostei amigo, bem detalhada continue assim, abç.
-
augustomeneghetti deu reputação a Cat em Hunt + mini mapnada mal, o detalhamento está bacana, varie um pouco as bordas e os formatos, principalmente o da montanha, abç.