Jump to content

wallaby

Members
  • Content Count

    78
  • Joined

  • Last visited

Posts posted by wallaby


  1. Hi everyone,

     

    So I have this:

     

    if(st->luk > 299) rate = 0;

     

    which gives me status ailment immunity at a total of 300 Luk, it works. Is there a way to set it to do the same but with a BASE Luk of 100? Does this work?

     

    if(bst->luk > 99) rate = 0;

     

    Thanks for your time.

     


  2. I would personally not recommend those "pre-bundled" RO hostings. I had a few unpleasant experiences with them eg. Poor in Support, Product not delivered as promised, and like what x13th said, they're mostly resellers and they tend to oversell, meaning their clients and services get too congested, etc. resulting in poor performance and service.

     

    If you spend enough of time on forums, there are some veterans who offer server setup for a one time fee. If you go with those pre-bundled RO hostings, you'd be paying at least 200% more than what it actually costs monthly. Furthermore when you're new and funds are not flowing as they should, $20-40 a month could be quite a sum to maintain. Owh not to mention these people have access to your scripts and what not that you spent a lot of time working on (some even purchased or hired product), and they could re-use as their own.

     

    There are some hosting companies out there like DigitalOcean, Kimsufi, etc. Do remember to check out their server locations first before you commit.


  3. Dear all,

     

    I've been looking at balancing server features and it seems there is a tendency for players to abuse this feature: Reflect Damage (not the skill but from Orc Lord, High Orc, Valkyrie Manteau, etc.)

     

    Question is, where should I go to or what should I do to cap the Reflected Damage to let's say... 30%?

     

    Thanks a lot!


  4. Dear all,

     

    I've tried many ways trying to get status ailments to work on my SHR server, but somehow it won't work. I've tried:

     

    1. Changing the settings at conf > battle > status, lowered it to 20, so that it'll need 5x the original values to work but it doesn't.

    2. Changing src > map > status.c, changed the values as well of the case sc_stun etc, doesn't work.

    3. I also tried changing the src > map > status.c values of sc_stun from total of the stats to the base base value, doesn't work either.

     

    What am I doing wrong? =(

     

    Thanks for your time.


  5. Dear all,

     

    I've been trying to make this work and I've seen it being done on other scripts which I do not have my hands on. What I'm trying to do is:

     

    I have a monster that's summoned using this:

     

    monster "prontera",100,100,"Test Poring",1002,1,strnpcinfo(0)+"::OnPoringKilled";

     

    Then I've this label:

     

    "OnPoringKilled" paired with "getmapxy" and another "monster", but I cannot seem to get it to work.

     

    Anyone has a way to get this work? Thanks a lot!

     

    And... Thank you for looking into this.


  6. It has been a real blessing and honour having Dastgir to work with over many projects for my server. As small as consultation (what to and what not to do), up to as big as server migration, I believe there's no one else I've ever met, encountered, engaged, could do such a wonderful work as Dastgir. If Dastgir is a brand, yes, it will be a brand that you can trust.

     

    I will not hesitate to approach Dastgir should I ever need something to be done. Make sure you guys treat him well. So my verdict would be:

     

    Professionalism: 20/10

    Timing (Delivery): 10/10

    Communication: 15/10

    Consultation: 20/10

    Price: 20/10

     

    Thanks Dastgir!


  7. Hey guys and girls,

     

    I'm not very familiar how attachnpctimer works, I came upon it in the hourly reward script which I found somewhere. My question is...

     

    1. Can I attach the same character to multiple NPCs using the attachnpctimer? For example

     

    NPC_A has attachnpctimer ""+strcharinfo(0)+""; and

    NPC_B has also attachnpctimer ""+strcharinfo(0)+"";

     

    Will they overlap and cancel/restart each others' timers? If this doesn't work, what would you suggest then so that I can time my players when they do many different quests which have time limits to them.

     

     

    2. If I didn't stopnpctimer; and/or detachnpc... what happens if I talk to NPC_A and/or NPC_B again?

     

     

    Thanks again for your time looking into this.


  8. I needed new items for my server and I didn't know who to get hold working on them. I've tried approaching a few people but, the feedbacks given on them were not so "convincing"... Then after searching for some time, I came upon Haziel. Wasn't too sure what I'd be getting but, I thought since he is a member of DArt, I am quite confident he'll deliver well - And so he did.

     

    I got Haziel working on 4 initial sets, but upon seeing the result of the first, yes first equipment, I got him to work on 6 more. I paid him 50% upfront even though he said it's not necessary but I believe, this man should be given what he deserves!

     

    This my verdict:

    Professionalism: 100%

    Communication: 100%

    Flexibility: 100%

    Enthusiasm: 100%

    Product: 100%

    ... and the list goes on.

     

    and owh... Price: Definitely worth it!

     

    I'm pretty surprised how come there's so few feedback on Haziel's work so far urm...

     

    Conclusion:

    Haziel comes HIGHLY RECOMMENDED!


  9. Heya guys, I'm using this script by Annie? What happened is that, the stylist reads from my offline server fine... but when it's online, it doesn't... I don't know what seems to be the matter tho... can anyone help? Thanks for looking!

     

    
    // credits to Annieruru
    function	script	ValueConvert	{
    	set .@num, atoi(""+getarg(0));
    	if ( .@num == 0 || .@num >= 2147483647 ) return getarg(0);
    	set .@l, getstrlen(""+.@num);
    	for ( set .@i,0; .@i < .@l; set .@i, .@i + 1 ) {
    		set .@num$, .@num % pow(10,.@i+1) / pow(10,.@i) + .@num$;
    			if ( (.@i+1) % 3 == 0 && .@i+1 != .@l ) set .@num$, ","+ .@num$;
    	}
    	return .@num$;
    }
    
    
    -	script	Stylist	-1,{
    OnTalk:
    	mes "^0055FF[ Stylist ]^000000";
    	mes "I can change your appearance.";
    	next;
    	if( .cost_size ){
    		mes " ";
    		mes "^777777[ SERVICES PAYMENT ]^000000";
    		for( .@i = 0; .@i < .menu_size; .@i++ )
    			if( .npc_mode & ( 1 << .@i ) )
    				if( .cost[.@i] )
    					mes "^0055FF"+.menu_name$[.@i]+" : ^777777"+ValueConvert( .cost[.@i] )+" "+.currency_name$[.@i]+"^000000";
    				else
    					mes "^0055FF"+.menu_name$[.@i]+" : ^777777Free of Charge^000000";
    	}
    	next;
    	@style = ( select( .npc_menu$ ) - 1 );
    	@style_value = getlook( .look_type[@style] );
    	deletearray .@blacklist;
    	switch( @style ){
    		case 0: .@blacklist$ = ","+getd( ".blacklist_hairstyle_"+Sex+"$" )+","; break;
    		case 1: .@blacklist$ = ","+getd( ".blacklist_haircolor_"+Sex+"$" )+","; break;
    		case 2: if((Class > 4212) || (Class > 4215) || (Class > 4217) || (Class > 4218) || (Class > 4219) || (Class > 4220) || (Class > 4221) || (Class > 4222) || (Class > 4223) || (Class > 4224) || (Class > 4225) || (Class > 4226) || (Class > 4227) || (Class > 4228) || (Class > 4229) || (Class > 4230) || (Class > 4231) || (Class > 4232) || (Class > 4233) || (Class > 4234) || (Class > 4235) || (Class > 4236) || (Class > 4237) || (Class > 4238) || (Class > 4239) || (Class > 4240) || (Class > 4241) || (Class > 4242) || (Class > 4243) || (Class > 4244)){
    					mes "^0055FF[ Stylist ]^000000";
    					mes "Sorry, I cannot help you right now.";
    					close;
    				} else{
    				.@blacklist$ = ","+getd( ".blacklist_cloth_"+Sex+"$" )+","; break;
    				}
    		default: break;
    	}
    
    
    	.@style_number = .min_style[@style];
    
    	addtimer 1000,strnpcinfo(0)+"::OnPCLogoutEvent";
    	do{
    		next;
    		message strcharinfo(0),.menu_name$[@style]+" : "+.@style_number+"th";
    		.@removed = 0;
    		if( compare( .@blacklist$,","+.@style_number+"," ) ){
    			message strcharinfo(0),"[ REMOVED ] "+.menu_name$[@style]+" : "+.@style_number+"th";
    			.@removed = 1;
    			// setlook .look_type[@style],.min_style[@style];
    		}else{
    			setlook .look_type[@style],.@style_number;
    		}
    		
    		.@next = .@style_number + 1;
    		.@prev = .@style_number - 1;
    		if( .@next > .max_style[@style] ) .@next = .min_style[@style];
    		if( .@prev < .min_style[@style] ) .@prev = .max_style[@style];
    		
    		@select = prompt( (( .@backward )?"Backward":"Forward" )+" - [ ^777777"+(( .@backward )? .@prev:.@next )+"th Style^000000 ]",
    					(( !.@backward )?"Backward":"Forward" )+" - [ ^777777"+(( !.@backward )? .@prev:.@next )+"th Style^000000 ]",
    					"Jump to a Style",
    					( .@removed )?"":"^0055FFOkay, I want this "+.menu_name$[@style]+"^000000" );
    					
    		if( @select == 2 ) .@backward = !.@backward;
    		
    		switch( @select ){
    			case 1:	
    			case 2:
    				.@style_number = (( .@backward )? .@prev:.@next );
    				break;
    			case 3:	
    				message strcharinfo(0),"Available Style : "+.min_style[@style]+" ~ "+.max_style[@style]+".";
    				input .@style_number,.min_style[@style],.max_style[@style];
    				break;
    			case 4:
    				.@atoi_currency = atoi( .currency$[@style] );
    				if( @style_value == .@style_number ){
    					message strcharinfo(0),"Swt..that is your original hairstyles.";
    					break;
    				} else if( .@atoi_currency ){
    					if( countitem( .@atoi_currency ) >= .cost[@style] ){
    						.@success = 1;
    						delitem .@atoi_currency,.cost[@style];
    					}
    				}else{
    					if( getd( ""+.currency$[@style] ) >= .cost[@style] ){
    						.@success = 1;
    						setd( ""+.currency$[@style] ),( getd( ""+.currency$[@style] ) - .cost[@style] );
    					}
    				}
    				if( .@success ){
    					message strcharinfo(0),"Enjoy your NEW "+.menu_name$[@style]+" !!";
    					@style_value = .@style_number;
    					close2;
    				}else{
    					mes "You dont have enough "+.currency_name$[@style]+" to change this "+.menu_name$[@style]+".";
    					mes "Cost : ^777777"+ValueConvert( .cost[@style] )+" "+.currency_name$[@style]+"^000000";
    					close2;
    				}
    
    			default:
    				setlook .look_type[@style],@style_value;
    				break;
    		}
    	}while( @select != 4 && @select != 255 );
    	deltimer strnpcinfo(0)+"::OnPCLogoutEvent";
    	@select = 0;
    	end;
    
    OnPCLogoutEvent:
    	if( @select )
    		setlook .look_type[@style],@style_value;
    	end;
    	
    OnInit:
    	// NPC Mode ( Bitmask )
    	//	1 - Enable Hairstyle
    	//	2 - Enable Hair Color
    	//	4 - Enable Cloth Color
    	.npc_mode = 7;
    	
    	// Menu Name
    	setarray .menu_name$,
    		"Hair Style",
    		"Hair Color",
    		"Cloth Color";
    	
    	// Payment Currency + Cost
    	// Can be ITEM ID or Any Variable.
    	setarray .currency$,
    		"0",	//	Hairstyle - Ex. need Apple
    		"0",	//	Hair Color - Ex. need CASHPOINTS
    		"0";	//	Cloth Color - Ex. need Zeny
    		
    	setarray .cost,
    		0,	//	Hairstyle ( 123 Apple )
    		0,	//	Hair Color ( 5,432 CASHPOINTS )
    		0;	//	Cloth Color ( 12,345 Zeny )
    		
    	// Blacklisted Style for each style and each gender.
    	// --- Female ---
    	.blacklist_hairstyle_0$ = "0";
    	.blacklist_haircolor_0$ = "0";
    	.blacklist_cloth_0$ = "0";
    	// --- Male ---
    	.blacklist_hairstyle_1$ = "0";
    	.blacklist_haircolor_1$ = "0";
    	.blacklist_cloth_1$ = "0";
    
    	// Dont edit
    	setarray .min_style,getbattleflag( "min_hair_style" ),getbattleflag( "min_hair_color" ),getbattleflag( "min_cloth_color" );
    	setarray .max_style,getbattleflag( "max_hair_style" ),getbattleflag( "max_hair_color" ),getbattleflag( "max_cloth_color" );
    	.menu_size = getarraysize( .menu_name$ );
    	.cost_size = getarraysize( .cost );
    	setarray .look_type,LOOK_HAIR,LOOK_HAIR_COLOR,LOOK_CLOTHES_COLOR;
    	for( .npc_menu$ = ""; .@i < .menu_size; .@i++ )
    		.npc_menu$ = .npc_menu$ + ( ( .npc_mode & ( 1 << .@i ) )? .menu_name$[.@i]:"" ) +":";
    	for( .@i = 0; .@i < .cost_size; .@i++ ){
    		.@atoi = atoi( .currency$[.@i] );
    		.currency_name$[.@i] = ( ( !.@atoi || getitemname( .@atoi ) == "null" )? .currency$[.@i]:getitemname( .@atoi ) );
    	}
    	end;
    
    }
    
    
    // NPC Lists
    prontera,164,186,3	script	Stylist#main	122,{
    	doevent "Stylist::OnTalk";
    }
    
    //prontera,115,181,5	duplicate(Adv. Stylist#main)	Adv. Stylist#1	878
    //prontera,115,181,5	duplicate(Adv. Stylist#main)	Adv. Stylist#2	878
    //prontera,115,181,5	duplicate(Adv. Stylist#main)	Adv. Stylist#3	878
    

     

×
×
  • Create New...

Important Information

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