Jump to content
  • 0

help with this script || party member that is not on the same map received the item


Question

Posted

anyone can help me configure this script i found the script here, however i think this scrip when party kills MVP

the prize received by a random member and even the member is not on the same map they still received a prize

can anyone modify this script that the party member should be on the same map to received the item

its ok for me if the prize will be given random to party member

here is the script

-	script	#mvp_kill	-1,{

OnInit:
	setarray .p_rwd, 30006,50;	// Party reward <item>,<amount>
	setarray .s_rwd, 30006,50;	// Solo reward <item>,<amount>
	.chance = 50;	// Drop rate chances %
	.gm = 10;  // Prevents gm level and above to trigger the event
	// MVP Map list
	setarray .t_maps$[0],"moc_pryd06","lhz_dun03","gld2_prt","abbey02","ayo_dun02","lhz_dun04","ra_fild02","xmas_fild01","dic_dun02","beach_dun","iz_dun05","tur_dun04","lhz_dun02","jupe_core","moc_fild22","anthell02","odin_tem03","gon_dun03","gef_fild02","thana_boss","gef_fild10","ein_dun02","gef_fild14","moc_pryd04","dew_dun01","in_sphinx5","niflheim","moc_fild17","xmas_dun02","ice_dun03","kh_dun02","treasure02","moc_prydn2","pay_dun04","ra_san05","mosk_dun03","ama_dun03","thor_v03","gef_dun01","mjolnir_04","abyss_03","dic_dun03","prt_sewb4","pay_fild11","gef_dun02","gl_chyard","ra_fild03","ra_fild04","ve_fild01","ve_fild02","lou_dun03","prt_maze03","bra_dun02";
	end;

OnNPCKillEvent:
if (getgmlevel() >= .gm ) end; // If gm = event wont happen
if ( getmonsterinfo( killedrid, MOB_MVPEXP )) {
	for (.@a = 0; .@a < getarraysize(.t_maps$); .@a++) {
	if ( strcharinfo(3) == instance_mapname("06guild_01") ) end; 
	if ( strcharinfo(3) == instance_mapname("force_1-1") ) end;
	if ( strcharinfo(3) == .t_maps$[.@a]) { 
			if ( getcharid(1) ) {
				getpartymember getcharid(1), 1;
				getpartymember getcharid(1), 2;
				for ( .@i = 0; .@i < $@partymembercount; .@i++ ) {
					if ( isloggedin( $@partymemberaid[.@i], $@partymembercid[.@i] ) ) { 
						.@partymemberaid[.@c] = $@partymemberaid[.@i];
						.@c++;
					}
				}
				if (rand(100) < .chance) getitem .p_rwd[0], .p_rwd[1], .@partymemberaid[ rand( .@c ) ];
				announce "[ System ] : Player ["+ strcharinfo(0) +"] of party ["+ strcharinfo(1) +"] has killed "+ getmonsterinfo( killedrid, MOB_NAME ) +" at "+ strcharinfo(3), bc_all;
			}
			else {
				if (rand(100) < .chance) getitem .s_rwd[0], .s_rwd[1];
				announce "[ System ] : Player ["+ strcharinfo(0) +"] has killed "+ getmonsterinfo( killedrid, MOB_NAME ) +" alone at "+ strcharinfo(3), bc_all;
			}
		MVPKills = MVPKills+1;
		dispbottom "---------------------------------------------------";
		dispbottom "You killed a total of "+MVPKills+" MVP"+((MVPKills == 1)?"":"s")+".";
		dispbottom "---------------------------------------------------";
		end;
		}
	}
	if ( getcharid(1) ) {
		announce "[ System ] : Player ["+ strcharinfo(0) +"] of party ["+ strcharinfo(1) +"] has killed "+ getmonsterinfo( killedrid, MOB_NAME ) +" at "+ strcharinfo(3), bc_all;
		} 
		else {
		announce "[ System ] : Player ["+ strcharinfo(0) +"] has killed "+ getmonsterinfo( killedrid, MOB_NAME ) +" alone at "+ strcharinfo(3), bc_all;
		}
	end;
	}

	
}
prontera,145,174,6	script	MVP Ladder#Euphy	891,{
	mes "[Rank MVP]";
	mes "Hello.";
	mes "What are you doing here";
	next;
	switch(select("Check Ranking.",	"My stats.",( getgmlevel() >= 99 ) ? "RESET":"","Nothing...")) {
		case 1:
			mes "[Rank MVP]";
			query_sql("SELECT char_id, CAST(`value` AS SIGNED) FROM `char_reg_num` WHERE `key` = 'MVPKills' ORDER BY CAST(`value` AS SIGNED) DESC LIMIT 20",.@cid,.@value);
			for(set .@i,0; .@i<getarraysize(.@cid); set .@i,.@i+1) {
				query_sql("SELECT `name` FROM `char` WHERE char_id = "+.@cid[.@i]+";",.@j$);
				set .@name$[.@i], .@j$;
			}
			if (!getarraysize(.@cid))
				mes "The rankings are empty.";
			else for(set .@i,0; .@i<getarraysize(.@cid); set .@i,.@i+1)
			mes "["+(.@i+1)+"] "+.@name$[.@i]+" ~ "+.@value[.@i]+" kills";
			close;
			
		case 2:
			mes "[Rank MVP]";
			mes "You killed "+((MVPKills)?"^0055FF"+MVPKills:"no")+"^000000 MVP"+((MVPKills == 1)?".":"s.");
			close;
		case 3:
			if ( select( "Confirm","Cancel" ) == 1 ) {
				query_sql("UPDATE `char_reg_num` SET `value` = '0' WHERE `key` ='MVPKills'");
				addrid(0);
				MVPKills = 0;
			}
			close;
		default:		
			close;
	}
	
