Jump to content
  • 0

about Emistry's Emperium Breaker Room 2.1


Question

Posted

Hi...I have a problem....I used the script and I warped to a map but when its already time to atk the emp..I kept clicking it but nothing happens(ddnt atk at all) btw my char was of char id 0=normal not gm....any ideas why?

17 answers to this question

Recommended Posts

Posted

elaborate....the script work fine in my test server...and i dunno why it didnt work for you...summore there is no script to show us here ? /hmm

what you have edit ? show your script so other can test it..

emperium spawn but cannot attack ? or no emperium spawn ? or etc

Posted (edited)

didnt change anything in your script except the npc and txt name....all works fine except the emp cannot be attacked...

here it is:

prontera,155,181,5 script Emp Break Test 1288,{

// What Map will be used
set .Map$,"job3_arch01";
// How many Top Breaker will be Recorded
set .TopRank,5;
// Message to Inform Players while inside the Room
setarray .Instruction$[0],
"Please Listen here carefully.",
"This is Emperium Breaker Test Room , which is use to test your Breaking Time.",
"Prepare youself...and do your best to Break it...",
"Okay that's All i want to say , get Ready yourself and it will Start Soon.";


while( 1 ){
mes "This is Emperium Breaker test Room. ";
mes "You are able to calculate your Emperium Breaking Speed in this Room.";
next;
switch( select( ( getmapusers( .Map$ ) )?"^FF0000NOT Available":"^0000FFAvailable^000000",
"Top ^FF0000"+.TopRank+"^000000 Breaker Ladder",
( getgmlevel() < 90 )?"":"^FF0000[GM]^000000 Reset Room",
( getgmlevel() < 90 )?"":"^FF0000[GM]^000000 Reset Ladder" )){
Case 1:
if( getmapusers( .Map$ ) ){
mes "There is another player inside it now.";
next;
break;
}
warp .Map$,0,0;
killmonster .Map$,"All";
// removemapflag .Map$,mf_noskill;
donpcevent strnpcinfo(0)+"::OnReady";
end;
Case 2:
mes "^ED1ADCLatest Record^000000 : "+LatestRecord/1000+"."+LatestRecord%1000+" Seconds.";
for( set .@i,0; .@i < .TopRank; set .@i,.@i + 1 ){
if( !$TopRankTime[.@i] ) break;
mes "^FF0000Top "+( .@i + 1 )+" : ^0000FF"+$TopName$[.@i]+" ";
mes "^FF0000Time Taken : ^ED1ADC[ "+$TopRankTime[.@i]/1000+"."+$TopRankTime[.@i]%1000+" Sec. ]^000000 ";
}
next;
break;

Case 3:
mapannounce .Map$,"A GM has RESET the Breaker Test Room.",0,0x00FF00;
killmonster .Map$,"All";
sleep2 3000;
mapwarp .Map$,"prontera",155,171;
mes "Done Reset. and Player who are inside are warped out.";
next;
break;
Case 4:
switch( select( "^0000FFAll Player^000000:^FF0000One Player^000000" ) ){
Case 1:
deletearray $TopRankTime[0],getarraysize( $TopRankTime );
deletearray $TopName$[0],getarraysize( $TopName$ );
mes "RESETED WHOLE LADDER.";
break;
Case 2:
mes "Please input the ^FF0000EXACT NAME^000000 of player you want to delete.";
input .Name$;
for( set .@i,0; .@i < .TopRank; set .@i,.@i + 1 ){
if( .Name$ == $TopName$[.@i] ){
deletearray $TopName$[.@i],1;
deletearray $TopRankTime[.@i],1;
mes "Removed ^FF0000"+.Name$+"^000000 from the List.";
}
}
}
next;
break;
}
}

OnReady:
sleep2 3000;
for( set .@i,0; .@i < getarraysize( .Instruction$ ); set .@i,.@i + 1 ){
mapannounce .Map$,.Instruction$[.@i],0,0x00FF00;
sleep2 2500;
}
for( set .@i,5; .@i > 0; set .@i,.@i - 1 ){
mapannounce .Map$,"Count Down : "+.@i+" Seconds.",0,0x00FF00;
sleep2 1000;
}
//mapannounce .Map$,"Hit the Emperium Now and Skills Disabled.",0,0x00FF00;
setmapflag .Map$,mf_noskill;
monster .Map$,29,27,"Breaker Test",1288,1,strnpcinfo(0)+"::OnBreaked";
set .Record,0;
sleep2 500;
initnpctimer;
end;

OnTimer600000:
if( !mobcount( .Map$,strnpcinfo(0)+"::OnBreaked" ) ) end;
mapannounce .Map$,"You spent too much time. i think you are AFK , so you are out.",0,0xED1ADC;
sleep2 3000;
mapwarp .Map$,"prontera",155,179;
stopnpctimer;
end;

OnBreaked:
set .Time,getnpctimer(0);
copyarray .@tempName$[0],$TopName$[0],getarraysize( $TopName$ );
copyarray .@tempRecord[0],$TopRankTime[0],getarraysize( $TopRankTime[0] );
set LatestRecord,.Time;
for( set .@i,0; .@i < .TopRank; set .@i,.@i + 1 ){
if( .Time < $TopRankTime[.@i] || !$TopRankTime[.@i] ){
set $TopRankTime[.@i],.Time;
set $TopName$[.@i],strcharinfo(0);
copyarray $TopRankTime[.@i + 1],.@tempRecord[0],getarraysize( .@tempRecord );
copyarray $TopName$[.@i + 1],.@tempName$[0],getarraysize( .@tempName$ );
announce "[ "+strcharinfo(0)+" ] Achieved Top "+( .@i + 1 )+" in Emperium Breaking with "+.Time/1000+"."+.Time%1000+" Seconds !!!",bc_all,0xED1ADC;
break;
}
}
stopnpctimer;
announce "Current Time Taken : "+.Time/1000+"."+.Time%1000+" Seconds. ",bc_self,0xED1ADC;
// removemapflag .Map$,mf_noskill;
sleep2 5000;
mapwarp .Map$,"prontera",155,179;
end;
}

