* Follow-up r16835: Some cleanup.
* Updated Hunting Missions script to v1.2b, which adds experience multipliers to config (custom\quests\hunting_missions.txt) git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@16839 54d463be-8e91-2dee-dedb-b68131a5f0ec
This commit is contained in:
parent
8b074051ea
commit
9fcdb56b2e
@ -8,7 +8,7 @@
|
||||
|
||||
// 0-410: reserved for GM commands
|
||||
// 500-900 reserved for others
|
||||
// 900-1300 @atcommand
|
||||
// 900-1300: @atcommand
|
||||
|
||||
// To disable a string (%s) field, make it's max length 0:
|
||||
// eg:
|
||||
@ -611,20 +611,20 @@
|
||||
662: You're too close to a NPC, you must be at least %d cells away from any NPC.
|
||||
663: Duel: Can't use this item in duel.
|
||||
664: You cannot use this command when dead.
|
||||
665: Can't create chat rooms in this Area.
|
||||
665: Can't create chat rooms in this area.
|
||||
666: Pets are not allowed in Guild Wars.
|
||||
667: You're not dead.
|
||||
668: Your actual memo positions are:
|
||||
669: You broke target's weapon
|
||||
669: You broke the target's weapon.
|
||||
670: You can't leave battleground guilds.
|
||||
671: Friend already exists.
|
||||
672: Name not found in list.
|
||||
673: This action can't be performed at the moment. Please try again later.
|
||||
674: Friend removed
|
||||
675: Cannot send mails too fast!!.
|
||||
674: Friend removed.
|
||||
675: Cannot send mails too fast!!
|
||||
676: Alliances cannot be made during Guild Wars!
|
||||
677: Alliances cannot be broken during Guild Wars!
|
||||
678: You no longer are the Guild Master.
|
||||
678: You are no longer the Guild Master.
|
||||
679: You have become the Guild Master!
|
||||
680: You have been recovered!
|
||||
//681-899 free
|
||||
|
@ -3,7 +3,7 @@
|
||||
//===== By: ==================================================
|
||||
//= Euphy
|
||||
//===== Current Version: =====================================
|
||||
//= 1.2a
|
||||
//= 1.2b
|
||||
//===== Compatible With: =====================================
|
||||
//= rAthena SVN
|
||||
//===== Description: =========================================
|
||||
@ -124,8 +124,8 @@ Mission_Status:
|
||||
for(set .@i,0; .@i<.Quests; set .@i,.@i+1) {
|
||||
set .@j[.@i], getd("Mission"+.@i);
|
||||
set .@j[.Quests], .@j[.Quests]+strmobinfo(3,.@j[.@i]);
|
||||
set .@j[.Quests+1], .@j[.Quests+1]+strmobinfo(6,.@j[.@i]);
|
||||
set .@j[.Quests+2], .@j[.Quests+2]+strmobinfo(7,.@j[.@i]);
|
||||
set .@j[.Quests+1], .@j[.Quests+1]+(strmobinfo(6,.@j[.@i])/(getbattleflag("base_exp_rate")/100)*.Modifier[0]);
|
||||
set .@j[.Quests+2], .@j[.Quests+2]+(strmobinfo(7,.@j[.@i])/(getbattleflag("job_exp_rate")/100)*.Modifier[1]);
|
||||
mes " > "+Chk(getd("Mission"+.@i+"_"),#Mission_Count)+strmobinfo(1,.@j[.@i])+" ("+getd("Mission"+.@i+"_")+"/"+#Mission_Count+")^000000";
|
||||
}
|
||||
|
||||
@ -133,7 +133,7 @@ Mission_Status:
|
||||
set .@Mission_Points, 3+(.@j[.Quests]/.Quests/6);
|
||||
set .@Base_Exp, #Mission_Count*.@j[.Quests+1]/5;
|
||||
set .@Job_Exp, #Mission_Count*.@j[.Quests+2]/5;
|
||||
set .@Zeny, #Mission_Count*.Quests*.@j[.@i]*.Multiplier;
|
||||
set .@Zeny, #Mission_Count*.Quests*.@j[.@i]*.Modifier[2];
|
||||
|
||||
next;
|
||||
mes "[Hunting Missions]";
|
||||
@ -152,7 +152,8 @@ Mission_Status:
|
||||
specialeffect2 EF_ANGEL;
|
||||
specialeffect2 EF_TRUESIGHT;
|
||||
set #Mission_Points, #Mission_Points+.@Mission_Points;
|
||||
getexp .@Base_Exp,.@Job_Exp;
|
||||
set BaseExp, BaseExp+.@Base_Exp;
|
||||
set JobExp, JobExp+.@Job_Exp;
|
||||
set Zeny, Zeny+.@Zeny;
|
||||
for(set .@i,0; .@i<.Quests; set .@i,.@i+1) {
|
||||
setd "Mission"+.@i,0;
|
||||
@ -259,11 +260,12 @@ OnNPCKillEvent:
|
||||
|
||||
OnInit:
|
||||
set .Delay,12; // Quest delay, in hours (0 to disable).
|
||||
set .Quests,4; // Number of subquests per quest (increases rewards).
|
||||
set .Quests,4; // Number of subquests per mission (increases rewards).
|
||||
set .Party,3; // Party options: 0 (exclude party kills), 1 (include party kills), 2 (same map only), 3 (screen area only)
|
||||
set .Multiplier,60; // Multiplier for Zeny reward calculation.
|
||||
setarray .Count[0], // Min and max monsters per subquest (increases rewards).
|
||||
40,70;
|
||||
setarray .Modifier[0], // Multipliers for Base Exp, Job Exp, and Zeny rewards.
|
||||
getbattleflag("base_exp_rate")/100,getbattleflag("job_exp_rate")/100,60;
|
||||
setarray .Shop[0], // Reward items: <ID>,<point cost> (about 10~20 points per hunt).
|
||||
512,1,513,1,514,1,538,5,539,5,558,10,561,10;
|
||||
|
||||
|
@ -393,7 +393,7 @@ int guild_create(struct map_session_data *sd, const char *name)
|
||||
return 1;
|
||||
}
|
||||
|
||||
//Whether or not to create guilde
|
||||
//Whether or not to create guild
|
||||
int guild_created(int account_id,int guild_id)
|
||||
{
|
||||
struct map_session_data *sd=map_id2sd(account_id);
|
||||
@ -744,7 +744,7 @@ int guild_member_added(int guild_id,int account_id,int char_id,int flag)
|
||||
return 0;
|
||||
}
|
||||
|
||||
//if all ok adding player to guild
|
||||
//if all ok add player to guild
|
||||
sd->status.guild_id = g->guild_id;
|
||||
sd->guild_emblem_id = g->emblem_id;
|
||||
//Packets which were sent in the previous 'guild_sent' implementation.
|
||||
@ -1033,7 +1033,7 @@ int guild_change_position(int guild_id,int idx,
|
||||
}
|
||||
|
||||
/*====================================================
|
||||
* Notification of member has changed his guild tiltle
|
||||
* Notification of member has changed his guild title
|
||||
*---------------------------------------------------*/
|
||||
int guild_position_changed(int guild_id,int idx,struct guild_position *p)
|
||||
{
|
||||
@ -1184,7 +1184,7 @@ static DBData create_expcache(DBKey key, va_list args)
|
||||
}
|
||||
|
||||
/*====================================================
|
||||
* return Taxed experience from player sd to guild
|
||||
* Return taxed experience from player sd to guild
|
||||
*---------------------------------------------------*/
|
||||
unsigned int guild_payexp(struct map_session_data *sd,unsigned int exp)
|
||||
{
|
||||
@ -1218,7 +1218,7 @@ unsigned int guild_payexp(struct map_session_data *sd,unsigned int exp)
|
||||
}
|
||||
|
||||
/*====================================================
|
||||
* Player sd pay a tribue experience exp to his guild
|
||||
* Player sd pay a tribute experience to his guild
|
||||
* Add this experience to guild exp
|
||||
* [Celest]
|
||||
*---------------------------------------------------*/
|
||||
@ -1314,10 +1314,10 @@ void guild_guildaura_refresh(struct map_session_data *sd, int skill_num, int ski
|
||||
}
|
||||
|
||||
/*====================================================
|
||||
* Count number of relation the guild have
|
||||
* flag :
|
||||
* 0 = allied
|
||||
* 1 = ennemy
|
||||
* Count number of relations the guild has.
|
||||
* Flag:
|
||||
* 0 = allied
|
||||
* 1 = enemy
|
||||
*---------------------------------------------------*/
|
||||
int guild_get_alliance_count(struct guild *g,int flag)
|
||||
{
|
||||
@ -1343,11 +1343,11 @@ void guild_block_skill(struct map_session_data *sd, int time)
|
||||
}
|
||||
|
||||
/*====================================================
|
||||
* Check relation between guild_id1 and guild_id2
|
||||
* flag :
|
||||
* 0 = allied
|
||||
* 1 = ennemy
|
||||
* return true if yes
|
||||
* Check relation between guild_id1 and guild_id2.
|
||||
* Flag:
|
||||
* 0 = allied
|
||||
* 1 = enemy
|
||||
* Returns true if yes.
|
||||
*---------------------------------------------------*/
|
||||
int guild_check_alliance(int guild_id1, int guild_id2, int flag)
|
||||
{
|
||||
@ -1363,7 +1363,7 @@ int guild_check_alliance(int guild_id1, int guild_id2, int flag)
|
||||
}
|
||||
|
||||
/*====================================================
|
||||
* Player sd, asking player tsd an alliance between there 2 guild
|
||||
* Player sd, asking player tsd an alliance between their 2 guilds
|
||||
*---------------------------------------------------*/
|
||||
int guild_reqalliance(struct map_session_data *sd,struct map_session_data *tsd)
|
||||
{
|
||||
@ -1421,7 +1421,7 @@ int guild_reqalliance(struct map_session_data *sd,struct map_session_data *tsd)
|
||||
}
|
||||
|
||||
/*====================================================
|
||||
* Player sd, awsser to player tsd (account_id) for an alliance request
|
||||
* Player sd, answer to player tsd (account_id) for an alliance request
|
||||
*---------------------------------------------------*/
|
||||
int guild_reply_reqalliance(struct map_session_data *sd,int account_id,int flag)
|
||||
{
|
||||
@ -1498,7 +1498,7 @@ int guild_delalliance(struct map_session_data *sd,int guild_id,int flag)
|
||||
}
|
||||
|
||||
/*====================================================
|
||||
* Player sd, asking player tsd a formal ennemy relation between there 2 guild
|
||||
* Player sd, asking player tsd a formal enemy relation between their 2 guilds
|
||||
*---------------------------------------------------*/
|
||||
int guild_opposition(struct map_session_data *sd,struct map_session_data *tsd)
|
||||
{
|
||||
@ -1541,7 +1541,7 @@ int guild_opposition(struct map_session_data *sd,struct map_session_data *tsd)
|
||||
}
|
||||
|
||||
/*====================================================
|
||||
* Notification of a relationship between 2 guild
|
||||
* Notification of a relationship between 2 guilds
|
||||
*---------------------------------------------------*/
|
||||
int guild_allianceack(int guild_id1,int guild_id2,int account_id1,int account_id2,int flag,const char *name1,const char *name2)
|
||||
{
|
||||
@ -1604,7 +1604,7 @@ int guild_allianceack(int guild_id1,int guild_id2,int account_id1,int account_id
|
||||
if ((flag & 0x0f) == 0) { // alliance notification
|
||||
if( sd[1]!=NULL )
|
||||
clif_guild_allianceack(sd[1],2);
|
||||
} else if ((flag & 0x0f) == 1) { // ennemy notification
|
||||
} else if ((flag & 0x0f) == 1) { // enemy notification
|
||||
if( sd[0]!=NULL )
|
||||
clif_guild_oppositionack(sd[0],0);
|
||||
}
|
||||
@ -1923,7 +1923,7 @@ void guild_castle_reconnect(int castle_id, int index, int value)
|
||||
}
|
||||
}
|
||||
|
||||
// Loadcastle data then invoque OnAgitInit* on last
|
||||
// Load castle data then invoke OnAgitInit* on last
|
||||
int guild_castledataloadack(int len, struct guild_castle *gc)
|
||||
{
|
||||
int i;
|
||||
|
@ -136,7 +136,7 @@ int itemdb_searchname_array(struct item_data** data, int size, const char *str)
|
||||
|
||||
|
||||
/*==========================================
|
||||
* Return a random item id from group. (take in account % chance giving/tot group)
|
||||
* Return a random item id from group. (takes into account % chance giving/tot group)
|
||||
*------------------------------------------*/
|
||||
int itemdb_searchrandomid(int group)
|
||||
{
|
||||
@ -586,7 +586,7 @@ static void itemdb_read_itemgroup(void)
|
||||
}
|
||||
|
||||
/*==========================================
|
||||
* Read item forbiden by mapflag (can't equip item)
|
||||
* Read item forbidden by mapflag (can't equip item)
|
||||
*------------------------------------------*/
|
||||
static bool itemdb_read_noequip(char* str[], int columns, int current)
|
||||
{// <nameid>,<mode>
|
||||
|
@ -229,7 +229,7 @@ int map_freeblock_unlock (void)
|
||||
return block_free_lock;
|
||||
}
|
||||
|
||||
// Timer fonction to check if there some remaining lock and remove them if so.
|
||||
// Timer function to check if there some remaining lock and remove them if so.
|
||||
// Called each 1s
|
||||
int map_freeblock_timer(int tid, unsigned int tick, int id, intptr_t data)
|
||||
{
|
||||
@ -1314,7 +1314,7 @@ int map_get_new_object_id(void)
|
||||
}
|
||||
|
||||
/*==========================================
|
||||
* Timered fonction to clear the floor (remove remaining item)
|
||||
* Timered function to clear the floor (remove remaining item)
|
||||
* Called each flooritem_lifetime ms
|
||||
*------------------------------------------*/
|
||||
int map_clearflooritem_timer(int tid, unsigned int tick, int id, intptr_t data)
|
||||
|
@ -2834,7 +2834,7 @@ int mob_warpslave(struct block_list *bl, int range)
|
||||
}
|
||||
|
||||
/*==========================================
|
||||
* Count slave sub, curently chking if mob master is the given id
|
||||
* Counts slave sub, curently checking if mob master is the given ID.
|
||||
*------------------------------------------*/
|
||||
int mob_countslave_sub(struct block_list *bl,va_list ap)
|
||||
{
|
||||
@ -2849,7 +2849,7 @@ int mob_countslave_sub(struct block_list *bl,va_list ap)
|
||||
}
|
||||
|
||||
/*==========================================
|
||||
* Cout how many slave a mob got on map
|
||||
* Counts the number of slaves a mob has on the map.
|
||||
*------------------------------------------*/
|
||||
int mob_countslave(struct block_list *bl)
|
||||
{
|
||||
@ -2955,8 +2955,8 @@ int mob_summonslave(struct mob_data *md2,int *value,int amount,int skill_id)
|
||||
}
|
||||
|
||||
/*==========================================
|
||||
* MOBskill lookup (get skillindex trough skillid)
|
||||
* return -1 if not found
|
||||
* MOBskill lookup (get skillindex through skillid)
|
||||
* Returns -1 if not found.
|
||||
*------------------------------------------*/
|
||||
int mob_skillid2skillidx(int class_,int skillid)
|
||||
{
|
||||
|
@ -138,7 +138,7 @@ int npc_ontouch2_event(struct map_session_data *sd, struct npc_data *nd)
|
||||
}
|
||||
|
||||
/*==========================================
|
||||
* sub fonction of npc_enable, Run OnTouch event when enabled
|
||||
* Sub-function of npc_enable, runs OnTouch event when enabled
|
||||
*------------------------------------------*/
|
||||
int npc_enable_sub(struct block_list *bl, va_list ap)
|
||||
{
|
||||
@ -206,7 +206,7 @@ int npc_enable(const char* name, int flag)
|
||||
}
|
||||
|
||||
/*==========================================
|
||||
* NPC lookup (get npc_data trough npcname)
|
||||
* NPC lookup (get npc_data through npcname)
|
||||
*------------------------------------------*/
|
||||
struct npc_data* npc_name2id(const char* name)
|
||||
{
|
||||
@ -846,7 +846,7 @@ int npc_touch_areanpc_sub(struct block_list *bl, va_list ap)
|
||||
|
||||
/*==========================================
|
||||
* Chk if sd is still touching his assigned npc.
|
||||
* if not then it unsets it and searches for another player in range
|
||||
* If not, it unsets it and searches for another player in range.
|
||||
*------------------------------------------*/
|
||||
int npc_touchnext_areanpc(struct map_session_data* sd, bool leavemap)
|
||||
{
|
||||
@ -1062,10 +1062,8 @@ int npc_check_areanpc(int flag, int m, int x, int y, int range)
|
||||
}
|
||||
|
||||
/*==========================================
|
||||
* Chk if player not too far to acces the npc
|
||||
* return
|
||||
* npc_data : succes
|
||||
* NULL : fail
|
||||
* Chk if player not too far to access the npc.
|
||||
* Returns npc_data (success) or NULL (fail).
|
||||
*------------------------------------------*/
|
||||
struct npc_data* npc_checknear(struct map_session_data* sd, struct block_list* bl)
|
||||
{
|
||||
@ -1134,7 +1132,7 @@ void run_tomb(struct map_session_data* sd, struct npc_data* nd)
|
||||
|
||||
/*==========================================
|
||||
* NPC 1st call when clicking on npc
|
||||
* Do specific action for npc type (openshop, run scripts...)
|
||||
* Do specific action for NPC type (openshop, run scripts...)
|
||||
*------------------------------------------*/
|
||||
int npc_click(struct map_session_data* sd, struct npc_data* nd)
|
||||
{
|
||||
@ -1753,8 +1751,8 @@ static int npc_unload_ev(DBKey key, DBData *data, va_list ap)
|
||||
return 0;
|
||||
}
|
||||
|
||||
//Chk if npc match src_id then unload
|
||||
//Sub fonction used to found duplicate
|
||||
//Chk if npc matches src_id, then unload.
|
||||
//Sub-function used to find duplicates.
|
||||
static int npc_unload_dup_sub(struct npc_data* nd, va_list args)
|
||||
{
|
||||
int src_id;
|
||||
@ -1771,8 +1769,8 @@ void npc_unload_duplicates(struct npc_data* nd)
|
||||
map_foreachnpc(npc_unload_dup_sub,nd->bl.id);
|
||||
}
|
||||
|
||||
//Remove an npc from map and db
|
||||
//single is to free name (for duplicate one I suppose)
|
||||
//Removes an npc from map and db.
|
||||
//Single is to free name (for duplicates).
|
||||
int npc_unload(struct npc_data* nd, bool single) {
|
||||
nullpo_ret(nd);
|
||||
|
||||
@ -3350,7 +3348,7 @@ static const char* npc_parse_mapflag(char* w1, char* w2, char* w3, char* w4, con
|
||||
return strchr(start,'\n');// continue
|
||||
}
|
||||
|
||||
//Read file and create npc/func/mapflag/monster.. accordly
|
||||
//Read file and create npc/func/mapflag/monster... accordingly.
|
||||
//@runOnInit should we exec OnInit when it's done ?
|
||||
void npc_parsesrcfile(const char* filepath, bool runOnInit)
|
||||
{
|
||||
|
@ -45,7 +45,7 @@ static void push_heap_path(int *heap,struct tmp_path *tp,int index)
|
||||
|
||||
/*==========================================
|
||||
* heap update (helper function)
|
||||
* move toward the root Because cost has decreased
|
||||
* Move toward the root because cost has decreased.
|
||||
*------------------------------------------*/
|
||||
static void update_heap_path(int *heap,struct tmp_path *tp,int index)
|
||||
{
|
||||
|
98
src/map/pc.c
98
src/map/pc.c
@ -834,10 +834,8 @@ bool pc_adoption(struct map_session_data *p1_sd, struct map_session_data *p2_sd,
|
||||
}
|
||||
|
||||
/*=================================================
|
||||
* Can the player equip the item at index n in inventory
|
||||
* return
|
||||
* 0 = no
|
||||
* 1 = yes
|
||||
* Checks if the player can equip the item at index n in inventory.
|
||||
* Returns 0 (no) or 1 (yes).
|
||||
*------------------------------------------------*/
|
||||
int pc_isequip(struct map_session_data *sd,int n)
|
||||
{
|
||||
@ -1277,7 +1275,7 @@ static int pc_calc_skillpoint(struct map_session_data* sd)
|
||||
|
||||
|
||||
/*==========================================
|
||||
* Calculation of Skills lvls
|
||||
* Calculation of skill level.
|
||||
*------------------------------------------*/
|
||||
int pc_calc_skilltree(struct map_session_data *sd)
|
||||
{
|
||||
@ -3744,8 +3742,8 @@ int pc_search_inventory(struct map_session_data *sd,int item_id)
|
||||
}
|
||||
|
||||
/*==========================================
|
||||
* Attempt tp add a new item in inventory
|
||||
* return
|
||||
* Attempt to add a new item to inventory.
|
||||
* Return:
|
||||
0 = success
|
||||
1 = invalid itemid not found or negative amount
|
||||
2 = overweight
|
||||
@ -3836,9 +3834,9 @@ int pc_additem(struct map_session_data *sd,struct item *item_data,int amount,e_l
|
||||
}
|
||||
|
||||
/*==========================================
|
||||
* Remove an item at index n from inventory by amount
|
||||
* return
|
||||
* 0 = succes
|
||||
* Remove an item at index n from inventory by amount.
|
||||
* Return:
|
||||
* 0 = success
|
||||
* 1 = invalid itemid or negative amount
|
||||
*------------------------------------------*/
|
||||
int pc_delitem(struct map_session_data *sd,int n,int amount,int type, short reason, e_log_pick_type log_type)
|
||||
@ -3867,8 +3865,8 @@ int pc_delitem(struct map_session_data *sd,int n,int amount,int type, short reas
|
||||
}
|
||||
|
||||
/*==========================================
|
||||
* Attempt to drop an item
|
||||
* return
|
||||
* Attempt to drop an item.
|
||||
* Return:
|
||||
* 0 = fail
|
||||
* 1 = success
|
||||
*------------------------------------------*/
|
||||
@ -3911,8 +3909,8 @@ int pc_dropitem(struct map_session_data *sd,int n,int amount)
|
||||
}
|
||||
|
||||
/*==========================================
|
||||
* Attempt to pickup an item
|
||||
* return
|
||||
* Attempt to pick up an item.
|
||||
* Return:
|
||||
* 0 = fail
|
||||
* 1 = success
|
||||
*------------------------------------------*/
|
||||
@ -3982,8 +3980,8 @@ int pc_takeitem(struct map_session_data *sd,struct flooritem_data *fitem)
|
||||
}
|
||||
|
||||
/*==========================================
|
||||
* Can we use the item ?
|
||||
* Return
|
||||
* Check if item is usable.
|
||||
* Return:
|
||||
* 0 = no
|
||||
* 1 = yes
|
||||
*------------------------------------------*/
|
||||
@ -4147,8 +4145,8 @@ int pc_isUseitem(struct map_session_data *sd,int n)
|
||||
}
|
||||
|
||||
/*==========================================
|
||||
* Last checks et use item
|
||||
* return
|
||||
* Last checks to use an item.
|
||||
* Return:
|
||||
* 0 = fail
|
||||
* 1 = success
|
||||
*------------------------------------------*/
|
||||
@ -4273,8 +4271,8 @@ int pc_useitem(struct map_session_data *sd,int n)
|
||||
}
|
||||
|
||||
/*==========================================
|
||||
* Add item on cart for given index
|
||||
* return
|
||||
* Add item on cart for given index.
|
||||
* Return:
|
||||
* 0 = success
|
||||
* 1 = fail
|
||||
*------------------------------------------*/
|
||||
@ -4342,8 +4340,8 @@ int pc_cart_additem(struct map_session_data *sd,struct item *item_data,int amoun
|
||||
}
|
||||
|
||||
/*==========================================
|
||||
* Delete item on cart for given index
|
||||
* return
|
||||
* Delete item on cart for given index.
|
||||
* Return:
|
||||
* 0 = success
|
||||
* 1 = fail
|
||||
*------------------------------------------*/
|
||||
@ -4372,8 +4370,8 @@ int pc_cart_delitem(struct map_session_data *sd,int n,int amount,int type,e_log_
|
||||
}
|
||||
|
||||
/*==========================================
|
||||
* Transfert item from inventory to cart
|
||||
* return
|
||||
* Transfer item from inventory to cart.
|
||||
* Return:
|
||||
* 0 = fail
|
||||
* 1 = succes
|
||||
*------------------------------------------*/
|
||||
@ -4398,8 +4396,8 @@ int pc_putitemtocart(struct map_session_data *sd,int idx,int amount)
|
||||
}
|
||||
|
||||
/*==========================================
|
||||
* Get number of item on cart
|
||||
* return
|
||||
* Get number of item in cart.
|
||||
* Return:
|
||||
-1 = itemid not found or no amount found
|
||||
x = remaining itemid on cart after get
|
||||
*------------------------------------------*/
|
||||
@ -4417,8 +4415,8 @@ int pc_cartitem_amount(struct map_session_data* sd, int idx, int amount)
|
||||
}
|
||||
|
||||
/*==========================================
|
||||
* Retrieve an item at index idx from cart
|
||||
* return
|
||||
* Retrieve an item at index idx from cart.
|
||||
* Return:
|
||||
* 0 = player not found or (FIXME) succes (from pc_cart_delitem)
|
||||
* 1 = failure
|
||||
*------------------------------------------*/
|
||||
@ -4466,8 +4464,8 @@ int pc_show_steal(struct block_list *bl,va_list ap)
|
||||
return 0;
|
||||
}
|
||||
/*==========================================
|
||||
* Stole an item from bl (mob)
|
||||
* return
|
||||
* Steal an item from bl (mob).
|
||||
* Return:
|
||||
* 0 = fail
|
||||
* 1 = succes
|
||||
*------------------------------------------*/
|
||||
@ -4753,11 +4751,11 @@ int pc_setpos(struct map_session_data* sd, unsigned short mapindex, int x, int y
|
||||
}
|
||||
|
||||
/*==========================================
|
||||
* Warp player sd to random location on current map
|
||||
* may fail if no Cell walkable found (1000 attempt)
|
||||
* return
|
||||
* 0 = fail or FIXME succes (from pc_setpos)
|
||||
* x(1|2) = fail
|
||||
* Warp player sd to random location on current map.
|
||||
* May fail if no walkable cell found (1000 attempts).
|
||||
* Return:
|
||||
* 0 = fail or FIXME success (from pc_setpos)
|
||||
* x(1|2) = fail
|
||||
*------------------------------------------*/
|
||||
int pc_randomwarp(struct map_session_data *sd, clr_type type)
|
||||
{
|
||||
@ -4768,7 +4766,7 @@ int pc_randomwarp(struct map_session_data *sd, clr_type type)
|
||||
|
||||
m=sd->bl.m;
|
||||
|
||||
if (map[sd->bl.m].flag.noteleport) //Teleport forbiden
|
||||
if (map[sd->bl.m].flag.noteleport) //Teleport forbidden
|
||||
return 0;
|
||||
|
||||
do{
|
||||
@ -5717,7 +5715,7 @@ unsigned int pc_maxjoblv(struct map_session_data *sd)
|
||||
* base level exp lookup.
|
||||
*------------------------------------------*/
|
||||
|
||||
///How much bexp do player need for next level
|
||||
//Base exp needed for next level.
|
||||
unsigned int pc_nextbaseexp(struct map_session_data *sd)
|
||||
{
|
||||
nullpo_ret(sd);
|
||||
@ -5728,7 +5726,7 @@ unsigned int pc_nextbaseexp(struct map_session_data *sd)
|
||||
return exp_table[pc_class2idx(sd->status.class_)][0][sd->status.base_level-1];
|
||||
}
|
||||
|
||||
///How much bexp do player need for this level
|
||||
//Base exp needed for this level.
|
||||
unsigned int pc_thisbaseexp(struct map_session_data *sd)
|
||||
{
|
||||
if(sd->status.base_level>pc_maxbaselv(sd) || sd->status.base_level<=1)
|
||||
@ -5740,12 +5738,12 @@ unsigned int pc_thisbaseexp(struct map_session_data *sd)
|
||||
|
||||
/*==========================================
|
||||
* job level exp lookup
|
||||
* return
|
||||
* Return:
|
||||
* 0 = not found
|
||||
* x = exp for level
|
||||
*------------------------------------------*/
|
||||
|
||||
///How much jexp do player need for next level
|
||||
//Job exp needed for next level.
|
||||
unsigned int pc_nextjobexp(struct map_session_data *sd)
|
||||
{
|
||||
nullpo_ret(sd);
|
||||
@ -5755,7 +5753,7 @@ unsigned int pc_nextjobexp(struct map_session_data *sd)
|
||||
return exp_table[pc_class2idx(sd->status.class_)][1][sd->status.job_level-1];
|
||||
}
|
||||
|
||||
///How much jexp do player need for next level
|
||||
//Job exp needed for this level.
|
||||
unsigned int pc_thisjobexp(struct map_session_data *sd)
|
||||
{
|
||||
if(sd->status.job_level>pc_maxjoblv(sd) || sd->status.job_level<=1)
|
||||
@ -6423,7 +6421,7 @@ void pc_damage(struct map_session_data *sd,struct block_list *src,unsigned int h
|
||||
}
|
||||
|
||||
/*==========================================
|
||||
* Invoked when a player have negative current hp
|
||||
* Invoked when a player has negative current hp
|
||||
*------------------------------------------*/
|
||||
int pc_dead(struct map_session_data *sd,struct block_list *src)
|
||||
{
|
||||
@ -6974,8 +6972,8 @@ void pc_heal(struct map_session_data *sd,unsigned int hp,unsigned int sp, int ty
|
||||
|
||||
/*==========================================
|
||||
* HP/SP Recovery
|
||||
* Heal player hp nad/or sp linearly
|
||||
* Calculate bonus by status
|
||||
* Heal player hp and/or sp linearly.
|
||||
* Calculate bonus by status.
|
||||
*------------------------------------------*/
|
||||
int pc_itemheal(struct map_session_data *sd,int itemid, int hp,int sp)
|
||||
{
|
||||
@ -7080,7 +7078,7 @@ int pc_percentheal(struct map_session_data *sd,int hp,int sp)
|
||||
}
|
||||
|
||||
/*==========================================
|
||||
* Called when player changing job
|
||||
* Called when player changes job
|
||||
* Rewrote to make it tidider [Celest]
|
||||
*------------------------------------------*/
|
||||
int pc_jobchange(struct map_session_data *sd,int job, int upper)
|
||||
@ -8648,8 +8646,8 @@ int pc_calc_pvprank_timer(int tid, unsigned int tick, int id, intptr_t data)
|
||||
|
||||
/*==========================================
|
||||
* Checking if sd is married
|
||||
* Return
|
||||
* partner_id = yes,
|
||||
* Return:
|
||||
* partner_id = yes
|
||||
* 0 = no
|
||||
*------------------------------------------*/
|
||||
int pc_ismarried(struct map_session_data *sd)
|
||||
@ -8663,7 +8661,7 @@ int pc_ismarried(struct map_session_data *sd)
|
||||
}
|
||||
/*==========================================
|
||||
* Marry player sd to player dstsd
|
||||
* return
|
||||
* Return:
|
||||
* -1 = fail
|
||||
* 0 = success
|
||||
*------------------------------------------*/
|
||||
@ -8680,7 +8678,7 @@ int pc_marriage(struct map_session_data *sd,struct map_session_data *dstsd)
|
||||
|
||||
/*==========================================
|
||||
* Divorce sd from its partner
|
||||
* return
|
||||
* Return:
|
||||
* -1 = fail
|
||||
* 0 = success
|
||||
*------------------------------------------*/
|
||||
@ -9167,7 +9165,7 @@ int pc_split_atoui(char* str, unsigned int* val, char sep, int max)
|
||||
|
||||
/*==========================================
|
||||
* sub DB reading.
|
||||
* fonction used to read skill_tree.txt
|
||||
* Function used to read skill_tree.txt
|
||||
*------------------------------------------*/
|
||||
static bool pc_readdb_skilltree(char* fields[], int columns, int current)
|
||||
{
|
||||
|
Loading…
x
Reference in New Issue
Block a user