xfvvvv 發表於 2011-6-12 23:27:00

Setitemdata


//设置指定状态
BUILDIN_FUNC(Setitemdata)
{
TBL_PC *sd=script_rid2sd(st); //定义sd为脚本的执行者
struct item item_tmp;//item型变量
int i = 0,flag,num; //定义变量

if( sd == NULL ) //脚本执行者为空时
return 0;
num=script_getnum(st,2); //取得玩家所输入的位置
if (num > 0 && num <= ARRAYLENGTH(equip))
i=pc_checkequip(sd,equip);
if (i < 0 || !sd->inventory_data) //如果没有道具
return 0;
if(sd->status.inventory.nameid > 0){ //存在该道具
item_tmp.nameid = script_getnum(st, 3) == -1 ? sd->status.inventory.nameid : script_getnum(st, 3);
item_tmp.amount = script_getnum(st, 4) == -1 ? sd->status.inventory.amount : script_getnum(st, 4);
item_tmp.equip = script_getnum(st, 5) == -1 ? sd->status.inventory.equip : script_getnum(st, 5);
item_tmp.refine = script_getnum(st, 6) == -1 ? sd->status.inventory.refine : script_getnum(st, 6);
item_tmp.identify = script_getnum(st, 7) == -1 ? sd->status.inventory.identify : script_getnum(st, 7);
item_tmp.attribute = script_getnum(st, 8) == -1 ? sd->status.inventory.attribute : script_getnum(st, 8);
item_tmp.item_lock = script_getnum(st, 9) == -1 ? sd->status.inventory.item_lock : script_getnum(st, 9);
item_tmp.card = script_getnum(st, 10) == -1 ? sd->status.inventory.card : script_getnum(st, 10);
item_tmp.card = script_getnum(st, 11) == -1 ? sd->status.inventory.card : script_getnum(st, 11);
item_tmp.card = script_getnum(st, 12) == -1 ? sd->status.inventory.card : script_getnum(st, 12);
item_tmp.card = script_getnum(st, 13) == -1 ? sd->status.inventory.card : script_getnum(st, 13);
item_tmp.expire_time = sd->status.inventory.expire_time; //默认不修改租赁时间,防止不必要的麻烦
pc_delitem(sd,i,1,0,0); //删除原道具
if((flag=pc_additem(sd,&item_tmp,1))){ //添加道具部分
   clif_additem(sd,0,0,flag);
   map_addflooritem(&item_tmp,1,sd->bl.m,sd->bl.x,sd->bl.y,0,0,0,0);
}
}
return 0;
}

xfvvvv 發表於 2011-6-12 23:28:34

BUILDIN_DEF(Setitemdata,"*"),

使用方法
settheitem .@part,-1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1;
頁: [1]
查看完整版本: Setitemdata