job3_arch01 mapflag nocommand 50
job3_arch01 mapflag gvg on
job3_arch01 mapflag gvg_castle
job3_arch01 mapflag monster_noteleport
job3_arch01 mapflag nosave SavePoint

post-8638-0-65902100-1353307212_thumb.jpg

Edited by Emistry
Please use [CODEBOX] or Attachments for long contents.
Posted

maybe it's caused by these mapflag..

job3_arch01 mapflag gvg on
job3_arch01 mapflag gvg_castle

remove these mapflag...

otherwise.....change the monster ID ...

create a new duplicated emperium mob_db ....

Posted (edited)

K., I'll try it...HOPE it works..

@Emistry same thing happened after I did what you suggested...may I ask what ragexe version you tried it? mine is 2010-06-16

Edited by miczster
Posted

maybe it's caused by these mapflag..

job3_arch01 mapflag gvg on
job3_arch01 mapflag gvg_castle
remove these mapflag...

otherwise.....change the monster ID ...

create a new duplicated emperium mob_db ....

i am having an error with your script.. it says WORLD &*^*#(%_#(%_ i cant tell the exact error.. i guess it is a sprite error or something because after that error the client debugs

Posted

show some screenshot ? i dun get it...

 

i cant post an screen shot... but here is what was shown in the CMD

 

[info]: [instance] Created: Adv. Breaker Room .

[info]: [instance] Initialized Adv. Breaker Room .

[error]: Script:getvariableofnpc: can't find npc Adv. Breaker Room Manager

[debug]: Source (NPC): Helper#Breaker Room at 001guild_vs (49,50)

Posted

