Jump to content
Sign in to follow this  
Emistry

Usable Enchant Item

Recommended Posts

thumb-552b4563db94470d03eb28dbe8b45120-capture.png

File Name: Usable Enchant Item

File Submitter: Emistry

File Submitted: 18 Jan 2016

File Category: Utility

 

Description :

Players are able to click on the Enchant items to provide custom bonus to the selected equipment.

 

Varies of bonus could be done especially use together with a *getequippedon script command to provide a wide range of bonuses.

The current items and bonuses display in the video is just a sample for demo.

 

The origin of the idea come from Diablo and 張阿神.

 

Preview :

 

Click here to download this file

Share this post


Link to post
Share on other sites


[Error]: script error in file 'pre-re/item_db.conf' item ID 6624
    parse_line: need ';'
* 6625:
  6624:                 .@eqp = getequippedon();
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
* 6623:
* 6622:                 if (.@eqp & EQP_ARMOR) {
* 6621:                         bonus bVit,100;

I don't understand why i have this error, Can you help?
{
    Id: 6625
    AegisName: "High_Purity_Energy_Xtal"
    Name: "High Purity Energy Xtal"
    Buy: 6
    Weight: 10
    BuyingStore: true
    Script: <"
        .@eqp = getequippedon();
        
        if (.@eqp & EQP_ARMOR) {
            bonus bVit,100;
        }
        if (.@eqp & EQP_HEAD_TOP) {
            bonus bInt,100;
        }
        if (.@eqp & EQP_SHOES) {
            bonus bAgi,100;
        }
    ">
},

Share this post


Link to post
Share on other sites

plugin

#include "common/hercules.h"
#include "map/pc.h"
#include "common/HPMDataCheck.h"

HPExport struct hplugin_info pinfo = {
	"getequippedon",
	SERVER_TYPE_MAP,
	"x_O",
	HPM_VERSION,
};

BUILDIN(getequippedon) {
	int i = status->current_equip_item_index;
	struct map_session_data *sd = script->rid2sd(st);

	if ( sd == NULL )
		return true;

	if ( i == EQI_HAND_L )
		script_pushint( st, sd->inventory_data[i]->type == IT_ARMOR ? EQP_SHIELD : EQP_WEAPON );
	else
		script_pushint( st, sd->status.inventory[i].equip );

	return true;
}

HPExport void plugin_init (void) {
	addScriptCommand( "getequippedon", "", getequippedon );
}

seems to be working, although in the example given, the jellopy supposed only give bonus to armor, headgear and shoes
but I can enchant my jellopy to shields, it doesn't give any bonus and waste my item

perhaps the scripting part should add another check and add 3rd argument EQP_ check to only allow those area

Edited by AnnieRuru

Share this post


Link to post
Share on other sites

well theoretically, yes
but I read the script, then no,
because IF this custom script command is only specially made for this purpose, then it never get -1

but ... might as well just fix it

#include "common/hercules.h"
#include "map/pc.h"
#include "common/HPMDataCheck.h"

HPExport struct hplugin_info pinfo = {
	"getequippedon",
	SERVER_TYPE_MAP,
	"x_O",
	HPM_VERSION,
};

BUILDIN(getequippedon) {
	int i = status->current_equip_item_index;
	struct map_session_data *sd = script->rid2sd(st);

	if ( sd == NULL )
		return true;

	if ( i < 0 || sd->inventory_data[i] == NULL )
		script_pushint( st, 0 );
	else if ( i == EQI_HAND_L )
		script_pushint( st, sd->inventory_data[i]->type == IT_ARMOR ? EQP_SHIELD : EQP_WEAPON );
	else
		script_pushint( st, sd->status.inventory[i].equip );

	return true;
}

HPExport void plugin_init (void) {
	addScriptCommand( "getequippedon", "", getequippedon );
}

 

Edited by AnnieRuru

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
Sign in to follow this  

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.