Jump to content
  • 0

request for script modification


YuliChenz

Question


  • Group:  Members
  • Topic Count:  9
  • Topics Per Day:  0.00
  • Content Count:  40
  • Reputation:   0
  • Joined:  11/04/12
  • Last Seen:  

could anyone please modif this script to make it works on rathena??? its eathena script though

 

//========= Description ===========
// Floating Rates NPC, accesible via WHISPER
//========= By ============
// Kitsune (www.ro.noobfury.com)
//========= Version ===========
// 1.0 - Working version archieved. [Kitsune]
// 1.1 - Added a random rate float and added auto rate multipliers. [Kitsune]
// 1.2 - Added a event announce on login and corrected some bugs. [Kitsune]
//========= Works on =========
// Eathena 900+ ?
//===========================


//++EDIT++
// If you want this NPC to be invisible, uncomment the first line
// and comment the second.

//script    frates    -1,{
prt_in,94,70,5    script    FloatingRates    939,{


OnWhisperGlobal:

if (getgmlevel() == 99){
mes "["+$servername$+" Rates event]";
mes "Hello master ^0000FF" + strcharinfo(0) +"!";
mes "^000000What must i do for you?";

switch (select("Manual rate float & set","Cancel ongoing float","Set event Time","Exit","Randomic Rate Float")){

case 1:
next;
mes "["+$servername$+" Rates event]";
mes "Please tell me which Base rate you want";
mes "PS: It gets multiplied auto!";
input $mbrate;
set $mbrate,$mbrate*100; //Multiplies the rate by 100 So you don't have to put the raw rate.
next;
mes "["+$servername$+" Rates event]";
mes "Please tell me which Job rate you want";
mes "PS: It gets multiplied auto!";
input $mjrate;
set $mjrate,$mjrate*100;
next;
mes "["+$servername$+" Rates event]";
mes "Want to change the drop rates?";
switch (select("Yes","No")){
case 1:
next;
mes "["+$servername$+" Rates event]";
mes "Please tell me which DROP rate you want";
mes "PS: It gets multiplied auto!";
input $mdrate;
set $mdrate,$mdrate*100;
break;
case 2:
next;
set $mdrate,0;
break;
}
mes "["+$servername$+" Rates event]";
mes "Ok the rates are:";
mes "Base:^0000FF"+($mbrate/100);
mes "^000000Job:^FF0000"+($mjrate/100);
if ($mdrate == 0){
mes "^000000Drop:^00FF00Not changed!";
} else {
mes "^000000Drop:^00FF00"+($mdrate/100);
}
next;
mes "["+$servername$+" Rates event]";
mes "It\'s ok to change?";
switch (select("Yes","No")){

case 1:
next;
mes "["+$servername$+" Rates event]";
mes "O.K.!! Changing the rates now!";
next;
mes "["+$servername$+" Rates event]";
mes "Rate sucessfuly changed! Have fun.";
close2;
callfunc("ratechange");
callfunc("defaultrates");
end;
case 2:
next;
mes "["+$servername$+" Rates event]";
mes "Bailing out!";
close;




}

case 2:

next;
mes "["+$servername$+" Rates event]";
mes "Are you sure that you want to cancel the ongoing float?";
switch (select("Yes","No")){

case 1:
next;
mes "["+$servername$+" Rates event]";
mes "Cancelling...";
callfunc("defaultrates");
next;
mes "["+$servername$+" Rates event]";
mes "Rate float cancellated";
close;
case 2:
next;
mes "Bailing out!";
close;
}

case 3:
next;
mes "["+$servername$+" Rates event]";
mes "Please input the new time duration of the event in HOURS";
input $tempo;
next;
mes "["+$servername$+" Rates event]";
mes "The new time is "+$tempo+" Hours";
close;

case 4:
close;

case 5:
next;
mes "["+$servername$+" Rates event]";
mes "Radomically changing rates";
close2;
callfunc("randomrates");
callfunc("ratechange");
callfunc("defaultrates");
end;


}
}
mes "["+$servername$+" Rates event]";
mes "Good day "+strcharinfo(0);
mes "I Shall not be used by non GM caracters";
close;

//Hours that the script runs - OPTIONAL
//Horas que o script vai rodar - OPCIONAL
Onclock2200:
Onclock1200:
callfunc("randomrates");
callfunc("ratechange");
callfunc("defaultrates");
end;
//--------------------------------

OnInit:

//DEFAULT RATES GOES HERE
//RATE PADR�O AQUI
set $basedefault,200000;
set $jobdefault,200000;
set $itemdefault,100000;

//MAXIMUM RANDOM RATE FLOAT
//RATE RANDOM MAXIMA
set $basemaxrandom,300000;
set $jobmaxrandom,300000;
set $itemmaxrandom,150000;

//SERVER NAME GOES HERE!!!
//NOME DO SEU SERVER AQUI!!!
set $servername$,"NoobFury RO";

//Sets the default time in hours.
//Coloca o tempo padr�o
if (!$tempo) set $tempo,1;

debugmes "NPC: Floating Rates Loaded Successfully";
end;
}