show your edited script....did you changed the npc name ?

 

My script sir is in my no. #8 post

 

i didnt change any name sir

i just did change the location

Posted

http://tinypic.com/r/2n6htzn/6

 

here's my Screen shot of my error sir

 

and this is my script

 

/*
# Advance Breaker Room

CREATE TABLE IF NOT EXISTS `E-Breakers` (
	`no` mediumint(9) unsigned NOT NULL auto_increment,
	`char_id` int(11) unsigned NOT NULL default '0',
	`name` varchar(30) NOT NULL DEFAULT '',
	`time` bigint(11) NOT NULL default '0',
	`mob_id` mediumint(9) unsigned NOT NULL default '0',
	
	PRIMARY KEY  ( `no` )
) ENGINE=MyISAM;

#  Random Sample Data for viewing the Data in Games / SQL
# =============================================================
INSERT INTO `E-Breakers` ( `char_id`,`name`,`time`,`mob_id` ) VALUES ( 10000'Amistry','12411',3000 );
INSERT INTO `E-Breakers` ( `char_id`,`name`,`time`,`mob_id` ) VALUES ( 20000,'Emistry1','28211',3000 );
INSERT INTO `E-Breakers` ( `char_id`,`name`,`time`,`mob_id` ) VALUES ( 10000,'Amistry','32511',1899 );
INSERT INTO `E-Breakers` ( `char_id`,`name`,`time`,`mob_id` ) VALUES ( 20000,'Emistry1','42161',1899 );

*/





// ====== mob_db.txt / mob_db2.txt =======
// 3000,EMPELIUM,Emperium,Emperium,90,700,1,0,0,1,60,73,64,50,1,17,80,50,26,20,10,12,0,8,26,0x160,300,1288,288,384,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
// ====== mob_avail.txt =======
// 3000,1288




