Jump to content

Yoona

Members
  • Posts

    567
  • Joined

  • Last visited

Posts posted by Yoona

  1. I think you can change this line at the script if you want TCG card for example to summon MVP

     

           set .group1itemid, 674; // item id use for summon any Group 1 monster - 674 - mithil coin
            set .group1itemamount, 0; // amount of items to summon a Group 1 monster
    
    

     edit the 674 into the ID or Item you want to...

     

     

     

     

     

     

    By the way, i hope my suggestion is correct :)

  2. It keeps on showing the default ( Welcome to YourNameHere Ragnarok Online ) even after I edited the content of notice.html

    make sure that " Capital Letters " and " Small Letters " is correct 

     

    like notice.html and Notice.html 

     

    It keeps on showing the default ( Welcome to YourNameHere Ragnarok Online ) even after I edited the content of notice.html

     

    maybe you didn't put the one that you edited.

  3. I have a Test Breaker Script and i dont own this

     

    zhakastia,82,69,5	script	Emperium Breaker	743,{
    
    // What Map will be used
    set .Map$,"job3_arch01";
    // How many Top Breaker will be Recorded
    set .TopRank,10;
    // Message to Inform Players while inside the Room
    setarray .Instruction$[0],
    			"Please Listen here carefully.",
    			"This is Emperium Breaker Test Room , which is use to test your Breaking Time.",
    			"Prepare youself...and do your best to Break it...",
    			"Okay that's All i want to say , get Ready yourself and it will Start Soon.";
    			
    			
    while( 1 ){
    mes "This is Emperium Breaker test Room. ";
    mes "You are able to calculate your Emperium Breaking Speed in this Room.";
    next;
    switch( select( ( getmapusers( .Map$ ) )?"^FF0000NOT Available":"^0000FFAvailable^000000",
    				"Top ^FF0000"+.TopRank+"^000000 Breaker Ladder",
    				( getgmlevel() < 90 )?"":"^FF0000[GM]^000000 Reset Room",
    				( getgmlevel() < 90 )?"":"^FF0000[GM]^000000 Reset Ladder" )){
    Case 1:
    	if( getmapusers( .Map$ ) ){
    		mes "There is another player inside it now.";
    		next;
    		break;
    		}
    	warp .Map$,0,0;
    	killmonster .Map$,"All";
    //	removemapflag .Map$,mf_noskill;
    	donpcevent strnpcinfo(0)+"::OnReady";
    	end;
    Case 2:
    	mes "^ED1ADCLatest Record^000000 : "+LatestRecord/1000+"."+LatestRecord%1000+" Seconds.";
    	for( set .@i,0; .@i < .TopRank; set .@i,.@i + 1 ){
    		if( !$TopRankTime[.@i] ) break;
    		mes "^FF0000Top "+( .@i + 1 )+" : ^0000FF"+$TopName$[.@i]+" ";
    		mes "^FF0000Time Taken : ^ED1ADC[ "+$TopRankTime[.@i]/1000+"."+$TopRankTime[.@i]%1000+" Sec. ]^000000 ";
    	}
    	next;
    	break;
    
    Case 3:
    	mapannounce .Map$,"A GM has RESET the Breaker Test Room.",0,0x00FF00;
    	killmonster .Map$,"All";
    	sleep2 3000;
    	mapwarp .Map$,"prontera",156,175;
    	mes "Done Reset. and Player who are inside are warped out.";
    	next;
    	break;
    Case 4:	
    	switch( select( "^0000FFAll Player^000000:^FF0000One Player^000000" ) ){
    		Case 1:
    			deletearray $TopRankTime[0],getarraysize( $TopRankTime );
    			deletearray $TopName$[0],getarraysize( $TopName$ );
    			mes "RESETED WHOLE LADDER.";
    			break;
    		Case 2:
    			mes "Please input the ^FF0000EXACT NAME^000000 of player you want to delete.";
    			input .Name$;
    			for( set .@i,0; .@i < .TopRank; set .@i,.@i + 1 ){
    				if( .Name$ == $TopName$[.@i] ){
    					deletearray $TopName$[.@i],1;
    					deletearray $TopRankTime[.@i],1;
    					mes "Removed ^FF0000"+.Name$+"^000000 from the List.";
    				}
    			}
    		}
    	next;
    	break;
    	}
    }
    
    OnReady:
    sleep2 3000;
    for( set .@i,0; .@i < getarraysize( .Instruction$ ); set .@i,.@i + 1 ){
    	mapannounce .Map$,.Instruction$[.@i],0,0x00FF00;
    	sleep2 2500;
    	}
    for( set .@i,5; .@i > 0; set .@i,.@i - 1 ){
    	mapannounce .Map$,"Count Down : "+.@i+" Seconds.",0,0x00FF00;
    	sleep2 1000;
    	}
    //mapannounce .Map$,"Hit the Emperium Now and Skills Disabled.",0,0x00FF00;
    setmapflag .Map$,mf_noskill;
    monster .Map$,29,27,"Breaker Test",1288,1,strnpcinfo(0)+"::OnBreaked";
    set .Record,0;
    sleep2 500;
    initnpctimer;
    end;
    
    OnTimer600000:
    if( !mobcount( .Map$,strnpcinfo(0)+"::OnBreaked" ) ) end;
    	mapannounce .Map$,"You spent too much time. i think you are AFK , so you are out.",0,0xED1ADC;
    	sleep2 3000;
    	mapwarp .Map$,"prontera",156,175;
    	stopnpctimer;
    end;
    
    OnBreaked:
    	set .Time,getnpctimer(0);
    	copyarray .@tempName$[0],$TopName$[0],getarraysize( $TopName$ );
    	copyarray .@tempRecord[0],$TopRankTime[0],getarraysize( $TopRankTime[0] );
    	set LatestRecord,.Time;
    	for( set .@i,0; .@i < .TopRank; set .@i,.@i + 1 ){
    		if( .Time < $TopRankTime[.@i] || !$TopRankTime[.@i] ){
    				set $TopRankTime[.@i],.Time;
    				set $TopName$[.@i],strcharinfo(0);
    				copyarray $TopRankTime[.@i + 1],.@tempRecord[0],getarraysize( .@tempRecord );
    				copyarray $TopName$[.@i + 1],.@tempName$[0],getarraysize( .@tempName$ );
    			announce "[ "+strcharinfo(0)+" ] Achieved Top "+( .@i + 1 )+" in Emperium Breaking with "+.Time/1000+"."+.Time%1000+" Seconds !!!",bc_all,0xED1ADC;
    			break;
    			}
    		}
    	stopnpctimer;
    	announce "Current Time Taken : "+.Time/1000+"."+.Time%1000+" Seconds. ",bc_self,0xED1ADC;
    //	removemapflag .Map$,mf_noskill;
    	sleep2 5000;
    	mapwarp .Map$,"prontera",156,175;
    	end;
    }
    	
    job3_arch01	mapflag	nocommand	50
    job3_arch01	mapflag	gvg	on
    job3_arch01	mapflag	gvg_castle
    job3_arch01	mapflag	monster_noteleport
    job3_arch01	mapflag	nosave	SavePoint
    
    • Upvote 2
  4. Im Looking for a Refine Function like this :

     

    1. Up to +7 Refinement is safe and any kind of Equipment(Except Weapons)
    
    2. when refining to +8 +9 +10 They need to pay 1 TCG
    
    3. Have De - Refine
    
    4. Any Weapons will automatically refine to + 10
    

     

    /kis2  Thanks in advance !

     

  5. Hello Everyone, i just want to add a Chat Room with this WOE Script that everyone can see what time the WOE will start or just a Pub that says WOE Time Information

     

     

    //===== rAthena Script =======================================
    //= Euphy's WOE Controller
    //===== By: ==================================================
    //= Euphy
    //===== Current Version: =====================================
    //= 1.5
    //===== Compatible With: =====================================
    //= rAthena SVN r16958+
    //===== Description: =========================================
    //= A controller for War of Emperium designed for
    //= simplicity and ease of use.
    //= Many concepts taken from ToastOfDoom's script,
    //= and "rewards" function originally by Goddameit.
    //===== Additional Comments: =================================
    //= Be sure to disable the default agit controllers!
    //== npc\guild\agit_controller.txt
    //== npc\guild2\agit_start_se.txt
    //============================================================
    
    // Information NPC
    //============================================================
    prontera,162,175,3	script	WOE Information	602,{
    	doevent "WOE_CONTROL::OnMenu";
    	end;
    OnAgitStart:
    	while(agitcheck()) {
    		specialeffect EF_BEGINSPELL6;
    		sleep 425;
    	}
    	end;
    }
    
    // Script Core
    //============================================================
    -	script	WOE_CONTROL	-1,{
    function Disp_Owner; function Add_Zero;
    
    OnInit:
    
    // -----------------------------------------------------------
    //  Configuration settings.
    // -----------------------------------------------------------
    
    	set .CastleWarp,0;		// 1: Always enable all castle warps. | 0: Warp only to active castles.
    	set .AutoKick,1;		// Automatically kick players from inactive castles during WOE? (1:yes / 0:no)
    	set .NoOwner,0; 		// Automatically kick players from unconquered castles outside of WOE? (1:yes / 0:no)
    	set .ExitWarp,0;		// Warp all players from castles when WOE ends? (1:yes / 0:no)
    	set .GMAccess,99;		// GM level required to access Session Manager.
    
    // -----------------------------------------------------------
    //  Reward options.
    // -----------------------------------------------------------
    //  [1] Enable rewards.
    //  [2] Mail all rewards.
    //      - If not set, players receive items in their inventory.
    //      - Only ONE item can be sent via mail, plus Zeny.
    //      - Note that offline players do NOT receive rewards.
    //  [4] Only reward Guild Masters.
    //      - If not set, all guild members are rewarded.
    //      - If mailing is enabled (option 2), offline Guild Masters WILL receive rewards.
    //  [8] Duplicate IP check.
    //      - Members in a guild with the same IP address are not rewarded.
    //      - If Guild Masters is enabled (option 4), this feature is not used.
    // -----------------------------------------------------------
    
    	// Combine values as needed (e.g. 1|8 = 1+8 = 9).
    	set .Options, 1|8;
    
    	// Rewards per castle.
    	// -- when given directly: <itemID>,<amount>{,<itemID>,<amount>,...}
    	// -- via mail (option 2): <itemID>,<amount>,<Zeny>
    	setarray .Reward[0],14001,1;
    
    // -----------------------------------------------------------
    //  Constants (leave this section alone).
    // -----------------------------------------------------------
    
    	setarray .Castles$[0],
    		"prtg_cas01","prtg_cas02","prtg_cas03","prtg_cas04","prtg_cas05",
    		"payg_cas01","payg_cas02","payg_cas03","payg_cas04","payg_cas05",
    		"gefg_cas01","gefg_cas02","gefg_cas03","gefg_cas04","gefg_cas05",
    		"aldeg_cas01","aldeg_cas02","aldeg_cas03","aldeg_cas04","aldeg_cas05",
    		"arug_cas01","arug_cas02","arug_cas03","arug_cas04","arug_cas05",
    		"schg_cas01","schg_cas02","schg_cas03","schg_cas04","schg_cas05";
    	setarray .EndLabel$[0],"ar01","ar02","ar03","ar04","ar05","sc01","sc02","sc03","sc04","sc05";
    	setarray .Days$[0],"Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday";
    	setarray .Regions$[0],"Prontera","Payon","Geffen","Aldebaran","Arunafeltz","Schwaltzvalt";
    	setarray .Map$[0],"prt_gld","pay_gld","gef_fild13","alde_gld","aru_gld","sch_gld";
    	setarray .MapX[0],134,240,153,111,208,121,295,317,140,204,214,308,143,193,305,48, 95,142,239,264,158,83, 68,299,292,293,288, 97,137, 71;
    	setarray .MapY[0], 65,128,137,240,240,233,116,293,160,266, 75,240,240,278, 87,83,249, 85,242, 90,272,47,155,345,107,100,252,196, 90,315;
    
    // -----------------------------------------------------------
    
    	set .Size, getarraysize($WOE_CONTROL);
    	if (.AutoKick || .NoOwner)
    		for(set .@i,0; .@i<30; set .@i,.@i+1) {
    			setmapflag .Castles$[.@i], mf_loadevent;
    			setd "."+.Castles$[.@i], .@i;
    		}
    	if (!agitcheck() && !agitcheck2()) sleep 4000;
    	set .Init,1;
    
    OnMinute00:
    	freeloop(1);
    	if (agitcheck() || agitcheck2()) {
    		for(set .@i,0; .@i<.Size; set .@i,.@i+4)
    			if (gettime(4) == $WOE_CONTROL[.@i] && gettime(3) == $WOE_CONTROL[.@i+2]) {
    			OnWOEEnd:
    				announce "The War Of Emperium is over!",bc_all|bc_woe;
    				AgitEnd; AgitEnd2;
    				sleep 1000;
    				for(set .@j,0; .@j<30; set .@j,.@j+1) {
    					if (.Active[0]&(1<<.@j)) Disp_Owner(.Castles$[.@j],1);
    					if (.ExitWarp) maprespawnguildid .Castles$[.@j],0,3;
    				}
    				if (.Options&1 && .Active[0] && .ForceEnd != 2) callsub OnReward, .Active[0];
    				deletearray .Active[0],2;
    				if (.ForceEnd) { set .ForceEnd,0; end; }
    				break;
    			}
    	}
    	if ((!agitcheck() && !agitcheck2()) || .Init) {
    		if (!agitcheck() && !agitcheck2()) set .Init,0;
    		for(set .@i,0; .@i<.Size; set .@i,.@i+4)
    			if (gettime(4) == $WOE_CONTROL[.@i] && gettime(3) >= $WOE_CONTROL[.@i+1] && gettime(3) < $WOE_CONTROL[.@i+2]) {
    				deletearray .Active[0],2;
    				set .Active[0], $WOE_CONTROL[.@i+3];
    				if (.Init) { AgitEnd; AgitEnd2; }
    				else announce "The War Of Emperium has begun!",bc_all|bc_woe;
    				sleep 1000;
    				AgitStart; AgitStart2;
    				for(set .@j,0; .@j<30; set .@j,.@j+1) {
    					if (.Active[0]&(1<<.@j)) {
    						if (!.Init) Disp_Owner(.Castles$[.@j],0);
    						set .Active[1], .Active[1] | (1<<((.@j/5)+1));
    					} else {
    						if (.@j<20) {
    							donpcevent "Agit#"+.Castles$[.@j]+"::OnAgitEnd";
    							killmonster .Castles$[.@j], "Agit#"+.Castles$[.@j]+"::OnAgitBreak";
    						} else {
    							donpcevent "Manager#"+.Castles$[.@j]+"::OnAgitEnd2";
    							killmonster .Castles$[.@j], "Steward#"+.EndLabel$[.@j-20]+"::OnStartArena";
    						}
    					}
    				}
    				break;
    			}
    	}
    	set .Init,0;
    	end;
    
    function Disp_Owner {
    	set .@o, getcastledata(getarg(0),1);
    	if (.@o) announce "The ["+getcastlename(getarg(0))+"] castle "+((getarg(1))?"has been conquered":"is currently held")+" by the ["+getguildname(.@o)+"] guild.",bc_all|bc_woe;
    	else announce "The ["+getcastlename(getarg(0))+"] castle is currently unoccupied.",bc_all|bc_woe;
    	return;
    }
    function Add_Zero {
    	return ((getarg(0)<10)?"0":"")+getarg(0)+(getarg(1,0)?".":":")+"00";
    }
    
    OnReward:
    	set .@sql$, ((.Options&4)?"position = 0":"online = 1");
    	if (.Options&2) set .@str$,gettimestr("%B %d, %Y",21);
    	freeloop(1);
    	for(set .@i,0; .@i<30; set .@i,.@i+1)
    		if (getarg(0)&(1<<.@i)) {
    			set .@gid, getcastledata(.Castles$[.@i],1);
    			if (!.@gid) continue;
    			set .@size, query_sql("SELECT account_id,char_id FROM `guild_member` WHERE guild_id = '"+.@gid+"' AND "+.@sql$,.@aid,.@cid);
    			for(set .@j,0; .@j<.@size; set .@j,.@j+1) {
    				if (.Options&8 && !(.Options&4)) {
    					set .@ip$, replacestr(getcharip(.@aid[.@j]),".","a");
    					if (getd(".@ip_"+.@i+"_"+.@ip$)) continue;
    					setd ".@ip_"+.@i+"_"+.@ip$,1;
    				}
    				if (.Options&2) {
    					query_sql("INSERT INTO `mail` (send_name,dest_id,title,message,nameid,amount,identify,zeny,time) VALUES ("+
    					          "'no-reply',"+.@cid[.@j]+",'** Siege Reward: "+getcastlename(.Castles$[.@i])+" **',"+
    					          "'Brave one,% % Congratulations!% Your guild has successfully occupied% territory in the War of Emperium on% "+.@str$+".% % % % % [ Your reward is attached. ]',"+
    					          .Reward[0]+","+.Reward[1]+",0,"+.Reward[2]+",UNIX_TIMESTAMP(NOW()))");
    					if (!getd(".@str_"+.@cid[.@j]) && isloggedin(.@aid[.@j],.@cid[.@j])) {
    						setd ".@str_"+.@cid[.@j],1;
    						message rid2name(.@aid[.@j]),"You've got mail! Please re-login to update your mailing list.";
    					}
    				} else if (isloggedin(.@aid[.@j])) {
    					for(set .@k,0; .@k<getarraysize(.Reward); set .@k,.@k+2)
    						getitem .Reward[.@k], .Reward[.@k+1], .@aid[.@j];
    					message rid2name(.@aid[.@j]),"You have been rewarded for conquering "+getcastlename(.Castles$[.@i])+".";
    				}
    			}
    		}
    	if (.Options&2) query_sql("UPDATE `mail` SET message = REPLACE(message,'%',CHAR(13)) WHERE send_name = 'no-reply'");
    	return;
    
    OnPCLoadMapEvent:
    	if (!compare(strcharinfo(3),"g_cas")) end;
    	if (((.AutoKick && .Active[0]) || (.NoOwner && !getcastledata(strcharinfo(3),1))) && !(.Active[0]&(1<<getd("."+strcharinfo(3))))) {
    		if (getcharid(2) && getcastledata(strcharinfo(3),1) == getcharid(2)) end;
    		sleep2 1000;
    		message strcharinfo(0), getcastlename(strcharinfo(3))+" is currently inactive.";
    		sleep2 5000;
    		if (compare(strcharinfo(3),"g_cas")) warp "SavePoint",0,0;
    	}
    	end;
    
    OnMenu:
    while(1) {
    	mes "[WOE Information]";
    	if (agitcheck() || agitcheck2()) {
    		if (.Active[0]) {
    			for(set .@i,0; .@i<.Size; set .@i,.@i+4)
    				if (gettime(4) == $WOE_CONTROL[.@i] && gettime(3) >= $WOE_CONTROL[.@i+1] && gettime(3) < $WOE_CONTROL[.@i+2]) {
    					set .@i, $WOE_CONTROL[.@i+2];
    					break;
    				}
    			mes "The War of Emperium is ^0055FFactive^000000 until ^FF0000"+Add_Zero(.@i)+"^000000 in the following regions:";
    			mes " ";
    			for(set .@i,0; .@i<6; set .@i,.@i+1)
    				if (.Active[1]&(1<<(.@i+1))) mes " > ^777777"+.Regions$[.@i]+"^000000";
    		} else
    			mes "The War of Emperium is ^0055FFactive^000000.";
    	} else {
    		for(set .@i,0; .@i<.Size; set .@i,.@i+4)
    			if ((gettime(4) == $WOE_CONTROL[.@i] && gettime(3) <= $WOE_CONTROL[.@i+1]) || gettime(4) < $WOE_CONTROL[.@i]) {
    				setarray .@time[0],$WOE_CONTROL[.@i],$WOE_CONTROL[.@i+1];
    				break;
    			}
    		if (!getarraysize(.@time))
    			setarray .@time[0],$WOE_CONTROL[0],$WOE_CONTROL[1];
    		mes "The War of Emperium is ^777777inactive^000000.";
    		if (.Size) {
    			mes " ";
    			mes "The next session will begin";
    			mes "on ^0055FF"+.Days$[.@time[0]]+"^000000 at "+Add_Zero(.@time[1])+"^000000.";
    		}
    	}
    	next;
    	switch(select(""+((.CastleWarp || .Active[1])?" ~ Warp to castles...":"")+": ~ Check schedule...: ~ View castle owners...:"+((getgmlevel()<.GMAccess || !getgmlevel())?"":" ~ Manage sessions...")+": ~ ^777777Cancel^000000")) {
    	case 1:
    		if (.CastleWarp) set .@clr$,"^0055FF";
    		set .@menu$,"";
    		for(set .@i,0; .@i<6; set .@i,.@i+1) {
    			if (.CastleWarp || .Active[1]&(1<<(.@i+1)))
    				set .@menu$, .@menu$+" ~ "+((.Active[1]&(1<<(.@i+1)))?.@clr$:"^777777")+.Regions$[.@i]+" Castles^000000";
    			set .@menu$, .@menu$+":";
    		}
    		set .@i, select(.@menu$)-1;
    		set .@menu$,"";
    		for(set .@j,.@i*5; .@j<(.@i*5)+5; set .@j,.@j+1) {
    			if (.CastleWarp || .Active[0]&(1<<.@j))
    				set .@menu$, .@menu$+" ~ "+((.Active[0]&(1<<.@j))?.@clr$:"^777777")+getcastlename(.Castles$[.@j])+"^000000";
    			set .@menu$, .@menu$+":";
    		}
    		set .@j, select(.@menu$)-1;
    		warp .Map$[.@i],.MapX[(.@i*5)+.@j],.MapY[(.@i*5)+.@j];
    		close;
    	case 2:
    		mes "[Schedule]";
    		if (.Size) {
    			freeloop(1);
    			for(set .@i,0; .@i<.Size; set .@i,.@i+4) {
    				mes "> ^FF0000"+.Days$[$WOE_CONTROL[.@i]]+" ("+Add_Zero($WOE_CONTROL[.@i+1])+"-"+Add_Zero($WOE_CONTROL[.@i+2])+")^000000";
    				for(set .@j,0; .@j<30; set .@j,.@j+1)
    					if ($WOE_CONTROL[.@i+3]&(1<<.@j)) mes "  ~ "+getcastlename(.Castles$[.@j])+" ^777777("+.Castles$[.@j]+")^000000";
    				if (.@i+4 < .Size) mes " ";
    			}
    			freeloop(0);
    		} else
    			mes "No times are configured.";
    		next;
    		break;
    	case 3:
    		mes "[Castle Ownership]";
    		for(set .@i,0; .@i<6; set .@i,.@i+1) {
    			set .@k, .@i*5;
    			mes "> ^FF0000"+.Regions$[.@i]+"^000000";
    			for(set .@j,.@k; .@j<(.@k+5); set .@j,.@j+1) { 
    				set .@t, getcastledata(.Castles$[.@j],1);
    				mes "  ~ "+getcastlename(.Castles$[.@j])+": "+((.@t)?"^0055FF"+getguildname(.@t):"^777777unoccupied")+"^000000";
    			}
    			if (.@i < 5) mes " ";
    		}
    		next;
    		break;
    	case 4:
    	while(1) {
    		mes "[Session Manager]";
    		mes "There are ^0055FF"+(.Size/4)+" session(s)^000000 configured.";
    		mes "What would you like to do?";
    		next;
    		switch(select(" ~ Add a session...: ~ Delete a session...: ~ Reload settings...:"+((agitcheck() || agitcheck2())?" ~ End WOE session...":"")+": ~ ^777777Go back^000000")) {
    		case 1:
    			mes "[New Session]";
    			if (.Size > 127) {
    				mes "You have already reached the maximum of 32 sessions.";
    				next;
    				break;
    			}
    			mes "Select a day.";
    			next;
    			set .@Day, select(" ~ "+implode(.Days$,": ~ "))-1;
    			mes "[New Session]";
    			mes "Select a start time for ^0055FF"+.Days$[.@Day]+"^000000.";
    			next;
    			set .@menu$,"";
    			for(set .@i,0; .@i<23; set .@i,.@i+1)
    				set .@menu$, .@menu$+" ~ "+Add_Zero(.@i,1)+":";
    			set .@Start, select(.@menu$)-1;
    			mes "[New Session]";
    			mes "Select an end time for ^0055FF"+.Days$[.@Day]+"^000000.";
    			next;
    			set .@menu$,"";
    			for(set .@i,.@Start+1; .@i<24; set.@i,.@i+1)
    				set .@menu$, .@menu$+" ~ "+Add_Zero(.@i,1)+":";
    			set .@End, select(.@menu$)+.@Start;
    			for(set .@i,0; .@i<.Size; set .@i,.@i+4)
    				if (.@Day == $WOE_CONTROL[.@i] &&
    				   ((.@Start >= $WOE_CONTROL[.@i+1] && .@Start < $WOE_CONTROL[.@i+2]) ||
    				    (.@End > $WOE_CONTROL[.@i+1] && .@End <= $WOE_CONTROL[.@i+2]) ||
    				    (.@Start <= $WOE_CONTROL[.@i+1] && .@End >= $WOE_CONTROL[.@i+2]))) {
    					mes "[New Session]";
    					mes "The chosen times overlap with an existing session.";
    					next;
    					set .@d,1;
    					break;
    				}
    			if (.@d) { set .@d,0; break; }
    			set .@Castle,0;
    			while(1) {
    				mes "[New Session]";
    				mes "^0055FF"+.Days$[.@Day]+" ("+Add_Zero(.@Start)+"-"+Add_Zero(.@End)+")^000000";
    				mes " > Castles:";
    				if (!.@Castle)
    					mes "   ~ ^777777(none selected)^000000";
    				else for(set .@i,0; .@i<30; set .@i,.@i+1)
    					if (.@Castle&(1<<.@i)) mes "   ~ "+getcastlename(.Castles$[.@i])+" ("+.Castles$[.@i]+")";
    				next;
    				set .@menu$,((.@Castle)?" ~ ^FF0000Finished...^000000":"")+":";
    				for(set .@i,0; .@i<30; set .@i,.@i+1)
    					set .@menu$, .@menu$+" ~ "+((.@Castle&(1<<.@i))?"^0055FF":"")+getcastlename(.Castles$[.@i])+" ("+.Castles$[.@i]+")^000000:";
    				set .@i, select(.@menu$)-1;
    				if (.@i)
    					set .@Castle, .@Castle^(1<<(.@i-1));
    				else {
    					mes "[New Session]";
    					mes "Are you sure?";
    					next;
    					switch(select(" ~ ^0055FFAdd session...^000000: ~ Continue selecting castles...: ~ ^777777Cancel^000000")) {
    					case 1:
    						for(set .@i,0; .@i<.Size; set .@i,.@i+4)
    							if ((.@Day == $WOE_CONTROL[.@i] && .@End <= $WOE_CONTROL[.@i+1]) || .@Day < $WOE_CONTROL[.@i]) {
    								set .@d,1;
    								break;
    							}
    						if (!.@d) { set .@d,1; set .@i,.Size; }
    						copyarray $WOE_CONTROL[.@i+4], $WOE_CONTROL[.@i], .Size-.@i;
    						setarray $WOE_CONTROL[.@i], .@Day, .@Start, .@End, .@Castle;
    						set .Size, getarraysize($WOE_CONTROL);
    					case 3:
    						mes "[New Session]";
    						mes ((.@d)?"Session added.":"Cancelled.");
    						next;
    						set .@d,1;
    					case 2:
    						break;
    					}
    					if (.@d) { set .@d,0; break; }
    				}
    			}
    			break;
    		case 2:
    			mes "[Remove Session]";
    			if (!.Size) {
    				mes "There are no sessions configured.";
    				next;
    				break;
    			}
    			mes "Select a session to remove.";
    			next;
    			set .@menu$,"";
    			for(set .@i,0; .@i<.Size; set .@i,.@i+4)
    				set .@menu$, .@menu$+" ~ "+.Days$[$WOE_CONTROL[.@i]]+" ("+Add_Zero($WOE_CONTROL[.@i+1],1)+"-"+Add_Zero($WOE_CONTROL[.@i+2],1)+"):";
    			set .@menu$, .@menu$+" ~ ^777777Cancel^000000";
    			set .@i, select(.@menu$)-1;
    			if (.@i == (.Size/4)) break;
    			mes "[Remove Session]";
    			mes "Delete ^0055FF"+.Days$[$WOE_CONTROL[.@i*4]]+"'s^000000 session?";
    			mes "This action cannot be undone.";
    			next;
    			set .@j, select(" ~ ^FF0000Delete session...^000000: ~ ^777777Cancel^000000");
    			mes "[Remove Session]";
    			if (.@j == 2)
    				mes "Cancelled.";
    			else {
    				deletearray $WOE_CONTROL[.@i*4],4;
    				set .Size, getarraysize($WOE_CONTROL);
    				mes "Session deleted.";
    			}
    			next;
    			break;
    		case 3:
    			mes "[Reload Settings]";
    			mes "This will trigger all events related to new session configurations, if any.";
    			if (agitcheck() || agitcheck2()) {
    				mes " ";
    				mes "Be aware that this will disrupt the current WOE session.";
    			}
    			next;
    			set .@i, select(" ~ ^0055FFReload settings...^000000: ~ ^777777Cancel^000000");
    			mes "[Reload Settings]";
    			if (.@i == 2) mes "Cancelled.";
    			else {
    				set .Init,1;
    				donpcevent "WOE_CONTROL::OnMinute00";
    				mes "Variables have been re-initialized.";
    			}
    			next;
    			break;
    		case 4:
    			mes "[Force Agit End]";
    			if (!agitcheck() && !agitcheck2())  {
    				mes "WOE has already ended.";
    				next;
    				break;
    			}
    			mes "This command will safely execute all AgitEnd events.";
    			mes " ";
    			mes "Kill the current WOE session?";
    			next;
    			set .@i, select(" ~ ^FF0000End session...^000000:"+((.Options&1)?" ~ ^FF0000End session without rewards...^000000":"")+": ~ ^777777Cancel^000000");
    			mes "[Force Agit End]";
    			if (.@i == 3)
    				mes "Cancelled.";
    			else {
    				set .ForceEnd, .@i;
    				donpcevent "WOE_CONTROL::OnWOEEnd";
    				mes "WOE session terminated.";
    			}
    			next;
    			break;
    		case 5:
    			set .@d,1; break;
    		}
    		if (.@d) { set .@d,0; break; }
    		} break;
    	case 5:
    		close;
    	} }
    }
    

     

  6. - : means remove the line

    + : means add the line

     

    Search the line

    if ( getwaitingroomstate( 0, .rednpcname$ ) < .minplayer2start || getwaitingroomstate( 0, .bluenpcname$ ) < .minplayer2start ) end;
    

    etc..

     

    Thanks but another Problem

     

    The Pub for Red Team and Blue Team become 1/1

  7. -	if ( getwaitingroomstate( 0, .rednpcname$ ) < .minplayer2start || getwaitingroomstate( 0, .bluenpcname$ ) < .minplayer2start ) end;
    +	if ( getwaitingroomstate( 0, .rednpcname$ ) < .minplayer2start || getwaitingroomstate( 0, .bluenpcname$ ) < .minplayer2start ) {
    +		announce "Blue Team : "+ getwaitingroomstate( 0, .bluenpcname$ ) + "/" + .minplayer2start + ". Red Team : "+ getwaitingroomstate( 0, .rednpcname$ ) + "/" + .minplayer2start,0;
    +		end;
    +	}
    

     

    in what line should i put this one Capuche?

  8. I just want to put an Announcer on this npc, that do like this

     

    When Player go inside the Pub it will Announce Blue Team 5/6 To Play Battle Ground !

     

    the Script is here

    //Made by AnnieRuru
    //http://roscripts.go-forum.net/
    //An open site where you can share and download some helpful RO Scripts.
    //===================================================================
    -	script	custom_bg#control	-1,{
    OnInit:
    	set .minplayer2start, 5; // minimum player to start ... please do not set to 1
    	setarray .rewarditem,
    		7227, 1, // reward to the winning team
    		671, 5; // reward to the losing team
    	set .startingscore, 15; // score at start
    	set .eventlasting, 20*60; // event last 20 minutes or the system abort itself
    	set .red_cloth, 1; // color value from red clothing
    	set .blue_cloth, 2; // color value from blue clothing
    	set .grey_cloth, 3; // color value from grey clothing
    	end;
    OnStart:
    	if ( getwaitingroomstate( 0, .rednpcname$ ) < .minplayer2start || getwaitingroomstate( 0, .bluenpcname$ ) < .minplayer2start ) end;
    	.red = waitingroom2bg( "guild_vs3", 13,50, strnpcinfo(0)+"::OnredQuit", strnpcinfo(0)+"::OnredDead", .rednpcname$ );
    	copyarray .team1aid, $@arenamembers, $@arenamembersnum;
    	.team1count = .minplayer2start;
    	.blue = waitingroom2bg( "guild_vs3", 86,50, strnpcinfo(0)+"::OnblueQuit", strnpcinfo(0)+"::OnblueDead", .bluenpcname$ );
    	copyarray .team2aid, $@arenamembers, $@arenamembersnum;
    	.team2count = .minplayer2start;
    	delwaitingroom .rednpcname$;
    	delwaitingroom .bluenpcname$;
    	bg_warp .red, "guild_vs3", 13,50;
    	bg_warp .blue, "guild_vs3", 86,50;
    	.score[1] = .score[2] =.startingscore;
    	bg_updatescore "guild_vs3", .score[1], .score[2];
    	callsub L_setleader, 1;
    	callsub L_setleader, 2;
    	for ( .@i = 0; .@i < .minplayer2start; .@i++ ) {
    		attachrid .team1aid[.@i];
    		@clotes_color = getlook( look_clothes_color );
    		setlook look_clothes_color, ( .leader_aid[1] == getcharid(3) )? .grey_cloth : .red_cloth;
    	}
    	for ( .@i = 0; .@i < .minplayer2start; .@i++ ) {
    		attachrid .team2aid[.@i];
    		@clotes_color = getlook( look_clothes_color );
    		setlook look_clothes_color, ( .leader_aid[2] == getcharid(3) )? .grey_cloth : .blue_cloth;
    	}
    	sleep .eventlasting * 1000;
    	if ( .score[1] > .score[2] ) {
    		mapannounce "guild_vs3", "Red Team wins !", 0;
    		callsub L_reward, 1, 0;
    		callsub L_reward, 2, 2;
    	}
    	else if ( .score[1] < .score[2] ) {
    		mapannounce "guild_vs3", "Blue Team wins !", 0;
    		callsub L_reward, 2, 0;
    		callsub L_reward, 1, 2;
    	}
    	else {
    		mapannounce "guild_vs3", "Draw !", 0;
    		callsub L_reward, 1, 2;
    		callsub L_reward, 2, 2;
    	}
    	bg_warp .red, "invek",146,166;
    	bg_warp .blue, "invek",146,166;
    	bg_destroy .red;
    	bg_destroy .blue;
    	donpcevent .rednpcname$ +"::OnStart";
    	donpcevent .bluenpcname$ +"::OnStart";
    	.leader_aid[1] = .leader_aid[2] = 0;
    	for ( .@i = 0; .@i < .team1count; .@i++ ) {
    		attachrid .team1aid[.@i];
    		setlook look_clothes_color, @clotes_color;
    		@clotes_color = 0;
    	}
    	for ( .@i = 0; .@i < .team2count; .@i++ ) {
    		attachrid .team2aid[.@i];
    		setlook look_clothes_color, @clotes_color;
    		@clotes_color = 0;
    	}
    	end;
    L_reward:
    	for ( .@i = 0; .@i < getd(".team"+ getarg(0) +"count"); .@i++ )
    		getitem .rewarditem[ getarg(1) ], .rewarditem[ getarg(1) +1 ], getd(".team"+ getarg(0) +"aid["+ .@i +"]" );
    	return;
    OnredDead: callsub L_dead, 1;
    OnblueDead: callsub L_dead, 2;
    L_dead:
    	if ( .leader_aid[ getarg(0) ] != getcharid(3) )
    		.score[ getarg(0) ]--;
    	else {
    		callsub L_setleader, getarg(0);
    		.score[ getarg(0) ] -= 2;
    	}
    	bg_updatescore "guild_vs3", .score[1], .score[2];
    	if ( .score[ getarg(0) ] <= 0 )
    		awake strnpcinfo(0);
    	sleep2 1250;
    	percentheal 100,100;
    	end;
    OnredQuit: callsub L_quit, 1, .red;
    OnblueQuit: callsub L_quit, 2, .blue;
    L_quit:
    	percentheal 100, 100;
    	while ( getd( ".team"+ getarg(0) +"aid["+ .@i +"]" ) != getcharid(3) && .@i < getd(".team"+ getarg(0) +"count") ) .@i++;
    	deletearray getd( ".team"+ getarg(0) +"aid["+ .@i +"]" ), 1;
    	setd ".team"+ getarg(0) +"count", getd(".team"+ getarg(0) +"count") -1;
    	if ( .leader_aid[ getarg(0) ] == getcharid(3) )
    		callsub L_setleader, getarg(0);
    	setlook look_clothes_color, @clotes_color;
    	@clotes_color = 0;
    	if ( bg_get_data( getarg(1), 0 ) > 1 ) end;
    	.score[ getarg(0) ] = 0;
    	awake strnpcinfo(0);
    	end;
    L_setleader:
    	while ( ( .@tmp = getd( ".team"+ getarg(0) +"aid["+ rand( getd(".team"+ getarg(0) +"count") ) +"]" ) ) == playerattached() );
    	.leader_aid[ getarg(0) ] = .@tmp;
    	.@origin = playerattached();
    	attachrid .leader_aid[ getarg(0) ];
    	addtimer 1, strnpcinfo(0) +"::Onteam"+ getarg(0) +"leader";
    	attachrid .@origin;
    	return;
    Onteam1leader: callsub L_lead, 1, 548;
    Onteam2leader: callsub L_lead, 2, 549;
    L_lead:
    	while ( .leader_aid[ getarg(0) ] == getcharid(3) ) {
    		specialeffect2 getarg(1);
    		sleep2 1000;
    	}
    	end;
    }
    
    invek,125,211,5	script	Red Team	733,{
    	end;
    OnInit:
    	set getvariableofnpc( .rednpcname$, "custom_bg#control" ), strnpcinfo(0);
    OnStart:
    	waitingroom "Red Team", getvariableofnpc( .minplayer2start, "custom_bg#control" ) +1, "custom_bg#control::OnStart", getvariableofnpc( .minplayer2start, "custom_bg#control" );
    	end;
    }
    invek,132,208,3	script	Blue Team	734,{
    	end;
    OnInit:
    	set getvariableofnpc( .bluenpcname$, "custom_bg#control" ), strnpcinfo(0);
    OnStart:
    	waitingroom "Blue Team", getvariableofnpc( .minplayer2start, "custom_bg#control" ) +1, "custom_bg#control::OnStart", getvariableofnpc( .minplayer2start, "custom_bg#control" );
    	end;
    }
    guild_vs3	mapflag	battleground	2
    guild_vs3	mapflag	nosave	SavePoint
    guild_vs3	mapflag	nowarp
    guild_vs3	mapflag	nowarpto
    guild_vs3	mapflag	noteleport
    guild_vs3	mapflag	nomemo
    guild_vs3	mapflag	nopenalty
    guild_vs3	mapflag	nobranch
    guild_vs3	mapflag	noicewall
    

     

  9. On my server, its Non Unfro SET and Stats, and then someone send me a request that + MDEF will immune you from Freeze and the Duration is too long.. i just want to change it to stable 2 seconds Freeze and remove MDEF resist on Freeze please, Help me rAthena Core Developers :( 

  10. He means the general Frozen duration. How can he reduce it..i've never actually reduce the Frozen duration but decrease the stats required to gain resistance from such effects.

     

     

    LUK & MDEF = Frozen

     

    On "status.conf"

     

    From

    pc_status_def_rate: 100

     

    To

    pc_status_def_rate: 120

     

    But if you use this method, every other status resistance influenced by Stats will be affected too. This means players can gain Stun Immunity by just having the right amount of Stats.

     

    i already did this, thanks by the way @a p :)

    @bump !

    @Bump ! Please

×
×
  • Create New...