Jump to content

  •  

Photo

chances on showing the item


  • Please log in to reply
No replies to this topic

#1 dfabsgwapings

dfabsgwapings

    Advanced Member

  • Members
  • PipPipPip
  • 150 posts
  • Github:dfabsgwapings

Posted 21 May 2017 - 09:49 PM

Hi everyone,

Can anyone help me with this script?

PS: This is Goddameit Script

 

//
//
//	Author		Goddameit
//	Version		2014/05/14
//	Web		http://goo.gl/0vY9GV
//
//
prontera,150,180,4	script	Party Dungeon#fb156df	100,{
	if( .NP_GAME_STATUS )
	{
		mes "Sorry, someone is playing.";
		close;
	}
	mes "Hi, do you want to join this game?";
	if( select("No","Yes") == 1 )
		close;
	next;
	if( getcharid(1) == 0 )
	{
		mes "You need to join or create a party.";
		close;
	}
	if( getcharid(0) != getpartyleader(getcharid(1),2) )
	{
		mes "You're not party leader";
		close;
	}
	if( countitem(.SP_PLAYER_ITEM) == 0 )
	{
		mes "You don't have any "+getitemname(.SP_PLAYER_ITEM);
		close;
	}
	getpartymember getcharid(1),2;
	getpartymember getcharid(1),1;
	if( $@partymembercount < .SP_PLAYER_NUM )
	{
		mes "You need at least "+.SP_PLAYER_NUM+" player";
		deletearray $@partymembercid[0],$@partymembercount;
		deletearray $@partymemberaid[0],$@partymembercount;
		$@partymembercount = 0;
		close;
	}
	.@amount = 0;
	for( .@i = 0; .@i<$@partymembercount; .@i++ )
	{
		if( !isloggedin($@partymemberaid[.@i],$@partymembercid[.@i]) )
		{
			$@partymemberaid[.@i] = 0;
			$@partymembercid[.@i] = 0;
		}else
			.@amount++;
	}
	if( .@amount < .SP_PLAYER_NUM )
	{
		mes "You need at least "+.SP_PLAYER_NUM+" player";
		deletearray $@partymembercid[0],$@partymembercount;
		deletearray $@partymemberaid[0],$@partymembercount;
		$@partymembercount = 0;
		close;
	}
	if( .NP_GAME_STATUS )
	{
		mes "Sorry, someone is playing.";
		close;
	}
	.@amount = 0;
	delitem .SP_PLAYER_ITEM,1;
	.NP_GAME_LPID = getcharid(1);
	.NP_GAME_LAID = getcharid(3);
	.NP_GAME_LCID = getcharid(0);
	.NP_GAME_STATUS = 1;
	.NP_GAME_TICK = 600;
	deletearray .p_cid[0],.p_num;
	deletearray .p_aid[0],.p_num;
	.p_num = $@partymembercount;
	copyarray .p_cid[0],$@partymembercid[0],.p_num;
	copyarray .p_aid[0],$@partymemberaid[0],.p_num;
	deletearray $@partymembercid[0],$@partymembercount;
	$@partymembercount = 0;
	disablenpc "Treasure Chest#ukdfkbp";
	Initnpctimer;
	mes "Done";
	warpparty "guild_vs2",55,55,getcharid(1);
	close;
	end;
OnTimer1000:
	if( !mobcount("guild_vs2",strnpcinfo(0)+"::OnKill") && .NP_GAME_STATUS == 1 )
	{
		sleep2 5000;
		monster "guild_vs2",50,50,"--ja--",1002,1,strnpcinfo(0)+"::OnKill";
	}
	if( .NP_GAME_TICK > 0 )
	{
		.NP_GAME_TICK--;
		.@bool = 0;
		if( !isloggedin(.NP_GAME_LAID,.NP_GAME_LCID) )
			.@bool = 1;
		if( .@bool == 0 )
		{
			getmapxy(.@map$, .@x, .@y, 0, rid2name(.NP_GAME_LAID));
			if( .@map$ != "guild_vs2" )
				.@bool = 1;
		}
		if( .@bool == 1 )
		{
			.NP_GAME_STATUS = -1;
			MapAnnounce "guild_vs2","[System]: You're team leader is gone!!",0;
			sleep2 2000;
			mapwarp "guild_vs2","prontera",150,180;
			.NP_GAME_STATUS = 0;
		}else
			Initnpctimer;
	}
	else
	{
		.NP_GAME_STATUS = -1;
		MapAnnounce "guild_vs2","[System]: Time Out!!",0;
		sleep2 2000;
		mapwarp "guild_vs2","prontera",150,180;
		.NP_GAME_STATUS = 0;
		donpcevent "Treasure Chest#ukdfkbp::OnCleanVar";
		disablenpc "Treasure Chest#ukdfkbp";
	}
	end;
