Ótimo desenvolvimento, por video fica melhor ainda. Parabéns @BananaFight
- Fórum
- OTServ
- Show-Off
- Programming Show-Off
- Suggestname - monster system - programando c++ opentibia
Suggestname - monster system - programando c++ opentibia
Por BananaFight, 14 de mai. de 2016 em Programming Show-Off
info
Grupo: Administrador
Registrado: 08/07/05
Posts: 5.8k
Reputação: +1.4k
Gênero: Outro

info
Grupo: Visconde
Registrado: 10/02/11
Posts: 377
Reputação: +78

muito bom parabens ![]()
desse seu jeito de explicar da para fazer em qualquer versão
aqui msm eu fiz no otx q é baseado na tfs 0.3.7
info
Grupo: Conde
Registrado: 14/02/13
Posts: 702
Reputação: +196
Gênero: Masculino

Em 17/05/2016 at 09:07, rohfagundes disse:muito bom parabens
desse seu jeito de explicar da para fazer em qualquer versão
aqui msm eu fiz no otx q é baseado na tfs 0.3.7
Fico muito feliz que tenha conseguido entender tudo que eu fiz no vídeo, e esse é meu objetivo, transmitir conhecimento para a edição da source, não só mostrar como é feito, mas sim ensinar passo a passo de como fazer, para que mesmo em condições diferentes ( como no seu caso é a source é 0.3 e eu fiz na 1.2 ) quem assista o vídeo consiga atingir o resultado final.
Tentei transmitir como eu crio meus sistemas, e fazer com que mais pessoas se tornem capacitadas para criar seus próprios sistemas.
Essa é uma versão 2.0 do meu sistema.
Adicionei os status do monstro que são usados para calcular a vida, dano e defesa dele com base nos atributos
Os calculos para definir os monstros:
(level = random(levelMin, levelMax))
(attribute = attributeBase * level)
(status = statusBase * attribute)
(health / healthMax = status.resistence)
(damage = baseDamage + (status.attack / 5))
(defense = baseDefense + (status.defense / 5))
A experiencia que ganha quando mata um monstro é multiplicada pelo level dele, ou seja, matar monstros de leveis mais alto rende mais exp.
Removi as magias de defesa, e adicionei as magias passivas ( ou seja, são soltas pelos monstros apenas durante combate e de forma aleatória )
E agora as magias dos monstros são configuradas unica e exclusivamente no spells.xml
<?xml version="1.0" encoding="UTF-8"?><monster name="Demon" nameDescription="a demon" race="fire" experience="6000" speed="280" manacost="0"> <look type="35" corpse="5995" /> <spawnLevel min="50" max="120" /> <attributes attack="2" defense="1" resistence="1"/> <status attack="10" defense="5" resistence="82" /> <targetchange interval="4000" chance="20" /> <attacks> <attack word="m1" name="Berserk" interval="5000" chance="20" min="-150" max="-250"/> </attacks> <passives> <passive name="Ultimate Healing" interval="10000" chance="5" min="180" max="250"/> <passive name="Strong Haste" interval="5000" chance="25" speedchange="320" duration="5000"/> </passives> <flags> <flag summonable="1" /> <flag attackable="1" /> <flag hostile="1" /> <flag illusionable="0" /> <flag convinceable="1" /> <flag pushable="0" /> <flag canpushitems="1" /> <flag canpushcreatures="1" /> <flag targetdistance="1" /> <flag staticattack="70" /> <flag runonhealth="0" /> </flags> <elements> <element physicalPercent="30" /> <element deathPercent="30" /> <element energyPercent="50" /> <element earthPercent="40" /> <element icePercent="-10" /> <element holyPercent="-10" /> </elements> <immunities> <immunity fire="1" /> <immunity drown="1" /> <immunity lifedrain="1" /> <immunity paralyze="1" /> <immunity invisible="1" /> </immunities> <summons maxSummons="1"> <summon name="fire elemental" interval="2000" chance="10" /> </summons> <voices interval="5000" chance="10"> <voice sentence="Your soul will be mine!" /> <voice sentence="MUHAHAHAHA!" /> <voice sentence="CHAMEK ATH UTHUL ARAK!" /> <voice sentence="I SMELL FEEEEAAAAAR!" /> <voice sentence="Your resistance is futile!" /> </voices> <loot> <item id="2148" countmax="100" chance="60000" /><!-- gold coin --> <item id="2148" countmax="99" chance="60000" /><!-- gold coin --> <item id="2152" countmax="6" chance="100000" /><!-- platinum coin --> <item id="2795" countmax="6" chance="20740" /><!-- fire mushroom --> <item id="8473" countmax="3" chance="20000" /><!-- ultimate health potion --> <item id="7590" countmax="3" chance="14285" /><!-- great mana potion --> <item id="2387" chance="14285" /><!-- double axe --> <item id="2149" chance="10000" /><!-- small emerald --> <item id="7368" countmax="5" chance="5263" /><!-- assassin star --> <item id="2432" chance="3703" /><!-- fire axe --> <item id="2151" chance="3571" /><!-- talon --> <item id="2176" chance="2854" /><!-- orb --> <item id="2393" chance="2000" /><!-- giant sword --> <item id="2418" chance="1428" /><!-- golden sickle --> <item id="2165" chance="1333" /><!-- stealth ring --> <item id="2462" chance="1204" /><!-- devil helmet --> <item id="1982" chance="1190" /><!-- purple tome --> <item id="2179" chance="1010" /><!-- gold ring --> <item id="2171" chance="813" /><!-- platinum amulet --> <item id="2396" chance="666" /><!-- ice rapier --> <item id="2520" chance="649" /><!-- demon shield --> <item id="2214" chance="473" /><!-- ring of healing --> <item id="5954" chance="467" /><!-- demon horn --> <item id="2470" chance="413" /><!-- golden legs --> <item id="2514" chance="389" /><!-- mastermind shield --> <item id="2164" chance="170" /><!-- might ring --> <item id="2472" chance="70" /><!-- magic plate armor --> <item id="7393" chance="100" /><!-- demon trophy --> <item id="7382" chance="80" /><!-- demonrage sword --> </loot></monster>
info
Grupo: Visconde
Registrado: 10/02/11
Posts: 377
Reputação: +78

