Jump to content

[C++]Unlimited Arrows(Lent) FULL


Nukayool
 Share

Recommended Posts

Instalaste algum sistema de setas anteriormente?

O battle.cpp do sistema, está a usar a função da seguinte maneira:

int CalcArrowDamage(LPCHARACTER pkAttacker, LPCHARACTER pkVictim, LPITEM pkBow, LPITEM pkArrow, bool bIgnoreDefense)

Mas no teu battle.h tens definido:

extern int	CalcArrowDamage(LPCHARACTER pkAttacker, LPCHARACTER pkVictim, LPITEM pkBow, LPITEM pkArrow, bool bIgnoreDefense = false, bool bIgnoreDistance = false);

Experimenta no battle.h, mudar o campo acima para:

extern int	CalcArrowDamage(LPCHARACTER pkAttacker, LPCHARACTER pkVictim, LPITEM pkBow, LPITEM pkArrow, bool bIgnoreDefense = false);

 

Link to comment
Share on other sites

Procura então por bIgnoreDistance na tua source, se já está na tua source significa que já tens o sistema aljava instalado, ou pelo menos parte dele (o bIgnoreSystem é do sistema publicado na epvp), nesse caso não precisas do lennt

Link desse sistema:

https://www.elitepvpers.com/forum/metin2-pserver-guides-strategies/3778387-rls-k-cher-des-bogensch-tzen-offizieller-patch-version-15-4-a.html

Link to comment
Share on other sites

Flechas ilimitadas + dano igual independentemente da distância.

Apenas não faz aquele efeito "bonito" da flecha a ser lançada que o do lennt faz.

 

Se quiseres que o sistema funcione nas flechas normais, sem ser preciso equipar a aljava, basta no tutorial,  onde diz para colocar o seguinte código:

switch (pkArrow->GetVnum())
{
	case ITEM_QUIVER_1_DAY:
	case ITEM_QUIVER_7_DAYS:
	case ITEM_QUIVER_15_DAYS:
	case ITEM_QUIVER_30_DAYS:
		iDam = CalcArrowDamage(m_me, pkVictim, pkBow, pkArrow, false, true);
		break;
	default:
		iDam = CalcArrowDamage(m_me, pkVictim, pkBow, pkArrow);
		m_me->UseArrow(pkArrow, 1);
		break;
}

Colocar antes o seguinte:

iDam = CalcArrowDamage(m_me, pkVictim, pkBow, pkArrow, false, true);

Assim fica com setas ilimitadas e a dar dano independentemente da distancia.

Caso queiras dano independentemente da distancia, mas a consumir flechas, então muda para:

iDam = CalcArrowDamage(m_me, pkVictim, pkBow, pkArrow, false, true);
m_me->UseArrow(pkArrow, 1);

 

Link to comment
Share on other sites

Just now, Nukayool said:

@Tierri Lopes 

A minha ideia é deixar as que tão normais e meter  a dar dano igual então é so meter isto


iDam = CalcArrowDamage(m_me, pkVictim, pkBow, pkArrow, false, true);

 

Desculpa lá tar a e chatear disto.

Sim, fazes o tutorial da epvp, no entanto, no ficheiro char_battle.cpp

Quando diz para substituires

iDam = CalcArrowDamage(m_me, pkVictim, pkBow, pkArrow);
m_me->UseArrow(pkArrow, 1);

Por aquele switch, substituis antes por:

iDam = CalcArrowDamage(m_me, pkVictim, pkBow, pkArrow, false, true);
m_me->UseArrow(pkArrow, 1);

A parte dos protos, itemdesc e assim podes ignorar

Link to comment
Share on other sites

1 minute ago, Nukayool said:

@Tierri Lopes 

Só uma coisa, se possivel consegues me converter aqueles txt em sql? 

é que não me dou com isso, nao uso txt.

Se possivel claro.

Obrigadão

Cumpz

 

Não precisas dos protos, com a alteração que disse as flechas normais ficam a dar dano independentemente da distancia, sem ser preciso equipar aljava

Link to comment
Share on other sites

 

43 minutes ago, Nukayool said:

@Tierri Lopes 

 

Olha ao final de alguns testes reparei que no hit sim ela saca o mesmo ao longe como perto.

Mas em Skills já não está assim.

Cumpz

Em battle.cpp

Dentro de:

int CalcArrowDamage

Procura por:

iPureDam = (iPureDam * iPercent) / 100;

Muda para:

//iPureDam = (iPureDam * iPercent) / 100; //Skill arrow sem distancia

 

Link to comment
Share on other sites

  • 5 months later...

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...