From bacf8ae2beed3b3605572d339231e03962d946ac Mon Sep 17 00:00:00 2001 From: Freeyorp Date: Mon, 28 Dec 2009 22:22:03 +1300 Subject: Pass a variable @slotId when running equip scripts. --- src/map/pc.c | 47 ++++++++++++++++++++++++++++++++++------------- 1 file changed, 34 insertions(+), 13 deletions(-) (limited to 'src') diff --git a/src/map/pc.c b/src/map/pc.c index c3470db..49018e7 100644 --- a/src/map/pc.c +++ b/src/map/pc.c @@ -1461,11 +1461,14 @@ int pc_calcstatus (struct map_session_data *sd, int first) int c = sd->status.inventory[index].card[j]; if (c > 0) { + argrec_t arg; + arg.name = "@slotId"; + arg.v.i = i; if (i == 8 && sd->status.inventory[index].equip == 0x20) sd->state.lr_flag = 1; - run_script (itemdb_equipscript (c), 0, sd->bl.id, - 0); + run_script_l (itemdb_equipscript (c), 0, sd->bl.id, + 0, 1, &arg); sd->state.lr_flag = 0; } } @@ -1481,9 +1484,13 @@ int pc_calcstatus (struct map_session_data *sd, int first) for (j = 0; j < sd->inventory_data[index]->slot; j++) { // �J�[�h int c = sd->status.inventory[index].card[j]; - if (c > 0) - run_script (itemdb_equipscript (c), 0, sd->bl.id, - 0); + if (c > 0) { + argrec_t arg; + arg.name = "@slotId"; + arg.v.i = i; + run_script_l (itemdb_equipscript (c), 0, sd->bl.id, + 0, 1, &arg); + } } } } @@ -1538,12 +1545,20 @@ int pc_calcstatus (struct map_session_data *sd, int first) } sd->attackrange_ += sd->inventory_data[index]->range; sd->state.lr_flag = 1; - run_script (sd->inventory_data[index]->equip_script, 0, - sd->bl.id, 0); + { + argrec_t arg; + arg.name = "@slotId"; + arg.v.i = i; + run_script_l (sd->inventory_data[index]->equip_script, 0, + sd->bl.id, 0, 1, &arg); + } sd->state.lr_flag = 0; } else { //�񓁗������ȊO + argrec_t arg; + arg.name = "@slotId"; + arg.v.i = i; sd->watk += sd->inventory_data[index]->atk; sd->watk2 += (r = sd->status.inventory[index].refine) * // ���B�U���� refinebonus[wlv][0]; @@ -1556,17 +1571,20 @@ int pc_calcstatus (struct map_session_data *sd, int first) wele = (sd->status.inventory[index].card[1] & 0x0f); // �� �� } sd->attackrange += sd->inventory_data[index]->range; - run_script (sd->inventory_data[index]->equip_script, 0, - sd->bl.id, 0); + run_script_l (sd->inventory_data[index]->equip_script, 0, + sd->bl.id, 0, 1, &arg); } } else if (sd->inventory_data[index]->type == 5) { + argrec_t arg; + arg.name = "@slotId"; + arg.v.i = i; sd->watk += sd->inventory_data[index]->atk; refinedef += sd->status.inventory[index].refine * refinebonus[0][0]; - run_script (sd->inventory_data[index]->equip_script, 0, - sd->bl.id, 0); + run_script_l (sd->inventory_data[index]->equip_script, 0, + sd->bl.id, 0, 1, &arg); } } } @@ -1584,9 +1602,12 @@ int pc_calcstatus (struct map_session_data *sd, int first) index = sd->equip_index[10]; if (sd->inventory_data[index]) { //�܂�����������Ă��Ȃ� + argrec_t arg; + arg.name = "@slotId"; + arg.v.i = i; sd->state.lr_flag = 2; - run_script (sd->inventory_data[index]->equip_script, 0, sd->bl.id, - 0); + run_script_l (sd->inventory_data[index]->equip_script, 0, sd->bl.id, + 0, 1, &arg); sd->state.lr_flag = 0; sd->arrow_atk += sd->inventory_data[index]->atk; } -- cgit v1.2.3-60-g2f50