Jump to content

Chase

Members
  • Posts

    1
  • Joined

  • Last visited

Posts posted by Chase

  1. Hi Emistry, I encountered an issue with regards your script. When set to "Demi-Human", OnPCKillEvent does not trigger but other race's works fine. Thank you! 

    Attached is the script that I am currently using

     

    prontera,146,166,6	script	Bergrand	4_M_CRU_CRUA,{
    set .@gmlevel,getgmlevel();
    
    do{
    	set .@menu,select("^0055FFROTD Information^000000",
    				( .@gmlevel < .gm_level )?"":"^FF0000[GM]^000000Set a New Monster's Race",
    				( .@gmlevel < .gm_level )?"":"^FF0000[GM]^000000Set EXP Bonus",		
    				( .@gmlevel < .gm_level )?"":"^FF0000[GM]^000000Set Item / Zeny Bonus",
    				"Close" );
    				
    	switch( .@menu ) {
    		case 1:
    			mes "^FF0000ROTD^000000 refers to ^0000FFRace of the Day^000000";
    			mes "In other words, it means that every monster that you kill indicated on the pub, will grant you ^0055FFBonus EXP^000000.";
    			next;
    			mes "[ ^0055FFROTD Information^000000 ]";
    			mes "Today's RACE: ^0000FF"+.rotd$[.today_rotd]+"^000000";
    			if ( .rotd_exp_bonus ) mes " ~ +^777777"+.rotd_exp_bonus+"% bonus EXP^000000";
    			if ( ( .rotd_item_amount && .rotd_item_rate ) || .rotd_zeny || .rotd_exp_bonus ) {
    				mes " ";
    				mes "Reward : "+( ( .rotd_item_rate )? .rotd_item_rate+"%":"" )+" chance ";
    				if ( .rotd_item_amount && .rotd_item_rate ) mes " ~ ^777777"+.rotd_item_amount+" x "+getitemname( .rotd_item_id )+"^000000";
    				if ( .rotd_zeny ) mes " ~ ^777777"+.rotd_zeny+" Zeny^000000";
    			}
    			break;
    		case 2:
    			mes "Select new race.";
    			set .today_rotd,select( .rotd_menu$ ) - 1;
    			if ( .today_rotd >= .rotd_size ) set .today_rotd,rand( .rotd_size );
    			mes "New Race : ^777777"+.rotd$[.today_rotd]+"^000000";
    			delwaitingroom;
    			waitingroom "[ROTD] "+.rotd$[.today_rotd]+" ",0;
    			break;
    		case 3:
    			mes "Set new exp bonus. (%)";
    			input .rotd_exp_bonus,0,100;
    			if ( .rotd_exp_bonus ) mes "ROTD EXP : "+.rotd_exp_bonus+" %";
    			break;
    		case 4:
    			mes "Set ROTD Bonus:";
    			mes "Insert Zeny Bonus:";
    			input .@zeny;
    			mes "Insert Item ID:";
    			do{
    				input .@item,0,32767; 
    				if ( !.@item ) close;
    			}while( getitemname( .@item ) == "null" );
    			mes "Enter amount:";
    			input .@amount,0,30000;
    			mes "Enter Rate to gain:";
    			input .@rate,0,100;
    			if ( .@amount && .@rate ) {
    				next;
    				mes "Updated item bonus : ( "+.@rate+"% )";
    				mes "^777777"+.@amount+" x "+getitemname( .@item )+"^000000";
    				mes "^777777"+.@zeny+" Zeny^000000";
    				if ( select( "Confirm","Cancel" ) == 1 ) {
    					set .rotd_item_id,.@item;	
    					set .rotd_item_amount,.@amount;
    					set .rotd_item_rate,.@rate;
    					set .rotd_zeny,.@zeny;
    					mes "Updated.";
    				}
    			}
    		default: close;
    	}
    	next;
    }while( .@menu != 5 );
    close;
    
    OnInit:
    	// min gm level
    	set .gm_level,90;
    
    	// monster race list
    	setarray .rotd$[0],
    		"Formless",
    		"Undead",
    		"Brute",
    		"Plant",
    		"Insect",
    		"Demi-human",
    		"Fish";
    	set .rotd_size,getarraysize( .rotd$ );
    	for( set .@i,0; .@i < .rotd_size; set .@i,.@i + 1 )
    		set .rotd_menu$,.rotd_menu$ + .rotd$[.@i] +":";
    	set .rotd_menu$,.rotd_menu$ + "^0055FFRandom Race^000000";
    
    	// min party member lv to gain exp
    	set .party_level_range,10;
    
    	// @rotd command
            bindatcmd "rotd",strnpcinfo(3)+"::OnCheck";
    
    // daily reset
    OnClock0000:
    	set .today_rotd,rand( .rotd_size );
    	set .rotd_exp_bonus,rand( 15,25 );
    	delwaitingroom;
    	waitingroom "[ROTD] "+.rotd$[.today_rotd]+" ",0;
    	announce "(ROTD Officer) Bergrand: Our new Race of the Day is "+.rotd$[.today_rotd]+", ROK ON!",bc_all,0xD6EAF8;
    	end;
    
    OnClock0200:
    	announce "(ROTD Officer) Bergrand: Just to inform all of you, our Race of the Day is "+.rotd$[.today_rotd]+". ROK ON!",bc_all,0xD6EAF8;
    	end;
    
    OnClock0400:
    	announce "(ROTD Officer) Bergrand: Just to inform all of you, our Race of the Day is "+.rotd$[.today_rotd]+". ROK ON!",bc_all,0xD6EAF8;
    	end;
    
    OnClock0600:
    	announce "(ROTD Officer) Bergrand: Just to inform all of you, our Race of the Day is "+.rotd$[.today_rotd]+". ROK ON!",bc_all,0xD6EAF8;
    	end;
    
    OnClock0800:
    	announce "(ROTD Officer) Bergrand: Just to inform all of you, our Race of the Day is "+.rotd$[.today_rotd]+". ROK ON!",bc_all,0xD6EAF8;
    	end;
    
    OnClock1000:
    	announce "(ROTD Officer) Bergrand: Just to inform all of you, our Race of the Day is "+.rotd$[.today_rotd]+". ROK ON!",bc_all,0xD6EAF8;
    	end;
    
    OnClock1200:
    	announce "(ROTD Officer) Bergrand: Just to inform all of you, our Race of the Day is "+.rotd$[.today_rotd]+". ROK ON!",bc_all,0xD6EAF8;
    	end;
    
    OnClock1400:
    	announce "(ROTD Officer) Bergrand: Just to inform all of you, our Race of the Day is "+.rotd$[.today_rotd]+". ROK ON!",bc_all,0xD6EAF8;
    	end;
    
    OnClock1600:
    	announce "(ROTD Officer) Bergrand: Just to inform all of you, our Race of the Day is "+.rotd$[.today_rotd]+". ROK ON!",bc_all,0xD6EAF8;
    	end;
    
    OnClock1800:
    	announce "(ROTD Officer) Bergrand: Just to inform all of you, our Race of the Day is "+.rotd$[.today_rotd]+". ROK ON!",bc_all,0xD6EAF8;
    	end;
    
    OnClock2000:
    	announce "(ROTD Officer) Bergrand: Just to inform all of you, our Race of the Day is "+.rotd$[.today_rotd]+". ROK ON!",bc_all,0xD6EAF8;
    	end;
    
    OnClock2200:
    	announce "(ROTD Officer) Bergrand: Just to inform all of you, our Race of the Day is "+.rotd$[.today_rotd]+". ROK ON!",bc_all,0xD6EAF8;
    	end;
    
    // ROTD command check
    OnCheck:
    	mes "[ ^0055FFROTD Information^000000 ]";
            mes "Today's RACE: ^A93226"+.rotd$[.today_rotd]+"^000000";
    	mes "+^777777"+.rotd_exp_bonus+"% bonus EXP^000000";
    	mes "Kindly visit Bergrand for more info. Happy leveling!";
    	mes " ";
    	mes "Celestine";
            close;
    	end;
    	
    OnNPCKillEvent:
    if ( getmonsterinfo( killedrid,MOB_RACE ) == .today_rotd ) {
    	set .@partyid,getcharid(1);
    	set .@mob_base_exp,(( getmonsterinfo( killedrid,MOB_BASEEXP ) / 100 ) * .rotd_exp_bonus );
    	set .@mob_job_exp,(( getmonsterinfo( killedrid,MOB_JOBEXP ) / 100 ) * .rotd_exp_bonus );
    	if ( .@partyid ) {
    		set .@aid,getcharid(3);
    		set .@baselevel,BaseLevel;
    		set .@map$,strcharinfo(3);
    		getpartymember .@partyid,1;
    		getpartymember .@partyid,2;
    		while( .@i < $@partymembercount ) {
    			if ( isloggedin( $@partymemberaid[.@i],$@partymembercid[.@i] ) )
    				if ( attachrid( $@partymemberaid[.@i] ) )
    					if ( strcharinfo(3) == .@map$ && ( BaseLevel - .@baselevel ) <= .party_level_range && ( BaseLevel - .@baselevel ) >= ~.party_level_range && Hp >= 1 ) {	
    						set BaseExp,( BaseExp + .@mob_base_exp );
    						set JobExp,( JobExp + .@mob_job_exp );
    						dispbottom "[ ROTD Party Bonus ] : Additional "+.@mob_base_exp+" Base EXP | "+.@mob_job_exp+" Job EXP gained.";
    					}
    			set .@i,.@i + 1;
    		}
    		attachrid( .@aid );
    	}
    	else {
    		set BaseExp,( BaseExp + .@mob_base_exp );
    		set JobExp,( JobExp + .@mob_job_exp );
    		dispbottom "[ ROTD Solo Bonus ] : Additional "+.@mob_base_exp+" Base EXP | "+.@mob_job_exp+" Job EXP gained.";
    	}
    	if ( rand( 100 ) < .rotd_item_rate && .rotd_zeny ) 
    		set Zeny,Zeny + rand( .rotd_zeny );
    	if ( rand( 100 ) < .rotd_item_rate && .rotd_item_amount ) 
    		getitem .rotd_item_id,rand( .rotd_item_amount ),.@aid;
    }
    end;
    }
    

     

×
×
  • Create New...