Jump to content
  • 0

changing skills in bg...


cder

Question


  • Group:  Members
  • Topic Count:  36
  • Topics Per Day:  0.02
  • Content Count:  96
  • Reputation:   0
  • Joined:  08/06/18
  • Last Seen:  

I would like to know how you could change the damage of abilities when entering the bg maps, for example: from 200% to 100% sonic blow, from 200% to 150% "storm gust"

Link to comment
Share on other sites

9 answers to this question

Recommended Posts

  • 1

  • Group:  Members
  • Topic Count:  20
  • Topics Per Day:  0.01
  • Content Count:  416
  • Reputation:   73
  • Joined:  05/16/19
  • Last Seen:  

4 hours ago, cder said:

I don't understand you well this time @Naruto, however I know how to deal with "skill_damage_db.txt", but what I want to do is put an "if (bg)" in the "src" skills,

Example 1: I want to change the time that the skill lasts "Install Trap" to last less time in the bg, and more time on normal maps, understand?

Example 2: Or the percentage that the ability to throw potion will heal outside the bg and on maps ......

Hmm its a bit different from hercules ( Ive never actually used these tags on rathena but...)

			// Ashura Strike still has slide effect in GVG
			if ((mbl == src || (!map_flag_gvg2(src->m) && !map_getmapflag(src->m, MF_BATTLEGROUND))) &&
				unit_movepos(src, mbl->x + x, mbl->y + y, 1, 1)) {
				clif_blown(src);
				clif_spiritball(src);
			}
		}
		break;

So you got your list of these in the map.h

Spoiler

/**
 * Check if map is GVG maps exclusion for item, skill, and status restriction check (regardless of agit_flag status)
 * @param mapdata: Map Data
 * @return True on success or false otherwise
 * @author Cydh
 */
inline bool mapdata_flag_gvg2_no_te(struct map_data *mapdata) {
    if (mapdata == nullptr)
        return false;

    if (mapdata->flag[MF_GVG] || mapdata->flag[MF_GVG_CASTLE])
        return true;

    return false;
}

/// Backwards compatibility
inline bool map_flag_vs(int16 m) {
    if (m < 0)
        return false;

    struct map_data *mapdata = &map[m];

    return mapdata_flag_vs(mapdata);
}

inline bool map_flag_vs2(int16 m) {
    if (m < 0)
        return false;

    struct map_data *mapdata = &map[m];

    return mapdata_flag_vs2(mapdata);
}

inline bool map_flag_gvg(int16 m) {
    if (m < 0)
        return false;

    struct map_data *mapdata = &map[m];

    return mapdata_flag_gvg(mapdata);
}

inline bool map_flag_gvg2(int16 m) {
    if (m < 0)
        return false;

    struct map_data *mapdata = &map[m];

    return mapdata_flag_gvg2(mapdata);
}

inline bool map_flag_ks(int16 m) {
    if (m < 0)
        return false;

    struct map_data *mapdata = &map[m];

    return mapdata_flag_ks(mapdata);
}

inline bool map_flag_gvg2_te(int16 m) {
    if (m < 0)
        return false;

    struct map_data *mapdata = &map[m];

    return mapdata_flag_gvg2_te(mapdata);
}

inline bool map_flag_gvg2_no_te(int16 m) {
    if (m < 0)
        return false;

    struct map_data *mapdata = &map[m];

    return mapdata_flag_gvg2_no_te(mapdata);
}

and your mapflags 

