summaryrefslogtreecommitdiff
path: root/src/map/pc.c
diff options
context:
space:
mode:
authorFreeyorp <Freeyorp101@hotmail.com>2009-12-28 22:22:03 +1300
committerJared Adams <jaxad0127@gmail.com>2009-12-28 23:51:15 +0000
commitbacf8ae2beed3b3605572d339231e03962d946ac (patch)
treee2ee2f48436a92e0e59ba88602d431edd4b77418 /src/map/pc.c
parent634aeeb9d58b01f9de6632a014a063ef0c4cf31e (diff)
downloadtmwa-bacf8ae2beed3b3605572d339231e03962d946ac.tar.gz
tmwa-bacf8ae2beed3b3605572d339231e03962d946ac.tar.bz2
tmwa-bacf8ae2beed3b3605572d339231e03962d946ac.tar.xz
tmwa-bacf8ae2beed3b3605572d339231e03962d946ac.zip
Pass a variable @slotId when running equip scripts.
Diffstat (limited to 'src/map/pc.c')
-rw-r--r--src/map/pc.c47
1 files changed, 34 insertions, 13 deletions
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;
}