Jump to content

Leehalt

Members
  • Posts

    44
  • Joined

  • Last visited

Everything posted by Leehalt

  1. You can also just as easily, flag your PVP maps as battle grounds. Which then has battle grounds damage configurations applied to it.
  2. - If only perfect hiding was fixed so that it actually works. I find that it doesn't work even against mobs.
  3. - Endure effect tested, doesn't work. - Further testing done on siren effect. Skill casts but no effect gets tagged upon the mob/player getting hit / tagged by said effect. - Going to test auto heal when under 10% hp next. - Also, is there any way to directly add the item to player inventory? Like MVP reward item thing... for this code: + if (skill = pc_checkskill(sd, NPC_GMPOWER)) + if (rnd()%10000 < 200 * skill) + mob_item_drop(md, dlist, mob_setdropitem(30050, 1), 0, 200 * skill, homkillonly);
  4. - Got to test this yesterday, our intended effect was for it to proc when we get hit not when we attack, any idea on how to restrict that? - Also, I just gave tick a 10 second duration, but it still doesn't kick in, I've no idea why. - Is this by any chance, the endure effect? I've yet to test this
  5. - By the looks of it, since it was added as int skill_additional_effect I'm guessing that it would naturally proc on both but as observed, would only last skill*2*100, which only lasted something like 0.2 seconds in the client, it was gone as soon as it casted, at lvl 10 to boot. For some weird reason, x*skill only does x*1? Did we miss calling some stuff? - I just noticed, since youre calling get_time2 for SC_VOICEOFSIREN, maybe that's the skill level its checking for?
  6. - Yeah, I didn't state that you were wrong, since I was yet to test it. It was highly constructive but without the requisite of the source code. - The reason why the passive was so strong is because I had to include multiple instances of skill types that were to be made passive. It would then be easier to understand and reproduce using the code from this skill as a reference. Thanks for your efforts in making the passive though. It's a really good reference. - Note: I've tested ASPD, reflect, and damage reduction yesterday, thanks for the hp/sp regen, walkspeed, voice of siren addition. I will test those today. - Thanks again for the reference, they're wonderful. [Edit] - Siren doesn't work, it procs when I attack them and nothing happens, is this what you meant by creating the SC? Doesn't VOS already have it's own? Ill try and fix this tomorrow after I get off work. - Things to test / make: Endure effect, HP recovery/s [non percentile], auto 50% heal when under 10% hp, monster drop custom item id
  7. - Nice idea, not quite as self explanatory as you think it is, i mean, if it was, wed have something more informative, not just data, since the data will always be there, just needs some processing. By the sound of it, you're not even sure if what you suggested works or will work. - Anyways, I'll go ahead and test your theory, thanks for the input! Logically, it should work, but... stuff happens. - Fun tid bit of information I found while investigating and experimenting your theory /*========================================== * Update selling value by skills *------------------------------------------*/ int pc_modifysellvalue(struct map_session_data *sd,int orig_value) { int skill,val = orig_value,rate = 0; if((skill=pc_checkskill(sd,MC_OVERCHARGE))>0) //OverCharge rate = 5+skill*2-((skill==10)? 1:0); if(rate) val = (int)((double)orig_value*(double)(100+rate)/100.); if(val < 0) val = 0; if(orig_value > 0 && val < 1) val = 1; return val; } - Means some passives really need to BE made and coded. Not just addendum to functions. - Also, according to rule # 3 of this sections forum rules, in order for you to reply.... - In all technicalities, you're telling me that its so self explanatory that it invalidates all logic of me requesting a source code for said passive skill. Was that not the point of requesting here in source requests? - I realize I sound like a huge A-Hole, and I apologize. The point I'm trying to get across is if you don't have a tested way of implementing this, don't post. Test it, post an example source code and we can experiment from there. Thanks again for the input. It sort of helped, but no progress from there on end.
  8. • First note : http://rathena.org/wiki/Adding_new_skills has data on making Active / Casted skills. After reading through some of the source codes, I found close to nothing about the creation of permanent passive skills. • Second note : Passive weapon damage augment skills like Sword mastery, Two Hand Sword mastery, etc are empty skill ids, the only thing they do is have an ID and have a skill level which is then taken to battle.c to be processed like below case W_FIST: if((skill = pc_checkskill(sd,TK_RUN)) > 0) damage += (skill * 10); // No break, fallthrough to Knuckles case W_KNUCKLE: if((skill = pc_checkskill(sd,MO_IRONHAND)) > 0) damage += (skill * 3); break; case W_MUSICAL: if((skill = pc_checkskill(sd,BA_MUSICALLESSON)) > 0) damage += (skill * 3); break; case w_fist means unarmed so its using tk_run "mastery" for damage increase, and if my understanding is correct, it will also increase knuckle damage o.o... but yeah, that's how it gets calculated, no informative data in skill.c at all, just an ID. • The request : So how do we add a passive skill that heals you 100 x skill level per X second? [ a passive form of tension relax that is always on. a skill version of bonus2 bHPRegenRate,n,x; item script ] The actual skill effect looks like this [PASSIVE] Max level 10 - permanent endure effect - +100% move speed - +50% attack speed - recover 100 x skill level hp per 500 ms - reflect 3 x skill level of melle damage - reflect 4 x skill level of range damage - reduce damage taken by 3 x skill level [class_all] - heal 50% of your hp if HP falls under 1 x skill level [10% at max leve] - 2 x skill level chance of getting item id 30050 whenever you kill a monster / player - 2 x skill level chance of charming enemies when hit [voice of siren effect] • Adding this data to the wiki would be extremely informative as it does not include information about passive skills. • The skill is meant to be put on a custom class for GM events, most of these effects can be replicated through item scripts but the goal here is to make a passive skill, that way we can just switch to a class and not need to prepare items that have the special effects.
  9. - What are we suppose to do with the encryption keys?
  10. - Would it not be better to use it on an item script? like a card that has bonus4 bAutoSpellOnSkill,s,x,l,n where S: is rapid shower, X is desperado, L is the level, N is the percent chance for it to take effect. - bonus4 bAutoSpellOnSkill,"GS_RAPIDSHOWER","GS_DESPERADO",10,100; - When the item with this script is equipped, whenever the skill rapid shower is casted, desperado lvl 10 is also casted.
  11. - Theres a problem with compiling stemming from revision 17541 to 17543 with the files [battle.c] [guild.c] [pc.c] [skill.c] [status.c] preventing a succesful compile... - This is what the compiler spews out on me. Using 2010 c++ express. \src\map\battle.c(342): error C2065: 'SC_TELEKINESIS_INTENSE' : undeclared identifier \src\map\battle.c(342): error C2065: 'SC_TELEKINESIS_INTENSE' : undeclared identifier \src\map\battle.c(1080): error C2065: 'SC_DARKCROW' : undeclared identifier \src\map\battle.c(1081): error C2065: 'SC_DARKCROW' : undeclared identifier \src\map\battle.c(1083): error C2065: 'SC_UNLIMIT' : undeclared identifier \src\map\battle.c(1084): error C2065: 'SC_UNLIMIT' : undeclared identifier \src\map\battle.c(3820): error C2065: 'SC_FLASHCOMBO' : undeclared identifier \src\map\battle.c(3821): error C2065: 'SC_FLASHCOMBO' : undeclared identifier \src\map\battle.c(3821): error C2065: 'SC_FLASHCOMBO' : undeclared identifier \src\map\battle.c(3822): error C2065: 'SC_FLASHCOMBO' : undeclared identifier \src\map\battle.c(3822): error C2065: 'SC_FLASHCOMBO' : undeclared identifier \src\map\battle.c(3822): error C2065: 'SC_FLASHCOMBO' : undeclared identifier \src\map\battle.c(3822): error C2065: 'SC_FLASHCOMBO' : undeclared identifier \src\map\battle.c(3822): error C2065: 'SC_FLASHCOMBO' : undeclared identifier \src\map\battle.c(3822): error C2065: 'SC_FLASHCOMBO' : undeclared identifier \src\map\battle.c(3822): error C2065: 'SC_FLASHCOMBO' : undeclared identifier \src\map\battle.c(3822): error C2065: 'SC_FLASHCOMBO' : undeclared identifier \src\map\guild.c(1401): warning C4013: 'skill_blockpc_start_' undefined; assuming extern returning int \src\map\pc.c(1153): warning C4013: 'skill_cooldown_load' undefined; assuming extern returning int \src\map\skill.c(395): error C2065: 'SC_OFFERTORIUM' : undeclared identifier \src\map\skill.c(397): error C2065: 'SC_OFFERTORIUM' : undeclared identifier \src\map\skill.c(1491): error C2065: 'SC_DARKCROW' : undeclared identifier \src\map\skill.c(1494): error C2065: 'SC_ILLUSIONDOPING' : undeclared identifier \src\map\skill.c(6736): error C2065: 'SC_ANGEL_PROTECT' : undeclared identifier \src\map\skill.c(6736): error C2051: case expression not constant \src\map\skill.c(6736): error C2065: 'SC_MONSTER_TRANSFORM' : undeclared identifier \src\map\skill.c(6736): error C2051: case expression not constant \src\map\skill.c(6736): error C2065: 'SC_FULL_THROTTLE' : undeclared identifier \src\map\skill.c(6736): error C2051: case expression not constant \src\map\skill.c(6737): error C2065: 'SC_REBOUND' : undeclared identifier \src\map\skill.c(6737): error C2051: case expression not constant \src\map\skill.c(6737): error C2065: 'SC_TELEKINESIS_INTENSE' : undeclared identifier \src\map\skill.c(6737): error C2051: case expression not constant \src\map\status.c(562): error C2065: 'SC_DARKCROW' : undeclared identifier \src\map\status.c(578): error C2065: 'SC_OFFERTORIUM' : undeclared identifier \src\map\status.c(587): error C2065: 'SC_TELEKINESIS_INTENSE' : undeclared identifier \src\map\status.c(601): error C2065: 'SC_UNLIMIT' : undeclared identifier \src\map\status.c(626): error C2065: 'SC_KINGS_GRACE' : undeclared identifier \src\map\status.c(658): error C2065: 'SC_FLASHCOMBO' : undeclared identifier \src\map\status.c(680): error C2065: 'SC_FRIGG_SONG' : undeclared identifier \src\map\status.c(707): error C2065: 'SC_ILLUSIONDOPING' : undeclared identifier \src\map\status.c(707): error C2065: 'SI_ILLUSIONDOPING' : undeclared identifier \src\map\status.c(707): error C2065: 'SI_ILLUSIONDOPING' : undeclared identifier \src\map\status.c(707): error C2065: 'SI_ILLUSIONDOPING' : undeclared identifier \src\map\status.c(752): error C2065: 'SC_FULL_THROTTLE' : undeclared identifier \src\map\status.c(910): error C2065: 'SC_REBOUND' : undeclared identifier \src\map\status.c(911): error C2065: 'SC_MONSTER_TRANSFORM' : undeclared identifier \src\map\status.c(960): error C2065: 'SC_REBOUND' : undeclared identifier \src\map\status.c(1063): error C2065: 'SC_KINGS_GRACE' : undeclared identifier \src\map\skill.c(8216): error C2065: 'SC_ANGEL_PROTECT' : undeclared identifier \src\map\skill.c(8216): error C2051: case expression not constant \src\map\skill.c(8216): error C2065: 'SC_MONSTER_TRANSFORM' : undeclared identifier \src\map\skill.c(8216): error C2051: case expression not constant \src\map\skill.c(8217): error C2065: 'SC_FULL_THROTTLE' : undeclared identifier \src\map\skill.c(8217): error C2051: case expression not constant \src\map\skill.c(8217): error C2065: 'SC_REBOUND' : undeclared identifier \src\map\skill.c(8217): error C2051: case expression not constant \src\map\skill.c(8217): error C2065: 'SC_TELEKINESIS_INTENSE' : undeclared identifier \src\map\skill.c(8217): error C2051: case expression not constant \src\map\status.c(3529): error C2065: 'SC_REBOUND' : undeclared identifier \src\map\status.c(4333): error C2065: 'SC_FULL_THROTTLE' : undeclared identifier \src\map\status.c(4388): error C2065: 'SC_FULL_THROTTLE' : undeclared identifier \src\map\status.c(4435): error C2065: 'SC_FULL_THROTTLE' : undeclared identifier \src\map\status.c(4488): error C2065: 'SC_FULL_THROTTLE' : undeclared identifier \src\map\status.c(4553): error C2065: 'SC_FULL_THROTTLE' : undeclared identifier \src\map\status.c(4603): error C2065: 'SC_FULL_THROTTLE' : undeclared identifier \src\map\status.c(4889): error C2065: 'SC_ILLUSIONDOPING' : undeclared identifier \src\map\status.c(4890): error C2065: 'SC_ILLUSIONDOPING' : undeclared identifier \src\map\status.c(5359): error C2065: 'SC_FULL_THROTTLE' : undeclared identifier \src\map\status.c(5389): error C2065: 'SC_REBOUND' : undeclared identifier \src\map\status.c(5752): error C2065: 'SC_FRIGG_SONG' : undeclared identifier \src\map\status.c(5753): error C2065: 'SC_FRIGG_SONG' : undeclared identifier \src\map\status.c(6803): error C2065: 'SC_OFFERTORIUM' : undeclared identifier \src\map\status.c(6806): error C2065: 'SC_OFFERTORIUM' : undeclared identifier \src\map\status.c(6806): error C2051: case expression not constant \src\map\skill.c(14127): error C2065: 'SC_OFFERTORIUM' : undeclared identifier \src\map\skill.c(14128): error C2065: 'SC_OFFERTORIUM' : undeclared identifier \src\map\skill.c(14129): error C2065: 'SC_TELEKINESIS_INTENSE' : undeclared identifier \src\map\skill.c(14130): error C2065: 'SC_TELEKINESIS_INTENSE' : undeclared identifier \src\map\skill.c(14503): error C2065: 'SC_TELEKINESIS_INTENSE' : undeclared identifier \src\map\skill.c(14504): error C2065: 'SC_TELEKINESIS_INTENSE' : undeclared identifier \src\map\skill.c(14504): error C2065: 'SC_TELEKINESIS_INTENSE' : undeclared identifier \src\map\skill.c(14504): error C2065: 'SC_TELEKINESIS_INTENSE' : undeclared identifier \src\map\status.c(8883): error C2065: 'SC_FULL_THROTTLE' : undeclared identifier \src\map\status.c(8883): error C2051: case expression not constant \src\map\status.c(8888): error C2065: 'SC_KINGS_GRACE' : undeclared identifier \src\map\status.c(8888): error C2051: case expression not constant \src\map\status.c(8893): error C2065: 'SC_TELEKINESIS_INTENSE' : undeclared identifier \src\map\status.c(8893): error C2051: case expression not constant \src\map\status.c(8897): error C2065: 'SC_OFFERTORIUM' : undeclared identifier \src\map\status.c(8897): error C2051: case expression not constant \src\map\status.c(8901): error C2065: 'SC_FRIGG_SONG' : undeclared identifier \src\map\status.c(8901): error C2051: case expression not constant \src\map\status.c(8907): error C2065: 'SC_FLASHCOMBO' : undeclared identifier \src\map\status.c(8907): error C2051: case expression not constant \src\map\status.c(8910): error C2065: 'SC_MONSTER_TRANSFORM' : undeclared identifier \src\map\status.c(8910): error C2051: case expression not constant \src\map\status.c(9205): error C2065: 'SC_FULL_THROTTLE' : undeclared identifier \src\map\status.c(9205): error C2051: case expression not constant \src\map\status.c(9869): error C2065: 'SC_FULL_THROTTLE' : undeclared identifier \src\map\status.c(9869): error C2051: case expression not constant \src\map\status.c(9870): error C2065: 'SC_REBOUND' : undeclared identifier \src\map\status.c(10926): error C2065: 'SC_FULL_THROTTLE' : undeclared identifier \src\map\status.c(10926): error C2051: case expression not constant \src\map\status.c(10933): error C2065: 'SC_KINGS_GRACE' : undeclared identifier \src\map\status.c(10933): error C2051: case expression not constant \src\map\status.c(10940): error C2065: 'SC_FRIGG_SONG' : undeclared identifier \src\map\status.c(10940): error C2051: case expression not constant ========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ========== - Reverted to r17540, and is working just fine.
  12. - I have a similar problem with both files, except compiling fails due to the error. - error C2065: 'SC_TELEKINESIS_INTENSE' : undeclared identifier, there were more errors concerning different skills, lemme get the list one sec. >>> Update <<< - I'll post a new topic, since it seems to be a whole different kinda problem.
  13. - It's working nice and all, thanks for the info guys... just one thing, when a character equips one of my custom weapons that are listed in weapontable.lub, the ASPD becomes 0, oddly enough... Anyone know whats going on?
  14. - Thanks Nanaki, I'll try that now.
  15. - Yeah! something like that! Thanks, I will begin testing that. So for the target ill try set TK_MISSION_ID,1002; for poring, see if that works - Hah! They both work, thanks Emistry~ Now, is there any work around for having to relog everytime? The character needs to relog before the set command takes effect, @refresh or mapchange doesn't work.
  16. - I've searched all around and i know this exists. - This is mainly concerning the onequip/onunequip item script, a few years back, i had a script for mission grinding, basically what happens is, when the player equips the item, it sets their taekwon mission target to a poring, and the progress at 99 kills, making it so just killing one more will give you a point in taekwon mission. I just cant remember the script if it was set pc_target_1002 or was it something completely different. I do remember the hatred reset though, which was set pc_hate. Do we have such commands/scripts in RA? The basic goal is to rank a taekwon in a short amount of time for testing. - On a side note, does anyone know what elemental_id is on the sql?
  17. - What do you mean? My old 06/18/2012 client works perfectly, just wanted to update to 2013 clients =x - And yes, i do all the changes from mmo.h to packet db, along with a recompile.
  18. - Yeah I did that line along with other settings, the process tree includes the client itself but there aren't any windows popping out. Plus the setup keeps reloading itself. - These are the current RoCred settings. [ROCred] ; Whether or not user name is remembered (0 = No, 1 = Yes). CheckSave =1 ; Remembered user name. UserName =Serin ; Client to start when clicking login. ExeName = Ragnarok.exe ; Argument to pass to the client. ExeType = 1rag1
  19. - Does it have to be sclientinfo.xml? or does the old clientinfo.xml work? [i'll test that later] part - Can't seem to find the "Restore Login Window - Disable rag1&sak1 - Skip Service Select" Part on the diff, and Rocred keeps launching the Ragnarok Setup file for some reason. Setup just keeps looping when closed. - Tested with all 3 clients...
  20. - if(lostinforest!=2) warp"prontera",141,229; <--- doesnt warp people out, and as I understand, this reads: if lostinforest variable is NOT equal to 2, warp to prontera. - if(forestfallen==1)end; // meaning nothing will happen if this occured once already dispbottom "You wake up in a mysterious fores"; // doesnt pop out even if variable is equal to 1 set forestfallen,1; // makes it so it doesnt always dispbottom when people load this map. ======================================== edit ==================================== - solved my own problem, thanks for trying to help.
  21. - Does anyone know how to effectively use this script? Mine doesn't seem to want to work. Just simple things like map ejection when requirements are not met, etc etc. - Heres my code snip. - script Map Guard:mgr01 -1,{ OnPCLoadMapEvent: getmapxy(@mapname$,@mapx,@mapy,0); if(@mapname$ == "xanhart01"){ if(lostinforest!=2) warp "prontera",141,229; end; } if(@mapname$ == "xan_fild01"){ if(forestfallen==1)end; dispbottom "You wake up in a mysterious forest"; set forestfallen,1; end; } end; } xanhart01 mapflag loadevent xan_fild01 mapflag loadevent - Do i have to attachrid? [dont know how to use that] - Also tried replacing to : if(strcharinfo(3) == "xan_fild01"){ if(forestfallen==1)end; dispbottom "You wake up in a mysterious forest"; set forestfallen,1; end; } - still doesnt work.
  22. - I meant mp3nametable wasnt in any of my grfs, i thought maybe its in lua form now?
  23. - That IS variable cast time. ========= edited =============== - After a few tests, it seems that if youre on renewal settings, the formula for cast time is Vcast, which has a 20% OCT fixed cast time.
  24. - OR you can change dopel card script from adding a % amount to adding a base amount, I usually give my players 5 or 10 more ASPD per card. - Basically change: bonus bAspdRate,50; [which is Attack speed + 50%] - To: bonus bAspd,5; [which is Attack speed + 5 base]
  25. - @green: As I understand it via testing and a few visual scanning of the conf files, one does not simply "instacast" because of variable cast time, which, if i remember correctly, is 20% of the original cast time, so if say you didnt have dex and your skill cast time was 10 seconds, your variable cast time is 2 seconds, meaning if you "instacast" you will still be casting for 2 seconds due to variable cast time. - @blue: this means a total of 530 stats, which can come from both int AND dex but dex affects this twice as much, persay you had 150 dex [for instant cast] and 255 int [max int at the moment] that would mean 150*2+255 = 555, which means you can now "instacast". - Oh and I hope this answers the question below: - If not, then basically, you cant, as this formula does not calculate the whole cast time, only the variable cast time which is 20% of the skill's original cast time that ignores "instacast" meaning, if players normally instant cast at 150 dex, if they didn't have enough int, they would still be casting for 20% of their original skill cast time [which if i understand correctly should be reduced depending on your settings]. - Based on doc/item_bonus, you can script an item to reduce variable cast time. - As an admin tip, generally I would balance the cast rates to something not naturally reachable, but reachable via gears and hard work so persay: // My max stats: 255 // At what dex does the cast time become zero (instacast)? castrate_dex_scale: 150 // How much (dex*2+int) does variable cast turns zero? vcast_stat_scale: 530 - If my max stats is 255, that meanst 150*2+255=555, meaning players can naturally instant cast, I dont want that happening unless they work for their gears [stat cards, berze cards, custom cards] otherwise itd be boring for them, not having a goal and not achieving anything through hard work. - I would suggest something like 170 insta cast [forcing them to lower some stats] and 600 or 630 vcast. This forces any class to invest in certain stats to use certain builds, invest on certain items to use certain builds.
×
×
  • Create New...