Spoiler

    MF_INVALID = -1,
    MF_MIN = 0,
    MF_NOMEMO = 0,
    MF_NOTELEPORT,
    MF_NOSAVE,
    MF_NOBRANCH,
    MF_NOPENALTY,
    MF_NOZENYPENALTY,
    MF_PVP,
    MF_PVP_NOPARTY,
    MF_PVP_NOGUILD,
    MF_GVG,
    MF_GVG_NOPARTY,    //10
    MF_NOTRADE,
    MF_NOSKILL,
    MF_NOWARP,
    MF_PARTYLOCK,
    MF_NOICEWALL,
    MF_SNOW,
    MF_FOG,
    MF_SAKURA,
    MF_LEAVES,
    //MF_RAIN,    //20 - No longer available, keeping here just in case it's back someday. [Ind]
    // 21 free
    MF_NOGO = 22,
    MF_CLOUDS,
    MF_CLOUDS2,
    MF_FIREWORKS,
    MF_GVG_CASTLE,
    MF_GVG_DUNGEON,
    MF_NIGHTENABLED,
    MF_NOBASEEXP,
    MF_NOJOBEXP,    //30
    MF_NOMOBLOOT,
    MF_NOMVPLOOT,
    MF_NORETURN,
    MF_NOWARPTO,
    MF_PVP_NIGHTMAREDROP,
    MF_RESTRICTED,
    MF_NOCOMMAND,
    MF_NODROP,
    MF_JEXP,
    MF_BEXP,    //40
    MF_NOVENDING,
    MF_LOADEVENT,
    MF_NOCHAT,
    MF_NOEXPPENALTY,
    MF_GUILDLOCK,
    MF_TOWN,
    MF_AUTOTRADE,
    MF_ALLOWKS,
    MF_MONSTER_NOTELEPORT,
    MF_PVP_NOCALCRANK,    //50
    MF_BATTLEGROUND,
    MF_RESET,
    MF_NOMAPCHANNELAUTOJOIN,
    MF_NOUSECART,
    MF_NOITEMCONSUMPTION,
    MF_NOSUNMOONSTARMIRACLE,
    MF_NOMINEEFFECT,
    MF_NOLOCKON,
    MF_NOTOMB,
    MF_SKILL_DAMAGE,    //60
    MF_NOCOSTUME,
    MF_GVG_TE_CASTLE,
    MF_GVG_TE,
    MF_HIDEMOBHPBAR,
    MF_NOLOOT,
    MF_NOEXP,
    MF_PRIVATEAIRSHIP_SOURCE,
    MF_PRIVATEAIRSHIP_DESTINATION,
    MF_SKILL_DURATION,
    MF_MAX

using the format mentioned in extremity fist you can fit any of these together to limit what you want 

  • MVP 1
Link to comment
Share on other sites

  • 1

  • Group:  Members
  • Topic Count:  15
  • Topics Per Day:  0.01
  • Content Count:  81
  • Reputation:   17
  • Joined:  07/18/16
  • Last Seen:  

13 minutes ago, cder said:

I would like to know how you could change the damage of abilities when entering the bg maps, for example: from 200% to 100% sonic blow, from 200% to 150% "storm gust"

you can adjust damage at import\skill_damage_db.txt

  • Upvote 1
Link to comment
Share on other sites

  • 0

  • Group:  Members
  • Topic Count:  36
  • Topics Per Day:  0.02
  • Content Count:  96
  • Reputation:   0
  • Joined:  08/06/18
  • Last Seen:  

3 hours ago, kodkodkub said:

you can adjust damage at import\skill_damage_db.txt

 

2 hours ago, Naruto said:

just gotta add a 

if (gvg) map condition to the top of the src  , whereever your trying to modify

 

theres a bunch already 

Congratulations to the two answers, at first I was looking for something similar to the "Naruto" answer, I think it can be edited more specifically, but the "skill_damage_db.txt" mode is very simple, but I want to have the way that the "Naruto" posted, I didn't find any "if (gvg)" in my "src" documents, but is it possible to put in one of the skills of "battle.cpp" without conflict in the compilation and is this mode really functional ?? @Naruto

Link to comment
Share on other sites

  • 0

  • Group:  Members
  • Topic Count:  15
  • Topics Per Day:  0.01
  • Content Count:  81
  • Reputation:   17
  • Joined:  07/18/16
  • Last Seen:  

If you're talking about "Skill Damage"
skill_damage_db.txt is your if else or whatever condition
it made for you to adjust the damage easily, you dont need to edit src which need recompile
just @reloadskilldb

Ex. Sonic Blow 100% Damage

skill_damage_db.txt : set -50% in GVG
*Result* : Sonic Blow 50% damage in GVG

so it's working like

if(map == GVG)
Sonic Blow Damage Ratio = Sonic Blow Damage Ratio / 2
*Result* : Sonic Blow 50% damage in GVG

same result but more simple

  • MVP 1
Link to comment
Share on other sites

  • 0

  • Group:  Members
  • Topic Count:  20
  • Topics Per Day:  0.01
  • Content Count:  416
  • Reputation:   73
  • Joined:  05/16/19
  • Last Seen:  

