- Added debug command @displayskill. Should be used only by people searching for new skill IDs.

- Now the bonus bAtkEle will be transferred directly to the weapon when the script is in the ammunition, and you are wielding a weapon that consumes ammo per atttack. 


git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@10232 54d463be-8e91-2dee-dedb-b68131a5f0ec
This commit is contained in:
skotlex 2007-04-12 14:28:39 +00:00
parent 79acbed9f0
commit 43d128ac3e
7 changed files with 58 additions and 4 deletions

View File

@ -3,6 +3,10 @@ Date Added
AS OF SVN REV. 5091, WE ARE NOW USING TRUNK. ALL UNTESTED BUGFIXES/FEATURES GO INTO TRUNK.
IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK.
2007/04/13
* Now the bonus bAtkEle will be transferred directly to the weapon when the
script is in the ammunition, and you are wielding a weapon that consumes
ammo per atttack.
2007/04/12
* Trade-requests now fail if the target is in a NPC.
* Some cleaning of the castend_map code to prevent the menuskill variable

View File

@ -1,5 +1,8 @@
Date Added
2007/04/13
* Added debug command @displayskill. Should be used only by people
searching for new skill IDs. [Skotlex]
2007/04/12
* Updated various mapflags with 11.2 maps [Playtester]
2007/04/11

View File

@ -715,6 +715,9 @@ packet: 99
// Give information about terrain/area (debug function)
gat: 99
// Displays the animation of a skill without really using it (debug function)
displayskill: 99
// Allows viewing/changing the map's water level (debug function)
// NOTE: Requires access to the .grf files since the map height properties are not stored in the map cache.
waterlevel: 99

View File

@ -190,6 +190,7 @@ ACMD_FUNC(storeall); // by MouseJstr
ACMD_FUNC(charstoreall); // by MouseJstr
ACMD_FUNC(skillid); // by MouseJstr
ACMD_FUNC(useskill); // by MouseJstr
ACMD_FUNC(displayskill); // by MouseJstr
ACMD_FUNC(summon);
ACMD_FUNC(rain);
ACMD_FUNC(snow);
@ -508,6 +509,7 @@ static AtCommandInfo atcommand_info[] = {
{ AtCommand_Charstoreall, "@charstoreall", 60, atcommand_charstoreall }, // MouseJstr
{ AtCommand_Skillid, "@skillid", 40, atcommand_skillid }, // MouseJstr
{ AtCommand_Useskill, "@useskill", 40, atcommand_useskill }, // MouseJstr
{ AtCommand_DisplaySkill, "@displayskill", 99, atcommand_displayskill }, // MouseJstr
// { AtCommand_Rain, "@rain", 99, atcommand_rain }, //Client no longer supports rain!
{ AtCommand_Snow, "@snow", 99, atcommand_snow },
{ AtCommand_Sakura, "@sakura", 99, atcommand_sakura },
@ -7216,6 +7218,35 @@ int atcommand_useskill(const int fd, struct map_session_data* sd, const char* co
return 0;
}
/*==========================================
* @showskill by [Skotlex]
* Debug command to locate new skill IDs. It sends the
* three possible skill-effect packets to the area.
*------------------------------------------
*/
int atcommand_displayskill(const int fd, struct map_session_data* sd, const char* command, const char* message)
{
struct status_data * status;
unsigned int tick;
int skillnum;
int skilllv = 1;
nullpo_retr(-1, sd);
if (!message || !*message ||
sscanf(message, "%d %d", &skillnum, &skilllv) < 1)
{
clif_displaymessage(fd, "Usage: @displayskill <skillnum> {<skillv>}>");
return -1;
}
status = status_get_status_data(&sd->bl);
tick = gettick();
clif_skill_damage(&sd->bl,&sd->bl, tick, status->amotion, status->dmotion,
1, 1, skillnum, skilllv, 5);
clif_skill_nodamage(&sd->bl, &sd->bl, skillnum, skilllv, 1);
clif_skill_poseffect(&sd->bl, skillnum, skilllv, sd->bl.x, sd->bl.y, tick);
return 0;
}
/*==========================================
* @skilltree by [MouseJstr]
* prints the skill tree for a player required to get to a skill

View File

@ -172,6 +172,7 @@ enum AtCommandType {
AtCommand_Charstoreall, // by MouseJstr
AtCommand_Skillid, // by MouseJstr
AtCommand_Useskill, // by MouseJstr
AtCommand_DisplaySkill,
AtCommand_Summon,
AtCommand_Rain,
AtCommand_Snow,

View File

@ -1442,7 +1442,20 @@ int pc_bonus(struct map_session_data *sd,int type,int val)
switch (sd->state.lr_flag)
{
case 2:
sd->arrow_ele=val;
switch (sd->status.weapon) {
case W_BOW:
case W_REVOLVER:
case W_RIFLE:
case W_SHOTGUN:
case W_GATLING:
case W_GRENADE:
//Become weapon element.
status->rhw.ele=val;
break;
default: //Become arrow element.
sd->arrow_ele=val;
break;
}
break;
case 1:
status->lhw->ele=val;

View File

@ -6770,9 +6770,8 @@ struct skill_unit_group *skill_unitsetting (struct block_list *src, int skillid,
{
int element[5]={ELE_WIND,ELE_DARK,ELE_POISON,ELE_WATER,ELE_FIRE};
if (sd)
val1=sd->arrow_ele;
else
val1 = status->rhw.ele;
if (!val1)
val1=element[rand()%5];
switch (val1)