Jump to content

Santafe

Members
  • Posts

    325
  • Joined

  • Last visited

  • Days Won

    1

Posts posted by Santafe

  1. Hey guyz, im using rAmod and the @main was removed for enabling the channel system. When i re added it,(actually the command was removed by "//") a resource error in visual studio occured. any help on how to re add @main function? thx alot :)

  2. Hello everyone,

     

    I tried to put my own custom login screen into the client. I use 10-4-2012 client. I used the background cutter to split it to 12 parts. they were all bmp with 256px. i plased them inside the texture/À¯ÀúÀÎÅÍÆäÀ̽º and also changed the diff to choose 1st login background. ( tried 2nd and both as well) all resulted with NOTHING BUT THE SAME rdata login screen. im frustrated cuz i read somewhere that 200px is the right size.(i resized and checkd too) still same problem. someone plz plz plz help me im dead tired of trying to make it work T_T

  3. First off, Hello and I am truly grateful that this forum exists, without you guys I wont be able to pay Ragnarok offline Renewal,this is like waking up on Christmas morning.

    So, I just created my own server. my Errors so far are items in itemdb starting from #20018 onwards shows Unknown item(apple) in game and prompts an Error when i load my character. So, with that said, I tried finding solutions, I learned that you must have the correct files in specific folders.

    Now, please take a look at the pictures that I uploaded. Is this normal? Is there a solution for this? I know it must show names like ex. "¾ÆÀÌÅÛ" and so.

    Also, I am also curious with the app called Shoper v.3 that you use for making shops. I tried switching all the collection and small files, also the idnum2itemdesctable. But the shoper.exe wont open when I double click. Is this because my file names are blank squares?

    Thank you forum.

    PS. Sorry for my bad english. its my second language.

     

    Lol its simple. Follow these steps:

    1. Download Unbollox (google it) from ratemyserver.

    2. Click on it. Keep this file's URL as the file directory.

    3. Click on the blank boxes in the unbollox app. it will convert all back to how it should look.

    • Upvote 1
  4. Guess that's how it should be:

    //<?> -o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o \\
    //          Blacksmith/Card Removal Npc V.2.0         \\
    //                   by Luther                        \\
    //<?> -o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o \\
    //          Blacksmith/Card Removal Npc V.2.0         \\
    //                   by Luther                        \\
    // Credit To : Mytzer,TyrNemisis,ShadowMaster and     \\
    // who ever made the Item Identifyer Deckard Cain.    \\
    // Whoms Scripts were used in making this npc.        \\
    // Also ToastOfDoom and Chachi911 for helping Debug it\\
    // (V.2.0 Uses the original eAthena Refine Script that\\ 
    //can have its rates configured in the refine_db.txt) \\
    // -o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o \\
    
    prontera,166,231,3	script	Refiner	85,{
    	set .soundef_number, .soundef_number + 1;
     
    	switch (.soundef_number)
    	{
     
    		case 1:
    		soundeffect "hollen2.wav",0;
    		break;
     
    		case 2:
    		soundeffect "hollen3.wav",0;
    		break;
     
    		case 3:
    		soundeffect "hollen4.wav",0;
    		break;
     
    		case 4:
    		soundeffect "hollen5.wav",0;
    		break;
     
    	}
     
    	if (.soundef_number >= 3)
    	{
    		set .soundef_number, 0;
    	}
     
    	end;
     
    
    callfunc "refinemainx","Advanced Hollgrehenn",1;
    	end;
        }
    //============================================================
    //= Main Refiner Function
    //============================================================
    //= To allow auto safe refining/multiple refining set the
    //= 0 after Melchior to '1' in the function call.
    //= To Change the Name of the NPC, just Edit it in the
    //= Beginning of the Script and the Melchior part of the
    //= Call function. 
    //============================================================
    function	script	refinemainx	{
    	set .@features,getarg(1);
      mes "[" + getarg(0) + "]";
    	mes "I can Refine, Extract Cards, Identify Items, and Repair Broken Items ^FF0000which of my services are you interested in?^000000";
    	menu "Refining",L_Refine,"Item Repair",L_Repair;
    	
      L_Refine:
      mes "refining eh?";
      next;
      mes "[" + getarg(0) + "]";
    	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,4;
    		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,6; 
    		break;
    	case 3: 	//Refine Level 3 Weapon
    		set .@price,5000;
    		set .@material,984;
    		set .@safe,5; 
    		break;
    	case 4: 	//Refine Level 4 Weapon
    		set .@price,20000;
    		set .@material,984;
    		set .@safe,4; 
    		break;
    	case 5: 	//Refine other stuff?
    		set .@price,2000;
    		set .@material,985;
    		set .@safe,4; 
    		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) < 100)) {
    			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;		
     
    L_Repair:
    mes "Repairing it is!";
    next;
    if (getbrokenid(1) == 0) goto L_Waste;
    mes "[" + getarg(0) + "]";
    mes "Each repair costs 2000 zeny would you like to repair an item now?";
    menu "Yes",L_RepairItem,"No",L_Bye;
     
    L_RepairItem:
    if(zeny < (2000)) goto L_NoZeny;
    mes "Select the item to repair from the menu.";
    set @choice, select(getitemname(getbrokenid(1)), getitemname(getbrokenid(2)), getitemname(getbrokenid(3)), getitemname(getbrokenid(4)), getitemname(getbrokenid(5)), getitemname(getbrokenid(6)), getitemname(getbrokenid(7)), getitemname(getbrokenid(8)), getitemname(getbrokenid(9)), getitemname(getbrokenid(10)));
     
    set zeny, zeny - 2000;
    repair(@choice);
    goto L_Repaired;
     
    L_Waste:
    mes "[" + getarg(0) + "]";
    mes "Do not waste my time, you have no items in need of repair.";
    close;
    L_Repaired:
    mes "[" + getarg(0) + "]";
    mes "Your item has been repaired, please be more careful.";
    close;
     
    }
    

    Didn't try it but the structure seems ok this way.

    Works perfectly now thanks man :)

  5. Hey everyone. i have an issue with this script could someone solve it? it shows i have an unknown syntanx in this line:

    callfunc "refinemainx","Advanced Hollgrehenn",1;
    

    I use rAthena eamod version and heres the main script i tried to use:

    //<?> -o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o \\
    //          Blacksmith/Card Removal Npc V.2.0         \\
    //                   by Luther                        \\
    //<?> -o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o \\
    //          Blacksmith/Card Removal Npc V.2.0         \\
    //                   by Luther                        \\
    // Credit To : Mytzer,TyrNemisis,ShadowMaster and     \\
    // who ever made the Item Identifyer Deckard Cain.    \\
    // Whoms Scripts were used in making this npc.        \\
    // Also ToastOfDoom and Chachi911 for helping Debug it\\
    // (V.2.0 Uses the original eAthena Refine Script that\\ 
    //can have its rates configured in the refine_db.txt) \\
    // -o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o \\
    prontera,166,231,3	script	Refiner	85,{
    	set .soundef_number, .soundef_number + 1;
    
    	switch (.soundef_number)
    	{
    
    		case 1:
    		soundeffect "hollen2.wav",0;
    		break;
    
    		case 2:
    		soundeffect "hollen3.wav",0;
    		break;
    
    		case 3:
    		soundeffect "hollen4.wav",0;
    		break;
    
    		case 4:
    		soundeffect "hollen5.wav",0;
    		break;
    
    	}
    
    	if (.soundef_number >= 3)
    	{
    		set .soundef_number, 0;
    	}
    
    	end;
    
    }
    callfunc "refinemainx","Advanced Hollgrehenn",1;
    	end;
        }
    //============================================================
    //= Main Refiner Function
    //============================================================
    //= To allow auto safe refining/multiple refining set the
    //= 0 after Melchior to '1' in the function call.
    //= To Change the Name of the NPC, just Edit it in the
    //= Beginning of the Script and the Melchior part of the
    //= Call function. 
    //============================================================
    function	script	refinemainx	{
    	set .@features,getarg(1);
      mes "[" + getarg(0) + "]";
    	mes "I can Refine, Extract Cards, Identify Items, and Repair Broken Items ^FF0000which of my services are you interested in?^000000";
    	menu "Refining",L_Refine,"Item Repair",L_Repair;
    	
      L_Refine:
      mes "refining eh?";
      next;
      mes "[" + getarg(0) + "]";
    	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,4;
    		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,6; 
    		break;
    	case 3: 	//Refine Level 3 Weapon
    		set .@price,5000;
    		set .@material,984;
    		set .@safe,5; 
    		break;
    	case 4: 	//Refine Level 4 Weapon
    		set .@price,20000;
    		set .@material,984;
    		set .@safe,4; 
    		break;
    	case 5: 	//Refine other stuff?
    		set .@price,2000;
    		set .@material,985;
    		set .@safe,4; 
    		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) < 100)) {
    			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;		
    
    L_Repair:
    mes "Repairing it is!";
    next;
    if (getbrokenid(1) == 0) goto L_Waste;
    mes "[" + getarg(0) + "]";
    mes "Each repair costs 2000 zeny would you like to repair an item now?";
    menu "Yes",L_RepairItem,"No",L_Bye;
    
    L_RepairItem:
    if(zeny < (2000)) goto L_NoZeny;
    mes "Select the item to repair from the menu.";
    set @choice, select(getitemname(getbrokenid(1)), getitemname(getbrokenid(2)), getitemname(getbrokenid(3)), getitemname(getbrokenid(4)), getitemname(getbrokenid(5)), getitemname(getbrokenid(6)), getitemname(getbrokenid(7)), getitemname(getbrokenid(8)), getitemname(getbrokenid(9)), getitemname(getbrokenid(10)));
    
    set zeny, zeny - 2000;
    repair(@choice);
    goto L_Repaired;
    
    L_Waste:
    mes "[" + getarg(0) + "]";
    mes "Do not waste my time, you have no items in need of repair.";
    close;
    L_Repaired:
    mes "[" + getarg(0) + "]";
    mes "Your item has been repaired, please be more careful.";
    close;
    
    }
    

    Hope someone can help :/ Really need this one X_X Thanks in advance <3

  6. Hey guyz could any 1 give me the combined script bonus for the folowing? which i can replace to the {},{},{} present at the end of item script :D?

     

    Set 1: Adds +20 all stat, 2% hp and 2%sp per refine

    Set 2: Adds +15 all stat, 1% Increase dmg to demihuman per refine

    Set 3: Adds +30 all stat, 10% increase in Movement speed,1% decrease dmg from demiH per refine

     

    Thanks alot :) i was able to do the movement speed andd all stat part but the "per refine" is being a bit of a problem for me. Thnx in advance :)


    *Bump*?


    Up.
  7. Hello everyone,  I have this problem:

     

    14462df.jpg

     

    Well basically thats the thing, i get a killing spree on my opponent. theres a line saying he ended my streak as soon as i kill him even though he didnt.

     

    This continues for the mega kill and all the other streaks that occur.

    No errors arise from map server so i couldnt solve it. Please can someone help me :(


    Edit: Fixed/ Used Icabits updated one >.>

  8. Hey everyone :o Long time since ive been active here. Im only good at client side stuff so im suffering at server side lel. Need a few scripts as follows Hope u guyz can help <3.

     

    The Scripts i need are for eamod so plz keep the syntax of the script structure that way :)

     

    1. Commands :

    @main for chatting globally ( With a different coulour. Not white. maybe the colour in rAthena banner? the light blue one :o)

    @main should also not allow vending chats like B>>> XXX YY or S>> XX YYY if player uses it, a request to use @vend must be given like "Please use @vend for vending purposes!~"

     

     

    2. @vend for vending purposes. (Like B>> xyz / S>> xyz)

    3. @go vend for going to the vending area "a map with coords",

    4.@go mall for going to the market area "a map with coords" :o

    Thats about it :o <3 thx in advance.

    If u say i could refer the older scripts, the last script i saw for @main was in eathena which didnt show any errors but didnt work ingame as well :/

    Any way thnx in advance again :D

  9.  

    Ok heres the list of problems ive faced. Tell me which one it is.

     

    Problem 1:

    I equip item and the game crashes. If i try logging in the game crashes again and i have to literally delete the char.

     

    Problem 2:

    I equip item and it crashes. I can relog but once i go to view equipments and i click on the Custom gear icon it crashes. This custom gear u added will not have any picture i.e. its blank.

     

    Problem 3: I can click on the item and see its description but if i try to unequip, Game crashes.

     

    All the above mentioned problem only happens if u messed up the view ID. if the last view ID was 1692(just an example) then ur custom HG list should start from 1693. You should NOT skip to 1700 + because then ull have to compile lua > lub and trust me thats a pain. Its made me so pissed i almost quit developing my server. The thing is once u added ur custom headgear view ID and all that procedure, Delete the accesoryid.lua and accname.lua and only the lub files should be there.(just rename .lua to .lub dont literally compile).

    Once u do this it should work fine. The crash might occur if ur data folder is old. cuz there might have been new HGs added to data.grf but the view IDs wouldnt have been updated.

     

    Hope this helped. if not get back to me.

     

     

    So youre saying that on the default lua files you have to continue the view id

     

    Example my Accessoryid look like this one

     

     
      ACCESSORY_DEVIL_SCHOOLHAT = 928,
      ACCESSORY_H_ANGEL_SCHOOLHAT = 929,
      ACCESSORY_H_DEVIL_SCHOOLHAT = 930,
      ACCESSORY_MOUTH_RED_PENCIL = 931,
      ACCESSORY_MOUTH_BLUE_PENCIL = 932,
      ACCESSORY_ELDERCROWN = 933,
      ACCESSORY_FIVE_COLOR_FEATHER = 934,
    --935-999
      ACCESSORY_ANGELBAG = 1000,
      ACCESSORY_ARCHBAG = 1001,
      ACCESSORY_ARTICWINGS = 1002,
     
     
    You're sying it should be like this 
     
      ACCESSORY_ELDERCROWN = 933,
      ACCESSORY_FIVE_COLOR_FEATHER = 934,
      ACCESSORY_ANGELBAG = 935,
      ACCESSORY_ARCHBAG = 936,
     

     

    Yes exactly that. see wat the last view ID is and then continue from that number. in this case, if five colour feather is the last number(934) then start ur custom ones from 935.

  10. Ok heres the list of problems ive faced. Tell me which one it is.

     

    Problem 1:

    I equip item and the game crashes. If i try logging in the game crashes again and i have to literally delete the char.

     

    Problem 2:

    I equip item and it crashes. I can relog but once i go to view equipments and i click on the Custom gear icon it crashes. This custom gear u added will not have any picture i.e. its blank.

     

    Problem 3: I can click on the item and see its description but if i try to unequip, Game crashes.

     

    All the above mentioned problem only happens if u messed up the view ID. if the last view ID was 1692(just an example) then ur custom HG list should start from 1693. You should NOT skip to 1700 + because then ull have to compile lua > lub and trust me thats a pain. Its made me so pissed i almost quit developing my server. The thing is once u added ur custom headgear view ID and all that procedure, Delete the accesoryid.lua and accname.lua and only the lub files should be there.(just rename .lua to .lub dont literally compile).

    Once u do this it should work fine. The crash might occur if ur data folder is old. cuz there might have been new HGs added to data.grf but the view IDs wouldnt have been updated.

     

    Hope this helped. if not get back to me.

×
×
  • Create New...