* Fixed addspiritball script command

* Fixed delspiritball script command
* Add some documentaion for pc_addspiritball and pc_delspiritball

Signed-off-by: Cydh Ramdh <house.bad@gmail.com>
This commit is contained in:
Cydh Ramdh 2013-12-04 02:45:10 +07:00
parent 8f6b4b4bb0
commit b40da76736
4 changed files with 36 additions and 13 deletions

View File

@ -2371,9 +2371,9 @@ NOTE: This command is only available if the VIP System is enabled.
--------------------------------------- ---------------------------------------
*addspiritball <amount>{,<char_id>}; *addspiritball <amount>,<duration>{,<char_id>};
Adds spirit ball(s) to player. Adds a spirit ball to player for 'duration' in second.
--------------------------------------- ---------------------------------------
@ -2385,7 +2385,7 @@ Deletes the spirit ball(s) from player.
*delspiritball {,<char_id>}; *delspiritball {,<char_id>};
Counts the spirit ball that player has Counts the spirit ball that player has.
--------------------------------------- ---------------------------------------
\\ \\

View File

@ -178,6 +178,13 @@ static int pc_spiritball_timer(int tid, unsigned int tick, int id, intptr_t data
return 0; return 0;
} }
/**
* Adds a spiritball to player for 'interval' ms
* @param sd
* @param interval
* @param max
* @return 0
*/
int pc_addspiritball(struct map_session_data *sd,int interval,int max) int pc_addspiritball(struct map_session_data *sd,int interval,int max)
{ {
int tid, i; int tid, i;
@ -213,6 +220,13 @@ int pc_addspiritball(struct map_session_data *sd,int interval,int max)
return 0; return 0;
} }
/**
* Removes number of spiritball from player
* @param sd
* @param count
* @param type 1 = gives client effect
* @return 0
*/
int pc_delspiritball(struct map_session_data *sd,int count,int type) int pc_delspiritball(struct map_session_data *sd,int count,int type)
{ {
int i; int i;

View File

@ -984,8 +984,8 @@ extern const struct sg_data sg_info[MAX_PC_FEELHATE];
void pc_setinvincibletimer(struct map_session_data* sd, int val); void pc_setinvincibletimer(struct map_session_data* sd, int val);
void pc_delinvincibletimer(struct map_session_data* sd); void pc_delinvincibletimer(struct map_session_data* sd);
int pc_addspiritball(struct map_session_data *sd,int,int); int pc_addspiritball(struct map_session_data *sd,int interval,int max);
int pc_delspiritball(struct map_session_data *sd,int,int); int pc_delspiritball(struct map_session_data *sd,int count,int type);
void pc_addfame(struct map_session_data *sd,int count); void pc_addfame(struct map_session_data *sd,int count);
unsigned char pc_famerank(int char_id, int job); unsigned char pc_famerank(int char_id, int job);
int pc_set_hate_mob(struct map_session_data *sd, int pos, struct block_list *bl); int pc_set_hate_mob(struct map_session_data *sd, int pos, struct block_list *bl);

View File

@ -18171,20 +18171,26 @@ BUILDIN_FUNC(bonus_script) {
return SCRIPT_CMD_SUCCESS; return SCRIPT_CMD_SUCCESS;
} }
/** Adds spirit ball(s) to player /** Adds a spirit ball to player for 'duration' in second
* addspiritball <amount>{,<char_id>}; * addspiritball <amount>,<duration>{,<char_id>};
*/ */
BUILDIN_FUNC(addspiritball) { BUILDIN_FUNC(addspiritball) {
uint8 amount = script_getnum(st,2); uint8 i, amount = script_getnum(st,2);
uint16 tick = script_getnum(st,3);
struct map_session_data *sd; struct map_session_data *sd;
if (script_getnum(st,3)) if (script_getnum(st,4))
sd = map_charid2sd(script_getnum(st,3)); sd = map_charid2sd(script_getnum(st,4));
else else
sd = script_rid2sd(st); sd = script_rid2sd(st);
if (!sd) if (!sd)
return SCRIPT_CMD_FAILURE; return SCRIPT_CMD_FAILURE;
pc_addspiritball(sd,max(amount,1),10);
if (amount == 0)
return SCRIPT_CMD_SUCCESS;
for (i = 0; i < amount; i++)
pc_addspiritball(sd,tick*1000,10);
return SCRIPT_CMD_SUCCESS; return SCRIPT_CMD_SUCCESS;
} }
@ -18201,7 +18207,10 @@ BUILDIN_FUNC(delspiritball) {
sd = script_rid2sd(st); sd = script_rid2sd(st);
if (!sd) if (!sd)
return SCRIPT_CMD_FAILURE; return SCRIPT_CMD_FAILURE;
pc_delspiritball(sd,max(amount,1),10);
if (amount == 0)
return SCRIPT_CMD_SUCCESS;
pc_delspiritball(sd,max(amount,1),1);
return SCRIPT_CMD_SUCCESS; return SCRIPT_CMD_SUCCESS;
} }
@ -18704,7 +18713,7 @@ struct script_function buildin_func[] = {
BUILDIN_DEF(vip_time,"i?"), BUILDIN_DEF(vip_time,"i?"),
#endif #endif
BUILDIN_DEF(bonus_script,"si???"), BUILDIN_DEF(bonus_script,"si???"),
BUILDIN_DEF(addspiritball,"i?"), BUILDIN_DEF(addspiritball,"ii?"),
BUILDIN_DEF(delspiritball,"i?"), BUILDIN_DEF(delspiritball,"i?"),
BUILDIN_DEF(countspiritball,"?"), BUILDIN_DEF(countspiritball,"?"),