function    script    ratechange    {

//Base exp
setbattleflag("base_exp_rate",$mbrate);
//Job exp
setbattleflag("job_exp_rate",$mjrate);
//Drops caso use
if ($mdrate != 0){
setbattleflag("item_rate_common",$mdrate);
setbattleflag("item_rate_heal",$mdrate);
setbattleflag("item_rate_use",$mdrate);
setbattleflag("item_rate_equip",$mdrate);
announce $servername$+" ADMINS PROUDLY PRESENTS!",bc_all,0xFFFFFF;
sleep 3000;
announce "Super Rates Event Time!!!",bc_all,0xFFFFFF;
sleep 5000;

announce "LOOK! THE RATES CHANGED!: Base:"+($mbrate/100)+"x
Job:"+($mjrate/100)+"x Drops:"+($mdrate/100)+"x",bc_all,0xFFFFFF;
sleep 5000;
announce "Run Cause this will last "+$tempo+" hour only!!!",bc_all,0xFFFFFF;
atcommand "@reloadmobdb";
set $fratesevent,1;
sleep2 $tempo*60*60*1000;
return;
}

announce $servername$+" ADMINS PROUDLY PRESENTS!",bc_all,0xFFFFFF;
sleep 3000;
announce "Super Rates Event Time!!!",bc_all,0xFFFFFF;
sleep 5000;
announce "LOOK! THE RATES CHANGED!: Base:"+($mbrate/100)+"x Job:"+($mjrate/100)+"x",bc_all,0xFFFFFF;
sleep 5000;
announce "Run \'cause this will last "+$tempo+" hour only!!!",bc_all,0xFFFFFF;
atcommand "@reloadmobdb";
set $fratesevent,1;
sleep2 $tempo*60*60*1000;
return;
}


function    script    defaultrates    {

//Base exp
setbattleflag("base_exp_rate",$basedefault);
//Job exp
setbattleflag("job_exp_rate",$jobdefault);
//Drops caso use
if ($mdrate != 0){
setbattleflag("item_rate_common",$itemdefault);
setbattleflag("item_rate_heal",$itemdefault);
setbattleflag("item_rate_use",$itemdefault);
setbattleflag("item_rate_equip",$itemdefault);
}
announce "Rates Changed Back to normal!",bc_all,0xFFFFFF;
set $fratesevent,0;
atcommand "@reloadmobdb";
return;

}

function    script    randomrates    {

set $mbrate,rand($basedefault,$basemaxrandom);
set $mjrate,rand($jobdefault,$jobmaxrandom);
set $mdrate,rand($itemdefault,$itemmaxrandom);

return;

}

-    script    ratesevent    -1,{

OnPcLoginEvent:
if ($fratesevent == 1) dispbottom "Super rates Event currently active!";
end;
}
Edited by Euphy
Code tag.
Link to comment
Share on other sites