51 minutes ago, cder said:

 

Congratulations to the two answers, at first I was looking for something similar to the "Naruto" answer, I think it can be edited more specifically, but the "skill_damage_db.txt" mode is very simple, but I want to have the way that the "Naruto" posted, I didn't find any "if (gvg)" in my "src" documents, but is it possible to put in one of the skills of "battle.cpp" without conflict in the compilation and is this mode really functional ?? @Naruto

Maybe but i dont work here

Could make an invisible item bonus , pretty sure theres one for gvg damage specifically 

 

just gotta add a 

if (gvg) map condition to the top of the src  , whereever your trying to modify

 

theres a bunch already 

Link to comment
Share on other sites

  • 0

  • Group:  Members
  • Topic Count:  36
  • Topics Per Day:  0.02
  • Content Count:  96
  • Reputation:   0
  • Joined:  08/06/18
  • Last Seen:  

1 hour ago, kodkodkub said:

If you're talking about "Skill Damage"
skill_damage_db.txt is your if else or whatever condition
it made for you to adjust the damage easily, you dont need to edit src which need recompile
just @reloadskilldb


Ex. Sonic Blow 100% Damage

skill_damage_db.txt : set -50% in GVG
*Result* : Sonic Blow 50% damage in GVG

so it's working like

if(map == GVG)
Sonic Blow Damage Ratio = Sonic Blow Damage Ratio / 2
*Result* : Sonic Blow 50% damage in GVG

same result but more simple

I already understood this, however it is limited to what I want so it may be that I need to change it in the "src"

 

1 hour ago, Naruto said:

Maybe but i dont work here

 

Could make an invisible item bonus , pretty sure theres one for gvg damage specifically 

Can I use "if (bg)" instead of "if (gvg)", because in skill_damage_db, you have this option ...

Link to comment
Share on other sites

  • 0

  • Group:  Members
  • Topic Count:  20
  • Topics Per Day:  0.01
  • Content Count:  416
  • Reputation:   73
  • Joined:  05/16/19
  • Last Seen:  

1 hour ago, cder said:

I already understood this, however it is limited to what I want so it may be that I need to change it in the "src"

 

Can I use "if (bg)" instead of "if (gvg)", because in skill_damage_db, you have this option ...

Pretty sure that thing is really buggy ... some things dont necessarly balance the way they should like on ashura strike, but i mean it still does its job

 

// 		1    - Normal (the maps that aren't classified as these maps below)
// 		2    - PVP
// 		4    - GVG
// 		8    - Battlegrounds
// 		16   - 'skill_damage' mapflag

looks like thats not how your supposed to be writing it at all and its like the old database with the whole 0x000000 thing for equipment requirements 

 

So to increase damage in PvP GvG and BG maps you would write 14 (8 + 4 + 2)

  • Upvote 1
Link to comment
Share on other sites

  • 0

  • Group:  Members
  • Topic Count:  36
  • Topics Per Day:  0.02
  • Content Count:  96
  • Reputation:   0
  • Joined:  08/06/18
  • Last Seen:  

I don't understand you well this time @Naruto, however I know how to deal with "skill_damage_db.txt", but what I want to do is put an "if (bg)" in the "src" skills,

Example 1: I want to change the time that the skill lasts "Install Trap" to last less time in the bg, and more time on normal maps, understand?

Example 2: Or the percentage that the ability to throw potion will heal outside the bg and on maps ......

Edited by cder
Link to comment
Share on other sites

  • 0

  • Group:  Members
  • Topic Count:  36
  • Topics Per Day:  0.02
  • Content Count:  96
  • Reputation:   0
  • Joined:  08/06/18
  • Last Seen:  

On 30/04/2020 at 08:30, Naruto said:

Hmm, é um pouco diferente de Hércules (eu nunca usei essas tags em Rathena, mas ...)


Então você tem sua lista no map.h

  Revelar conteúdo oculto

/**
 * Check if map is GVG maps exclusion for item, skill, and status restriction check (regardless of agit_flag status)
 * @param mapdata: Map Data
 * @return True on success or false otherwise
 * @author Cydh
 */
inline bool mapdata_flag_gvg2_no_te(struct map_data *mapdata) {
    if (mapdata == nullptr)
        return false;

    if (mapdata->flag[MF_GVG] || mapdata->flag[MF_GVG_CASTLE])
        return true;

    return false;
}

