Histórico de Curtidas
-
Gabriel. recebeu reputação de Tyren em [10.98][TFS 1.2] PokeDash Pota v1.0 - Server, Client, Sources, Site, Map editor e Item editorPara 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
-
Gabriel. recebeu reputação de Mariano Watterson em [10.98][TFS 1.2] PokeDash Pota v1.0 - Server, Client, Sources, Site, Map editor e Item editorPara 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
-
Gabriel. recebeu reputação de DiigooMix em [10.98][TFS 1.2] PokeDash Pota v1.0 - Server, Client, Sources, Site, Map editor e Item editorPara 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
-
Gabriel. recebeu reputação de Danijo em [10.98][TFS 1.2] PokeDash Pota v1.0 - Server, Client, Sources, Site, Map editor e Item editorNa 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.
-
Gabriel. recebeu reputação de Danijo em [10.98][TFS 1.2] PokeDash Pota v1.0 - Server, Client, Sources, Site, Map editor e Item editorSinceramente? 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..
-
Gabriel. recebeu reputação de Danijo em [10.98][TFS 1.2] PokeDash Pota v1.0 - Server, Client, Sources, Site, Map editor e Item editorPara 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
-
Gabriel. deu reputação a FeeTads em AutoLoot Sources pra Otx2 (modificando o script do naze)salve rapaziada, do TK, esses tempos eu tava a procura de um autoloot bom e eficiente, e como vocês devem saber, o autoloot usado nos scripts .lua são bem "pesados"
o @Naze fez um excelentíssimo trabalho e disponibilizou um script de autoloot na source, porém como a vida é dificil, ele tem alguns bugs de função e um deles é no
"remove autoloot" que quando o player digita "!autoloot remove, nome-do-item" nada acontece, eu decidi mexer e vim disponibilizar arrumado pra vcs.
LEMBRANDO QUE 100% DOS CRÉDITOS SÃO AO @Naze porém se vc procurar no tópico dele ainda vai estar bugado, então resolvi deixar aqui certinho pra ajudar quem precisar.
Link do tópico do naze: https://tibiaking.com/forums/topic/101086-otimizado-autoloot-in-sources-for-otx2-ou-menor/
caso alguém ja utilize esse autoloot e esteja com o problema de remover items do autoloot
só ir em player.cpp e trocar
isso:
void Player::removeAutoLoot(uint16_t id) { if(checkAutoLoot(id)) { return; } AutoLoot.remove(id); }
por isso:
void Player::removeAutoLoot(uint16_t id) { if(!checkAutoLoot(id)) return; for(std::list<uint16_t>::iterator it = AutoLoot.begin(); it != AutoLoot.end(); ++it) { if((*it) == id) { AutoLoot.erase(it); break; } } }
todos os créditos ao Naze, não sei se alguém mais fez esse código, mas como peguei do link citado acima que é post dele deixo aqui o autoloot 100% funcional direto nas sources
-
Gabriel. recebeu reputação de Under em Onde que ficas as configurações para balancear os pokemons?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.