sec_in02,172,162,4	script	Adv Breaker Room Manager	100,{
if( select( "Rent a Room","View Ladder" ) == 1 ){

	if( !instance_id(1) ){
	
		if( .Cost ){
			mes "it cost ^0055FF"+.Cost+" Zeny^000000 to rent a Breaker Room for "+.Minute+" Minutes.";
			if( select("Confirm:Cancel") == 2 ) close;
		}
		
		if( !getcharid(1) || !instance_check_party( getcharid(1),1,90,150 ) ){
			mes "Required a Party which have at least 1 Member that is level 255";
			close;
		}
		
		set .@instance,instance_create( " Adv. Breaker Room ",getcharid(1));
		
		if( .@instance < 0 ){
			switch( .@instance ){
				Case -2: mes "Invalid Party ID"; break;
				Case -3: mes "Max Instances Exceed."; break;
				Case -4: warpparty has_instance( "guild_vs1" ),49,92,getcharid(1); break;
				Case -1:
				default:
					mes "Failed to Create an Instances.";
			}
			
		}else{
			set Zeny,Zeny - .Cost;
			instance_attachmap( "guild_vs1",.@instance );
			instance_set_timeout ( .Minute * 60 ),( .Timeout * 60 ),.@instance;
			instance_init .@instance;
			instance_attach .@instance;
			warpparty has_instance( "guild_vs1" ),49,92,getcharid(1);
			donpcevent instance_npcname( "Helper#Breaker Room",instance_id() )+"::OnInstanceInit";
			end;
		}
		
	}else{
		warpparty has_instance( "guild_vs1" ),49,92,getcharid(1);
	}
	
}else{
	switch( select( "Own Ladder","Overall Top Breaker","^FF0000Remove Records^000000" ) ){
		default:
		Case 1:
			.@query_size = query_sql( "SELECT `mob_id`,`time` FROM `E-Breakers` WHERE `char_id`='"+getcharid(0)+"' GROUP BY `mob_id` ORDER BY `time` ASC LIMIT "+.size,.@MobID,.@Time );
				
			if( !.@query_size ){
				mes "No Records found !";
			}else{
				mes "^0055FF[ "+strcharinfo(0)+"'s Record ]^000000";
				for( .@i = 0; .@i < .@query_size; .@i++ ){
					mes "^DDBB00"+getmonsterinfo( .@MobID[.@i],MOB_NAME )+" : ^FF0000"+( .@Time[.@i] / 1000 )+"."+( .@Time[.@i] % 1000 )+" sec^000000";
				}
			}
			break;
		Case 2:
			for( .@i = 0; .@i < .size; .@i++ )
				.@Menu$ = .@Menu$ + getmonsterinfo( .MonsterList[.@i],MOB_NAME )+":";
				
			do{
				.@mob = select( .@Menu$ ) - 1;
				
				do{
					.@query_size = query_sql( "SELECT `name`,`time`,`mob_id` FROM `E-Breakers` WHERE `mob_id`='"+.MonsterList[.@mob]+"' GROUP BY `name` ORDER BY `time` ASC LIMIT 10 OFFSET "+.@Offset+" ",.@Name$,.@Time,.@MobID );
					
					mes "Monster : ^FF0000"+getmonsterinfo( .MonsterList[.@mob],MOB_NAME )+"^000000";
					if( !.@query_size ){
						mes "No extra Records found !";
					}else{
						for( .@i = 0; .@i < .@query_size; .@i++ )
							mes "^0055FF[ "+( .@Offset + .@i + 1 )+"th : "+.@Name$[.@i]+" ] : ^FF0000"+( .@Time[.@i] / 1000 )+"."+( .@Time[.@i] % 1000 )+"sec^000000";
						.@Offset += 10;
					}
					next;
				}while( select( ( .@query_size )?"Next 10 Rank":"","Back" ) == 1 );
				
				mes "Please choose your option...";
			}while( select( "View Breaker Rank","Back" ) == 1 );
			break;
		Case 3:
			mes "What Record you want to clear ?";
			if( select( "Personal Record",( getgmlevel() < .GMLevel )?"":"[ GM ] All Record" ) == 1 ){
				query_sql( "DELETE FROM `E-Breakers` WHERE `char_id`='"+getcharid(0)+"'" );
				mes "^FF0000Removed All "+strcharinfo(0)+"'s Breaker Records.^000000";
			}else{
				query_sql( "TRUNCATE `E-Breakers`" );
				mes "^FF0000Removed All Records.^000000";
			}
			break;
	}

}
close;


OnInit:
// GM Level
.GMLevel = 90;
// Cost to Rent Room
.Cost = 1000000;
// Room Duration
.Minute = 30;
// Room Timeout
.Timeout = 5;
// Edit Monster Lists
setarray .MonsterList[0],3000,1899,1900,1905,1906,1907,1908,1909,1910,1911,1912,1913,1914,1915;


.size = getarraysize( .MonsterList );
end;
}



1@room,32,30,4	script	Helper#Breaker Room	100,{
if( !instance_id(1) ) end;

.@mobcount = mobcount( "guild_vs1",instance_npcname( "Helper#Breaker Room",instance_id(1) )+"::OnMyMobDead" );

switch( select( "^0055FFHeal^000000",
				( getcharid(0) != getpartyleader( getcharid(1),2 ) )? "":( .@mobcount )? "Remove Monster":"Summon Monster",
				"Go out",
				( getcharid(0) == getpartyleader( getcharid(1),2 ) )?"^FF0000Terminate Room^000000":"" )){
	default:
	Case 1:
		percentheal 100,100;
		skilleffect 28,MaxHP;
		specialeffect2 313;
		break;
	Case 2:
		if( .@mobcount ){
			stopnpctimer;
			npctalk "All monster has been removed by Party Leader.";
			killmonsterall "guild_vs1";
			close;
		}else{
			mes "Please select a Monster...";
			'selected = getelementofarray( getvariableofnpc( .MonsterList, "Adv Breaker Room Manager" ),( select( 'Menu$ ) - 1 ) );
			close2;
			monster "guild_vs1",-1,-1,"--ja--",'selected,1,instance_npcname("Helper#Breaker Room", instance_id())+"::OnMyMobDead";
			initnpctimer;
			end;
		}
		break;
	Case 3:
		warp "SavePoint",0,0;
		dispbottom "You may enter this Room anytime as long as it's not terminated or timeout";
		break;
	Case 4:
		mes "Are you sure ?";
		mes "If you terminate this Room, you will never able to come in again.";
		if( select("Confirm:Cancel") == 1 ){
			instance_destroy instance_id(1);
		}
		break;
}
close;