Show msm
quando eu fiz aqui eu coloquei para ganhar mais exp(de acordo com o level), speed, armor e tinha mexido na parte de drop para ter mais chance de drop
porem eu tirei o sistema do ot por causa de um problema com outro sistema
eu tenho uma ideia aqui sobre um sistema q n sei se executei certo e uma outra ideia q n sei como executar
se vc tiver tempo e quiser me ajudar eu te explico o q fiz aqui
info
Grupo: Campones
Registrado: 09/05/08
Posts: 67
Reputação: +13
Gênero: Masculino

Ótimo sistema. Valeu por contribuir, cara!
REP+
info
Grupo: Conde
Registrado: 14/02/13
Posts: 702
Reputação: +196
Gênero: Masculino

Continuo melhorando o código cada vez mais, agora fiz com que as magias tenham seu dano calculado direto dentro do spells, ele retorna o monstro, level e os status dele.
local combat = Combat()
combat:setParameter(COMBAT_PARAM_TYPE, COMBAT_ENERGYDAMAGE)
combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_BLOCKHIT)
combat:setArea(createCombatArea(AREA_CIRCLE3X3))
function onGetFormulaValues(monster, level, attack, defense, resistence)
local min = (level / 5) + (attack * 1.2) + 7
local max = (level / 5) + (attack * 2.85) + 16
return -min, -max
end
combat:setCallback(CALLBACK_PARAM_MONSTER, "onGetFormulaValues")
function onCastSpell(creature, variant)
return combat:execute(creature, variant)
end
Só para ficar mais fácil de ver o level

Editado Maio 22 por BananaFight
FICOU INSANO!!!
Essas atualizações e melhorias que você faz estão disponíveis no vídeo também?
Parabéns pelo sistema muito criativo e útil para novas jogabilidades, abre uma infinidade de opções.
info
Grupo: Conde
Registrado: 14/02/13
Posts: 702
Reputação: +196
Gênero: Masculino

Em 22/05/2016 at 15:19, lucashgas disse:FICOU INSANO!!!
Essas atualizações e melhorias que você faz estão disponíveis no vídeo também?
Parabéns pelo sistema muito criativo e útil para novas jogabilidades, abre uma infinidade de opções.
Como eu não fiz um videos fazendo elas, vou postar o meu repositório para quem quiser olhar e baixar a vontade:






info
Grupo: Conde
Registrado: 14/02/13
Posts: 702
Reputação: +196
Gênero: Masculino
Fala galera, eu resolvi criar esse sistema aonde os montros tem seu dano / defesa / vida definidos pelo level / atributo que são configurados no XML, e eu fiz esse sistema em stream para mostrar um pouco de como trabalhar nas source do TFS 1.2, no sistema trabalhamos editando o MonsterType, Monster, Combat e a estrutura do xml dos monsters, é bastante conteúdo e vale apena conferir, uma boa fonte de aprendizado.
LINK DO REPOSITÓRIO COM A VERSÃO APRIMORADA DOS SISTEMAS:
https://bitbucket.org/eduardovicente/pokemo-new-era
Video
Essa é uma versão resumida e com uma melhor qualidade no audio -
Playlist passo a passo Criando na hora. [ 13 vídeos ] -
Imagens
Editado Setembro 28 por BananaFight