Jump to content
  • 0

buildin_delitem: failed to delete 1 item


Giant Whisper

Question

Recommended Posts

  • 0

  • Group:  Members
  • Topic Count:  55
  • Topics Per Day:  0.01
  • Content Count:  190
  • Reputation:   3
  • Joined:  04/11/12
  • Last Seen:  

with the change not evolve the item

that can not exceed 100%

20181202183947.JPG

Link to comment
Share on other sites

  • 0

  • Group:  Members
  • Topic Count:  4
  • Topics Per Day:  0.00
  • Content Count:  303
  • Reputation:   117
  • Joined:  12/10/16
  • Last Seen:  

Okay, I understand now.

-	script	Items_Conf	-1,{

OnInit:

	callsub Ids, 60656, 1, 1004, 1, 60657, 1, 1004, 1, 60658, 1, 1004,  0 ;
	callsub Ids, 60635, 1, 111, 1, 60636, 1, 111, 1, 60637, 1, 111,  0 ;
/*
	ID[...], evolution mode[...], mob id[...], neccessary to get 1%[...].
	If  you want any monster, use 111.

Evolution modes:

	1 = Every X numer of mobs (1%).
	2 = Experience (1%).
*/

/*
	0 = Won't be evolved automatically.
	1 = Will be evolved automatically
*/
	.auto = 1;

/*
	Color of the announces.
*/
	setarray .c$[0],	"4db557",	// % of evolution.
				"d43438",	// Wings evolving.
				"4da5b5";	// Wings evolved.

/* slots to check.
	EQI_ACC_L (0)             - Accessory 1
	EQI_ACC_R (1)             - Accessory 2
	EQI_SHOES (2)             - Footgear (shoes, boots)
	EQI_GARMENT (3)           - Garment (mufflers, hoods, manteaux)
	EQI_HEAD_LOW (4)          - Lower Headgear (beards, some masks)
	EQI_HEAD_MID (5)          - Middle Headgear (masks, glasses)
	EQI_HEAD_TOP (6)          - Upper Headgear
	EQI_ARMOR (7)             - Armor (jackets, robes)
	EQI_HAND_L (8)            - Left hand (weapons, shields)
	EQI_HAND_R (9)            - Right hand (weapons)
	EQI_COSTUME_HEAD_TOP (10) - Upper Costume Headgear
	EQI_COSTUME_HEAD_MID (11) - Middle Costume Headgear
	EQI_COSTUME_HEAD_LOW (12) - Lower Costume Headgear
	EQI_COSTUME_GARMENT (13)  - Costume Garment
	EQI_AMMO (14)    		  - Arrow/Ammunition
	EQI_SHADOW_ARMOR (15)     - Shadow Armor
	EQI_SHADOW_WEAPON (16)    - Shadow Weapon
	EQI_SHADOW_SHIELD (17)    - Shadow Shield
	EQI_SHADOW_SHOES (18)     - Shadow Shoes
	EQI_SHADOW_ACC_R (19)     - Shadow Accessory 2
	EQI_SHADOW_ACC_L (20)     - Shadow Accessory 1
*/

	setarray .slots[0], 	EQI_HEAD_LOW, 
				EQI_HEAD_MID,
				EQI_HEAD_TOP;

	//=============================================

	end ;

Ids:

	for ( .@args = getargcount ( ); .@a < .@args ; .@a+=4 )
	{
		.@i = .w2[.w1]++;
		setd ".a1"+ .w1 +"_"+ .@i, getarg ( .@a );	// id.
		if ( getarg ( .@a + 4, 0 ) != 0 ) {
			setd ".a2"+ .w1 +"_"+ .@i, getarg ( .@a + 1 );	// mode.
			setd ".a3"+ .w1 +"_"+ .@i, getarg ( .@a + 2 );	// mob id.
			setd ".a4"+ .w1 +"_"+ .@i, getarg ( .@a + 3 );	// amount.
		}
	}
	.w1++;
	return ;

OnNPCKillEvent:

	if ( @evolving ) end ;
	// Cache. That old loop on every mob killed...
	if ( @wing[0] && isequipped ( @wing[0] ) )
	{
		.@c  = 1;
		.@e  = @wing[0];
		.@i  = @wing[1] - 1;
		.@j  = @wing[2] - 1;
		.@a  = @wing[3];
	}
	else
	{
		.@size = getarraysize ( .slots );
		while ( .@a < .@size && !.@c )
		{
			.@e = getequipid ( .slots[.@a] );
			.@a++;
			if ( .@e < 0 )
				continue ;
			.@i = 0;
			while ( .@i < .w1 && !.@c )
			{
				.@j = 0;
				while ( .@j < .w2[.@i] && !.@c )
				{
					if ( .@e == getd ( ".a1"+ .@i +"_"+ .@j ) && getd ( ".a1"+ .@i +"_"+ ( .@j + 1 ) ) )
					{
						if ( getd ( ".a4"+ .@i +"_"+ .@j ) > 0 && ( killedrid == getd ( ".a3"+ .@i +"_"+ .@j ) || getd ( ".a3"+ .@i +"_"+ .@j ) < 1001 ) )
						{
							.@c = 1;
							setarray @wing[0], .@e, .@i + 1, .@j + 1, .@a;
						}
					}
					if ( !.@c )
						.@j++;
				}
				if ( !.@c )
					.@i++;
			}
		}
	}

	if ( .@c )
	{
		.@percent = getd ( "evo"+ .@e );
		if ( getd ( ".a2"+ .@i +"_"+ .@j ) == 1 )
		{
			.@amount = getd ( "mobs_"+ .@e );
			setd "mobs_"+ .@e, .@amount + 1;
			if ( getd ( "mobs_"+ .@e ) < getd ( ".a4"+ .@i +"_"+ .@j ) ) end ;
			setd "mobs_"+ .@e, 0;
		}
		else if ( getd ( ".a2"+ .@i +"_"+ .@j ) == 2 )
		{
			.@amount = getd ( "exp_"+ .@e );
			setd "exp_"+ .@e, .@amount + strmobinfo ( 6, killedrid );
			if ( getd ( "exp_"+ .@e ) < getd ( ".a4"+ .@i +"_"+ .@j ) ) end ;
			setd "exp_"+ .@e, 0;
		}
		else {
			debugmes "Script Items_Evo, error: wrong mode.";
			end;
		}
		if ( .@percent < 100 )
			setd "evo"+ .@e, ++.@percent;
		announce getitemname ( .@e ) +" "+ .@percent +"% to evolve...", bc_self, "0x"+ .c$[0] ;
		specialeffect2 58 ;
		sleep2 200 ;
		specialeffect2 383 ;
		if ( .@percent >= 100 && .auto )
		{
			@evolving = 1;
			specialeffect2 263 ;
			sleep2 500 ;
			specialeffect2 377 ;
			sleep2 300 ;
			specialeffect2 542 ;
			sleep2 300 ;
			announce getitemname ( .@e ) +" is evolving..." , bc_self, "0x"+ .c$[1] ;
			.@k = 3;
			while ( .@k-- )
			{
				specialeffect2 521 ;
				sleep2 900 ;
			}
			specialeffect2 463 ;
			sleep2 200;
			specialeffect2 665 ;
			sleep2 500 ;
			.@a--;
			setarray .@card[1], getequipcardid ( .slots[.@a], 0 ), getequipcardid ( .slots[.@a], 1 ), getequipcardid ( .slots[.@a], 2 ), getequipcardid ( .slots[.@a], 3 );
			.@refine = getequiprefinerycnt ( .slots[.@a] );
			unequip .slots[.@a];
			delitem .@e, 1 ;
			getitem2 getd ( ".a1"+ .@i +"_"+ ( .@j + 1 ) ) , 1, 1, .@refine, 0, .@card[1], .@card[2], .@card[3], .@card[4] ;
			equip getd ( ".a1"+  .@i +"_"+ ( .@j + 1 ) ) ;
			setd "evo"+ .@e, 0;
			deletearray @wing ;
			announce "Congratulations, your wings have evolved to "+ getitemname ( getd ( ".a1"+ .@i +"_"+ ( .@j + 1 ) ) ) +"." , bc_self , "0x"+ .c$[2] ;
			@evolving = 0;
		}
	}
	end ;
}

 