16 answers to this question

Recommended Posts


  • Group:  Developer
  • Topic Count:  10
  • Topics Per Day:  0.00
  • Content Count:  2407
  • Reputation:   613
  • Joined:  07/05/12
  • Last Seen:  

announce "LOOK! THE RATES CHANGED!: Base:"+($mbrate/100)+"x
Job:"+($mjrate/100)+"x Drops:"+($mdrate/100)+"x",bc_all,0xFFFFFF;

should be on 1 line

announce "LOOK! THE RATES CHANGED!: Base:"+($mbrate/100)+"x Job:"+($mjrate/100)+"x Drops:"+ ($mdrate/100)+"x",bc_all,0xFFFFFF;

 

 

This script need to be cleaned...

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  9
  • Topics Per Day:  0.00
  • Content Count:  40
  • Reputation:   0
  • Joined:  11/04/12
  • Last Seen:  

What do you mean by "need to be cleaned"? Could you help me modificate it?

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  81
  • Topics Per Day:  0.02
  • Content Count:  1654
  • Reputation:   583
  • Joined:  08/09/12
  • Last Seen:  

There is already a 'Floating Rate' script in your rAthena folder too

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  9
  • Topics Per Day:  0.00
  • Content Count:  40
  • Reputation:   0
  • Joined:  11/04/12
  • Last Seen:  

There is already a 'Floating Rate' script in your rAthena folder too

Really? In which folder? And what file?

Link to comment
Share on other sites


  • Group:  Developer
  • Topic Count:  10
  • Topics Per Day:  0.00
  • Content Count:  2407
  • Reputation:   613
  • Joined:  07/05/12
  • Last Seen:  

What do you mean by "need to be cleaned"? Could you help me modificate it?

I mean this script consume too much permanent variable

 

Really? In which folder? And what file?

trunk/npc/custom/etc/floating_rates.txt

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  9
  • Topics Per Day:  0.00
  • Content Count:  40
  • Reputation:   0
  • Joined:  11/04/12
  • Last Seen:  

What do you mean by "need to be cleaned"? Could you help me modificate it?

I mean this script consume too much permanent variable

 

Really? In which folder? And what file?

trunk/npc/custom/etc/floating_rates.txt

Ah ic, thank you. But can you make it active on random time? So player dont know when the double rates will activated

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  98
  • Topics Per Day:  0.02
  • Content Count:  1302
  • Reputation:   77
  • Joined:  12/04/12
  • Last Seen:  

bro. can..

 

OnHour00:
OnHour06:
OnHour12:
OnHour18:
 
set itu, for on minute. on second.
depend on what u want ?  :)
Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  9
  • Topics Per Day:  0.00
  • Content Count:  40
  • Reputation:   0
  • Joined:  11/04/12
  • Last Seen:  

bro. can..

 

OnHour00:

OnHour06:

OnHour12:

OnHour18:

 

set itu, for on minute. on second.

depend on what u want ?  :)

No i mean random time, is it posible to make it like that?

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  98
  • Topics Per Day:  0.02
  • Content Count:  1302
  • Reputation:   77
  • Joined:  12/04/12
  • Last Seen:  

erm. if for random i dont know. waiting some pro help u ok :)

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  81
  • Topics Per Day:  0.02
  • Content Count:  1654
  • Reputation:   583
  • Joined:  08/09/12
  • Last Seen:  


-    script    FloatingRates    -1,{

OnInit:

set $floatingrate, rand(0,23);

end; 

 

OnMinute00:

if (gettime(3)!=$floatingrate) end;

set $floatingrate, rand(0,23);

set $@brate,rand(100,150);

set $@jrate,rand(100,150);

set $@drate,rand(100,150);

//Base exp

setbattleflag("base_exp_rate",$@brate);

//Job exp

setbattleflag("job_exp_rate",$@jrate);

//Drops

setbattleflag("item_rate_common",$@drate);

setbattleflag("item_rate_heal",$@drate);

setbattleflag("item_rate_use",$@drate);

setbattleflag("item_rate_equip",$@drate);

//we don't change card drops rate, because these values won't change them anyway

atcommand "@reloadmobdb";

announce "Current Rune-Midgard rates are: 1."+($@brate-100)+"x 1."+($@jrate-100)+"x 1."+($@drate-100)+"x",bc_all,0xFF6060;

end;

}

