Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation on 07/06/13 in all areas

  1. rAthena Renewal battle support and major battle/skill system overhaul! ATTENTION! There have been several bugfixes since Renewal battle support was initially introduced with r17402. Please make sure to stay up to date with the latest SVN build for any potential fixes or changes. r17406 - Corrected Renewal EDP to exclude Grimtooth and Venom Knife r17413 - Corrected Renewal Final Strike to remove Ninja Soul and Hiding status on use r17417 - EDP incorrectly doubling weapon ATK bonus r17418 - Status ATK not being forced to an element r17420 - Reductions weren't being applied properly to damage dealt from players I tried to be as thorough as possible, there was just some bugs I had not ran into because I hadn't ran into them myself, and when we released the patch out to testing it wasn't reported. We are trying to fix them ASAP. Please make sure to stay up to date on the latest SVN for any potential bugfixes and report any issues you may run into! Overview: r17402 brings exactly what you've been waiting for all this time, a comprehensive and painstakingly accurate Renewal skill and battle system. After many sleepless nights and sacrifices to various foul gods, and lots and lots of moral support, we are proud to say this was worth the wait. Battle.c, the heart of the rAthena combat calculation engine, has been massively refactored and brought into line with official calculation methods and "quirks". And all skills, we're proud to say, are in place and functional and above all, accurate for both pre-renewal and renewal modes. No more placeholders! I'll keep this overview brief. If you're interested in a complete technical breakdown of all the renewal formulas and the methods how damage is calculated on official servers, keep on reading for exact formulas and gameplay behavior changes. Changes: Renewal EDP is fully implemented and functioning according to official behaviors All skills updated to their official Renewal formulas and behaviors, notable examples including Soul Breaker, Acid Demonstration, and Spiral Pierce Countless skill fixes and undocumented official behaviors "documented" and implemented for both Renewal and Pre-Renewal modes Battle.c rewritten for easier maintenance and modification Renewal skill database updated and verified If you have any source modifications, you may experience some issues updating. We highly highly recommend starting from a clean SVN copy before applying any source modifications. Those of you with stock installations should be fine with an SVN pull and a recompile. This update isn't just for renewal support either, many skills and behaviors have been corrected for pre-renewal as well. We definitely recommend upgrading to this even if you're running a purely pre-renewal server for a more accurate gameplay experience. Many many thanks go to Baalberith who did most of the initial refactoring work, and to Akinari who beat me over the head to make sure I finished this xP! Gory technical details General * Forced neutral behavior documented and implemented. Weapon element does affect the following skills, but final damage is treated neutral for resistances. End result is endows do boost skill damage as expected given elemental weaknesses or resistances, but forced neutral skills will always miss on Ghost 3/4 mobs as the damage is "forced" back to neutral type after bonuses are applied but before resistances. * The following skills are considered "forced neutral" Merchant "Cart Revolution" Creator "Acid Demonstration" Genetic "Cart Cannon" (damage is forced to element of cannon ball, either neutral or holy or ghost) * Weapon calculation engine has been rewritten to better emulate official behaviors and "quirks", the following changes have been documented and implemented: Double attack takes priority over criticals when determining which effect activates VITDEF (status or sDEF) is applied on every hit on multi-hit skills, rather than a flat reduction on the final damage total Skills such as Spiral Pierce that differ when used by monsters modified to match official calculation methods * Weapon element behavior adjusted to match official behavior, endows override any innate weapon element, including elemental arrows * Renewal - weapon element only applies bonus damage to "weapon" ATK, ATK from status and equipment is considered neutral and ATK from mastery skills are considered non-elemental * Renewal - MATK on offhand equipped items does stack and apply towards total MATK calculated for skills and spells. This means classes that can dual wield will be able to get +MATK from both weapons, unlike physical where offhand ATK is ignored for skills. Archer * Renewal - Owl's Eye still gives +1 HIT per skill level but the HIT bonus does not show up in the status window anymore Hunter * Renewal - Claymore, freeze trap and landmine adjusted to apply full damage to "plant" type mobs (monsters that only take 1 damage on every hit) Thief * Double attack gives a hidden +1 HIT per skill level on attacks that activate the double attack effect * Envenom gives a flat +15 ATK per skill level when used, it is considered a mastery type damage and has no element Rogue * Renewal - Owl's Eye still gives +1 HIT per skill level but the HIT bonus does not show up in the status window anymore Merchant * Cart Revolution adjusted to match "forced neutral" behavior Assassin Cross * Advanced Katar Mastery modified. is treaded similar to a +%ATK card rather than a weapon mastery * Renewal - Soul Breaker formula for Renewal implemented ((ATK + MATK) * (3 + (.5 * skill level)) - (eDEF + sDEF + eMDEF + sMDEF) * Renewal - Soul Breaker no longer misses, it will always do full damage regardless of target's FLEE * Renewal - Soul Breaker no longer gains DEF piercing or ignore DEF effect from weapons such as Combat Knife and Ice Pick * Renewal - Enchant Deadly Poison for Renewal implemented Weapon ATK multiplied by (1 + (EDP level * .8)) Equipment ATK multiplied by (1 + (EDP level * .6)) * Renewal - EDP adds half modifiers (base damage/2) but otherwise functions as above with the following skills: Sonic Blow Soul Breaker Counter Slash Cross Impact * Renewal - EDP no longer affects the following skills: Grimtooth Venom Knife * Renewal - EDP now affects the following skills: Meteor Assault Soul Breaker * EDP still does not affect Venom Splasher in both Renewal and Pre-Renewal modes Creator * Renewal - Acid Demonstration formula for Renewal implemented 7 * ((ATK + MATK) / skill level) * VIT / 100 ) * Acid Demonstration adjusted to match "forced neutral" behavior on official For example, Acid Demonstration used on a water-type mob with a wind endowed weapon will do bonus damage, but will miss on a Ghost 3/4 monster regardless of endow. Swordsman * Magnum break bonus damage gives +20% ATK fire damage on physical attack (so 100% ATK normal + 20% ATK fire) Lord Knight * Renewal - Spiral Pierce formula for Renewal implemented (ATK + (weapon weight / 2)) * (100 + (50 * skill level))% * Renewal - Mastery skills such as spear mastery no longer add any bonus damage to Spiral Pierce * Renewal - Spiral Pierce no longer ignores DEF Ninja * Renewal - Final Strike formula for Renewal implemented base damage = current hp + ((ATK * current hp * skill lvl) / max hp) final damage = base damage + ((mirror image count + 1) / 5 * base damage) - (eDEF + sDEF) * Final Strike will MISS on plant-type mobs (mobs that only take 1 damage per hit from all sources) * Mirror Image cast over itself will override and reset current Mirror Image count Genetic * Cart Cannon "forced element" behavior implemented, damage is "forced" to the element of the cannon ball. Ex. Cart Cannon fitted with a standard cannon ball and a fire elemental weapon will do bonus damage against earth targets, and a Cart Cannon fitted with a holy cannon ball will do bonus damage against shadow, but total damage is forced back to element of cannon ball and resistances applied against it. Neutral cannon balls will miss on Ghost 3/4 but holy/ghost/shadow will not. Gunslinger * Gunslinger Mine skill formula and behavior matched to official Fixed 50 * skill level damage, ignores DEF and is affected by +% ATK weapon cards only Warlock * Tetra Vortex behavior modified to match official First 4 spirit spheres are used for calculating element of each hit, but if 5 are present all 5 are consumed Taekwon Kid * Renewal - Mild wind applies element bonus to status ATK as well as weapon ATK, unlike endows
    5 points
  2. - script map -1,{ OnWhisperglobal: announce ""+@whispervar0$,bc_map; end; } - script global -1,{ OnWhisperglobal: announce ""+@whispervar0$,bc_all; end; } [ npc:map ] message [ npc:global ] message
    2 points
  3. Briefing & Concept Hello folks I'm back with a map I did quite a some time ago. I was not able to show it since the heavy amount of work I'm having ATM. I consider this a good map, worth enough to be in a showcase thread. About this map So, what do we have new on this map? Konoha is, a medium size map, which has some good extras I have tried so far. It has real Naruto Models I edited myself and, I have to say I poolished the textures to have a more RO style (bitmap shadows). This map has new features, (The part that most of people waits ) Although it is nothing really special, it is possible to use High Jump on the building's roofs... just as how it is in the real anime. Another thing I have to mention is the addition of the Hokages in the background of the map. I bet, Konoha city would not be Konoha without these awesome guys! Video! ... Watch it in 720p! HD Screenshots Color Palettes Sponsored by @KamiShi Drooping Olrox Hat Sponsored by @Adel Screens are in Full 1920x1080 HD resolution. You can allways hit the image thumbnaill to check the images on full size, and check some details that can only be appreciated in HD resolution. Beautiful Panoramic Awesome screenshot comes at first. The Sky is just a PS edition for a decorative screen I did Overview 2 Overview 3 Overview 4 Overview 5 Overview 6 Area View 1 One of the things I got back to take care of, are the small details. This screen shows an example of very small details as boxes, foods, etc. Area View 2 Using High jump on some houses. You can walk across the houses using this skill... Area View 3 This small area recreates the hotsprings. Area View 2 In game View of the Hokages That is all for now. Personally I like how this town became. I'm not sure if this is the first konoha out there. This project I'm working for is aiming to have other Villages from Naruto, It is kinda a big project and I hope I will have enough time to finish all the request from this guy. Comments or Ideas are always welcome. Thanks a lot for your time, and I wish to all to you a nice weekend!
    1 point
  4. is there a script for automatic broadcast?? I saw in a server that they only type #map on their pm box and it will appear your message on chat log. I got this idea maybe there is autobroadcast(typing your desire message to public without typing /b or @broadcast)
    1 point
  5. Mobs Limit(MAX 128) is the amount of mobs selected from the database lowering it to 5 would spawn 5 different types of monsters from the level range. #SpawnMobs is the number of times that type of monster will be spawned. So it's #SpawnMobs times Mobs Limit(MAX 128). If you were to lower #SpawnMobs down to 1 you would get 128 different random monsters from your database depending on the search results. I hope you understand. Yes the mobs do re-spawn when you attack it with a skill or weapon, but commands like @killmonster don't attach the character to the monster when it's killed. If you use GM commands they will not re-spawn.
    1 point
  6. @P r o p e r t i e s: Your server's rates are too high to use the default reward calculations. Edit the modifiers here: setarray .Modifier[0], // Multipliers for Base Exp, Job Exp, and Zeny rewards. getbattleflag("base_exp_rate")/100,getbattleflag("job_exp_rate")/100,60;
    1 point
  7. I did that. Thanks for putting so much effort into this and finally getting it released!
    1 point
  8. - script test123456 -1,{ end; OnInit: .mindistance=3; setarray .npcnamelist$[0],"aaaa","bbbb","CCC"; bindatcmd "afk", strnpcinfo(0)+"::OnAFK"; end; OnAFK: .@size=getarraysize(.npcnamelist$); getmapxy(.@mp$,.@mpx,.@mpy,0); for(;.@i<.@size;.@i++){ if(!getmapxy(.@mn$,.@mnx,.@mny,1,.npcnamelist$[.@i])){ if( distance(.@mpx,.@mpy,.@mnx,.@mny) < .mindistance){ dispbottom " you can't use @afk command ,cause You're too near the npc"; end; } } } atcommand "@afk"; end; }
    1 point
  9. use getmapxy getmapxy(.@m$,.@mx,.@my,0,rid2name( killedrid ))
    1 point
  10. I'll probably be updating it a little... but this is a Dynamic Leveling based system thingy... No need to hard code mob spawns...The script is a little heavy on the server side because -.- and this is the really lame part... Killedrid isn't set with monster spawned events... IKR WTF. Also if you run into one of the rooms and do @killmonster they won't spawn back untill you reloadscripts just saying right now don't do it... I had a whole system worked out for getting the correct information but yeah... I need a way to single out the event and get the mobid... That can't happen with OnNPCKillEvent. Anyways here it is... Only works with rAthena SQL Based servers that have there mod_dbs SQL side. prontera,160,158,2 script Training Room 100,{ select(.menu$); warp getd(".room"+(@menu-1)+"$[1]"),0,0; end; OnNPCKillEvent: //OnMobDeath: for(set .@p,0;getarraysize(getd(".room"+.@p+"$"));set(.@p,.@p+1)) if( playerattached() ) { if( getd(".room"+.@p+"$[1]") == strcharinfo(3) ) { monster strcharinfo(3),0,0,"--ja--",killedrid,1/*,"Training Room::OnMobDeath"*/; break; } } end; Oninit: //Configuration // # Room Name , Map , MobLvlRngLow , MobLvlRngHigh, #SpawnMobs, Mobs Limit(MAX 128), Optional Search String ; setarray .room0$, "Novice Room %s~%s (<mob>,<mob>...)" , "06guild_01", "0" , "10" , "20" , "128" , "`iName` LIKE '%Por%'" ; // Would make a novice poring room. setarray .room1$, "Beginner Room %s~%s (<mob>,<mob>...)" , "06guild_02", "11" , "20" , "5" , "128" , "" ; setarray .room2$, "Adept Room %s~%s (<mob>,<mob>...)" , "06guild_03", "21" , "30" , "5" , "128" , "" ; setarray .room3$, "Advanced Room %s~%s (<mob>,<mob>...)" , "06guild_04", "31" , "40" , "5" , "128" , "" ; setarray .room4$, "Experts Room %s~%s (<mob>,<mob>...)" , "06guild_05", "41" , "50" , "5" , "128" , "" ; setarray .room5$, "Veterans Room %s~%s (<mob>,<mob>...)" , "06guild_06", "51" , "60" , "6" , "128" , "" ; setarray .room6$, "MVP Room %s~%s (<mob>,<mob>...)" , "06guild_07", "61" , "70" , "7" , "128" , "" ; setarray .room7$, "Like a Boss Room %s~%s (<mob>,<mob>...)", "06guild_08", "71" , "80" , "8" , "128" , "" ; set .srch$, "<mob>"; //String searched and replaced with mob name in the Room Name Feild. set .mvps, 0; //Mvps Summoned or not? 0=Off 1=On //End for(set(.@a,0);getarraysize(getd(".room"+.@a+"$"));set(.@a,.@a+1)) { set .rmn$, ".room"+.@a+"$"; set .nam$, ".name"+.@a+"$"; set .mid$, ".id"+.@a; set .rrm$, getd(.rmn$+"[0]"); set .map$, getd(.rmn$+"[1]"); set .lrl$, getd(.rmn$+"[2]"); set .lrh$, getd(.rmn$+"[3]"); set .nsms, atoi(getd(.rmn$+"[4]")); set .mlim, atoi(getd(.rmn$+"[5]")); set .ops$, getd(.rmn$+"[6]"); set .length, countstr(getd(.rmn$+"[0]"), .srch$); set .lengt, countstr(getd(.rmn$+"[0]"), "%s"); if(.lengt>1) set .mes$[.@a], sprintf(.rrm$,.lrl$,.lrh$); set .len, query_sql("SELECT `ID`,`iName` FROM `mob_db` WHERE `LV` > "+.lrl$+" AND `LV` < "+.lrh$+" "+((.ops$!="")?"AND "+.ops$+" ":"")+((!.mvps)?"AND `MEXP` <= 0 ":"")+"ORDER BY RAND() LIMIT "+((.mlim>128)?128:.mlim )+";",.id,.name$); set .lens, getarraysize(.name$); copyarray getd(.nam$+"[0]"), .name$, .lens; copyarray getd(.mid$+"[0]"), .id, .lens; deletearray .name$; deletearray .id; while(.@i++<=.length ) if(.@i<=.lens) set .mes$[.@a], replacestr(.mes$[.@a], .srch$, getd(.nam$+"["+(.@i-1)+"]"), 1, 1); set .@i,0; for(set(.@h,0);.@h<.lens;set(.@h,.@h+1)) { monster .map$,0,0,"--ja--",getd(.mid$+"["+.@h+"]"),.nsms/*,"Training Room::OnMobDeath"*/; } } set .menu$, implode(.mes$,":"); }If you have any questions feel free to ask. BTW this will spawn any monster in your mob_db if they are the right level... so if you have errored mobs that you don't want to spawn I suggest you add a condition in the search for it... Other then that this thing saves loads of time.
    1 point
  11. http://subversion.assembla.com/svn/ClientSide/Lua_Project/System/Towninfo.lua you cant realocate / edit / remove it using npc script ....
    1 point
  12. find the original function trunk/src/map/guild.c and replace with this /*==================================================== * Change guild emblem *---------------------------------------------------*/ int guild_change_emblem(struct map_session_data *sd,int len,const char *data) { struct guild *g; nullpo_ret(sd); if( agit_flag || agit2_flag ){ clif_displaymessage( sd->fd,"You cant change Emblem during WOE." ); return 0; } if (battle_config.require_glory_guild && !((g = sd->guild) && guild_checkskill(g, GD_GLORYGUILD)>0)) { clif_skill_fail(sd,GD_GLORYGUILD,USESKILL_FAIL_LEVEL,0); return 0; } return intif_guild_emblem(sd->status.guild_id,len,data); }
    1 point
  13. If the player rebirth he can use the npc 20 times and @Patskie You forgot to delete the item. I use your script if you don't mind prontera,155,180,0 script Leveler 100,{ if ( BaseLevel < 80 || BaseLevel > 90 || #GAIN == 10 ) end; .@item_id = 6011; // your item id required .@npc_name$ = strnpcinfo(1); mes "[ " + .@npc_name$ + " ]"; mes "Want to gain 1 level?"; next; if (select("Yes:No") - 1) end; if (!countitem(.@item_id)) { mes "[ " + .@npc_name$ + " ]"; mes "Sorry but you need a " +getitemname(.@item_id)+ " to gain 1 level"; close; } BaseLevel = BaseLevel + 1; #GAIN = #GAIN + 1; delitem .@item_id,1; mes "[ " + .@npc_name$ + " ]"; mes "Gained 1 level!"; close; }
    1 point
  14. remove or comment this if (Class == Job_Ninja) setarray .@exp[0],.@j1,70;
    1 point
  15. Old version Old Version 2 Old Version 3 Universal v4: - script dualclientkicker -1,{ OnPCLoadMapEvent: set .@charmap$, strcharinfo(3); if(!compare(.tmp$,.@charmap$)) end; //set .@len, query_sql("SELECT DISTINCT `account_id` FROM `char` WHERE `account_id` IN (SELECT `account_id` FROM `login` WHERE `last_ip` = (SELECT `last_ip` FROM `login` WHERE `account_id`="+getcharid(3)+")) AND `online` <> 0;",.@a); set .@len, query_sql("select account_id from `char` right join login on login.account_id = `char`.account_id where `char`.online = 1 and login.last_ip = '"+ getcharip() +"'",.@a ); //Annieruru Addition. if(.@len-1) { for(set(.@d,0);.@d<.@len;set(.@d,.@d+1)) { getmapxy(.@map$,.@x,.@y,0,rid2name(.@a[.@d])); if(.@charmap$==.@map$&&rid2name(.@a[.@d])!=strcharinfo(0)) { dispbottom "Duel accounts not allowed in WOE."; warp "geffen",0,0; } } } end; OnInit: setarray .maps$ , "aldeg_cas01", "gefg_cas01", "payg_cas01", "prtg_cas01"; set .lens , getarraysize(.maps$) ; for(set(.a,0);.a<.lens;set(.a,.a+1)) { setmapflag .maps$[.a], mf_loadevent ; set .tmp$ ,.tmp$+.maps$[.a]+","; } }
    1 point
  16. you want to use esma estun on players? trunk/battle/skill.conf allow_es_magic_player: no set it to : yes
    1 point
  17. npc/kafra/kafras.txt Search: kaf_gef_fild10
    1 point
  18. One main difference between the two commands is that Doevent keeps the player attached while Donpcevent will never attach an RID.
    1 point
  19. I would like to suggest something useful.. Can you add a Save button to save all checked options in a notepad.. an example output would be Client: 20110420 [uI] Allow Chat Flood (5) [Fix] Allow Multiple Windows [Fix] Always Call SelectKoreaClientInfo() [Fix] Chat @-Bug [uI] Custom Window Title (myRO) A desirable format would be: {type} {Name} {Value} This would allow people to post the options enabled in their client when asking for support(currently, people are using screenies that takes 2 or more image w/c are quite untidy for the forum), or for others to generate a future reference of what are enabled/disabled in their client whenever they have to recreate a new one.
    1 point
×
×
  • Create New...