OnInstanceInit:
	'Menu$ = "";
	for( .@i = 0; .@i < getvariableofnpc( .size,"Adv Breaker Room Manager" ); .@i++ )
		'Menu$ = 'Menu$ +getmonsterinfo( getelementofarray( getvariableofnpc( .MonsterList, "Adv Breaker Room Manager" ),.@i ),0 ) +":";

	sleep 2000;
	npctalk "Please get yourself ready...";
	instance_announce 0,"Welcome to Adv. Breaker Room",0;
	sleep 3000;
	npctalk "Select a monster ... and Break it into pieces...and Skills are Disabled.";
	end;
	
OnMyMobDead:
	stopnpctimer;
	.@timer = getnpctimer(0);
	instance_announce 0,"========== [ "+getmonsterinfo( 'selected,MOB_NAME )+" ] ==========",0;
	instance_announce 0,"Average Damage Per Seconds : "+( getmonsterinfo( 'selected,MOB_MAXHP ) / ( .@timer / 1000 ) ),0;

	instance_announce 0,"Total Time Spent  : "+( .@timer / 1000 )+"."+( .@timer % 1000 )+" seconds.",0;
	
	if( getmapusers( has_instance("1@room") ) == 1 ){
		emotion e_heh;
		mes "Not bad, i would like to save / update your record into the Database.";
		
		query_sql(" SELECT `time` FROM `E-Breakers` WHERE `char_id`='"+getcharid(0)+"' AND `mob_id`='"+'selected+"' ORDER BY `time` ASC",.@Record );
		mes "Best Record : ^0055FF"+( .@Record / 1000 )+"."+( .@Record % 1000 )+" seconds^000000";
		mes " ";
		mes "Current Record : ^0055FF"+( .@timer / 1000 )+"."+( .@timer % 1000 )+" seconds^000000";
		
		if( select("Record ^0055FF"+( .@timer / 1000 )+"."+( .@timer % 1000 )+" seconds^000000:Nope") == 1 ){
			query_sql( "DELETE FROM `E-Breakers` WHERE `char_id`='"+getcharid(0)+"' AND `mob_id`='"+'selected+"' AND `time` > '"+.@timer+"'" );
			query_sql( "INSERT INTO `E-Breakers` ( `char_id`,`name`,`time`,`mob_id` ) VALUES ( '"+getcharid(0)+"','"+strcharinfo(0)+"','"+.@timer+"','"+'selected+"' )" );
		}
		close;
	}else{
		emotion e_sry;
		npctalk "Not bad, but Record will not store for Grouped Team. Only for Solo Player will store the records.";
	}
	end;
	
}


// ==== MAP FLAGS ====
guild_vs1	mapflag	nogo
guild_vs1	mapflag	nomemo
guild_vs1	mapflag	nosave
guild_vs1	mapflag	nobranch
guild_vs1	mapflag	nowarp
guild_vs1	mapflag	nobaseexp
guild_vs1	mapflag	nojobexp
guild_vs1	mapflag	nomobloot
guild_vs1	mapflag	nomvploot
guild_vs1	mapflag	nowarpto
//guild_vs1	mapflag	noskill



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.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...