summaryrefslogtreecommitdiff
path: root/src/map/pc.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/map/pc.c')
-rw-r--r--src/map/pc.c309
1 files changed, 205 insertions, 104 deletions
diff --git a/src/map/pc.c b/src/map/pc.c
index 414b38d58..328b9e07e 100644
--- a/src/map/pc.c
+++ b/src/map/pc.c
@@ -47,7 +47,7 @@
#include <time.h>
-#define PVP_CALCRANK_INTERVAL 1000 // PVP‡ˆÊŒvŽZ‚ÌŠÔŠu
+#define PVP_CALCRANK_INTERVAL 1000 // PVP calculation interval
static unsigned int exp_table[CLASS_COUNT][2][MAX_LEVEL];
static unsigned int max_level[CLASS_COUNT][2];
static unsigned int statp[MAX_LEVEL+1];
@@ -289,7 +289,7 @@ int pc_banding(struct map_session_data *sd, short skill_lv) {
memset(b_sd, 0, sizeof(b_sd));
i = party_foreachsamemap(pc_check_banding,sd,range,&sd->bl,&c,&b_sd);
- if( c < 1 )
+ if( c < 1 ) //just recalc status no need to recalc hp
{ // No more Royal Guards in Banding found.
if( (sc = status_get_sc(&sd->bl)) != NULL && sc->data[SC_BANDING] )
{
@@ -559,7 +559,7 @@ int pc_makesavestatus(struct map_session_data *sd)
}
/*==========================================
- * Ú?Žb̉Šú‰?
+ * Off init ? Connection?
*------------------------------------------*/
int pc_setnewpc(struct map_session_data *sd, int account_id, int char_id, int login_id1, unsigned int client_tick, int sex, int fd)
{
@@ -833,10 +833,15 @@ bool pc_adoption(struct map_session_data *p1_sd, struct map_session_data *p2_sd,
return false; // Job Change Fail
}
+/*=================================================
+ * Can the player equip the item at index n in inventory
+ * return
+ * 0 = no
+ * 1 = yes
+ *------------------------------------------------*/
int pc_isequip(struct map_session_data *sd,int n)
{
struct item_data *item;
- //?¶‚â—{Žq‚Ìꇂ̌³‚ÌE‹Æ‚ðŽZo‚·‚é
nullpo_ret(sd);
@@ -917,8 +922,8 @@ int pc_isequip(struct map_session_data *sd,int n)
}
/*==========================================
- * session id‚É–â‘è–³‚µ
- * charŽI‚©‚ç‘—‚ç‚ê‚Ä‚«‚½ƒXƒe?ƒ^ƒX‚ðÝ’è
+ * No problem with the session id
+ * set the status that has been sent from char server
*------------------------------------------*/
bool pc_authok(struct map_session_data *sd, int login_id2, time_t expiration_time, int group_id, struct mmo_charstatus *st, bool changing_mapservers)
{
@@ -1037,7 +1042,7 @@ bool pc_authok(struct map_session_data *sd, int login_id2, time_t expiration_tim
for( i = 0; i < 3; i++ )
sd->hate_mob[i] = -1;
- // ˆÊ’u‚ÌÝ’è
+ //warp player
if ((i=pc_setpos(sd,sd->status.last_point.map, sd->status.last_point.x, sd->status.last_point.y, CLR_OUTSIGHT)) != 0) {
ShowError ("Last_point_map %s - id %d not found (error code %d)\n", mapindex_id2name(sd->status.last_point.map), sd->status.last_point.map, i);
@@ -1272,7 +1277,7 @@ static int pc_calc_skillpoint(struct map_session_data* sd)
/*==========================================
- * ?‚¦‚ç‚ê‚éƒXƒLƒ‹‚ÌŒvŽZ
+ * Calculation of Skills lvls
*------------------------------------------*/
int pc_calc_skilltree(struct map_session_data *sd)
{
@@ -2015,7 +2020,7 @@ int pc_bonus_subele(struct map_session_data* sd, unsigned char ele, short rate,
}
/*==========================================
- * ? ”õ•i‚É‚æ‚é”\—Í“™‚̃{?ƒiƒXÝ’è
+ * ? ���i�ɂ��\�͓��̃{?�i�X�ݒ�
*------------------------------------------*/
int pc_bonus(struct map_session_data *sd,int type,int val)
{
@@ -2613,7 +2618,7 @@ int pc_bonus(struct map_session_data *sd,int type,int val)
}
/*==========================================
- * ? ”õ•i‚É‚æ‚é”\—Í“™‚̃{?ƒiƒXÝ’è
+ * ? ���i�ɂ��\�͓��̃{?�i�X�ݒ�
*------------------------------------------*/
int pc_bonus2(struct map_session_data *sd,int type,int type2,int val)
{
@@ -3438,7 +3443,7 @@ int pc_skill(TBL_PC* sd, int id, int level, int flag)
return 1;
}
/*==========================================
- * ƒJ?ƒh?“ü
+ * Append a card to an item ?
*------------------------------------------*/
int pc_insert_card(struct map_session_data* sd, int idx_card, int idx_equip)
{
@@ -3493,18 +3498,18 @@ int pc_insert_card(struct map_session_data* sd, int idx_card, int idx_equip)
}
//
-// ƒAƒCƒeƒ€•¨
+// Items
//
/*==========================================
- * ƒXƒLƒ‹‚É‚æ‚锃‚¢’lC³
+ * Update buying value by skills
*------------------------------------------*/
int pc_modifybuyvalue(struct map_session_data *sd,int orig_value)
{
int skill,val = orig_value,rate1 = 0,rate2 = 0;
- if((skill=pc_checkskill(sd,MC_DISCOUNT))>0) // ƒfƒBƒXƒJƒEƒ“ƒg
+ if((skill=pc_checkskill(sd,MC_DISCOUNT))>0) // merchant discount
rate1 = 5+skill*2-((skill==10)? 1:0);
- if((skill=pc_checkskill(sd,RG_COMPULSION))>0) // ƒRƒ€ƒpƒ‹ƒVƒ‡ƒ“ƒfƒBƒXƒJƒEƒ“ƒg
+ if((skill=pc_checkskill(sd,RG_COMPULSION))>0) // rogue discount
rate2 = 5+skill*4;
if(rate1 < rate2) rate1 = rate2;
if(rate1)
@@ -3516,12 +3521,12 @@ int pc_modifybuyvalue(struct map_session_data *sd,int orig_value)
}
/*==========================================
- * ƒXƒLƒ‹‚É‚æ‚é?‚è’lC³
+ * Update selling value by skills
*------------------------------------------*/
int pc_modifysellvalue(struct map_session_data *sd,int orig_value)
{
int skill,val = orig_value,rate = 0;
- if((skill=pc_checkskill(sd,MC_OVERCHARGE))>0) // ƒI?ƒo?ƒ`ƒƒ?ƒW
+ if((skill=pc_checkskill(sd,MC_OVERCHARGE))>0) //OverCharge
rate = 5+skill*2-((skill==10)? 1:0);
if(rate)
val = (int)((double)orig_value*(double)(100+rate)/100.);
@@ -3532,8 +3537,8 @@ int pc_modifysellvalue(struct map_session_data *sd,int orig_value)
}
/*==========================================
- * ƒAƒCƒeƒ€‚𔃂Á‚½ŽbÉAV‚µ‚¢ƒAƒCƒeƒ€—“‚ðŽg‚¤‚©A
- * 3–œŒÂ§ŒÀ‚É‚©‚©‚é‚©Šm”F
+ * Checking if we have enough place on inventory for new item
+ * Make sure to take 30k as limit (for client I guess)
*------------------------------------------*/
int pc_checkadditem(struct map_session_data *sd,int nameid,int amount)
{
@@ -3566,7 +3571,8 @@ int pc_checkadditem(struct map_session_data *sd,int nameid,int amount)
}
/*==========================================
- * ‹ó‚«ƒAƒCƒeƒ€—“‚ÌŒÂ?
+ * Return number of available place in inventory
+ * Each non stackable item will reduce place by 1
*------------------------------------------*/
int pc_inventoryblank(struct map_session_data *sd)
{
@@ -3726,7 +3732,7 @@ int pc_getzeny(struct map_session_data *sd,int zeny)
}
/*==========================================
- * ƒAƒCƒeƒ€‚ð’T‚µ‚ÄAƒCƒ“ƒfƒbƒNƒX‚ð•Ô‚·
+ * Searching a specified itemid in inventory and return his stored index
*------------------------------------------*/
int pc_search_inventory(struct map_session_data *sd,int item_id)
{
@@ -3738,7 +3744,16 @@ int pc_search_inventory(struct map_session_data *sd,int item_id)
}
/*==========================================
- * ƒAƒCƒeƒ€’ljÁBŒÂ?‚Ì‚Ýitem\‘¢?‚Ì?Žš‚𖳎‹
+ * Attempt tp add a new item in inventory
+ * return
+ 0 = success
+ 1 = invalid itemid not found or negative amount
+ 2 = overweight
+ 3 = ?
+ 4 = no free place found
+ 5 = max amount reached
+ 6 = ?
+ 7 = stack limitation
*------------------------------------------*/
int pc_additem(struct map_session_data *sd,struct item *item_data,int amount,e_log_pick_type log_type)
{
@@ -3821,7 +3836,10 @@ int pc_additem(struct map_session_data *sd,struct item *item_data,int amount,e_l
}
/*==========================================
- * ƒAƒCƒeƒ€‚ðŒ¸‚ç‚·
+ * Remove an item at index n from inventory by amount
+ * return
+ * 0 = succes
+ * 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)
{
@@ -3849,7 +3867,10 @@ int pc_delitem(struct map_session_data *sd,int n,int amount,int type, short reas
}
/*==========================================
- * ƒAƒCƒeƒ€‚ð—Ž‚·
+ * Attempt to drop an item
+ * return
+ * 0 = fail
+ * 1 = success
*------------------------------------------*/
int pc_dropitem(struct map_session_data *sd,int n,int amount)
{
@@ -3890,7 +3911,10 @@ int pc_dropitem(struct map_session_data *sd,int n,int amount)
}
/*==========================================
- * ƒAƒCƒeƒ€‚ðE‚¤
+ * Attempt to pickup an item
+ * return
+ * 0 = fail
+ * 1 = success
*------------------------------------------*/
int pc_takeitem(struct map_session_data *sd,struct flooritem_data *fitem)
{
@@ -3903,7 +3927,7 @@ int pc_takeitem(struct map_session_data *sd,struct flooritem_data *fitem)
nullpo_ret(fitem);
if(!check_distance_bl(&fitem->bl, &sd->bl, 2) && sd->ud.skillid!=BS_GREED)
- return 0; // ‹——£‚ª‰“‚¢
+ return 0; // Distance is too far
if (sd->status.party_id)
p = party_search(sd->status.party_id);
@@ -3957,6 +3981,12 @@ int pc_takeitem(struct map_session_data *sd,struct flooritem_data *fitem)
return 1;
}
+/*==========================================
+ * Can we use the item ?
+ * Return
+ * 0 = no
+ * 1 = yes
+ *------------------------------------------*/
int pc_isUseitem(struct map_session_data *sd,int n)
{
struct item_data *item;
@@ -3975,7 +4005,7 @@ int pc_isUseitem(struct map_session_data *sd,int n)
if( !item->script ) //if it has no script, you can't really consume it!
return 0;
- switch( nameid )
+ switch( nameid ) //@TODO, lot oh harcoded nameid here
{
case 605: // Anodyne
if( map_flag_gvg(sd->bl.m) )
@@ -4117,7 +4147,10 @@ int pc_isUseitem(struct map_session_data *sd,int n)
}
/*==========================================
- * ƒAƒCƒeƒ€‚ðŽg‚¤
+ * Last checks et use item
+ * return
+ * 0 = fail
+ * 1 = success
*------------------------------------------*/
int pc_useitem(struct map_session_data *sd,int n)
{
@@ -4240,7 +4273,10 @@ int pc_useitem(struct map_session_data *sd,int n)
}
/*==========================================
- * ƒJ?ƒgƒAƒCƒeƒ€’ljÁBŒÂ?‚Ì‚Ýitem\‘¢?‚Ì?Žš‚𖳎‹
+ * Add item on cart for given index
+ * return
+ * 0 = success
+ * 1 = fail
*------------------------------------------*/
int pc_cart_additem(struct map_session_data *sd,struct item *item_data,int amount,e_log_pick_type log_type)
{
@@ -4306,7 +4342,10 @@ int pc_cart_additem(struct map_session_data *sd,struct item *item_data,int amoun
}
/*==========================================
- * ƒJ?ƒgƒAƒCƒeƒ€‚ðŒ¸‚ç‚·
+ * Delete item on cart for given index
+ * return
+ * 0 = success
+ * 1 = fail
*------------------------------------------*/
int pc_cart_delitem(struct map_session_data *sd,int n,int amount,int type,e_log_pick_type log_type)
{
@@ -4333,7 +4372,10 @@ int pc_cart_delitem(struct map_session_data *sd,int n,int amount,int type,e_log_
}
/*==========================================
- * ƒJ?ƒg‚ÖƒAƒCƒeƒ€ˆÚ“®
+ * Transfert item from inventory to cart
+ * return
+ * 0 = fail
+ * 1 = succes
*------------------------------------------*/
int pc_putitemtocart(struct map_session_data *sd,int idx,int amount)
{
@@ -4356,7 +4398,10 @@ int pc_putitemtocart(struct map_session_data *sd,int idx,int amount)
}
/*==========================================
- * ƒJ?ƒg?‚̃AƒCƒeƒ€?Šm”F(ŒÂ?‚Ì·•ª‚ð•Ô‚·)
+ * Get number of item on cart
+ * return
+ -1 = itemid not found or no amount found
+ x = remaining itemid on cart after get
*------------------------------------------*/
int pc_cartitem_amount(struct map_session_data* sd, int idx, int amount)
{
@@ -4372,7 +4417,10 @@ int pc_cartitem_amount(struct map_session_data* sd, int idx, int amount)
}
/*==========================================
- * ƒJ?ƒg‚©‚çƒAƒCƒeƒ€ˆÚ“®
+ * Retrieve an item at index idx from cart
+ * return
+ * 0 = player not found or (FIXME) succes (from pc_cart_delitem)
+ * 1 = failure
*------------------------------------------*/
int pc_getitemfromcart(struct map_session_data *sd,int idx,int amount)
{
@@ -4396,7 +4444,7 @@ int pc_getitemfromcart(struct map_session_data *sd,int idx,int amount)
}
/*==========================================
- * ƒXƒeƒBƒ‹•iŒöŠJ
+ * Display item stolen msg to player sd
*------------------------------------------*/
int pc_show_steal(struct block_list *bl,va_list ap)
{
@@ -4418,7 +4466,10 @@ int pc_show_steal(struct block_list *bl,va_list ap)
return 0;
}
/*==========================================
- *
+ * Stole an item from bl (mob)
+ * return
+ * 0 = fail
+ * 1 = succes
*------------------------------------------*/
int pc_steal_item(struct map_session_data *sd,struct block_list *bl, int lv)
{
@@ -4499,7 +4550,10 @@ int pc_steal_item(struct map_session_data *sd,struct block_list *bl, int lv)
}
/*==========================================
- *
+ * Stole zeny from bl (mob)
+ * return
+ * 0 = fail
+ * 1 = success
*------------------------------------------*/
int pc_steal_coin(struct map_session_data *sd,struct block_list *target)
{
@@ -4699,7 +4753,11 @@ int pc_setpos(struct map_session_data* sd, unsigned short mapindex, int x, int y
}
/*==========================================
- * PC‚̃‰ƒ“ƒ_ƒ€ƒ?ƒv
+ * 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
*------------------------------------------*/
int pc_randomwarp(struct map_session_data *sd, clr_type type)
{
@@ -4710,7 +4768,7 @@ int pc_randomwarp(struct map_session_data *sd, clr_type type)
m=sd->bl.m;
- if (map[sd->bl.m].flag.noteleport) // ƒeƒŒƒ|?ƒg‹ÖŽ~
+ if (map[sd->bl.m].flag.noteleport) //Teleport forbiden
return 0;
do{
@@ -4774,10 +4832,10 @@ int pc_memo(struct map_session_data* sd, int pos)
}
//
-// •Ší??
+// Skills
//
/*==========================================
- * ƒXƒLƒ‹‚Ì?õ Š—L‚µ‚Ä‚¢‚½ê‡Lv‚ª•Ô‚é
+ * Return player sd skilllv learned for given skill
*------------------------------------------*/
int pc_checkskill(struct map_session_data *sd,int skill_id)
{
@@ -4803,13 +4861,13 @@ int pc_checkskill(struct map_session_data *sd,int skill_id)
}
/*==========================================
- * •Ší?X‚É‚æ‚éƒXƒLƒ‹‚Ì??ƒ`ƒFƒbƒN
- * ˆø?F
- * struct map_session_data *sd ƒZƒbƒVƒ‡ƒ“ƒf?ƒ^
- * int nameid ?”õ•iID
- * •Ô‚è’lF
- * 0 ?X‚È‚µ
- * -1 ƒXƒLƒ‹‚ð‰ðœ
+ * ����?�X�ɂ��X�L����??�`�F�b�N
+ * ��?�F
+ * struct map_session_data *sd �Z�b�V�����f?�^
+ * int nameid ?���iID
+ * �Ԃ�l�F
+ * 0 ?�X�Ȃ�
+ * -1 �X�L��������
*------------------------------------------*/
int pc_checkallowskill(struct map_session_data *sd)
{
@@ -4859,7 +4917,8 @@ int pc_checkallowskill(struct map_session_data *sd)
}
/*==========================================
- * ? ”õ•i‚̃`ƒFƒbƒN
+ * Return equiped itemid? on player sd at pos
+ * if -1 mean nothing equiped
*------------------------------------------*/
int pc_checkequip(struct map_session_data *sd,int pos)
{
@@ -5562,7 +5621,7 @@ static void pc_calcexp(struct map_session_data *sd, unsigned int *base_exp, unsi
return;
}
/*==========================================
- * ??’lŽæ“¾
+ * Give x exp at sd player and calculate remaining exp for next lvl
*------------------------------------------*/
int pc_gainexp(struct map_session_data *sd, struct block_list *src, unsigned int base_exp,unsigned int job_exp,bool quest)
{
@@ -5655,8 +5714,10 @@ unsigned int pc_maxjoblv(struct map_session_data *sd)
}
/*==========================================
- * base level‘¤•K—v??’lŒvŽZ
+ * base level exp lookup.
*------------------------------------------*/
+
+///How much bexp do player need for next level
unsigned int pc_nextbaseexp(struct map_session_data *sd)
{
nullpo_ret(sd);
@@ -5667,6 +5728,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
unsigned int pc_thisbaseexp(struct map_session_data *sd)
{
if(sd->status.base_level>pc_maxbaselv(sd) || sd->status.base_level<=1)
@@ -5677,8 +5739,13 @@ unsigned int pc_thisbaseexp(struct map_session_data *sd)
/*==========================================
- * job level‘¤•K—v??’lŒvŽZ
+ * job level exp lookup
+ * return
+ * 0 = not found
+ * x = exp for level
*------------------------------------------*/
+
+///How much jexp do player need for next level
unsigned int pc_nextjobexp(struct map_session_data *sd)
{
nullpo_ret(sd);
@@ -5688,6 +5755,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
unsigned int pc_thisjobexp(struct map_session_data *sd)
{
if(sd->status.job_level>pc_maxjoblv(sd) || sd->status.job_level<=1)
@@ -5857,7 +5925,8 @@ int pc_statusup2(struct map_session_data* sd, int type, int val)
}
/*==========================================
- * ƒXƒLƒ‹ƒ|ƒCƒ“ƒgŠ„‚èU‚è
+ * Update skilllv for player sd
+ * Skill point allocation
*------------------------------------------*/
int pc_skillup(struct map_session_data *sd,int skill_num)
{
@@ -6353,6 +6422,9 @@ void pc_damage(struct map_session_data *sd,struct block_list *src,unsigned int h
sd->canlog_tick = gettick();
}
+/*==========================================
+ * Invoked when a player have negative current hp
+ *------------------------------------------*/
int pc_dead(struct map_session_data *sd,struct block_list *src)
{
int i=0,j=0,k=0;
@@ -6684,10 +6756,10 @@ void pc_revive(struct map_session_data *sd,unsigned int hp, unsigned int sp) {
guild_guildaura_refresh(sd,GD_HAWKEYES,guild_checkskill(sd->state.gmaster_flag,GD_HAWKEYES));
}
}
-// script? ˜A
+// script
//
/*==========================================
- * script—pPCƒXƒe?ƒ^ƒX?‚Ýo‚µ
+ * script reading pc status registry
*------------------------------------------*/
int pc_readparam(struct map_session_data* sd,int type)
{
@@ -6733,7 +6805,7 @@ int pc_readparam(struct map_session_data* sd,int type)
}
/*==========================================
- * script—pPCƒXƒe?ƒ^ƒXÝ’è
+ * script set pc status registry
*------------------------------------------*/
int pc_setparam(struct map_session_data *sd,int type,int val)
{
@@ -6901,7 +6973,9 @@ void pc_heal(struct map_session_data *sd,unsigned int hp,unsigned int sp, int ty
}
/*==========================================
- * HP/SP‰ñ•œ
+ * HP/SP Recovery
+ * Heal player hp nad/or sp linearly
+ * Calculate bonus by status
*------------------------------------------*/
int pc_itemheal(struct map_session_data *sd,int itemid, int hp,int sp)
{
@@ -6967,7 +7041,8 @@ int pc_itemheal(struct map_session_data *sd,int itemid, int hp,int sp)
}
/*==========================================
- * HP/SP‰ñ•œ
+ * HP/SP Recovery
+ * Heal player hp nad/or sp by rate
*------------------------------------------*/
int pc_percentheal(struct map_session_data *sd,int hp,int sp)
{
@@ -7005,9 +7080,7 @@ int pc_percentheal(struct map_session_data *sd,int hp,int sp)
}
/*==========================================
- * E?X
- * ˆø? job E‹Æ 0`23
- * upper ’Êí 0, ?¶ 1, —{Žq 2, ‚»‚Ì‚Ü‚Ü -1
+ * Called when player changing job
* Rewrote to make it tidider [Celest]
*------------------------------------------*/
int pc_jobchange(struct map_session_data *sd,int job, int upper)
@@ -7099,7 +7172,7 @@ int pc_jobchange(struct map_session_data *sd,int job, int upper)
for(i=0;i<EQI_MAX;i++) {
if(sd->equip_index[i] >= 0)
if(!pc_isequip(sd,sd->equip_index[i]))
- pc_unequipitem(sd,sd->equip_index[i],2); // ?”õŠO‚µ
+ pc_unequipitem(sd,sd->equip_index[i],2); // unequip invalid item for class
}
//Change look, if disguised, you need to undisguise
@@ -7170,7 +7243,7 @@ int pc_jobchange(struct map_session_data *sd,int job, int upper)
}
/*==========================================
- * Œ©‚½–Ú?X
+ * Tell client player sd has change equipement
*------------------------------------------*/
int pc_equiplookall(struct map_session_data *sd)
{
@@ -7187,7 +7260,7 @@ int pc_equiplookall(struct map_session_data *sd)
}
/*==========================================
- * Œ©‚½–Ú?X
+ * Tell client player sd has change look (hair,equip...)
*------------------------------------------*/
int pc_changelook(struct map_session_data *sd,int type,int val)
{
@@ -7247,7 +7320,7 @@ int pc_changelook(struct map_session_data *sd,int type,int val)
}
/*==========================================
- * •t?•i(‘é,ƒyƒR,ƒJ?ƒg)Ý’è
+ * Give an option (type) to player (sd) and display it to client
*------------------------------------------*/
int pc_setoption(struct map_session_data *sd,int type)
{
@@ -7364,7 +7437,7 @@ int pc_setoption(struct map_session_data *sd,int type)
}
/*==========================================
- * ƒJ?ƒgÝ’è
+ * Give player a cart
*------------------------------------------*/
int pc_setcart(struct map_session_data *sd,int type) {
#ifndef NEW_CARTS
@@ -7414,12 +7487,12 @@ int pc_setcart(struct map_session_data *sd,int type) {
}
/*==========================================
- * ‘éÝ’è
+ * Give player a falcon
*------------------------------------------*/
int pc_setfalcon(TBL_PC* sd, int flag)
{
if( flag ){
- if( pc_checkskill(sd,HT_FALCON)>0 ) // ƒtƒ@ƒ‹ƒRƒ“ƒ}ƒXƒ^ƒŠ?ƒXƒLƒ‹ŠŽ
+ if( pc_checkskill(sd,HT_FALCON)>0 ) // �t�@���R���}�X�^��?�X�L������
pc_setoption(sd,sd->sc.option|OPTION_FALCON);
} else if( pc_isfalcon(sd) ){
pc_setoption(sd,sd->sc.option&~OPTION_FALCON); // remove falcon
@@ -7429,12 +7502,12 @@ int pc_setfalcon(TBL_PC* sd, int flag)
}
/*==========================================
- * ƒyƒRƒyƒRÝ’è
+ * Set player riding
*------------------------------------------*/
int pc_setriding(TBL_PC* sd, int flag)
{
if( flag ){
- if( pc_checkskill(sd,KN_RIDING) > 0 ) // ƒ‰ƒCƒfƒBƒ“ƒOƒXƒLƒ‹ŠŽ
+ if( pc_checkskill(sd,KN_RIDING) > 0 ) // ���C�f�B���O�X�L������
pc_setoption(sd, sd->sc.option|OPTION_RIDING);
} else if( pc_isriding(sd) ){
pc_setoption(sd, sd->sc.option&~OPTION_RIDING);
@@ -7444,7 +7517,7 @@ int pc_setriding(TBL_PC* sd, int flag)
}
/*==========================================
- *
+ * Give player a mado
*------------------------------------------*/
int pc_setmadogear(TBL_PC* sd, int flag)
{
@@ -7459,7 +7532,7 @@ int pc_setmadogear(TBL_PC* sd, int flag)
}
/*==========================================
- * ƒAƒCƒeƒ€ƒhƒƒbƒv‰Â•s‰Â”»’è
+ * Check if player can drop an item
*------------------------------------------*/
int pc_candrop(struct map_session_data *sd, struct item *item)
{
@@ -7471,7 +7544,8 @@ int pc_candrop(struct map_session_data *sd, struct item *item)
}
/*==========================================
- * script—p??‚Ì’l‚ð?‚Þ
+ * Read ram register for player sd
+ * get val (int) from reg for player sd
*------------------------------------------*/
int pc_readreg(struct map_session_data* sd, int reg)
{
@@ -7483,7 +7557,8 @@ int pc_readreg(struct map_session_data* sd, int reg)
return ( i < sd->reg_num ) ? sd->reg[i].data : 0;
}
/*==========================================
- * script—p??‚Ì’l‚ðÝ’è
+ * Set ram register for player sd
+ * memo val(int) at reg for player sd
*------------------------------------------*/
int pc_setreg(struct map_session_data* sd, int reg, int val)
{
@@ -7511,7 +7586,8 @@ int pc_setreg(struct map_session_data* sd, int reg, int val)
}
/*==========================================
- * script—p•¶Žš—ñ??‚Ì’l‚ð?‚Þ
+ * Read ram register for player sd
+ * get val (str) from reg for player sd
*------------------------------------------*/
char* pc_readregstr(struct map_session_data* sd, int reg)
{
@@ -7523,7 +7599,8 @@ char* pc_readregstr(struct map_session_data* sd, int reg)
return ( i < sd->regstr_num ) ? sd->regstr[i].data : NULL;
}
/*==========================================
- * script—p•¶Žš—ñ??‚Ì’l‚ðÝ’è
+ * Set ram register for player sd
+ * memo val(str) at reg for player sd
*------------------------------------------*/
int pc_setregstr(struct map_session_data* sd, int reg, const char* str)
{
@@ -7803,7 +7880,7 @@ int pc_setregistry_str(struct map_session_data *sd,const char *reg,const char *v
}
/*==========================================
- * ƒCƒxƒ“ƒgƒ^ƒCƒ}??—
+ * Exec eventtimer for player sd (retrieved from map_session (id))
*------------------------------------------*/
static int pc_eventtimer(int tid, unsigned int tick, int id, intptr_t data)
{
@@ -7828,7 +7905,7 @@ static int pc_eventtimer(int tid, unsigned int tick, int id, intptr_t data)
}
/*==========================================
- * ƒCƒxƒ“ƒgƒ^ƒCƒ}?’ljÁ
+ * Add eventtimer for player sd ?
*------------------------------------------*/
int pc_addeventtimer(struct map_session_data *sd,int tick,const char *name)
{
@@ -7846,7 +7923,7 @@ int pc_addeventtimer(struct map_session_data *sd,int tick,const char *name)
}
/*==========================================
- * ƒCƒxƒ“ƒgƒ^ƒCƒ}?íœ
+ * Del eventtimer for player sd ?
*------------------------------------------*/
int pc_deleventtimer(struct map_session_data *sd,const char *name)
{
@@ -7876,7 +7953,7 @@ int pc_deleventtimer(struct map_session_data *sd,const char *name)
}
/*==========================================
- * ƒCƒxƒ“ƒgƒ^ƒCƒ}?ƒJƒEƒ“ƒg’l’ljÁ
+ * Update eventtimer count for player sd
*------------------------------------------*/
int pc_addeventtimercount(struct map_session_data *sd,const char *name,int tick)
{
@@ -7895,7 +7972,7 @@ int pc_addeventtimercount(struct map_session_data *sd,const char *name,int tick)
}
/*==========================================
- * ƒCƒxƒ“ƒgƒ^ƒCƒ}?‘Síœ
+ * Remove all eventtimer for player sd
*------------------------------------------*/
int pc_cleareventtimer(struct map_session_data *sd)
{
@@ -8068,7 +8145,7 @@ int pc_load_combo(struct map_session_data *sd) {
return ret;
}
/*==========================================
- * Attempt to equip item in inventory index 'n' in the EQP_ 'req_pos'
+ * Equip item on player sd at req_pos from inventory index n
*------------------------------------------*/
int pc_equipitem(struct map_session_data *sd,int n,int req_pos)
{
@@ -8269,7 +8346,7 @@ int pc_equipitem(struct map_session_data *sd,int n,int req_pos)
}
/*==========================================
- * ? ”õ‚µ‚½•¨‚ðŠO‚·
+ * Called when attemting to unequip an item from player
* type:
* 0 - only unequip
* 1 - calculate status after unequipping
@@ -8432,8 +8509,8 @@ int pc_unequipitem(struct map_session_data *sd,int n,int flag) {
}
/*==========================================
- * ƒAƒCƒeƒ€‚Ìindex”Ô?‚ð‹l‚ß‚½‚è
- * ? ”õ•i‚Ì?”õ‰Â”\ƒ`ƒFƒbƒN‚ðs‚È‚¤
+ * Checking if player (sd) have unauthorize, invalide item
+ * on inventory, cart, equiped for the map (item_noequip)
*------------------------------------------*/
int pc_checkitem(struct map_session_data *sd)
{
@@ -8513,7 +8590,7 @@ int pc_checkitem(struct map_session_data *sd)
}
/*==========================================
- * PVP‡ˆÊŒvŽZ—p(foreachinarea)
+ * Update PVP rank for sd1 in cmp to sd2
*------------------------------------------*/
int pc_calc_pvprank_sub(struct block_list *bl,va_list ap)
{
@@ -8532,7 +8609,8 @@ int pc_calc_pvprank_sub(struct block_list *bl,va_list ap)
return 0;
}
/*==========================================
- * PVP‡ˆÊŒvŽZ
+ * Calculate new rank beetween all present players (map_foreachinarea)
+ * and display result
*------------------------------------------*/
int pc_calc_pvprank(struct map_session_data *sd)
{
@@ -8547,7 +8625,7 @@ int pc_calc_pvprank(struct map_session_data *sd)
return sd->pvp_rank;
}
/*==========================================
- * PVP‡ˆÊŒvŽZ(timer)
+ * Calculate next sd ranking calculation from config
*------------------------------------------*/
int pc_calc_pvprank_timer(int tid, unsigned int tick, int id, intptr_t data)
{
@@ -8569,7 +8647,10 @@ int pc_calc_pvprank_timer(int tid, unsigned int tick, int id, intptr_t data)
}
/*==========================================
- * sd‚ÍŒ‹¥‚µ‚Ä‚¢‚é‚©(?¥‚Ìꇂ͑Š•û‚Ìchar_id‚ð•Ô‚·)
+ * Checking if sd is married
+ * Return
+ * partner_id = yes,
+ * 0 = no
*------------------------------------------*/
int pc_ismarried(struct map_session_data *sd)
{
@@ -8581,7 +8662,10 @@ int pc_ismarried(struct map_session_data *sd)
return 0;
}
/*==========================================
- * sd‚ªdstsd‚ÆŒ‹¥(dstsd¨sd‚ÌŒ‹¥?—‚à“¯ŽbÉs‚¤)
+ * Marry player sd to player dstsd
+ * return
+ * -1 = fail
+ * 0 = success
*------------------------------------------*/
int pc_marriage(struct map_session_data *sd,struct map_session_data *dstsd)
{
@@ -8596,6 +8680,9 @@ int pc_marriage(struct map_session_data *sd,struct map_session_data *dstsd)
/*==========================================
* Divorce sd from its partner
+ * return
+ * -1 = fail
+ * 0 = success
*------------------------------------------*/
int pc_divorce(struct map_session_data *sd)
{
@@ -8634,7 +8721,7 @@ int pc_divorce(struct map_session_data *sd)
}
/*==========================================
- * sd‚Ì‘Š•û‚Ìmap_session_data‚ð•Ô‚·
+ * Get sd partner charid. (Married partner)
*------------------------------------------*/
struct map_session_data *pc_get_partner(struct map_session_data *sd)
{
@@ -8645,6 +8732,9 @@ struct map_session_data *pc_get_partner(struct map_session_data *sd)
return NULL;
}
+/*==========================================
+ * Get sd father charid. (Need to be baby)
+ *------------------------------------------*/
struct map_session_data *pc_get_father (struct map_session_data *sd)
{
if (sd && sd->class_&JOBL_BABY && sd->status.father > 0)
@@ -8654,6 +8744,9 @@ struct map_session_data *pc_get_father (struct map_session_data *sd)
return NULL;
}
+/*==========================================
+ * Get sd mother charid. (Need to be baby)
+ *------------------------------------------*/
struct map_session_data *pc_get_mother (struct map_session_data *sd)
{
if (sd && sd->class_&JOBL_BABY && sd->status.mother > 0)
@@ -8663,6 +8756,9 @@ struct map_session_data *pc_get_mother (struct map_session_data *sd)
return NULL;
}
+/*==========================================
+ * Get sd children charid. (Need to be married)
+ *------------------------------------------*/
struct map_session_data *pc_get_child (struct map_session_data *sd)
{
if (sd && pc_ismarried(sd) && sd->status.child > 0)
@@ -8672,6 +8768,9 @@ struct map_session_data *pc_get_child (struct map_session_data *sd)
return NULL;
}
+/*==========================================
+ * Set player sd to bleed. (losing hp and/or sp each diff_tick)
+ *------------------------------------------*/
void pc_bleeding (struct map_session_data *sd, unsigned int diff_tick)
{
int hp = 0, sp = 0;
@@ -8733,7 +8832,7 @@ void pc_regen (struct map_session_data *sd, unsigned int diff_tick)
}
/*==========================================
- * ƒZ?ƒuƒ|ƒCƒ“ƒg‚Ì•Û‘¶
+ * Memo player sd savepoint. (map,x,y)
*------------------------------------------*/
int pc_setsavepoint(struct map_session_data *sd, short mapindex,int x,int y)
{
@@ -8747,7 +8846,7 @@ int pc_setsavepoint(struct map_session_data *sd, short mapindex,int x,int y)
}
/*==========================================
- * Ž©“®ƒZ?ƒu (timer??)
+ * Save 1 player data at autosave intervalle
*------------------------------------------*/
int pc_autosave(int tid, unsigned int tick, int id, intptr_t data)
{
@@ -8864,7 +8963,7 @@ void pc_overheat(struct map_session_data *sd, int val) {
skill = cap_value(pc_checkskill(sd,NC_MAINFRAME),0,4);
if( sd->sc.data[SC_OVERHEAT_LIMITPOINT] ) {
heat += sd->sc.data[SC_OVERHEAT_LIMITPOINT]->val1;
- status_change_end(&sd->bl,SC_OVERHEAT_LIMITPOINT,-1);
+ status_change_end(&sd->bl,SC_OVERHEAT_LIMITPOINT,INVALID_TIMER);
}
heat = max(0,heat); // Avoid negative HEAT
@@ -9067,11 +9166,8 @@ int pc_split_atoui(char* str, unsigned int* val, char sep, int max)
}
/*==========================================
- * DB reading.
- * exp.txt - required experience values
- * skill_tree.txt - skill tree for every class
- * attr_fix.txt - elemental adjustment table
- * statpoint.txt - status points per base level
+ * sub DB reading.
+ * fonction used to read skill_tree.txt
*------------------------------------------*/
static bool pc_readdb_skilltree(char* fields[], int columns, int current)
{
@@ -9121,13 +9217,19 @@ static bool pc_readdb_skilltree(char* fields[], int columns, int current)
return true;
}
+/*==========================================
+ * pc DB reading.
+ * exp.txt - required experience values
+ * skill_tree.txt - skill tree for every class
+ * attr_fix.txt - elemental adjustment table
+ *------------------------------------------*/
int pc_readdb(void)
{
int i,j,k;
FILE *fp;
char line[24000],*p;
- // •K—v??’l?‚Ý?‚Ý
+ //reset
memset(exp_table,0,sizeof(exp_table));
memset(max_level,0,sizeof(max_level));
@@ -9212,12 +9314,11 @@ int pc_readdb(void)
}
ShowStatus("Done reading '"CL_WHITE"%s"CL_RESET"'.\n","exp.txt");
- // ƒXƒLƒ‹ƒcƒŠ?
+ // Reset and read skilltree
memset(skill_tree,0,sizeof(skill_tree));
-
sv_readdb(db_path, DBPATH"skill_tree.txt", ',', 3+MAX_PC_SKILL_REQUIRE*2, 4+MAX_PC_SKILL_REQUIRE*2, -1, &pc_readdb_skilltree);
- // ?«C³ƒe?ƒuƒ‹
+ // Reset then read attr_fix
for(i=0;i<4;i++)
for(j=0;j<ELE_MAX;j++)
for(k=0;k<ELE_MAX;k++)
@@ -9269,7 +9370,7 @@ int pc_readdb(void)
fclose(fp);
ShowStatus("Done reading '"CL_WHITE"%s"CL_RESET"'.\n","attr_fix.txt");
- // ƒXƒLƒ‹ƒcƒŠ?
+ // reset then read statspoint
memset(statp,0,sizeof(statp));
i=1;
@@ -9400,7 +9501,7 @@ void pc_itemcd_do(struct map_session_data *sd, bool load) {
return;
}
/*==========================================
- * pc? ŒW‰Šú‰»
+ * pc Init/Terminate
*------------------------------------------*/
void do_final_pc(void) {