Added @addfame
(#6588)
* Added `@addfame` * Added alias `famepoint`, `famepoints` * Changed `sd` in `pc_addfame` to reference Co-authored-by: Lemongrass3110 <lemongrass@kstp.at> Co-authored-by: Aleos <aleos89@users.noreply.github.com>
This commit is contained in:
parent
a8e516730a
commit
c454443a0b
@ -1010,6 +1010,10 @@ Body:
|
||||
- Command: reloadnpcfile
|
||||
Aliases:
|
||||
- reloadnpc
|
||||
- Command: addfame
|
||||
Aliases:
|
||||
- famepoint
|
||||
- famepoints
|
||||
|
||||
Footer:
|
||||
Imports:
|
||||
|
@ -1779,5 +1779,10 @@
|
||||
// @hatereset
|
||||
1515: Reset 'Hatred' monsters.
|
||||
|
||||
// @addfame
|
||||
1516: Usage: %s <fame points>.
|
||||
1517: Cannot add fame to class '%s'.
|
||||
1518: %d points were added to '%s'.
|
||||
|
||||
//Custom translations
|
||||
import: conf/msg_conf/import/map_msg_eng_conf.txt
|
||||
|
@ -10675,6 +10675,36 @@ ACMD_FUNC( stylist ){
|
||||
#endif
|
||||
}
|
||||
|
||||
/**
|
||||
* Add fame point(s) to a player
|
||||
* Usage: @addfame <amount>
|
||||
*/
|
||||
ACMD_FUNC(addfame)
|
||||
{
|
||||
nullpo_retr(-1, sd);
|
||||
|
||||
int famepoint = 0;
|
||||
|
||||
memset(atcmd_output, '\0', sizeof(atcmd_output));
|
||||
|
||||
if (!message || !*message || sscanf(message, "%11d", &famepoint) < 1 || famepoint == 0) {
|
||||
sprintf(atcmd_output, msg_txt(sd, 1516), command); // Usage: %s <fame points>.
|
||||
clif_displaymessage(fd, atcmd_output);
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (!pc_addfame(*sd, famepoint)) {
|
||||
sprintf(atcmd_output, msg_txt(sd, 1517), job_name(sd->status.class_)); // Cannot add fame to class '%s'.
|
||||
clif_displaymessage(fd, atcmd_output);
|
||||
return -1;
|
||||
}
|
||||
|
||||
sprintf(atcmd_output, msg_txt(sd, 1518), famepoint, sd->status.name); // %d points were added to '%s'.
|
||||
clif_displaymessage(fd, atcmd_output);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
#include "../custom/atcommand.inc"
|
||||
|
||||
/**
|
||||
@ -10996,6 +11026,7 @@ void atcommand_basecommands(void) {
|
||||
ACMD_DEF2("checkquest", quest),
|
||||
ACMD_DEF(refineui),
|
||||
ACMD_DEFR(stylist, ATCMD_NOCONSOLE|ATCMD_NOAUTOTRADE),
|
||||
ACMD_DEF(addfame),
|
||||
};
|
||||
AtCommandInfo* atcommand;
|
||||
int i;
|
||||
|
@ -1222,24 +1222,14 @@ int chrif_disconnectplayer(int fd) {
|
||||
/*==========================================
|
||||
* Request/Receive top 10 Fame character list
|
||||
*------------------------------------------*/
|
||||
int chrif_updatefamelist(struct map_session_data* sd) {
|
||||
char type;
|
||||
|
||||
int chrif_updatefamelist(map_session_data &sd, e_rank ranktype) {
|
||||
chrif_check(-1);
|
||||
|
||||
switch(sd->class_ & MAPID_UPPERMASK) {
|
||||
case MAPID_BLACKSMITH: type = RANK_BLACKSMITH; break;
|
||||
case MAPID_ALCHEMIST: type = RANK_ALCHEMIST; break;
|
||||
case MAPID_TAEKWON: type = RANK_TAEKWON; break;
|
||||
default:
|
||||
return 0;
|
||||
}
|
||||
|
||||
WFIFOHEAD(char_fd, 11);
|
||||
WFIFOW(char_fd,0) = 0x2b10;
|
||||
WFIFOL(char_fd,2) = sd->status.char_id;
|
||||
WFIFOL(char_fd,6) = sd->status.fame;
|
||||
WFIFOB(char_fd,10) = type;
|
||||
WFIFOL(char_fd,2) = sd.status.char_id;
|
||||
WFIFOL(char_fd,6) = sd.status.fame;
|
||||
WFIFOB(char_fd,10) = ranktype;
|
||||
WFIFOSET(char_fd,11);
|
||||
|
||||
return 0;
|
||||
|
@ -68,7 +68,7 @@ int chrif_changemapserver(struct map_session_data* sd, uint32 ip, uint16 port);
|
||||
int chrif_searchcharid(uint32 char_id);
|
||||
int chrif_changeemail(int id, const char *actual_email, const char *new_email);
|
||||
int chrif_req_login_operation(int aid, const char* character_name, enum chrif_req_op operation_type, int32 timediff, int val1, int val2);
|
||||
int chrif_updatefamelist(struct map_session_data *sd);
|
||||
int chrif_updatefamelist(map_session_data &sd, e_rank ranktype);
|
||||
int chrif_buildfamelist(void);
|
||||
int chrif_save_scdata(struct map_session_data *sd);
|
||||
int chrif_char_offline(struct map_session_data *sd);
|
||||
|
@ -19941,8 +19941,8 @@ void clif_parse_ranklist(int fd,struct map_session_data *sd) {
|
||||
/// 021c <points>.L <total points>.L (ZC_ALCHEMIST_POINT)
|
||||
/// 0224 <points>.L <total points>.L (ZC_TAEKWON_POINT)
|
||||
/// 097e <RankingType>.W <point>.L <TotalPoint>.L (ZC_UPDATE_RANKING_POINT)
|
||||
void clif_update_rankingpoint(struct map_session_data *sd, int rankingtype, int point) {
|
||||
int fd=sd->fd;
|
||||
void clif_update_rankingpoint(map_session_data &sd, int rankingtype, int point) {
|
||||
int fd = sd.fd;
|
||||
#if PACKETVER < 20130710
|
||||
short cmd;
|
||||
switch(rankingtype){
|
||||
@ -19957,14 +19957,14 @@ void clif_update_rankingpoint(struct map_session_data *sd, int rankingtype, int
|
||||
WFIFOHEAD(fd,packet_len(cmd));
|
||||
WFIFOW(fd,0) = cmd;
|
||||
WFIFOL(fd,2) = point;
|
||||
WFIFOL(fd,6) = sd->status.fame;
|
||||
WFIFOL(fd,6) = sd.status.fame;
|
||||
WFIFOSET(fd, packet_len(cmd));
|
||||
#else
|
||||
WFIFOHEAD(fd,packet_len(0x97e));
|
||||
WFIFOW(fd,0) = 0x97e;
|
||||
WFIFOW(fd,2) = rankingtype;
|
||||
WFIFOL(fd,4) = point;
|
||||
WFIFOL(fd,8) = sd->status.fame;
|
||||
WFIFOL(fd,8) = sd.status.fame;
|
||||
WFIFOSET(fd,packet_len(0x97e));
|
||||
#endif
|
||||
}
|
||||
|
@ -1128,7 +1128,7 @@ void clif_channel_msg(struct Channel *channel, const char *msg, unsigned long co
|
||||
#define clif_menuskill_clear(sd) (sd)->menuskill_id = (sd)->menuskill_val = (sd)->menuskill_val2 = 0;
|
||||
|
||||
void clif_ranklist(struct map_session_data *sd, int16 rankingType);
|
||||
void clif_update_rankingpoint(struct map_session_data *sd, int rankingtype, int point);
|
||||
void clif_update_rankingpoint(map_session_data &sd, int rankingtype, int point);
|
||||
|
||||
void clif_crimson_marker(struct map_session_data *sd, struct block_list *bl, bool remove);
|
||||
|
||||
|
@ -3078,7 +3078,7 @@ int mob_dead(struct mob_data *md, struct block_list *src, int type)
|
||||
{ //TK_MISSION [Skotlex]
|
||||
if (++(sd->mission_count) >= 100 && (temp = mob_get_random_id(MOBG_BRANCH_OF_DEAD_TREE, static_cast<e_random_monster_flags>(RMF_CHECK_MOB_LV|RMF_MOB_NOT_BOSS|RMF_MOB_NOT_SPAWN), sd->status.base_level)))
|
||||
{
|
||||
pc_addfame(sd, battle_config.fame_taekwon_mission);
|
||||
pc_addfame(*sd, battle_config.fame_taekwon_mission);
|
||||
sd->mission_mobid = temp;
|
||||
pc_setglobalreg(sd, add_str(TKMISSIONID_VAR), temp);
|
||||
sd->mission_count = 0;
|
||||
|
@ -755,26 +755,28 @@ void pc_delabyssball( struct map_session_data& sd, int count ){
|
||||
* Increases a player's fame points and displays a notice to him
|
||||
* @param sd Player
|
||||
* @param count Fame point
|
||||
* @return true: on success, false: on error
|
||||
*/
|
||||
void pc_addfame(struct map_session_data *sd,int count)
|
||||
bool pc_addfame(map_session_data &sd, int count)
|
||||
{
|
||||
enum e_rank ranktype;
|
||||
nullpo_retv(sd);
|
||||
sd->status.fame += count;
|
||||
if(sd->status.fame > MAX_FAME)
|
||||
sd->status.fame = MAX_FAME;
|
||||
|
||||
switch(sd->class_&MAPID_UPPERMASK){
|
||||
sd.status.fame += count;
|
||||
if (sd.status.fame > MAX_FAME)
|
||||
sd.status.fame = MAX_FAME;
|
||||
|
||||
switch(sd.class_&MAPID_UPPERMASK){
|
||||
case MAPID_BLACKSMITH: ranktype = RANK_BLACKSMITH; break;
|
||||
case MAPID_ALCHEMIST: ranktype = RANK_ALCHEMIST; break;
|
||||
case MAPID_TAEKWON: ranktype = RANK_TAEKWON; break;
|
||||
default:
|
||||
ShowWarning( "pc_addfame: Trying to add fame to class '%s'(%d).\n", job_name(sd->status.class_), sd->status.class_ );
|
||||
return;
|
||||
ShowWarning( "pc_addfame: Trying to add fame to class '%s'(%d).\n", job_name(sd.status.class_), sd.status.class_ );
|
||||
return false;
|
||||
}
|
||||
|
||||
clif_update_rankingpoint(sd, ranktype, count);
|
||||
chrif_updatefamelist(sd);
|
||||
chrif_updatefamelist(sd, ranktype);
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -1516,7 +1516,7 @@ void pc_delservantball( struct map_session_data& sd, int count = 1 );
|
||||
void pc_addabyssball( struct map_session_data& sd, int count = 1 );
|
||||
void pc_delabyssball( struct map_session_data& sd, int count = 1 );
|
||||
|
||||
void pc_addfame(struct map_session_data *sd,int count);
|
||||
bool pc_addfame(map_session_data &sd, int count);
|
||||
unsigned char pc_famerank(uint32 char_id, int job);
|
||||
bool pc_set_hate_mob(struct map_session_data *sd, int pos, struct block_list *bl);
|
||||
|
||||
|
@ -9457,13 +9457,13 @@ BUILDIN_FUNC(successrefitem) {
|
||||
{ // Fame point system [DracoRPG]
|
||||
switch( sd->inventory_data[i]->weapon_level ){
|
||||
case 1:
|
||||
pc_addfame(sd, battle_config.fame_refine_lv1); // Success to refine to +10 a lv1 weapon you forged = +1 fame point
|
||||
pc_addfame(*sd, battle_config.fame_refine_lv1); // Success to refine to +10 a lv1 weapon you forged = +1 fame point
|
||||
break;
|
||||
case 2:
|
||||
pc_addfame(sd, battle_config.fame_refine_lv2); // Success to refine to +10 a lv2 weapon you forged = +25 fame point
|
||||
pc_addfame(*sd, battle_config.fame_refine_lv2); // Success to refine to +10 a lv2 weapon you forged = +25 fame point
|
||||
break;
|
||||
case 3:
|
||||
pc_addfame(sd, battle_config.fame_refine_lv3); // Success to refine to +10 a lv3 weapon you forged = +1000 fame point
|
||||
pc_addfame(*sd, battle_config.fame_refine_lv3); // Success to refine to +10 a lv3 weapon you forged = +1000 fame point
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -19160,13 +19160,13 @@ void skill_weaponrefine(struct map_session_data *sd, int idx)
|
||||
{ // Fame point system [DracoRPG]
|
||||
switch(ditem->weapon_level){
|
||||
case 1:
|
||||
pc_addfame(sd, battle_config.fame_refine_lv1); // Success to refine to +10 a lv1 weapon you forged = +1 fame point
|
||||
pc_addfame(*sd, battle_config.fame_refine_lv1); // Success to refine to +10 a lv1 weapon you forged = +1 fame point
|
||||
break;
|
||||
case 2:
|
||||
pc_addfame(sd, battle_config.fame_refine_lv2); // Success to refine to +10 a lv2 weapon you forged = +25 fame point
|
||||
pc_addfame(*sd, battle_config.fame_refine_lv2); // Success to refine to +10 a lv2 weapon you forged = +25 fame point
|
||||
break;
|
||||
case 3:
|
||||
pc_addfame(sd, battle_config.fame_refine_lv3); // Success to refine to +10 a lv3 weapon you forged = +1000 fame point
|
||||
pc_addfame(*sd, battle_config.fame_refine_lv3); // Success to refine to +10 a lv3 weapon you forged = +1000 fame point
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -21770,7 +21770,7 @@ bool skill_produce_mix(struct map_session_data *sd, uint16 skill_id, t_itemid na
|
||||
clif_produceeffect(sd,0,nameid);
|
||||
clif_misceffect(&sd->bl,3);
|
||||
if (wlv >= 3 && ((ele? 1 : 0) + sc) >= 3) // Fame point system [DracoRPG]
|
||||
pc_addfame(sd, battle_config.fame_forge); // Success to forge a lv3 weapon with 3 additional ingredients = +10 fame point
|
||||
pc_addfame(*sd, battle_config.fame_forge); // Success to forge a lv3 weapon with 3 additional ingredients = +10 fame point
|
||||
} else {
|
||||
int fame = 0;
|
||||
tmp_item.amount = 0;
|
||||
@ -21810,7 +21810,7 @@ bool skill_produce_mix(struct map_session_data *sd, uint16 skill_id, t_itemid na
|
||||
}
|
||||
|
||||
if (fame)
|
||||
pc_addfame(sd,fame);
|
||||
pc_addfame(*sd, fame);
|
||||
//Visual effects and the like.
|
||||
switch (skill_id) {
|
||||
case AM_PHARMACY:
|
||||
|
Loading…
x
Reference in New Issue
Block a user