Edited by nanakiwurtz
Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  9
  • Topics Per Day:  0.00
  • Content Count:  40
  • Reputation:   0
  • Joined:  11/04/12
  • Last Seen:  

Thanks a lot ^^ i will try it later once i get home

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  9
  • Topics Per Day:  0.00
  • Content Count:  40
  • Reputation:   0
  • Joined:  11/04/12
  • Last Seen:  

based on script from nanakiwurtz, i made some modification on that script, please check if the script is right and possibly can work properly.

 

here is the script

 

-    script    FloatingRates    -1,{
OnInit:
set $floatingrate, rand(0,23);
set $defaultbrate,5000;//my server rate is 5000
set $defaultjrate,5000;//my server rate is 5000
set $defaultdrate,10000;//my server common item drop rate is 10000
set $defaultccdrate,100000;//my server common card drop rate is 100000
set $defaultcbdrate,30000;//my server card boss rate is 30000
end;
 
OnMinute00:
if (gettime(3)!=$floatingrate) end;
set $floatingrate, rand(0,23);
set $@brate,rand(7500,10000);//i want it raise by 50% - 100% from default
set $@jrate,rand(7500,10000);//i want it raise by 50% - 100% from default
set $@drate,rand(15000,20000);//i want it raise by 50% - 100% from default
set $@ccdrate,rand(150000,200000);//i want it raise by 50% - 100% from default
set $@cbdrate,rand(37500,45000);//i want it raise by 25% - 50% from default
//Base exp
setbattleflag("base_exp_rate",$@brate);
//Job exp
setbattleflag("job_exp_rate",$@jrate);
//Drops
setbattleflag("item_rate_common",$@drate);
setbattleflag("item_rate_heal",$@drate);
setbattleflag("item_rate_use",$@drate);
setbattleflag("item_rate_equip",$@drate);
setbattleflag("item_rate_card",$@ccdrate);
setbattleflag("item_rate_card_boss",$@cbdrate);
announce "ADMINS PROUDLY PRESENTS!",bc_all;
sleep 3000;
announce "Super Rates Event Time!!!",bc_all;
sleep 3000;
announce "LOOK! THE RATES CHANGED!: Base:"+($@brate/100)+"x Job:"+($@jrate/100)+"x Drop:"+($@drate/100)+"x",bc_all;
sleep 3000;
announce "Run!'cause this will last 1 hour only!!!",bc_all;
initnpctimer;
set .Event,1;
atcommand "@reloadmobdb";

end;
}

OnTimer3600000: // After 1 hour
set .Event,0;
setbattleflag "base_exp_rate",$defaultbrate;
setbattleflag "job_exp_rate",$defaultjrate;
setbattleflag("item_rate_common",$defaultdrate);
setbattleflag("item_rate_heal",$defaultdrate);
setbattleflag("item_rate_use",$defaultdrate);
setbattleflag("item_rate_equip",$defaultdrate);
setbattleflag("item_rate_card",$defaultccdrate);
setbattleflag("item_rate_card_boss",$defaultcbdrate);
atcommand "@reloadmobdb";
announce "Rates Changed Back to normal!",bc_all;
end;

OnPcLoginEvent:
if (.Event == 1) dispbottom "Super rates Event currently active!";
end;
}

 

 

 

im so sorry i dont know how to make a spoiler

 

edit : oh 1 more, how to make this script only work once a day???

