Jump to content

Question

Posted (edited)

can anyone change this script to +7 save limit?

i already change the meesage that it's require 7 elunium, but when it's start refining it's just until +4

i want to change save limit into +7

thx before

function    script    refinemain    {
   set .@features,getarg(1);
   mes "[" + getarg(0) + "]";
   mes "I'm the Armsmith.";
   mes "I can refine all kinds of weapons, armor and equipment, so let me";
   mes "know what you want me to refine.";
   next;

   setarray .@position$[1], "Head","Body","Left hand","Right hand","Robe","Shoes","Accessory 1","Accessory 2","Head 2","Head 3";
   set .@menu$,"";
   for( set .@i,1; .@i <= 10; set .@i,.@i+1 )
   {
       if( getequipisequiped(.@i) )
           set .@menu$, .@menu$ + .@position$[.@i] + "-" + "[" + getequipname(.@i) + "]";

       set .@menu$, .@menu$ + ":";
   }
   set .@part,select(.@menu$);
   if(!getequipisequiped(.@part)) {
       mes "[" + getarg(0) + "]";
       mes "You're not wearing";
       mes "anything there that";
       mes "I can refine.";
       emotion 6;
       close;
   }
   //Check if the item is refinable...
   if(!getequipisenableref(.@part)) {
       mes "[" + getarg(0) + "]";
       mes "I don't think I can";
       mes "refine this item at all...";
       close;
   }
   //Check if the item is identified... (Don't know why this is in here... but kept it anyway)
   if(!getequipisidentify(.@part)) {
       mes "[" + getarg(0) + "]";
       mes "You can't refine this";
       mes "if you haven't appraised";
       mes "it first. Make sure your";
       mes "stuff is identified before";
       mes "I can refine it.";
       close;
   }
   //Check to see if the items is already +10
   if(getequiprefinerycnt(.@part) >= 10) {
       mes "[" + getarg(0) + "]";
       mes "I can't refine this";
       mes "any more. This is as";
       mes "refined as it gets!";
       close;
   }
   set .@refineitemid, getequipid(.@part); // save id of the item
   set .@refinerycnt, getequiprefinerycnt(.@part); //save refinery count
   switch(getequipweaponlv(.@part)){
   case 0:     //Refine Armor
       set .@price,2000;
       set .@material,985;
       set .@safe,7;
       break;
   case 1:     //Refine Level 1 Weapon
       set .@price,50;
       set .@material,1010;
       set .@safe,7;
       break;
   case 2:     //Refine Level 2 Weapon
       set .@price,200;
       set .@material,1011;
       set .@safe,7;
       break;
   case 3:     //Refine Level 3 Weapon
       set .@price,5000;
       set .@material,984;
       set .@safe,7;
       break;
   case 4:     //Refine Level 4 Weapon
       set .@price,20000;
       set .@material,984;
       set .@safe,7;
       break;
   case 5:     //Refine other stuff?
       set .@price,2000;
       set .@material,985;
       set .@safe,7;
       break;
   }
   if(.@features != 1) {
       mes "[" + getarg(0) + "]";
       mes "To refine this I need";
       mes "one ^003366"+getitemname(.@material)+"^000000 and";
       mes "a service fee of " + .@price + " Zeny.";
       mes "Do you really wish to continue?";
       next;
       if(select("Yes:No") == 2){
           mes "[" + getarg(0) + "]";
           mes "Yeah...";
           mes "There's no need to";
           mes "rush. Take your time.";
           close;
       }
       if(getequippercentrefinery(.@part) < 100) {
           mes "[" + getarg(0) + "]";
           mes "Oh no! If I continue to";
           mes "refine this, there's a risk it could";
           switch(.@material) {
           case 985:
               mes "be destroyed! That means that ^FF0000this equipment^000000, and ^FF0000any cards^000000 or special properties added to this armor, ^FF0000will be gone^000000.";
               break;
           default:
               mes "be destroyed, and you'd ^FF0000lose the weapon^000000, any ^FF0000cards in the weapon^000000,";
               mes "or any added special properties.";
               break;
           }
           next;
           mes "["+getarg(0)+"]";
           mes "I can't make it any clearer.";
           mes "Once a weapon is destroyed,";    
           mes "there's no getting it back.";
           mes "You really have a chance to";
           mes "^FF0000lose this weapon^000000 forever.";
           mes "Do you still want to refine?";
           next;
           if(select("Yes:No") == 2){
               mes "[" + getarg(0) + "]";
               mes "I completely agree...";
               mes "I might be a great refiner, but sometimes even I make mistakes.";
               close;
           }
       }
       if((countitem(.@material) < 1) || (Zeny < .@price)) {
           mes "[" + getarg(0) + "]";
           mes "You don't seem to have";
           mes "enough Zeny or "+getitemname(.@material)+"...";
           mes "Go get some more. I'll be";
           mes "here all day if you need me.";
           close;
       }
       set Zeny,Zeny-.@price;
       delitem .@material,1;
       if(getequipisequiped(.@part) == 0) { // hacker has removed the item (not changed, why?)
           mes "[" + getarg(0) + "]";
           mes "Look here... you don't have any Items on...";
           close;
       }
       if(getequiprefinerycnt(.@part) != .@refinerycnt || getequipid(.@part) != .@refineitemid) { // hacker has changed the item
           mes "[" + getarg(0) + "]";
           Emotion e_an;
           mes "Wait a second...";
           mes "Do you think I'm stupid?!";
           mes "You switched the item while I wasn't looking! Get out of here!";
           close;
       }
       if(getequippercentrefinery(.@part) <= rand(100)) {
           failedrefitem .@part;
           mes "[" + getarg(0) + "]";
           set .@emo,rand(1,5);
           if (.@emo == 1) {
               Emotion e_cash;
           } else {
               Emotion e_swt;
           }
           set .@lose,rand(1,3);
           if (.@lose == 1) {
               mes "OH! MY GOD!";
               mes "Damn it! Not again!";
               mes "I'm terribly sorry, but you know practice does make perfect.";
               mes "Um, right? Heh heh...";
           } else if(.@lose == 2) {
               mes "Nooooooo!";
               mes "It broke!";
               mes "I-I'm sorry!";
           } else {
               mes "Crap!";
               mes "It couldn't take";
               mes "much more tempering!";
               mes "Sorry about this...";
           }
           close;
       }
       mes "["+getarg(0)+"]";
       successrefitem .@part;
       Emotion e_heh;
       set .@win,rand(1,3);
       if (.@win == 1) {
           mes "Perfect!";
           mes "Heh heh!";
           mes "Once again,";
           mes "flawless work";
           mes "from the master~";
       } else if(.@win == 2) {
           mes "Success...!";
           mes "Yet again, my amazing";
           mes "talent truly dazzles";
           mes "and shines today.";
       } else {
           mes "Heh heh!";
           mes "I'm all done.";
           mes "No doubt, my work is";
           mes "to your satisfaction.";
           mes "Sheer, utter perfection~";
       }
       close;
   }

// New Refining Functions ========================
   if(getequiprefinerycnt(.@part) < .@safe) {
       mes "[" + getarg(0) + "]";
       mes "I can refine this to the safe limit or a desired number of times... it's your choice...";
       next;
       set .@menu2,select("To the safe limit please.","I'll decide how many times.","I've changed my mind...");
   } else set .@menu2,2;
   switch(.@menu2){
   case 1:
       set .@refinecnt,.@safe - getequiprefinerycnt(.@part);
       break;
   case 2:
       next;
       mes "[" + getarg(0) + "]";
       mes "So how many times would you like me to refine your item?";
       next;
       input .@refinecnt;
       set .@refinecheck,.@refinecnt + getequiprefinerycnt(.@part);
       if (.@refinecnt < 1 || .@refinecheck > 10) {
           mes "[" + getarg(0) + "]";
           mes "I can't refine this item that many times.";
           close;
       }
       if(.@refinecheck > .@safe) {
           set .@refinecheck,.@refinecheck - .@safe;
           mes "[" + getarg(0) + "]";
           mes "This will try to refine the equipment " + .@refinecheck + " times past the safe limit. Your equipment may be destroyed... is that ok?";
           next;
           if(select("Yes...","No...") == 2){
               mes "[" + getarg(0) + "]";
               mes "You said so..Hmm so be it...";
               close;
           }
       }
       break;
   case 3:
       next;
       mes "[" + getarg(0) + "]";
       mes "You said so..Hmm so be it...";
       close;
   }
   set .@fullprice,.@price * .@refinecnt;
   mes "[" + getarg(0) + "]";
   mes "That will cost you " + .@refinecnt + " " + getitemname(.@material) + " and " + .@fullprice + " Zeny. Is that ok?";
   next;
   if(select("Yes","No...") == 2){
       mes "[" + getarg(0) + "]";
       mes "You said so..Hmm so be it...";
       close;
   }
   if(countitem(.@material) < .@refinecnt || Zeny < .@fullprice) {
       mes "[" + getarg(0) + "]";
       mes "Is that all you got? Unfortunately I can't work for you at a lower price. Try putting yourself in my shoes.";
       close;
   }
   set Zeny,Zeny - .@fullprice;
   delitem .@material,.@refinecnt;
   while(.@refinecnt){
       if (getequipisequiped(.@part) == 0) {
           mes "[" + getarg(0) + "]";
           mes "Look here... you don't have any Items on...";
           close;
       }
       if (getequipid(.@part) != .@refineitemid || (.@menu2 == 1 && getequippercentrefinery(.@part) < 90)) {
           mes "[" + getarg(0) + "]";
           mes "Clan... No, but Did you imagine I could be so stupid !?!";
           mes "You have changed it...";
           mes "Go out before I stun you with my Hammer!!!";
           close;
       }
       mes "Clang, clang!!!";
       if(.@menu2 == 2 && getequippercentrefinery(.@part) <= rand(100)) {
           failedrefitem .@part;
           emotion 23;
           mes "[" + getarg(0) + "]";
           mes "WAHHHH!!! I'm so sorry... I warned you this could happen...";
           set .@refinecnt,.@refinecnt - 1;
           if(.@refinecnt == 0) close;
           mes "Here's the unused Zeny and Material back...";
           getitem .@material,.@refinecnt;
           set .@fullprice,.@refinecnt * .@price;
           set Zeny,Zeny + .@fullprice;
           close;
       }
       successrefitem .@part;
       emotion 21;
       set .@refinecnt,.@refinecnt - 1;
       next;
   }
   mes "[" + getarg(0) + "]";
   mes "All finished... Come again soon.";
   close;        
}