OnKill:
	detachrid;
	if( .NP_GAME_STATUS == 1 )
	{
		.NP_GAME_STATUS = 2;
		MapAnnounce "guild_vs2","[System]: You win!!",0;
		killmonsterall "guild_vs2";
		sleep2 2000;
		enablenpc "Treasure Chest#ukdfkbp";
		donpcevent "Treasure Chest#ukdfkbp::OnCleanVar";
		.NP_GAME_TICK = 120;
		$@NP_GAME_LPID = .NP_GAME_LPID;
		.@j = 0;
		for( .@i = 0; .@i<.p_num; .@i++ )
		{
			if( !isloggedin(.p_aid[.@i],.p_cid[.@i]) )
				continue;
			getmapxy(.@map$, .@x, .@y, 0, rid2name(.p_aid[.@j]));
			if( .@map$ != "guild_vs2" )
				continue;
			$@p_aid[.@j] = .p_aid[.@i];
			$@p_name$[.@j] = rid2name(.p_aid[.@i]);
			.@j++;
		}
		$@p_num = .@j;
	}
	end;
OnInit:
	.SP_PLAYER_NUM = 2;
	.SP_PLAYER_ITEM = 501;
	disablenpc "Treasure Chest#ukdfkbp";
	mapwarp "guild_vs2","prontera",150,180;
	end;
OnCleanVar:
	donpcevent "Treasure Chest#ukdfkbp::OnCleanVar";
	disablenpc "Treasure Chest#ukdfkbp";
	deletearray .p_aid[0], .p_num;
	deletearray .p_cid[0], .p_num;
	.p_num = 0;
	.NP_GAME_LPID = 0;
	.NP_GAME_LAID = 0;
	.NP_GAME_LCID = 0;
	.NP_GAME_TICK = 0;
	end;
}
guild_vs2,50,50,0	script	Treasure Chest#ukdfkbp	1324,{
	function	__st	;
	if( getcharid(0) != getpartyleader($@NP_GAME_LPID,2) )
		end;
	.@item = 5;
	setarray .@item1max[0],607,10;
	setarray .@item2max[0],501,10;
	setarray .@item3max[0],502,10;
	setarray .@item4max[0],503,10;
	setarray .@item5max[0],504,10;
	while( __st() == 2 )
	{
		mes " ";
		next;
		mes "------Less------";
		for( .@i = 1; .@i<=.@item; .@i++ )
			mes ""+getitemname(getd(".@item"+.@i+"max[0]"))+" X "+(getd(".@item"+.@i+"max[1]")-.@useitem[.@i])+"";
		if( (.@co = prompt(implode($@p_name$,":")+":[Send]")) == 255 )
		{
			mes " ";
			next;
			close;
		}
		if( .@co > $@p_num )
		{
			close2;
			detachrid;
			for( .@j = 0; .@j<$@p_num; .@j++ )
			{
				for( .@i = 1; .@i<=.@item; .@i++ )
				{
					getitem getd(".@item"+.@i+"max[0]"),getd(".@player"+.@j+"item["+.@i+"]"),$@p_aid[.@j];
					sleep2 1;
				}
			}
			mapwarp "guild_vs2","prontera",150,180;
			donpcevent "Party Dungeon#fb156df::OnCleanVar";
			end;
		}
		mes " ";
		next;
		.@co -= 1;
		if( .@co < 0 )
			break;
		deletearray .@select$[0],.@item;
		next;
		mes "--- "+$@p_name$[.@co]+" ---";
		for( .@i = 1; .@i<=.@item; .@i++ )
		{
			.@select$[.@i-1] = ""+getitemname(getd(".@item"+.@i+"max[0]"))+" X "+(getd(".@player"+.@co+"item["+.@i+"]"))+"";
			mes ""+.@select$[.@i-1];
		}
		if( (.@ct = prompt(implode(.@select$,":"))) == 255 )
			continue;
		mes " ";
		next;
		mes "Adujust "+$@p_name$[.@co]+"";
		mes ""+.@select$[.@ct-1]+" to...";
		input .@amount;
		if( .@amount < 0 )
			.@amount = 0;
		if( (.@useitem[.@ct]-getd(".@player"+.@co+"item["+.@ct+"]")+.@amount) > getd(".@item"+.@ct+"max[1]") )
			.@amount = getd(".@item"+.@ct+"max[1]")-.@useitem[.@ct];
		setd ".@player"+.@co+"item["+.@ct+"]", .@amount;
		deletearray .@useitem[0], .@item;
		for( .@i = 1; .@i<=.@item; .@i++ )
			for( .@j = 0; .@j<$@p_num; .@j++ )
				set .@useitem[.@i], .@useitem[.@i] + getd(".@player"+.@j+"item["+.@i+"]");
	}
	mes " ";
	next;
	close;
	end;
OnCleanVar:
	deletearray $@p_aid[0], $@p_num;
	deletearray $@p_name$[0], $@p_num;
	$@p_num = 0;
	$@NP_GAME_LPID = 0;
	end;
	function	__st	{
		return getvariableofnpc(.NP_GAME_STATUS,"Party Dungeon#fb156df");
	}
}

please help on changing the appearance of the items. because in this script the item reward is already fixed meaning whatever is in there those are the only items the player will get. How can I change it to "the item will appear by chances or percentage?

 

example in this part

setarray .@item1max[0],607,10;	//100% chance to show
setarray .@item2max[0],501,10;	//75% chance to show
setarray .@item3max[0],502,10;	//50% chance to show
setarray .@item4max[0],503,10;	//25% chance to show
setarray .@item5max[0],504,10;	//1% chance to show

those items will only show by chances or percentage to the treasure pool.

 

I hope someone can help me with this.






1 user(s) are reading this topic

0 members, 1 guests, 0 anonymous users


This topic has been visited by 19 user(s)