Jump to content

maraskan_user

Members
  • Posts

    6
  • Joined

  • Last visited

Posts posted by maraskan_user

  1. Sorry for the late reply. The if-clauses were missing some brackets.

    This won't work:

    if ( countitem( 1000 ) >= getarg( 0 ) && countitem( 999 ) >= 30 )

    This will :

    if ( (countitem( 1000 ) >= getarg( 0 )) && (countitem( 999 ) >= 30) )

     

    Fixed script:

    //===== eAthena/rAthena Script =======================================
    //= Weapon Forger
    //===== Template by: =========================================
    //= Pang Cake
    //===== Modified by: =========================================
    //= Mysterious
    //===== Current Version: =====================================
    //= 1.2
    //===== Compatible With: =====================================
    //= eAthena / rAthena SVN
    //===== Description: =========================================
    //= This NPC forges NAMELESS weapons, and can incorporate element stones and star crumbs.
    //= The forge chance is adjustable by changing the formula below.
    //===== Additional Comments: ========================================
    //= v1.0 - Initial release [Pang Cake]
    //= v1.1 - Fixed a couple of things [Mysterious]
    //= v1.2 - Proper disclaimer [Mysterious]
    //============================================================
    prontera,170,180,4	script	The Forger	813,{
    
    // ============= Configuration Settings ==================
    // Based on following forge success-rate formula:
    // ( 5 * Skill Level ) + ( Job Level / 5 ) + ( DEX / 10 ) + ( LUK / 10 ) + 50.
    	set .ForgeSkLvl, 3; // Level of Forge Skill ( Forge Sword, Forge Mace, etc ). Recommended: 3 max.
    	set .JLvl, 50; // Job level of the Forger NPC.Recommended: 70 max.
    	set .ForDex, 80; // The dexterity stat of the Forge NPC. Recommended: 99 max.
    	set .ForLuk, 80; // The luck stat of the Forge NPC.Recommended: 99 max.
    	set .AnvMod, 5; // Anvil chance mods, e.g. 0 = Normal Anvil, 3 = Oridecon Anvil, 5 = Golden Anvil, 10 = Emperium Anvil. Recommended: 10 max.
    	
    // Forge formula - don't fiddle with this one unless you want to change the formula.
    	
    	set .ForgeChance, ( .ForgeSkLvl * 5 ) + ( .JLvl / 5 ) + ( .ForDex / 10 ) + ( .ForLuk / 10 ) + .AnvMod + 50;
    
    // Misc. Configuration.
    	
    	set .GMBypassLv, 50; // Minimum GM level for ignoring item requirements.
    	set .NameSet, 0; // Weapons will be forged with: 0 = Nameless, 1 = Invoking PC's name.
    	set .PerfectChance, 0; // Set to 1 to enable 100% forge chance.
    // ============== End Configurations ================	
    	
    	mes "[^FF6600Forger^000000]";
    	mes "Hello, I am the Forger. If you provide the materials, I can forge weapons for you.";
    	mes "Would you like me to forge you a weapon?";
    	
    	switch( select( "Yes.:Information.:No." ) ) {
    		case 1:
    			break;
    		case 2:
    			next;
    			mes "[^FF6600Forger^000000]";
    			mes "What weapons would you like to know about?";
    			switch( select( "Daggers.:1H Swords.:2H Swords.:Maces.:Spears.:Knuckles.:Axes.:Nothing." ) ) {
    				case 1:
    					mes "DAGGERS";
    					mes "^FF0099LEVEL ONE^000000:";
    					mes "Knife - ^FF00001x Iron, 10x Jellopies^000000.";
    					mes "Cutter - ^FF000025x Iron^000000.";
    					mes "Main Gauche - ^FF000050x Iron^000000.";
    					mes "^FF0099LEVEL TWO^000000:";
    					mes "Dirk - ^FF000017x Steel^000000.";
    					mes "Dagger - ^FF000030x Steel^000000.";
    					mes "Stiletto - ^FF000040x Steel^000000.";
    					mes "^FF0099LEVEL THREE^000000:";
    					mes "Gladius - ^FF00004x Oridecon, 40x Steel, 1x Sapphire^000000.";
    					mes "Damascus - ^FF00004x Oridecon, 60x Steel, 1x Zircon^000000.";
    					close;
    				case 2:
    					mes "1H SWORDS.";
    					mes "^FF0099LEVEL ONE^000000:";
    					mes "Sword - ^FF00002x Iron^000000.";
    					mes "Falchion - ^FF000030x Iron^000000.";
    					mes "Blade - ^FF000045x Iron, 25x Tooth of Bat^000000.";
    					mes "^FF0099LEVEL TWO^000000:";
    					mes "Rapier - ^FF000020x Steel^000000.";
    					mes "Scimitar - ^FF000035x Steel^000000.";
    					mes "Ring Pommel Saber - ^FF000040x Steel, 50x Wolf Claw^000000.";
    					mes "^FF0099LEVEL THREE^000000:";
    					mes "Saber - ^FF00008x Oridecon, 5x Steel, 1x Opal^000000.";
    					mes "Haedongum - ^FF00008x Oridecon, 10x Steel, 1x Topaz^000000.";
    					mes "Tsurugi - ^FF00008x Oridecon, 15x Steel, 1x Garnet^000000.";
    					mes "Flamberge - ^FF000016x Oridecon, 1x Cursed Ruby^000000.";
    					close;
    				case 3:
    					mes "2H SWORDS.";
    					mes "^FF0099LEVEL ONE^000000:";
    					mes "Katana - ^FF000035x Iron, 15x Horrendous Mouth^000000.";
    					mes "^FF0099LEVEL TWO^000000:";
    					mes "Slayer - ^FF000025x Steel, 20x Decayed Nail^000000.";
    					mes "Bastard Sword - ^FF000045x Steel^000000.";
    					mes "^FF0099LEVEL THREE^000000:";
    					mes "Two-Handed Sword - ^FF000012x Oridecon, 10x Steel^000000.";
    					mes "Broad Sword - ^FF000012x Oridecon, 10x Steel^000000.";
    					mes "Claymore - ^FF000016x Oridecon, 20x Steel, 1x Cracked Diamond^000000.";
    					close;
    				case 4:
    					mes "MACES.";
    					mes "^FF0099LEVEL ONE^000000:";
    					mes "Club - ^FF00003x Iron^000000.";
    					mes "Mace - ^FF000030x Iron^000000.";
    					mes "^FF0099LEVEL TWO^000000:";
    					mes "Smasher - ^FF000020x Steel^000000.";
    					mes "Flail - ^FF000033x Steel^000000.";
    					mes "Chain - ^FF000040x Steel^000000.";
    					mes "^FF0099LEVEL THREE^000000:";
    					mes "Morning Star - ^FF000085x Steel, 1x 1 Carat Diamond^000000.";
    					mes "Sword Mace - ^FF0000100x Steel, 20x Sharp Scale^000000.";
    					mes "Stunner - ^FF0000120x Steel, 1x Heroic Emblem^000000.";
    					close;
    				case 5:
    					mes "SPEARS.";
    					mes "^FF0099LEVEL ONE^000000:";
    					mes "Javelin - ^FF00003x Iron^000000.";
    					mes "Spear - ^FF000035x Iron^000000.";
    					mes "Pike - ^FF000070x Iron^000000.";
    					mes "^FF0099LEVEL TWO^000000:";
    					mes "Guisarme - ^FF000025x Steel^000000.";
    					mes "Glaive - ^FF000040x Steel^000000.";
    					mes "Partizan - ^FF000055x Steel^000000.";
    					mes "^FF0099LEVEL THREE^000000:";
    					mes "Trident - ^FF00008x Oridecon, 10x Steel, 1x Aquamarine^000000.";
    					mes "Halberd - ^FF000012x Oridecon, 10x Steel^000000.";
    					mes "Lance - ^FF000012x Oridecon, 3x Ruby, 2x Evil Horn^000000.";
    					close;
    				case 6:
    					mes "KNUCKLES.";
    					mes "^FF0099LEVEL ONE^000000:";
    					mes "Waghnak - ^FF0000160x Iron, 1x Pearl^000000.";
    					mes "^FF0099LEVEL TWO^000000:";
    					mes "Knuckle Duster - ^FF000050x Steel^000000.";
    					mes "Studded Knuckles - ^FF000065x Steel^000000.";
    					mes "^FF0099LEVEL THREE^000000:";
    					mes "Fist - ^FF00004x Oridecon, 10x Ruby^000000.";
    					mes "Claw - ^FF00008x Oridecon, 10x Topaz^000000.";
    					mes "Finger - ^FF00004x Oridecon, 10x Opal^000000.";
    					close;
    				case 7:
    					mes "AXES.";
    					mes "^FF0099LEVEL ONE^000000:";
    					mes "Axe - ^FF000010x Iron^000000.";
    					mes "Battle Axe - ^FF0000110x Iron^000000.";
    					mes "^FF0099LEVEL TWO^000000:";
    					mes "Hammer - ^FF000030x Steel^000000.";
    					mes "^FF0099LEVEL THREE^000000:";
    					mes "Buster - ^FF00004x Oridecon, 20x Steel, 30x Orcish Fang^000000.";
    					mes "Two-Handed Axe - ^FF00008x Oridecon, 10x Steel, 1x Amethyst^000000.";
    					close;
    				case 8:
    				mes "Come back when you would like to forge.";
    				close;
    			}
    		case 3:
    			mes "Alright, come back when you'd like me to forge.";
    			close;
    	}
    	
    	next;
    	mes "[^FF6600Forger^000000]";
    	mes "What weapons would you like to forge?";
    	switch( select( "Daggers.:1H Swords.:2H Swords.:Maces.:Spears.:Knuckles.:Axes.:Nothing." ) ) {
    		case 1:
    			mes "Which ^FF0099DAGGER^000000 would you like me to produce?";
    			switch( select( "Knife (dmg 17):Cutter (dmg 30):Main Gauche (dmg 43):Dirk (dmg 59):Dagger (dmg 73):Stiletto (dmg 87):Gladius (dmg 105):Damascus (dmg 153)" ) ) {
    				case 1:
    					mes "You have selected ^FF0000KNIFE^000000.";
    					set .ForgeID, 1201;
    					break;
    				case 2:
    					mes "You have selected ^FF0000CUTTER^000000.";
    					set .ForgeID, 1204;
    					break;
    				case 3:
    					mes "You have selected ^FF0000MAIN GAUCHE^000000.";
    					set .ForgeID, 1207;
    					break;
    				case 4:
    					mes "You have selected ^FF0000DIRK^000000.";
    					set .ForgeID, 1210;
    					break;
    				case 5:
    					mes "You have selected ^FF0000DAGGER^000000.";
    					set .ForgeID, 1213;
    					break;
    				case 6:
    					mes "You have selected ^FF0000STILETTO^000000.";
    					set .ForgeID, 1216;
    					break;
    				case 7:
    					mes "You have selected ^FF0000GLADIUS^000000.";
    					set .ForgeID, 1219;
    					break;
    				case 8:
    					mes "You have selected ^FF0000DAMASCUS^000000.";
    					set .ForgeID, 1222;
    					break;
    			}
    			break;
    		case 2:
    			mes "Which ^FF00991H SWORD^000000 would you like me to produce?";
    			switch( select( "Sword (dmg 25):Falchion (dmg 39):Blade (dmg 53):Rapier (dmg 70):Scimitar (dmg 85):Ring Pommel Saber (dmg 100):Saber (dmg 115):Haedongum (dmg 120):Tsurugi (dmg 130):Flamberge (dmg 150)" ) ) {
    				case 1:
    					mes "You have selected ^FF0000SWORD^000000.";
    					set .ForgeID, 1101;
    					break;
    				case 2:
    					mes "You have selected ^FF0000FALCHION^000000.";
    					set .ForgeID, 1104;
    					break;
    				case 3:
    					mes "You have selected ^FF0000BLADE^000000.";
    					set .ForgeID, 1107;
    					break;
    				case 4:
    					mes "You have selected ^FF0000RAPIER^000000.";
    					set .ForgeID, 1110;
    					break;
    				case 5:
    					mes "You have selected ^FF0000SCIMITAR^000000.";
    					set .ForgeID, 1113;
    					break;
    				case 6:
    					mes "You have selected ^FF0000RING POMMEL SABER^000000.";
    					set .ForgeID, 1122;
    					break;
    				case 7:
    					mes "You have selected ^FF0000SABER^000000.";
    					set .ForgeID, 1126;
    					break;
    				case 8:
    					mes "You have selected ^FF0000HAEDONGUM^000000.";
    					set .ForgeID, 1123;
    					break;
    				case 9:
    					mes "You have selected ^FF0000TSURUGI^000000.";
    					set .ForgeID, 1119;
    					break;
    				case 10:
    					mes "You have selected ^FF0000FLAMBERGE^000000.";
    					set .ForgeID, 1129;
    					break;
    			}
    			break;
    		case 3:
    			mes "Which ^FF00992H SWORD^000000 would you like me to produce?";
    			switch( select( "Katana (dmg 60):Slayer (dmg 90):Bastard Sword (dmg 115):Two-Handed Sword (dmg 160):Broad Sword (dmg 140):Claymore (dmg 180)" ) ) {
    				case 1:
    					mes "You have selected ^FF0000KATANA^000000.";
    					set .ForgeID, 1116;
    					break;
    				case 2:
    					mes "You have selected ^FF0000SLAYER^000000.";
    					set .ForgeID, 1151;
    					break;
    				case 3:
    					mes "You have selected ^FF0000BASTARD SWORD^000000.";
    					set .ForgeID, 1154;
    					break;
    				case 4:
    					mes "You have selected ^FF0000TWO-HANDED SWORD^000000.";
    					set .ForgeID, 1157;
    					break;
    				case 5:
    					mes "You have selected ^FF0000BROAD SWORD^000000.";
    					set .ForgeID, 1160;
    					break;
    				case 6:
    					mes "You have selected ^FF0000CLAYMORE^000000.";
    					set .ForgeID, 1163;
    					break;
    			}
    			break;
    		case 4:
    			mes "Which ^FF0099MACE^000000 would you like me to produce?";
    			switch( select( "Club (dmg 23):Mace (dmg 37):Smasher (dmg 54):Flail (dmg 69):Chain (dmg 84):Morning Star (dmg 110):Sword Mace (dmg 130):Stunner (dmg 140)" ) ) {
    				case 1:
    					mes "You have selected ^FF0000CLUB^000000.";
    					set .ForgeID, 1501;
    					break;
    				case 2:
    					mes "You have selected ^FF0000MACE^000000.";
    					set .ForgeID, 1504;
    					break;
    				case 3:
    					mes "You have selected ^FF0000SMASHER^000000.";
    					set .ForgeID, 1507;
    					break;
    				case 4:
    					mes "You have selected ^FF0000FLAIL^000000.";
    					set .ForgeID, 1510;
    					break;
    				case 5:
    					mes "You have selected ^FF0000CHAIN^000000.";
    					set .ForgeID, 1519;
    					break;
    				case 6:
    					mes "You have selected ^FF0000MORNING STAR^000000.";
    					set .ForgeID, 1513;
    					break;
    				case 7:
    					mes "You have selected ^FF0000SWORD MACE^000000.";
    					set .ForgeID, 1516;
    					break;
    				case 8:
    					mes "You have selected ^FF0000STUNNER^000000.";
    					set .ForgeID, 1522;
    					break;
    			}
    			break;
    		case 5:
    			mes "Which ^FF0099SPEAR^000000 would you like me to produce?";
    			switch( select( "Javelin (dmg 28):Spear (dmg 44):Pike (dmg 74):Guisarme (dmg 84):Glaive (dmg 104):Partizan (dmg 124):Trident (dmg 150):Halberd (dmg 165):Lance (dmg 185)" ) ) {
    				case 1:
    					mes "You have selected ^FF0000JAVELIN^000000.";
    					set .ForgeID, 1401;
    					break;
    				case 2:
    					mes "You have selected ^FF0000SPEAR^000000.";
    					set .ForgeID, 1404;
    					break;
    				case 3:
    					mes "You have selected ^FF0000PIKE^000000.";
    					set .ForgeID, 1407;
    					break;
    				case 4:
    					mes "You have selected ^FF0000GUISARME^000000.";
    					set .ForgeID, 1451;
    					break;
    				case 5:
    					mes "You have selected ^FF0000GLAIVE^000000.";
    					set .ForgeID, 1454;
    					break;
    				case 6:
    					mes "You have selected ^FF0000PARTIZAN^000000.";
    					set .ForgeID, 1457;
    					break;
    				case 7:
    					mes "You have selected ^FF0000TRIDENT^000000.";
    					set .ForgeID, 1460;
    					break;
    				case 8:
    					mes "You have selected ^FF0000HALBERD^000000.";
    					set .ForgeID, 1463;
    					break;
    				case 9:
    					mes "You have selected ^FF0000LANCE^000000.";
    					set .ForgeID, 1410;
    					break;
    			}
    			break;
    		case 6:
    			mes "Which ^FF0099KNUCKLE^000000 would you like me to produce?";
    			switch( select( "Waghnakh (dmg 30):Knuckle Duster (dmg 50):Studded Knuckles (dmg 65):Fist (dmg 115):Claw (dmg 86):Finger (dmg 97)" ) ) {
    				case 1:
    					mes "You have selected ^FF0000WAGHNAKH^000000.";
    					set .ForgeID, 1801;
    					break;
    				case 2:
    					mes "You have selected ^FF0000KNUCKLE DUSTER^000000.";
    					set .ForgeID, 1803;
    					break;
    				case 3:
    					mes "You have selected ^FF0000STUDDED KNUCKLES^000000.";
    					set .ForgeID, 1805;
    					break;
    				case 4:
    					mes "You have selected ^FF0000FIST^000000.";
    					set .ForgeID, 1807;
    					break;
    				case 5:
    					mes "You have selected ^FF0000CLAW^000000.";
    					set .ForgeID, 1809;
    					break;
    				case 6:
    					mes "You have selected ^FF0000FINGER^000000.";
    					set .ForgeID, 1811;
    					break;
    			}
    			break;
    		case 7:
    			mes "Which ^FF0099AXE^000000 would you like me to produce?";
    			switch( select( "Axe (dmg 38):Battle Axe (dmg 80):Hammer (dmg 120):Buster (dmg 115):Two-Handed Axe (dmg 185)" ) ) {
    				case 1:
    					mes "You have selected ^FF0000AXE^000000.";
    					set .ForgeID, 1301;
    					break;
    				case 2:
    					mes "You have selected ^FF0000BATTLE AXE^000000.";
    					set .ForgeID, 1351;
    					break;
    				case 3:
    					mes "You have selected ^FF0000HAMMER^000000.";
    					set .ForgeID, 1354;
    					break;
    				case 4:
    					mes "You have selected ^FF0000BUSTER^000000.";
    					set .ForgeID, 1357;
    					break;
    				case 5:
    					mes "You have selected ^FF0000TWO-HANDED AXE^000000.";
    					set .ForgeID, 1360;
    					break;
    			}
    			break;
    		case 8:
    		mes "Okay, see you next time.";
    		close;
    	}
    	
    	if( getiteminfo( .ForgeID , 13 ) > 1 ) {
    		set .ForgeChance, .ForgeChance - ( getiteminfo( .ForgeID , 13 ) * 10 );
    	}
    	
    	next;
    	mes "[^FF6600Forger^000000]";
    	mes "How many ^FF0099Star Crumbs^000000 would you like to put in your weapon?";
    	switch( select( "1.:2.:3.:None." ) ) {
    	case 1:
    		mes "You wish to forge a ^FF0000VERY STRONG^000000 weapon.";
    		set .SCFor, 1;
    		set .ForgeChance, .ForgeChance - 15;
    		break;
    	case 2:
    		mes "You wish to forge a ^FF0000VERY VERY STRONG^000000 weapon.";
    		set .SCFor, 2;
    		set .ForgeChance, .ForgeChance - 30;
    		break;
    	case 3:
    		mes "You wish to forge a ^FF0000VERY VERY VERY STRONG^000000 weapon.";
    		set .SCFor, 3;
    		set .ForgeChance, .ForgeChance - 45;
    		break;
    	case 4:
    		mes "You do not wish to put ^FF0099Star Crumbs^000000 in this weapon.";
    		set .SCFor, 0;
    		break;
    	}
    	
    	if( .SCFor < 3 ) {
    		next;
    		mes "[^FF6600Forger^000000]";
    		mes "What ^FF0099element^000000 would you like to put into your weapon?";
    		switch( select( "^0000FFICE^000000.:^993300EARTH^000000.:^FF0000FIRE^000000.:^33CC00WIND^000000.:None." ) ) {
    			case 1:
    				mes "You wish to forge with ^0000FFMYSTIC FROZEN^000000.";
    				set .EleFor, 1;
    				set .ForgeChance, .ForgeChance - 20;
    				break;
    			case 2:
    				mes "You wish to forge with ^993300GREAT NATURE^000000.";
    				set .EleFor, 2;
    				set .ForgeChance, .ForgeChance - 20;
    				break;
    			case 3:
    				mes "You wish to forge with ^FF0000FLAME HEART^000000.";
    				set .EleFor, 3;
    				set .ForgeChance, .ForgeChance - 20;
    				break;
    			case 4:
    				mes "You wish to forge with ^33CC00ROUGH WIND^000000.";
    				set .EleFor, 4;
    				set .ForgeChance, .ForgeChance - 20;
    				break;
    			case 5:
    				mes "You do not wish to insert an element into your weapon.";
    				set .EleFor, 0;
    				break;
    		}
    	}
    	if ( getgmlevel() < .GMBypassLv ) {
    		callfunc ( "LOL_ChkSCEle", .EleFor );
    		setd ".ForgeItem", .ForgeID;
    		set .forgeable, callfunc ( "LOL_Chk" + .ForgeItem + "i", .SCFor );
    		if ( .forgeable == 0 ) {
    			next;
    			mes "[^FF6600Forger^000000]";
    			mes "You do not have all the required materials. Please come back when you do.";
    			close;
    		}
    	}
    	if( .SCFor == 1 ) {
    		setd ".StarCrumb$", "Very Strong ";
    	}
    	if( .SCFor == 2 ) {
    		setd ".StarCrumb$", "Very Very Strong ";
    	}
    	if( .SCFor == 3 ) {
    		setd ".StarCrumb$", "Very Very Very Strong ";
    	}
    	if( .EleFor == 1 ) {
    		setd ".Element$", "Ice ";
    	}
    	if( .EleFor == 2 ) {
    		setd ".Element$", "Earth ";
    	}
    	if( .EleFor == 3 ) {
    		setd ".Element$", "Fire ";
    	}
    	if( .EleFor == 4 ) {
    		setd ".Element$", "Wind ";
    	}
    	next;
    	if( .PerfectChance == 1 ) {
    		set .ForgeChance, 100;
    	}
    	mes "[^FF6600Forger^000000]";
    	mes "We are now ready to forge your ^FF0000" + .StarCrumb$ + .Element$ + getitemname( .ForgeID ) + "^000000, at a ^FF0000" + .ForgeChance + "^000000% chance.";
    	mes "^009900ALL ITEMS WILL BE CONSUMED UPON EITHER FAILURE OR SUCCESS^000000. Continue?";
    	switch( select( "Yes.:No." ) ) {
    		case 1:
    			if( getgmlevel() < .GMBypassLv ) {
    				callfunc ( "LOL_DelSCEle", .SCFor, .EleFor );
    				callfunc "LOL_Del" + .ForgeItem + "i";
    			}
    			if( .ForgeChance >= rand( 100 ) ) {
    				if( .NameSet == 1 ) {
    					set .name3, getcharid( 0 ) & 65535;
    					set .name4, getcharid( 0 ) >> 16;
    				}
    				set .lolface, .EleFor + ( ( .SCFor * 5 ) << 8 );
    				getitem2 .ForgeID, 1, 1, 0, 0, 255, .lolface, .name3, .name4;
    				specialeffect 154;
    				next;
    				mes "[^FF6600Forger^000000]";
    				mes "There you go! Enjoy your new weapon!";
    				close;
    			}
    			else {
    				specialeffect 155;
    				next;
    				mes "[^FF6600Forger^000000]";
    				mes "I am very sorry, item creation has ^FF0000failed^000000. Better luck next time.";
    				close;
    			}
    		case 2:
    			mes "[^FF6600Forger^000000]";
    			mes "Well alright, come back if you change your mind.";
    			close;
    		
    	}
    }
    
    //Item-Check and Delete Functions!
    
    //STAR CRUMBS AND ELE.
    function	script	LOL_ChkSCEle	{
    	if( (getarg( 0 ) == 1) && (countitem( 995 ) < 1) ) {
    		mes "[^FF6600Forger^000000]";
    		mes "You do not have the required ^0000FFMystic Frozen^000000. Come back when you do.";
    		close;
    	}
    	if( (getarg( 0 ) == 2) && (countitem( 997 ) < 1) ) {
    		mes "[^FF6600Forger^000000]";
    		mes "You do not have the required ^993300Great Nature^000000. Come back when you do.";
    		close;
    	}
    	if( (getarg( 0 ) == 3) && (countitem( 994 ) < 1) ) {
    		mes "[^FF6600Forger^000000]";
    		mes "You do not have the required ^FF0000Flame Heart^000000. Come back when you do.";
    		close;
    	}
    	if( (getarg( 0 ) == 4) && (countitem( 996 ) < 1) ) {
    		mes "[^FF6600Forger^000000]";
    		mes "You do not have the required ^33CC00Rough Wind^000000. Come back when you do.";
    		close;
    	}
    	return;
    }
    function	script	LOL_DelSCEle	{
    	if( getarg( 0 ) != 0 ) {
    		delitem 1000,getarg( 0 );
    	}
    	if( getarg( 1 ) == 1 ) {
    		delitem 995,1;
    	}
    	if( getarg( 1 ) == 2 ) {
    		delitem 997,1;
    	}
    	if( getarg( 1 ) == 3 ) {
    		delitem 994,1;
    	}
    	if( getarg( 1 ) == 4 ) {
    		delitem 996,1;
    	}
    	return;
    }
    
    
    //DAGGERS:
    // -knife
    function	script	LOL_Chk1201i	{
    	if( (countitem( 1000 ) >= getarg( 0 )) && (countitem( 998 ) >= 1) && (countitem( 909 ) >= 10) ) {
    		return 1;
    	}
    	else {
    		return 0;
    	}
    }
    function	script	LOL_Del1201i	{
    	delitem 998,1;
    	delitem 909,10;
    	return;
    }
    
    // -cutter
    function	script	LOL_Chk1204i	{
    	if( (countitem( 1000 ) >= getarg( 0 )) && (countitem( 998 ) >= 25) ) {
    		return 1;
    	}
    	else {
    		return 0;
    	}
    }
    function	script	LOL_Del1204i	{
    	delitem 998,25;
    	return;
    }
    
    // -main gauche
    function	script	LOL_Chk1207i	{
    	if( (countitem( 1000 ) >= getarg( 0 )) && (countitem( 998 ) >= 50) ) {
    		return 1;
    	}
    	else {
    		return 0;
    	}
    }
    function	script	LOL_Del1207i	{
    	delitem 998,50;
    	return;
    }
    
    // -dirk
    function	script	LOL_Chk1210i	{
    	if( (countitem( 1000 ) >= getarg( 0 )) && (countitem( 999 ) >= 17) ) {
    		return 1;
    	}
    	else {
    		return 0;
    	}
    }
    function	script	LOL_Del1210i	{
    	delitem 999,17;
    	return;
    }
    
    // -dagger
    function	script	LOL_Chk1213i	{
    	if( (countitem( 1000 ) >= getarg( 0 )) && (countitem( 999 ) >= 30 )) {
    		return 1;
    	}
    	else {
    		return 0;
    	}
    }
    function	script	LOL_Del1213i	{
    	delitem 999,30;
    	return;
    }
    
    // -stiletto
    function	script	LOL_Chk1216i	{
    	if( (countitem( 1000 ) >= getarg( 0 )) && (countitem( 999 ) >= 40 )) {
    		return 1;
    	}
    	else {
    		return 0;
    	}
    }
    function	script	LOL_Del1216i	{
    	delitem 999,40;
    	return;
    }
    
    // -gladius
    function	script	LOL_Chk1219i	{
    	if( (countitem( 1000 ) >= getarg( 0 )) && (countitem( 999 ) >= 40) && (countitem( 984 ) >= 4) && (countitem( 726 ) >= 1) ) {
    		return 1;
    	}
    	else {
    		return 0;
    	}
    }
    function	script	LOL_Del1219i	{
    	delitem 984,4;
    	delitem 999,40;
    	delitem 726,1;
    	return;
    }
    
    // -damascus
    function	script	LOL_Chk1222i	{
    	if( (countitem( 1000 ) >= getarg( 0 )) && (countitem( 999 ) >= 60) && (countitem( 984 ) >= 4) && (countitem( 729 ) >= 1) ) {
    		return 1;
    	}
    	else {
    		return 0;
    	}
    }
    function	script	LOL_Del1222i	{
    	delitem 984,4;
    	delitem 999,60;
    	delitem 729,1;
    	return;
    }
    
    //ONE-HANDED SWORDS:
    // -sword
    function	script	LOL_Chk1101i	{
    	if( (countitem( 1000 ) >= getarg( 0 )) && (countitem( 998 ) >= 2 )) {
    		return 1;
    	}
    	else {
    		return 0;
    	}
    }
    function	script	LOL_Del1101i	{
    	delitem 998,2;
    	return;
    }
    
    // -falchion
    function	script	LOL_Chk1104i	{
    	if( (countitem( 1000 ) >= getarg( 0 )) && (countitem( 998 ) >= 30 )) {
    		return 1;
    	}
    	else {
    		return 0;
    	}
    }
    function	script	LOL_Del1104i	{
    	delitem 998,30;
    	return;
    }
    
    // -blade
    function	script	LOL_Chk1107i	{
    	if( (countitem( 1000 ) >= getarg( 0 )) && (countitem( 998 ) >= 45) && (countitem( 913 ) >= 25) ) {
    		return 1;
    	}
    	else {
    		return 0;
    	}
    }
    function	script	LOL_Del1107i	{
    	delitem 998,45;
    	delitem 913,25;
    	return;
    }
    
    // -rapier
    function	script	LOL_Chk1110i	{
    	if( (countitem( 1000 ) >= getarg( 0 )) && (countitem( 999 ) >= 20) ) {
    		return 1;
    	}
    	else {
    		return 0;
    	}
    }
    function	script	LOL_Del1110i	{
    	delitem 999,20;
    	return;
    }
    
    // -scimitar
    function	script	LOL_Chk1113i	{
    	if((countitem( 1000 ) >= getarg( 0 )) && (countitem( 999 ) >= 35) ) {
    		return 1;
    	}
    	else {
    		return 0;
    	}
    }
    function	script	LOL_Del1113i	{
    	delitem 999,35;
    	return;
    }
    
    // -ring pommel saber
    function	script	LOL_Chk1122i	{
    	if((countitem( 1000 ) >= getarg( 0 )) && (countitem( 999 ) >= 40) && (countitem( 920 ) >= 50) ) {
    		return 1;
    	}
    	else {
    		return 0;
    	}
    }
    function	script	LOL_Del1122i	{
    	delitem 999,40;
    	delitem 920,50;
    	return;
    }
    
    // -saber
    function	script	LOL_Chk1126i	{
    	if((countitem( 1000 ) >= getarg( 0 )) && (countitem( 999 ) >= 5) && (countitem( 984 ) >= 8) && (countitem( 727 ) >= 1) ) {
    		return 1;
    	}
    	else {
    		return 0;
    	}
    }
    function	script	LOL_Del1126i	{
    	delitem 984,8;
    	delitem 999,5;
    	delitem 727,1;
    	return;
    }
    
    // -haedongum
    function	script	LOL_Chk1123i	{
    	if((countitem( 1000 ) >= getarg( 0 )) && (countitem( 999 ) >= 10) && (countitem( 984 ) >= 8) && (countitem( 728 ) >= 1) ) {
    		return 1;
    	}
    	else {
    		return 0;
    	}
    }
    function	script	LOL_Del1123i	{
    	delitem 984,8;
    	delitem 999,10;
    	delitem 728,1;
    	return;
    }
    
    // -tsurugi
    function	script	LOL_Chk1119i	{
    	if((countitem( 1000 ) >= getarg( 0 )) && (countitem( 999 ) >= 15) && (countitem( 984 ) >= 8) && (countitem( 718 ) >= 1) ) {
    		return 1;
    	}
    	else {
    		return 0;
    	}
    }
    function	script	LOL_Del1119i	{
    	delitem 984,8;
    	delitem 999,15;
    	delitem 718,1;
    	return;
    }
    
    // -flamberge
    function	script	LOL_Chk1129i	{
    	if((countitem( 1000 ) >= getarg( 0 )) && (countitem( 984 ) >= 16) && (countitem( 724 ) >= 1) ) {
    		return 1;
    	}
    	else {
    		return 0;
    	}
    }
    function	script	LOL_Del1129i	{
    	delitem 984,16;
    	delitem 724,1;
    	return;
    }
    
    //TWO-HANDED SWORDS:
    // -katana
    function	script	LOL_Chk1116i	{
    	if((countitem( 1000 ) >= getarg( 0 )) && (countitem( 998 ) >= 35) && (countitem( 958 ) >= 15) ) {
    		return 1;
    	}
    	else {
    		return 0;
    	}
    }
    function	script	LOL_Del1116i	{
    	delitem 998,35;
    	delitem 958,15;
    	return;
    }
    
    // -slayer
    function	script	LOL_Chk1151i	{
    	if((countitem( 1000 ) >= getarg( 0 )) && (countitem( 999 ) >= 25) && (countitem( 957 ) >= 20) ) {
    		return 1;
    	}
    	else {
    		return 0;
    	}
    }
    function	script	LOL_Del1151i	{
    	delitem 999,25;
    	delitem 957,20;
    	return;
    }
    
    // -bastard sword
    function	script	LOL_Chk1154i	{
    	if((countitem( 1000 ) >= getarg( 0 )) && (countitem( 999 ) >= 45) ) {
    		return 1;
    	}
    	else {
    		return 0;
    	}
    }
    function	script	LOL_Del1154i	{
    	delitem 999,45;
    	return;
    }
    
    // -two-handed sword
    function	script	LOL_Chk1157i	{
    	if((countitem( 1000 ) >= getarg( 0 )) && (countitem( 999 ) >= 10) && (countitem( 984 ) >= 12) ) {
    		return 1;
    	}
    	else {
    		return 0;
    	}
    }
    function	script	LOL_Del1157i	{
    	delitem 984,12;
    	delitem 999,10;
    	return;
    }
    
    // -broad sword
    function	script	LOL_Chk1160i	{
    	if((countitem( 1000 ) >= getarg( 0 )) && (countitem( 999 ) >= 20) && (countitem( 984 ) >= 12) ) {
    		return 1;
    	}
    	else {
    		return 0;
    	}
    }
    function	script	LOL_Del1160i	{
    	delitem 984,12;
    	delitem 999,20;
    	return;
    }
    
    // -claymore
    function	script	LOL_Chk1163i	{
    	if((countitem( 1000 ) >= getarg( 0 )) && (countitem( 999 ) >= 20) && (countitem( 984 ) >= 16) && (countitem( 733 ) >= 1) ) {
    		return 1;
    	}
    	else {
    		return 0;
    	}
    }
    function	script	LOL_Del1163i	{
    	delitem 999,20;
    	delitem 984,16;
    	delitem 733,1;
    	return;
    }
    
    //MACES:
    // -club
    function	script	LOL_Chk1501i	{
    	if((countitem( 1000 ) >= getarg( 0 )) && (countitem( 998 ) >= 3) ) {
    		return 1;
    	}
    	else {
    		return 0;
    	}
    }
    function	script	LOL_Del1501i	{
    	delitem 998,3;
    	return;
    }
    
    // -mace
    function	script	LOL_Chk1504i	{
    	if((countitem( 1000 ) >= getarg( 0 )) && (countitem( 998 ) >= 30) ) {
    		return 1;
    	}
    	else {
    		return 0;
    	}
    }
    function	script	LOL_Del1504i	{
    	delitem 998,30;
    	return;
    }
    
    // -smasher
    function	script	LOL_Chk1507i	{
    	if((countitem( 1000 ) >= getarg( 0 )) && (countitem( 999 ) >= 20) ) {
    		return 1;
    	}
    	else {
    		return 0;
    	}
    }
    function	script	LOL_Del1507i	{
    	delitem 999,20;
    	return;
    }
    
    // -flail
    function	script	LOL_Chk1510i	{
    	if((countitem( 1000 ) >= getarg( 0 )) && (countitem( 999 ) >= 33) ) {
    		return 1;
    	}
    	else {
    		return 0;
    	}
    }
    function	script	LOL_Del1510i	{
    	delitem 999,33;
    	return;
    }
    
    // -chain
    function	script	LOL_Chk1519i	{
    	if((countitem( 1000 ) >= getarg( 0 )) && (countitem( 999 ) >= 45) ) {
    		return 1;
    	}
    	else {
    		return 0;
    	}
    }
    function	script	LOL_Del1519i	{
    	delitem 999,45;
    	return;
    }
    
    // -morning star
    function	script	LOL_Chk1513i	{
    	if((countitem( 1000 ) >= getarg( 0 )) && (countitem( 999 ) >= 85) && (countitem( 730 ) >= 1) ) {
    		return 1;
    	}
    	else {
    		return 0;
    	}
    }
    function	script	LOL_Del1513i	{
    	delitem 999,85;
    	delitem 730,1;
    	return;
    }
    
    // -sword mace
    function	script	LOL_Chk1516i	{
    	if((countitem( 1000 ) >= getarg( 0 )) && (countitem( 999 ) >= 100) && (countitem( 963 ) >= 20) ) {
    		return 1;
    	}
    	else {
    		return 0;
    	}
    }
    function	script	LOL_Del1516i	{
    	delitem 999,100;
    	delitem 963,20;
    	return;
    }
    
    // -stunner
    function	script	LOL_Chk1522i	{
    	if((countitem( 1000 ) >= getarg( 0 )) && (countitem( 999 ) >= 120) && (countitem( 968 ) >= 1) ) {
    		return 1;
    	}
    	else {
    		return 0;
    	}
    }
    function	script	LOL_Del1522i	{
    	delitem 999,120;
    	delitem 968,1;
    	return;
    }
    
    //SPEARS:
    // -javelin
    function	script	LOL_Chk1401i	{
    	if((countitem( 1000 ) >= getarg( 0 )) && (countitem( 998 ) >= 3) ) {
    		return 1;
    	}
    	else {
    		return 0;
    	}
    }
    function	script	LOL_Del1401i	{
    	delitem 998,3;
    	return;
    }
    
    // -spear
    function	script	LOL_Chk1404i	{
    	if((countitem( 1000 ) >= getarg( 0 )) && (countitem( 998 ) >= 35) ) {
    		return 1;
    	}
    	else {
    		return 0;
    	}
    }
    function	script	LOL_Del1404i	{
    	delitem 998,35;
    	return;
    }
    
    // -pike
    function	script	LOL_Chk1407i	{
    	if((countitem( 1000 ) >= getarg( 0 )) && (countitem( 998 ) >= 70) ) {
    		return 1;
    	}
    	else {
    		return 0;
    	}
    }
    function	script	LOL_Del1407i	{
    	delitem 998,70;
    	return;
    }
    
    // -guisarme
    function	script	LOL_Chk1451i	{
    	if((countitem( 1000 ) >= getarg( 0 )) && (countitem( 999 ) >= 25) ) {
    		return 1;
    	}
    	else {
    		return 0;
    	}
    }
    function	script	LOL_Del1451i	{
    	delitem 999,25;
    	return;
    }
    
    // -glaive
    function	script	LOL_Chk1454i	{
    	if((countitem( 1000 ) >= getarg( 0 )) && (countitem( 999 ) >= 40) ) {
    		return 1;
    	}
    	else {
    		return 0;
    	}
    }
    function	script	LOL_Del1454i	{
    	delitem 999,40;
    	return;
    }
    
    // -partizan
    function	script	LOL_Chk1457i	{
    	if((countitem( 1000 ) >= getarg( 0 )) && (countitem( 999 ) >= 55) ) {
    		return 1;
    	}
    	else {
    		return 0;
    	}
    }
    function	script	LOL_Del1457i	{
    	delitem 999,55;
    	return;
    }
    
    // -trident
    function	script	LOL_Chk1460i	{
    	if((countitem( 1000 ) >= getarg( 0 )) && (countitem( 999 ) >= 10) && (countitem( 984 ) >= 8) && (countitem( 720 ) >= 5) ) {
    		return 1;
    	}
    	else {
    		return 0;
    	}
    }
    function	script	LOL_Del1460i	{
    	delitem 984,8;
    	delitem 999,10;
    	delitem 720,5;
    	return;
    }
    
    // -halberd
    function	script	LOL_Chk1463i	{
    	if((countitem( 1000 ) >= getarg( 0 )) && (countitem( 999 ) >= 10) && (countitem( 984 ) >= 12) ) {
    		return 1;
    	}
    	else {
    		return 0;
    	}
    }
    function	script	LOL_Del1463i	{
    	delitem 984,12;
    	delitem 999,10;
    	return;
    }
    
    // -lance
    function	script	LOL_Chk1410i	{
    	if((countitem( 1000 ) >= getarg( 0 )) && (countitem( 984 ) >= 12) && (countitem( 723 ) >= 3) && (countitem( 923 ) >= 2) ) {
    		return 1;
    	}
    	else {
    		return 0;
    	}
    }
    function	script	LOL_Del1410i	{
    	delitem 984,12;
    	delitem 723,3;
    	delitem 923,2;
    	return;
    }
    
    //KNUCKLES:
    // -waghnakh
    function	script	LOL_Chk1801i	{
    	if((countitem( 1000 ) >= getarg( 0 )) && (countitem( 998 ) >= 160) && (countitem( 722 ) >= 1) ) {
    		return 1;
    	}
    	else {
    		return 0;
    	}
    }
    function	script	LOL_Del1801i	{
    	delitem 998,160;
    	delitem 722,1;
    	return;
    }
    
    // -knuckle duster
    function	script	LOL_Chk1803i	{
    	if((countitem( 1000 ) >= getarg( 0 )) && (countitem( 999 ) >= 50) ) {
    		return 1;
    	}
    	else {
    		return 0;
    	}
    }
    function	script	LOL_Del1803i	{
    	delitem 999,50;
    	return;
    }
    
    // -studded knuckles
    function	script	LOL_Chk1805i	{
    	if((countitem( 1000 ) >= getarg( 0 )) && (countitem( 999 ) >= 65) ) {
    		return 1;
    	}
    	else {
    		return 0;
    	}
    }
    function	script	LOL_Del1805i	{
    	delitem 999,65;
    	return;
    }
    
    // -fist
    function	script	LOL_Chk1807i	{
    	if((countitem( 1000 ) >= getarg( 0 )) && (countitem( 984 ) >= 4) && (countitem( 723 ) >= 10) ) {
    		return 1;
    	}
    	else {
    		return 0;
    	}
    }
    function	script	LOL_Del1807i	{
    	delitem 984,4;
    	delitem 723,10;
    	return;
    }
    
    // -claw
    function	script	LOL_Chk1809i	{
    	if((countitem( 1000 ) >= getarg( 0 )) && (countitem( 984 ) >= 8) && (countitem( 728 ) >= 10) ) {
    		return 1;
    	}
    	else {
    		return 0;
    	}
    }
    function	script	LOL_Del1809i	{
    	delitem 984,8;
    	delitem 728,10;
    	return;
    }
    
    // -finger
    function	script	LOL_Chk1811i	{
    	if((countitem( 1000 ) >= getarg( 0 )) && (countitem( 984 ) >= 4) && (countitem( 727 ) >= 10) ) {
    		return 1;
    	}
    	else {
    		return 0;
    	}
    }
    function	script	LOL_Del1811i	{
    	delitem 984,4;
    	delitem 727,10;
    	return;
    }
    
    //AXES:
    // -axe
    function	script	LOL_Chk1301i	{
    	if((countitem( 1000 ) >= getarg( 0 )) && (countitem( 998 ) >= 10) ) {
    		return 1;
    	}
    	else {
    		return 0;
    	}
    }
    function	script	LOL_Del1301i	{
    	delitem 998,10;
    	return;
    }
    
    // -battle axe
    function	script	LOL_Chk1351i	{
    	if((countitem( 1000 ) >= getarg( 0 )) && (countitem( 998 ) >= 110) ) {
    		return 1;
    	}
    	else {
    		return 0;
    	}
    }
    function	script	LOL_Del1351i	{
    	delitem 998,110;
    	return;
    }
    
    // -hammer
    function	script	LOL_Chk1354i	{
    	if((countitem( 1000 ) >= getarg( 0 )) && (countitem( 999 ) >= 30) ) {
    		return 1;
    	}
    	else {
    		return 0;
    	}
    }
    function	script	LOL_Del1354i	{
    	delitem 999,30;
    	return;
    }
    
    // -buster
    function	script	LOL_Chk1357i	{
    	if((countitem( 1000 ) >= getarg( 0 )) && (countitem( 999 ) >= 20) && (countitem( 984 ) >= 4) && (countitem( 922 ) >= 30) ) {
    		return 1;
    	}
    	else {
    		return 0;
    	}
    }
    function	script	LOL_Del1357i	{
    	delitem 984,4;
    	delitem 999,20;
    	delitem 922,30;
    	return;
    }
    
    // -two-handed axe
    function	script	LOL_Chk1360i	{
    	if((countitem( 1000 ) >= getarg( 0 )) && (countitem( 999 ) >= 10) && (countitem( 984 ) >= 8) && (countitem( 719 ) >= 1) ) {
    		return 1;
    	}
    	else {
    		return 0;
    	}
    }
    function	script	LOL_Del1360i	{
    	delitem 999,10;
    	delitem 984,8;
    	delitem 719,1;
    	return;
    }

     

  2. rAthena Hash: d33ea1819
    Client Date:  2018-06-20eRagexeRE / mostly 2020-12-04 grf
    Server Mode:  Pre-Renewal
     

    Since this is not a bug with rAthena, but a question concerning the clients' GAT files, I'm posting this here.


    Yesterday I noticed that Aqua Benedicta was not working in places where I remember it to have worked on official servers years before. At first I thought there was something broken in the server code, but rAthena itself checked out fine: Aqua Benedicta failed because the cells concerned are not marked as water (gat type 3) in the actual gat files themselves.

    Ok, weird, I thought. Did they change the gat files?

    So I compared the gats of the map concerned (rachel) from 2020-12-04 grf with the ones from 2012-04-14 grf (the oldest i had at hand). They do have minor changes, but nothing pertaining to gat type 3.

    Then I batch parsed all gats to see which ones actually have gat type 3 at all.

    For the 2012-04-14 grf there were only 3 maps with water cells:
    - hu_fild05 (1 cell water)
    - kh_kiehl01 (1 cell water)
    - pay_arche (370 cells of water)

    For the  2020-12-04 grf there was a fourth one:
    - tur_d03_i (with 1 cell of water)

    I checked out pay_arche and indeed, I can produce holy water with the aqua benedicta skill there.

    Ok now I'm thoroughly confused. Ignoring the maps with only 1 hard to find cell of water on the whole map, I'm sure to have created holy water on several maps (for example the swimming pool in Rachel at 109/190, or along the little streams on prt_field05) back in the day, and hadn't even tried pay_arche back then.

    Does anybody have any idea about what's going on here? Were official GAT files possibly changed before 2012-04-14 to contain no water cells? Does the whole water system on officials work a different way alltogether? Am I just misremembering?

     

    Edit 1

    I retried with the default map_cache.dat instead of the one created with WeeMapCache for my grf file. Interestingly, with the default one, Aqua Benedicta works at the places it's supposed to. Seems the like either WeeMapCache creates the DAT fiile in a different way then whatever produced the default GAT, or somehow different map files would have had to be used.

    Edit 2

    Looks like the WeeMapCache I used for creating the DAT file was the culprit. Tokei's Map Cache Editor seems to have been created to fix exactly that issue.

     

  3. I noticed a weird thing about the 2010-07-30aRagexeRE client I am using: Ankle Snare traps look normal when they get placed on the ground, but when a mob walks into them, they snap shut, and after that become very... long? It looks like they're becoming infinitely long in one horizontal axis.

    I tried different clients then and they all showed different behaviour with Ankle Snare:

    2009-06-17aSakexe - Traps don't snap closed at all, but no visual bugs

    2010-07-30aRagexeRE - the aforementioned bug

    2012-04-10aRagexeRE - the trap snaps shut, but opens again and remains like that. No visual bugs.

     

    The traps don't seem to have model or animation files in the GRF, as far as I can see, but seem to be part of the client itself. Did anyone have this problem before and found a way to solve it without switching to a newer client? (The newer clients all have the problem with fullscreen mode not using vsync, so there is a consistent tear line at the upper third of the screen.)

    Ro 2017-02-25_14.58.09.863.jpg

  4. This will prevent the twitch animation that all characters in a party show, when the group buffs AL_ANGELUS, PR_MAGNIFICAT, PR_GLORIA or SN_WINDWALK are cast. I always thought it to be very weird that all members would stop walking and show a cast animation when these skills complete, instead of just the caster himself. Uses clif_specialeffect() instead of clif_skill_nodamage() since the latter is hard wired to show the twitch for those skill ids.

    File: skill.c
    Function: skill_castend_nodamage_id()

    Find and change:

        case AL_ANGELUS:
        case PR_MAGNIFICAT:
        case PR_GLORIA:
        case SN_WINDWALK:
        case CASH_BLESSING:
        case CASH_INCAGI:
        case CASH_ASSUMPTIO:
        case WM_FRIGG_SONG:
            if( sd == NULL || sd->status.party_id == 0 || (flag & 1) )
    /*new*/     {
    /*new*/        if (src->id != bl->id)
    /*new*/            {
    /*new*/            if (sc_start(src,bl,type,100,skill_lv,skill_get_time(skill_id,skill_lv)))
    /*new*/                {
    /*new*/                if (skill_id == AL_ANGELUS)
    /*new*/                    clif_specialeffect(bl, 41, AREA);
    /*new*/                else if (skill_id == PR_MAGNIFICAT)
    /*new*/                    clif_specialeffect(bl, 76, AREA);
    /*new*/                else if (skill_id == PR_GLORIA)
    /*new*/                    clif_specialeffect(bl, 75, AREA);
    /*new*/                else if (skill_id == SN_WINDWALK)
    /*new*/                    clif_specialeffect(bl, 389, AREA);
    /*new*/                }
    /*new*/            }
    /*new*/        else
                           clif_skill_nodamage(bl, bl, skill_id, skill_lv, sc_start(src,bl,type,100,skill_lv,skill_get_time(skill_id,skill_lv)));
    /*new*/     }
            else if( sd )
                party_foreachsamemap(skill_area_sub, sd, skill_get_splash(skill_id, skill_lv), src, skill_id, skill_lv, tick, flag|BCT_PARTY|1, skill_castend_nodamage_id);
            break;

     

    • Upvote 1
×
×
  • Create New...