From 467327c8169d0c952cec53535f9f2189d85baa53 Mon Sep 17 00:00:00 2001 From: GmOcean Date: Sun, 23 Nov 2014 23:07:15 -1000 Subject: Added Commands to script_commands.txt and script.c --- src/map/script.c | 241 ++++++++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 222 insertions(+), 19 deletions(-) (limited to 'src/map/script.c') diff --git a/src/map/script.c b/src/map/script.c index aa90a5b1c..37236d223 100644 --- a/src/map/script.c +++ b/src/map/script.c @@ -12424,35 +12424,76 @@ BUILDIN(petloot) * @inventorylist_card(0..3), @inventorylist_expire * @inventorylist_count = scalar *------------------------------------------*/ -BUILDIN(getinventorylist) -{ +BUILDIN(getinventorylist){ TBL_PC *sd=script->rid2sd(st); char card_var[NAME_LENGTH]; + struct item_data *item; - int i,j=0,k; + int id; + int i,j=0,k,l; if(!sd) return true; - for(i=0;istatus.inventory[i].nameid > 0 && sd->status.inventory[i].amount > 0) { - pc->setreg(sd,reference_uid(script->add_str("@inventorylist_id"), j),sd->status.inventory[i].nameid); - pc->setreg(sd,reference_uid(script->add_str("@inventorylist_amount"), j),sd->status.inventory[i].amount); - pc->setreg(sd,reference_uid(script->add_str("@inventorylist_equip"), j),sd->status.inventory[i].equip); - pc->setreg(sd,reference_uid(script->add_str("@inventorylist_refine"), j),sd->status.inventory[i].refine); - pc->setreg(sd,reference_uid(script->add_str("@inventorylist_identify"), j),sd->status.inventory[i].identify); - pc->setreg(sd,reference_uid(script->add_str("@inventorylist_attribute"), j),sd->status.inventory[i].attribute); - for (k = 0; k < MAX_SLOTS; k++) - { - sprintf(card_var, "@inventorylist_card%d",k+1); - pc->setreg(sd,reference_uid(script->add_str(card_var), j),sd->status.inventory[i].card[k]); + + for(i=0;istatus.inventory[i].nameid > 0 && sd->status.inventory[i].amount > 0) { + pc->setreg(sd,reference_uid(script->add_str("@inventorylist_id"), j),sd->status.inventory[i].nameid); + pc->setreg(sd,reference_uid(script->add_str("@inventorylist_amount"), j),sd->status.inventory[i].amount); + if(sd->status.inventory[i].equip) { + for (k = 0; k < ARRAYLENGTH(script->equip); k++) { + id = pc->checkequip(sd,script->equip[k]); + item = sd->inventory_data[id]; + if( item != 0 ){ + if(item->nameid == sd->status.inventory[i].nameid) { + pc->setreg(sd,reference_uid(script->add_str("@inventorylist_equip"), j),k+1); + } + } + } + } else { + pc->setreg(sd,reference_uid(script->add_str("@inventorylist_equip"), j),0); + } + pc->setreg(sd,reference_uid(script->add_str("@inventorylist_refine"), j),sd->status.inventory[i].refine); + pc->setreg(sd,reference_uid(script->add_str("@inventorylist_identify"), j),sd->status.inventory[i].identify); + pc->setreg(sd,reference_uid(script->add_str("@inventorylist_attribute"), j),sd->status.inventory[i].attribute); + for (l = 0; l < MAX_SLOTS; l++) { + sprintf(card_var, "@inventorylist_card%d",l+1); + pc->setreg(sd,reference_uid(script->add_str(card_var), j),sd->status.inventory[i].card[l]); + } + pc->setreg(sd,reference_uid(script->add_str("@inventorylist_expire"), j),sd->status.inventory[i].expire_time); + pc->setreg(sd,reference_uid(script->add_str("@inventorylist_bound"), j),sd->status.inventory[i].bound); + j++; } - pc->setreg(sd,reference_uid(script->add_str("@inventorylist_expire"), j),sd->status.inventory[i].expire_time); - pc->setreg(sd,reference_uid(script->add_str("@inventorylist_bound"), j),sd->status.inventory[i].bound); - j++; } - } pc->setreg(sd,script->add_str("@inventorylist_count"),j); return true; } +BUILDIN(getcartinventorylist){ + TBL_PC *sd=script->rid2sd(st); + char card_var[NAME_LENGTH]; + + int i,j=0,k; + if(!sd) return true; + + for(i=0;istatus.cart[i].nameid > 0 && sd->status.cart[i].amount > 0) { + pc->setreg(sd,reference_uid(script->add_str("@cartinventorylist_id"), j),sd->status.cart[i].nameid); + pc->setreg(sd,reference_uid(script->add_str("@cartinventorylist_amount"), j),sd->status.cart[i].amount); + pc->setreg(sd,reference_uid(script->add_str("@cartinventorylist_equip"), j),sd->status.cart[i].equip); + pc->setreg(sd,reference_uid(script->add_str("@cartinventorylist_refine"), j),sd->status.cart[i].refine); + pc->setreg(sd,reference_uid(script->add_str("@cartinventorylist_identify"), j),sd->status.cart[i].identify); + pc->setreg(sd,reference_uid(script->add_str("@cartinventorylist_attribute"), j),sd->status.cart[i].attribute); + for (k = 0; k < MAX_SLOTS; k++) { + sprintf(card_var, "@cartinventorylist_card%d",k+1); + pc->setreg(sd,reference_uid(script->add_str(card_var), j),sd->status.cart[i].card[k]); + } + pc->setreg(sd,reference_uid(script->add_str("@cartinventorylist_expire"), j),sd->status.cart[i].expire_time); + pc->setreg(sd,reference_uid(script->add_str("@cartinventorylist_bound"), j),sd->status.cart[i].bound); + j++; + } + } + pc->setreg(sd,script->add_str("@cartinventorylist_count"),j); + return true; +} + BUILDIN(getskilllist) { TBL_PC *sd=script->rid2sd(st); @@ -13900,6 +13941,60 @@ BUILDIN(autoequip) return true; } +/*======================================================= + * Equip2 + * equip2 ,,,,,,{,}; + *-------------------------------------------------------*/ +BUILDIN(equip2) +{ + int i,nameid,ref,attr,c0,c1,c2,c3,bound; + struct item_data *item_data; + TBL_PC *sd; + + if ( script_hasdata(st,9) ) + sd = map->id2sd(script_getnum(st,9)); + else + sd = script->rid2sd(st); + + if ( sd == NULL ) { + script_pushint(st,0); + return true; + } + + nameid = script_getnum(st,2); + if( (item_data = itemdb->exists(nameid)) == NULL ) + { + ShowError("Wrong item ID : equip2(%i)\n",nameid); + script_pushint(st,0); + return false; + } + + ref = script_getnum(st,3); + attr = script_getnum(st,4); + c0 = (short)script_getnum(st,5); + c1 = (short)script_getnum(st,6); + c2 = (short)script_getnum(st,7); + c3 = (short)script_getnum(st,8); + + ARR_FIND( 0, MAX_INVENTORY, i,( sd->status.inventory[i].equip == 0 && + sd->status.inventory[i].nameid == nameid && + sd->status.inventory[i].refine == ref && + sd->status.inventory[i].attribute == attr && + sd->status.inventory[i].card[0] == c0 && + sd->status.inventory[i].card[1] == c1 && + sd->status.inventory[i].card[2] == c2 && + sd->status.inventory[i].card[3] == c3 ) ); + + if( i < MAX_INVENTORY ) { + script_pushint(st,1); + pc->equipitem(sd,i,item_data->equip); + } + else + script_pushint(st,0); + + return true; +} + BUILDIN(setbattleflag) { const char *flag, *value; @@ -17185,6 +17280,63 @@ BUILDIN(instance_check_party) { return true; } +/*========================================== + * instance_check_guild + * Values: + * guild_id : Guild ID of the invoking character. [Required Parameter] + * amount : Amount of needed Guild Members for the Instance. [Optional Parameter] + * min : Minimum Level needed to join the Instance. [Optional Parameter] + * max : Maxium Level allowed to join the Instance. [Optional Parameter] + * Example: instance_check_guild (getcharid(2){,amount}{,min}{,max}); + * Example 2: instance_check_guild (getcharid(2),1,1,99); + *------------------------------------------*/ +BUILDIN(instance_check_guild){ + struct map_session_data *pl_sd; + int amount, min, max, i, guild_id, c = 0; + struct guild *g = NULL; + + amount = script_hasdata(st,3) ? script_getnum(st,3) : 1; + min = script_hasdata(st,4) ? script_getnum(st,4) : 1; + max = script_hasdata(st,5) ? script_getnum(st,5) : MAX_LEVEL; + + if( min < 1 || min > MAX_LEVEL ){ + ShowError("instance_check_guild: Invalid min level, %d\n", min); + return true; + } else if( max < 1 || max > MAX_LEVEL ){ + ShowError("instance_check_guild: Invalid max level, %d\n", max); + return true; + } + + if( script_hasdata(st,2) ) + guild_id = script_getnum(st,2); + else return true; + + if( !(g = guild->search(guild_id)) ){ + script_pushint(st,0); + return true; + } + + for( i = 0; i < MAX_GUILD; i++ ) + if( (pl_sd = g->member[i].sd) ) + if( map->id2bl(pl_sd->bl.id) ){ + if( pl_sd->status.base_level < min ){ + script_pushint(st,0); + return true; + } else if( pl_sd->status.base_level > max ){ + script_pushint(st,0); + return true; + } + c++; + } + + if( c < amount ) + script_pushint(st,0); + else + script_pushint(st,1); + + return true; +} + /*========================================== * Custom Fonts *------------------------------------------*/ @@ -18533,6 +18685,53 @@ BUILDIN(countbound) return 0; } +/*========================================== + * checkbound({,{,{,{,{,{,{,}}}}}}}); + * Checks to see if specified item is in inventory. + * Returns the bound type of item found. + * Type: + * 1 - Account Bound + * 2 - Guild Bound + * 3 - Party Bound + * 4 - Character Bound + *------------------------------------------*/ +BUILDIN(checkbound){ + int i, nameid = script_getnum(st,2); + int bound_type, ref, attr, c1, c2, c3, c4; + TBL_PC *sd; + + sd = script->rid2sd(st); + if( sd == NULL ) + return false; + + if( !(itemdb->exists(nameid)) ){ + ShowError("script_checkbound: Invalid item ID = %d\n", nameid); + return false; + } + + bound_type = ( script_hasdata(st,3) ? script_getnum(st,3) : -1 ); + if( bound_type < -1 || bound_type > IBT_MAX ){ + ShowError("script_checkbound: Not a valid bind type! Type=%d\n", bound_type); + } + + ARR_FIND( 0, MAX_INVENTORY, i, (sd->status.inventory[i].nameid == nameid && + ( sd->status.inventory[i].refine == (script_hasdata(st,4)? (ref = script_getnum(st,4)) : sd->status.inventory[i].refine) ) && + ( sd->status.inventory[i].attribute == (script_hasdata(st,5)? (attr = script_getnum(st,5)) : sd->status.inventory[i].attribute) ) && + ( sd->status.inventory[i].card[0] == (script_hasdata(st,6)? (c1 = script_getnum(st,6)) : sd->status.inventory[i].card[0]) ) && + ( sd->status.inventory[i].card[1] == (script_hasdata(st,7)? (c2 = script_getnum(st,7)) : sd->status.inventory[i].card[1]) ) && + ( sd->status.inventory[i].card[2] == (script_hasdata(st,8)? (c3 = script_getnum(st,8)) : sd->status.inventory[i].card[2]) ) && + ( sd->status.inventory[i].card[3] == (script_hasdata(st,9)? (c4 = script_getnum(st,9)) : sd->status.inventory[i].card[3]) ) && + ( sd->status.inventory[i].bound > 0 && bound_type == -1 || sd->status.inventory[i].bound == bound_type )) ); + + if( i < MAX_INVENTORY ){ + script_pushint(st, sd->status.inventory[i].bound); + return true; + } else + script_pushint(st,0); + + return true; +} + /* bg_match_over( arena_name {, optional canceled } ) */ /* returns 0 when successful, 1 otherwise */ BUILDIN(bg_match_over) { @@ -19221,6 +19420,7 @@ void script_parse_builtin(void) { BUILDIN_DEF(makepet,"i"), BUILDIN_DEF(getexp,"ii"), BUILDIN_DEF(getinventorylist,""), + BUILDIN_DEF(getcartinventorylist,""), BUILDIN_DEF(getskilllist,""), BUILDIN_DEF(clearitem,""), BUILDIN_DEF(classchange,"ii"), @@ -19331,6 +19531,7 @@ void script_parse_builtin(void) { BUILDIN_DEF(npcshopattach,"s?"), BUILDIN_DEF(equip,"i"), BUILDIN_DEF(autoequip,"ii"), + BUILDIN_DEF(equip2,"iiiiiii?"), BUILDIN_DEF(setbattleflag,"si"), BUILDIN_DEF(getbattleflag,"s"), BUILDIN_DEF(setitemscript,"is?"), //Set NEW item bonus script. Lupus @@ -19431,6 +19632,7 @@ void script_parse_builtin(void) { BUILDIN_DEF(has_instance,"s?"), BUILDIN_DEF(instance_warpall,"sii?"), BUILDIN_DEF(instance_check_party,"i???"), + BUILDIN_DEF(instance_check_guild,"i???"), BUILDIN_DEF(instance_mapname,"s?"), BUILDIN_DEF(instance_set_respawn,"sii?"), BUILDIN_DEF2(has_instance,"has_instance2","s"), @@ -19471,6 +19673,7 @@ void script_parse_builtin(void) { BUILDIN_DEF2(getitem,"getitembound","vii?"), BUILDIN_DEF2(getitem2,"getitembound2","viiiiiiiii?"), BUILDIN_DEF(countbound, "?"), + BUILDIN_DEF(checkbound, "i???????"), //Quest Log System [Inkfish] BUILDIN_DEF(questinfo, "ii??"), -- cgit v1.2.3-60-g2f50 From eca655c1e581a7a25f58e9e1d96d1da7c84ea64f Mon Sep 17 00:00:00 2001 From: GmOcean Date: Sun, 23 Nov 2014 23:16:52 -1000 Subject: Fixed whitespace --- doc/script_commands.txt | 4 +-- src/map/script.c | 78 ++++++++++++++++++++++++------------------------- 2 files changed, 41 insertions(+), 41 deletions(-) (limited to 'src/map/script.c') diff --git a/doc/script_commands.txt b/doc/script_commands.txt index a67e74899..ddecc4f56 100644 --- a/doc/script_commands.txt +++ b/doc/script_commands.txt @@ -8449,7 +8449,7 @@ if (instance_check_party(getcharid(1),2,2,149)) { mes "All online members are between levels 1-150 and at least two are online."; close; } else { - mes "Sorry, your party does not meet requirements."; + mes "Sorry, your party does not meet the requirements."; close; } @@ -8470,7 +8470,7 @@ Example: mes "All online members are between levels 1-150 and at least two are online."; close; } else { - mes "Sorry, your guild does not meet requirements."; + mes "Sorry, your guild does not meet the requirements."; close; } diff --git a/src/map/script.c b/src/map/script.c index 37236d223..a4fcb118d 100644 --- a/src/map/script.c +++ b/src/map/script.c @@ -12433,35 +12433,35 @@ BUILDIN(getinventorylist){ int i,j=0,k,l; if(!sd) return true; - for(i=0;istatus.inventory[i].nameid > 0 && sd->status.inventory[i].amount > 0) { - pc->setreg(sd,reference_uid(script->add_str("@inventorylist_id"), j),sd->status.inventory[i].nameid); - pc->setreg(sd,reference_uid(script->add_str("@inventorylist_amount"), j),sd->status.inventory[i].amount); - if(sd->status.inventory[i].equip) { - for (k = 0; k < ARRAYLENGTH(script->equip); k++) { - id = pc->checkequip(sd,script->equip[k]); - item = sd->inventory_data[id]; - if( item != 0 ){ - if(item->nameid == sd->status.inventory[i].nameid) { - pc->setreg(sd,reference_uid(script->add_str("@inventorylist_equip"), j),k+1); - } + for(i=0;istatus.inventory[i].nameid > 0 && sd->status.inventory[i].amount > 0) { + pc->setreg(sd,reference_uid(script->add_str("@inventorylist_id"), j),sd->status.inventory[i].nameid); + pc->setreg(sd,reference_uid(script->add_str("@inventorylist_amount"), j),sd->status.inventory[i].amount); + if(sd->status.inventory[i].equip) { + for (k = 0; k < ARRAYLENGTH(script->equip); k++) { + id = pc->checkequip(sd,script->equip[k]); + item = sd->inventory_data[id]; + if( item != 0 ){ + if(item->nameid == sd->status.inventory[i].nameid) { + pc->setreg(sd,reference_uid(script->add_str("@inventorylist_equip"), j),k+1); } } - } else { - pc->setreg(sd,reference_uid(script->add_str("@inventorylist_equip"), j),0); - } - pc->setreg(sd,reference_uid(script->add_str("@inventorylist_refine"), j),sd->status.inventory[i].refine); - pc->setreg(sd,reference_uid(script->add_str("@inventorylist_identify"), j),sd->status.inventory[i].identify); - pc->setreg(sd,reference_uid(script->add_str("@inventorylist_attribute"), j),sd->status.inventory[i].attribute); - for (l = 0; l < MAX_SLOTS; l++) { - sprintf(card_var, "@inventorylist_card%d",l+1); - pc->setreg(sd,reference_uid(script->add_str(card_var), j),sd->status.inventory[i].card[l]); } - pc->setreg(sd,reference_uid(script->add_str("@inventorylist_expire"), j),sd->status.inventory[i].expire_time); - pc->setreg(sd,reference_uid(script->add_str("@inventorylist_bound"), j),sd->status.inventory[i].bound); - j++; + } else { + pc->setreg(sd,reference_uid(script->add_str("@inventorylist_equip"), j),0); + } + pc->setreg(sd,reference_uid(script->add_str("@inventorylist_refine"), j),sd->status.inventory[i].refine); + pc->setreg(sd,reference_uid(script->add_str("@inventorylist_identify"), j),sd->status.inventory[i].identify); + pc->setreg(sd,reference_uid(script->add_str("@inventorylist_attribute"), j),sd->status.inventory[i].attribute); + for (l = 0; l < MAX_SLOTS; l++) { + sprintf(card_var, "@inventorylist_card%d",l+1); + pc->setreg(sd,reference_uid(script->add_str(card_var), j),sd->status.inventory[i].card[l]); } + pc->setreg(sd,reference_uid(script->add_str("@inventorylist_expire"), j),sd->status.inventory[i].expire_time); + pc->setreg(sd,reference_uid(script->add_str("@inventorylist_bound"), j),sd->status.inventory[i].bound); + j++; } + } pc->setreg(sd,script->add_str("@inventorylist_count"),j); return true; } @@ -12473,23 +12473,23 @@ BUILDIN(getcartinventorylist){ int i,j=0,k; if(!sd) return true; - for(i=0;istatus.cart[i].nameid > 0 && sd->status.cart[i].amount > 0) { - pc->setreg(sd,reference_uid(script->add_str("@cartinventorylist_id"), j),sd->status.cart[i].nameid); - pc->setreg(sd,reference_uid(script->add_str("@cartinventorylist_amount"), j),sd->status.cart[i].amount); - pc->setreg(sd,reference_uid(script->add_str("@cartinventorylist_equip"), j),sd->status.cart[i].equip); - pc->setreg(sd,reference_uid(script->add_str("@cartinventorylist_refine"), j),sd->status.cart[i].refine); - pc->setreg(sd,reference_uid(script->add_str("@cartinventorylist_identify"), j),sd->status.cart[i].identify); - pc->setreg(sd,reference_uid(script->add_str("@cartinventorylist_attribute"), j),sd->status.cart[i].attribute); - for (k = 0; k < MAX_SLOTS; k++) { - sprintf(card_var, "@cartinventorylist_card%d",k+1); - pc->setreg(sd,reference_uid(script->add_str(card_var), j),sd->status.cart[i].card[k]); - } - pc->setreg(sd,reference_uid(script->add_str("@cartinventorylist_expire"), j),sd->status.cart[i].expire_time); - pc->setreg(sd,reference_uid(script->add_str("@cartinventorylist_bound"), j),sd->status.cart[i].bound); - j++; + for(i=0;istatus.cart[i].nameid > 0 && sd->status.cart[i].amount > 0) { + pc->setreg(sd,reference_uid(script->add_str("@cartinventorylist_id"), j),sd->status.cart[i].nameid); + pc->setreg(sd,reference_uid(script->add_str("@cartinventorylist_amount"), j),sd->status.cart[i].amount); + pc->setreg(sd,reference_uid(script->add_str("@cartinventorylist_equip"), j),sd->status.cart[i].equip); + pc->setreg(sd,reference_uid(script->add_str("@cartinventorylist_refine"), j),sd->status.cart[i].refine); + pc->setreg(sd,reference_uid(script->add_str("@cartinventorylist_identify"), j),sd->status.cart[i].identify); + pc->setreg(sd,reference_uid(script->add_str("@cartinventorylist_attribute"), j),sd->status.cart[i].attribute); + for (k = 0; k < MAX_SLOTS; k++) { + sprintf(card_var, "@cartinventorylist_card%d",k+1); + pc->setreg(sd,reference_uid(script->add_str(card_var), j),sd->status.cart[i].card[k]); } + pc->setreg(sd,reference_uid(script->add_str("@cartinventorylist_expire"), j),sd->status.cart[i].expire_time); + pc->setreg(sd,reference_uid(script->add_str("@cartinventorylist_bound"), j),sd->status.cart[i].bound); + j++; } + } pc->setreg(sd,script->add_str("@cartinventorylist_count"),j); return true; } -- cgit v1.2.3-60-g2f50 From 770b2bde8b3553449d6f33b1a86d2c871f80127d Mon Sep 17 00:00:00 2001 From: GmOcean Date: Sat, 29 Nov 2014 18:38:25 -1000 Subject: Updated script.c to reflect suggestion by QQfoolsorellina as well as an unused int under equip2. --- src/map/script.c | 22 ++++++---------------- 1 file changed, 6 insertions(+), 16 deletions(-) (limited to 'src/map/script.c') diff --git a/src/map/script.c b/src/map/script.c index a4fcb118d..89bc74643 100644 --- a/src/map/script.c +++ b/src/map/script.c @@ -12427,10 +12427,8 @@ BUILDIN(petloot) BUILDIN(getinventorylist){ TBL_PC *sd=script->rid2sd(st); char card_var[NAME_LENGTH]; - struct item_data *item; - int id; - int i,j=0,k,l; + int i,j=0,k; if(!sd) return true; for(i=0;isetreg(sd,reference_uid(script->add_str("@inventorylist_id"), j),sd->status.inventory[i].nameid); pc->setreg(sd,reference_uid(script->add_str("@inventorylist_amount"), j),sd->status.inventory[i].amount); if(sd->status.inventory[i].equip) { - for (k = 0; k < ARRAYLENGTH(script->equip); k++) { - id = pc->checkequip(sd,script->equip[k]); - item = sd->inventory_data[id]; - if( item != 0 ){ - if(item->nameid == sd->status.inventory[i].nameid) { - pc->setreg(sd,reference_uid(script->add_str("@inventorylist_equip"), j),k+1); - } - } - } + pc->setreg(sd,reference_uid(script->add_str("@inventorylist_equip"), j),pc->equippoint(sd,i)); } else { pc->setreg(sd,reference_uid(script->add_str("@inventorylist_equip"), j),0); } pc->setreg(sd,reference_uid(script->add_str("@inventorylist_refine"), j),sd->status.inventory[i].refine); pc->setreg(sd,reference_uid(script->add_str("@inventorylist_identify"), j),sd->status.inventory[i].identify); pc->setreg(sd,reference_uid(script->add_str("@inventorylist_attribute"), j),sd->status.inventory[i].attribute); - for (l = 0; l < MAX_SLOTS; l++) { - sprintf(card_var, "@inventorylist_card%d",l+1); - pc->setreg(sd,reference_uid(script->add_str(card_var), j),sd->status.inventory[i].card[l]); + for (k = 0; k < MAX_SLOTS; k++) { + sprintf(card_var, "@inventorylist_card%d",k+1); + pc->setreg(sd,reference_uid(script->add_str(card_var), j),sd->status.inventory[i].card[k]); } pc->setreg(sd,reference_uid(script->add_str("@inventorylist_expire"), j),sd->status.inventory[i].expire_time); pc->setreg(sd,reference_uid(script->add_str("@inventorylist_bound"), j),sd->status.inventory[i].bound); @@ -13947,7 +13937,7 @@ BUILDIN(autoequip) *-------------------------------------------------------*/ BUILDIN(equip2) { - int i,nameid,ref,attr,c0,c1,c2,c3,bound; + int i,nameid,ref,attr,c0,c1,c2,c3; struct item_data *item_data; TBL_PC *sd; -- cgit v1.2.3-60-g2f50 From 7a9133ed8fa1c20063324ad8fe2517e6b6470cc4 Mon Sep 17 00:00:00 2001 From: GmOcean Date: Wed, 3 Dec 2014 18:59:29 -1000 Subject: Modified *checkbound & *equip2 commands in src/map/script.c Modified the corresponding documentation to match source code. --- doc/script_commands.txt | 39 +++++++++++++++++++++++++++++++++------ src/map/script.c | 17 ++++++++--------- 2 files changed, 41 insertions(+), 15 deletions(-) (limited to 'src/map/script.c') diff --git a/doc/script_commands.txt b/doc/script_commands.txt index 380fa72f4..b184444cd 100644 --- a/doc/script_commands.txt +++ b/doc/script_commands.txt @@ -4848,36 +4848,63 @@ Example: *checkbound({,{,{,{,{,{,{,}}}}}}}); This command allows you to check whether or not the attached player has the specified bound item in their inventory. +If a bound type is not specified or a bound type of 0 is used, it will search the player's inventory for a bound item +of any type, so long as the other parameters match. In all cases, this command will return the bound type of the +item found, or 0 if the specified item was not found. Valid bound types are: + 0 - All Bound types. 1 - Account Bound 2 - Guild Bound 3 - Party Bound 4 - Character Bound Optional Parameters: + bound_type - checks to see if the item has the specified bound type. refine - checks to see if the item is refined to the given number. - attribute - whether the item is broken (1) or not (0) + attribute - whether the item is broken (1) or not (0). card 1,2,3,4 - checks to see if the specified cards are compounded on the item as well. Example: // This will check if you have a bound (any type) 1205 (Cutter). if (checkbound(1205)) { mes "You have a bound Cutter"; - close; } else { mes "You do not have a bound Cutter"; - close; } + close; + + // This will also check if you have a bound (any type) 1205 (Cutter). + if (checkbound(1205,0)) { + mes "You have a bound Cutter"; + } else { + mes "You do not have a bound Cutter"; + } + close; + + // This will check if the player doesn't have a bound 1205 (Cutter). + if (!checkbound(1205)) { + mes "You do not have a bound Cutter"; + } else { + mes "You do have a bound Cutter"; + } + close; + + // This will check if the item found, has a bound type of 2 (guild_bound) + if (checkbound(1205) == 2) { + mes "You have a guild_bound Cutter"; + } else { + mes "You do not have a guild_bound Cutter."; + } + close; // This will check if you have a 'guild_bound' +7 1205 (Cutter). if (checkbound(1205, 2, 7)) { mes "You have a +7 guild_bound Cutter."; - close; } else { mes "You don't have the required item."; - close; } + close; --------------------------------------- *getnameditem ,; @@ -5279,7 +5306,7 @@ like storage or cart. --------------------------------------- *equip ; -*equip2 ,,,,,,{,}; +*equip2 ,,,,,,; *autoequip ,