Edited by Emistry
Changed [Quote] to [Code]
Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  81
  • Topics Per Day:  0.02
  • Content Count:  1654
  • Reputation:   583
  • Joined:  08/09/12
  • Last Seen:  

At first you want it to run on random time --> "But can you make it active on random time? So player dont know when the double rates will activated"

But now you want it to run once a day?

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  9
  • Topics Per Day:  0.00
  • Content Count:  40
  • Reputation:   0
  • Joined:  11/04/12
  • Last Seen:  

At first you want it to run on random time --> "But can you make it active on random time? So player dont know when the double rates will activated"

But now you want it to run once a day?

Oh sorry, maybe my first statement is blur.

What i mean by random time is any hour in a day. But if only make it random, there is a chance the script will be triggered again right after the event is ended, or few hours after.

So, i asked for a possibility to make it triggered once a day at random hour.

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  81
  • Topics Per Day:  0.02
  • Content Count:  1654
  • Reputation:   583
  • Joined:  08/09/12
  • Last Seen:  


-    script    FloatingRates    -1,{

OnInit:

set $floatingrate, rand(0,23);

set $defaultbrate,5000;//my server rate is 5000

set $defaultjrate,5000;//my server rate is 5000

set $defaultdrate,10000;//my server common item drop rate is 10000

set $defaultccdrate,100000;//my server common card drop rate is 100000

set $defaultcbdrate,30000;//my server card boss rate is 30000

end;

OnHour0000:

set $floatingrate, rand(0,23);

end;

OnMinute00:

if (gettime(3)!=$floatingrate) end;

set $@brate,rand(7500,10000);//i want it raise by 50% - 100% from default

set $@jrate,rand(7500,10000);//i want it raise by 50% - 100% from default

set $@drate,rand(15000,20000);//i want it raise by 50% - 100% from default

set $@ccdrate,rand(150000,200000);//i want it raise by 50% - 100% from default

set $@cbdrate,rand(37500,45000);//i want it raise by 25% - 50% from default

//Base exp

setbattleflag("base_exp_rate",$@brate);

//Job exp

setbattleflag("job_exp_rate",$@jrate);

//Drops

setbattleflag("item_rate_common",$@drate);

setbattleflag("item_rate_heal",$@drate);

setbattleflag("item_rate_use",$@drate);

setbattleflag("item_rate_equip",$@drate);

setbattleflag("item_rate_card",$@ccdrate);

setbattleflag("item_rate_card_boss",$@cbdrate);

announce "ADMINS PROUDLY PRESENTS!",bc_all;

sleep 3000;

announce "Super Rates Event Time!!!",bc_all;

sleep 3000;

announce "LOOK! THE RATES CHANGED!: Base:"+($@brate/100)+"x Job:"+($@jrate/100)+"x Drop:"+($@drate/100)+"x",bc_all;

sleep 3000;

announce "Run!'cause this will last 1 hour only!!!",bc_all;

initnpctimer;

set .Event,1;

atcommand "@reloadmobdb";

end;

}

OnTimer3600000: // After 1 hour

set .Event,0;

setbattleflag "base_exp_rate",$defaultbrate;

setbattleflag "job_exp_rate",$defaultjrate;

setbattleflag("item_rate_common",$defaultdrate);

setbattleflag("item_rate_heal",$defaultdrate);

setbattleflag("item_rate_use",$defaultdrate);

setbattleflag("item_rate_equip",$defaultdrate);

setbattleflag("item_rate_card",$defaultccdrate);

setbattleflag("item_rate_card_boss",$defaultcbdrate);

atcommand "@reloadmobdb";

announce "Rates Changed Back to normal!",bc_all;

end;

OnPcLoginEvent:

if (.Event == 1) dispbottom "Super rates Event currently active!";

end;

}

Edited by nanakiwurtz
Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  9
  • Topics Per Day:  0.00
  • Content Count:  40
  • Reputation:   0
  • Joined:  11/04/12
  • Last Seen:  

Thanks a lot, i will try it later ^^

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