Jump to content

ZelosAvalon

Members
  • Posts

    181
  • Joined

  • Last visited

  • Days Won

    1

Posts posted by ZelosAvalon

  1. My rate is 5x, so I must change: 100 per 500,150 per 1000 ? correct ?

    500 = 5x

    1000= 10x

    i really dont understand this script, I tried to put this event over the weekend, but it didn't work, he could pass me already configured for a server 5x?

  2. so I made the request to add the rankings this event already created: event_invasion.txt, i tried adding the line ranking but have had many errors.

    I already own the event of invasion, and would like to set the reward event for 3 players that kill more mobs receive the reward.

    jupe_ele,36,53,6	script	Event Invasion	105,{
    
    setarray .@mp$[1], "prontera", "morocc", "geffen", "payon", "alberta", "izlude", "aldebaran",
    "xmas (lutie)", "comodo", "yuno", "amatsu", "gonryun", "umbala", "niflheim", "louyang", "jawaii", "ayothaya",
    "einbroch", "hugel", "rachel", "veins", "moscovia", "midgard camp", "manuk", "splendide", "brasilis", "el dicastes",
    "mora", "dewata", "malangdo island", "malaya port", "eclage";
    
    setarray .mapflag_event, mf_nopvp, mf_nomobloot, mf_nobranch;
    
    
    // GM menu
    //It allows GMs Level 50 or more to Start and Stop invasions.
    
    if( getgmlevel() > .gm ) {
    	if( .count ) {
    		mes "[Event Invasion]";
    		mes "An invasion is in progress..";
    		mes "Location: " + .map_event$;
    		mes "^FF0000"+.count+"^000000 Monsters left";
    		mes " ";
    		mes "Stop invasion?";
    		if( select("No:Yes") ) close;
    		donpcevent "Event Invasion::onstop";
    		mes "Invasion stopped";
    		announce "The Invasion has been stopped by "+strcharinfo(0),bc_all;
    		close;
    	}
    
    	mes "[Event Invasion]";
    	mes "Please customize the Invasion event before starting it.";
    Main:
    	next;
    	mes "[Event Invasion]";
    	mes "MVP Item Drop:[^FF0000" + getitemname(.Item_ID) + "^000000]";
    	mes "Monsters Respawn:[^FF0000" + strmobinfo(1,.mob_ID) + "^000000]";
    	mes "Reward 1 place: [^FF0000" + getitemname(.gained[ 0 ]) + "^000000]";
    	mes "Reward 2 place: [^FF0000" + getitemname(.gained[ 1 ]) + "^000000]";
    	mes "Reward 3 place: [^FF0000" + getitemname(.gained[ 2 ]) + "^000000]";
    	mes "MVP Respawn:[^FF0000" + strmobinfo(1,.Mvp_ID) + "^000000]";
    	mes "Map Event will Start:[^FF0000"+.map_event$+"^000000]";
    
    	switch(select("Item [" + getitemname(.Item_ID) + "]",
    				"Monster [" + strmobinfo(1,.mob_ID) + "]",
    				"Reward for the first place [" + getitemname(.gained[ 0 ]) + "]",
    				"Reward for the second place [" + getitemname(.gained[ 1 ]) + "]",
    				"Reward for the third place [" + getitemname(.gained[ 2 ]) + "]",
    				"MVP [" + strmobinfo(1,.Mvp_ID) + "]",
    				"Select Map Event["+.map_event$+"]:Start Event")) {
    	case 1:
    		next;
    		mes "[Event Invasion]";
    		mes "Which item would you like the MVP to drop?";
    		mes "Please input the item ID:";
    		input .Item_ID;
    		goto Main;
    	case 2:
    		next;
    		mes "[Event Invasion]";
    		mes "Please input the monster ID:";
    		input .mob_ID;
    		goto Main;
    	case 3:
    		next;
    		mes "[Event Invasion]";
    		mes "Please input the first place will drop:";// ( here i will put id reward for the first place)
    		input .gained[ 0 ];
    		goto Main;
    	case 4:
    		next;
    		mes "[Event Invasion]";
    		mes "Please input the second place will drop:";//  ( here i will put id reward for the second place)
    		input .gained[ 1 ];
    		goto Main;
    	case 5:
    		next;
    		mes "[Event Invasion]";
    		mes "Please input the third place will drop:";//  ( here i will put id reward for the third place)
    		input .gained[ 2 ];
    		goto Main;
    	case 6:
    		next;
    		mes "[Event Invasion]";
    		mes "Please input the MVP ID:";
    		input .Mvp_ID;
    		goto Main;
    	case 7:
    		next;
    		mes "[Event Invasion]";
    		for ( set .@i, 1; .@i < getarraysize(.@mp$); set .@i, .@i + 1 )
    			set .@menuE$, .@menuE$ + .@mp$[.@i] + ":";
    		set .map_event$, .@mp$[select( .@menuE$ )];
    		mes "Map Event : "+.map_event$;
    
    		for( .@i = 0; .@i < getarraysize( .mapflag_event ); .@i++ )
    			setmapflag .map_event$, .mapflag_event[ .@i ];
    		goto Main;
    	case 8:
    		next;
    		mes "[Event Invasion]";
    		if( !.Item_ID || !.mob_ID || !.Mvp_ID || .map_event$ == "" || !.gained[ 0 ] || !.gained[ 1 ] || !.gained[ 2 ] ) {
    			mes "Miss some conditions.";
    			goto Main;
    		}
    		mes "Starting the event now...";
    		close2;
    		goto onstart;
    	}
    }
    
    // If a player clicks the NPC, it displays:
    mes "[Event Invasion]";
    mes .count+" monster have invaded "+.map_event$+"!";
    close;
    
    		/////////////////////////
    		//The actual NPC Script//
    		/////////////////////////
    
    //OnMinute50: // Change this to your liking ( automatic start )
    onstart:
    if( .count ) end;
    set .count, .number_mob;
    sleep2 1000;
    announce "[ Rune-Midgard Guard ]: We have trouble here in the town " + .map_event$ + "!", bc_all;
    sleep2 5000;
    announce "[ Rune-Midgard Guard ]: Everyone, we need your help to get rid of these monsters!", bc_all;
    monster .map_event$,0,0,"--ja--",.mob_ID, .count, strnpcinfo(0)+"::OnMyMobDead";
    initnpctimer;
    end;
    
    
    
    
    OnMyMobDead: //When a mob is killed
    .count--;
    for( .@i = 0; .@i < getarraysize( .Data ); .@i++ )
    	if( getcharid(3) == .Data[ .@i ] ) {
    		.Rank[ .@i ]++;
    		break;
    	}
    
    if( .@i == getarraysize( .Data ) ) {
    	.Data[ .@i ] = getcharid(3);
    	.Rank[ .@i ]++;
    }
    
    if( !.count ) {
    	announce "[ Rune-Midgard Guard ]: The MvP " + strmobinfo( 1,.Mvp_ID ) + " has spawned in " + .map_event$ + "!", bc_all;
    	monster .map_event$,0,0,"--ja--",.Mvp_ID,1,"Event Invasion::OnSpecialMobDead";
    	for( .@j = .number_mob; .@j > 0; .@j-- )
    		for( .@i = 0; .@i < getarraysize( .Rank ); .@i++ )
    			if( .Rank[ .@i ] == .@j ) {
    				getitem .gained[ .@W ], 1, .Data[ .@i ];
    				.@W++;
    				if( .@W == getarraysize( .gained ) ) goto OnInit;
    			}
    } else
    	announce "["+.count+"/250] " + strmobinfo(1,.mob_ID) + " left.",bc_map;
    end;
    
    
    OnSpecialMobDead:
    announce strcharinfo(0)+" has fought off the Invasion and has been awarded a worthy prize!", bc_all;
    getitem .Item_ID, 1; //Change the [5] to the amount you wish to hand out.
    
    onstop:
    killmonster .map_event$,"Event Invasion::OnSpecialMobDead";
    for( .@i = 0; .@i < getarraysize( .mapflag_event ); .@i++ )
    	removemapflag .map_event$, .mapflag_event[ .@i ];
    
    OnTimer1805000:	// 30 minutes later, kills all the mobs.
    killmonster .map_event$,"Event Invasion::OnMyMobDead";
    set .count, 0;
    stopnpctimer;
    
    OnInit:
    deletearray .Data[ 0 ], getarraysize( .Data );
    deletearray .Rank[ 0 ], getarraysize( .Rank );
    //- Config
    //-- Number of mob spawn
    .number_mob = 250;
    //-- GM Level to access the GM Menu.
    set .gm, 50;
    end;
    }
    

    tested the event today and only the player who killed the MVP received the reward.

    the 3 players that killed more monsters didn't receive his reward.

    i need help for fix it, I really like this event a lot on my server, I'm much time planning this event, but I'm not very good at configure scripting .

  3. so I made the request to add the rankings this event already created: event_invasion.txt, i tried adding the line ranking but have had many errors.

    I already own the event of invasion, and would like to set the reward event for 3 players that kill more mobs receive the reward.

    example:

    main event menu:

    
    case 1:
    mes "Which item would you like the MVP to drop?";
    mes "Please input the item ID:";
    input .ItemID;
    goto Main;
    case 2:
    mes "Please input the monster ID:";
    input .MobID;
    goto Main;
    case 3:
    mes "Please input the first place will drop:"; ( here i will put id reward for the first place)
    input .ItemID1;
    goto Main;
    case 5:
    mes "Please input the second place will drop:";  ( here i will put id reward for the second place)
    input .ItemID2;
    goto Main;
    case 6:
    mes "Please input the third place will drop:";  ( here i will put id reward for the third place)
    input .ItemID3;
    goto Main;
    case 7:
    mes "Please input the MVP ID:";
    input .MvpID;
    goto Main;
    case 8:
    for ( set .@i, 1; .@i < getarraysize(.@mp$); set .@i, .@i + 1 )
    set .@menuE$, .@menuE$ + .@mp$[.@i] + ":";
    set .Map$, .@mp$[select( .@menuE$ )];
    mes "Map Event : "+.Map$;
    goto Main;
    case 9:
    mes "Starting the event now...";
    close2;
    goto onstart;
    

  4. script ranking mob kill -

    when event begin:

    the 3 players who kill more mobs earned rewards,

    and the rewards are different for each position:

    1st place - getitem 8032,1;

    2nd place - getitem 8033,1;

    3rd place - getitem 8034,1;

    The event will have many people participating, only 3 that killed more earned rewards.

  5. My rate is 5x, so I must change: 100 per 500,150 per 1000 ? correct ?

    500 = 5x

    1000= 10x

    is as it should be?

    for a 5x server ?

    
    //===== rAthena Script =======================================
    //= Floating Rates
    //===== Support ==============================================
    //= Vist: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk/doc/script_commands.txt
    //= to know how to change the time settings
    //===== By: ================================================== 
    //= Mysterious
    //===== Current Version: =====================================
    //= 1.5
    //===== Compatible With: =====================================
    //= rAthena SVN
    //===== Description: =========================================
    //= EXP Doubles on Weekends
    //===== Other Information: ===================================
    // Every weekend, starting on Fridays, players will gain
    // double EXP. The script will announce when Double EXP has
    // begun so that players know.
    //===== TODO: ================================================
    // 1) Optimize script a little more
    // 2) Make script more friendly
    //===== Additional Comments: =================================
    //= v1.0 - Intitial Re-release [Mysterious]
    //= v1.1 - Made it so that it starts on Friday, ends on Sunday [Mysterious]
    //= v1.2 - Optimized entire script [Mysterious]
    //= v1.3 - Made it more friendly [Mysterious]
    //= v1.4 - Optimized [Mysterious]
    //= v1.5 - Adjusted a few things [Mysterious]
    //============================================================
    - script FloatingRates -1,{
    
    
    OnInit:
    //Note: You can always set a standard exp. rate or set it as a rand
    set $@brate,rand(500,1000); // Change the value here for your Base Experience
    set $@jrate,rand(500,1000); // Change the value here for your Job Experience
    // =========================
    OnClock0000:
    if(gettime(4)==4  || gettime(4)==5  || gettime(4)==6 ) { // Friday, Saturday, Sunday
    //Base Experience
    setbattleflag("base_exp_rate",$@brate);
    //Job Experience
    setbattleflag("job_exp_rate",$@jrate);
    // Reload the database
    atcommand "@reloadmobdb"; 
    }
    end;
    }
    
    // We will announce about the EXP rates every 01 Minute of every Hour so that player's know what's going on
    - script FloatingAnn -1,{
    
    OnMinute01:
    if(gettime(4)==4 || gettime(4)==5 || gettime(4)==6 ) { // Friday, Saturday, Sunday
    announce "Double EXP is currently in affect with 1."+($@brate-500)+"x/1."+($@jrate-500)+"x rates!",bc_all,0xFF6060;
    }
    
    end;
    }
    
    - script FloatingAnn#1 -1,{
    
    OnClock1159:
    if(gettime(4) == 0) { // On Sunday at 11:59pm server time, Double EXP event will end
    announce "Weekend Double EXP has finished!",bc_all,0xFF6060;
    setbattleflag("base_exp_rate", 500); // Set this rates back to your regular server's rates
    setbattleflag("job_exp_rate", 500 ); // Set this rates back to your regular server's rates
    atcommand "@reloadmobdb";
    }
    
    end;
    }
    

  6. Avoid multi switch <<

    //=============================================
    //== Event Manager  ======
    //== Version: =================================
    //== 1.0
    //== by Zelos: ================================
    //==
    //=============================================
    
    prontera,165,155,2	script	EventManager	804,{
    
    mes "[Event manager]";
    mes "Hello "+strcharinfo(0)+"!";
    mes "I'm the Event Manager.";
    mes "You give me Event Coins, i reward you. It's that simple!";
    next;
    switch( select("1 - Tell me more about Event coins and rewards",
    				"2 - I want to convert my Event Coins",
    				"3 - I want to receive my rewards",
    				"4 - Well,it was nice meeting you") ) {
    	case 1:
    		mes "[Event Manager]";
    		mes "There are 3 types of Event Coins you may win from Events:";
    		mes " - "+getitemname(8032);
    		mes " - "+getitemname(8033);
    		mes " - "+getitemname(8034);
    		next;
    		mes "[Event manager]";
    		mes "The exchange rates between Event Coin are:";
    		mes " 1 Golden Coin = 5 Silver Coins";
    		mes " 1 Silver Coin = 5 Bronze Coins";
    		next;
    		mes "[Event mMnager]";
    		mes "Here is the list rewards you may receive from your Event Coins:";
    		mes "( Note that in this list, we have: GC = Golden Coins, SC = Silver Coins and BC = Bronze Coins )";
    		next;
    		mes "[Event Manager]";
    		mes "1.[10000] Zeny for 1 BC]";
    		mes "2.[10]Yggdrasil Seeds for 2 BC]";
    		mes "3.[10]Yggdrasil Berry for 2 SC]";
    		close;
    	case 2:
    		mes "[Event Manager]";
    		mes "Remeber the conversion rates:";
    		mes " 1 Golden Coin = 5 Silver Coins";
    		mes " 1 Silver Coin = 5 Bronze Coins";
    		mes "so, which type of conversion would you like to do?";
    		next;
    		switch(select("1-Gold Coin => Silver Coin","2-Silver Coin => Bronze Coin","3-Bronze Coin => Silver Coin","4-Silver Coin => Golden Coin","5-Nothing for now...")){
    			case 1:
    				mes "[Event Manager]";
    				mes "How many Golden Coins you want convert to Silver?";
    				input .@sc;
    				next;
    				if(countitem(8032) < .@sc){
    					mes "[Event Manager]";
    					mes "You don't have enough Golden Coins.";
    					close;
    				}
    				delitem 8032,.@sc;
    				mes "[Event Manager]";
    				mes "Thank you for choosing RagnaRebirth that luck be with you in future events, and you can win many Coins, and exchange with beautiful items.";
    				getitem 8033,(.@sc*5);
    				close;
    			case 2:
    				mes "[Event Manager]";
    				mes "How many Silver Coins you want convert to Bronze?";
    				input .@sc;
    				next;
    				if(countitem(8033)<.@sc){
    					mes "[Event Manager]";
    					mes "You don't have enough Silver Coins.";close;
    				}
    				delitem 8033,.@sc;
    				mes "[Event Manager]";
    				mes "Thank you for choosing RagnaRebirth that luck be with you in future events, and you can win many Coins, and exchange with beautiful items.";
    				getitem 8034,(.@sc*5);
    				close;
    			case 3:
    				mes "[Event Manager]";
    				mes "How many Bronze Coins do you want converto to Silver?";
    				input .@sc;
    				next;
    				if ( countitem(8034) < 5 || countitem(8034) < .@sc ) {
    					mes "[Event Manager]";
    					mes "You don't have enough Bronze Coins to convert.";
    					close;
    				}
    				delitem 8034, ( .@sc - .@sc%5 );
    				mes "[Event Manager]";
    				mes "Thank you for choosing RagnaRebirth that luck be with you in future events, and you can win many Coins, and exchange with beautiful items.";
    				getitem 8033,(.@sc/5);
    				close;
    			case 4:
    				mes "[Event Manager]";
    				mes "How many Silver Coins do you want to convert to Golden Coins?";
    				input .@sc;
    				next;
    				if ( countitem(8033) < 5 || countitem(8033) < .@sc ) {
    					mes "[Event Manager]";
    					mes "You don't have enough Silver Coins.";
    					close;
    				}
    				delitem 8033, ( .@sc - .@sc%5 );
    				mes "[Event Manager]";
    				mes "Thank you for choosing RagnaRebirth that luck be with you in future events, and you can win many Coins, and exchange with beautiful items.";
    				getitem 8032,(.@sc/5);
    				close;
    			case 5:
    				mes "[Event Manager]";
    				mes "Ok, no problem.";
    				close;
    		}
    	case 3:
    		mes "[Event Manager]";
    		mes "Here is the rewards you may receive from your Event Coins:";
    		mes "( Note that in this list, we have: GC = Golden Coins, SC = Silver Coins and BC = Bronze Coins )";
    		next;
    		switch(select("1.[10000] Zeny for 1 BC","2.[10]Yggdrasil Seeds for 2 BC","3.[10]Yggdrasil Berry for 2 SC")){
    			case 1:
    				mes "[Event Manager]";
    				mes "You want to trade 1 BC for 10000 Zeny?";
    				next;
    				switch(select("yes","no")){
    					case 1:
    						if(countitem(8034) < 1) goto nocoin;
    						delitem 8034,1;
    						mes "[Event Manager]";
    						mes "Thank you for choosing RagnaRebirth that luck be with you in future events, and you can win many Coins, and exchange with more zeny.";
    						set Zeny,Zeny+10000;
    						close;
    					case 2:
    						mes "[Event Manager]";
    						mes "Ok, back when you want to change something";
    						close;
    				}
    			case 2:
    				mes "[Event Manager]";
    				mes "You want to trade 2 BC for 10 Ygg Seed?";
    				next;
    				switch(select("yes","no")){
    					case 1:
    						if(countitem(8034) < 2) goto nocoin;
    						delitem 8034,2;
    						mes "[Event Manager]";
    						mes "Thank you for choosing RagnaRebirth that luck be with you in future events, and you can win many Coins, and exchange with more items.";
    						getitem 608,10;
    						close;
    					case 2:
    						mes "[Event Manager]";
    						mes "Ok, back when you want to change something";
    						close;
    				}
    			case 3:
    				mes "[Event Manager]";
    				mes "You want to trade 2 SC for 10 Ygg Berry?";
    				next;
    				switch(select("yes","no")){
    					case 1:
    						if(countitem(8033) < 2) goto nocoin;
    						delitem 8034,2;
    						mes "[Event Manager]";
    						mes "Thank you for choosing RagnaRebirth that luck be with you in future events, and you can win many Coins, and exchange with more items.";
    						getitem 607,10;
    						close;
    					case 2:
    						mes "[Event Manager]";
    						mes "Ok, back when you want to change something";
    						close;
    				}
    		}
    	case 4:
    		mes "[Event Manager]";
    		mes "Ok, back when you want to change something";
    		close;
    }
    nocoin:
    mes "[Event Manager]";
    mes "You don't have enough Event Coins to obtain this reward";
    close;
    }
    

    I already said that I love you? LOOOL

    Working 100% ty very much!!!!!

    thanks all for help NPC working now!

  7. i get this erro [Error]: Missing 1 right curlys at file 'npc/custom/ragnarebirth/event_manager-zelos.txt', line '169'.

    
    //=============================================
    //== Event Manager  ======
    //== Version: =================================
    //== 1.0
    //== by Zelos: ================================
    //==
    //=============================================
    
    prontera,165,155,2 script EventManager 804,{
    
    mes "[Event manager]";
    mes "Hello "+StrCharInfo(0)+"!";
    mes "I'm the Event Manager.";
    mes "You give me Event Coins, i reward you. It's that simple!";
    next;
    switch(select("1 - Tell me more about Event coins and rewards","2 - I want to convert my Event Coins","3 - I want to receive my rewards","4 - Well,it was nice meeting you")){
    case 1:
    mes "[Event Manager]";
    mes "There are 3 types of Event Coins you may win from Events:";
    mes " - "+getitemname(8032);
    mes " - "+getitemname(8033);
    mes " - "+getitemname(8034);
    next;
    mes "[Event manager]";
    mes "The exchange rates between Event Coin are:";
    mes " 1 Golden Coin = 5 Silver Coins";
    mes " 1 Silver Coin = 5 Bronze Coins";
    next;
    mes "[Event mMnager]";
    mes "Here is the list rewards you may receive from your Event Coins:";
    mes "( Note that in this list, we have: GC = Golden Coins, SC = Silver Coins and BC = Bronze Coins )";
    next;
    mes "[Event Manager]";
    mes "1.[10000] Zeny for 1 BC]";
    mes "2.[10]Yggdrasil Seeds for 2 BC]";
    mes "3.[10]Yggdrasil Berry for 2 SC]";
    close;
    case 2:
    mes "[Event Manager]";
    mes "Remeber the conversion rates:";
    mes " 1 Golden Coin = 5 Silver Coins";
    mes " 1 Silver Coin = 5 Bronze Coins";
    mes "so, which type of conversion would you like to do?";
    next;
    switch(select("1-Gold Coin => Silver Coin","2-Silver Coin => Bronze Coin","3-Bronze Coin => Silver Coin","4-Silver Coin => Golden Coin","5-Nothing for now...")){
     case 1:
     mes "[Event Manager]";
     mes "How many Golden Coins you want convert to Silver?";
     input .sc;
     next;
     if(countitem(8032) < .sc){
     mes "[Event Manager]";
     mes "You don't have enough Golden Coins.";
     close;
     }
     delitem 8032,.sc;
     mes "[Event Manager]";
     mes "Thank you for choosing RagnaRebirth that luck be with you in future events, and you can win many Coins, and exchange with beautiful items.";
     getitem 8033,(.sc*5);
     close;
     case 2:
     mes "[Event Manager]";
     mes "How many Silver Coins you want convert to Bronze?";
     input .sc;
     next;
     if(countitem(8033)<.sc){
     mes "[Event Manager]";
     mes "You don't have enough Silver Coins.";close;
     }
     delitem 8033,.sc;
     mes "[Event Manager]";
     mes "Thank you for choosing RagnaRebirth that luck be with you in future events, and you can win many Coins, and exchange with beautiful items.";
     getitem 8034,(.sc*5);
     close;
     case 3:
     mes "[Event Manager]";
     mes "How many Bronze Coins do you want converto to Silver?";
     input .sc;
     next;
     if (countitem(8034)<.sc) {
     mes "[Event Manager]";
     mes "You don't have enough Bronze Coins.";
     close;
     }
     delitem 8034,(.sc);
     mes "[Event Manager]";
     mes "Thank you for choosing RagnaRebirth that luck be with you in future events, and you can win many Coins, and exchange with beautiful items.";
     getitem 8033,(.sc/5);
     close;
     case 4:
     mes "[Event Manager]";
     mes "How many Silver Coins do you want to convert to Golden Coins?";
     input .sc;
     next;
    if (countitem(8033)<.sc) {
     mes "[Event Manager]";
     mes "You don't have enough Silver Coins.";
     close;
     }
     delitem 8033,(.sc);
     mes "[Event Manager]";
     mes "Thank you for choosing RagnaRebirth that luck be with you in future events, and you can win many Coins, and exchange with beautiful items.";
     getitem 8032,(.sc*/5);
     close;
     case 5:
     mes "[Event Manager]";
     mes "Ok, no problem.";
     close;
     }
    case 3:
    mes "[Event Manager]";
    mes "Here is the rewards you may receive from your Event Coins:";
    mes "( Note that in this list, we have: GC = Golden Coins, SC = Silver Coins and BC = Bronze Coins )";
    next;
    switch(select("1.[10000] Zeny for 1 BC","2.[10]Yggdrasil Seeds for 2 BC","3.[10]Yggdrasil Berry for 2 SC")){
     case 1:
     mes "[Event Manager]";
     mes "You want to trade 1 BC for 10000 Zeny?";
     next;
     switch(select("yes","no")){
      case 1:
      if(countitem(8034) < 1) goto nocoin;
      delitem 8034,1;
      mes "[Event Manager]";
      mes "Thank you for choosing RagnaRebirth that luck be with you in future events, and you can win many Coins, and exchange with more zeny.";
      set Zeny,Zeny+10000;
      close;
      case 2:
      mes "[Event Manager]";
      mes "Ok, back when you want to change something";
      close;
      }
     case 2:
     mes "[Event Manager]";
     mes "You want to trade 2 BC for 10 Ygg Seed?";
     next;
     switch(select("yes","no")){
      case 1:
      if(countitem(8034) < 2) goto nocoin;
      delitem 8034,2;
      mes "[Event Manager]";
      mes "Thank you for choosing RagnaRebirth that luck be with you in future events, and you can win many Coins, and exchange with more items.";
      getitem 608,10;
      close;
      case 2:
      mes "[Event Manager]";
      mes "Ok, back when you want to change something";
      close;
      }
     case 3:
     mes "[Event Manager]";
     mes "You want to trade 2 SC for 10 Ygg Berry?";
     next;
     switch(select("yes","no")){
      case 1:
      if(countitem(8033) < 2) goto nocoin;
      delitem 8034,2;
      mes "[Event Manager]";
      mes "Thank you for choosing RagnaRebirth that luck be with you in future events, and you can win many Coins, and exchange with more items.";
      getitem 607,10;
      close;
      case 2:
      mes "[Event Manager]";
      mes "Ok, back when you want to change something";
      close;
      }
      }
    case 4:
    mes "[Event Manager]";
    mes "Ok, back when you want to change something";
    close;
    }
    nocoin:
    mes "[Event Manager]";
    mes "You don't have enough Event Coins to obtain this reward";
    close;
    }
    

    Working ! thanks but this line getitem 8033,(.sc/5); dont work, i need to getitem example : if i put .sc= 10 silver i will get .sc=10/5 = 2

    who is this script for divide ? does not exist? or / divide is not considered? tried to put: getitem 8033,(.sc*0,2); but dont work too =(

    Help me please!

    best regards Zelos

    Try to replace this :

    .sc*5;

    Into :

    .@coins

    Actually im still downloading my test server. And cannot try this script. Im bored reading script.

    Working ! but this line getitem 8033,(.sc/5); dont work, i need to getitem example : if i put .sc= 10 silver i will get .sc=10/5 = 2

    who is this script for divide ? does not exist? or / divide is not considered? tried to put: getitem 8033,(.sc*0,2); but dont work too =(

    Help me please!

    best regards Zelos

  8. i need help for edit this event: event_invasion-zelos.txt , event working 100% but i need to implement ranking event.

    example:

    the player to kill more monsters get the .ItemID1

    the second player to kill more monsters get the item .ItemID2

    the third player to kill more monsters get the item .ItemID3

    drop of the MVP will go to the player who killed the MVP .ItemID ( <- this it ok i just need implement first second and third place for get rewards when event finish will automatically receive the rewards! )

    
    jupe_ele,36,53,6 script Event Invasion 105,{
    
       set .gm,50;//GM Level to access the GM Menu. Default: 50
    setarray .@mp$[1], "prontera", "morocc", "geffen", "payon", "alberta", "izlude", "aldebaran", "xmas (lutie)", "comodo", "yuno", "amatsu", "gonryun", "umbala", "niflheim", "louyang", "jawaii", "ayothaya", "einbroch", "hugel", "rachel", "veins", "moscovia", "midgard camp", "manuk", "splendide", "brasilis", "el dicastes", "mora", "dewata", "malangdo island", "malaya port", "eclage";
    // GM menu
    //It allows GMs Level 50 or more to Start and Stop invasions.
    
    if (getgmlevel()>.gm) {
    if (.mobs_left) {
    mes "[Event Invasion]";
    mes "An invasion is in progress..";
    mes "Location: " + .Map$;
    mes "^FF0000"+.mobs_left+"^000000 Monsters left";
    mes " ";
    mes "Stop invasion?";
    if(select("No:Yes")==1) close;
    donpcevent "Event Invasion::onstop";
    mes "Invasion stopped";
    announce "The Invasion has been stopped by "+strcharinfo(0),bc_all;
    close;
    }
    
    mes "[Event Invasion]";
    mes "Please customize the Invasion event before starting it.";
    Main:
    next;
    mes "[Event Invasion]";
    mes "MVP Item Drop:[" + getitemname(.ItemID) + "]";
    mes "first place Drop:[" + getitemname(.ItemID1) + "]";
    mes "Second place Drop:[" + getitemname(.ItemID2) + "]";
    mes "third place Drop:[" + getitemname(.ItemID3) + "]";
    mes "Monsters Respawn:[" + strmobinfo(1,.MobID) + "]";
    mes "MVP Respawn:[" + strmobinfo(1,.MvpID) + "]";
    mes "Map Event will Start:["+.Map$+"]";
    switch(select("Rewards:Monster [" + strmobinfo(1,.MobID) + "]:MVP [" + strmobinfo(1,.MvpID) + "]:Select Map Event["+.Map$+"]:Start Event")) {
    case 1:
    mes "Which item would you like to drop?";
    mes "Please input the MVP item Drop ID:;
    input .ItemID;
    next;
    mes "Please input the first place item ID:";
    input .ItemID1;
    next;
    mes "Please input the Second place item ID:";
    input .ItemID2;
    next;
    mes "Please input the third place item ID:";
    input .ItemID3;
    
    goto Main;
    case 2:
    mes "Please input the monster ID:";
    input .MobID;
    goto Main;
    case 3:
    mes "Please input the MVP ID:";
    input .MvpID;
    goto Main;
    case 4:
    for ( set .@i, 1; .@i < getarraysize(.@mp$); set .@i, .@i + 1 )
    set .@menuE$, .@menuE$ + .@mp$[.@i] + ":";
    set .Map$, .@mp$[select( .@menuE$ )];
    mes "Map Event : "+.Map$;
    goto Main;
    case 5:
    mes "Starting the event now...";
    close2;
    goto onstart;
    }
    }
    
    // If a player clicks the NPC, it displays:
    mes "[Event Invasion]";
    mes .mobs_left+" have invaded "+.Map$[.rand_map]+"!";
    close;
    
    /////////////////////////
    //The actual NPC Script//
    /////////////////////////
    
    //OnMinute50: // Change this to your liking ( automatic start )
    onstart:
    if( .mobs_left ) end;
    set .mobs_left, 1;
    sleep2 1000;
    announce "[ Rune-Midgard Guard ]: We have trouble here in the town " + .Map$ + "!", bc_all;
    sleep2 5000;
    announce "[ Rune-Midgard Guard ]: Everyone, we need your help to get rid of these monsters!", bc_all;
    monster .Map$,0,0,"--ja--",.MobID,250,"Event Invasion::OnMyMobDead";
    set .mobs_left, 250;
    initnpctimer;
    end;
    
    
    onstop:
    killmonster .Map$,"Event Invasion::OnSpecialMobDead";
    OnTimer1805000: // 30 minutes later, kills all the mobs.
    killmonster .Map$,"Event Invasion::OnMyMobDead";
    set .mobs_left, 0;
    stopnpctimer;
    end;
    
    OnMyMobDead: //When a mob is killed
    set .mobs_left, .mobs_left-1;
    if (.mobs_left==0) {
    announce "[ Rune-Midgard Guard ]: The " + strmobinfo(1,.MvpID) + " has spawned in " + .Map$ + "!", bc_all;
    monster .Map$,0,0,"--ja--",.MvpID,1,"Event Invasion::OnSpecialMobDead";
    } else
    announce "["+.mobs_left+"/250] " + strmobinfo(1,.MobID) + " left.",bc_map;
    end;
    
    OnSpecialMobDead:
    announce strcharinfo(0)+" has fought off the Invasion and has been awarded a worthy prize!", bc_all;
    getitem .ItemID,1; //Change the [5] to the amount you wish to hand out.
    end;
    }
    

  9. mes "How many Silver Coins do you want to get?";
     input .sc*5;( here u will input number coin u have example: if you have 10 silver coins( note: 5 silver coins = 1 golden coin ) and input here 10 silver u will get 2 golden coins! )
    

    
    
    if(countitem(8034<(.sc*5)) (<-here will check if I have the number of coins that I said in the "input" ) {mes "[Event Manager]";mes "You don't have enough Bronze Coins.";close;}
    delitem 8034,(.sc*5);(<-here will delete the number of coins that I said in the "input" )
    

    getitem 8032,.sc; (<-here will receive the number of coins that I said in the"input / 5" )( note: 5 silver coins = 1 golden coin ) ( if i put 5 silver on"input" here i will get 5 / 5 = 1 golen or if i put 10 silver on "input" here i will get 10 / 5 = 2 golden ) )
    

    i dont know who i can edit it!

  10. Hello Zelos, Do you have the screenshots of the error?

    Kindly post some screenshots for fast assistance.

    the npc didn't start! the structure of the npc's that, but dont work!

    I take long to do all this because I am newbie and did not work!

    help me please!

    check this npc for me.

    i dont know who i can put for work this npc!

    best regards. Zelos

  11. You can always try this. People told me it's working and there isn't problems with it yet. :>

    my server rates is 5x who i can configure this script part:

    set $@brate,rand(100,150); // Change the value here for your Base Experience

    set $@jrate,rand(100,150); // Change the value here for your Job Experience

    100 and 150 ?

    I have to modify?

    Check this thread to help you.

    100 = 1x

    150 = 1.5x

    My rate is 5x, so I must change: 100 per 500,150 per 1000 ? correct ?

  12. i really need help on this script event manager will trade my event coins for another event coins and items!

    but i'm newbie on scripts and need help, this script dont work =(

    txt file : event_manager-zelos.txt

    
    //=============================================
    //== Event Manager  ======
    //== Version: =================================
    //== 1.0
    //== by Zelos: ================================
    //==
    //=============================================
    prontera,165,155,2 script Event manager 804,{
    mes "[Event manager]";
    mes "Hello "+StrCharInfo(0)+"!";
    mes "I'm the Event Manager.";
    mes "You give me Event Coins, i reward you. It's that simple!";
    next;
    
    switch(select("1 - Tell me more about Event coins and rewards:2 - I want to convert my Event Coins:3 - I want to receive my rewards:4 - Well,it was nice meeting you"))
    
    case 1:
    mes "[Event Manager]";
    mes "There are 3 types of Event Coins you may win from Events:";
    mes " - "+getitemname(8032);
    mes " - "+getitemname(8033);
    mes " - "+getitemname(8034);
    next;
    mes "[Event manager]";
    mes "The exchange rates between Event Coin are:";
    mes " 1 Golden Coin = 5 Silver Coins";
    mes " 1 Silver Coin = 5 Bronze Coins";
    next;
    mes "[Event mMnager]";
    mes "Here is the list rewards you may receive from your Event Coins:";
    mes "( Note that in this list, we have: GC = Golden Coins, SC = Silver Coins and BC = Bronze Coins )";
    next;
    mes "[Event Manager]";
    mes "1.[10000] Zeny for 1 BC]";
    mes "2.[10]Yggdrasil Seeds for 2 BC]";
    mes "3.[10]Yggdrasil Berry for 2 SC]";
    mes "4."";
    mes "5."";
    }
    goto Main;
    
    case 2:
    mes "[Event Manager]";
    mes "Remeber the conversion rates:";
    mes " 1 Golden Coin = 5 Silver Coins";
    mes " 1 Silver Coin = 5 Bronze Coins";
    next;
    mes "so, which type of conversion would you like to do?";
    
    switch(select("1-Silver Coin => Golden Coin:2-Bronze Coin => Silver Coin:3-Silver Coin => Bronze Coin:4-Golden Coin => Silver Coin:5-Nothing for now..."))
    
    case 2-1:
    {
    mes "[Event Manager]";
    mes "How many Silver Coins do you want to get from Golden Coins ?:";
    input .sc;  
    next;  
    { if(countitem(8033) >= .sc)
    delitem 8033,.sc;
    mes "[Event Manager]";
    mes "Thank you for choosing RagnaRebirth that luck be with you in future events, and you can win many Coins, and exchange with beautiful items.";
    getitem 8032,(.sc/5);
    close;
    }
    case 2-2:
    {
    mes "[Event Manager]";
    mes "How many Silver Coins do you want to get from Golden Coins ?:";
    input .sc;  
    next;  
    { if(countitem(8033) >= .sc)
    delitem 8033,.sc;
    mes "[Event Manager]";
    mes "Thank you for choosing RagnaRebirth that luck be with you in future events, and you can win many Coins, and exchange with beautiful items.";
    getitem 8032,(.sc/5);
    close;
    }
    case 2-3:
    {
    mes "[Event Manager]";
    mes "How many Silver Coins do you want to get from Golden Coins ?:";
    input .sc;  
    next;  
    { if(countitem(8033) >= .sc)
    delitem 8033,.sc;
    mes "[Event Manager]";
    mes "Thank you for choosing RagnaRebirth that luck be with you in future events, and you can win many Coins, and exchange with beautiful items.";
    getitem 8032,(.sc/5);
    close;
    }
    case 2-4:
    {
    mes "[Event Manager]";
    mes "How many Silver Coins do you want to get from Golden Coins ?:";
    input .sc;  
    next;  
    { if(countitem(8033) >= .sc)
    delitem 8033,.sc;
    mes "[Event Manager]";
    mes "Thank you for choosing RagnaRebirth that luck be with you in future events, and you can win many Coins, and exchange with beautiful items.";
    getitem 8032,(.sc/5);
    close;
    }
    case 2-5:
    {
    mes "[Event Manager]";
    mes "Ok, no problem.";
    close;
    }
    case 3:
    mes "[Event Manager]";
    mes "Here is the rewards you may receive from your Event Coins:";
    mes "( Note that in this list, we have: GC = Golden Coins, SC = Silver Coins and BC = Bronze Coins )";
    next;
    
    switch(select("1.[10000] Zeny for 1 BC:2.[10]Yggdrasil Seeds for 2 BC:3.[10]Yggdrasil Berry for 2 SC"))
    
    case 3-1:
    
    mes "[Event Manager]";
    mes "You want to trade 1 BC for 10000 Zeny?";
    switch(select("yes:no"))
    
    case 3-1-1(yes):
    
    next;
    if(countitem(8034) < 1) goto nocoin;
    if(countitem(8034) >= 1)
    delitem 8034,1;
    mes "[Event Manager]";
    mes "Thank you for choosing RagnaRebirth that luck be with you in future events, and you can win many Coins, and exchange with more zeny.";
    set Zeny,Zeny+10000;
    close;
    
    case 3-1-2(no):
    mes "[Event Manager]";
    mes "Ok, back when you want to change something";
    close;
    
    case 3-2:
    
    mes "[Event Manager]";
    mes "You want to trade 2 BC for 10 Ygg Seed?";
    switch(select("yes:no"))
    
    case 3-2-1(yes):
    
    next;
    if(countitem(8034) < 2) goto nocoin;
    if(countitem(8034) >= 2)
    delitem 8034,2;
    mes "[Event Manager]";
    mes "Thank you for choosing RagnaRebirth that luck be with you in future events, and you can win many Coins, and exchange with more items.";
    getitem 608,10;
    close;
    
    case 3-2-2(no):
    mes "[Event Manager]";
    mes "Ok, back when you want to change something";
    close;
    
    case 3-3:
    
    mes "[Event Manager]";
    mes "You want to trade 2 SC for 10 Ygg Berry?";
    switch(select("yes:no"))
    
    case 3-3-1(yes):
    
    next;
    if(countitem(8033) < 2) goto nocoin;
    if(countitem(8033) >= 2)
    delitem 8034,2;
    mes "[Event Manager]";
    mes "Thank you for choosing RagnaRebirth that luck be with you in future events, and you can win many Coins, and exchange with more items.";
    getitem 607,10;
    close;
    
    
    case 3-3-2(no):
    mes "[Event Manager]";
    mes "Ok, back when you want to change something";
    close;
    
    
    nocoin:
    mes "[Event Manager]";
    mes "You don't have enough Event Coins to obtain this reward";
    close;
    

  13. You can always try this. People told me it's working and there isn't problems with it yet. :>

    my server rates is 5x who i can configure this script part:

    set $@brate,rand(100,150); // Change the value here for your Base Experience

    set $@jrate,rand(100,150); // Change the value here for your Job Experience

    100 and 150 ?

    I have to modify?

  14. the WOE in my server is starting automatically without my set, I put the npc WOE control so you can choose the days, and that's right!

    WOE but is also starting on different days, I believe that is an emulator configuration, how can I change it?

  15. nees help for mobs inside castles 1.0 still alive when WOE start,
    can you please rephrase that ?

    I would like the mobs were not dead! I want the mobs inside the castles when WOE begin!

    is the first WOE in my server, i want Mobs inside the castles!

  16. nees help for mobs inside castles 1.0 still alive when WOE start, cuz when agitstart u are kiked the castle and all mobs get @killmonster, and i dont know how i can stop it, please i really need help!

  17. i dont find this scritp : Receive 10% More Damage from Water Attack

    HELP ME PLEASE!

    bonus2 bSubEle,Ele_Water,-10;

    thanks ^^

    i dont find this scritp : Receive 10% More Damage from Water Attack

    HELP ME PLEASE!

    bonus2 bSubEle,Ele_Water,-10;

    bonus2 bSubEle,n,x;

    x% Damage reduction against element n.

    n: 0=Neutral, "1=Water", 2=Earth, 3=Fire, 4=Wind, 5=Poison, 6=Holy, 7=Dark, 8=Spirit, 9=Undead

    I dont understand, i can put "1" or "Ele_Water" ?

    example:

    bonus2 bSubEle,Ele_Water,-10;

    bonus2 bSubEle,1,-10;

  18. I need help to edit my event of invasion!

    I would be able to choose the day and time that the event will happen!

    I have two scripts that could help:

    the event invasion ( i want edit )

    
    jupe_ele,36,53,6 script Event Invasion 105,{
    
       set .gm,50;//GM Level to access the GM Menu. Default: 50
    setarray .@mp$[1], "prontera", "morocc", "geffen", "payon", "alberta", "izlude", "aldebaran", "xmas (lutie)", "comodo", "yuno", "amatsu", "gonryun", "umbala", "niflheim", "louyang", "jawaii", "ayothaya", "einbroch", "hugel", "rachel", "veins", "moscovia", "midgard camp", "manuk", "splendide", "brasilis", "el dicastes", "mora", "dewata", "malangdo island", "malaya port", "eclage";
    // GM menu
    //It allows GMs Level 50 or more to Start and Stop invasions.
    
    if (getgmlevel()>.gm) {
    if (.mobs_left) {
    mes "[Event Invasion]";
    mes "An invasion is in progress..";
    mes "Location: " + .Map$;
    mes "^FF0000"+.mobs_left+"^000000 Monsters left";
    mes " ";
    mes "Stop invasion?";
    if(select("No:Yes")==1) close;
    donpcevent "Event Invasion::onstop";
    mes "Invasion stopped";
    announce "The Invasion has been stopped by "+strcharinfo(0),bc_all;
    close;
    }
    
    mes "[Event Invasion]";
    mes "Please customize the Invasion event before starting it.";
    Main:
    next;
    mes "[Event Invasion]";
    mes "MVP Item Drop:[" + getitemname(.ItemID) + "]";
    mes "Monsters Respawn:[" + strmobinfo(1,.MobID) + "]";
    mes "MVP Respawn:[" + strmobinfo(1,.MvpID) + "]";
    mes "Map Event will Start:["+.Map$+"]";
    switch(select("Item [" + getitemname(.ItemID) + "]:Monster [" + strmobinfo(1,.MobID) + "]:MVP [" + strmobinfo(1,.MvpID) + "]:Select Map Event["+.Map$+"]:Start Event")) {
    case 1:
    mes "Which item would you like the MVP to drop?";
    mes "Please input the item ID:";
    input .ItemID;
    goto Main;
    case 2:
    mes "Please input the monster ID:";
    input .MobID;
    goto Main;
    case 3:
    mes "Please input the MVP ID:";
    input .MvpID;
    goto Main;
    case 4:
    for ( set .@i, 1; .@i < getarraysize(.@mp$); set .@i, .@i + 1 )
    set .@menuE$, .@menuE$ + .@mp$[.@i] + ":";
    set .Map$, .@mp$[select( .@menuE$ )];
    mes "Map Event : "+.Map$;
    goto Main;
    case 5:
    mes "Starting the event now...";
    close2;
    goto onstart;
    }
    }
    
    // If a player clicks the NPC, it displays:
    mes "[Event Invasion]";
    mes .mobs_left+" have invaded "+.Map$[.rand_map]+"!";
    close;
    
    /////////////////////////
    //The actual NPC Script//
    /////////////////////////
    
    OnMinute50: // Change this to your liking
    onstart:
    if( .mobs_left ) end;
    set .mobs_left, 1;
    sleep2 1000;
    announce "[ Rune-Midgard Guard ]: We have trouble here in the town " + .Map$ + "!", bc_all;
    sleep2 5000;
    announce "[ Rune-Midgard Guard ]: Everyone, we need your help to get rid of these monsters!", bc_all;
    monster .Map$,0,0,"--ja--",.MobID,250,"Event Invasion::OnMyMobDead";
    set .mobs_left, 250;
    initnpctimer;
    end;
    
    
    onstop:
    killmonster .Map$,"Event Invasion::OnSpecialMobDead";
    OnTimer1805000: // 30 minutes later, kills all the mobs.
    killmonster .Map$,"Event Invasion::OnMyMobDead";
    set .mobs_left, 0;
    stopnpctimer;
    end;
    
    OnMyMobDead: //When a mob is killed
    set .mobs_left, .mobs_left-1;
    if (.mobs_left==0) {
    announce "[ Rune-Midgard Guard ]: The " + strmobinfo(1,.MvpID) + " has spawned in " + .Map$ + "!", bc_all;
    monster .Map$,0,0,"--ja--",.MvpID,1,"Event Invasion::OnSpecialMobDead";
    } else
    announce "["+.mobs_left+"/250] " + strmobinfo(1,.MobID) + " left.",bc_map;
    end;
    
    OnSpecialMobDead:
    announce strcharinfo(0)+" has fought off the Invasion and has been awarded a worthy prize!", bc_all;
    getitem .ItemID,1; //Change the [5] to the amount you wish to hand out.
    end;
    }
    

    and woe controller, (which have the system date and time)

    
    //===== rAthena Script =======================================
    //= Euphy's WOE Controller
    //===== By: ==================================================
    //= Euphy
    //===== Current Version: =====================================
    //= 1.3b
    //===== Compatible With: =====================================
    //= rAthena SVN r16571+
    //===== 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
    //============================================================
    
    amatsu,217,92,5 script WOE Information 837,{ doevent "WOE_CONTROL::OnMenu"; end; OnAgitStart: while(agitcheck()) { misceffect 58; sleep 425; } end; }
    
    - script WOE_CONTROL -1,{
    function Disp_Owner; function Add_Zero;
    
    OnInit:
    // --------------------------------------------------------------------------------------------------------------------------
    
    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 .ExitWarp,0; // Warp all players from castles when WOE ends? (1:yes / 0:no)
    set .GMAccess,99; // GM level required to access Session Manager (cannot be 0)
    setarray .Reward[0],14001,1; // Reward for all members of conquering guilds, per castle: <ID>,<Count>{,...} (0 to disable)
    
    // --------------------------------------------------------------------------------------------------------------------------
    set .Size, getarraysize($WOE_CONTROL);
    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;
    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);
    else if (.AutoKick) removemapflag .Castles$[.@j], mf_loadevent;
    if (.ExitWarp) maprespawnguildid .Castles$[.@j],0,3; }
    if (.Reward[0] && .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 (.AutoKick) setmapflag .Castles$[.@j], mf_loadevent;
    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;
    freeloop(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:
    for(set .@i,0; .@i<30; set .@i,.@i+1)
    if (getarg(0)&(1<<.@i)) {
    set .@guild, getcastledata(.Castles$[.@i],1);
    if (.@guild) {
    deletearray .@acc[0], getarraysize(.@acc); deletearray .@char[0], getarraysize(.@char);
    query_sql("SELECT account_id,char_id FROM `guild_member` WHERE guild_id = '"+.@guild+"'", .@acc, .@char);
    for(set .@j,0; .@j<getarraysize(.@acc); set .@j,.@j+1)
    if (isloggedin(.@acc[.@j],.@char[.@j])) { 
    for(set .@k,0; .@k<getarraysize(.Reward); set .@k,.@k+2)
    getitem .Reward[.@k], .Reward[.@k+1], .@acc[.@j];
    message rid2name(.@acc[.@j]),"You have been rewarded for conquering "+getcastlename(.Castles$[.@i])+"."; } } }
    return;
    
    OnPCLoadMapEvent:
    if (!compare(strcharinfo(3),"g_cas")) end;
    sleep2 1000;
    message strcharinfo(0), getcastlename(strcharinfo(3))+" is inactive during this WOE session.";
    sleep2 5000;
    if (compare(strcharinfo(3),"g_cas")) warp "SavePoint",0,0;
    end;
    
    OnMenu:
    while(1) {
    mes "[WOE Information]";
    if (agitcheck() || agitcheck2()) {
    if (!.Size) 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(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 {
    set .@j,0; set .@k,0;
    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]) {
    set .@j, $WOE_CONTROL[.@i]; set .@k, $WOE_CONTROL[.@i+1]; break; }
    if (!.@j && !.@k) {
    set .@j, $WOE_CONTROL[0]; set .@k, $WOE_CONTROL[1]; }
    mes "The War of Emperium is ^777777inactive^000000.";
    if (.Size) {
    mes " ";
    mes "The next session will begin";
    mes "on ^0055FF"+.Days$[.@j]+"^000000 at "+Add_Zero(.@k)+"^000000."; } }
    next;
    switch(select(""+((.CastleWarp || .Active[1])?"Warp to castles...":"")+":Check schedule...:View castle owners...:"+((getgmlevel()<.GMAccess || !getgmlevel())?"":"Manage sessions...")+":^777777Cancel^000000")) {
    case 1:
    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)))?"^0055FF":"^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))?"^0055FF":"^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:"+((.Reward[0])?"^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; }
    }
    }
    

  19. when send BC and talk to the npc again, a message appears: "Sorry you have to wait for 3min.";

    }

    if(@Broadcast> gettimetick(2)) {

    next;

    mes @header$;

    mes "Sorry you have to wait for 3min.";

    close;

    I would like to know how to configure that when I talk to the npc, missing 2 minutes, the message appears: "Sorry you have to wait for 2min."; and also 1 min appears "Sorry you have to wait for 1min." when they pass the final 1 min message appears: Broadcasting Service Is Now Available. and send me to the beginning of the npc.

    Okay replace

    if(@Broadcast> gettimetick(2)) {
    next;
    
    mes @header$;
    mes "Service will be available in 3 minutes.";
    close;
    
    
    OnTimer60000:
    mes "Service will be available in 2 minutes.";
    close;
    
    
    OnTimer120000:
    mes "Service will be available in 1 minute.";
    close;
    
    
    OnTimer180000:
    mes "Broadcasting Service Is Now Available.";  
    close;
    
    }
    

    by

    if ( @Broadcast > gettimetick(2) ) {
    next;
    mes @header$;
    for ( set .@i, 3; .@i > 0; set .@i, .@i - 1 )
    	if ( @Broadcast > gettimetick(2) + (.@i-1)*60 ) {
    		mes "Service will be available in "+ .@i +" minute"+ ((.@i-1)?"s":"")+ ".";
    		break;
    	}
    close;
    }
    

    I dont want it to start automatically!

    Well just remove

    OnMinute50: // Change this to your liking
    

    and your event won't start automatically !

    ty ^^

×
×
  • Create New...