summaryrefslogtreecommitdiff
path: root/src/map
diff options
context:
space:
mode:
Diffstat (limited to 'src/map')
-rw-r--r--src/map/atcommand.c80
-rw-r--r--src/map/skill.c2
-rw-r--r--src/map/status.c48
3 files changed, 40 insertions, 90 deletions
diff --git a/src/map/atcommand.c b/src/map/atcommand.c
index 9e7e398a6..2ee456a58 100644
--- a/src/map/atcommand.c
+++ b/src/map/atcommand.c
@@ -8115,69 +8115,31 @@ atcommand_partyoption(
*/
int atcommand_autoloot(const int fd, struct map_session_data* sd, const char* command, const char* message)
{
- // autoloot command with value
int rate;
-
+ double drate;
nullpo_retr(-1, sd);
-
// autoloot command without value
if(!message || !*message)
{
- // autoloot on -> off
- if(sd->state.autoloot)
- {
- clif_displaymessage(fd, "Autoloot is now off.");
- sd->state.autoloot = 0;
- return 0;
- // autoloot off -> on
- } else {
- clif_displaymessage(fd, "Autoloot is now on.");
- sd->state.autoloot = 10000;
- return 0;
- }
- }
-
- // get maximum droprate limit
- rate = (int)(atof(message) * 100.);
-
- // check for invalid value
- if(rate > 10000)
- {
- clif_displaymessage(fd, "Invalid value. Choose value between 0 and 100.");
- return 0;
- }
-
- // autoloot value is 0, turn autoloot off
- if(rate == 0)
- {
- if(sd->state.autoloot == 0)
- clif_displaymessage(fd, "Autoloot is already off.");
- else {
- clif_displaymessage(fd, "Autoloot is now off.");
- sd->state.autoloot = 0;
- }
- return 0;
- }
-
- // autoloot value is 100, turn autoloot on
- if(rate == 10000)
- {
- if(sd->state.autoloot == 10000)
- clif_displaymessage(fd, "Autoloot is already on.");
- else {
- clif_displaymessage(fd, "Autoloot is now on.");
- sd->state.autoloot = 10000;
- }
- return 0;
+ if (sd->state.autoloot)
+ rate = 0;
+ else
+ rate = 10000;
+ } else {
+ drate = atof(message);
+ rate = (int)(drate*100);
}
-
- // autoloot value is between 0 and 100
- snprintf(atcmd_output, sizeof atcmd_output, "Autolooting items with drop rates of %0.02f%% and below.", rate/100.);
- clif_displaymessage(fd, atcmd_output);
+ if (rate < 0) rate = 0;
+ if (rate > 10000) rate = 10000;
+
sd->state.autoloot = rate;
-
- return 0;
-}
+ if (sd->state.autoloot) {
+ snprintf(atcmd_output, sizeof atcmd_output, "Autolooting items with drop rates of %0.02f%% and below.",((double)sd->state.autoloot)/100.);
+ clif_displaymessage(fd, atcmd_output);
+ }else
+ clif_displaymessage(fd, "Autoloot is now off.");
+ return 0;
+}
/*==========================================
@@ -9969,6 +9931,12 @@ int atcommand_hominfo(
hd->homunculus.hunger, hd->homunculus.intimacy/100);
clif_displaymessage(fd, atcmd_output);
+ snprintf(atcmd_output, sizeof(atcmd_output) ,
+ "Stats: Str %d / Agi %d / Vit %d / Int %d / Dex %d / Luk %d",
+ status->str, status->agi, status->vit,
+ status->int_, status->dex, status->luk);
+ clif_displaymessage(fd, atcmd_output);
+
return 0;
}
diff --git a/src/map/skill.c b/src/map/skill.c
index 3c13187d6..c623edd7f 100644
--- a/src/map/skill.c
+++ b/src/map/skill.c
@@ -5691,7 +5691,6 @@ int skill_castend_id (int tid, unsigned int tick, int id, int data)
if (md->db->skill[md->skillidx].emotion >= 0)
clif_emotion(src, md->db->skill[md->skillidx].emotion);
}
-
}
if(src != target && battle_config.skill_add_range &&
@@ -6286,6 +6285,7 @@ int skill_castend_pos2 (struct block_list *src, int x, int y, int skillid, int s
if (sd && !(flag&1) && sd->state.arrow_atk) //Consume arrow if a ground skill was not invoked. [Skotlex]
battle_consume_ammo(sd, skillid, skilllv);
+
return 0;
}
diff --git a/src/map/status.c b/src/map/status.c
index dee934c8f..81837bef1 100644
--- a/src/map/status.c
+++ b/src/map/status.c
@@ -1087,12 +1087,8 @@ int status_check_skilluse(struct block_list *src, struct block_list *target, int
struct map_session_data *sd = (TBL_PC*) target;
if (pc_isinvisible(sd))
return 0;
- if (tsc->option&hide_flag && !(status->mode&MD_BOSS)
- && (sd->special_state.perfect_hiding || !(
- status->race == RC_INSECT ||
- status->race == RC_DEMON ||
- status->mode&MD_DETECTOR
- )))
+ if (tsc->option&hide_flag && !(status->mode&MD_BOSS) &&
+ (sd->special_state.perfect_hiding || !(status->mode&MD_DETECTOR)))
return 0;
}
break;
@@ -1110,15 +1106,9 @@ int status_check_skilluse(struct block_list *src, struct block_list *target, int
return 0;
default:
//Check for chase-walk/hiding/cloaking opponents.
- if (tsc && !(status->mode&MD_BOSS))
- {
- if (tsc->option&hide_flag && !(
- status->race == RC_INSECT ||
- status->race == RC_DEMON ||
- status->mode&MD_DETECTOR
- ))
- return 0;
- }
+ if (tsc && tsc->option&hide_flag && !(status->mode&MD_BOSS) &&
+ !(status->mode&MD_DETECTOR))
+ return 0;
}
return 1;
}
@@ -1144,32 +1134,24 @@ int status_check_visibility(struct block_list *src, struct block_list *target)
return 0;
switch (target->type)
- {
+ { //Check for chase-walk/hiding/cloaking opponents.
case BL_PC:
{
- if (tsc->option&(OPTION_HIDE|OPTION_CLOAK|OPTION_CHASEWALK)
- && !(status->mode&MD_BOSS) && (
- ((TBL_PC*)target)->special_state.perfect_hiding || !(
- status->race == RC_INSECT ||
- status->race == RC_DEMON ||
- status->mode&MD_DETECTOR
- )))
+ if(tsc->option&(OPTION_HIDE|OPTION_CLOAK|OPTION_CHASEWALK) &&
+ !(status->mode&MD_BOSS) &&
+ (
+ ((TBL_PC*)target)->special_state.perfect_hiding ||
+ !(status->mode&MD_DETECTOR)
+ ))
return 0;
}
break;
default:
- //Check for chase-walk/hiding/cloaking opponents.
- if (tsc && !(status->mode&MD_BOSS))
- {
- if (tsc->option&(OPTION_HIDE|OPTION_CLOAK|OPTION_CHASEWALK)
- && !(
- status->race == RC_INSECT ||
- status->race == RC_DEMON ||
- status->mode&MD_DETECTOR
- ))
+ if (tsc && tsc->option&(OPTION_HIDE|OPTION_CLOAK|OPTION_CHASEWALK) &&
+ !(status->mode&MD_BOSS) && !(status->mode&MD_DETECTOR))
return 0;
- }
}
+
return 1;
}