diff options
-rw-r--r-- | db/const.txt | 7 | ||||
-rw-r--r-- | doc/script_commands.txt | 79 | ||||
-rw-r--r-- | src/map/pc.c | 44 | ||||
-rw-r--r-- | src/map/pc.h | 2 | ||||
-rw-r--r-- | src/map/script.c | 107 |
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?"), |