yuhsing

Advanced Stylist 1.0

Mar 26th, 2013
48
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.32 KB | None | 0 0
  1.  
  2. // credits to Annieruru
  3. function script ValueConvert {
  4. set .@num, atoi(""+getarg(0));
  5. if ( .@num == 0 || .@num >= 2147483647 ) return getarg(0);
  6. set .@l, getstrlen(""+.@num);
  7. for ( set .@i,0; .@i < .@l; set .@i, .@i + 1 ) {
  8. set .@num$, .@num % pow(10,.@i+1) / pow(10,.@i) + .@num$;
  9. if ( (.@i+1) % 3 == 0 && .@i+1 != .@l ) set .@num$, ","+ .@num$;
  10. }
  11. return .@num$;
  12. }
  13.  
  14.  
  15. - script Stylist -1,{
  16.  
  17. mes .npc_name$;
  18. mes "I can change your appearance.";
  19. if( .zeny_size ){
  20. mes " ";
  21. mes "^777777[ SERVICES PAYMENT ]^000000";
  22. for( .@i = 0; .@i < .menu_size; .@i++ )
  23. if( .npc_mode & ( 1 << .@i ) )
  24. if( .zeny[.@i] )
  25. mes "^0055FF"+.menu_name$[.@i]+" : ^777777"+ValueConvert( .zeny[.@i] )+" Zeny^000000";
  26. else
  27. mes "^0055FF"+.menu_name$[.@i]+" : ^777777Free of Charge^000000";
  28. }
  29. next;
  30. .@style = ( select( .npc_menu$ ) - 1 );
  31. .@style_value = getlook( .look_type[.@style] );
  32. deletearray .@blacklist;
  33. switch( .@style ){
  34. Case 0: .@blacklist$ = ","+.blacklist_hairstyle$+","; break;
  35. Case 1: .@blacklist$ = ","+.blacklist_haircolor$+","; break;
  36. Case 2: .@blacklist$ = ","+.blacklist_clothe$+","; break;
  37. default: break;
  38. }
  39.  
  40. .@style_number = .min_style[.@style];
  41.  
  42. do{
  43. next;
  44. mes .npc_name$;
  45. mes "Current "+.menu_name$[.@style]+" : ^0055FF"+.@style_number+"th^000000";
  46. mes " ";
  47. .@removed = 0;
  48. if( compare( .@blacklist$,","+.@style_number+"," ) ){
  49. mes "^FF0000NOTE : This style REMOVED^000000";
  50. .@removed = 1;
  51. setlook .look_type[.@style],.min_style[.@style];
  52. }else{
  53. setlook .look_type[.@style],.@style_number;
  54. if( .zeny[.@style] ){
  55. mes "Cost : ^777777"+ValueConvert( .zeny[.@style] )+" Zeny^000000";
  56. mes " ";
  57. }
  58. }
  59.  
  60. .@next = .@style_number + 1;
  61. .@prev = .@style_number - 1;
  62. if( .@next > .max_style[.@style] ) .@next = .min_style[.@style];
  63. if( .@prev < .min_style[.@style] ) .@prev = .max_style[.@style];
  64.  
  65. .@select = prompt( "Next - [ ^777777"+.@next+"th Style^000000 ]",
  66. "Back - [ ^777777"+.@prev+"th Style^000000 ]",
  67. "Jump to a Style",
  68. ( .@removed )?"":"^0055FFOkay, I want this "+.menu_name$[.@style]+"^000000" );
  69.  
  70. switch( .@select ){
  71. Case 1: .@style_number = .@next; break;
  72. Case 2: .@style_number = .@prev; break;
  73. Case 3:
  74. mes "Available Style : ^0055FF"+.min_style[.@style]+" ~ "+.max_style[.@style]+"^000000.";
  75. input .@style_number,.min_style[.@style],.max_style[.@style];
  76. break;
  77. Case 4:
  78. if( .@style_value == .@style_number ){
  79. mes "Swt..this is your original hairstyles.";
  80. } else if( .zeny[.@style] && Zeny < .zeny[.@style] ){
  81. mes "You dont have enough Zeny to change this "+.menu_name$[.@style]+".";
  82. }else{
  83. mes "Enjoy your ^0055FFNEW "+.menu_name$[.@style]+" !!";
  84. if( .zeny[.@style] )
  85. Zeny -= .zeny[.@style];
  86. .@style_value = .@style_number;
  87. }
  88. default:
  89. setlook .look_type[.@style],.@style_value;
  90. break;
  91. }
  92. }while( .@select != 4 && .@select != 255 );
  93. close;
  94.  
  95.  
  96. OnInit:
  97. // NPC name
  98. .npc_name$ = "[^0055FF ::: Adv. Stylist ::: ^000000]";
  99.  
  100. // NPC Mode ( Bitmask )
  101. // 1 - Enable Hairstyle
  102. // 2 - Enable Hair Color
  103. // 4 - Enable Cloth Color
  104. .npc_mode = 7;
  105.  
  106. // Menu Name
  107. setarray .menu_name$,
  108. "Hair Style",
  109. "Hair Color",
  110. "Cloth Color";
  111.  
  112. // Payment
  113. setarray .zeny,
  114. 100000, // Hairstyle
  115. 0, // Hair Color
  116. 35000; // Cloth Color
  117.  
  118. // Blacklisted Style for each style.
  119. .blacklist_hairstyle$ = "3,5,7";
  120. .blacklist_haircolor$ = "2,4,6";
  121. .blacklist_cloth$ = "143,188,261";
  122.  
  123. // Dont edit
  124. setarray .min_style,getbattleflag( "min_hair_style" ),getbattleflag( "min_hair_color" ),getbattleflag( "min_cloth_color" );
  125. setarray .max_style,getbattleflag( "max_hair_style" ),getbattleflag( "max_hair_color" ),getbattleflag( "max_cloth_color" );
  126. .menu_size = getarraysize( .menu_name$ );
  127. .zeny_size = getarraysize( .zeny );
  128. setarray .look_type,LOOK_HAIR,LOOK_HAIR_COLOR,LOOK_CLOTHES_COLOR;
  129. for( .npc_menu$ = ""; .@i < .menu_size; .@i++ )
  130. .npc_menu$ = .npc_menu$ + ( ( .npc_mode & ( 1 << .@i ) )? .menu_name$[.@i]:"" ) +":";
  131. end;
  132.  
  133. }
  134.  
  135.  
  136. // NPC Lists
  137. prontera,155,181,5 duplicate(Stylist) Adv. Stylist#1 878
  138. prontera,155,183,5 duplicate(Stylist) Adv. Stylist#2 878
  139. prontera,155,185,5 duplicate(Stylist) Adv. Stylist#3 878
  140. prontera,155,165,5 duplicate(Stylist) Adv. Stylist#4 878
Advertisement
Add Comment
Please, Sign In to add comment