-
Posts
54 -
Joined
-
Last visited
Content Type
Profiles
Forums
Downloads
Jobs Available
Server Database
Third-Party Services
Top Guides
Store
Crowdfunding
Posts posted by SevySevSevy
-
-
any update about the debug msg ? can we remove it ?
it spams my map server like hell xDno I'm still at Comic-con, ill be back to my home computer on Monday (3 more days) where can test things, this laptop is not setup for RO
I'll be waiting then
How's the Comic-con going ? 
-
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 ~!
-
Hello, I would like to request an event script that would run every 3 days and will pick any random player online and reward them a certain amount of zeny lets say 100m zennies. The npc should announce who the lucky winner is too.
TIA
-
any update about the debug msg ? can we remove it ?
it spams my map server like hell xD -
-
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

-
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!
-
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 -
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.
-
Anyone?
-
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
-
Problem fixed
thanks stolao ! -
still having the same problems...
-
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!
-
can i have it sir?
-
Hey stolao, how can i remove the debug msgs im getting when someone uses the Healer script on my server? Im getting this debug msg on my map server.
[ Debug ] : source (NPC): PCSTATCALC (invisible/not on a map)
-
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; }
-
Does anyone have a custom falcon ? like these :

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 ?
-
Does anyone have a custom falcon ? like these :

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

-
well this is somthing
thanks for sharing! -
figured it out
thanks for helping. -
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.
-
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 :

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.
-
how to do that sir ?
Stolao's Script Collection [Update 2018-06-02_08:16]
in Script Collections
Posted
good to hear that, my server won't be opening till next week good thing
this script might be one of my servers main attraction xD