@Drazyn1291 Ainda estou viajando, mano =/
- Fórum
- OTServ
- Recursos
- Linguagens de Programação
- [c++] passive system
info
Grupo: Conde
Registrado: 14/04/15
Posts: 956
Reputação: +333
Gênero: Masculino

@dalvorsn ou @Kilowog ou qual quer outro programador experiente ae vê se está certo o code:
http://hastebin.com/yegeqaqeqe.coffee
Vi oq o Kilowog disse e tentei usar a ideia dele, só não sei se está correto, teria como vcs dizerem se está correto? se não, oq tem q fazer para corrigir?
1 hour ago, Drazyn1291 said:@dalvorsn ou @Kilowog ou qual quer outro programador experiente ae vê se está certo o code:
http://hastebin.com/yegeqaqeqe.coffee
Vi oq o Kilowog disse e tentei usar a ideia dele, só não sei se está correto, teria como vcs dizerem se está correto? se não, oq tem q fazer para corrigir?
Mas isso foi o que eu fiz na primeira, o unico problema ai é que em outros lugares onde ele usa o damage map vai ter que adaptar também, até a nivel de script, a deathlist por exemplo vai ta passando o guid quando for player
info
Grupo: Conde
Registrado: 14/04/15
Posts: 956
Reputação: +333
Gênero: Masculino

Agora, dalvorsn disse:Mas isso foi o que eu fiz na primeira, o unico problema ai é que em outros lugares onde ele usa o damage map vai ter que adaptar também, até a nivel de script, a deathlist por exemplo vai ta passando o guid quando for player
Não tem como fazer tipo, na hora de setar o lasthit repetir o processo só que ao invés de usar o guid usar o uid, dai iria enviar o guid (só pra dizer que atacou) e o uid (como lasthit) para o deathList funfar normalmente
12 minutes ago, Drazyn1291 said:Não tem como fazer tipo, na hora de setar o lasthit repetir o processo só que ao invés de usar o guid usar o uid, dai iria enviar o guid (só pra dizer que atacou) e o uid (como lasthit) para o deathList funfar normalmente
Ah sim, agora que notei, pode sim, mas não muda a lista do onDeath ainda
info
Grupo: Conde
Registrado: 14/04/15
Posts: 956
Reputação: +333
Gênero: Masculino

4 horas atrás, dalvorsn disse:Ah sim, agora que notei, pode sim, mas não muda a lista do onDeath ainda
Então iria contiuar sem sem mandar a msg de loot neh
54 minutes ago, Drazyn1291 said:Então iria contiuar sem sem mandar a msg de loot neh
Provavelmente, chegou a testar?
info
Grupo: Conde
Registrado: 14/04/15
Posts: 956
Reputação: +333
Gênero: Masculino

9 horas atrás, dalvorsn disse:Provavelmente, chegou a testar?
A minha teoria não, pq não sei fazer codes muito complexos, eu sei o basico de C então consigo entender e modificar algumas coisas em C++, caso você possa ajudar nisso T.T
@Drazyn1291 Infelizmente fiquei sem tempo por conta do trabalho para ver isto, estou doido para ver, mas ta osso. @dalvorsn será muito complicado adaptar onde usa o damageMap?
Seria interessante se o autor do código original pudesse vir aqui ajudar, tenho certeza que conseguiria resolver
![]()
ou o @Ceetros que disse q ia compartilhar se o autor permitia e ainda nao compartilhou nd
sera q ainda ta vialhando?
Em 29/06/2016 at 10:22, Josegvb disse:ou o @Ceetros que disse q ia compartilhar se o autor permitia e ainda nao compartilhou nd
sera q ainda ta vialhando?
0.3.6:
Em monster.cpp acha:
bool Monster::canUseAttack(const Position& pos, const Creature* target) const
E deleta a parte que tem
!isHostile()
Não lembro como é
2 hours ago, Ceetros said:
0.3.6:
Em monster.cpp acha:
bool Monster::canUseAttack(const Position& pos, const Creature* target) constE deleta a parte que tem
!isHostile()Não lembro como é
eliminei oq vc falou:
bool Monster::canUseAttack(const Position& pos, const Creature* target) const
{
if(!isHostile())
return true;
const Position& targetPos = target->getPosition();
for(SpellList::iterator it = mType->spellAttackList.begin(); it != mType->spellAttackList.end(); ++it)
{
if((*it).range != 0 && std::max(std::abs(pos.x - targetPos.x), std::abs(pos.y - targetPos.y)) <= (int32_t)(*it).range)
return g_game.isSightClear(pos, targetPos, true);
}
return false;
}
ficando assim:
bool Monster::canUseAttack(const Position& pos, const Creature* target) const
{
const Position& targetPos = target->getPosition();
for(SpellList::iterator it = mType->spellAttackList.begin(); it != mType->spellAttackList.end(); ++it)
{
if((*it).range != 0 && std::max(std::abs(pos.x - targetPos.x), std::abs(pos.y - targetPos.y)) <= (int32_t)(*it).range)
return g_game.isSightClear(pos, targetPos, true);
}
return false;
}
porem o bixo ainda fica andando sem atacar quando é targetado nem qndo leva dano...
17 horas atrás, Josegvb disse:
eliminei oq vc falou:
bool Monster::canUseAttack(const Position& pos, const Creature* target) const
{
if(!isHostile())
return true;
const Position& targetPos = target->getPosition();
for(SpellList::iterator it = mType->spellAttackList.begin(); it != mType->spellAttackList.end(); ++it)
{
if((*it).range != 0 && std::max(std::abs(pos.x - targetPos.x), std::abs(pos.y - targetPos.y)) <= (int32_t)(*it).range)
return g_game.isSightClear(pos, targetPos, true);
}
return false;
}
ficando assim:
bool Monster::canUseAttack(const Position& pos, const Creature* target) const
{
const Position& targetPos = target->getPosition();
for(SpellList::iterator it = mType->spellAttackList.begin(); it != mType->spellAttackList.end(); ++it)
{
if((*it).range != 0 && std::max(std::abs(pos.x - targetPos.x), std::abs(pos.y - targetPos.y)) <= (int32_t)(*it).range)
return g_game.isSightClear(pos, targetPos, true);
}
return false;
}
porem o bixo ainda fica andando sem atacar quando é targetado nem qndo leva dano...
Cola a sua função
bool Monster::selectTarget(Creature* creature)





info
Grupo: Conde
Registrado: 14/04/15
Posts: 956
Reputação: +333
Gênero: Masculino
Eu falei com o Ceetros um dia desses (uns 2 dias dps de ele pedir permisão) ele disse q tava viajando