/// Backwards compatibility
inline bool map_flag_vs(int16 m) {
    if (m < 0)
        return false;

    struct map_data *mapdata = &map[m];

    return mapdata_flag_vs(mapdata);
}

inline bool map_flag_vs2(int16 m) {
    if (m < 0)
        return false;

    struct map_data *mapdata = &map[m];

    return mapdata_flag_vs2(mapdata);
}

inline bool map_flag_gvg(int16 m) {
    if (m < 0)
        return false;

    struct map_data *mapdata = &map[m];

    return mapdata_flag_gvg(mapdata);
}

inline bool map_flag_gvg2(int16 m) {
    if (m < 0)
        return false;

    struct map_data *mapdata = &map[m];

    return mapdata_flag_gvg2(mapdata);
}

inline bool map_flag_ks(int16 m) {
    if (m < 0)
        return false;

    struct map_data *mapdata = &map[m];

    return mapdata_flag_ks(mapdata);
}

inline bool map_flag_gvg2_te(int16 m) {
    if (m < 0)
        return false;

    struct map_data *mapdata = &map[m];

    return mapdata_flag_gvg2_te(mapdata);
}

inline bool map_flag_gvg2_no_te(int16 m) {
    if (m < 0)
        return false;

    struct map_data *mapdata = &map[m];

    return mapdata_flag_gvg2_no_te(mapdata);
}

e seus mapflags 

  Revelar conteúdo oculto

    MF_INVALID = -1,
    MF_MIN = 0,
    MF_NOMEMO = 0,
    MF_NOTELEPORT,
    MF_NOSAVE,
    MF_NOBRANCH,
    MF_NOPENALTY,
    MF_NOZENYPENALTY,
    MF_PVP,
    MF_PVP_NOPARTY,
    MF_PVP_NOGUILD,
    MF_GVG,
    MF_GVG_NOPARTY, // 10
    MF_NOTRADE,
    MF_NOSKILL,
    MF_NOWARP,
    MF_PARTYLOCK,
    MF_NOICEWALL,
    MF_SNOW,
    MF_FOG,
    MF_SAKURA,
    MF_LEAVES,
    // MF_RAIN, // 20 - Não está mais disponível, mantendo aqui apenas no caso de voltar algum dia. [Ind]
    // 21 livres
    MF_NOGO = 22,
    MF_CLOUDS,
    MF_CLOUDS2,
    MF_FIREWORKS,
    MF_GVG_CASTLE,
    MF_GVG_DUNGEON,
    MF_NIGHTENABLED,
    MF_NOBASEEXP,
    MF_NOJOBEXP, // 30
    MF_NOMOBLOOT,
    MF_NOMVPLOOT,
    MF_NORETURN,
    MF_NOWARPTO,
    MF_PVP_NIGHTMAREDROP,
    MF_RESTRICTED,
    MF_NOCOMMAND,
    MF_NODROP,
    MF_JEXP,
    MF_BEXP, // 40
    MF_NOVENDING,
    MF_LOADEVENT,
    MF_NOCHAT,
    MF_NOEXPPENALTY,
    MF_GUILDLOCK,
    MF_TOWN,
    MF_AUTOTRADE,
    MF_ALLOWKS,
    MF_MONSTER_NOTELEPORT,
    MF_PVP_NOCALCRANK, // 50
    MF_BATTLEGROUND,
    MF_RESET,
    MF_NOMAPCHANNELAUTOJOIN,
    MF_NOUSECART,
    MF_NOITEMCONSUMPTION,
    MF_NOSUNMOONSTARMIRACLE,
    MF_NOMINEEFFECT,
    MF_NOLOCKON,
    MF_NOTOMB,
    MF_SKILL_DAMAGE, // 60
    MF_NOCOSTUME,
    MF_GVG_TE_CASTLE,
    MF_GVG_TE,
    MF_HIDEMOBHPBAR,
    MF_NOLOOT,
    MF_NOEXP,
    MF_PRIVATEAIRSHIP_SOURCE,
    MF_PRIVATEAIRSHIP_DESTINATION,
    MF_SKILL_DURATION,
    MF_MAX

usando o formato mencionado no punho extremo, você pode encaixar qualquer um deles para limitar o que deseja 

Nice, Thx.... close topic

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...