summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--db/const.txt7
-rw-r--r--doc/script_commands.txt79
-rw-r--r--src/map/pc.c44
-rw-r--r--src/map/pc.h2
-rw-r--r--src/map/script.c107
5 files changed, 19 insertions, 220 deletions
diff --git a/db/const.txt b/db/const.txt
index 06fa8a3db..a53866b7c 100644
--- a/db/const.txt
+++ b/db/const.txt
@@ -3362,10 +3362,3 @@ SCFLAG_FIXEDTICK 0x02
SCFLAG_LOADED 0x04
SCFLAG_FIXEDRATE 0x08
SCFLAG_NOICON 0x10
-
-// Dragon Colors
-DRAGON_GREEN 1
-DRAGON_BROWN 2
-DRAGON_GRAY 3
-DRAGON_BLUE 4
-DRAGON_RED 5 \ No newline at end of file
diff --git a/doc/script_commands.txt b/doc/script_commands.txt
index 7efcc77ad..0af9644dd 100644
--- a/doc/script_commands.txt
+++ b/doc/script_commands.txt
@@ -2788,13 +2788,6 @@ such item is found.
---------------------------------------
-*getbrokencount()
-
-This function will return the total amount of broken equipment on the
-invoking character.
-
----------------------------------------
-
*getequipisequiped(<equipment slot>)
This functions will return 1 if there is an equipment placed on the
@@ -3823,47 +3816,22 @@ falcon and 0 if they don't.
*checkriding()
If <flag> is 0 this command will remove the mount from the character.
-
-Otherwise it gives the invoking character a combat mount specific to their
-class.
-
- - PecoPeco (Knight series class)
-
- - GrandPeco (Crusader series class)
-
- - Dragon (Rune Knight)
- The color of the dragon can be passed through the flag value using
- either values 1 ~ 5 or the following constants:
- DRAGON_GREEN
- DRAGON_BROWN
- DRAGON_GRAY
- DRAGON_BLUE
- DRAGON_RED
-
- - Gryphon (Royal Guard)
-
- - Warg (Ranger)
-
- - Mado Gear (Mechanic)
-
-Unlike 'setfalcon' and 'setcart' this will not work at all if they aren't of a
-class which can ride a mount.
-
-Note: The character needs to have the specific skill for their mount.
+Otherwise it gives the invoking character a PecoPeco (if they are a Knight
+series class), a GrandPeco (if they are a Crusader series class), or
+a Gryphon (if they are a Royal Guard). Unlike 'setfalcon' and 'setcart'
+this will not work at all if they aren't of a class which can ride.
+Note: the character needs to have the skill KN_RIDING to gain a mount.
The accompanying function will return 1 if the invoking character is
-on a mount and 0 if they aren't.
+riding a bird and 0 if they aren't.
- if (checkriding())
- mes "Leave your mount outside! No riding mounts on the floor here!";
+ if (checkriding()) mes "PLEASE leave your bird outside! No riding birds on the floor here!";
---------------------------------------
*setdragon {<color>};
*checkdragon()
-[ DEPRECATED - Please use setriding]
-
The 'setdragon' function toggles mounting a dragon for the invoking
character. It will return 1 if successful, 0 otherwise.
@@ -3885,8 +3853,6 @@ riding a dragon and 0 if they aren't.
*setmadogear {<flag>};
*checkmadogear()
-[ DEPRECATED - Please use setriding]
-
If <flag> is 0 this command will remove the mount from the character.
Otherwise it gives the invoking character a Mado (if they are a Mechanic).
@@ -8318,23 +8284,17 @@ If *questinfo is set, and the same ID is specified here, the icon will be cleare
---------------------------------------
-*completequest <ID>{,<ID2>};
+*completequest <ID>;
Change the state for the given quest <ID> to "complete" and remove from
the users quest log.
-If a second quest id of greater value is specified, all quests between the two
-will be completed.
-
---------------------------------------
-*erasequest <ID>{,<ID2>};
+*erasequest <ID>;
Remove the quest of the given <ID> from the user's quest log.
-If a second quest id of greater value is specified, all quests between the two
-will be erased.
-
---------------------------------------
*changequest <ID>,<ID2>;
@@ -8346,8 +8306,6 @@ Add quest of the <ID2> to the the quest log, and the state is "active".
*checkquest(<ID>{,PLAYTIME|HUNTING})
-DEPRECATED - use questprogress instead.
-
If no additional argument supplied, return the state of the quest:
-1 = Quest not started (not in quest log)
0 = Quest has been given, but the state is "inactive"
@@ -8371,25 +8329,6 @@ If parameter "HUNTING" is supplied:
---------------------------------------
-*questprogress(<ID>{,PLAYTIME|HUNTING})
-
-If no additional argument supplied, return the state of the quest:
- 0 = Quest not started (not in quest log)
- 1 = Quest has been given
- 2 = Quest completed
-
-If parameter "PLAYTIME" is supplied:
- 0 = Quest not started (not in quest log)
- 1 = The time limit has not yet been reached
- 2 = The time limit has been reached
-
-If parameter "HUNTING" is supplied:
- 0 = Quest not started (not in quest log)
- 1 = Player hasn't killed all of the target monsters
- 2 = Player has killed all of the target monsters
-
----------------------------------------
-
*showevent <icon>{,<mark color>}
Show an emotion on top of a NPC, and optionally,
diff --git a/src/map/pc.c b/src/map/pc.c
index 71860340d..697a24507 100644
--- a/src/map/pc.c
+++ b/src/map/pc.c
@@ -8163,47 +8163,11 @@ int pc_setfalcon(TBL_PC* sd, int flag)
*------------------------------------------*/
int pc_setriding(TBL_PC* sd, int flag)
{
- if( flag )
- {
- // Rune Knight (Dragon)
- if( (sd->class_&MAPID_THIRDMASK) == MAPID_RUNE_KNIGHT ) {
- if( pc->checkskill(sd, RK_DRAGONTRAINING) )
- pc->setoption(sd, sd->sc.option|flag);
- }
- // Ranger (Warg)
- else if( (sd->class_&MAPID_THIRDMASK) == MAPID_RANGER ) {
- if( pc->checkskill(sd, RA_WUGRIDER) )
- pc->setoption(sd,sd->sc.option|OPTION_WUGRIDER);
- }
- // Mechanic (Mado Gear)
- else if( (sd->class_&MAPID_THIRDMASK) == MAPID_MECHANIC ) {
- if( pc->checkskill(sd, NC_MADOLICENCE) )
- pc->setoption(sd, sd->sc.option|OPTION_MADOGEAR);
- }
- // Knight / Crusader (Peco Peco)
- else {
- if( pc->checkskill(sd, KN_RIDING) )
- pc->setoption(sd, sd->sc.option|OPTION_RIDING);
- }
- }
- else if( pc_isriding(sd) )
- {
- // Rune Knight (Dragon)
- if( (sd->class_&MAPID_THIRDMASK) == MAPID_RUNE_KNIGHT ) {
- pc->setoption(sd, sd->sc.option&~OPTION_DRAGON);
- }
- // Ranger (Warg)
- else if( (sd->class_&MAPID_THIRDMASK) == MAPID_RANGER ) {
- pc->setoption(sd,sd->sc.option&~OPTION_WUGRIDER);
- }
- // Mechanic (Mado Gear)
- else if( (sd->class_&MAPID_THIRDMASK) == MAPID_MECHANIC ) {
- pc->setoption(sd, sd->sc.option&~OPTION_MADOGEAR);
- }
- // Knight / Crusaders (Peco Peco)
- else {
+ if( flag ){
+ if( pc->checkskill(sd,KN_RIDING) > 0 ) // add peco
+ pc->setoption(sd, sd->sc.option|OPTION_RIDING);
+ } else if( pc_isriding(sd) ){
pc->setoption(sd, sd->sc.option&~OPTION_RIDING);
- }
}
return 0;
diff --git a/src/map/pc.h b/src/map/pc.h
index 6159a8f26..c36704b4f 100644
--- a/src/map/pc.h
+++ b/src/map/pc.h
@@ -589,7 +589,7 @@ struct map_session_data {
#endif
#define pc_isfalcon(sd) ( (sd)->sc.option&OPTION_FALCON )
-#define pc_isriding(sd) ( (sd)->sc.option&(OPTION_RIDING|OPTION_DRAGON|OPTION_WUGRIDER|OPTION_MADOGEAR) )
+#define pc_isriding(sd) ( (sd)->sc.option&OPTION_RIDING )
#define pc_isinvisible(sd) ( (sd)->sc.option&OPTION_INVISIBLE )
#define pc_is50overweight(sd) ( (sd)->weight*100 >= (sd)->max_weight*battle->bc->natural_heal_weight_rate )
#define pc_is90overweight(sd) ( (sd)->weight*10 >= (sd)->max_weight*9 )
diff --git a/src/map/script.c b/src/map/script.c
index 77b60ddd2..e70c2e10a 100644
--- a/src/map/script.c
+++ b/src/map/script.c
@@ -7658,29 +7658,6 @@ BUILDIN(getbrokenid)
}
/*==========================================
- * getbrokencount
- *------------------------------------------*/
-BUILDIN(getbrokencount)
-{
- int i, counter = 0;
- TBL_PC *sd;
-
- sd = script->rid2sd(st);
-
- if( sd == NULL )
- return true;
-
- for(i = 0; i < MAX_INVENTORY; i++) {
- if(sd->status.inventory[i].attribute)
- counter++;
- }
-
- script_pushint(st, counter);
-
- return true;
-}
-
-/*==========================================
* repair [Valaris]
*------------------------------------------*/
BUILDIN(repair)
@@ -8681,7 +8658,7 @@ BUILDIN(checkriding)
if( sd == NULL )
return true;// no player attached, report source
- if( pc_isriding(sd) )
+ if( pc_isriding(sd) || pc_isridingwug(sd) || pc_isridingdragon(sd) )
script_pushint(st, 1);
else
script_pushint(st, 0);
@@ -8700,17 +8677,11 @@ BUILDIN(setriding)
TBL_PC* sd;
sd = script->rid2sd(st);
-
if( sd == NULL )
return true;// no player attached, report source
if( script_hasdata(st,2) )
flag = script_getnum(st,2);
-
- // Color variants for Rune Knight dragon mounts.
- if( (sd->class_&MAPID_THIRDMASK) == MAPID_RUNE_KNIGHT )
- flag = (flag == 1 ? OPTION_DRAGON1 : flag == 2 ? OPTION_DRAGON2 : flag == 3 ? OPTION_DRAGON3 : flag == 4 ? OPTION_DRAGON4 : flag == 5 ? OPTION_DRAGON5 : 0);
-
pc->setriding(sd, flag);
return true;
@@ -16310,57 +16281,21 @@ BUILDIN(setquest) {
BUILDIN(erasequest) {
struct map_session_data *sd = script->rid2sd(st);
- int quest_id;
if( sd == NULL )
return false;
- if(script_hasdata(st, 3))
- {
- if(script_getnum(st, 3) < script_getnum(st, 2))
- {
- ShowError("buildin_erasequest: The second quest id must be greater than the id of the first.\n");
- return false;
- }
-
- for(quest_id = script_getnum(st, 2); quest_id < script_getnum(st, 3); quest_id++)
- {
- quest->delete(sd, quest_id);
- }
- }
- else
- {
- quest->delete(sd, script_getnum(st, 2));
- }
-
+ quest->delete(sd, script_getnum(st, 2));
return true;
}
BUILDIN(completequest) {
struct map_session_data *sd = script->rid2sd(st);
- int quest_id;
if( sd == NULL )
return false;
- if(script_hasdata(st, 3))
- {
- if(script_getnum(st, 3) < script_getnum(st, 2))
- {
- ShowError("buildin_completequest: The second quest id must be greater than the id of the first.\n");
- return false;
- }
-
- for(quest_id = script_getnum(st, 2); quest_id < script_getnum(st, 3); quest_id++)
- {
- quest->update_status(sd, quest_id, Q_COMPLETE);
- }
- }
- else
- {
- quest->update_status(sd, script_getnum(st, 2), Q_COMPLETE);
- }
-
+ quest->update_status(sd, script_getnum(st, 2), Q_COMPLETE);
return true;
}
@@ -16374,8 +16309,6 @@ BUILDIN(changequest) {
return true;
}
-// Deprecated
-// Please use questprogress instead.
BUILDIN(checkquest) {
struct map_session_data *sd = script->rid2sd(st);
enum quest_check_type type = HAVEQUEST;
@@ -16391,33 +16324,6 @@ BUILDIN(checkquest) {
return true;
}
-BUILDIN(questprogress) {
- struct map_session_data *sd = script->rid2sd(st);
- enum quest_check_type type = HAVEQUEST;
- int quest_progress = 0;
-
- if( sd == NULL )
- return false;
-
- if( script_hasdata(st, 3) )
- type = (enum quest_check_type)script_getnum(st, 3);
-
- quest_progress = quest->check(sd, script_getnum(st, 2), type);
-
- // "Fix" returned quest state value to make more sense.
- // 0 = Not Started, 1 = In Progress, 2 = Completed.
- if(quest_progress == -1)
- quest_progress = 0;
- else if(quest_progress == 0 || quest_progress == 1)
- quest_progress = 1;
- else
- quest_progress = 2;
-
- script_pushint(st, quest_progress);
-
- return true;
-}
-
BUILDIN(showevent) {
TBL_PC *sd = script->rid2sd(st);
struct npc_data *nd = map->id2nd(st->oid);
@@ -17398,7 +17304,6 @@ BUILDIN(setmounting) {
}
return true;
}
-
/**
* Retrieves quantity of arguments provided to callfunc/callsub.
* getargcount() -> amount of arguments received in a function
@@ -18939,7 +18844,6 @@ void script_parse_builtin(void) {
BUILDIN_DEF(getequipid,"i"),
BUILDIN_DEF(getequipname,"i"),
BUILDIN_DEF(getbrokenid,"i"), // [Valaris]
- BUILDIN_DEF(getbrokencount,""),
BUILDIN_DEF(repair,"i"), // [Valaris]
BUILDIN_DEF(repairall,""),
BUILDIN_DEF(getequipisequiped,"i"),
@@ -19337,10 +19241,9 @@ void script_parse_builtin(void) {
//Quest Log System [Inkfish]
BUILDIN_DEF(questinfo, "ii??"),
BUILDIN_DEF(setquest, "i"),
- BUILDIN_DEF(erasequest, "i?"),
- BUILDIN_DEF(completequest, "i?"),
+ BUILDIN_DEF(erasequest, "i"),
+ BUILDIN_DEF(completequest, "i"),
BUILDIN_DEF(checkquest, "i?"),
- BUILDIN_DEF(questprogress, "i?"),
BUILDIN_DEF(changequest, "ii"),
BUILDIN_DEF(showevent, "i?"),