Jump to content

BeWan

Members
  • Posts

    403
  • Joined

  • Last visited

  • Days Won

    30

Posts posted by BeWan

  1. dice event. 

    event will start every 2 hours as requested
    prize set already as requested
    501,502,503,504,#event_points, 

    //##########################################################################
    //By: ____                    _      __        __           ____    _____  
    //   |    \   ___ __    __ _ | |     \ \      / /_  _   _  / ___\  / ____| 
    //   | ||  | / _ \\ \  / /| || |      \ \    / /| || \ | || | ___ | (___   
    //   | ||  ||  __/ \ \/ / | || |__     \ \/\/ / | ||  \| || |___|\ \___ \  
    // __|____/__\___|__\__/__|_||____|_____\_/\_/__|_||_|\__|_\_____/_____) | 
    //|_____________________________________________________________________/ 
    //                                                                         
    //##########################################################################
    //                                                                        
    //== Dice Event                                                            
    //                                                                         
    //##########################################################################
    //== Edited by King R													   
    //== Removed 30 Min Timer and added trigger NPC							   
    //== Able to set prize and amount via the NPC							   
    //== Added Mapflags														  
    //== Edited area warps                                                          
    //##########################################################################
    	
    -	script	Dice#disable	-1,{
    end;
    
    OnInit:
    	disablenpc "prtevent";
    	hideonnpc "Dice#evnt1";
    	end;
    	
    OnMinute120:
    	announce "Mr. Dice: The Dice event will be starting shortly.",0;
    	sleep2 10000;
    	announce "Mr. Dice: Those who want to play, please proceed to the glemior 235 327.",0;
    	sleep2 10000;
    	announce "Mr. Dice: After 1 Minute the Portal will close.",0;
    	sleep2 10000;
    	announce "Mr. Dice: Please go to the glemior 235 327 and enter the Warp Portal now if you want to join.",0;
    	enablenpc "prtevent";
    	initnpctimer;
    	end;
    
    OnTimer30000:
    	announce "Mr. Dice: Last 30 seconds.",0;
    	sleep2 5000;
    	announce "Mr. Dice: If you want to join please enter the Warp Portal in glemior 235 327.",0;
    	end;
    	
    OnTimer50000:
    	announce "Mr. Dice: Last 10 seconds.",0;
    	end;
    	
    OnTimer55000:
    	announce "Mr. Dice: 5.",0;
    	end;
    	
    OnTimer56000:
    	announce "Mr. Dice: 4.",0;
    	end;
    	
    OnTimer57000:
    	announce "Mr. Dice: 3.",0;
    	end;
    	
    OnTimer58000:
    	announce "Mr. Dice: 2.",0;
    	end;
    	
    OnTimer59000:
    	announce "Mr. Dice: 1.",0;
    	end;
    	
    OnTimer60000:
    	announce "Mr. Dice: Time's up.",0;
    	end;
    
    OnTimer61000:
    	announce "Mr. Dice: The next Dice event will start after 30 minutes.",0;
    	end;
    	
    OnTimer67000:
    	disablenpc "prtevent";
    	donpcevent "Dice#evnt1::OnEnable";
    	stopnpctimer;
    	end;
    }
    
    glemior,237,334,4	script	Mrs. Dice	667,{
    	
    	if (getgmlevel() == 99) goto Dice_Admin;
    	mes "[Mrs. Dice]";
    	mes "Hello " + strcharinfo(0) + ", my husband Mr. Dice is currently out gambling.";
    	mes "That buffoon is always losing our money... *sigh*";
    	close;
    	
    Dice_Admin:
    	mes "[Mrs. Dice]";
    	mes "Hello GM " + strcharinfo(0) + ", what do you want to do?";
    	menu "Check Prize",checkprize,"Set Prize",setprize,"No Thanks",enddice;
    	startdice:
    		next;
    		mes "[Mrs. Dice]";
    		mes "Ok, I'll call him this instant.";
    		close2;
    		goto startdiceevent;
    	checkprize:
    		next;
    		mes "[Mrs. Dice]";
    		mes "The current prize is ^008000"+ $get_item_amount +" "+ getitemname($get_item_id) +"^000000";
    		next;
    		goto Dice_Admin;
    	setprize:
    		next;
    		mes "[Mrs. Dice]";
    		mes "What should the prize for winning be? Please input the ID";
    		input $get_item_id;
    		next;
    		mes "[Mrs. Dice]";
    		mes "How many if this item should we give away?";
    		input $get_item_amount;
    		next;
    		mes "[Mrs. Dice]";
    		mes "So, the prize is ^008000"+ $get_item_amount +" "+ getitemname($get_item_id) +"^000000? Wonderful dear.";
    		next;
    		goto Dice_Admin;
    	enddice:
    		next;
    		mes "[Mrs. Dice]";
    		mes "Ok darling, nice seeing you.";
    		close;
    	}
    		
    //--------------------------------------------------
    	
    glemior,235,327,0	warp	prtevent	2,2,quiz_01,204,90	
    	
    //--------------------------------------------------
    
    quiz_01,204,93,6	script	Dice#evnt1	715,{
    
    //--------------------------------------------------
    
    	mes "[Mr. Dice]";
    	mes "Please tell me your name.";
    	next;
    	input .@name$;
    	if(.@name$ != strcharinfo(0)) {
    		mes "[Mr. Dice]";
    		mes "Are you sure thats your character name?";
    		close;
    	}
    
    	mes "[Mr. Dice]";
    	mes "Congrats. You've won.";
    	close2;
    	announce "Mr. Dice: We have a winner! well done "+.@name$+".",0;
    	getitem 501,5;
    	getitem 502,5;
    	getitem 503,5;
    	getitem 504,5;
    	#CASHPOINT += 1;
    	warp "glemior",237,332;
    	hideonnpc "Dice#evnt1";
    	end;
    	
    OnEnable:
    	mapannounce "quiz_01","Mr. Dice: We are about to start the Dice event.",0;
    	sleep2 5000;
    	mapannounce "quiz_01","Mr. Dice: But before we start the event here's how to play the game...",0;
    	sleep2 5000;
    	mapannounce "quiz_01","Mr. Dice: I'm only gonna say this once so read carefully.",0;
    	sleep2 5000;
    	mapannounce "quiz_01","Mr. Dice: I'm going to roll a number, 1 to 4. Then I'll do a count down from 5 to 0.",0;
    	sleep2 5000;
    	mapannounce "quiz_01","Mr. Dice: All you have to do is go stand on the box of the number you want.",0;
    	sleep2 5000;
    	mapannounce "quiz_01","Mr. Dice: For example, If I roll a number 4, All the players standing on numbers 1 to 3 will be warped back to town.",0;
    	sleep2 5000;
    	mapannounce "quiz_01","Mr. Dice: We will do it until we only have 1 player left on the map.",0;
    	sleep2 5000;
    	mapannounce "quiz_01","Mr. Dice: Oh yeah! Before I forget you MUST GO INSIDE THE BOX, because if you're caught standing on the stairs you'll be automatically disqualified.",0;
    	sleep2 5000;
    	mapannounce "quiz_01","Mr. Dice: Simple huh?.. Let's play...",0;
    	sleep2 5000;
    	goto L_Start;
    	end;
    	
    L_Start:
    	if(getmapusers("quiz_01") == 1) goto L_Champ;
    	if(getmapusers("quiz_01") == 0) goto L_None;
    	if(getmapusers("quiz_01") > 1) {
    	mapannounce "quiz_01","Mr. Dice: . . . . .",0;
    	set $@number, rand(1,4);
    	sleep2 10000;
    	mapannounce "quiz_01","Mr. Dice: I have rolled. Please pick a number and go stand there.... GO!",0;
    	sleep2 10000;
    	mapannounce "quiz_01","Mr. Dice: 5",0;
    	sleep2 5000;
    	mapannounce "quiz_01","Mr. Dice: 4",0;
    	sleep2 4000;
    	mapannounce "quiz_01","Mr. Dice: 3",0;
    	sleep2 3000;
    	mapannounce "quiz_01","Mr. Dice: 2",0;
    	sleep2 2000;
    	mapannounce "quiz_01","Mr. Dice: 1",0;
    	sleep2 1000;
    	mapannounce "quiz_01","Mr. Dice: Time's up.",0;
    	donpcevent "evnt#1::OnEnable";
    	mapannounce "quiz_01","Mr. Dice: The winning number is "+$@number+".",0;
    	if(($@number != 1) && ($@number != 2) && ($@number != 3)) goto L_Lose1;
    	if(($@number != 1) && ($@number != 2) && ($@number != 4)) goto L_Lose2;
    	if(($@number != 1) && ($@number != 3) && ($@number != 4)) goto L_Lose3;
    	if(($@number != 2) && ($@number != 3) && ($@number != 4)) goto L_Lose4;
    	end;
    	}
    	
    L_Lose1:
    	areawarp "quiz_01",183,81,191,59,"glemior",237,332;
    	areawarp "quiz_01",195,81,203,59,"glemior",237,332;
    	areawarp "quiz_01",207,81,215,59,"glemior",237,332;
    	goto L_Start;
    	end;
    
    L_Lose2:
    	areawarp "quiz_01",183,81,191,59,"glemior",237,332;
    	areawarp "quiz_01",195,81,203,59,"glemior",237,332;
    	areawarp "quiz_01",219,81,227,59,"glemior",237,332;;
    	goto L_Start;
    	end;
    	
    L_Lose3:
    	areawarp "quiz_01",183,81,191,59,"glemior",237,332;
    	areawarp "quiz_01",207,81,215,59,"glemior",237,332;
    	areawarp "quiz_01",219,81,227,59,"glemior",237,332;
    	goto L_Start;
    	end;
    	
    L_Lose4:
    	areawarp "quiz_01",195,81,203,59,"glemior",237,332;
    	areawarp "quiz_01",207,81,215,59,"glemior",237,332;
    	areawarp "quiz_01",219,81,227,59,"glemior",237,332;
    	goto L_Start;
    	end;
    	
    L_Champ:
    	mapannounce "quiz_01","Mr. Dice: Come to me and tell me your name.",0;
    	hideoffnpc "Dice#evnt1";
    	end;
    	
    L_None:
    	//disablenpc "Dice#evnt1";
    	hideonnpc "Dice#evnt1";
    	end;
    }
    	
    -	script	evnt#1	-1,{
    
    OnEnable:
    	areawarp "quiz_01",182,94,228,88,"glemior",237,332;
    	areawarp "quiz_01",185,87,188,82,"glemior",237,332;
    	areawarp "quiz_01",197,87,200,82,"glemior",237,332;
    	areawarp "quiz_01",209,87,212,82,"glemior",237,332;
    	areawarp "quiz_01",221,87,224,82,"glemior",237,332;
    	end;
    	}
    
    // -- Mapflags
    quiz_01	mapflag	nowarp
    quiz_01	mapflag	nowarpto
    quiz_01	mapflag	noteleport
    quiz_01	mapflag	nosave
    quiz_01	mapflag	nomemo
    quiz_01	mapflag	nobranch

     

    poring event. 

    event will start every 1 and half hour as requested
    prize set already as requested
    501,502,503,504,#event_points, 

    //= Poring Catcher - Auto Event Script
    //===== By: =================================================================================
    //= Washi - www.EarthBound-RO.com
    //===== Compatible With: ====================================================================
    //= Any eAthena Version
    //===== Description: ========================================================================
    //= Single NPC that starts automatically starts every hour.
    //===== Additional Comments: ================================================================
    //= This script is a combenation of the Dice Event by [Mahina]
    //= and the origonal Poring Catcher Event by [Wild Karrd]
    //===========================================================================================
    //= OnMinute - Change this to the minute you would like this script to load. [ LINE 22 ]
    //= getitem - Change this to the Item ID of your prize. [ LINE 118 ]
    //===========================================================================================
    -	script	poring#announcer	-1,{
    
    OnInit:
    	disablenpc "poringevent";
    	hideonnpc "Poring Catcher#evnt2";
    	end;
    
    OnMinute90: // SET THE 30 TO THE MINUTE YOU WANT THE EVENT TO START EACH HOUR.
    
    	announce "Poring Catcher : It's time to play some Poring Catcher!",0;
    	killmonster "poring_w01","All";
    	sleep2 10000;
    	announce "Poring Catcher : Please make your way to the centre of glemior.",0;
    	sleep2 10000;
    	announce "Poring Catcher : After one minute the portal will close.",0;
    	sleep2 10000;
    	announce "Poring Catcher : Enter the warp portal now if you want to join.",0;
    	enablenpc "poringevent";
    	initnpctimer;
    	end;
    
    OnTimer30000:
    	announce "Poring Catcher : Last 30 seconds.",0;
    	sleep2 5000;
    	announce "Poring Catcher : Hurry to the centre of glemior if you want to join.",0;
    	end;
    	
    OnTimer50000:
    	announce "Poring Catcher : Last 10 seconds.",0;
    	end;
    	
    OnTimer55000:
    	announce "Poring Catcher : 5.",0;
    	end;
    	
    OnTimer56000:
    	announce "Poring Catcher : 4.",0;
    	end;
    	
    OnTimer57000:
    	announce "Poring Catcher : 3.",0;
    	end;
    	
    OnTimer58000:
    	announce "Poring Catcher : 2.",0;
    	end;
    	
    OnTimer59000:
    	announce "Poring Catcher : 1.",0;
    	end;
    	
    OnTimer60000:
    	announce "Poring Catcher : Time's up. Portal Will Open again in one hour.",0;
    	end;
    	
    OnTimer67000:
    	disablenpc "poringevent";
    	donpcevent "Poring Catcher#evnt2::OnEnable";
    	stopnpctimer;
    	end;
    	}
    	
    //--------------------------------------------------
    	
    glemior,158,331,0	warp	poringevent	2,2,poring_w01,106,129	
    	
    //--------------------------------------------------
    
    poring_w01,100,127,4	script	Poring Catcher#evnt2	715,{
    
    //--------------------------------------------------
    
    	mes "[Poring Catcher]";
    	if(PORING == 1) goto L_PORING;
    	mes "Please tell me your name";
    	next;
    	input .@name$;
    	if(.@name$ != strcharinfo(0)) {
    		mes "[Poring Catcher]";
    		mes "Are you sure thats your character name?";
    		close;
    	}
    	mes "[Poring Catcher]";
    	mes "Congrats. You've won.";
    	close2;
    	announce "Poring Catcher : All laugh at, "+.@name$+". - This player tried to cheat the system. Muhahahahaha!",0;
    	warp "glemior",164,328;
    	end;
    
    L_PORING:
    	mes "Please tell me your name";
    	next;
    	input .@name$;
    	if(.@name$ != strcharinfo(0)) {
    		mes "[Poring Catcher]";
    		mes "Are you sure thats your character name?";
    		close;
    	}
    	mes "[Poring Catcher]";
    	mes "Congrats. You've won.";
    	close2;
    	announce "Poring Catcher : We have a winner, "+.@name$+". - Event Award Won!",0;
    
    	getitem 501,5;
    	getitem 502,5;
    	getitem 503,5;
    	getitem 504,5;
    	#CASHPOINT += 1;
    //	set zeny,zeny+1000000;
    
    	set PORING,0;
    	warp "glemior",164,328;
    	hideonnpc "Poring Catcher#evnt2";
    	end;
    	
    OnEnable:
    	mapannounce "poring_w01","Poring Catcher : I will be summoning 100 different Porings.",0;
    	sleep2 10000;
    	mapannounce "poring_w01","Poring Catcher : Only one of these Porings is the correct Poring.",0;
    	sleep2 10000;
    	mapannounce "poring_w01","Poring Catcher : The correct Poring is called [ Poring ], all the other Porings have different names.",0;
    	sleep2 10000;
    	mapannounce "poring_w01","Poring Catcher : Take your time because if you kill the wrong Poring, your out of the game.",0;
    	sleep2 10000;
    	mapannounce "poring_w01","Poring Catcher : The first player to kill the correct Poring wins.",0;
    	sleep2 10000;
    	mapannounce "poring_w01","Poring Catcher : That's that.. Now let's play...",0;
    	goto L_Start;
    	end;
    	
    L_Start:
    	mapannounce "poring_w01","Poring Catcher : 5",0;
    	sleep2 1000;
    	mapannounce "poring_w01","Poring Catcher : 4",0;
    	sleep2 1000;
    	mapannounce "poring_w01","Poring Catcher : 3",0;
    	sleep2 1000;
    	mapannounce "poring_w01","Poring Catcher : 2",0;
    	sleep2 1000;
    	mapannounce "poring_w01","Poring Catcher : 1",0;
    	sleep2 1000;
    	mapannounce "poring_w01","Poring Catcher : Lets Do This!",0;
    	areamonster "poring_w01",84,119,121,90,"Poring",1002,1,"poringwin::OnMobKilled";
    	areamonster "poring_w01",84,119,121,90,"Pouring",1002,10,"poringlose::OnMobKilled";
    	areamonster "poring_w01",84,119,121,90,"Proing",1002,10,"poringlose::OnMobKilled";
    	areamonster "poring_w01",84,119,121,90,"Poiring",1002,10,"poringlose::OnMobKilled";
    	areamonster "poring_w01",84,119,121,90,"Poing",1002,10,"poringlose::OnMobKilled";
    	areamonster "poring_w01",84,119,121,90,"I am not Poring",1002,5,"poringlose::OnMobKilled";
    	areamonster "poring_w01",84,119,121,90,"Gniriop",1002,1,"poringlose::OnMobKilled";
    	areamonster "poring_w01",84,119,121,90,"Porring",1113,1,"poringlose::OnMobKilled";
    	areamonster "poring_w01",84,119,121,90,"Porinng",1062,1,"poringlose::OnMobKilled";
    	areamonster "poring_w01",84,119,121,90,"Poriiing",1002,10,"poringlose::OnMobKilled";
    	areamonster "poring_w01",84,119,121,90,"PoriNgg",1002,10,"poringlose::OnMobKilled";
    	areamonster "poring_w01",84,119,121,90,"Porong",1002,10,"poringlose::OnMobKilled";
    	areamonster "poring_w01",84,119,121,90,"P0ring",1002,10,"poringlose::OnMobKilled";
    	areamonster "poring_w01",84,119,121,90,"Por1ng",1002,10,"poringlose::OnMobKilled";
    	areamonster "poring_w01",84,119,121,90,"Porng",1002,1,"poringlose::OnMobKilled";
    	end;
    }
    
    -	script	poringwin	-1,{
    
    OnMobKilled:
    	dispbottom "Poring : Congratulations. You've got me.";
    	set PORING,1;
    	atcommand "@doommap";
    	killmonster "poring_w01","All";
    	mapannounce "poring_w01","Poring Catcher : Come to me and tell me your name.",0;
    	hideoffnpc "Poring Catcher#evnt2";
    	end;
    
    }
    
    -	script	poringlose	-1,{
    
    OnMobKilled:
    	dispbottom "Poring Catcher : Wahaha, your a loser! - I wasnt the correct Poring.";
    	warp "glemior",164,328;
    	end;
    
    }
    
    // -- Mapflags
    poring_w01	mapflag	nowarp
    poring_w01	mapflag	nowarpto
    poring_w01	mapflag	noteleport
    poring_w01	mapflag	nosave
    poring_w01	mapflag	nomemo
    poring_w01	mapflag	nobranch
    poring_w01	mapflag	noloot
    poring_w01	mapflag	noskill
    poring_w01	mapflag	nopenalty

     

    Disguise event. 

    event will start every 1 hour as requested
    prize set already as requested
    501,502,503,504,#event_points,

    prontera,211,189,4	script	Disguise Event	795,{
    //--- Basic Script Configuration Options ---//
    set .@npcname$,"[^0000FFDisguise NPC^000000]"; //<- NPC Name.
    set $@GMLevel,80; //<- GM Level needed to be considered a GM.
    //--- The Script ---//
    if (getgmlevel()>=$@GMLevel){goto GM_Player;}
    if ($@EventON){end;}
    
    mes .@npcname$;
    mes "Welcome, how may i be of assistance.";
    menu "Information",iInfo,"Nothing, just passing through.",iNothing;
    iInfo:
    next;
    mes .@npcname$;
    mes "This event is actually quite simple";
    mes "At the start of the event, I will disguise myself";
    mes "into a monster randomly. You will then merely have to shout that monsters name outloud.";
    next;
    mes "If you get it correct, you get a prize. If not, then keep trying.";
    mes "Thatis all there is to know about this event.";
    close;
    iNothing:
    close;
    GM_Player:
    mes .@npcname$;
    mes "Please select an Option to modify.";
    menu "Turn ON/OFF Event",iEvent,"Event Settings",iSettings;
    iEvent:
    next;
    mes .@npcname$;
    if ($@EventON){mes "The Event is currently: [^0000FFON^000000]";
    mes "Would you like to turn it OFF?";}
    if (!$@EventON){mes "The Event is currently: [^FF0000OFF^000000]";
    mes "Would you like to turn it ON?";}
    menu "Yes",iYes,"No",iNothing;
    iYes:
    if ($@EventON)
    {set $@EventON,0; set $@Timer,0;
    setnpctimer 0; stopnpctimer;
    announce "A GM has decided to turn the Disguise Event off. As a result no further prizes will be given.",bc_map | bc_blue;
    deletepset 1;
    setnpcdisplay "Disguise Event",997;
    close;}
    set $@EventON,1; set $@Timer,1; setnpctimer 0; initnpctimer;
    set $@ResetCounter,$@ResetCounter+1;
    announce "The Disguise Event will begin in 3 minutes.",bc_all;
    announce "The Event is being held in prontera 211 189.",bc_all;
    close;
    iSettings:
    next;
    mes .@npcname$;
    mes "Please select a setting to modify.";
    menu "Monster Display",iMonster,"Number of Rounds",iRounds,"Prize Settings",iPrize;
    iMonster:
    callfunc "Monster_Display";
    iRounds:
    callfunc "Rounds";
    iPrize:
    callfunc "Prize";
    
    OnInit:
    defpattern 1,"([^:]+):.\\s*OMFGBBQLEETSAUCEGMOCEANRULESHAI!!.*", "iCorrect";
    activatepset 1;
    set $@EventON,0;
    set $@Wait,0;
    set $@Winner,0;
    set $Points,$Points;
    set $@ResetCounter,0;
    set $Rounds,$Rounds;
    set $Prize,$Prize;
    set $PrizeAmt,$PrizeAmt;
    set $Rule,$Rule;
    setarray $@MVP[0],1038,1039,1046,1059,1086,1087,1112,1115,1147,1150,1157,1159,1190,1251,1252,1272,1312,1373,
                      1389,1399,1418,1492,1502,1511,1583,1623,1630,1646,1647,1648,1649,1650,1651,1658,1685,1688,
    				  1708,1719,1734,1751,1768,1779,1785,1802,1832,1871,1874,1885,1917,1980,2022,2068,2087,2131,
    				  2156,2165;
    setarray $@BlackList[0], 1003,1006,1017,1021,1022,1027,1043,1075,1136,1137,1168,1171,1172,1173,1181,1210,1217,1218,
    						 1222,1223,1224,1225,1226,1227,1228,1233,1284,1407,1411,1414,1495,1501,1900,1996,2000,2001,
    						 2002,2003,2004,2005,2006,2007,2011,2012,2025,2028,2029,2030,2031,2032,2033,2034,2035,2036,
    						 2037,2038,2039,2040,2041,2042,2043,2044,2045,2046,2047,2048,2049,2050,2051,2052,2053,2054,
    						 2055,2056,2057,2058,2059,2060,2061,2062,2063,2064,2065,2066,2067,2075,2076,2077,2078,2079,
    						 2080,2081,2083,2084,2085,2086,2087,2088,2089,2090,2091,2092,2093,2094,2095,2096,2097,2098,
    						 2099,2100,2101,2012,2103,2104,2105,2106,2107,2108,2109,2110,2111,2112,2113,2114,2115,2116,
    						 2117,2118;
    setarray $@BlackList2[0],2119,2120,2121,2123,2124,2125,1496;
    end;
    OnClock0000:
    OnClock0100:
    OnClock0200:
    OnClock0300:
    OnClock0400:
    OnClock0500:
    OnClock0600:
    OnClock0700:
    OnClock0800:
    OnClock0900:
    OnClock1000:
    OnClock1100:
    set $@ResetCounter,$@ResetCounter+1;
    set $@EventON,1;
    set $@Timer,1;
    set $@Wait,1;
    announce "The Disguise Event will begin in 3 minutes.",bc_all;
    announce "The Event is being held in prontera 211 189.",bc_all;
    setnpctimer 0;
    initnpctimer;
    end;
    OnTimer10000:
    if ($@Timer){end;}
    if ($@Change){end;}
    set $@Wait,0;
    goto iDisguise;
    //donpcevent "DisguiseEvent::OnDisguise";
    end;
    OnTimer30000:
    if ($@Timer){end;}
    set $@Change,0;
    setnpcdisplay "Disguise Event",795;
    npctalk "You took too long to guess what i was. Please wait 10 seconds while i disguise again.";
    specialeffect 730;
    set $MonsterName$,"OMFGBBQLEETSAUCEGMOCEANRULESHAI!!";
    deletepset 1;
    stopnpctimer;
    setnpctimer 0;
    initnpctimer;
    end;
    OnTimer60000:
    if ($@Timer!=1){end;}
    if ($@Timer==1)
    {announce "The Disguise Event will begin in 2 minutes.",bc_all;
    announce "The Event is being held in prontera 211 189.",bc_all;
    end;}
    OnTimer120000:
    if ($@Timer!=1){end;}
    if ($@Timer==1)
    {announce "The Disguise Event will begin 1 minute.",bc_all;
    announce "The Event is being held in prontera 211 189.",bc_all;
    end;}
    OnTimer180000:
    if ($@Timer!=1){end;}
    if ($@Timer==1)
    {announce "The Disguise Event has begun!",bc_all;
    announce "The Event is being held in Main Town.",bc_all;
    set $@Timer,0; stopnpctimer;
    setnpctimer 0; initnpctimer;
    goto iDisguise;
    //donpcevent "DisguiseEvent::OnDisguise";
    end;}
    announce "Something went wrong with the Disguise Event.",bc_all | bc_blue;
    announce "Please notify a GM ASAP. Thank you.",bc_all | bc_blue;
    end;
    iDisguise:
    if ($Rule==1)
    {set $@Winner,0;
    set $@Monster,1000+rand(1,995);
    for(set .@BL,0; .@BL<getarraysize($@BlackList); set .@BL,.@BL+1)
    {if ($@Monster==$@BlackList[.@BL] || $@Monster==$@BlackList2[.@BL])
    {goto iDisguise;}}
    if ($@Monster==$@LastMonster){goto iDisguise;}
    set $@LastMonster,$@Monster;
    set $MonsterName$,getmonsterinfo($@Monster,0);}
    if ($Rule==2)
    {set $@Winner,0;
    set $@Monster,rand(49);
    set $MonsterName$,getmonsterinfo($@MVP[$@Monster],0);}
    deletepset 1;
    defpattern 1,"([^:]+):.\\s*"+$MonsterName$+".*", "iCorrect";
    activatepset 1;
    if ($Rule==1){setnpcdisplay "Disguise Event",$@Monster;}
    if ($Rule==2){setnpcdisplay "Disguise Event",$@MVP[$@Monster];}
    set $@Change,1;
    setnpctimer 0;
    //Hint
    //npctalk ""+$@Monster+", "+$MonsterName$+"";
    end;
    iCorrect:
    if ($@Winner){dispbottom "Someone has already won this round."; end;}
    set $@Winner,1;
    set $@RoundCount,$@RoundCount+1;
    deletepset 1;
    defpattern 1,"([^:]+):.*\\sOMFGBBQLEETSAUCEGMOCEANRULESHAI!!.*", "iFailCheater";
    activatepset 1;
    //getitem $Prize,$PrizeAmt;
    getitem 501,5;
    getitem 502,5;
    getitem 503,5;
    getitem 504,5;
    #CASHPOINT += 1;
    announce ""+strcharinfo(0)+" is correct! I was disguised as: "+$MonsterName$+"",bc_map | bc_blue;
    if ($@RoundCount>=$Rounds)
    {setnpcdisplay "Disguise Event",795;
    set $@RoundCount,0; set $@Change,0; set $@EventON,0;
    setnpctimer 0; stopnpctimer;
    npctalk "Thank you all for playing. That was the last round of the Disguise Event. Come play again later.";
    end;}
    setnpcdisplay "Disguise Event",794;
    set $@Change,0;
    setnpctimer 0;
    end;
    
    iFailCheater:
    end;
    }
    //--- The Functions ---//
    function	script	Rounds	{
    next;
    mes "Please Input the number of rounds you want the event to last.";
    mes "Current Number of Rounds: [^0000FF"+$Rounds+"^000000]";
    input .@Rounds;
    set $Rounds,.@Rounds;
    next;
    mes "The number of rounds has been changed successfully.";
    mes "Number of Rounds: [^0000FF"+$Rounds+"^000000]";
    mes "Come again.";
    close;
    }
    function	script	Prize	{
    next;
    mes "Please Input the ItemID of the prize that will be given each round.";
    mes "Current Items is: [^0000FF"+getitemname($Prize)+"^000000] ItemID - ^0000FF"+$Prize+"^000000";
    input .@Prize;
    if (getitemname(.@Prize)=="" || getitemname(.@Prize)=="null")
    {next; mes "That item does not exist. Please try again."; close;}
    set $Prize,.@Prize;
    next;
    mes "Please Input the Ammount that is to be given.";
    input .@Ammount;
    if (.@Ammount<=0 || .@Ammount>=10000)
    {next; mes "That ammount is invalid. Using default ammount of 1.";}
    set $PrizeAmt,.@Ammount;
    next;
    mes "The Prize has been changed successfully.";
    mes "Prize: [^0000FF"+getitemname($Prize)+"^000000]x(^0000FF"+$PrizeAmt+"^000000)";
    close;
    }
    function	script	Monster_Display	{
    setarray .@Rule[0],0,1,2;
    setarray .@Desc$[0],"","Transform as all monsters.","Transform as MvP's only.";
    next;
    mes "Please select a Disguise Rule.";
    mes "Rule 1 - Transform as all monsters.";
    mes "Rule 2 - Transform as MvP's only.";
    menu "Rule 1:Rule 2",iRule;
    iRule:
    set $Rule,.@Rule[@menu];
    next;
    mes "The Disguise Rule, has been changed successfully.";
    mes "Current Rule: ^0000FF"+$Rule+"^000000 - ^0000FF"+.@Desc$[@menu]+"^000000";
    close;
    }

     

    • Upvote 2
  2. 10 minutes ago, Ryo Osaki said:

    Error @BeWan

    image.png.ada455d6b866ee2306bca5a98c228a7d.png

    src/map/battle.cpp
    Find : 

    { "at_timeout",                         &battle_config.at_timeout,                      0,      0,      INT_MAX,        },

    Add [ Below ] :

    { "afk_timeout",                        &battle_config.afk_timeout,                     0,      0,      INT_MAX,        },

     

    src/map/battle.hpp

    Find : 
    int at_timeout;

    Add [ Below ] :

    int afk_timeout;

    Find :
    mail_show_status: 0

    Add [ Below ] :

    // Set this to the amount of minutes afk chars will be kicked from the server.
    afk_timeout: 0

    • Upvote 1
  3. src/map/atcommand.c

    add this

    Find
     

    ACMD_FUNC(camerainfo){
    	nullpo_retr(-1, sd);
    
    	if( message == nullptr || message[0] == '\0' ){
    		clif_camerainfo( sd, true );
    		return 0;
    	}
    
    	float range = 0;
    	float rotation = 0;
    	float latitude = 0;
    
    	if( sscanf( message, "%f %f %f", &range, &rotation, &latitude ) < 3 ){
    		clif_displaymessage( fd, msg_txt( sd, 793 ) ); // Usage @camerainfo range rotation latitude
    		return -1;
    	}
    
    	clif_camerainfo( sd, false, range, rotation, latitude );
    
    	return 0;
    }

    Add Below

    /*==========================================
    * @afk
    *------------------------------------------*/
    ACMD_FUNC(afk) {
     
            nullpo_retr(-1, sd);
                            sd->state.autotrade = 1;
                            sd->state.block_action |= PCBLOCK_IMMUNE;
                            if( battle_config.afk_timeout )
                            {
                                    int timeout = atoi(message);
                                    status_change_start(NULL, &sd->bl, SC_AUTOTRADE, 10000,0,0,0,0, ((timeout > 0) ? min(timeout,battle_config.afk_timeout) : battle_config.afk_timeout)*60000,0);
                            }
                            clif_authfail_fd(fd, 15);
            return 0;
    }

    Find:

    ACMD_DEFR(camerainfo, ATCMD_NOCONSOLE|ATCMD_NOAUTOTRADE),

    Add Below

    ACMD_DEF(afk)

     

    • Upvote 1
  4. here is the example

    areamonster "ordeal_1-1",183,182,246,244,"[DS] BYORGUE",1839,10,"DS_HiddenNpc::Ondevildead";

    Ondevildead:
        set $@mob,$@mob - 1;
        if($@mob == 15) mapannounce "ordeal_1-1","Guardian : 10 mobs to enter the 2nd round",0;
        if($@mob == 5) mapannounce "ordeal_1-1","Guardian : 5 mobs to enter 2nd round",0;
        if($@mob == 0) { 
            mapannounce "ordeal_1-1",Guardian will enter to 2nd round",0;
            goto Ondevil2;
        }
        end;

  5. On 9/27/2019 at 4:19 PM, BugSICK said:
    
    //boss pvp map
    moc_fild22	mapflag	pvp
    moc_pryd06	mapflag	pvp
    lhz_dun03	mapflag	pvp
    odin_tem03	mapflag pvp
    
    ra_fild03	mapflag	pvp
    ra_fild04	mapflag pvp
    ve_fild01	mapflag pvp
    ve_fild02	mapflag pvp
    lou_dun03	mapflag pvp
    prt_maze03	mapflag pvp
    bra_dun02	mapflag pvp
    lhz_dun04	mapflag pvp
    gl_chyard	mapflag pvp
    abyss_03	mapflag pvp
    gef_dun02	mapflag pvp
    gef_dun01	mapflag pvp
    treasure02	mapflag pvp
    pay_fild10	mapflag pvp
    gon_dun03	mapflag pvp
    abbey02	mapflag pvp
    xmas_fild01	mapflag pvp
    ra_san05	mapflag pvp
    prt_sewb4	mapflag pvp
    thor_v03	mapflag pvp
    ama_dun03	mapflag pvp
    kh_dun02	mapflag pvp
    xmas_dun02	mapflag pvp
    ayo_dun02	mapflag pvp
    niflheim	mapflag pvp
    anthell02	mapflag pvp
    mjolnir_04	mapflag pvp
    pay_dun04	mapflag pvp
    gef_fild03	mapflag pvp
    gef_fild10	mapflag pvp
    moc_pryd04	mapflag pvp
    in_sphinx5	mapflag pvp
    moc_fild17	mapflag pvp
    ein_dun02	mapflag pvp
    beach_dun	mapflag pvp
    tur_dun04	mapflag pvp
    jupe_core	mapflag pvp
    moc_fild21	mapflag	pvp

    but only the 1st 4 are working and the others are not. how to fix this? because i want to have a pvp on all mvp areas. thanks

    ra_fild03    mapflag    pvp

    ra_fild04    mapflag    pvp

     

    check the tab/space. just copy paste and replace the map thats it.

     

     

  6. On 10/14/2019 at 12:52 PM, nestymow said:

    Hi, ive installed @Emistry's Extended vending system on my server.



    Diff patched is Okay, but when i tried on my server theres a Bug i found.

     

     

    1. When i restart server, vending skill or extended vending is working fine.
    2.When theres i think 10-15 player/vendors using extended Vending, the 16th or next player to use the vending skill nothing happens, 
    -Players click vending skill then Nothing happen.
    -I need to restart the server again use vending skill.

    Anyone can help? Willing to pay  thanks. 

    PS. Sorry for my bad english -,-
     

    i think you didnt install/applied it properly.

  7. tried and tested. working 100%

     

    prontera,156,178,5	script	BeWan Enchanter	100,{
    	mes "do you want to enchant your equipment ?";
    	next;
    	.@s = select( .menu$ ) -1;
    	if ( !getequipisequiped( .const_equip[.@s] ) || .const_equip[.@s] == EQI_HAND_L && getiteminfo( getequipid( EQI_HAND_L ),2 ) != 5 ) {
    		mes "you did not equip an "+ .menu_name$[.@s] +" at the moment";
    		close;
    	}
    	.@id = getequipid( .const_equip[.@s] );
    	.@ref = getequiprefinerycnt( .const_equip[.@s] );
    	.@card1 = getequipcardid( .const_equip[.@s], 0 );
    	.@card2 = getequipcardid( .const_equip[.@s], 1 );
    	.@card3 = getequipcardid( .const_equip[.@s], 2 );
    	.@card4 = getequipcardid( .const_equip[.@s], 3 );
    	if ( .@card1 == 255 || .@card1 == 254 ) {
    		mes "I can't enchant a signed equipment";
    		close;
    	}
    	if ( .@card4 ) {
    		mes "this armor has already enchanted";
    		close;
    	}
    	
    	if ( countitem( 7773 ) < 50 || countitem( 7227 ) < 50  ) {
    	mes "Sorry, you need 50 "+ getitemname( 7773 ) +" and 50 "+ getitemname( 7227 ) +" to enchant this armor.";
    	close;
    	}
    	
    	.@rand = rand(.totalchance);
    	while ( ( .@rand = .@rand - .rate[.@r] ) >= 0 ) .@r++;
    	.@o = rand(0,5);
    
    	delitem2 .@id, 1,1, .@ref, 0, .@card1, .@card2, .@card3, 0;
    	getitem2 .@id, 1,1, .@ref, 0, .@card1, .@card2, .@card3, 4700 + .@o * 10 + .@r;
    	equip .@id;
    	close;
    OnInit:
    	setarray .rate, 55,50,45,40,35; // rate of getting +1 is 55%, +2 is 50% .... +10 is 10% ...
    
    	setarray .const_equip, EQI_ARMOR, EQI_HAND_L, EQI_GARMENT, EQI_SHOES;
    	setarray .menu_name$, "Armor", "Shield", "Garment", "Shoes";
    	.menu$ = implode( .menu_name$,":" );
    	while ( .@i < 10 ) {
    		.totalchance = .totalchance + .rate[.@i];
    		.@i++;
    	}
    	end;
    }

    or if you want to use your script just edit this

     if (countitem(.@stone[.@type]) < 1) {
                        mes "[Aver De Dosh]";
                        mes "You do not have adequate quantity of ^0000FF"+getitemname (.@stone[.@type])+".^000000";
                        close;
                    }

    to 

    if ( countitem( 7773 ) < 50 || countitem( 7227 ) < 50  ) {
    	mes "Sorry, you need 50 "+ getitemname( 7773 ) +" and 50 "+ getitemname( 7227 ) +" to enchant this armor.";
    	close;
    	}

     

  8. how to add facing option? thanks

    something like this

     

    <map>,<x>,<y>,<facing>
    
    it would look like this on script
    
    .@monster_gid = fakeplayer( "prontera", 150, 150,<FACING>, .@Input$, .@job, .@sex, .@hairstyle, @haircolor, .@weapon, .@shield, .@tophead, .@midhead, .lowhead, .@dye, 0 );
    
    
    i tried to edit the src part and compile got error.
    
  9. 7 hours ago, ranmaster27 said:

    I'm talking about setting a new hard cap for MAX_ASPD, based on which weapon class is equipped. /wah

    try it. and it's working tried and tested.

  10. 7 hours ago, ranmaster27 said:

    Wait what??
    If base class is Job Mage, or Job Archer, Your Bonus ASPD Rate goes up 10% or goes down 10%??

    That makes no sense at all in what I'm asking. =/
    I'm asking for something like:

    If(Weapon_Equip_Class == SHOTGUN) { set MAX_APSD,170; }

    Or something in that kind of behavior.

    you dont really understand or get it? you can control the aspd by adjust this

     

    bonus bAspdRate,10; 

    or

    bonus bAspdRate,90;
  11. On 6/30/2019 at 2:24 PM, ranmaster27 said:

    Is there a way to cap ASPD based on what weapon type is equipped?

    YES. by doing this.

    if(BaseClass==Job_Mage||BaseClass==Job_Archer) { bonus bAspdRate,10; or bonus bAspdRate,-10; } else if(BaseClass==Job_Swordsman||BaseClass==Job_Thief) { bonus bAspdRate,10; or bonus bAspdRate,-10; }

    • Upvote 1
×
×
  • Create New...