pajodex

Utility: Automated MVP ladder & reward system

Recommended Posts

Automated MVP ladder & reward system


New Feature:
    * Event will only trigger to MVPs in their respective maps..
    * If Amon Ra is killed outside moc_pryd06, script wont trigger..

Header

Spoiler

//===== rAthena Script =======================================
//= Automated MVP Ladder and reward system 
//===== By: ==================================================
//= pajodex
//===== Current Version: =====================================
//= 4.0
//===== Compatible With: =====================================
//= rAthena Project (pajodex)
//===== Description: =========================================
/*

- MVP Ladder which is fully automated.
- Just leave it on and NPC will do the rest.
- Easy configure
- Added @mvpreset command to reset the ladder. It will also reset the 
  monthly and weekly if it is on the '.day' and '.week' at settings 
- Updated with latest mail command https://github.com/rathena/rathena/commit/5b13dc7009e312585bba0ea55d77fc5afa8aecad

New Feature:
    * Event will only trigger to MVPs in their respective maps..
    * If amon ra is killed outside moc_pryd06, script wont trigger..
    

*/
//=====******** Note ********=================================
//= if you find bugs or problem, please do tell DM me at
//= Discord (pajodex#1328) or rAthena (pajodex) 
//= open for suggestions
//===== Additional Comments: =================================
// 1.0 - Initial release (MVP Kill standalone)
// 2.0 - Added SQL based with ladder
//         Added automatic reward system
//         Added functions
//         Added bitwise variables
//         Optimization
// 2.1 - Cleaned the script
//         updated title
// 2.2 - Fixed error on reward if players are offline    
// 2.3 - Added nobranch mapflags to all maps listed (Sukea23 via discord)
// 2.4 - Ranking fixed (reported by Sukea23)
// 3.0 - Script optimization and re-work
//         added new ranker feature : view your rank
//         added mvp ladder points system
//         added simple mvp ladder shop
// 3.1 - Fix ranking issues on tie-cases (reported by Heikenz) https://rathena.org/board/topic/114565-utility-automated-mvp-ladder-reward-system/?do=findComment&comment=344981
//         added item as currency support in ladder shop (Heikenz)
//         modified F_CheckMvpLadder function 
//         Special Thanks to : AnnieRuru for mentoring me.
// 4.0 - Updated to latest svn
//          Now uses *mail script command. You must UPDATE your trunk
//       or apply this commit https://github.com/rathena/rathena/commit/5b13dc7009e312585bba0ea55d77fc5afa8aecad
//         Script Optimization
//         Script Rework
//       Now uses a new SQL table that utilizes InnoDB instead of MyISAM
// -------------------------------------------------------
//         How to use F_MVPReward:
//         F_MVPReward ( <tablename>, <Num of players to get reward (default : 10)>, <rewardarrays> )
//         This will allow you to set the number of players to receive
//         the rewards. For small population server, you can set this to 5 or 
//         any amount as you wish.
//         This update is in-response to Holograma's question in the post:
//        https://rathena.org/board/topic/114565-utility-automated-mvp-ladder-reward-system/?tab=comments#comment-341725
//===== Credits goes to: =====================================
//= hurtsky
//= secret
//= sader1992
//= Stolao
//= Euphy 
//= AnnieRuru
//=============================================================

Config table:

Spoiler

