Jump to content

+10 Refiner gesucht


Pysk

Recommended Posts


  • Group:  Members
  • Topic Count:  75
  • Topics Per Day:  0.02
  • Content Count:  234
  • Reputation:   8
  • Joined:  01/19/12
  • Last Seen:  

Hallo.

 

Ich hate mal einen ganz guten Refiener gehabt, im Prinziep war der Refiener wie der Standart nur konnte man nachdem man das item gewählt hatte auswälen auf welches Level er upen soll.

 

Wenn das Upen über das Save Level hinaus ging hat er einen darauf hingewiesen das die Waffe oder die Rüstung bei dem Versuch kaputt gehen kann. Also war halt kein +10 Save Refiener.

 

Hat jemand vileicht ein Script was so arbeitet wie dieses?

 

Weil auf einem HR Server ist es schon extrem nervig für die Spieler bei 50 Waffen oder so immer jedes einzelne Level zu upen...

 

Das Script was ich hatte habe ich damals über eathena gefunden aber scheinbar ist der Link down denn ich finde es nicht mehr.

 

Ach ja der NPC soll natürlich wie auch der Normale Elunium und Zenys berücksichtigen und er sollte keine Ringe oder sowas refinen können, hatte ich leider auch schon gehabt, das er die item_db.txt einfach übergeht.

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  86
  • Topics Per Day:  0.02
  • Content Count:  591
  • Reputation:   146
  • Joined:  06/19/12
  • Last Seen:  

hmn er ist nicht deutsch aber man kann save refine und eintragen auf welches lvl man es gerne hätte 

 

prt_in,63,60,0	script	Hollgrehenn	106,{
callfunc "refinemain","Hollgrehenn",1;
end;
}

//============================================================
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) { // 
   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;
}
Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  75
  • Topics Per Day:  0.02
  • Content Count:  234
  • Reputation:   8
  • Joined:  01/19/12
  • Last Seen:  

Hmmm....

 

Ich habe ihn eingebaut aber er macht genau das selbe wieder der Refiner der standart ist. Ich muss jedes level einzel anklicken und bestätigen.

Edited by Pysk
Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  16
  • Topics Per Day:  0.00
  • Content Count:  658
  • Reputation:   57
  • Joined:  11/20/11
  • Last Seen:  

Hmmm... Es gibt doch selbst bei dem normalen rAthena Refiner schon diese Funktion,dass man sich das Level aussuchen kann,dies steht in dem rAthena Script:

 

// 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 "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... So be it.";
                close;
            }
        }
        break;

 

Also eigentlich sollte das mit dem normalen rAthena Refiner funktionieren.

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  75
  • Topics Per Day:  0.02
  • Content Count:  234
  • Reputation:   8
  • Joined:  01/19/12
  • Last Seen:  

Das ist mir garnicht aufgefallen, ich hab es versucht man muss es einschalten dann geht es aber Problemlos.

 

Danke für die hilfe.

Edited by Pysk
Link to comment
Share on other sites

Join the conversation

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

Guest
Reply to this topic...

×   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.

×
×
  • Create New...