Jump to content

Aureon

Members
  • Posts

    281
  • Joined

  • Last visited

Posts posted by Aureon

  1. On 10/11/2017 at 12:32 AM, Quesooo said:

    @Aureon the script working properly and do as my plan

     

    but when player is died he/she can spin continuously must be not and cannot be spin 


    Find this part:

    atcommand "@nuke "+strcharinfo(0);

    Below that, add this:

    cutin "",255;
    close;

     

    • Love 1
  2. @Quesooo If failed x3 the players will get nuked using this:

    For the single slot machine mode, find this part of the script:

    				cutin .ssm_animate$[3] + atoi(.ssm_animate$[.@a]),4;
    				dispbottom "Failed";

    below that line, add the following:

    				slt_fld01++;
    					if (slt_fld01  >= 3){
    						slt_fld01 = 0;
    						atcommand "@nuke "+strcharinfo(0);
    					}

     

    For the Triple slot machine mode, find his part of the script:

    } else { dispbottom "Failed"; }

    and replace it with this:

    				} else {
    					dispbottom "Failed"; 
    					slt_fld03++;
    						if (slt_fld03  >= 3){
    							slt_fld03 = 0;
    							atcommand "@nuke "+strcharinfo(0);
    						}
    				}


     

     

    Here's your script, I already added the changes I made above.

    prontera,163,161,4	script	SlotMachine	563,{
    
    	if( getgmlevel() == 99 ) {
    		mes "Welcome Administrator.","What would you like to do?";
    		menu "Play Game",-,"Change Slot Machine Mode",iMode;
    		next;
    		}
    switch( getd(".mode"+strnpcinfo(3)+"") ){
    	case 0: // Single Slot machine mode.
    		mes "Do you want to play a game?";
    		if( !.payment ) { mes "It costs: "+ .ssm_payment_message$[0] +" to play."; }
    			else if ( .payment == 1 ) { mes "It costs: "+ .ssm_payment_message$[1] +" to play."; }
    				else if ( .payment == 2 ) { mes "It costs: "+ .ssm_payment_message$[0] +" & "+ .payment_message$[1] +" to play."; }
    		if( select("YES:NO") == 2 || Zeny < .ssm_payment[0] && ( !.payment || .payment == 2 ) || countitem(.ssm_payment[1]) < .ssm_payment[2] && .payment ){ close; }
    		while( @menu == 1 ){
    		if (.EventON == 0) {mes "Slot Machine already finished"; cutin "",255; end;}
    			if( !.payment || .payment == 2 ) { Zeny -= .ssm_payment[0]; }
    			if( .payment ) { delitem( .ssm_payment[1], .ssm_payment[2] ); }
    			if( .soundeffects ) { soundeffect "slot_jackpot.wav",0; }
    			.@a = rand(1,100);
    			if( .@a < atoi(.ssm_animate$[0]) ){ .@a = 1; } else { .@a = 2; }
    			.@b = 1;
    			while( .@b < atoi(.ssm_animate$[.@a]) ) {
    				cutin .ssm_animate$[3] + .@b,4; sleep2 ( ( atoi(.ssm_animate$[4]) * 1000 ) / atoi(.ssm_animate$[.@a]) ); .@b++;
    				}
    			if( .@a == 1 ){ 
    				cutin .ssm_animate$[3] + atoi(.ssm_animate$[.@a]),4;
    				dispbottom "Failed";
    				slt_fld01++;
    					if (slt_fld01  >= 3){
    						slt_fld01 = 0;
    						atcommand "@nuke "+strcharinfo(0);
    					}
    				}
    			else {
    				cutin .ssm_animate$[3] + atoi(.ssm_animate$[.@a]),4;
    				switch(rand(5)) {
    				case 0:
    					getitem 603,5;
    					specialeffect2 10;
    					break;
    				case 1:
    					getitem 617,5;
    					specialeffect2 10;	
    					break;
    				case 2:
    					getitem 644,5;
    					specialeffect2 10;
    					break;
    				case 3:
    					getitem 616,1;
    					specialeffect2 10;
    					break;
    				case 4:
    					getitem 7776,2;
    					specialeffect2 10;
    					break;
    				case 5:
    					getitem 18571,1;
    					specialeffect2 10;
    					break;
    				}
    				}
    			if( select("Another Round:I'm done") == 2 || Zeny < .ssm_payment[0] && ( !.payment || .payment == 2 ) || countitem(.ssm_payment[1]) < .ssm_payment[2] && .payment ){ cutin "",255; close; }
    			}
    		end;
    	
    	case 1: // Triple Slot machine mode.
    		mes "Do you want to play a game?";
    		if( !.payment ) { mes "It costs: "+ .tsm_payment_message$[0] +" to play."; }
    			else if ( .payment == 1 ) { mes "It costs: "+ .tsm_payment_message$[1] +" to play."; }
    				else if ( .payment == 2 ) { mes "It costs: "+ .tsm_payment_message$[0] +" & "+ .tsm_payment_message$[1] +" to play."; }
    		if( select("YES:NO") == 2 || Zeny < .tsm_payment[0] && ( !.payment || .payment == 2 ) || countitem(.tsm_payment[1]) < .tsm_payment[2] && .payment ){ close; }
    		while( @menu == 1 ){
    		if (.EventON == 0) {mes "Slot Machine already finished"; cutin "",255; end;}
    			if( !.payment || .payment == 2 ) { Zeny -= .tsm_payment[0]; }
    			if( .payment ) { delitem( .tsm_payment[1], .tsm_payment[2] ); }
    			if( .soundeffects ) { soundeffect "slot_jackpot.wav",0; }
    			// Slot 1 = 100% Chance for success. (Because I didn't make a fail animation for it.
    			.@2 = rand(1,100); //Rolls dice for Slot 2
    			.@3 = rand(1,100); //Rolls dice for Slot 3
    				if( .@2 <= atoi(.tsm_animate$[0]) && .@3 <= atoi(.tsm_animate$[1]) ){ .@a = 8; }
    				else if( .@2 <= atoi(.tsm_animate$[0]) && .@3 > atoi(.tsm_animate$[1]) ){ .@a = 6; }
    				else if( .@2 > atoi(.tsm_animate$[0]) && .@3 <= atoi(.tsm_animate$[1]) ){ .@a = 4; }
    				else { .@a = 2; }
    			.@b = 1;
    			while( .@b < atoi(.tsm_animate$[.@a+1]) ) {
    				cutin .tsm_animate$[.@a] + .@b,4; sleep2 ( ( atoi(.tsm_animate$[10]) * 1000 ) / atoi(.tsm_animate$[.@a+1]) ); .@b++;
    				}
    			cutin .tsm_animate$[.@a] + atoi(.tsm_animate$[.@a+1]),4;
    				if( .@a == 2 ){
    					switch(rand(5)) {
    				case 0:
    					getitem 603,5;
    					specialeffect2 10;
    					break;
    				case 1:
    					getitem 617,5;
    					specialeffect2 10;	
    					break;
    				case 2:
    					getitem 644,5;
    					specialeffect2 10;
    					break;
    				case 3:
    					getitem 616,1;
    					specialeffect2 10;
    					break;
    				case 4:
    					getitem 7776,2;
    					specialeffect2 10;
    					break;
    				case 5:
    					getitem 18571,1;
    					specialeffect2 10;
    					break;
    				}
    				} else {
    					dispbottom "Failed"; 
    					slt_fld03++;
    						if (slt_fld03  >= 3){
    							slt_fld03 = 0;
    							atcommand "@nuke "+strcharinfo(0);
    						}
    				}
    			if( select("Another Round:I'm done") == 2 || Zeny < .tsm_payment[0] && ( !.payment || .payment == 2 ) || countitem(.tsm_payment[1]) < .tsm_payment[2] && .payment ){ cutin "",255; close; }
    			}
    		end;
    	}
    
    OnSingleSlot:
    setd ".mode"+strnpcinfo(3)+"",0;
    end;
    OnTripleSlot:
    setd ".mode"+strnpcinfo(3)+"",1;
    end;
    
    iMode:
    next;
    mes "Which did you want to do?";
    menu "Change THIS machine's mode:Change ALL machine's mode",-;
    if( @menu == 1 ) {
    	next;
    	mes "What mode would you like this machine to have?";
    	menu "Single Slot Machine Mode:Triple Slot Machine Mode",-;
    	if( @menu == 1 ) {
    		setd ".mode"+strnpcinfo(3)+"",0;
    		} else {
    			setd ".mode"+strnpcinfo(3)+"",1;
    			}
    	close;
    	} else {
    		next;
    		mes "What mode would you like to change all slot machines to?";
    		menu "Single Slot Machine Mode:Triple Slot Machine Mode",-;
    		if( @menu == 1 ) {
    			donpcevent "::OnSingleSlot";
    			} else {
    				donpcevent "::OnTripleSlot";
    				}
    		close;
    		}
    OnClock0000:
    OnClock1000:
    OnClock1600:
    	announce "Mysterious Slot Machine will begin at prontera 163 161 in 1 minute.", bc_all;
    	sleep 60000;
    	announce "Slot machine event has begun at prontera 163 161", bc_all;
    	set .EventON,1;
    	hideoffnpc strnpcinfo(3);
    	sleep 225000;
    	announce "Mysterious Slot Machine event is over thank you for playing", bc_all;
    	set .EventON,0;
    	hideonnpc strnpcinfo(3);
    	end;
    
    OnInit:
    hideonnpc strnpcinfo(3);
    
    //[ 0 = Single Slot Machine Mode ]_[ 1 = Triple Slot Machine Mode ]
    setd ".mode"+strnpcinfo(3)+"",1;
    
    //[0] = Fail Rate
    //[1] = Fail (Do not change)
    //[2] = Success (Do not change)
    //[3] = File Name (Do not change)
    //[4] = Animation Time (Do not change, for best results :D)
    setarray .ssm_animate$[0],"30","29","33","slot_","3";
    
    //[0] = Fail Rate "Slot 2"
    //[1] = Fail Rate "Slot 3"
    //[2] = SSS (Do not change)
    //[3] = SSS_Count (Do not change)
    //[4] = SSF (Do not change)
    //[5] = SSF_Count (Do not change)
    //[6] = SFS (Do not change)
    //[7] = SFS_Count (Do not change)
    //[8] = SFF (Do not change)
    //[9] = SFF_Count (Do not change)
    //[10] = Animation Time (Do not change, for best results :D)
    setarray .tsm_animate$[0],"30","30","SSS_","41","SSF_","37","SFS_","41","SFF_","45","3";
    
    // Payment Settings
    // Payment Type
    // 0 = Zeny, 1 = Item, 2 = Zeny&Item
    .payment = 1;
    // [0] = Zeny, [1] = Item ID, [2] = Item Amount;
    setarray .ssm_payment[0],100000,7720,3; // Single Slot Machine Payment Price
    setarray .tsm_payment[0],100000,7720,3; // Triple Slot Machine Payment Price
    
    // DO NOT CHANGE BELOW
    // Payment Text Syntax
    setarray .ssm_payment_message$[0],""+ .ssm_payment[0] +" zeny",""+ getitemname(.ssm_payment[1]) +" x"+ .ssm_payment[2] +"";
    setarray .tsm_payment_message$[0],""+ .tsm_payment[0] +" zeny",""+ getitemname(.tsm_payment[1]) +" x"+ .tsm_payment[2] +"";
    end;
    }


    Afaik, using @nuke command, the nuked character automatically has the explosion effect so no need to use 'specialeffect' command.
    PS: I haven't tried to run it in-game.

    • Love 1
  3. On 4/24/2017 at 6:49 PM, lexaeus said:

    wherein I can recall all characters within the map into one place.

    @lexaeus @padangyoesa I believe this part:

    if(getgmlevel()==0) end;

    should be:

    if(getgmlevel() > 0) end;

     

    with the changes above, all characters will be warped to your current location except GMs.
    I hope this would solve your problem ;) 

     

    please do add 'end;' after 'mapwarp' and it should look like this:

    mapwarp .@map$,.@map$,.@x,.@y,0;
    end;

     

  4. 48 minutes ago, Peten303 said:
    
    The effect does not work  does not increase the damage to demi-human does not attack with wind property 
    
    there is no error in the console and use @reloaditemdb

    This is my Script

    3009,Dragon_Wings,Dragon Wings,4,20,,100,,0,,0,0xFFFFFFFE,63,2,1,,0,0,3022,{ bonus bAtkEle,Ele_Wind; bonus2 bAddRace,RC_DemiHuman,20; bonus2 bAddRace,RC_Player,20; },{},{}

     

    Have you tried to restart your server and check?

  5. @GodKnows Jhomz Hello, Im not 100% sure about this so please test this first on your local server.

    First,
    from your script, kindly look for this line:

    set .@sql$, ((.Options&4)?"position = 0":"online = 1");

    and replace it with this:

    set .@sql$,"position = 0";

     

    Second,
    from your script, kindly look again for this line:

    set .@size, query_sql("SELECT account_id,char_id FROM `guild_member` WHERE guild_id = '"+.@gid+"' AND "+.@sql$,.@aid,.@cid);

    and replace it with this:

    if (.Options&4){ set .@size, query_sql("SELECT account_id,char_id FROM `guild_member` WHERE guild_id = '"+.@gid+"' AND "+.@sql$,.@aid,.@cid); }
    else { set .@size, query_sql("SELECT account_id,char_id FROM `guild_member` WHERE guild_id = "+.@gid,.@aid,.@cid); }

     

    • Upvote 1
  6. @Hossam You wanted to reset the values regardless if players are online or not?

    Tho, i haven't tried to run this in-game but I hope this solves your problem, good luck! ;)

    //===== Stolao Scripts ================================== 
    //= PvP Ladder
    //===== Author ================================================== 
    //= Stolao (Original Author)
    //= Happy (2.0)
    //= Aureon (2.3)
    //===== Current Version: ===================================== 
    //= 2.3(unofficial)
    //===== Compatible With: ===================================== 
    //= rAthena SVN, Hercules, 3ceam, eAthena
    //===== Description: =========================================
    // Configurable Pvp Ladder
    //===== Comments: ============================================
    //= [Stolao]
    //  Needs bug testing, please report any bugs
    //  Unable to test thurally on my comp atm
    //= [Happy]
    //  Update* I tested it and found tons of bugs, I'm in rush so 
    //  I fixed them myself. It is now working 100%. 
    //  The version is unofficial version. Sorry Stolao I fixed it
    //  Without your permission XD
    //= [Aureon]
    //  Update* I made it all pk values of all characters to be 
    //  deleted upon reset (made through request)
    //  link: https://rathena.org/board/topic/113064-pvp-rank-reset/
    //===== Additional Comments: =================================
    //= 1.00 Initial Release
    //= 1.01 Added Location with veiwing of ladder
    //= 1.02 Added GM Menu
    //= 1.03 Added atcommand
    //= 1.04 Shortend menu script
    //= 1.05 Added PvpPoints into confug and script
    //= 1.06 Added Abuse Protection
    //= 1.07 Made Pvp Points Configurable
    //= 1.08 Fixed typo in Reset Option
    //= 1.09 Made Amount of pvp points earned configurable
    //= 1.0A Ajusted Spacing for easier reading
    //= 1.0B Added Warp to savepoint on abuse into config
    //= 2.0  (unofficial)Fixed bugs on ranking modification and 
    //		 bitwise permissions
    //= 2.0b minor fix on resetting the ladder
    //= 2.1 tested fix to ladder reset part
    //= 2.3 reset all characters it may be offline or online characters
    //===== Contact Ifo: =========================================
    //= [Stolao] 
    // 	Email: [email protected]
    //= [Happy] 
    // 	Email: http://hercules.ws/board/user/164-happy/
    //============================================================
    prontera,139,174,6	script	PvP Rank	837,{
    	mes "[Ladder Event]";
    OnPvpLadder:
    	mes "Ranking";
    	if(getgmlevel() >= .GM){ 								// Menu Generator for GM and Normal Player
    		set .@i,select("View Ranking:Leave:Reset PVP Stats");
    	} else {  
    		set .@i,select("View Ranking:Leave"); 
    	}
    	switch(.@i) { 											// Where generated menu goes to
    		case 3: 											// DReset PvP Stats
    			mes "Are you sure you want to delete";
    			mes "ALL pvp records?";
    			if(select("No:Yes")==1) close;
    			next;
    			mes "Wait one Moment...";
    			mes ".....";
    			cleararray $TOPPK$[0],0,127; 					// Clears array where top rank char names are stored.
    			cleararray $TOPPK[0],0,127; 					// Clears array where top rank kill count are stored.
    			query_sql("UPDATE `char_reg_num_db` SET `value` = '0' WHERE `key` = 'pl_pkcount'"); // Clears kills saved on character variables (NEW: on all characters it may be online or offline)
    			mes "Cleared pvp data.";
    			close;
    		case 1: 											// View PvP Records
    			for(set .@i,1; .@i <= .MaxPlayers; set .@i,.@i+1){
    				mes (.@i)+": "+ $TOPPK$[.@i] +" with "+ $TOPPK[.@i] +" kills";
    				if((.@i) % 10 == 0){ // A nice way to create multiple pages by 10 ranks
    					if(select("Read More:Leave") == 1){ 
    						next; 
    					} else { 
    						close; 
    					}
    				}
    			}
    		case 2:												// Leave
    			close;
    	}
    close;
    OnPCKillEvent:
    	if(.Options&2 && (agitcheck() || agitcheck2())){ 		// Check to disable during woe
    		end;
    	}
    	if(getgmlevel() <= .GmLvl){
    		if(.Options&1 || strcharinfo(3) == .Map$){		
    			if(.Options&32){ 							// Repeatkill abuse counter
    				for(set .@i,.RepeatCount; .@i > 0; set .@i, .@i-1){
    					set @PKedID[.@i+1], @PKedID[.@i]; 	// Old killedrids moved to upper array elements
    				}			
    				set @PKedID,killedrid; 					// set killedrid to [0] position.				
    				for(set .@i,1; .@i < .RepeatCount; set .@i,.@i + 1){
    					if(@PKedID[0] == @PKedID[.@i]){ 		// check if killerid same as the previously killedrids
    						set .@s, .@s + 1; 					// if all 5 past killedrid are the same then this would become 5 and trigger protection
    					} else {
    						break; 			// else stop checking
    					}
    				}
    			}			
    			if(.@s < .RepeatCount){						// if not abusing kills according to repeatcount
    				set pl_pkcount,pl_pkcount + 1;
    				if(.Options&16) { 
    					set getd(.PointType$),getd(.PointType$) + .PvpEarned; // add points
    				}
    				if(pl_pkcount > $TOPPK[.MaxPlayers]) { // If higher than last ranker
    					for(set .@i,1; .@i <= .MaxPlayers ; set .@i, .@i + 1) { // Reorganize the ranking
    						if (pl_pkcount > $TOPPK[.@i] && !.@newrank) {
    							set .@newrank,.@i;
    						}
    						if (strcharinfo(0) == $TOPPK$[.@i] && .@newrank == .@i) {
    							setarray $TOPPK$[.@i], strcharinfo(0);
    							setarray $TOPPK[.@i], pl_pkcount;
    							set .@newrank,0;
    							break;
    						}
    						if ( strcharinfo(0) == $TOPPK$[.@i] && .@newrank != .@i) {
    							set .@existrank,.@i;
    							break;
    						}
    					}
    					if (.@newrank) {
    						for (set .@e,.MaxPlayers; .@e >= 0 ; set .@e, .@e - 1) {
    							if (.@e < .@existrank) {
    								setarray $TOPPK$[.@e + 1], $TOPPK$[.@e]; // move this ranker backward
    								setarray $TOPPK[.@e + 1], $TOPPK[.@e];
    							}
    							if (.@e == .@newrank) {
    								setarray $TOPPK$[.@e], strcharinfo(0);
    								setarray $TOPPK[.@e], pl_pkcount;
    								if(.Options&4) {
    									announce strcharinfo(0)+"'s rank is now "+(.@e)+"",bc_all;
    								}
    								break;
    							}
    						}
    					}
    					
    				}
    			} else {
    				if(.Options&64) { 
    					warp "Save",0,0; 
    				}	
    			}
    		}
    	}
    	end;
    
    
    
    OnInit:
    	set .GM,99;
    	set .MaxPlayers,10;		// Number of Players held in Records
    	set .GmLvl,99;			// Highest GM level Able to Hold a Record, if Option 8 is Disabled
    	set .Map$,"guild_vs3";		// Map Pvp Must Take Place on in order to Count, if Option 1 is Disabled
    	set .RepeatCount,5;		// Number of kills on same person before it detects abuse, max of 128
    	set .PointType$,"#PvpPoints";	// Name of points earned, E.G. #Cash Points
    	set .PvpEarned,1;		// Number of Pvp Points Earned
    	set .Options,4|32|64;			// Bitwise Variable
    		//   1:  Only Counts Kills on .Map$ if Disabled
    		//   2:  Disables Record Holding during WOE
    		//   4:  Announce When Someone Takes a Rank
    		//   8:  Allow Gms Above level .GmLvl To Be on Ladder
    		//   16: Gain PvP Points on Kills (#PvpPoints)
    		//   32: Repeat Kill Protection
    		//   64: Warp to Save on abuse
    		// Example: "1+2+4 = 7" No Forced Map, Disables Record Holding during WOE and Announces New Record Holders
    	bindatcmd("PvpLadder"	,"Pvp_Ladder::OnPvpLadder",0,99);
    		waitingroom "PvP Rank - ترتيب الشغب",0;
    	end;
    }
    
    pvp_n_1-5	mapflag	nobranch
    pvp_n_1-5	mapflag	novending
    pvp_n_1-5	mapflag	nosave
    pvp_n_1-5	mapflag	nowarp
    pvp_n_1-5	mapflag	novending
    pvp_y_1-2	mapflag	nobranch
    pvp_y_1-2	mapflag	novending
    pvp_y_1-2	mapflag	nosave
    pvp_y_1-2	mapflag	nowarp
    pvp_y_1-2	mapflag	novending
    pvp_y_1-4	mapflag	nobranch
    pvp_y_1-4	mapflag	novending
    pvp_y_1-4	mapflag	nosave
    pvp_y_1-4	mapflag	nowarp
    pvp_y_1-4	mapflag	novending

     

    • Like 1
  7. @bdgro Kindly look for this part of your script:

    mes "[LMS Manager]";
    mes "Thank you for registering Mr. " + strcharinfo(0) + ", Have fun!";
    close2;
    npctalk ""+strcharinfo(0)+" has registered for the Last Man Standing.";
    warp "pvp_n_7-5",103,99;
    end;

     

    and change it to:

    mes "[LMS Manager]";
    mes "Thank you for registering Mr. " + strcharinfo(0) + ", Have fun!";
    sleep2 1000;
    npctalk strcharinfo(0)+" has registered for the Last Man Standing.";
    warp "pvp_n_7-5", 103, 99;
    end;

     

    I hope that solves your problem, good luck! ;)

  8. On 10/4/2017 at 12:04 AM, Kidlatsv said:

    I need help, obviously I SUCK at scripting, I made this and have been trying, for hours, to figure out what's wrong with it, so I need a little help.

    Please be gentle, and pardon the poor dialogue.

     

    @Kidlatsv Im not a good scripter but tried optimized your script a bit. I haven't tried to run it in-game.
    I hope this solves your problem, good luck! ;)

    mag_dun01,127,123,3	script	Dancing Flame	802,{
    	if (!#10gallonstarted){
    		mes .npc$;
    		mes "I am a fire elemental, and I have a proposal for you, "+strcharinfo(0)+".";
    		next;
    		if (select("What is it?","I don't have for this, sorry.") != 1){
    			mes .npc$;
    			mes "That's too bad, come back when you change your mind.";
    			close;
    		}
    		mes .npc$;
    		mes "I know of thy quest to save Midgard and I wish to help you on your journey.";
    		next;
    		mes .npc$;
    		mes "In order to aid you I shall make a headgear imbued with some of my powers, which will surely be of great use to you.";
    		next;
    		mes "["+strcharinfo(0)+":]";
    		mes "What headgear would that be?";
    		next;
    		mes .npc$;
    		mes "...a ^00c000"+getitemname(.rewardid)+"^0000000.";
    		next;
    		mes .npc$;
    		mes "It won't come for free though.";
    		next;
    		mes .npc$;
    		mes "I will need you to collect items which I require in order to make the headgear for you.";
    		next;
    		mes "["+strcharinfo(0)+".]";
    		mes "What do you need?";
    		next;
    		mes .npc$;
    		mes "I need the following items:";
    		mes "^00FF00_______________________________^000000";
    		for ( .@i = 0; .@i < getarraysize(.require); .@i += 2 ){
    			mes .require[.@i+1]+" "+getitemname(.require[.@i]);
    		}
    		mes "Bring me these items and I sh-all make the headgear for you, now go.";
    		#10gallonstarted = 1;
    		close;
    	}
    	mes .npc$;
    	mes "You have returned, have you collected the items I require?";
    	next;
    	mes "["+strcharinfo(0)+".]";
    	mes "Yes, I have!";
    	next;
    	mes .npc$;
    	mes "Very well then, let's check...";
    	next;
    	for ( .@i = 0; .@i < getarraysize(.require); .@i += 2 ){
    		if (countitem(.require[.@i]) < .require[.@i+1]){
    			.@count++;
    		}
    	}
    	if (.@count){
    		mes "I'm sorry, but you need to collect more of the required items.";
    		close;
    	}
    	for ( .@j = 0; .@j < getarraysize(.require); .@j += 2 ){
    		delitem .require[.@j], .require[.@j+1];
    	}
    	mes .npc$;
    	mes "Excellent, you have collected all that I require!";
    	mes "May it serve you well.";
    	getitem .rewardid, 1;
    	next;
    	mes .npc$;
    	mes "If you wish for me to make you another, all you have to do is bring me the required items again.";
    	close;
    
    
    OnPCLoadMapEvent:
        showevent 1,0;
        end;
    	
    OnInit:
    	// CONFIGURATION
    	// set this to your npc name
    	.npc$ = "[Dancing Flame]";
    	
    	// set this to your reward item id
    	.rewardid = 18940;
    	
    	// item requirements syntax: <item id>, <item amount>, <item id>, <item amount>,...
    	setarray .require[0], 2248, 1, 7098, 100, 7097, 85, 7122, 70, 7120, 55, 994, 40, 716, 25, 7426, 10;
    	
    	while(1){
    		npctalk "Greetings, hero, please approach.";
    		sleep2 60000;
    	}
    	end;
    }

     

    • Upvote 1
  9. 16 minutes ago, FXFreitas said:

    Probably the Oficial Roullete (Made and disabled soon after by Gravity rsrsrs).

    But I don't uderstand what he means...

    He probably meant, as soon as the roulette starts, it should animate (moving pictures) before the player gets the reward, in his case there's no animation happened.

    Just like here in the video: 

     

  10. 33 minutes ago, Neutral said:

    Hello all, right now I'm in the process of learning how things work in rAthena and I came across mapflags and noticed all my available options and what they offer me and thought it was a really cool feature. However I also wanted to know something in particular. How does one go about adding their own custom/new mapflag if they so desire it?

    My first instinct was to look on the wiki. I went there and noticed there was a mapflag section under scripting but unfortunately that just directs me to a 404 page so I can't view anything. I also tried googling and searching on the forums but couldn't find an existing topic that already talks about this in particular. I also found the process of adding a new mapflag but it was for hercules on their wiki, I wanted to play it safe though by not following those instructions since I know hercules and rAthena are not one of the same. Therefore I decided to make this thread here since I'm pretty certain making a new mapflag would count as a source edit. Thank you all for your support. 

    You can use this for your referrence https://github.com/rathena/rathena/wiki/Mapflag

×
×
  • Create New...