// Bitwise Variables 
    // 1 = enable daily reward and record
    // 2 = enable weekly reward and record
    // 4 = enable monthly reward and record
    // 8 = enable mvp ladder item reward when killing MVP
    // 16 = enable mvp ladder points when killing MVP
    .Option = 1|2|4|8|16;    
    
    // NPC Name
    .nm$ = "[ ^FF0000MVP Ranker^000000 ]";
        
    // Point rewarded when mvp is killed (if Option 16 is enabled)
    .point = 100;    
    
    // Chance of getting an item (if Option 8 is enabled)
    .chance = 80;    
    
    // Day of the month to automatically get reward
    .day = 1;
    
    // Day of the week
    .week = SUNDAY; 
    
    setarray .reward,    // rewards for mvp killing    
        501, 10,        // Solo reward <item>, <amt>
        501, 5;            // Party reward <item>, <amt>
    
    // daily top 10 reward <ID>,<AMOUNT>,<ZENY>
    setarray .daily_rwd,  
            607,3,1000, // top 1
            607,2,1000,
            607,2,1000,
            607,2,1000,
            607,2,1000,
            607,2,1000,
            607,2,1000,
            607,2,1000,
            607,2,1000,
            607,1,1000;    // top 10    
    
    // weekly top 10 reward <ID>,<AMOUNT>,<ZENY>
    setarray .weekly_rwd,   
            607,3,10000, // top 1
            607,2,10000,
            607,2,10000,
            607,2,10000,
            607,2,10000,
            607,2,10000,
            607,2,10000,
            607,2,10000,
            607,2,10000,
            607,1,10000; // top 10
            
    // monthly top 10 reward <ID>,<AMOUNT>,<ZENY>
    setarray .monthly_rwd, 
            607,3,100000, // top 1
            607,2,100000,
            607,2,100000,
            607,2,100000,
            607,2,100000,
            607,2,100000,
            607,2,100000,
            607,2,100000,
            607,2,100000,
            607,1,1000; // top 10
            
    // use @mvpreset command to reset the ladder. It will also reset the ...
    // ... montly and weekly if it is on the .day and .week settings from above
    bindatcmd("mvpreset" ,strnpcinfo(0)+"::OnReward",99,99);
    
    // No branch mapflags on the maps listed..
    for([email protected] = 0; [email protected] < getarraysize(.t_maps$); [email protected])
        setmapflag .t_maps$[[email protected]], mf_nobranch;
    
    // ladder shop
    npcshopdelitem "mvp_ladder_shop_q", 607;
    
    for([email protected] = 0; [email protected] < getarraysize(.Shop); [email protected] = [email protected] + 2)
        npcshopadditem "mvp_ladder_shop_q", .Shop[[email protected]], .Shop[[email protected] + 1];
    
    waitingroom "MVP LADDER!",0;

Q: What makes this special and different to other MVP Ladders?

Quote

I guess the auto - ladder reset and reward can make this special and definitely different. Configs are so easy even a 7 y.o. can set the config xD

Q: Why sell it instead of free releaase?

Quote

Aside from the time and effort I spent writing this, I also want to help rAthena grow and continue

 

By downloading this file, you agree with my Terms of Service:

• You are not allowed remove my signature from any of the included files.
• You are not allowed sell, resell or in any form for money or rewards using my work.
• You are not allowed claim my work as yours.

• I have the rights to change all the terms above without prior notice. 

 


  • Submitter
  • Submitted
    02/02/2018
  • Category
  • Video
  • Content Author
    pajodex

 

  • Upvote 1

Share this post


Link to post
Share on other sites

Does the rank differ from those who use dead branches or bloody branches?

Share this post


Link to post
Share on other sites
On 2/13/2018 at 7:45 AM, maken06 said:

Does the rank differ from those who use dead branches or bloody branches?

as long as the mvps are not not spawned in the maps listed, it shoudnt work. 

Share this post


Link to post
Share on other sites

Hey, is there a way to change the reward system

Like i want 3 rewards daily, 6 weekly and 10 monthly

I will try to do something here..

Change the func name:

OnReward:
OnClock0000:
	if(.Option&4 && gettime(DT_DAYOFMONTH) == .day ){
		callfunc ( "F_MVPRewardm" , "month_kills" ,  .MailTitle$[2] ,  .Prize_m[[email protected] * 3 + 2] ,  .Prize_m[[email protected] * 3] ,  .Prize_m[[email protected] * 3 + 1] , "Monthly");
		sleep 5000;
	}
	if(.Option&2 && gettime(DT_DAYOFWEEK) == .week ){
		callfunc ( "F_MVPRewardw" , "week_kills" ,  .MailTitle$[1] ,  .Prize_w[[email protected] * 3 + 2] ,  .Prize_w[[email protected] * 3] ,  .Prize_w[[email protected] * 3 + 1] , "Weekly");
		sleep 5000;
	}
	if (.Option&1) {
		callfunc ( "F_MVPRewardd" , "day_kills" ,  .MailTitle$[0] ,  .Prize_d[[email protected] * 3 + 2] ,  .Prize_d[[email protected] * 3] ,  .Prize_d[[email protected] * 3 + 1] , "Daily");
		}
	end;