OnInit:
		waitingroom "MVP LADDER!",0;
		end;
}

#TIA

3 answers to this question

Recommended Posts

  • 0
Posted (edited)

Try this

if ( getcharid(1) ) {
					getpartymember getcharid(1), 1;
					getpartymember getcharid(1), 2;
					for ( .@i = 0; .@i < $@partymembercount; .@i++ ) {
						if ( isloggedin( $@partymemberaid[.@i], $@partymembercid[.@i] ) ) { 
							.@partymemberaid[.@c] = $@partymemberaid[.@i];
							.@c++;
						}
					}
					if (rand(100) < .chance) getitem .p_rwd[0], .p_rwd[1], .@partymemberaid[ rand( .@c ) ];
					announce "[ System ] : Player ["+ strcharinfo(0) +"] of party ["+ strcharinfo(1) +"] has killed "+ getmonsterinfo( killedrid, MOB_NAME ) +" at "+ strcharinfo(3), bc_all;
				}

to

if ( getcharid(1) ) {
	getpartymember getcharid(1), 1;
	getpartymember getcharid(1), 2;
	for ( .@i = 0; .@i < $@partymembercount; .@i++ ) {
		if ( isloggedin( $@partymemberaid[.@i], $@partymembercid[.@i] ) ) { 
			.@partymemberaid[.@c] = $@partymemberaid[.@i];
			.@c++;
		}
	}
	if (rand(100) < .chance){
		L_DoItAgain:
		.@sumC = rand(.@c);
		if(strcharinfo(3,.@partymemberaid[.@sumC])==.t_maps$[.@a]){
			getitem .p_rwd[0], .p_rwd[1], .@partymemberaid[.@sumC];
		}else
		goto L_DoItAgain;
	} 
	announce "[ System ] : Player ["+ strcharinfo(0) +"] of party ["+ strcharinfo(1) +"] has killed "+ getmonsterinfo( killedrid, MOB_NAME ) +" at "+ strcharinfo(3), bc_all;
}

 

Not sure it's working but you can try.

Edited by TARTs
  • 0
Posted
3 hours ago, TARTs said:

Try this


if ( getcharid(1) ) {
					getpartymember getcharid(1), 1;
					getpartymember getcharid(1), 2;
					for ( .@i = 0; .@i < $@partymembercount; .@i++ ) {
						if ( isloggedin( $@partymemberaid[.@i], $@partymembercid[.@i] ) ) { 
							.@partymemberaid[.@c] = $@partymemberaid[.@i];
							.@c++;
						}
					}
					if (rand(100) < .chance) getitem .p_rwd[0], .p_rwd[1], .@partymemberaid[ rand( .@c ) ];
					announce "[ System ] : Player ["+ strcharinfo(0) +"] of party ["+ strcharinfo(1) +"] has killed "+ getmonsterinfo( killedrid, MOB_NAME ) +" at "+ strcharinfo(3), bc_all;
				}

to


if (getcharid(1)) {
					getpartymember(getcharid(1));
					.@origin = getcharid(3);
					.@sumRand = rand(100);
					for ( .@i = 0; .@i < $@partymembercount; .@i++ )
					{
						if(isloggedin(getcharid(3,$@partymembername$[.@i]), getcharid(0,$@partymembername$[.@i]))) {
							if ( attachrid( getcharid(3,$@partymembername$[.@i] ) )) {
								if (.@sumRand < .chance)
								getitem .p_rwd[0], .p_rwd[1], .@partymemberaid[ rand( .@c ) ];
							}
						}
					}
					attachrid .@origin;
					announce "[ System ] : Player ["+ strcharinfo(0) +"] of party ["+ strcharinfo(1) +"] has killed "+ getmonsterinfo( killedrid, MOB_NAME ) +" at "+ strcharinfo(3), bc_all;
				}

 

Not sure it's working but you can try.

try this one out later thnx ^_^

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.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...