Jump to content

C++ Max Attack speed


Recommended Posts

In char.cpp

int CHARACTER::GetLimitPoint(BYTE type) const

search:

case POINT_ATT_SPEED:
            min_limit = 0;

            if (IsPC())
                limit = 170;

and change the 170 as you want.

 

Its not work for me, more than 255+ bugg.

It is not a bug. You must change the attack speed's data type in packets like TPacketGCCharacterUpdate and TPacketGCCharacterAdd.

Edited by .Devil.
Link to comment
Share on other sites

In char.cpp

int CHARACTER::GetLimitPoint(BYTE type) const

search:

case POINT_ATT_SPEED:
            min_limit = 0;

            if (IsPC())
                limit = 170;

and change the 170 as you want.

 

Its not work for me, more than 255+ bugg.

It is not a bug. You must change the attack speed's data type in packets like TPacketGCCharacterUpdate and TPacketGCCharacterAdd.

Poorly written, it was about the error.

Link to comment
Share on other sites

In char.cpp

int CHARACTER::GetLimitPoint(BYTE type) const

search:

case POINT_ATT_SPEED:
            min_limit = 0;

            if (IsPC())
                limit = 170;

and change the 170 as you want.

 

Its not work for me, more than 255+ bugg.

It is not a bug. You must change the attack speed's data type in packets like TPacketGCCharacterUpdate and TPacketGCCharacterAdd.

Poorly written, it was about the error.

So.. what is your bug? I don't understand you and your problem, really.
You want to increase attack speed.. so.. I replied why more than 255 doesn't work. I don't replied why there are crash..

In any case, guys, you have to read about ani.cpp. If you want to decrease ninja's crashes try editing GET_ATTACK_SPEED's battle.cpp function.

DWORD GET_ATTACK_SPEED(LPCHARACTER ch)
{
    if (NULL == ch)
        return 1000;

	LPITEM item = ch->GetWear(WEAR_WEAPON);
	DWORD default_bonus = SPEEDHACK_LIMIT_BONUS;    // 유두리 공속(기본 80)
	DWORD riding_bonus = 0;

	if (ch->IsRiding())
	{
		// 뭔가를 탔으면 추가공속 50
		riding_bonus = 50;
	}

	DWORD ani_speed = ani_attack_speed(ch);
    DWORD real_speed = (ani_speed * 100) / (default_bonus + ch->GetPoint(POINT_ATT_SPEED) + riding_bonus);

	// 단검의 경우 공속 2배
	if (item && item->GetSubType() == WEAPON_DAGGER)
		real_speed /= 2;

    return real_speed;
}

To:

DWORD GET_ATTACK_SPEED(LPCHARACTER ch)
{
    if (NULL == ch)
        return 1000;

	LPITEM item = ch->GetWear(WEAR_WEAPON);
	DWORD default_bonus = SPEEDHACK_LIMIT_BONUS;    // 유두리 공속(기본 80)
	DWORD riding_bonus = 0;

	if (ch->IsRiding())
	{
		// 뭔가를 탔으면 추가공속 50
		riding_bonus = 50;
	}

	DWORD ani_speed = ani_attack_speed(ch);
    DWORD real_speed = (ani_speed * 100) / (default_bonus + ch->GetPoint(POINT_ATT_SPEED) + riding_bonus);

    return real_speed;
}

But I think this is a wrong way to do this..
Another thing you can do it is to disable the speed hack. But the same, it is the wrong way. The "right" thing to do is, in my opinion, editing combo_%d.msa in /data/(pc|pc2)/(asssin|shaman|...), but for this you need to understand how ani.cpp works. I've never tried to edit these files, so this method is not tested.

Edited by .Devil.
Link to comment
Share on other sites

In char.cpp

int CHARACTER::GetLimitPoint(BYTE type) const

search:

case POINT_ATT_SPEED:
            min_limit = 0;

            if (IsPC())
                limit = 170;

and change the 170 as you want.

 

Its not work for me, more than 255+ bugg.

It is not a bug. You must change the attack speed's data type in packets like TPacketGCCharacterUpdate and TPacketGCCharacterAdd.

Poorly written, it was about the error.

So.. what is your bug? I don't understand you and your problem, really.
You want to increase attack speed.. so.. I replied why more than 255 doesn't work. I don't replied why there are crash..

In any case, guys, you have to read about ani.cpp. If you want to decrease ninja's crashes try editing GET_ATTACK_SPEED's battle.cpp function.

DWORD GET_ATTACK_SPEED(LPCHARACTER ch)
{
    if (NULL == ch)
        return 1000;

	LPITEM item = ch->GetWear(WEAR_WEAPON);
	DWORD default_bonus = SPEEDHACK_LIMIT_BONUS;    // 유두리 공속(기본 80)
	DWORD riding_bonus = 0;

	if (ch->IsRiding())
	{
		// 뭔가를 탔으면 추가공속 50
		riding_bonus = 50;
	}

	DWORD ani_speed = ani_attack_speed(ch);
    DWORD real_speed = (ani_speed * 100) / (default_bonus + ch->GetPoint(POINT_ATT_SPEED) + riding_bonus);

	// 단검의 경우 공속 2배
	if (item && item->GetSubType() == WEAPON_DAGGER)
		real_speed /= 2;

    return real_speed;
}

To:

DWORD GET_ATTACK_SPEED(LPCHARACTER ch)
{
    if (NULL == ch)
        return 1000;

	LPITEM item = ch->GetWear(WEAR_WEAPON);
	DWORD default_bonus = SPEEDHACK_LIMIT_BONUS;    // 유두리 공속(기본 80)
	DWORD riding_bonus = 0;

	if (ch->IsRiding())
	{
		// 뭔가를 탔으면 추가공속 50
		riding_bonus = 50;
	}

	DWORD ani_speed = ani_attack_speed(ch);
    DWORD real_speed = (ani_speed * 100) / (default_bonus + ch->GetPoint(POINT_ATT_SPEED) + riding_bonus);

    return real_speed;
}

But I think this is a wrong way to do this..
Another thing you can do it is to disable the speed hack. But the same, it is the wrong way. The "right" thing to do is, in my opinion, editing combo_%d.msa in /data/(pc|pc2)/(asssin|shaman|...), but for this you need to understand how ani.cpp works. I've never tried to edit these files, so this method is not tested.

I think must change the client too

Link to comment
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now

Announcements



×
×
  • Create New...

Important Information

Terms of Use / Privacy Policy / Guidelines / We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.