add three new func: (and change the 10 to 3 and 6)

function	script	F_MVPRewardm	{
		query_sql("SELECT `char_id` FROM `mvp_ranking` WHERE `"+getarg(0)+"` ORDER BY CAST(`"+getarg(0)+"` AS SIGNED) DESC LIMIT 10",.@cid);
		for(.@i = 0; .@i<getarraysize(.@cid); .@i++) {
		query_sql("INSERT INTO `mail` (`send_name`,`send_id`,`dest_name`,`dest_id`,`title`,`message`,`time`,`status`,`zeny`,`type`) VALUES ('no-reply','0','"+strcharinfo(0,.@cid[.@i])+"','"+.@cid[.@i]+"','*"+getarg(1)+"*','Parabéns~ % Você foi número #"+(.@i+1)+" no "+getarg(1)+"! Obrigado por particippar! [ Seu premio está anexado neste mail. ] Este mail é automatico e não deve ser respondido. Att Equipe InovaRO.',UNIX_TIMESTAMP(NOW()),1,"+getarg(2)+",0)");
		query_sql("SELECT `id` FROM `mail` WHERE `send_name` = 'no-reply' ORDER BY CAST(`id` AS SIGNED) DESC LIMIT 1",.@id);
		query_sql("INSERT INTO `mail_attachments` (`id`,`nameid`, `amount`, `identify`) VALUES ('"+.@id+"',"+getarg(3)+","+getarg(4)+",'1')");
		}
		announce "[Ajudante MVP]: Parabéns aos "+getarg(5)+" TOP 10 caçadores de MVP! Relogue e cheque seu Correio para conferir os prêmios.",bc_blue|bc_all;
		query_sql("UPDATE `mvp_ranking` SET `"+getarg(0)+"` = '0'");
		return;
                                              
                                              
function	script	F_MVPRewardw	{
		query_sql("SELECT `char_id` FROM `mvp_ranking` WHERE `"+getarg(0)+"` ORDER BY CAST(`"+getarg(0)+"` AS SIGNED) DESC LIMIT 6",.@cid);
		for(.@i = 0; .@i<getarraysize(.@cid); .@i++) {
		query_sql("INSERT INTO `mail` (`send_name`,`send_id`,`dest_name`,`dest_id`,`title`,`message`,`time`,`status`,`zeny`,`type`) VALUES ('no-reply','0','"+strcharinfo(0,.@cid[.@i])+"','"+.@cid[.@i]+"','*"+getarg(1)+"*','Parabéns~ % Você foi número #"+(.@i+1)+" no "+getarg(1)+"! Obrigado por particippar! [ Seu premio está anexado neste mail. ] Este mail é automatico e não deve ser respondido. Att Equipe InovaRO.',UNIX_TIMESTAMP(NOW()),1,"+getarg(2)+",0)");
		query_sql("SELECT `id` FROM `mail` WHERE `send_name` = 'no-reply' ORDER BY CAST(`id` AS SIGNED) DESC LIMIT 1",.@id);
		query_sql("INSERT INTO `mail_attachments` (`id`,`nameid`, `amount`, `identify`) VALUES ('"+.@id+"',"+getarg(3)+","+getarg(4)+",'1')");
		}
		announce "[Ajudante MVP]: Parabéns aos "+getarg(5)+" TOP 6 caçadores de MVP! Relogue e cheque seu Correio para conferir os prêmios.",bc_blue|bc_all;
		query_sql("UPDATE `mvp_ranking` SET `"+getarg(0)+"` = '0'");
		return;
 
function	script	F_MVPRewardd	{
		query_sql("SELECT `char_id` FROM `mvp_ranking` WHERE `"+getarg(0)+"` ORDER BY CAST(`"+getarg(0)+"` AS SIGNED) DESC LIMIT 3",.@cid);
		for(.@i = 0; .@i<getarraysize(.@cid); .@i++) {
		query_sql("INSERT INTO `mail` (`send_name`,`send_id`,`dest_name`,`dest_id`,`title`,`message`,`time`,`status`,`zeny`,`type`) VALUES ('no-reply','0','"+strcharinfo(0,.@cid[.@i])+"','"+.@cid[.@i]+"','*"+getarg(1)+"*','Parabéns~ % Você foi número #"+(.@i+1)+" no "+getarg(1)+"! Obrigado por particippar! [ Seu premio está anexado neste mail. ] Este mail é automatico e não deve ser respondido. Att Equipe InovaRO.',UNIX_TIMESTAMP(NOW()),1,"+getarg(2)+",0)");
		query_sql("SELECT `id` FROM `mail` WHERE `send_name` = 'no-reply' ORDER BY CAST(`id` AS SIGNED) DESC LIMIT 1",.@id);
		query_sql("INSERT INTO `mail_attachments` (`id`,`nameid`, `amount`, `identify`) VALUES ('"+.@id+"',"+getarg(3)+","+getarg(4)+",'1')");
		}
		announce "[Ajudante MVP]: Parabéns aos "+getarg(5)+" TOP 3 caçadores de MVP! Relogue e cheque seu Correio para conferir os prêmios.",bc_blue|bc_all;
		query_sql("UPDATE `mvp_ranking` SET `"+getarg(0)+"` = '0'");
		return;

Will that work fine? thanks love your script

Share this post


Link to post
Share on other sites
6 hours ago, Holograma said:

Hey, is there a way to change the reward system

Like i want 3 rewards daily, 6 weekly and 10 monthly

I will try to do something here..

Change the func name:

OnReward:
OnClock0000:
	if(.Option&4 && gettime(DT_DAYOFMONTH) == .day ){
		callfunc ( "F_MVPRewardm" , "month_kills" ,  .MailTitle$[2] ,  .Prize_m[[email protected] * 3 + 2] ,  .Prize_m[[email protected] * 3] ,  .Prize_m[[email protected] * 3 + 1] , "Monthly");
		sleep 5000;
	}
	if(.Option&2 && gettime(DT_DAYOFWEEK) == .week ){
		callfunc ( "F_MVPRewardw" , "week_kills" ,  .MailTitle$[1] ,  .Prize_w[[email protected] * 3 + 2] ,  .Prize_w[[email protected] * 3] ,  .Prize_w[[email protected] * 3 + 1] , "Weekly");
		sleep 5000;
	}
	if (.Option&1) {
		callfunc ( "F_MVPRewardd" , "day_kills" ,  .MailTitle$[0] ,  .Prize_d[[email protected] * 3 + 2] ,  .Prize_d[[email protected] * 3] ,  .Prize_d[[email protected] * 3 + 1] , "Daily");
		}
	end;

add three new func: (and change the 10 to 3 and 6)

function	script	F_MVPRewardm	{
		query_sql("SELECT `char_id` FROM `mvp_ranking` WHERE `"+getarg(0)+"` ORDER BY CAST(`"+getarg(0)+"` AS SIGNED) DESC LIMIT 10",.@cid);
		for(.@i = 0; .@i<getarraysize(.@cid); .@i++) {
		query_sql("INSERT INTO `mail` (`send_name`,`send_id`,`dest_name`,`dest_id`,`title`,`message`,`time`,`status`,`zeny`,`type`) VALUES ('no-reply','0','"+strcharinfo(0,.@cid[.@i])+"','"+.@cid[.@i]+"','*"+getarg(1)+"*','Parabéns~ % Você foi número #"+(.@i+1)+" no "+getarg(1)+"! Obrigado por particippar! [ Seu premio está anexado neste mail. ] Este mail é automatico e não deve ser respondido. Att Equipe InovaRO.',UNIX_TIMESTAMP(NOW()),1,"+getarg(2)+",0)");
		query_sql("SELECT `id` FROM `mail` WHERE `send_name` = 'no-reply' ORDER BY CAST(`id` AS SIGNED) DESC LIMIT 1",.@id);
		query_sql("INSERT INTO `mail_attachments` (`id`,`nameid`, `amount`, `identify`) VALUES ('"+.@id+"',"+getarg(3)+","+getarg(4)+",'1')");
		}
		announce "[Ajudante MVP]: Parabéns aos "+getarg(5)+" TOP 10 caçadores de MVP! Relogue e cheque seu Correio para conferir os prêmios.",bc_blue|bc_all;
		query_sql("UPDATE `mvp_ranking` SET `"+getarg(0)+"` = '0'");
		return;
                                              
                                              
function	script	F_MVPRewardw	{
		query_sql("SELECT `char_id` FROM `mvp_ranking` WHERE `"+getarg(0)+"` ORDER BY CAST(`"+getarg(0)+"` AS SIGNED) DESC LIMIT 6",.@cid);
		for(.@i = 0; .@i<getarraysize(.@cid); .@i++) {
		query_sql("INSERT INTO `mail` (`send_name`,`send_id`,`dest_name`,`dest_id`,`title`,`message`,`time`,`status`,`zeny`,`type`) VALUES ('no-reply','0','"+strcharinfo(0,.@cid[.@i])+"','"+.@cid[.@i]+"','*"+getarg(1)+"*','Parabéns~ % Você foi número #"+(.@i+1)+" no "+getarg(1)+"! Obrigado por particippar! [ Seu premio está anexado neste mail. ] Este mail é automatico e não deve ser respondido. Att Equipe InovaRO.',UNIX_TIMESTAMP(NOW()),1,"+getarg(2)+",0)");
		query_sql("SELECT `id` FROM `mail` WHERE `send_name` = 'no-reply' ORDER BY CAST(`id` AS SIGNED) DESC LIMIT 1",.@id);
		query_sql("INSERT INTO `mail_attachments` (`id`,`nameid`, `amount`, `identify`) VALUES ('"+.@id+"',"+getarg(3)+","+getarg(4)+",'1')");
		}
		announce "[Ajudante MVP]: Parabéns aos "+getarg(5)+" TOP 6 caçadores de MVP! Relogue e cheque seu Correio para conferir os prêmios.",bc_blue|bc_all;
		query_sql("UPDATE `mvp_ranking` SET `"+getarg(0)+"` = '0'");
		return;
 
function	script	F_MVPRewardd	{
		query_sql("SELECT `char_id` FROM `mvp_ranking` WHERE `"+getarg(0)+"` ORDER BY CAST(`"+getarg(0)+"` AS SIGNED) DESC LIMIT 3",.@cid);
		for(.@i = 0; .@i<getarraysize(.@cid); .@i++) {
		query_sql("INSERT INTO `mail` (`send_name`,`send_id`,`dest_name`,`dest_id`,`title`,`message`,`time`,`status`,`zeny`,`type`) VALUES ('no-reply','0','"+strcharinfo(0,.@cid[.@i])+"','"+.@cid[.@i]+"','*"+getarg(1)+"*','Parabéns~ % Você foi número #"+(.@i+1)+" no "+getarg(1)+"! Obrigado por particippar! [ Seu premio está anexado neste mail. ] Este mail é automatico e não deve ser respondido. Att Equipe InovaRO.',UNIX_TIMESTAMP(NOW()),1,"+getarg(2)+",0)");
		query_sql("SELECT `id` FROM `mail` WHERE `send_name` = 'no-reply' ORDER BY CAST(`id` AS SIGNED) DESC LIMIT 1",.@id);
		query_sql("INSERT INTO `mail_attachments` (`id`,`nameid`, `amount`, `identify`) VALUES ('"+.@id+"',"+getarg(3)+","+getarg(4)+",'1')");
		}
		announce "[Ajudante MVP]: Parabéns aos "+getarg(5)+" TOP 3 caçadores de MVP! Relogue e cheque seu Correio para conferir os prêmios.",bc_blue|bc_all;
		query_sql("UPDATE `mvp_ranking` SET `"+getarg(0)+"` = '0'");
		return;

Will that work fine? thanks love your script

For support, please leave me DM in discord instead. 

Share this post


Link to post
Share on other sites

There will be an optimized version of this soon. For those who have already had a copy of this, just wait for the update. 

Share this post


Link to post
Share on other sites

@pajodex It would be much better to add a protection on the maps listed so as not to use Galho Sangrento Bloody Branch, so as not to interfere with ranking.

Share this post


Link to post
Share on other sites
22 minutes ago, Haikenz said:

@pajodex It would be much better to add a protection on the maps listed so as not to use Galho Sangrento Bloody Branch, so as not to interfere with ranking.

Thank you for your suggestion. Will update this script soon. I just got back from vacation 

  • Upvote 1

Share this post


Link to post
Share on other sites

@Holograma download the latest version.. I've incorporated your request in that version...

 

@Haikenz As I re-checked my script. I already put no-branch mapflag on all maps listed..

 

Version 3.0 contains the ff changelogs:

  • MVP Ladder points system
  • MVP Ladder points shop
  • See your rank standings
  • Optimized and Re-worked
Edited by pajodex
  • Love 2

Share this post


Link to post
Share on other sites

@pajodex Add support to use item rather than points in the store.

ex: I use a custom item that drops from all mvps, and with that item you can buy things in the store.

problem with ranking

screenProvidenceRO013.jpg

screenProvidenceRO014.jpg

Edited by Haikenz

Share this post


Link to post
Share on other sites
8 hours ago, Haikenz said:

Add support to use item rather than points in the store.

1. You can use https://github.com/rathena/rathena/blob/master/npc/custom/quests/quest_shop.txt as alternative as of now.

6 hours ago, Haikenz said:

problem with ranking

2. Actually, its because Top 1 and Top 2 has same kill counts. fixing that requires an advance level of sql coding and I'm far from that level yet. Maybe someday I will re-update this for cases like ties happens.

 

.. I will try to do some hot fix on my free time regarding this issue. Just keep updated.

.. I will add item as fee in shop as well.

Share this post


Link to post
Share on other sites

Updated this to version 3.1.. Just wait for moderator approval.

3.1 - Changelogs

  • Fix ranking issues on tie-cases (reported by Heikenz)
  • Added item as currency support in ladder shop 
  • Modified F_CheckMvpLadder function

Special Thanks to @AnnieRuru for helping / mentoring me :)

For tie cases, ranker will now put them on same rank..
sample:

Player		kills
[Eve]		11
[Robert]	9
[Rex]		11

when ranked : 

Rank	Player		kills
1 	[Eve]		11
1	[Rex]		11
3	[Robert]	9

Rex is actually at rank 2 but since he is tied with Eve, they will both be ranked 1. So, ranked 2 will be skipped

Edited by pajodex

Share this post


Link to post
Share on other sites
On 2/12/2018 at 12:56 AM, pajodex said:

// To - Do!
//   - Convert sql table from MyISAM to InnoDB (for faster data retrieval)
// Reference : http://herc.ws/board/topic/15845-advance-sql-commands/#comment-87378

 

OnInit:
	query_sql "SELECT `ENGINE` FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'testest' AND TABLE_SCHEMA = DATABASE()", [email protected]$;
	if ( [email protected]$ == "MyISAM" )
		query_sql "ALTER TABLE `testest` ENGINE = InnoDB";
	end;

/hmm

oh ... Reference : https://stackoverflow.com/questions/3681790/how-do-i-find-if-my-a-table-is-myisam-or-innodb

 

EDIT- or maybe ... /heh

OnInit:
	query_sql "SHOW CREATE TABLE `testest`", [email protected]$, [email protected]_table$;
	if ( compare( [email protected]_table$, "MyISAM" ) == true )
		query_sql "ALTER TABLE `testest` ENGINE = InnoDB";
	end;

 

Edited by AnnieRuru
  • MVP 1

Share this post


Link to post
Share on other sites

@pajodex

1 - You must disable the merchant discount ability in the store.

2 - In the mail the % is not giving ENTER

screenProvidenceRO005.jpg

screenProvidenceRO004.jpg

Share this post


Link to post
Share on other sites
1 hour ago, Haikenz said:

@pajodex

1 - You must disable the merchant discount ability in the store.

2 - In the mail the % is not giving ENTER

screenProvidenceRO005.jpg

screenProvidenceRO004.jpg

1. Merc discount skill only works for zeny based items sold i  shops.. It may appear to be discounted but its not( as far as i know)

2. I dont think there's a way to make 'enter' on rodex via npc script... Unless there's an updated rodex mail script available ready which i believe will be available any time soon. 

Share this post


Link to post
Share on other sites

@pajodex If you summon monsters on other maps that are not set in the mvp area, the points are counted as well.
Example: I invoked Garm from xmas_fild01 on prt_fild00 and gave points.

Share this post


Link to post
Share on other sites
20 minutes ago, Haikenz said:

@pajodex If you summon monsters on other maps that are not set in the mvp area, the points are counted as well.
Example: I invoked Garm from xmas_fild01 on prt_fild00 and gave points.

Did you modify the script? I cant seem to produce your report..

for ([email protected] = 0; [email protected] < getarraysize(.t_maps$); [email protected]) {
		if ( strcharinfo(3) == .t_maps$[[email protected]]) { 

that part of the script means if player is on the map listed on .t_maps$ array will give points

Share this post


Link to post
Share on other sites
9 minutes ago, pajodex said:

Did you modify the script? I cant seem to produce your report..

for (.@a = 0; .@a < getarraysize(.t_maps$); ++.@a) {
		if ( strcharinfo(3) == .t_maps$[.@a]) { 

that part of the script means if player is on the map listed on .t_maps$ array will give points

OnNPCKillEvent:
if ( .Option&8 && getgmlevel() >= .gm ) end; // If gm = event wont happen
if ( getmonsterinfo( killedrid, MOB_MVPEXP )) {
	for ([email protected] = 0; [email protected] < getarraysize(.t_maps$); [email protected]) {
		if ( strcharinfo(3) == .t_maps$[[email protected]]) { 
			if ( !getcharid(1) ) {	
				if (rand(100) < .chance) 
					getitem .s_rwd[0], .s_rwd[1];
				if(.Option&16) {
				#MVP_LADDER_POINTS = #MVP_LADDER_POINTS + .point;

already have this ... to using the latest version of your script

Share this post


Link to post
Share on other sites
16 minutes ago, Haikenz said:
OnNPCKillEvent:
if ( .Option&8 && getgmlevel() >= .gm ) end; // If gm = event wont happen
if ( getmonsterinfo( killedrid, MOB_MVPEXP )) {
	for ([email protected] = 0; [email protected] < getarraysize(.t_maps$); [email protected]) {
		if ( strcharinfo(3) == .t_maps$[[email protected]]) { 
			if ( !getcharid(1) ) {	
				if (rand(100) < .chance) 
					getitem .s_rwd[0], .s_rwd[1];
				if(.Option&16) {
				#MVP_LADDER_POINTS = #MVP_LADDER_POINTS + .point;

already have this ... to using the latest version of your script

I will give it another test right now.. hold on.. You can send me DM in discord for faster feed back and if it is really a bug, I can send you right away

EDIT:

Done testing... I cannot reproduce your error.. here is the result...

1. I went to prt_fild00 (not in the list) and summoned Baphomet.. after killing :

mvp.PNG.dc5ae3f5a35cdb5957df004ebca24567.PNG

I did it twice to make sure..

 

2. Then I went to abbey02 (on the list):

mvpok.PNG.05003f143abc6da224b08f960ea8b25b.PNG

 

EDIT2:

- Its a matter of not announcing if player kills MVP outside the map.. Issue is being tackled via discord .. Nothing to panic /heh 

 

Edited by pajodex

Share this post


Link to post
Share on other sites

Can this be compatible to hercules? wanted to purchase the script.

//===== Compatible With: =====================================
//= rAthena Project (pajodex)
//===== Description: =========================================

 

Share this post


Link to post
Share on other sites

@wakefield21 Not for now here in rAthena... DM me here or in Discord if you want a copy of this.

Share this post


Link to post
Share on other sites
14 minutes ago, pajodex said:

@wakefield21 Not for now here in rAthena... DM me here or in Discord if you want a copy of this.

whats your Discord ID

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
Reply to this topic...

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

Loading...