Jump to content

15peaces

Members
  • Content Count

    115
  • Joined

  • Last visited

  • Days Won

    2

Posts posted by 15peaces


  1. 2014 Client Patch

    • *2014 Client Support patch added
      -The support seems to be stable enough for public use. However there might be a few (hidden) bugs left.
      -Implemented the Roulette Game feature.
      -Implemented per-character sex change feature.
      -Implemented Hotkey Rotate Packet.
      -Implemented Vending & Buying Store report Packet.
      --When user close shop, the client showing report for buy/sell
      -Special thanks to HerculesWS and rathena for the base.
       
    • *Complete rewrite of message-system. (Thanks to hercules)
      -This was made to fix various bugs with colored messages related to 2014 ragexe.
       
    • *PLEASE DON'T FORGET TO RUN THE SQL-UPGRADES!

     

    Patch


  2. all_one,187,160,5	script	EnOri Slot Machine	563,{
       	if( getgmlevel() == 99 ) {
       		mes "Welcome Administrator.";
       		mes "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( !.payment || .payment == 2 ) { set Zeny,zeny - .ssm_payment[0]; }
    				if( .payment ) { delitem( .ssm_payment[1], .ssm_payment[2] ); }
    				if( .soundeffects ) { soundeffect "se_cash_provider.wav",0; }
    				set .@a, rand(1,100);
    				if( .@a < atoi(.ssm_animate$[0]) ){ set .@a, 1; } else { set .@a, 2; }
    				set .@b, 1;
    				while( .@b < atoi(.ssm_animate$[.@a]) ) {
    					cutin .ssm_animate$[3] + .@b,4; sleep2 ( ( atoi(.ssm_animate$[4]) * 1000 ) / atoi(.ssm_animate$[.@a]) ); set .@b,.@b+1;
    					}
    				if( .@a == 1 ){ 
    					cutin .ssm_animate$[3] + atoi(.ssm_animate$[.@a]),4;
    					dispbottom "Failed";
    					} 
    				else {
    					cutin .ssm_animate$[3] + atoi(.ssm_animate$[.@a]),4;
    					if( !.prize || .prize == 2 ) { set Zeny, Zeny + .ssm_prize[0]; }
    					if( .prize ) { getitem .ssm_prize[1], .ssm_prize[2]; }
    					if( .soundeffects ){ soundeffect "rog_steal coin.wav",0; }
    					}
    				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( !.payment || .payment == 2 ) { set Zeny, Zeny - .tsm_payment[0]; }
    				if( .payment ) { delitem( .tsm_payment[1], .tsm_payment[2] ); }
    				if( .soundeffects ) { soundeffect "se_cash_provider.wav",0; }
    				// Slot 1 = 100% Chance for success. (Because I didn't make a fail animation for it.
    				set .@2, rand(1,100); //Rolls dice for Slot 2
    				set .@3, rand(1,100); //Rolls dice for Slot 3
    				if( .@2 <= atoi(.tsm_animate$[0]) && .@3 <= atoi(.tsm_animate$[1]) ){ set .@a, 8; }
    				else if( .@2 <= atoi(.tsm_animate$[0]) && .@3 > atoi(.tsm_animate$[1]) ){ set .@a, 6; }
    				else if( .@2 > atoi(.tsm_animate$[0]) && .@3 <= atoi(.tsm_animate$[1]) ){ set .@a, 4; }
    				else { set .@a, 2; }
    				set .@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]) ); set .@b,.@b+1;
    					}
    				cutin .tsm_animate$[.@a] + atoi(.tsm_animate$[.@a+1]),4;
    					if( .@a == 2 ){
    						if( !.prize || .prize == 2 ) { set Zeny, Zeny + .tsm_prize[0]; }
    						if( .prize ) { getitem .tsm_prize[1], .tsm_prize[2]; }
    						if( .soundeffects ){ soundeffect "rog_steal_coin.wav",1; }
    					} else { dispbottom "Failed"; }
    				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;
    			}
    	 
    	OnInit:
    	// 0 = Disabled, 1 = Enabled.
    	set .soundeffects, 0; 
    	 
    	//[ 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 )
    	setarray .ssm_animate$[0],"80","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 )
    	setarray .tsm_animate$[0],"80","30","SSS_","41","SSF_","37","SFS_","41","SFF_","45","3";
    	 
    	// Prize Settings
    	// Prize Type
    	// 0 = Zeny, 1 = Item, 2 = Zeny&Item
    	set .prize, 1;
    	// [0] = Zeny, [1] = Item ID, [2] = Item Amount;
    	setarray .ssm_prize[0],125,501,10;
    	setarray .tsm_prize[0],800000,7620,1;
    	 
    	// Payment Settings
    	// Payment Type
    	// 0 = Zeny, 1 = Item, 2 = Zeny&Item
    	set .payment, 2;
    	// [0] = Zeny, [1] = Item ID, [2] = Item Amount;
    	setarray .ssm_payment[0],100,984,35; // Single Slot Machine Payment Price
    	setarray .tsm_payment[0],800000,984,35; // 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;
    }
    	 
    	//Duplicates
    	all_one,187,160,5	duplicate(EnOri Slot Machine)	EnOri Slot Machine#2slot	563
    	all_one,187,160,5	duplicate(EnOri Slot Machine)	EnOri Slot Machine#3slot	563
    

     

    There you go... it's untested but should be working ^^


  3. Isn't this allready implemented on hercules? o.o

     

    I've done this some time ago on my private/testing Emu:

    Commit 1: https://github.com/15peaces/15-3athena/commit/fc33d140ba2720f71cdd7b128a003c79e1548642

    Commit 2: https://github.com/15peaces/15-3athena/commit/33859afe0f8430630eb2e05afe51517158420ac2

     

    Notes:

    • The commits are huge and contain some other changes, so you'll need to read them carefully...
    • It's taken from rAthena, but I couldn't find the original commit anymore. You could use mine as a reference, it's working fine for me.
    • However, my emu is eAthena based, so there might be some things you must change to get it to hercules...

  4. Downrefitem

    • Added patch for script command downrefitem
      *downrefitem <equipment slot>{,<downgrade_count>};
      -This command will downgrade an item by - 1 (unless optional <downgrade_count> is provided)
      -in the specified equipment slot  of the invoking character.
      -So the item will not be destroyed unlike in the
      -failedrefitem script command. This will also display a 'refine failure'
      -effect on the character and put appropriate messages into their chat
      -window.

    Commit
    Patch


  5. use the boarding halter.

     

    12622,Boarding_Halter,Boarding Halter,2,20,,0,,,,,0xFFFFFFFF,7,2,,,,,,{ sc_start SC_ALL_RIDING,-1,1; },{},{}
     

    it's also aviable in item_db_3ceam.txt.


     


  6. Itembound
     

    • *Added patch for Account/Guild/Party/Character Bounded Items System, thanks to rAthena
      -Adds script commands 'getitembound', 'getitembound2', and 'countbound'
      -Adds at commands @itembound and @itembound2
      -Adds bound_item_drop configuration
      -Documentation updated
      -DON'T FORGET TO UPDATE YOUR SQL TABLES USING 3ceam_Itembound_Patch_r809+.sql AND 3ceam_Itembound_log_Patch_r809+.sql!
      -Tested and working on 3ceam r809 ( 3CeAM/3CeAM@95a492f )
      -You'll need item-v5 packets, so you'll need to use packetver 20131223 or newer!

     

    Commit

    Patch

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.