Ir para conteúdo

Gabriel.

Membro
  • Registro em

  • Última visita

Tudo que Gabriel. postou

  1. Se postar o script fica mais fácil de te ajudar!
  2. Desistiram do projeto? -- Aqui esta uma contribuição para uma função que achei muito desnecessária a forma que foi feita: local spellTypes = { ["flying"] = COMBAT_FLYING, ["ground"] = COMBAT_GROUND, ["electric"] = COMBAT_ELECTRIC, ["ghost"] = COMBAT_GHOST, ["normal"] = COMBAT_NORMAL, ["fighting"] = COMBAT_FIGHT, ["poison"] = COMBAT_POISON, ["rock"] = COMBAT_ROCK, ["bug"] = COMBAT_BUG, ["fire"] = COMBAT_FIRE, ["water"] = COMBAT_WATER, ["grass"] = COMBAT_GRASS, ["psychic"] = COMBAT_PSYCHIC, ["ice"] = COMBAT_ICE, ["dragon"] = COMBAT_DRAGON } function getSpellType(type) local elementType = spellTypes[type] if not elementType then print("Tipo de feitiço inválido: " .. type) end return elementType end
  3. Procure a tabela: megasConf Provavelmente esta nela o type do pokémon, se não estiver, creio que seja no configuration.lua na parte de configuração dos pokémon.
  4. Sinceramente? Tenho nem ideia kk Eu sei que ele usa o .xml para puxar as spells, o que tu pode fazer é tentar fazer uma checagem direto no arquivo da pasta talkactions se tem um atributo "m1.Solar_Beam" e soltar a spell do atributo em vez do da .xml! Porem isso é apenas uma ideia louca kk Precisa ser melhor estudada..
  5. Não sei qual a versão da sua src porem é necessário algumas alterações na mesma, o unico tutorial que encontrei foi para a 0.3.6pl1 da 8.54:
  6. Na real eu entrei no tópico ontem e vi sua duvida, por isso fiz a postagem! Eu tenho um servidor/ projeto porem é feito em cima da 0.3.6 (854) e muita coisa é pelo .xml por isso essas coisinhas eu consigo ajudar.
  7. Para fazer isso tu pode fazer uma "variável" direto na src e no .xml do pokémon, funcionaria da mesma maneira que ele fez o para puxar as informações do pokémon (move set), ficando algo desta maneira: <move name="harden" interval="10000" level="10"/> --- Em monsters.cpp procure por: if ((attr = node.attribute("name"))) {//pota sb.name = attr.as_string(); } De um enter e adicione abaixo: if ((attr = node.attribute("level"))) {//pota sb.level = pugi::cast<uint16_t>(attr.value()); } Agora em monsters.h procure por: name(other.name), //pota E adicione abaixo: level(other.level), //pota Depois procure por: std::string name = "none"; //pota E adicione: uint16_t level = 0; Agora vá em luascripts.cpp e procure por: setField(L, "name", spellBlock.name); //pota E adicione abaixo: setField(L, "level", spellBlock.level); //pota Feito isso só compilar novamente e fazer as alterações/ checagens no script de moves(m1, m2, etc..) Fiquei como preguiça de procurar como é feito a checagem do level do pokémon, então fiz em cima do level do player mesmo: --- No arquivo summonspells.lua procure por: if move[i] then E coloque embaixo: if move[1].level > player:getLevel() then player:sendCancelMessage("You must be level "..move[1].level.." or higher to use this move.") player:getPosition():sendMagicEffect(CONST_ME_POFF) break end
  8. Eu baixei o projeto, esta muito interessante! Vi que foi feito em cima do Pokémon Dash já que algumas funções, scripts são o mesmo basicamente. Uma dica atualize o script exp.lua da pasta CreatureScripts, tem muita coisa que pode ser refeito nele! Inclusive o sistema de efetividade pode ser refeito em cima do element do pokémon, como tu tem uma tabela que utiliza para puxar as informações do goback, tu poderia colocar o "type" do pokémon nela e fazer o sistema de effetividade em cima dela: ["Bulbasaur"] = {level = 5, cons = 23, vida = 600, type = "grass"}, local effectiveness = { [COMBAT_NORMAL] = {weak = {"rock"}, non = {"ghost"}}, [COMBAT_FIGHT] = {super = {"normal", "rock", "ice", "dark"}, weak = {"flying", "poison", "bug", "psychic"}, non = {"ghost"}}, [COMBAT_FLYING] = {super = {"fighting", "bug", "grass"}, weak = {"rock", "electric"}}, [COMBAT_POISON] = {super = {"grass"}, weak = {"poison", "ground", "rock", "ghost"}, non = {"steel"}}, [COMBAT_GROUND] = {super = {"poison", "rock", "fire", "electric"}, weak = {"bug", "grass"}, non = {"flying"}}, [COMBAT_ROCK] = {super = {"flying", "bug", "fire", "ice"}, weak = {"fighting", "ground"}}, [COMBAT_BUG] = {super = {"grass", "psychic", "dark"}, weak = {"fighting", "flying", "poison", "ghost", "fire"}}, [COMBAT_GHOST] = {super = {"ghost", "psychic"}, weak = {"dark"}, non = {"normal"}}, [COMBAT_FIRE] = {super = {"bug", "grass", "ice"}, weak = {"rock", "fire", "water", "dragon"}}, [COMBAT_WATER] = {super = {"ground", "rock", "fire"}, weak = {"water", "grass", "dragon"}}, [COMBAT_GRASS] = {super = {"ground", "rock", "water"}, weak = {"flying", "poison", "bug", "fire", "grass", "dragon"}}, [COMBAT_ELECTRIC] = {super = {"flying", "water"}, weak = {"grass", "electric", "dragon"}, non = {"ground"}}, [COMBAT_PSYCHIC] = {super = {"fighting", "poison"}, weak = {"psychic"}, non = {"dark"}}, [COMBAT_ICE] = {super = {"flying", "ground", "grass", "dragon"}, weak = {"fire", "water", "ice"}}, [COMBAT_DRAGON] = {super = {"dragon"}}, [COMBAT_DARK] = {super = {"ghost", "psychic"}, weak = {"fighting", "dark"}}, } local defenseType = pokes[getCreatureName(cid)].type if combatee ~= COMBAT_PHYSICALDAMAGE then if isInArray(effectiveness[combat].super, defenseType) then x = 2 elseif isInArray(effectiveness[combat].weak, defenseType) then x = 0.5 elseif isInArray(effectiveness[combat].non, defenseType) then return false end end Lógico precisaria dar uma estudada melhor no código e refazer algumas coisas, mas esse sistema de efetividade do PD é muito antigo e na época deu muita dor de cabeça por causa do lag que ele gerava. -- Eu estou trabalhando em cima do .xml do Pokémon então todas as informações necessárias eu puxo dele: Level, vida, ganho de vida p/ level, pokedex id, pokedex descrição, etc.. Retirei diversas coisas aleatórias e deixei apenas o essencial para o funcionamento do Pokémon, o sistema de fala do monstro eu refiz direto na src com uma chance fixa para falar o "nome" do pokémon.
  9. Esse move system é igual ao do PDA? Que utiliza as spells de um arquivo na lib? Como foi feito as configurações dos monstros? Se me lembro bem, antigamente no Pokémon Dash era usado 2 pokémon, um para o player e um selvagem, foi corrigido nesta versão para o estilo PDA?
  10. Tu pode simplesmente fazer assim e alterar o X e Y no doSendMagicEffect: local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_BLOCKARMOR, 1) setCombatParam(combat, COMBAT_PARAM_BLOCKSHIELD, 1) setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat, COMBAT_PARAM_HITCOLOR, 187) setCombatFormula(combat, COMBAT_FORMULA_SKILL, 3, 0, 1, 0) function onUseWeapon(cid, var) local tPos = isCreature(getCreatureTarget(cid)) and getThingPos(getCreatureTarget(cid)) or false if tPos then tPos.y = tPos.y tPos.x = tPos.x + 1 doSendMagicEffect(tPos, 305) doSendMagicEffect(tPos, X) doSendMagicEffect(tPos, Y) end return doCombat(cid, combat, var) end
  11. Apenas uma duvida o effect devera sair no mesmo tempo do "305"? Ou será um effect aleatório a cada "hit"?
  12. Olá @Naze estou com os seguintes erros ao tentar adicionar na source 0.3.6:
  13. Isso não é PokeStorm, isso é PDA, basicamente é o que o @Underewar te explicou: - No arquivo Pokemon Status.lua você ira alterar a força do pokémon em si: ['Vileplume'] = {offense = 1, defense = 6.5, specialattack = 6.5, life = 1100, vitality = 7, agility = 200, exp = 1, level = 75, wildLvl = 45, type = 'grass', type2 = 'poison'}, Mas explicando o que cada coisa significa: - Offense = Atributo de attack do pokémon; - Defense = Atributo de defesa do pokémon; - SpecialAttack = Atributo relacionado ao dano das spells; - Life = Vida inicial do pokémon no caso "1100", não significa que ele ira ficar com essa life, já que o atributo vitality altera esse valor. - Vitality = Atributo que ira modificar o valor fixo do "life". - Agility = Atributo relacionado a velocidade do pokémon. - Exp = Auto explicativa exp do pokémon. - Level = Level que o player precisa para usar o pokémon. - WildLvl = Level utilizado para alterar o dano do pokémon caso o mesmo seja selvagem.

Informação Importante

Confirmação de Termo