Jump to content

SevySevSevy

Members
  • Posts

    54
  • Joined

  • Last visited

Posts posted by SevySevSevy

  1.  

    try this one, i forget original writer credit goes to them, i just edited

    -	script	LuckyRun	-1,{
    OnHour12://time want event to run
    if(gettime(5)%3) end;// 3 day check
    	while(1){
    		query_sql "select account_id from `char` where online = 1 order by rand() limit 1", [email protected];
    		attachrid [email protected];
    			if(CheckVending()) {
    				DetachRID();
    				continue;
    			}
    		announce "Congrats to, "+strcharinfo(0)+" a winner in the Lucky event!",bc_blue|bc_all;
    		set zeny,zeny + 100000000;
    		break;
    	}
    end;
    }
    

    Ill try it out, thank you ~!

  2. that's the problem, i've already put updated iteminfo.lua and iteminfo.lub in system directory, i tried merge dir data folder containing all six numid related file too, and still  my ur's plate and other item are show unreadable text

    and also little OOT , do you know script to increase range attack to item like vulture's eye skill but to all weapon , i.e nightvision goggles on dro?

    use bonus bAtkRange,N; change the N to ur desired range. for the nightvision goggles :)

  3. In my opinion you'll just need to add it to the array on bottom of the script.

    	setarray .Shop[0],		// Card Shop items: <ID>,<point cost>
    	 30814,300,12246,750;
    

    Just change it to:

    	setarray .Shop[0],		// Card Shop items: <ID>,<point cost>
    	 30814,300,12246,750,616,2;
    

    Best regards,

    Garkor

    Well that would just add OCA to the shop list. I want the NPC to trade players OCA's for 2 Points just like the normal cards.

    bump!

  4. Hello, can someone help me with this script ? I want it to accept OCA ( old card album #616 ) for 2 points too like normal cards.

    Here's the script :

    //===== rAthena Script =======================================
    //= Card Trader
    //===== By: ==================================================
    //= Euphy
    //===== Current Version: =====================================
    //= 1.1 
    //===== Compatible With: =====================================
    //= rAthena SVN
    //===== Description: =========================================
    //= Exchange cards for points.
    //============================================================
    
    prontera,175,159,4	script	Card Trader	90,{
    	mes "[Card Trader]";
    	mes "Hi, "+strcharinfo(0)+"!";
    	mes "What can I do for you?";
    	next;
    	switch(select(" > Information: > Trade in cards: > Point shop (^0055FF"+getd(.Points$)+"^000000): > Leave")) {
    	case 1:
    		mes "[Card Trader]";
    		mes "Do you find that you've got";
    		mes "useless cards lying around?";
    		mes "I'll be glad to take them off";
    		mes "your hands!";
    		next;
    		mes "[Card Trader]";
    		mes "I'll give you ^0055FF"+.Points[0]+" Point"+((.Points[0] == 1)?"":"s")+"^000000 for each";
    		mes "card you give me, and";
    		mes "^0055FF"+.Points[1]+" Points^000000 for MVP cards.";
    		mes "You can trade those points";
    		mes "for items later on.";
    		mes "How does that sound?";
    		emotion e_cash;
    		close;
    	case 2:
    		mes "[Card Trader]";
    		mes "Select the cards you";
    		mes "want to trade in.";
    		if (.Level) {
    			mes " ";
    			mes "They must be dropped";
    			mes "by monsters of level";
    			mes .Level+" and above.";
    		}
    		deletearray @sold_nameid[0],getarraysize(@sold_nameid);
    		callshop "card_shop",2;
    		npcshopattach "card_shop";
    		end;
    	case 3:
    		mes "[Card Trader]";
    		mes "You have ^0055FF"+getd(.Points$)+"^000000 Point"+((getd(.Points$) == 1)?".":"s.");
    		callshop "card_shop",1;
    		npcshopattach "card_shop";
    		end;
    	case 4:
    		mes "[Card Trader]";
    		mes "*yawn*";
    		mes "See you later!";
    		emotion e_yawn;
    		close;		
    	}
    
    OnSellItem:
    	mes "Cards to sell:";
    	mes "-----------------------------------";
    	for(set [email protected],0; [email protected]<getarraysize(@sold_nameid); set [email protected],[email protected]+1)
    		if (@sold_nameid[[email protected]] > 4000 && @sold_nameid[[email protected]] < 4700) {
    			if (.Level) {
    				query_sql("SELECT `LV` FROM `mob_db` WHERE `DropCardid` = "[email protected]_nameid[[email protected]],[email protected]);
    				if ([email protected] < .Level) {
    					dispbottom getitemname(@sold_nameid[[email protected]])+" is under the minimum level.";
    					continue;
    				}
    			}
    			set [email protected]_id[getarraysize([email protected]_id)], @sold_nameid[[email protected]];
    			set [email protected]_amt[getarraysize([email protected]_amt)], @sold_quantity[[email protected]];
    			set [email protected], compare(.MVP$,""[email protected]_nameid[[email protected]]);
    			mes (([email protected])?"  ^FF0000":"  ^777777")[email protected]_quantity[[email protected]]+"x "+getitemname(@sold_nameid[[email protected]])+"^000000";
    			set [email protected]_total, [email protected]_total+(@sold_quantity[[email protected]]*(([email protected])?.Points[1]:.Points[0]));
    		}
    	deletearray @sold_nameid[0], getarraysize(@sold_nameid);
    	deletearray @sold_quantity[0], getarraysize(@sold_quantity);
    	if ([email protected]_id) {
    		mes "  ^777777(none)^000000";
    		emotion e_swt;
    		close;
    	}
    	mes " ";
    	mes "---------- Total: ^0055FF"[email protected]_total+" pt.^000000 -------";
    	next;
    	if(select(" > ^0055FFComplete trade...^000000: > ^777777Cancel^000000") == 2) {
    		mes "[Card Trader]";
    		mes "Oh, okay...";
    		emotion e_hmm;
    		close;
    	}
    	for(set [email protected],0; [email protected]<getarraysize([email protected]_id); set [email protected],[email protected]+1)
    		delitem [email protected]_id[[email protected]],[email protected]_amt[[email protected]];
    	setd .Points$, getd(.Points$)[email protected]_total;
    	mes "[Card Trader]";
    	mes "All done!";
    	emotion e_ho;
    	close;
    
    OnBuyItem:
    	for(set [email protected],0; [email protected]<getarraysize(@bought_nameid); set [email protected],[email protected]+1)
    		for(set [email protected],0; [email protected]<getarraysize(.Shop); set [email protected],[email protected]+2)
    			if (@bought_nameid[[email protected]] == .Shop[[email protected]]) {
    				set [email protected], [email protected]+(.Shop[[email protected]+1]*@bought_quantity[[email protected]]);
    				break;
    			}
    	if ([email protected] > getd(.Points$)) {
    		mes "[Card Trader]";
    		mes "You don't have enough Points.";
    		emotion e_omg;
    	}
    	else {
    		mes "Items purchased:";
    		mes "-----------------------------------";
    		for(set [email protected],0; [email protected]<getarraysize(@bought_nameid); set [email protected],[email protected]+1) {
    			getitem @bought_nameid[[email protected]], @bought_quantity[[email protected]];
    			mes "  ^777777"[email protected]_quantity[[email protected]]+"x "+getitemname(@bought_nameid[[email protected]])+"^000000";
    		}
    		mes " ";
    		mes "---------- Total: ^0055FF"[email protected]+" pt.^000000 -------";
    		setd .Points$, getd(.Points$)[email protected];
    		emotion e_cash;
    	}
    	deletearray @bought_nameid[0], getarraysize(@bought_nameid);
    	deletearray @bought_quantity[0], getarraysize(@bought_quantity);
    	close;
    
    OnInit:
    	set .Level,0;   		// Minimum monster level to trade corresponding cards.
    	set .Points$,"#Card_Points";	// Variable to store points.
    	setarray .Shop[0],		// Card Shop items: <ID>,<point cost>
    	 30814,300,12246,750;
    	setarray .Points[0],2,150;	// Points per <normal card>,<MVP card>
    	set .MVP$,			// List of MVP cards.
    	  "4121,4123,4128,4131,4132,4134,4135,4137,4143,4144,4145,4146,4147,4148,4168,4236,"+
    	  "4241,4263,4276,4302,4305,4318,4324,4330,4342,4357,4359,4361,4363,4365,4399,4403,4407";
    	
    	npcshopdelitem "card_shop",909;
    	for(set [email protected],0; [email protected]<getarraysize(.Shop); set [email protected],[email protected]+2)
    		npcshopadditem "card_shop",.Shop[[email protected]],.Shop[[email protected]+1];
    	end;
    }
    -	shop	card_shop	-1,909:-1
    
  5. for the class check change this

    (25 is ninjas job ID, find other classes in const.txt)

        if (Class != 23 && (Class < 4008 || Class > 4022)) {
            mes "This feature is not available for your class."; close; }
    

    to

        if (Class != 23 && Class != 25 && (Class < 4008 || Class > 4022)) {
            mes "This feature is not available for your class."; close; }

    and

    for the item check for despecialize change this

    ( set 1st [email protected] to your custom ring base ID and set the [email protected]<= to your highest ring ID )

     

        for (set [email protected],3350; [email protected]<=3377; set [email protected],[email protected]+1)
            if (countitem([email protected])>0) { sleep2 1000; goto Despecialize; }
    

    to

        for (set [email protected],30782; [email protected]<=30783; set [email protected],[email protected]+1)
            if (countitem([email protected])>0) { sleep2 1000; goto Despecialize; }

    and of course the part you already did looks fine,

    just repeat the process for  each class and item

    Anyone?

    here you are

    Thankyou very much, you really helping me a lot.

  6. Can someone please add Ninja,Taekwon and Gunslinger class on this Class Specialization script by euphy ?? 

     

    I know how to add the 

     case 25: Option("Kensei","Final Stike Master",30782,"Tenzou","Element Bender",30783);

     part of the script but I dont know how to allow the jobs mentioned above when the NPC checks if you can specialize or not.

    Heres the full script .

    //===== eAthena Script =======================================
    //= Class Specialization
    //===== By: ==================================================
    //= Euphy
    //===== Current Version: =====================================
    //= 1.2
    //===== Description: =========================================
    //= A class expansion system allowing characters to
    //= "specialize" in a particular aspect of their job.
    //============================================================
    
    aretnorp,219,317,4	script	Legend's Quest	588,{
    function Option;
    
    // --------------------- Config ---------------------
    //  Max: Maximum base level, maximum job level,
    //		and maximum job level for Super Novices.
    // SReq: Items required to specialize.
    //		Format is "ID1,Count1,ID2,Count2,..."
    //		If no requirements, use a single 0.
    // DReq: Zeny, in MILLIONS, to despecialize.
    //		If no requirement, use 0.
    
    	setarray .Max[0],255,120,90;
    	setarray .SReq[0],7443,10,30705,15,1009,1500,916,300,954,500,7294,20,969,100,617,50,938,1000,616,25,7211,10,7297,15,7023,30,7017,30,30716,1;
    	set .DReq,150;
    	set .n$,"[ Krito ]";
    
    // --------------------------------------------------
    
    	mes .n$;
    	if (BaseLevel < .Max[0]) {
    		mes "Sorry, but I can only speak to the worthy ones..."; close; }
    	if (Class != 23 && (Class < 4008 || Class > 4022)) {
    		mes "This feature is not available for your class."; close; }
    	if ((JobLevel < .Max[1]) || (Class == 23 && JobLevel < .Max[2])) {
    		mes "You must master your class before using this feature."; close; }
    
    	mes "Welcome, I see you have mastered your class."; sleep2 500;
    	mes "Do you know that the process of being a ^0055ffLegend^000000 can greatly enhance your attributes."; sleep2 750;
    	mes "I have been practicing the art of Legend transformation, with hard work and determination"; sleep2 750;
    	mes "I perfected it and now I offer Legends transformation to the worthy..."; sleep2 750;
    	mes "^ff0000Do you want to be transformed into a Legend?^000000"; sleep2 750;
    	next;
    	if(select("I want to be a Legend!:I'll think about it.")==2) goto Closing;
    	mes .n$;
    	for (set [email protected],3350; [email protected]<=3377; set [email protected],[email protected]+1)
    		if (countitem([email protected])>0) { sleep2 1000; goto Despecialize; }
    	sleep2 500;
    
    	if (getarraysize(.SReq)) {
    		mes "The process is not simple."; sleep2 1000;
    		mes "I require the following items:"; sleep2 750;
    		set [email protected],0;
    		while ([email protected] < getarraysize(.SReq)) {
    			mes "  ~ ^FF0000"+getitemname(.SReq[[email protected]])+"^000000 [^0055ff"+countitem(.SReq[[email protected]])+"^000000/"+.SReq[[email protected]+1]+"]"; sleep2 100;
    			set [email protected], [email protected]+2; }
    		next;
    		if(select("I've got them all.:I'll come back later.")==2) close;
    		set [email protected],0;
    		while ([email protected] < getarraysize(.SReq)) {
    			if (countitem(.SReq[[email protected]]) < .SReq[[email protected]+1]) {
    				mes .n$; sleep2 500;
    				mes "You're missing some items."; sleep2 500;
    				mes "I'll need all the materials";
    				mes "for this to work.";
    				close; }
    		set [email protected], [email protected]+2; }
    		mes .n$; }
    
    	switch(Class){
    		case 23: Option("Ultra Novice","Heightened magical powers",3372,"Hyper Novice","Insurmountable in strength",3373);
    		case 4008: Option("Slayer","Agile sword-bearer",3350,"Lancer","Spear expert",3351);
    		case 4009: Option("Cardinal","Divine healer",3354,"Battle Priest","Powerful acolyte-warrior",3355);
    		case 4010: Option("Evoker","Bolt-oriented magician",3364,"Sorcerer","Area-oriented spellcaster",3365);
    		case 4011: Option("Goldsmith","Master forger",3376,"Battlesmith","Impulsive axeman",3377);
    		case 4012: Option("Scout","Swift archer",3368,"Ranger","Dagger-wielder",3369);
    		case 4013: Option("Virus","Strength in poison",3362,"Reaver","High-defense killer",3363);
    		case 4015: Option("Guardian","Unstoppable tank",3352,"Templar","Holy mercenary",3353);
    		case 4016: Option("Brawler","Lethal combos",3356,"Zealot","Fanatic striker",3357);
    		case 4017: Option("Geomancer","Single-spell sorcerer",3366,"Enchanter","Melee assaulter",3367);
    		case 4018: Option("Raider","Cunning marksman",3374,"Backstabber","Delusive assassin",3375);
    		case 4019: Option("Apothecary","Potion-brewer",3370,"Terrorist","Malicious bomber",3371);
    		case 4020: Option("Minstrel","Gifted bard",3358,"Jester","Musical killer",3359);
    		case 4021: Option("Performer","Gifted dancer",3360,"Siren","Musical killer",3361);
    		case 25: Option("Kensei","Final Stike Master",30782,"Tenzou","Element Bender",30783);
    		case 
    		case 
    		default: mes "Something went wrong. Try again."; close; }
    
    function Option {
    	mes "^0055ff > "+getarg(0);
    		sleep2 200;
    	mes "^777777 > "+getarg(1)+".";
    	mes " ";
    		sleep2 200;
    	mes "^0055ff > "+getarg(3);
    		sleep2 200;
    	mes "^777777 > "+getarg(4)+".^000000";
    	set @menu$,"^0055ff"+getarg(0)+":"+getarg(3)+":^777777Cancel^000000";
    		sleep2 1000;
    	next;
    	switch(select(@menu$)) {
    		case 1: set @sring,getarg(2); set @sclass$,getarg(0); goto SConfirm;
    		case 2: set @sring,getarg(5); set @sclass$,getarg(3); goto SConfirm;
    		case 3: goto Closing; }
    }
    
    SConfirm:
    	mes .n$;
    	mes "Are you sure you want to specialize as the ^0055ff" + @sclass$ + "^000000 class?"; mes " "; sleep2 500;
    	next;
    	if(select("I need more time to think.:I am ready.")==1) goto Closing;
    	progressbar "",2;
    	specialeffect2 248;
    	if (getarraysize(.SReq)) {
    		set [email protected],0;
    		while ([email protected] < getarraysize(.SReq)) {
    			delitem .SReq[[email protected]], .SReq[[email protected]+1];
    			set [email protected], [email protected]+2; }
    	}
    	mes .n$;
    	mes "...finished!"; sleep2 500;
    	mes "Here's your ^0055ff" + getitemname(@sring) + "^000000."; sleep2 200;
    	getitem @sring,1;
    	ResetStatus;
    	set StatusPoint, StatusPoint + 2000; sleep2 200;
    	set legendok, 1;
    	announce ""+ strcharinfo(0) +" has completed the Legends Quest, He is now part of history.",bc_all;   
    	nude;
    	equip @sring;
    	close;
    
    Despecialize:
    	mes "You've already specialized!"; sleep2 1000;
    	if (.DReq) {
    		mes " ";
    		mes "^777777There is a way to switch, if you really want to... but it's costly.^000000"; sleep2 1000;
    		next;
    		if(select("Okay, never mind.:I still want to switch!")==1) close;
    		mes .n$; sleep2 1000;
    		mes "...okay."; sleep2 800;
    		mes "To undo the specialization process, I'll need ^ff0000" + .DReq + " million Zeny^000000 to";
    		mes "obtain all the materials I need."; mes " "; sleep2 1000;
    		mes "Are you sure?"; sleep2 1000;
    		next;
    		if(select("What? No way!:Yes.")==1) goto Closing;
    		mes .n$;
    		if (Zeny < (.DReq*1000000)) {
    			sleep2 500;
    			mes "You don't have enough Zeny."; sleep2 500;
    			mes "It's an expensive procedure, so please reconsider.";
    			close; }
    	} else {
    		mes "Your ring will be deleted if you despecialize."; sleep2 1000;
    		next;
    		if(select("Oh, never mind then.:Let me despecialize!")==1) close;
    		mes .n$; sleep2 1000;
    		mes "Do you really want to despecialize?"; sleep2 500;
    		next;
    		if(select("No, I've changed my mind.:Yes.")==1) close;
    		mes .n$; }
    	progressbar "", 2;
    	specialeffect2 338;
    	set Zeny, Zeny - (.DReq*1000000);
    	for (set [email protected],3350; [email protected]<=3377; set [email protected],[email protected]+1)
    		if (countitem([email protected])>0) delitem [email protected],1;
    	mes "...finished!"; sleep2 1000;
    	mes "^777777(I hope you don't regret this...)^000000"; sleep2 1000;
    	close;
    
    Closing:
    	mes .n$;
    	mes "Come back when you've";
    	mes "made your decision.";
    	close;
    }
    
    function	script	SpecEffect	{
    	function dd	{
    		while([email protected]<=getarg(2)){
    			set [email protected], [email protected]+1;
    			specialeffect2 getarg(0);
    			sleep2(getarg(1)); }
    		return; }
    	if(@effectdelay < gettimetick(2)) {
    		set @effectdelay, gettimetick(2)+5;
    		dd(54,10,2); dd(55,10,2); dd(668,10,2); dd(58,10,2); dd(377,10,2); dd(500,20,2); }
    }
    

    TIA :) 

  7. Hi, just wondering with this script. Can it be updated daily automatically? Like it has a set of list of items already it and it randomly chooses those items and puts it on their list (max of 5) for a day, and after a 24 hour period, it refreshes into a new set of items.

     

    I'm not sure if I explained it quite well xD

     

    Maybe OnClock0000: and then it would automatically set .hw or something like that to 5 again? I dunno xD

    that's totally a cool idea. I hope someone can make it. 

    bumping this one up!

  8. Hello, my map server displays this debug code everytime someone uses the healer.
     

    [ Debug ] : source (NPC): PCSTATCALC (invisible/not on a map)
    

    I found out it's because of Stolao's Weapon Mastery script.
    I don't to remove the Weapon Mastery on my server but I want the debug msg to be solved/fixed. Sadly I don't know how, can someone please help me on what to edit on this script : 

     

    //===== EinherjarRO Scripts ================================== 
    //= WeaponMasteries
    //===== By: ================================================== 
    //= Stolao
    //===== Current Version: ===================================== 
    //= 1.0F
    //===== Compatible With: ===================================== 
    //= rAthena SVN
    //===== Description: ========================================= 
    //= As you train using a particulat weapon type you get passive 
    //= buffs depending on how much yo have used that type
    //= There are five types Onslaught, Swiftness, Safeguard, Ranged and Mystical
    //===== Comments: ============================================
    //= [Stolao]
    //= Designed for mid sized mid rate servers, not tested on large server yet
    //= Scythe is a custom weapon type I designed for my necromancer class
    //===== Additional Comments: =================================
    //= 1.00 Origioanal Make
    //= 1.01 +33% Masteries >> Atk
    //= 1.02 +50% Masteries >> Matk
    //= 1.03 Rename Masteries
    //= 1.04 Redistibute Weapons into new masteries
    //= 1.05 Wiped Mastery Bonuses
    //= 1.06 Added Starting Bonuses
    //= 1.07 Made OnPCStatCalcEvent for Mastery System
    //= 1.08 Added mastery Bonueses for Lvl 1, 2, 4, 8, 16, 32 ,64, and 128
    //= 1.09 Changed Mysticals MaxSPRate for MaxSp
    //= 1.0A Added @wi (see bindatcmd.txt)
    //= 1.0B Added @wlvl (see bindatcmd.txt)
    //= 1.0C Removed dependency from bindatcmd.txt
    //= 1.0D Rebalanced a few formulas for differant masteries
    //= 1.0F Removed dependency from ONNPCKILLEVENT.txt (for release version)
    //= 1.10 Changed Mysticals, Castrate, Delayrate, Sprate to be -10% at max level
    //= 1.11 Changed Mysticals, EquipmentMatk to be 250 at max level
    //= 1.12 Fixed typo in Safeguard
    //===== Contact Ifo: =========================================
    //= [Stolao] 
    //= Email: [email protected]
    //============================================================
    //
    // Str - Onslaught:	2HSword,1HAxe,2HAxe,1HMace,2HMace(unused),Knuckle
    // Agi - Swiftness:	Specialty,Dagger,Fuuma Shuriken,Katar
    // Vit - Safeguard:	Unarmmed,1HSword,1HSpear,2HSpear
    // Dex - Ranged:	Bow,Instrument,Whip,Revolver,Rifle,Gatling Gun,Shotgun,Grenade Launcher
    // Int - Mystical:	Rod,Book,2HStaff,Scythe
    
    function	script	Onslaught_M	{
    	if(OnslaughtMaster >= 1)bonus bCritical,1+OnslaughtMaster/4;
    	if(OnslaughtMaster >= 2)bonus bAtk,1+OnslaughtMaster/2;
    	if(OnslaughtMaster >= 4)bonus bAtk2,1+OnslaughtMaster/2;
    	if(OnslaughtMaster >= 8)bonus bPerfectHitAddRate,1+OnslaughtMaster/4;
    	if(OnslaughtMaster >= 16)bonus bBaseAtk,OnslaughtMaster-9;
    	if(OnslaughtMaster >= 32)bonus bCritAtkRate,OnslaughtMaster+22;
    	if(OnslaughtMaster >= 64)bonus bAspdRate,OnslaughtMaster/4;
    	if(OnslaughtMaster >= 128)bonus bSplashAddRange,1;
    	bonus bStr,1+OnslaughtMaster/9;
    	bonus bAtkrate,1+OnslaughtMaster/4;
    return;
    }
    
    function	script	Swiftness_M	{
    	if(SwiftnessMaster >= 1)bonus bSpeedAddRate,1+SwiftnessMaster/4;
    	if(SwiftnessMaster >= 2)bonus bFlee,SwiftnessMaster/2;
    	if(SwiftnessMaster >= 4)bonus bDoubleAddRate,1+SwiftnessMaster/8;
    	if(SwiftnessMaster >= 8)bonus bFlee2,1+SwiftnessMaster/8;
    	if(SwiftnessMaster >= 16)bonus bPerfectHitAddRate,1+SwiftnessMaster/8;
    	if(SwiftnessMaster >= 32)bonus bHPDrainValue,SwiftnessMaster/4-2;
    	if(SwiftnessMaster >= 64)bonus bCritical,1+OnslaughtMaster/4;
    	if(SwiftnessMaster >= 128)bonus bCritAtkRate,SwiftnessMaster-28;
    	bonus bAgi,1+SwiftnessMaster/9;
    	bonus bAspdRate,1+SwiftnessMaster/4;
    return;
    }
    
    function	script	Safeguard_M	{
    	if(SafeguardMaster >= 1)bonus bHPrecovRate,22+SafeguardMaster;
    	if(SafeguardMaster >= 2)bonus bDef,1+SafeguardMaster/8;
    	if(SafeguardMaster >= 4)bonus bMdef,1+SafeguardMaster/8;
    	if(SafeguardMaster >= 8)bonus bMaxHPrate,1+SafeguardMaster/4;
    	if(SafeguardMaster >= 16)bonus bCriticalDef,SafeguardMaster/8-1;
    	if(SafeguardMaster >= 32)bonus bNearAtkDef,SafeguardMaster/8-1;
    	if(SafeguardMaster >= 64)bonus bLongAtkDef,SafeguardMaster/8-1;
    	if(SafeguardMaster >= 128)bonus bMagicAtkDef,SafeguardMaster/8-1;
    	bonus bVit,1+SafeguardMaster/9;
    	bonus bMaxHP,SafeguardMaster*6+7;
    return;
    }
    
    function	script	Ranged_M	{
    	if(RangedMaster >= 1)bonus bSpeedAddRate,1+RangedMaster/8;
    	if(RangedMaster >= 2)bonus bCritical,1+RangedMaster/8;
    	if(RangedMaster >= 4)bonus bFlee,1+RangedMaster/4;
    	if(RangedMaster >= 8)bonus bAspd,RangedMaster;
    	if(RangedMaster >= 16)bonus bHit,RangedMaster;
    	if(RangedMaster >= 32)bonus bLongAtkRate,RangedMaster/8;
    	if(RangedMaster >= 64)bonus bAtkRange,RangedMaster/64;
    	if(RangedMaster >= 128)bonus bCritAtkRate,11+RangedMaster/2;
    	bonus bDex,1+RangedMaster/9;
    	bonus bAtkrate,1+RangedMaster/4;
    return;
    }
    
    function	script	Mystical_M	{
    	if(MysticalMaster >= 1)bonus bSPrecovRate,22+MysticalMaster;
    	if(MysticalMaster >= 2)bonus bMaxSP,MysticalMaster*3+16;
    	if(MysticalMaster >= 4)bonus bCastrate,-2-MysticalMaster/16;
    	if(MysticalMaster >= 8)bonus bUseSPrate,-2-MysticalMaster/16;
    	if(MysticalMaster >= 16)bonus bDelayrate,-2-MysticalMaster/16;
    	if(MysticalMaster >= 32)bonus bHealPower,22+MysticalMaster;
    	if(MysticalMaster >= 64)bonus bEquipmentMatk,2*MysticalMaster-6;
    	if(MysticalMaster >= 128)bonus bNoCastCancel,1;
    	bonus bInt,1+MysticalMaster/9;
    	bonus bMAtkrate,1+MysticalMaster/4;
    return;
    }
    
    -	script	PCSTATCALC	-1,{
    OnWeaponInfo:
    	set [email protected]$,[email protected]_parameters$[0];
    	if(([email protected]$ == "")){
    		switch(getiteminfo(getequipid(EQI_HAND_R),11)){
    			case 3:  	case 6: 	case 7: 	case 8:	
    			case 9:		case 12:					set [email protected]$,"Onslaught";	Break;
    			case 0: 	case 1: 	case 16:	case 22:	set [email protected]$,"Swiftness";	Break;
    			case 2: 	case 4: 	case 5:		case -1:	set [email protected]$,"Safeguard";	Break;
    			case 11:	case 13:	case 14:	case 17:
    			case 18:	case 19:	case 20:	case 21:	set [email protected]$,"Ranged";	Break;
    			case 10:	case 15:	case 23:	case 24:	set [email protected]$,"Mystical";	Break;
    		}
    	}
    	if([email protected]$ == "Onslaught" || [email protected]$ == "onslaught") set [email protected],1;
    	if([email protected]$ == "Swiftness" || [email protected]$ == "swiftness") set [email protected],2;
    	if([email protected]$ == "Safeguard" || [email protected]$ == "Safeguard") set [email protected],3;
    	if([email protected]$ == "Ranged"    || [email protected]$ == "ranged"   ) set [email protected],4;
    	if([email protected]$ == "Mystical"  || [email protected]$ == "mystical" ) set [email protected],5;
    	set [email protected],atoi([email protected]_parameters$[1]);
    	if([email protected]) set [email protected],getd(""[email protected]$+"Master");
    	switch([email protected]){
    		case 1:
    			dispbottom "Onslaught Lv: "[email protected]+" "+OnslaughtExp+" / "+((OnslaughtMaster*OnslaughtMaster*25)+10+OnslaughtMaster)+"xp";
    			dispbottom "Str +"+([email protected]/9)+"";
    			dispbottom "Atk +"+([email protected]/4)+"%";
    			if([email protected] >= 1)dispbottom "Critical Chance +"+([email protected]/4)+"";
    			if([email protected] >= 2)dispbottom "Atk +"+([email protected]/2)+"";
    			if([email protected] >= 4)dispbottom "Weapon Atk +"+([email protected]/2)+"";
    			if([email protected] >= 8)dispbottom "Perfect Hit +"+([email protected]/4)+"";
    			if([email protected] >= 16)dispbottom "Base Atk +"+([email protected])+"";
    			if([email protected] >= 32)dispbottom "Crit Damage +"+([email protected]+22)+"%";
    			if([email protected] >= 64)dispbottom "Aspd +"[email protected]/4+"%";
    			if([email protected] >= 128)dispbottom "Splash attack radius +1";
    		break;
    		case 2:	
    			dispbottom "Swiftness Lv: "[email protected]+" "+SwiftnessExp+" / "+((SwiftnessMaster*SwiftnessMaster*25)+10+SwiftnessMaster)+"xp";
    			dispbottom "Agi +"+([email protected]/9)+"";
    			dispbottom "Aspd +"+([email protected]/4)+"%";
    			if([email protected] >= 1)dispbottom "Moving speed +"+([email protected]/4)+"%";
    			if([email protected] >= 2)dispbottom "Flee +"+([email protected]/2)+"";
    			if([email protected] >= 4)dispbottom "Double Attack Chance +"+([email protected]/8)+"%";
    			if([email protected] >= 8)dispbottom "Perfect Dodge +"+([email protected]/8)+"";
    			if([email protected] >= 16)dispbottom "On-target impact chance +"+([email protected]/8)+"%";
    			if([email protected] >= 32)dispbottom "Heals "+([email protected]/4-2)+" HP with each normal attack";
    			if([email protected] >= 64)dispbottom "Critical Chance +"+([email protected]/4)+"";
    			if([email protected] >= 128)dispbottom "Crit Damage +"+([email protected])+"%";
    		break;
    		case 3:
    			dispbottom "Safeguard Lv: "[email protected]+" "+SafeguardExp+" / "+((SafeguardMaster*SafeguardMaster*25)+10+SafeguardMaster)+"xp";
    			dispbottom "Vit +"+([email protected]/9)+"";
    			dispbottom "Max HP +"+([email protected]*6+7)+"";
    			if([email protected] >= 1)dispbottom "Natural HP recovery ratio +"+([email protected])+"%";
    			if([email protected] >= 2)dispbottom "Def +"+([email protected]/8)+"";
    			if([email protected] >= 4)dispbottom "Mdef +"+([email protected]/8)+"";
    			if([email protected] >= 8)dispbottom "Max HP +"+([email protected]/4)+"%";
    			if([email protected] >= 16)dispbottom "Adds "+([email protected]/8-1)+" damage reduction against Critical Hits";
    			if([email protected] >= 32)dispbottom "Adds "+([email protected]/8-1)+" damage reduction against melee physical attacks";
    			if([email protected] >= 64)dispbottom "Adds "+([email protected]/8-1)+" damage reduction against ranged physical";
    			if([email protected] >= 128)dispbottom "Adds "+([email protected]/8-1)+" damage reduction against magical attacks";
    		break;
    		case 4:
    			dispbottom "Ranged Lv: "[email protected]+" "+RangedExp+" / "+((RangedMaster*RangedMaster*25)+10+RangedMaster)+"xp";
    			dispbottom "Dex +"+([email protected]/9)+"";
    			dispbottom "Atk +"+([email protected]/4)+"%";
    			if([email protected] >= 1)dispbottom "Moving speed +"+([email protected]/8)+"%";
    			if([email protected] >= 2)dispbottom "Critical +"+([email protected]/8)+"";
    			if([email protected] >= 4)dispbottom "Flee +"+([email protected]/2)+"";
    			if([email protected] >= 8)dispbottom "Aspd +"+([email protected])+"";
    			if([email protected] >= 16)dispbottom "Hit +"+([email protected])+"";
    			if([email protected] >= 32)dispbottom "Increases damage of ranged attacks by "+([email protected]/8)+"%";
    			if([email protected] >= 64)dispbottom "Atk Range +"+([email protected]/64)+"";
    			if([email protected] >= 128)dispbottom "Crit Damage +"+([email protected]/2)+"%";
    		break;
    		case 5:
    			dispbottom "Mystical Lv: "[email protected]+" "+MysticalExp+" / "+((MysticalMaster*MysticalMaster*25)+10+MysticalMaster)+"xp";
    			dispbottom "Int +"+([email protected]/9)+"";
    			dispbottom "Matk +"+([email protected]/4)+"%";
    			if([email protected] >= 1)dispbottom "Natural SP recovery ratio +"+([email protected]+22)+"%";
    			if([email protected] >= 2)dispbottom "Max SP +"+([email protected]*3)+"";
    			if([email protected] >= 4)dispbottom "Skill casting time "+([email protected]/16)+"%";
    			if([email protected] >= 8)dispbottom "SP consumption "+([email protected]/16)+"%";
    			if([email protected] >= 16)dispbottom "Decreases skill delay by "+([email protected]/16)+"%";
    			if([email protected] >= 32)dispbottom "Increase heal amount of all heal skills by "+([email protected])+"%";
    			if([email protected] >= 64)dispbottom "Weapon magical attack power +"+(2*[email protected])+"";
    			if([email protected] >= 128)dispbottom "Prevents casting from being interrupted when hit";
    		break;
    		default:
    			dispbottom "@wi <Type>[, <Level>]";
    			dispbottom "Type: Onslaught, Swiftness, Safeguard, Ranged, Mystical";
    			dispbottom "Level: Level of mastery  you wish to see effects for, Blank = current level";
    		break;
    	}
    end;
    OnWeaponLevel:
    	set [email protected]$,[email protected]_parameters$[0];
    	set [email protected],atoi([email protected]_parameters$[1]);
    	if(([email protected]$ != "Onslaught" && [email protected]$ != "Swiftness" && [email protected]$ != "Safeguard" && [email protected]$ != "Ranged" && [email protected]$ != "Mystical" && [email protected]$ != "All")||[email protected]){
    		dispbottom "@wlvl <type> <lvl>";
    		dispbottom "Onslaught,  Swiftness,  Safeguard,  Ranged,  Mystical,  All";
    		end;
    	}
    	if(.MaxMastery >= [email protected]){
    		if([email protected]$ == "All"){
    			setarray [email protected]$[0],"Onslaught","Swiftness","Safeguard","Ranged","Mystical";
    			set [email protected],0;
    			while([email protected] < 5){
    				setd ""[email protected]$[[email protected]]+"Master",[email protected];
    				setd ""[email protected]$[[email protected]]+"Exp",0;
    				dispbottom ""[email protected]$[[email protected]]+" Mastery has advanced to Lv "[email protected]+"!";
    				set [email protected],[email protected]+1;
    			}
    		} else {
    			setd ""[email protected]$+"Master",[email protected];
    			setd ""[email protected]$+"Exp",0;
    			dispbottom ""[email protected]$+" Mastery has advanced to Lv "[email protected]+"!";
    		}
    	} else {
    		dispbottom "Sorry. Your "[email protected]$+" Mastery has reached its limit!";
    	}
    end;
    
    OnPCStatCalcEvent:
    	switch(getiteminfo(getequipid(EQI_HAND_R),11)){
    		case 3:  	case 6: 	case 7: 	case 8:	
    		case 9:		case 12:					Onslaught_M;	Break;
    		case 0: 	case 1: 	case 16:	case 22:	Swiftness_M;	Break;
    		case 2: 	case 4: 	case 5:		case -1:	Safeguard_M;	Break;
    		case 11:	case 13:	case 14:	case 17:
    		case 18:	case 19:	case 20:	case 21:	Ranged_M;	Break;
    		case 10:	case 15:	case 23:	case 24:	Mystical_M;	Break;
    	}
    end;
    OnNPCKillEvent:
    if(strcharinfo(3) != "pvp_y_1-1") end;
    	set [email protected]$,"";
    	switch(getiteminfo(getequipid(EQI_HAND_R),11)){
    		case 3:  	case 6: 	case 7: 	case 8:	
    		case 9:		case 12:					Set [email protected]$,"Onslaught";	Break;
    		case 0: 	case 1: 	case 16:	case 22:	Set [email protected]$,"Swiftness";	Break;
    		case 2: 	case 4: 	case 5:		case -1:	Set [email protected]$,"Safeguard";	Break;
    		case 11:	case 13:	case 14:	case 17:
    		case 18:	case 19:	case 20:	case 21:	Set [email protected]$,"Ranged";	Break;
    		case 10:	case 15:	case 23:	case 24:	Set [email protected]$,"Mystical";	Break;
    	}
    	if(.MaxMastery >= getd(""+ [email protected]$ + "Master")){
    		Setd ""[email protected]$+"Exp",getd(""[email protected]$+"Exp")+strmobinfo(3,killedrid)*(1+countitem(.wExpBoost))+.wLvBonus*getiteminfo(getequipid(EQI_HAND_R),13);
    		if(getd(""[email protected]$+"Exp") > getd(""[email protected]$+"Master")*(getd(""[email protected]$+"Master")*.expcurve)+10+getd(""[email protected]$+"Master")){
    			setd ""[email protected]$+"Master",getd(""[email protected]$+"Master")+1;
    			announce ""[email protected]$+" Mastery has advanced to Lv "+getd(""[email protected]$+"Master")+"!",bc_blue|bc_self;
    			Setd ""[email protected]$+"Exp",0;
    		}
    	}
    end;
    OnInit:
    	set .MaxMastery,150;	//Sets the max Weapon Mastery Level
    				//Default 128
    				//	**Dont Set too high without editing Safeguard masteries, Safeguard over level 800 will be immune to all damage
    
    	set .expcurve,175;	//Exp curve for weapon mastery
    				//Next Lv Exp Cost = Lv*(Lv*.expcurve)+10+Lv
    				//Larger .expcurve is harder to level up
    				//Default 25
    
    	set .wExpBoost,30707;	//Item ID of wlv exp booster
    
    	set .wLvBonus,1;	//Amount of extra Weapon Exp from higher level weapons equipped 
    				//Bonus exp = WLv*.wLvBonus
    				//Default 1
    
    	bindatcmd("wi"		,"PCSTATCALC::OnWeaponInfo",0,99);
    	bindatcmd("weaponinfo"	,"PCSTATCALC::OnWeaponInfo",0,99);
    	bindatcmd("wlvlup"	,"PCSTATCALC::OnWeaponLevel",60,99);
    	bindatcmd("wlvl"	,"PCSTATCALC::OnWeaponLevel",60,99);
    end;
    }
    
    
    
    
  9.  

    Does anyone have a custom falcon ? like these  : 

     

    falchon.png falcon.png

     

    Or any other falcon sprites ? I can't find any of em at spriterepo. Hope someone shares :)

    aren't those just modified homunc, think its just a recolor and .act adjustment

     

    I think so.. if these are modified homunc then they can be extracted from a server's GRF that contains these sprites, right ? 

  10. Hello,does anyone know how to fix this ? I didnt add any new NPC/scripts/SRC to my server. I restarted it and now this happens when someone logs in.

    Script_rid2sd: fatal error! Player not attached
    Funtion : atcommand (1 paremeter):

    Data : string value="@aura 0"

    Source NPC FAKE_NPC (invisible/not on map)

    Server recieved crash signal . Attempting to save all online players.

     

    this is the log of my map server.

  11. Okay, im downloading NEMO now. I tried rediffing using WeeDiff still not working. 


    After patching using NEMO patcher the client wont even start. ://

    Here's the error :

    err.jpg

     

     

    BTW : The player's who is experiencing this error we're able to login without any error before I rebooted my server. after rebooting. the problem started for them but  the others can still login.

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use and Privacy Policy.