Jump to content

crazyarashi

Developer
  • Posts

    776
  • Joined

  • Last visited

  • Days Won

    22

Posts posted by crazyarashi

  1. prontera,255,55,5	script	NPC	123,{
    	if(!.active)
    		end;
    	mes "Event is active.";
    	close;
    
    OnInit:
    OnHour00:
    	.active = 0;
    	function check_month_end;
    	.@day = 10;
    	.@months_end = check_month_end();
    	if(.@day > .@months_end)
    		.@day = .@months_end;
    	.@current_day = gettime(DT_DAYOFMONTH);
    	if(.@current_day < .@day)
    		waitingroom "Next offer appears in " + (.@day - .@current_day) + "D at 21:00",0;
    	else if(.@current_day > .@day)
    		waitingroom "Next offer appears in " + ((.@months_end - .@current_day) + .@day) + "D at 21:00",0;
    	else {
    		waitingroom "OFFER DAY!",0;
    		.active = 1;
    	}
    	end;
    	
    	
    function	check_month_end	{
    	.@month = gettime(DT_MONTH);
    	switch(.@month){
    		case APRIL: case JUNE: case SEPTEMBER: case NOVEMBER:
    			.@days = 30;
    			break;
    		
    		case FEBRUARY:
    			.@year = gettime(DT_YEAR);
    			if(.@year % 4 == 0 && .@year % 100 != 0 || .@year % 400 == 0)
    				.@days = 29;
    			else
    				.@days = 28;
    			break;
    			
    		default:
    			.@days = 31;
    			break;
    	}
    	return .@days;
    }
    			
    }

     

    • MVP 1
  2. prontera,255,55,5	script	exchange_tcg	123,{
    	.@max = Zeny/.rates;
    	mes "[ Exchanger ]";
    	mes "Do you want to exchange your ^33CC33" + .rates + "^000000 Zeny to a TCG?";
    	next;
    	if(select("Exchange:Quit") == 2)
    		end;
    	if(!.@max){
    		mes "[ Exchanger ]";
    		mes "You don't have enough zeny for the exchange.";
    		close;
    	}
    OnExchange:
    	mes "[ Exchanger ]";
    	mes "You can exchange up to ^0000FF"+.@max+"^000000 TCG.";
    	mes "How many would you like to exchange?";
    	next;
    	input .@count;
    	if(.@count == 0 || .@count > .@max){
    		mes "[ Exchanger ]";
    		mes "You can't enter 0 or you can only exchange up to ^0000FF"+.@max+"^000000 TCG.";
    		mes "Please try again.";
    		next;
    		goto OnExchange;
    	}
    	mes "[ Exchanger ]";
    	mes "Are you sure you want to exchange ^33CC33" + (.rates*.@count) + "^000000 Zeny for " + .@count + "TCG?";
    	next;
    	if(select("Yes:No") == 2)
    		end;
    	mes "[ Exchanger ]";
    	mes "Okay, Here you go!, Thank you for using my services.";
    	Zeny -= (.rates*.@count);
    	getitem .item_id,.@count;
    	end;
    	
    OnInit:
    	.item_id = 501;
    	.rates = 10000000;
    	end;
    }

     

  3. if(Class == Job_Knight || Class == Job_Lord_Knight){
    	if(checkriding()){
    		setoption OPTION_DRAGON1;
    	}
    }
    
    
    //= Unequip Part of the item script
    //= Remove Dragon/Ride PecoPeco and changebase
    if(Class == Job_Knight || Class == Job_Lord_Knight){ if(checkdragon()){ setriding; setriding; } } changebase Class;

     

  4. prontera,123,123,1	script	Reward NPC	123,{
    	.@unique_id$ = get_unique_id();
    	if($reward_status > 0 || $reward_count < 1){
    		mes "[ Reward NPC ]";
    		mes "Sorry, but the first 50 rewards are out. Better luck next time.";
    		close;
    	}
    	if(getd("$ID_" + .@unique_id$) > 0 || #NPCREWARD > 0){
    		mes "[ Reward NPC ]";
    		mes "You have already claimed your reward.";
    		close;
    	}
    	mes "[ Reward NPC ]";
    	mes "Here's your reward. Have a nice day!";
    	setd "$ID_" + .@unique_id$,1;
    	#NPCREWARD = 1;
    	$reward_count -= 1;
    	for(.@i = 0; .@i < getarraysize(.rewards); .@i += 2)
    		getitem .rewards[.@i],.rewards[.@i+1];
    	if($reward_count == 0)
    		$reward_status = 1;
    	end;
    	
    OnInit:
    	.reward_count = 50;
    	if($reward_status == 0 && $reward_count == 0)
    		$reward_count = .reward_count;
    	setarray .rewards,501,10,502,10;
    	while($reward_count > 0){
    		delwaitingroom;
    		waitingroom "Rewards left - " + $reward_count, 0;
    		sleep 10000;
    	}
    	end;
    }

     

    • Upvote 1
  5. prontera,229,310,3	script	Ingacio#daily_mass	123,{
    	if(gettime(DT_DAYOFWEEK) == SATURDAY){
    		if(daily_mass < 3){
    			mes "The Daily Mass will start again tomorrow.";
    			close;
    		} else {
    			if(daily_mass < 4){ .@reward = 1; } else
    			if(daily_mass < 6){ .@reward = 2; } else
    			if(daily_mass == 7){ .@reward = 3; }
    			mes "Here is your reward for attending the daily mass.";
    			.@index = (.@reward - 1) * 2;
    			daily_mass = 0;
    			getitem .reward[.@index],.reward[.@index + 1];
    			end;
    		}
    	}
    	if(#daily_mass_cd > gettimetick(2)){
    		mes "Thank you for attending the mass today.";
    		mes "Come back again tomorrow.";
    		close;
    	}
    	if(gettime(HOUR) >= 19 && gettime(HOUR) <= 23){
    		mes "Thank you for attending the daily mass.";
    		mes "Please come back again tomorrow.";
    		if(gettime(DT_DAYOFWEEK) == SUNDAY){
    			daily_mass = 0;
    		}
    		daily_mass += 1;
    		#daily_mass_cd = gettimetick(2) + 18000;
    	} else {
    		mes "We are having the daily mass between 17:00~23:00.";
    	}
    	end;
    	
    OnHour19:
    	enablenpc strnpcinfo(0);
    	end;
    	
    OnHour23:
    	disablenpc strnpcinfo(0);
    	end;
    	
    OnInit:
    	setarray .reward, //= ITEM ID, AMOUNT
    	501,5,  //= <4 DAY REWARD
    	502,5, //= <6 DAY REWARD
    	503,7; //= 7 DAY REWARD
    end;
    }

    Haven't tested it yet, do try it. As for no dual  there are several scripts out there for that like this one. Just add your map.

     

  6. -	script	mvp_point	-1,{
    	end;
    
    OnNPCKillEvent:
    	if(!getmonsterinfo(killedrid,MOB_MVPEXP) || inarray(.mvp_point, killedrid) == -1) end;
    	.@index = inarray(.mvp_point, killedrid) + 1;
    	if(!getcharid(1)){
    		#MVP_POINT += .mvp_point[.@index];
    		dispbottom "You got " + .mvp_point[.@index] + " MVP Points for killing " + getmonsterinfo(killedrid,MOB_NAME) +".";
    	} else {
    		getmapxy(.@map$,.@x,.@y,BL_PC);
    		getpartymember getcharid(1),1;
    		getpartymember getcharid(1),2;
    		for(.@i = 0; .@i < $@partymembercount; .@i++){
    			if(attachrid($@partymemberaid[.@i])){
    				if(strcharinfo(3) == .@map$ && isloggedin($@partymemberaid[.@i], $@partymembercid[.@i])){
    					.@member_id[getarraysize(.@member_id)] =  $@partymembercid[.@i];
    				}
    				detachrid;
    			}
    		}
    		.@size = getarraysize(.@member_id);
    		if(.@size == 1){
    			#MVP_POINT += .mvp_point[.@index];
    			dispbottom "You got " + .mvp_point[.@index] + " MVP Points for killing " + getmonsterinfo(killedrid,MOB_NAME) +".";
    			end;
    		}
    		if(.@size > .mvp_point[.@index] || .@size == .mvp_point[.@index]){
    			.@point = 1;
    		} else {
    			.@point = (.mvp_point[.@index]/.@size);
    		}
    		for(.@i = 0;  .@i < .@size; .@i++){
    			setd "#MVP_POINT",getd("#MVP_POINT") + .@point,.@member_id[.@i];
    			dispbottom "You got " + .mvp_point[.@index] + " MVP Points for killing " + getmonsterinfo(killedrid,MOB_NAME) +".",0x00FF00,.@member_id[.@i];
    		}			
    	}		
    end;
    	
    OnInit:
    	setarray .mvp_point, //= MVP ID, Points
    	1039,10,
    	1046,20,
    	1112,30;
    end;
    }

    I haven't tested it yet. Just add all your MVP ID, Point on the array.

    • Upvote 1
×
×
  • Create New...