moneymuch Posted March 25, 2012 Group: Members Topic Count: 6 Topics Per Day: 0.00 Content Count: 20 Reputation: 0 Joined: 03/11/12 Last Seen: December 5, 2012 Share Posted March 25, 2012 (edited) i want to study create new skill, but i don't know how to creat new skill, so i try to alter it on the basis of "SM_BASH". i find "SM_BASH" in battle.c skill.c skill.h status.c according to its scheme , add in battle.c case AS_SONICBLOW: if(sd && pc_checkskill(sd,AS_SONICACCEL)>0) hitrate += hitrate * 50 / 100; break; case GC_VENOMPRESSURE: hitrate += 10 + 4 * skill_lv; break; //========================under=========================== case DIY_QIAN: hitrate += hitrate * 100 * skill_lv / 100; break; //========================above========================== } // Weaponry Research hidden bonus if (sd && (skill = pc_checkskill(sd,BS_WEAPONRESEARCH)) > 0) hitrate += hitrate * ( 2 * skill ) / 100; hitrate = cap_value(hitrate, battle_config.min_hitrate, battle_config.max_hitrate); =================Dividing lines======================= add in skill.c status_change_end(bl, SC_HARMONIZE, INVALID_TIMER); status_change_end(bl, SC_WINKCHARM, INVALID_TIMER); status_change_end(bl, SC_SONGOFMANA, INVALID_TIMER); status_change_end(bl, SC_DANCEWITHWUG, INVALID_TIMER); status_change_end(bl, SC_LERADSDEW, INVALID_TIMER); status_change_end(bl, SC_MELODYOFSINK, INVALID_TIMER); status_change_end(bl, SC_BEYONDOFWARCRY, INVALID_TIMER); status_change_end(bl, SC_UNLIMITEDHUMMINGVOICE, INVALID_TIMER); } break; //========================under=========================== case DIY_QIAN: if( sd && skilllv > 0 ){ sc_start(bl,SC_STUN,(50*skilllv+(int)sd->status.base_level/10), skilllv,skill_get_time(skillid,skilllv)); } breakb; //========================above========================== } if (md && battle_config.summons_trigger_autospells && md->master_id && md->special_state.ai) { //Pass heritage to Master for status causing effects. [skotlex] sd = map_id2sd(md->master_id); src = sd?&sd->bl:src; =================Dividing lines======================= add in skill.h EL_CIRCLE_OF_FIRE = 8401, EL_FIRE_CLOAK, EL_FIRE_MANTLE, EL_WATER_SCREEN, EL_WATER_DROP, EL_WATER_BARRIER, EL_WIND_STEP, EL_WIND_CURTAIN, EL_ZEPHYR, EL_SOLID_SKIN, EL_STONE_SHIELD, EL_POWER_OF_GAIA, EL_PYROTECHNIC, EL_HEATER, EL_TROPIC, EL_AQUAPLAY, EL_COOLER, EL_CHILLY_AIR, EL_GUST, EL_BLAST, EL_WILD_STORM, EL_PETROLOGY, EL_CURSED_SOIL, EL_UPHEAVAL, EL_FIRE_ARROW, EL_FIRE_BOMB, EL_FIRE_BOMB_ATK, EL_FIRE_WAVE, EL_FIRE_WAVE_ATK, EL_ICE_NEEDLE, EL_WATER_SCREW, EL_WATER_SCREW_ATK, EL_TIDAL_WEAPON, EL_WIND_SLASH, EL_HURRICANE, EL_HURRICANE_ATK, EL_TYPOON_MIS, EL_TYPOON_MIS_ATK, EL_STONE_HAMMER, EL_ROCK_CRUSHER, EL_ROCK_CRUSHER_ATK, EL_STONE_RAIN, //========================under=========================== DIY_QIAN = 10016, //========================above========================== }; /// The client view ids for land skills. =================Dividing lines======================= add in status.c set_sc( NPC_BLINDATTACK , SC_BLIND , SI_BLANK , SCB_HIT|SCB_FLEE ); set_sc( NPC_BLEEDING , SC_BLEEDING , SI_BLEEDING , SCB_REGEN ); set_sc( NPC_POISON , SC_DPOISON , SI_BLANK , SCB_DEF2|SCB_REGEN ); //The main status definitions add_sc( SM_BASH , SC_STUN ); //========================under=========================== add_sc( DIY_QIAN , SC_STUN ); //========================above========================== set_sc( SM_PROVOKE , SC_PROVOKE , SI_PROVOKE , SCB_DEF|SCB_DEF2|SCB_BATK|SCB_WATK ); add_sc( SM_MAGNUM , SC_WATK_ELEMENT ); =================Dividing lines======================= after release ok ,add information of skill in lua. icon effect sprite ok.skill_db ok(these is copy "SM_BASH",but i have altered name.) but ,when i enter the game, i can not find skill in skill bar, so,i don't know whether to finish for create a new skill, (i have used @allskill GM order) the steps of editor ,where is the mistake? sorry,i forget SVN version,but it is in less than this week. p.s. if you can , can you tell me what is effect of the command ?the command is purple. Edited March 25, 2012 by moneymuch Quote Link to comment Share on other sites More sharing options...
FatalEror Posted March 26, 2012 Group: Members Topic Count: 0 Topics Per Day: 0 Content Count: 67 Reputation: 23 Joined: 11/14/11 Last Seen: October 3, 2014 Share Posted March 26, 2012 (edited) case DIY_QIAN: hitrate += hitrate * 100 * skill_lv / 100; break; Increase HIT by (hitrate * 100 * skill_lv /100) 'only' when using this skill, your value seems too(VERY) high, this skill sure will never miss sc_start(bl,SC_STUN,(50*skilllv+(int)sd->status.base_level/10), skilllv,skill_get_time(skillid,skilllv)); bl = The target of status (src = self, bl = enemy) SC_STUN = Status (SC_*) (50*skilllv+(int)sd->status.base_level/10) = % chance to inflict SC_STUN status on target (1 = 1%, 50 = 50%) skilllv = Type (Doesn't really matter for SC_STUN, this is val1 in status_change_start function in status.c) skill_get_time(skillid,skilllv) = Status duration (skill_get_time() = Duration1 in skill_cast_db.txt) but ,when i enter the game, i can not find skill in skill bar,so,i don't know whether to finish for create a new skill, (i have used @allskill GM order) the steps of editor ,where is the mistake? Have you changed ../lua files/skillinfoz/skilltreeview.lua and ../db/re/skill_tree.txt ? Edited March 26, 2012 by FatalEror Quote Link to comment Share on other sites More sharing options...
Rytech Posted March 26, 2012 Group: Members Topic Count: 27 Topics Per Day: 0.01 Content Count: 319 Reputation: 199 Joined: 11/14/11 Last Seen: December 24, 2024 Share Posted March 26, 2012 (edited) Is this a guild skill your trying to add? Im asking this since your placing that ID in the guild skill ID's range which is 10000 - 10999. I think thats the full range. If this is a normal player usable skill then youll have to change the ID to be within the PC skills range which is between 1 - MAX_SKILL. MAX_SKILL I think is 2550 as of right now. The upper 1000 range has plenty of ID's that arnt being used that you can make full use of. Edited March 26, 2012 by Rytech Quote Link to comment Share on other sites More sharing options...
moneymuch Posted March 27, 2012 Group: Members Topic Count: 6 Topics Per Day: 0.00 Content Count: 20 Reputation: 0 Joined: 03/11/12 Last Seen: December 5, 2012 Author Share Posted March 27, 2012 (edited) First,thank you very very very much. To FatalEror: Thank you for your answer, 1. i discover that it has not place for set up skill's damage.The beginning , i think that "hitrate" means the damage when hit.so where do i set up skill's damage.? 2.bl = The target of status (src = self, bl = enemy) , the target is member in party or player,what do i use function. 3.I edit skill is quest, so i don't change. if skill is quest, is this matter? To Rytech: Thank you for your answer. no, i don't add a guild skill.i don't know this set like this. monster's skill ,also has this type of set,has it? Edited March 27, 2012 by moneymuch Quote Link to comment Share on other sites More sharing options...
Question
moneymuch
i want to study create new skill, but i don't know how to creat new skill, so i try to alter it on the basis of "SM_BASH".
i find "SM_BASH" in battle.c skill.c skill.h status.c
according to its scheme ,
add in battle.c
case AS_SONICBLOW:
if(sd && pc_checkskill(sd,AS_SONICACCEL)>0)
hitrate += hitrate * 50 / 100;
break;
case GC_VENOMPRESSURE:
hitrate += 10 + 4 * skill_lv;
break;
//========================under===========================
case DIY_QIAN:
hitrate += hitrate * 100 * skill_lv / 100;
break;
//========================above==========================
}
// Weaponry Research hidden bonus
if (sd && (skill = pc_checkskill(sd,BS_WEAPONRESEARCH)) > 0)
hitrate += hitrate * ( 2 * skill ) / 100;
hitrate = cap_value(hitrate, battle_config.min_hitrate, battle_config.max_hitrate);
=================Dividing lines=======================
add in skill.c
status_change_end(bl, SC_HARMONIZE, INVALID_TIMER);
status_change_end(bl, SC_WINKCHARM, INVALID_TIMER);
status_change_end(bl, SC_SONGOFMANA, INVALID_TIMER);
status_change_end(bl, SC_DANCEWITHWUG, INVALID_TIMER);
status_change_end(bl, SC_LERADSDEW, INVALID_TIMER);
status_change_end(bl, SC_MELODYOFSINK, INVALID_TIMER);
status_change_end(bl, SC_BEYONDOFWARCRY, INVALID_TIMER);
status_change_end(bl, SC_UNLIMITEDHUMMINGVOICE, INVALID_TIMER);
}
break;
//========================under===========================
case DIY_QIAN:
if( sd && skilllv > 0 ){
sc_start(bl,SC_STUN,(50*skilllv+(int)sd->status.base_level/10),
skilllv,skill_get_time(skillid,skilllv));
}
breakb;
//========================above==========================
}
if (md && battle_config.summons_trigger_autospells && md->master_id && md->special_state.ai)
{ //Pass heritage to Master for status causing effects. [skotlex]
sd = map_id2sd(md->master_id);
src = sd?&sd->bl:src;
=================Dividing lines=======================
add in skill.h
EL_CIRCLE_OF_FIRE = 8401,
EL_FIRE_CLOAK,
EL_FIRE_MANTLE,
EL_WATER_SCREEN,
EL_WATER_DROP,
EL_WATER_BARRIER,
EL_WIND_STEP,
EL_WIND_CURTAIN,
EL_ZEPHYR,
EL_SOLID_SKIN,
EL_STONE_SHIELD,
EL_POWER_OF_GAIA,
EL_PYROTECHNIC,
EL_HEATER,
EL_TROPIC,
EL_AQUAPLAY,
EL_COOLER,
EL_CHILLY_AIR,
EL_GUST,
EL_BLAST,
EL_WILD_STORM,
EL_PETROLOGY,
EL_CURSED_SOIL,
EL_UPHEAVAL,
EL_FIRE_ARROW,
EL_FIRE_BOMB,
EL_FIRE_BOMB_ATK,
EL_FIRE_WAVE,
EL_FIRE_WAVE_ATK,
EL_ICE_NEEDLE,
EL_WATER_SCREW,
EL_WATER_SCREW_ATK,
EL_TIDAL_WEAPON,
EL_WIND_SLASH,
EL_HURRICANE,
EL_HURRICANE_ATK,
EL_TYPOON_MIS,
EL_TYPOON_MIS_ATK,
EL_STONE_HAMMER,
EL_ROCK_CRUSHER,
EL_ROCK_CRUSHER_ATK,
EL_STONE_RAIN,
//========================under===========================
DIY_QIAN = 10016,
//========================above==========================
};
/// The client view ids for land skills.
=================Dividing lines=======================
add in status.c
set_sc( NPC_BLINDATTACK , SC_BLIND , SI_BLANK , SCB_HIT|SCB_FLEE );
set_sc( NPC_BLEEDING , SC_BLEEDING , SI_BLEEDING , SCB_REGEN );
set_sc( NPC_POISON , SC_DPOISON , SI_BLANK , SCB_DEF2|SCB_REGEN );
//The main status definitions
add_sc( SM_BASH , SC_STUN );
//========================under===========================
add_sc( DIY_QIAN , SC_STUN );
//========================above==========================
set_sc( SM_PROVOKE , SC_PROVOKE , SI_PROVOKE , SCB_DEF|SCB_DEF2|SCB_BATK|SCB_WATK );
add_sc( SM_MAGNUM , SC_WATK_ELEMENT );
=================Dividing lines=======================
after release ok ,add information of skill in lua. icon effect sprite ok.skill_db ok(these is copy "SM_BASH",but i have altered name.)
but ,when i enter the game, i can not find skill in skill bar,
so,i don't know whether to finish for create a new skill, (i have used @allskill GM order)
the steps of editor ,where is the mistake?
sorry,i forget SVN version,but it is in less than this week.
p.s. if you can , can you tell me what is effect of the command ?the command is purple.
Edited by moneymuchLink to comment
Share on other sites
3 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.