Edited by backtea

6 answers to this question

Recommended Posts

Posted

i already edit that emistry

// Database for upgrading items.
// Stats per level for safe upgrade, Stats per level after safe limit, Safe level limit, Lv.1 %, Lv 2 %, Lv.3%, ect...
// Armor defense is done in percentage (ie 70 = .7 def)
// Weapons are whole numbers (ie 3 = 3 atk)

100,100,4, 100,100,100,100,100,100,100, 20, 20, 10, 50, 30, 30, 20, 20, 10, 10, 10, 10, 10,    // Armor
 2, 2, 7, 100,100,100,100,100,100,100, 60, 40, 20, 70, 70, 50, 50, 30, 30, 20, 20, 10, 10,    // Lv.1 Weapons
 3, 3, 6, 100,100,100,100,100,100,100, 40, 20, 20, 70, 50, 50, 30, 30, 20, 20, 10, 10, 10,    // Lv.2 Weapons
 5, 5, 5, 100,100,100,100,100,100,100, 20, 20, 20, 50, 50, 30, 30, 20, 20, 10, 10, 10, 10,    // Lv.3 Weapons
 7, 7, 4, 100,100,100,100,100,100,100, 20, 20, 10, 50, 30, 30, 20, 20, 10, 10, 10, 10, 10,    // Lv.4 Weapons

