Jump to content
  • 0
Sign in to follow this  
funtwocrasher

[HELP] ROTD Duplicate

Question

Hello. Can someone help me duplicated ROTD for information purposes? I want to put ROTD in every town, but the problem is, when I try to duplicated the whole ROTD Script, it makes another ROTD on my server, not a duplicated from the first one, so 2 RUNNING ROTD Scripts. I want it to only duplicate the ROTD Information, not the whole script.

 

 

prontera,146,96,6 script ROTD 436,{

set .@gmlevel,getgmlevel();
 
do{
set .@menu,select("^4EEE94ROTD 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 refer to ^0000FFRace of the Day^000000";
mes "In another word, it mean that the ^FF0000Monster's Race^000000 that you killed by day will grant you ^FF0000Bonus EXP^000000.";
next;
mes "[ ^FF0000Today's ROTD^000000 ]";
mes "^0000FF"+.rotd$[.today_rotd]+"^000000 Race";
if( .rotd_exp_bonus ) mes " ~ ^777777"+.rotd_exp_bonus+"% more exp^000000";
if( ( .rotd_item_amount && .rotd_item_rate ) || .rotd_zeny || .rotd_exp_bonus ){
}
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 "Inset 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,80;
 
// monster race list
setarray .rotd$[0],
"Formless",
"Undead",
"Brute",
"Plant",
"Insect",
"Fish",
"Demon",
"Demi Human",
"Angel",
"Dragon",
"Boss",
"Non-Boss";
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;
 
// daily reset
OnClock0000:
set .today_rotd,rand( .rotd_size );
set .rotd_exp_bonus,rand( 1,100 );
delwaitingroom;
waitingroom "[ROTD]:"+.rotd$[.today_rotd]+" ",0;
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 ){
set BaseExp,( BaseExp + .@mob_base_exp );
set JobExp,( JobExp + .@mob_job_exp );
dispbottom "[ROTD Party] : "+.@mob_base_exp+" EXP";
}
set .@i,.@i + 1;
}
attachrid( .@aid );
}else{
set BaseExp,( BaseExp + .@mob_base_exp );
set JobExp,( JobExp + .@mob_job_exp );
dispbottom "[ROTD SOLO] : "+.@mob_base_exp+" EXP";
}
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;
}

 

 

I want the duplicate NPC to show the ROTD Information only, no GM Menu.

 

I tried this script:

 

prontera,151,95,6	script	ROTD#test	436,{switch(select("^4EEE94ROTD Information^000000: Close")){	case 1:	mes "^FF0000ROTD^000000 refer to ^0000FFRace of the Day^000000";	mes "In another word, it mean that the ^FF0000Monster's Race^000000 that you killed by day will grant you ^FF0000Bonus EXP^000000.";	next;	mes "[ ^FF0000Today's ROTD^000000 ]";	mes "^0000FF"+.rotd$[.today_rotd]+"^000000 Race";	break;		default: close;	}end;OnInit:waitingroom "[ Race of the Day ]",0;end;} 

 

But doesnt display the ROTD Race. HELP PLEASE!

Share this post


Link to post
Share on other sites

3 answers to this question

Recommended Posts

  • 0

You're using a variable local to other NPC, which means that on the information NPC you just are trying to access a variable that is nonexistent on your NPC, thus 0.

 

Use getvariableofnpc() script command and you could properly access the other NPC's variable.

 

P.S.: moving to script support.

Share this post


Link to post
Share on other sites
  • 0

Hi @JABOTE, could you tell me how to use getvariableofnpc()?

 

doc/script_commands.txt

 

*getvariableofnpc(<variable>,"<npc name>")

Returns a reference to a NPC variable (. prefix) from the target NPC.

This can only be used to get . variables.

Examples:

//This will return the value of .var, note that this can't be used, since

//the value isn't caught.

getvariableofnpc(.var,"TargetNPC");

//This will set the .v variable to the value of the TargetNPC's .var

//variable.

.v = getvariableofnpc(.var,"TargetNPC");

//This will set the .var variable of TargetNPC to 1.

set getvariableofnpc(.var,"TargetNPC"), 1;

Note: even though function objects can have .variables, getvariableofnpc

will not work on them.

 

You just need to use it like the first example (get the value of other NPC .vars).

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
Answer this question...

×   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.