Link to comment
Share on other sites

  • 0

  • Group:  Members
  • Topic Count:  55
  • Topics Per Day:  0.01
  • Content Count:  190
  • Reputation:   3
  • Joined:  04/11/12
  • Last Seen:  

now to the 100% error in console and does not equip the article

20181202185658.JPG

that's killing more than 100 mob

Link to comment
Share on other sites

  • 0

  • Group:  Members
  • Topic Count:  4
  • Topics Per Day:  0.00
  • Content Count:  303
  • Reputation:   117
  • Joined:  12/10/16
  • Last Seen:  

I think the script was meant to kill a large amounts of mobs in an instant, but well, I think this fixes it:

-	script	Items_Conf	-1,{

OnInit:

	callsub Ids, 60656, 1, 1004, 1, 60657, 1, 1004, 1, 60658, 1, 1004,  0 ;
	callsub Ids, 60635, 1, 111, 1, 60636, 1, 111, 1, 60637, 1, 111,  0 ;
/*
	ID[...], evolution mode[...], mob id[...], neccessary to get 1%[...].
	If  you want any monster, use 111.

Evolution modes:

	1 = Every X numer of mobs (1%).
	2 = Experience (1%).
*/

/*
	0 = Won't be evolved automatically.
	1 = Will be evolved automatically
*/
	.auto = 1;

/*
	Color of the announces.
*/
	setarray .c$[0],	"4db557",	// % of evolution.
				"d43438",	// Wings evolving.
				"4da5b5";	// Wings evolved.

/* slots to check.
	EQI_ACC_L (0)             - Accessory 1
	EQI_ACC_R (1)             - Accessory 2
	EQI_SHOES (2)             - Footgear (shoes, boots)
	EQI_GARMENT (3)           - Garment (mufflers, hoods, manteaux)
	EQI_HEAD_LOW (4)          - Lower Headgear (beards, some masks)
	EQI_HEAD_MID (5)          - Middle Headgear (masks, glasses)
	EQI_HEAD_TOP (6)          - Upper Headgear
	EQI_ARMOR (7)             - Armor (jackets, robes)
	EQI_HAND_L (8)            - Left hand (weapons, shields)
	EQI_HAND_R (9)            - Right hand (weapons)
	EQI_COSTUME_HEAD_TOP (10) - Upper Costume Headgear
	EQI_COSTUME_HEAD_MID (11) - Middle Costume Headgear
	EQI_COSTUME_HEAD_LOW (12) - Lower Costume Headgear
	EQI_COSTUME_GARMENT (13)  - Costume Garment
	EQI_AMMO (14)    		  - Arrow/Ammunition
	EQI_SHADOW_ARMOR (15)     - Shadow Armor
	EQI_SHADOW_WEAPON (16)    - Shadow Weapon
	EQI_SHADOW_SHIELD (17)    - Shadow Shield
	EQI_SHADOW_SHOES (18)     - Shadow Shoes
	EQI_SHADOW_ACC_R (19)     - Shadow Accessory 2
	EQI_SHADOW_ACC_L (20)     - Shadow Accessory 1
*/

	setarray .slots[0], 	EQI_HEAD_LOW, 
				EQI_HEAD_MID,
				EQI_HEAD_TOP;

	//=============================================

	end ;

Ids:

	for ( .@args = getargcount ( ); .@a < .@args ; .@a+=4 )
	{
		.@i = .w2[.w1]++;
		setd ".a1"+ .w1 +"_"+ .@i, getarg ( .@a );	// id.
		if ( getarg ( .@a + 4, 0 ) != 0 ) {
			setd ".a2"+ .w1 +"_"+ .@i, getarg ( .@a + 1 );	// mode.
			setd ".a3"+ .w1 +"_"+ .@i, getarg ( .@a + 2 );	// mob id.
			setd ".a4"+ .w1 +"_"+ .@i, getarg ( .@a + 3 );	// amount.
		}
	}
	.w1++;
	return ;

OnNPCKillEvent:

	if ( @evolving ) end ;
	// Cache. That old loop on every mob killed...
	if ( @wing[0] && isequipped ( @wing[0] ) )
	{
		.@c  = 1;
		.@e  = @wing[0];
		.@i  = @wing[1] - 1;
		.@j  = @wing[2] - 1;
		.@a  = @wing[3];
	}
	else
	{
		.@size = getarraysize ( .slots );
		while ( .@a < .@size && !.@c )
		{
			.@e = getequipid ( .slots[.@a] );
			.@a++;
			if ( .@e < 0 )
				continue ;
			.@i = 0;
			while ( .@i < .w1 && !.@c )
			{
				.@j = 0;
				while ( .@j < .w2[.@i] && !.@c )
				{
					if ( .@e == getd ( ".a1"+ .@i +"_"+ .@j ) && getd ( ".a1"+ .@i +"_"+ ( .@j + 1 ) ) )
					{
						if ( getd ( ".a4"+ .@i +"_"+ .@j ) > 0 && ( killedrid == getd ( ".a3"+ .@i +"_"+ .@j ) || getd ( ".a3"+ .@i +"_"+ .@j ) < 1001 ) )
						{
							.@c = 1;
							setarray @wing[0], .@e, .@i + 1, .@j + 1, .@a;
						}
					}
					if ( !.@c )
						.@j++;
				}
				if ( !.@c )
					.@i++;
			}
		}
	}

	if ( .@c )
	{
		if ( getd ( ".a2"+ .@i +"_"+ .@j ) == 1 )
		{
			.@amount = getd ( "mobs_"+ .@e );
			setd "mobs_"+ .@e, .@amount + 1;
			if ( getd ( "mobs_"+ .@e ) < getd ( ".a4"+ .@i +"_"+ .@j ) ) end ;
			setd "mobs_"+ .@e, 0;
		}
		else if ( getd ( ".a2"+ .@i +"_"+ .@j ) == 2 )
		{
			.@amount = getd ( "exp_"+ .@e );
			setd "exp_"+ .@e, .@amount + strmobinfo ( 6, killedrid );
			if ( getd ( "exp_"+ .@e ) < getd ( ".a4"+ .@i +"_"+ .@j ) ) end ;
			setd "exp_"+ .@e, 0;
		}
		else {
			debugmes "Script Items_Evo, error: wrong mode.";
			end;
		}
		specialeffect2 58 ;
		sleep2 rand ( 190, 280 ) ;
		specialeffect2 383 ;
		.@percent = getd ( "evo"+ .@e );
		if ( .@percent < 100 )
		{
			setd "evo"+ .@e, ++.@percent;
			announce getitemname ( .@e ) +" "+ .@percent +"% to evolve...", bc_self, "0x"+ .c$[0] ;
		}
		if ( .@percent >= 100 && .auto && !@evolving )
		{
			@evolving = 1;
			specialeffect2 263 ;
			sleep2 500 ;
			specialeffect2 377 ;
			sleep2 300 ;
			specialeffect2 542 ;
			sleep2 300 ;
			announce getitemname ( .@e ) +" is evolving..." , bc_self, "0x"+ .c$[1] ;
			.@k = 3;
			while ( .@k-- )
			{
				specialeffect2 521 ;
				sleep2 900 ;
			}
			specialeffect2 463 ;
			sleep2 200;
			specialeffect2 665 ;
			sleep2 500 ;
			.@a--;
			setarray .@card[1], getequipcardid ( .slots[.@a], 0 ), getequipcardid ( .slots[.@a], 1 ), getequipcardid ( .slots[.@a], 2 ), getequipcardid ( .slots[.@a], 3 );
			.@refine = getequiprefinerycnt ( .slots[.@a] );
			unequip .slots[.@a];
			delitem .@e, 1 ;
			getitem2 getd ( ".a1"+ .@i +"_"+ ( .@j + 1 ) ) , 1, 1, .@refine, 0, .@card[1], .@card[2], .@card[3], .@card[4] ;
			equip getd ( ".a1"+  .@i +"_"+ ( .@j + 1 ) ) ;
			setd "evo"+ .@e, 0;
			deletearray @wing ;
			announce "Congratulations, your wings have evolved to "+ getitemname ( getd ( ".a1"+ .@i +"_"+ ( .@j + 1 ) ) ) +"." , bc_self , "0x"+ .c$[2] ;
			@evolving = 0;
		}
	}
	end ;
}

 

Link to comment
Share on other sites

  • 0

  • Group:  Members
  • Topic Count:  55
  • Topics Per Day:  0.01
  • Content Count:  190
  • Reputation:   3
  • Joined:  04/11/12
  • Last Seen:  

thank you very much n0tttt works perfect you are my hero of RO  ?

  • Like 1
Link to comment
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
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  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.

×
×
  • Create New...