Jump to content

Mabuhay

Members
  • Posts

    446
  • Joined

  • Last visited

  • Days Won

    34

Posts posted by Mabuhay

  1. 2 minutes ago, Humble_Bee said:

    That only works if my game is reading stat point gains from the statpoint.txt file. My game is creating the stat points to give per level based on the formula I wrote (outside of that one extra amount I'm trying to add at the end). The reason I'm using a set formula is so that I don't have to edit level after level of stat point numbers. It saves me time.

    Oh yah i forgot about that. 

    Anyways, this is how I understand the original code :
     

    	else //Default increase
    		return ((level+15) / 5);

    translate to :

    ((1 level up + 15) / 5) per level up

    Meaning, every level up would give player + 3 status points.

    supposedly it should be around 3.8 but since the emulator cannot read decimal, it automatically rounds down(?)

     

    if you want to add +217 status points, you may be looking at the wrong area.

    Im not sure because i havent tested but if you could, try looking for this part on pc.cpp 

    int pc_checkbaselevelup(struct map_session_data *sd)
    
    ....
    
    next = pc_gets_status_point(sd->status.base_level);
    sd->status.base_level++;
    sd->status.status_point += next;

    add this below

    if ( sd->status.base_level == 201 )
    	sd->status.status_point += 217;

     

    Tell me how is it.

  2. 1 hour ago, Humble_Bee said:

    When a player reaches max level (201 for me), I want the game to give them 217 extra stat points to play with

    You can adjust stat points in rathena/db/pre(re)/statpoint.txt

    Go to the line (Line 201 for level 201) that you want to add stats points and manually add +217 to current value until you reach the max level.

     

  3. Novice vs Zombie - Yet another version


    UPDATE:

    version 1 = I removed all my modifications on this script
    version 2 = Has timers and will most likely be in-conflict with other event scripts i made.

     

     

    Works the same with my other event scripts.

    Regular Novice v Zombie script. I just updated it and added some features.

    Enjoy.

     

    I dont know who exactly made this idea so i cant credit him properly.

     

    This is a response post from this topic:

     

     


     

  4. 11 minutes ago, Veilside said:

    Hello @Mabuhay you have a typo on line 101, missing semi colon ( ; ) 

    I'm also testing this script ?

    Is there a way to safely, end the event?

     

    it is here. 

    mapannounce strnpcinfo(4), "<Last Man Standing> Last Man Standing wins the event!", bc_blue

    just add ;

    mapannounce strnpcinfo(4), "<Last Man Standing> Last Man Standing wins the event!", bc_blue;

     

    For now, i will leave it as is.

    Maybe I will update this with the same pattern as my other event scripts previously posted.

  5. @Veilside

    1.They need to be in the guild. Prior to that, guild leader should register their guild first.

    2. Dying players will automatically respawn after x seconds back to the event map.

     

    @spinzaku

    1. Max guild member registration and Gepard Check might or might not be added. Depends on my mood actually xD. As I said on the original post :

    On 11/6/2019 at 3:40 PM, Mabuhay said:

    For modifications, you can freely adjust by yourself. I may or may not upgrade this script.

     

    2. Yes.. 1 kill = 1 point.

  6. -	script	jklasdf	-1,{
    OnInit:
        setarray .mobid, 1002, 1001;
        setarray .map$, "prt_fild08", "prontera";
        end;
    
    OnNPCKillEvent:
        .@index = inarray(.mobid[0], killedrid );
        if ( strcharinfo(3) == .map$[.@index] ) {
    		announce strcharinfo(0) +""+ ( strcharinfo(1) ? " of party "+ strcharinfo(1):"" ) +" has killed "+ getmonsterinfo(killedrid,MOB_NAME)+" at "+ strcharinfo(3), bc_all;
        }
    	end;
    }

    list down all mvps and match the maplist corresponding to the spawn id. This may cause trouble on mvp with multiple spawn maps like Atroce but will help you at least (untested).

  7. 14 minutes ago, arthurcunha said:

    Could someone help me out, I'm looking for a script that adds Team Slot by ZENY, have you ever seen it? just like the RONDEL that transforms to [1] I just want the vacant slot.

    I dont get what Team Slot means.

    I assume you meant these?

    https://github.com/rathena/rathena/blob/master/npc/merchants/socket_enchant.txt

    https://github.com/rathena/rathena/blob/master/npc/merchants/socket_enchant2.txt

  8. @gnashxalex

    -    script    script_gh    -1,{
    OnAtCmd:
    	.@gid = getcharid(2);
    	if( !getmapflag(strcharinfo(3),mf_town)) {
    		dispbottom "@"+.@atcmd_command$+" failed. Can only be used in towns.", 0xff0000;
    		end;
    	}
    	for( .@i = 0; .@i <= 30; .@i++ )
    		if ( getd( "$GROOM" + .@i ) == .@gid || getd( "$GROOMB" + .@i ) == .@gid )
    			.@owned++; // Checks if owns a guild room..
    	if ( .@owned )
    		warp "sanctum",56,61;
    	else
    		dispbottom "Your guild does not own a room";
    	end;
    
    OnInit:
    	bindatcmd("guildhouse",strnpcinfo(0)+"::OnAtCmd");
    }

    You should have checked your mapserver. It will tell you your problem.

    Your original code has missing curlys just by the look of it.

  9. 1 minute ago, Surefirer said:

    Is there anyway to apply the exp penalty on MVP monster? Like you said, its too fast to level up by kill MVP. 

    There should be. I haven't tested or done myself but surely there is a way.

    Still need to read the src to see how level penalties are applied. 

    If someone who knows might be able to help you with that. 

    For now, I dont have the luxury time to check the src for this. 

    • Upvote 1
  10. 3 minutes ago, Surefirer said:

    Thanks. This make sense for me.

    I have tried to set level penalty for kill boss but I still receive same exp after I kill boss even the level penalty file has the info below, do you know why?

    1,CLASS_BOSS,16,40
    1,CLASS_BOSS,15,115
    1,CLASS_BOSS,14,120
    1,CLASS_BOSS,13,125
    1,CLASS_BOSS,12,130
    1,CLASS_BOSS,11,135
    1,CLASS_BOSS,10,140
    1,CLASS_BOSS,9,135
    1,CLASS_BOSS,8,130
    1,CLASS_BOSS,7,125
    1,CLASS_BOSS,6,120
    1,CLASS_BOSS,5,115
    1,CLASS_BOSS,4,110
    1,CLASS_BOSS,3,105
    1,CLASS_BOSS,0,100
    1,CLASS_BOSS,-1,100
    1,CLASS_BOSS,-6,95
    1,CLASS_BOSS,-11,90
    1,CLASS_BOSS,-16,85
    1,CLASS_BOSS,-21,60
    1,CLASS_BOSS,-26,35
    1,CLASS_BOSS,-31,10

    Thanks.

     

    Not sure but in renewal, i dont think penalty applies? That's why ppl can level up faster if they go kill an MVP rather than killing mobs. 

    If it does, perhaps only a little will be applied? 

  11. 21 minutes ago, Surefirer said:

    Hello,

    I am not quite understand what's inside the level penalty file.

    // EXP modifiers due to level difference
    1,CLASS_NORMAL,16,40
    1,CLASS_NORMAL,15,115
    1,CLASS_NORMAL,14,120
    1,CLASS_NORMAL,13,125
    1,CLASS_NORMAL,12,130
    1,CLASS_NORMAL,11,135
    1,CLASS_NORMAL,10,140
    1,CLASS_NORMAL,9,135
    1,CLASS_NORMAL,8,130
    1,CLASS_NORMAL,7,125
    1,CLASS_NORMAL,6,120
    1,CLASS_NORMAL,5,115
    1,CLASS_NORMAL,4,110
    1,CLASS_NORMAL,3,105
    1,CLASS_NORMAL,0,100
    1,CLASS_NORMAL,-1,100
    1,CLASS_NORMAL,-6,95
    1,CLASS_NORMAL,-11,90
    1,CLASS_NORMAL,-16,85
    /1,CLASS_NORMAL,-21,60
    1,CLASS_NORMAL,-26,35
    1,CLASS_NORMAL,-31,10

    I understand 1=experience. Class_Normal=player. But what 16,15,14,13,12,11...mean? Does it mean Level 16, or every 16 level difference, For example, from Lv1-Lv16 you receive 40%of total experience. from Lv17(+15) - Lv32 you receive 115% of total experience, from Lv33(+14) - Lv47 you receive 120% of total experience and so one? But why there is -1,-6,-11?

    Thanks.

    +/positive when you have the level lower than the target

    -/negative when you have the level higher than the target. 

    When you have 31 levels higher than the target, you only get 10% of exp. 

    This is only based on how I understand. Maybe someone more knowledgeable might correct me if I am wrong. 

  12. 6 hours ago, Bringer said:

    can anyone help to change this script to Max Stats NOT By Level

    Request to Mod this script

    • Max All Stats 300
    • get_unique_id
    • Char Base Rewards
    • 3 Winners For Each Jobs
    •  
      Reveal hidden contents
    
    
    ///////////////////////////////////////////////////////
    //  ___________               _____.__                
    //  \__    ___/__.__.________/ ____\__| ____    ____  
    //    |    | <   |  |\_  __ \   __\|  |/    \  / ___\ 
    //    |    |  \___  | |  | \/|  |  |  |   |  \/ /_/  >
    //    |____|  / ____| |__|   |__|  |__|___|  /\___  / 
    //            \/       Scripts             \//_____/  
    //
    //=====================================================
    // Name: Race to Max Level
    //
    // Description:
    // This NPC allows for Game Masters to set a reward to
    // be given to the first player of each 2nd class that
    // reaches maximum level (base and class).
    //=====================================================
    ///////////////////////////////////////////////////////
    morocc,159,91,5	script	Race to Max Level	58,{
    	set .@gm_level, 99; // GM level required to set the reward
    	set .@maxbase, 99;
    	set .@maxjob, 50;
    	set .@defaultreward, 510;
    	setarray .@rewardablejobs[0], Job_Lord_Knight, Job_High_Priest, Job_High_Wizard, Job_Whitesmith, Job_Sniper, Job_Assassin_Cross, Job_Paladin, Job_Champion, Job_Professor, Job_Stalker, Job_Creator, Job_Clown, Job_Gypsy;
    	
    	Begin:
    	clear;
    	mes "[ ^0099ccRace to Max Level^000000 ]";
    	mes "Hello, " + ((getgmlevel() >= .@gm_level) ? "master! What do you want to do today?" : "are you here for your reward?");
    	switch(select(((getgmlevel() >= .@gm_level) ? "Set Reward:Restart Race" : ":") + ":YES!:...Reward?:Who was rewarded?:Cancel")) {
    		case 1:
    			goto SetReward;
    		case 2:
    			goto RestartRace;
    		case 3:
    			goto GetReward;
    		case 4:
    			goto ExplainRace;
    		case 5:
    			goto ShowRewarded;
    		default:
    			end;
    	}
    	
    	SetReward:
    		clear;
    		mes "[ ^0099ccRace to Max Level^000000 ]";
    		if ($reward == 0)
    			set $reward, .@defaultreward;
    		mes "The reward is " + getitemname($reward) + " (ID: " + $reward + ").";
    		mes "Do you want to change it?";
    		if (select("Yes:No") == 1) {
    			clear;
    			mes "[ ^0099ccRace to Max Level^000000 ]";
    			mes "Please enter the new reward item ID.";
    			input .@rewardid;			
    			clear;
    			mes "[ ^0099ccRace to Max Level^000000 ]";
    			mes "Set " + getitemname(.@rewardid) + " as the reward?";
    			if(select("Yes:No") == 1) {
    				set $reward, .@rewardid;
    			}
    		}
    		goto Begin;
    	
    	RestartRace:
    		clear;
    		mes "[ ^0099ccRace to Max Level^000000 ]";
    		mes "Are you sure you want to restart the race?";
    		if (select("Yes:No") == 1) {
    			for (.@i = 0; .@i < getarraysize(.@rewardablejobs); .@i++) {
    				set $rewarded$[.@rewardablejobs[.@i]], "";
    			}
    			announce "The Race to Max Level has begun! Claim a reward once you reach " + .@maxbase + " base and " + .@maxjob + " class!", bc_all;
    		}
    		goto Begin;
    	
    	GetReward:
    		next;
    		mes "[ ^0099ccRace to Max Level^000000 ]";
    		mes "Let's see... " + strcharinfo(0) + ", huh?";
    		
    		set .@competitioner, 0;
    		for (.@i = 0; .@i < getarraysize(.@rewardablejobs); .@i++) {
    			if (Class == .@rewardablejobs[.@i]) {
    				set .@competitioner, 1;
    				if (BaseLevel < .@maxbase || JobLevel < .@maxjob) {
    					mes "I'm sorry, but you still need to level a bit more.";
    				} else if ($rewarded$[Class] == strcharinfo(0)) {
    					mes "You have already claimed your reward.";
    				} else if ($rewarded$[Class] != "") {
    					mes "Too late!";
    					mes "The reward for " + jobname(Class) + " was already claimed by " + $rewarded$[Class] + ".";
    				} else goto GiveReward;
    			}
    		}
    		if (.@competitioner == 0)
    			mes "[ ^0099ccRace to Max Level^000000 ]";
    			mes "You need to change your job.";
    		close;
    	
    	GiveReward:
    		set $rewarded$[Class], strcharinfo(0);
    		clear;
    		mes "[ ^0099ccRace to Max Level^000000 ]";
    		mes "Congratulations! You were the first " + jobname(Class) + " to reach " + .@maxbase + " base and " + .@maxjob + " class!";
    		getitem $reward, 1;
    		announce strcharinfo(0) + " (" + jobname(Class) + ") reached Max. Level and received " + getitemname($reward) + "!", bc_all;
    		close;
    	
    	ExplainRace:
    		clear;
    		mes "[ ^0099ccRace to Max Level^000000 ]";
    		mes "Yes! When you reach the maximum level for your class, talk to me and you'll be rewarded with a special item.";
    		next;
    		goto Begin;
    		
    	ShowRewarded:
    		clear;
    		mes "[ ^0099ccRace to Max Level^000000 ]";
    		for (.@i = 0; .@i < getarraysize(.@rewardablejobs); .@i++) {
    			mes jobname(.@rewardablejobs[.@i]) + ": " + (($rewarded$[.@rewardablejobs[.@i]] != "") ? $rewarded$[.@rewardablejobs[.@i]] : "^ff0000Nobody^000000");
    		}
    		next;
    		goto Begin;
    }

     

     

    ///////////////////////////////////////////////////////
    //  ___________               _____.__                
    //  \__    ___/__.__.________/ ____\__| ____    ____  
    //    |    | <   |  |\_  __ \   __\|  |/    \  / ___\ 
    //    |    |  \___  | |  | \/|  |  |  |   |  \/ /_/  >
    //    |____|  / ____| |__|   |__|  |__|___|  /\___  / 
    //            \/       Scripts             \//_____/  
    //
    //=====================================================
    // Name: Race to Max Level
    //
    // Description:
    // This NPC allows for Game Masters to set a reward to
    // be given to the first player of each 2nd class that
    // reaches maximum level (base and class).
    //=====================================================
    ///////////////////////////////////////////////////////
    morocc,159,91,5	script	Race to Max Level	58,{
    	set .@gm_level, 99; // GM level required to set the reward
    	set .@maxbase, 99;
    	set .@maxjob, 50;
    	set .@defaultreward, 510;
    	set .@uniqueid$, get_unique_id();
    	setarray .@rewardablejobs[0], Job_Lord_Knight, Job_High_Priest, Job_High_Wizard, Job_Whitesmith, Job_Sniper, Job_Assassin_Cross, Job_Paladin, Job_Champion, Job_Professor, Job_Stalker, Job_Creator, Job_Clown, Job_Gypsy;
    	
    	Begin:
    	mes "[ ^0099ccRace to Max Level^000000 ]";
    	mes "Hello, " + ((getgmlevel() >= .@gm_level) ? "master! What do you want to do today?" : "are you here for your reward?");
    	next;
    	switch(select(((getgmlevel() >= .@gm_level) ? "Set Reward:Restart Race" : ":") + ":YES!:...Reward?:Who was rewarded?:Cancel")) {
    		case 1:
    			goto SetReward;
    		case 2:
    			goto RestartRace;
    		case 3:
    			goto GetReward;
    		case 4:
    			goto ExplainRace;
    		case 5:
    			goto ShowRewarded;
    		default:
    			end;
    	}
    	
    	SetReward:
    		mes "[ ^0099ccRace to Max Level^000000 ]";
    		if ($reward == 0)
    			set $reward, .@defaultreward;
    		mes "The reward is " + getitemname($reward) + " (ID: " + $reward + ").";
    		mes "Do you want to change it?";
    		next;
    		if (select("Yes:No") == 1) {
    			mes "[ ^0099ccRace to Max Level^000000 ]";
    			mes "Please enter the new reward item ID.";
    			input .@rewardid;	
    			mes "[ ^0099ccRace to Max Level^000000 ]";
    			mes "Set " + getitemname(.@rewardid) + " as the reward?";
    			next;
    			if(select("Yes:No") == 1) {
    				set $reward, .@rewardid;
    			}
    		}
    		goto Begin;
    	
    	RestartRace:
    		mes "[ ^0099ccRace to Max Level^000000 ]";
    		mes "Are you sure you want to restart the race?";
    		next;
    		if (select("Yes:No") == 1) {
    			for (.@i = 0; .@i < getarraysize(.@rewardablejobs); .@i++) {
    				set $rewarded$[.@rewardablejobs[.@i]], "";
    			}
    			announce "The Race to Max Level has begun! Claim a reward once you reach " + .@maxbase + " base and " + .@maxjob + " class!", bc_all;
    		}
    		goto Begin;
    	
    	GetReward:
    		next;
    		mes "[ ^0099ccRace to Max Level^000000 ]";
    		mes "Let's see... " + strcharinfo(0) + ", huh?";
    		next;
    		set .@competitioner, 0;
    		for (.@i = 0; .@i < getarraysize(.@rewardablejobs); .@i++) {
    			if (Class == .@rewardablejobs[.@i]) {
    				set .@competitioner, 1;
    				if ( readparam(bStr) < 300 || readparam(bVit) < 300 || readparam(bInt) < 300 || readparam(bAgi) < 300 || readparam(bLuk) < 300 || readparam(bDex) < 300 ) {
    					mes "You need to have 300 for all Stats.";
    				} else if ($rewarded$[Class] == strcharinfo(0)+":"+.@uniqueid$ ) {
    					mes "You have already claimed your reward.";
    				} else if ($rewarded$[Class] != "") {
    					mes "Too late!";
    					mes "The reward for " + jobname(Class) + " was already claimed by " + $rewarded$[Class] + ".";
    				} else goto GiveReward;
    			}
    		}
    		if (.@competitioner == 0)
    			mes "[ ^0099ccRace to Max Level^000000 ]";
    			mes "You need to change your job.";
    		close;
    	
    	GiveReward:
    		set $rewarded$[Class], strcharinfo(0)+":"+.@uniqueid$;
    		mes "[ ^0099ccRace to Max Level^000000 ]";
    		mes "Congratulations! You were the first " + jobname(Class) + " to reach " + .@maxbase + " base and " + .@maxjob + " class!";
    		getitem $reward, 1;
    		announce strcharinfo(0) + " (" + jobname(Class) + ") reached Max. Level and received " + getitemname($reward) + "!", bc_all;
    		close;
    	
    	ExplainRace:
    		mes "[ ^0099ccRace to Max Level^000000 ]";
    		mes "Yes! When you reach the maximum level for your class, talk to me and you'll be rewarded with a special item.";
    		next;
    		goto Begin;
    		
    	ShowRewarded:
    		mes "[ ^0099ccRace to Max Level^000000 ]";
    		for (.@i = 0; .@i < getarraysize(.@rewardablejobs); .@i++) {
    			explode(.@rewarded$, $rewarded$[.@rewardablejobs[.@i]], ":");
    			mes jobname(.@rewardablejobs[.@i]) + ": " + (($rewarded$[.@rewardablejobs[.@i]] != "") ? .@rewarded$[0] : "^ff0000Nobody^000000");
    		}
    		next;
    		goto Begin;
    }

    Todo:

    Spoiler

     

    - 3 winners to each job ( I didnt do it because it is quite a hassle for me ? )

    - Edit the npc dialogues.

     

     

  13. 3 hours ago, idLaZ said:

    Hi @Mabuhay maybe you know why commenting this code didn't heals the emp? ?

    Commenting that part will enable healing to Emp.

    Not sure why but this might be caused by the WoE maps not showing damage. Meaning, Emp is healing correctly but the values are not exactly shown correctly. I never tried doing this modification.

  14. 16 minutes ago, IsabelaFernandez said:
    
    Hello everyone, I would like instead of the price to be zeny, I wanted item ID 7420 as price to be using the NPC service.

    Thanks!

    https://pastebin.com/tnPh7WyA

     

    // credits to Annieruru
    
    -	script	Stylist	-1,{
    
    	mes .npc_name$;
    	mes "Eu posso mudar sua aparência.";
    	if( .item_size ){
    		mes " ";
    		mes "^777777[ TAXAS DO SERVIÇO ]^000000";
    		for( .@i = 0; .@i < .menu_size; .@i++ )
    			if( .npc_mode & ( 1 << .@i ) )
    				if( .item[.@i] )
    					mes "^0055FF"+.menu_name$[.@i]+" : ^777777"+ .item[.@i] +" x "+getitemname(7420)+"^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: .@blacklist$ = ","+getd( ".blacklist_clothe_"+Sex+"$" )+","; break;
    		default: break;
    	}
    
    	.@style_number = .min_style[.@style];
    
    	do{
    		next;
    		mes .npc_name$;
    		mes "Current "+.menu_name$[.@style]+" : ^0055FF"+.@style_number+"th^000000";
    		mes " ";
    		.@removed = 0;
    		if( compare( .@blacklist$,","+.@style_number+"," ) ){
    			mes "^FF0000NOTE : This style REMOVED^000000";
    			.@removed = 1;
    			setlook .look_type[.@style],.min_style[.@style];
    		}else{
    			setlook .look_type[.@style],.@style_number;
    			if( .item[.@style] ){
    				mes "Cost : ^777777"+ .item[.@style] +" x "+getitemname(7420)+"^000000";
    				mes " ";
    			}
    		}
    		
    		.@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( "Próximo - [ ^777777"+.@next+"th Style^000000 ]",
    					"Voltar - [ ^777777"+.@prev+"th Style^000000 ]",
    					"Pular para...",
    					( .@removed )?"":"^0055FFCerto, eu quero esse "+.menu_name$[.@style]+"^000000" );
    					
    		switch( .@select ){
    			Case 1:	.@style_number = .@next; break;
    			Case 2:	.@style_number = .@prev; break;
    			Case 3:	
    				mes "Available Style : ^0055FF"+.min_style[.@style]+" ~ "+.max_style[.@style]+"^000000.";
    				input .@style_number,.min_style[.@style],.max_style[.@style];
    				break;
    			Case 4:
    				if( .@style_value == .@style_number ){
    					mes "Swt..this is your original hairstyles.";
    				} else if( .item[.@style] && countitem(7420) < .item[.@style] ){
    					mes "You dont have enough "+getitemname(7420)+" to change this "+.menu_name$[.@style]+".";
    				}else{
    					mes "Aproveite seu ^0055FFNEW "+.menu_name$[.@style]+" !!";
    					if( .item[.@style] )
    						delitem 7420, .item[.@style];
    					.@style_value = .@style_number;
    				}
    			default:
    				setlook .look_type[.@style],.@style_value;
    				break;
    		}
    	}while( .@select != 4 && .@select != 255 );
    	close;
    
    
    OnInit:
    	// NPC name
    	.npc_name$ = "[^0055FF ::: Estilista ::: ^000000]";
    	
    	// NPC Mode ( Bitmask )
    	//	1 - Enable Hairstyle
    	//	2 - Enable Hair Color
    	//	4 - Enable Cloth Color
    	.npc_mode = 7;
    	
    	// Menu Name
    	setarray .menu_name$,
    		"Cor do Cabelo",
    		"Cor do Cabelo",
    		"Cor da Roupa";
    	
    	// Payment (7420)
    	setarray .item,
    		100000,	//	Hairstyle
    		0,	//	Hair Color
    		35000;	//	Cloth Color
    		
    	
    		
    	// Blacklisted Style for each style and each gender.
    	// --- Female ---
    	.blacklist_hairstyle_0$ = "2,4,6";
    	.blacklist_haircolor_0$ = "1,3,5";
    	.blacklist_cloth_0$ = "143,188,261";
    	// --- Male ---
    	.blacklist_hairstyle_1$ = "3,5,7";
    	.blacklist_haircolor_1$ = "2,4,6";
    	.blacklist_cloth_1$ = "143,188,261";
    
    	// 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$ );
    	.item_size = getarraysize( .item );
    	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]:"" ) +":";
    	end;
    
    }
    
    
    // NPC Lists
    prontera,175,202,4	duplicate(Stylist)	Estilista#4	878

    @IsabelaFernandez

    Dont forget to edit this part :

    	// Payment (7420) = item amount
    	setarray .item,
    		100000,	//	Hairstyle
    		0,	//	Hair Color
    		35000;	//	Cloth Color

     

    • Love 1
×
×
  • Create New...