is that right?

Posted

still not working

here's my refine_db.txt


 70, 4,7, 100,100,100,100, 60, 40, 40, 20, 20, 10,	// Armor
  2, 3,7, 100,100,100,100,100,100,100, 60, 40, 20,	// Lv.1 Weapons
  3, 5,7, 100,100,100,100,100,100, 60, 40, 20, 20,	// Lv.2 Weapons
  5, 8,7, 100,100,100,100,100, 60, 50, 20, 20, 20,	// Lv.3 Weapons
  7,13,7, 100,100,100,100, 60, 40, 40, 20, 20, 10,	// Lv.4 Weapons

 


and here's my code for my NPC

 

set .@refineitemid, getequipid(.@part); // save id of the item
	set .@refinerycnt, getequiprefinerycnt(.@part); //save refinery count
	switch(getequipweaponlv(.@part)){
	case 0: 	//Refine Armor
		set .@price,2000;
		set .@material,985;
		set .@safe,7;
		break;
	case 1: 	//Refine Level 1 Weapon
		set .@price,50;
		set .@material,1010;
		set .@safe,7; 
		break;
	case 2: 	//Refine Level 2 Weapon
		set .@price,200;
		set .@material,1011;
		set .@safe,7; 
		break;
	case 3: 	//Refine Level 3 Weapon
		set .@price,5000;
		set .@material,984;
		set .@safe,7; 
		break;
	case 4: 	//Refine Level 4 Weapon
		set .@price,20000;
		set .@material,984;
		set .@safe,7; 
		break;
	case 5: 	//Refine other stuff?
		set .@price,2000;
		set .@material,985;
		set .@safe,7; 
		break;
	}

 

still +4 =(

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...