when i run this script i got errors in line 48 and line 157.
im using eathena svn.
here's the script and SS
Advance tnx to everyone
/*
# 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
prontera,148,163,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 with at least level 90 ~ 150";
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( "1@room" ),25,25,getcharid(1); break;
Case -1:
default:
mes "Failed to Create an Instances.";
}
}else{
set Zeny,Zeny - .Cost;
instance_attachmap( "1@room",.@instance );
instance_set_timeout ( .Minute * 60 ),( .Timeout * 60 ),.@instance;
instance_init .@instance;
instance_attach .@instance;
warpparty has_instance( "1@room" ),25,25,getcharid(1);
donpcevent instance_npcname( "Helper#Breaker Room",instance_id() )+"::OnInstanceInit";
end;
}
}else{
warpparty has_instance( "1@room" ),25,25,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 = 99;
// 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,99,102,4 script Helper#Breaker Room 100,{
if( !instance_id(1) ) end;
.@mobcount = mobcount( "1@room",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 "1@room";
close;
}else{
mes "Please select a Monster...";
'selected = getelementofarray( getvariableofnpc( .MonsterList, "Adv Breaker Room Manager" ),( select( 'Menu$ ) - 1 ) );
close2;
monster "1@room",-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 ====
1@room mapflag nogo
1@room mapflag nomemo
1@room mapflag nosave
1@room mapflag nobranch
1@room mapflag nowarp
1@room mapflag nobaseexp
1@room mapflag nojobexp
1@room mapflag nomobloot
1@room mapflag nomvploot
1@room mapflag nowarpto
1@room mapflag noskill