Jump to content

bWolfie

Members
  • Content Count

    848
  • Joined

  • Last visited

  • Days Won

    34

Everything posted by bWolfie

  1. Sad life. I guess this is why no one posts here anymore. Don't know how to make it plugin. Since I don't know how to overwrite stuff from source, only add on top of it (e.g. BUILDIN).
  2. Do you remember a long time ago in eAthena when Magic Rod used to only activate when you are being bolted? Do you miss this behavior? Well, now you can have it that way. Here's how! Step 1: Go to src\map\skill.c and find the following lines: case SA_MAGICROD: clif->skill_nodamage(src,src,SA_MAGICROD,skill_lv,1); sc_start(src,bl,type,100,skill_lv,skill->get_time(skill_id,skill_lv)); break; Comment the second line so it looks like this: case SA_MAGICROD: //clif->skill_nodamage(src,src,SA_MAGICROD,skill_lv,1); sc_start(src,bl,type,100,skill_lv,skill->get_time(skill_id,skill_lv)); break; Step 2: Still in skill.c, find the following code: #endif /* MAGIC_REFLECTION_TYPE */ } if(sc && sc->data[SC_MAGICROD] && src == dsrc) { int sp = skill->get_sp(skill_id,skill_lv); dmg.damage = dmg.damage2 = 0; dmg.dmg_lv = ATK_MISS; //This will prevent skill additional effect from taking effect. [Skotlex] sp = sp * sc->data[SC_MAGICROD]->val2 / 100; if(skill_id == WZ_WATERBALL && skill_lv > 1) sp = sp/((skill_lv|1)*(skill_lv|1)); //Estimate SP cost of a single water-ball status->heal(bl, 0, sp, 2); } Add the following line below status->heal(bl, 0, sp, 2); so it looks like this: #endif /* MAGIC_REFLECTION_TYPE */ } if(sc && sc->data[SC_MAGICROD] && src == dsrc) { int sp = skill->get_sp(skill_id,skill_lv); dmg.damage = dmg.damage2 = 0; dmg.dmg_lv = ATK_MISS; //This will prevent skill additional effect from taking effect. [Skotlex] sp = sp * sc->data[SC_MAGICROD]->val2 / 100; if(skill_id == WZ_WATERBALL && skill_lv > 1) sp = sp/((skill_lv|1)*(skill_lv|1)); //Estimate SP cost of a single water-ball status->heal(bl, 0, sp, 2); clif->skill_nodamage(bl, bl, SA_MAGICROD, sc->data[SC_MAGICROD]->val1, 1); } Ta-da! All done. Compile your server and you're good to go. Magic rod now works like the old way! Pst to devs, maybe we can have configs for stuff like this?
  3. is this @aura command? There is already a plugin for it. https://github.com/dastgir/HPM-Plugins
  4. Go into unit.c. Check stealth62's post from Mar 26, 2016. Also Playtester's below it.
  5. This is a Hercules specific thing. Not sure if intentional. It happens for all skills and actions. According to herc, you can't be between a cell. If you hadn't finished moving to the cell you want to go to and perform an action, it will send you back to your old cell. I wish this wasn't the case. A config for this would be nice for this. Most players on my server hate that this happens, but I don't know the piece of code which causes this. Edit: I tried Playtester's "fix". It seems to stop the position lag thing from happening. but one thing it fails to do is correctly set your direction before the action takes place. Example: Click to your right while facing left and perform your skill. You are still facing left, despite your character appearing to face right. This is a problem for movement skills such as running and high jump.
  6. Hello, I have made the following edit to status_damage in status.c. When reflect damage is passed onto Crusader devoting player, I want it to not allow overflow above 1,000,000. However, there is some strange behavior. Even though passed on damage can be any amount, this check can't seem to be above 966,959. If I make it higher than 966k, the check doesn't go through, even if reflect damage is in the millions. Below is the code I'm using, labelled CUSTOM START / END Thanks #ifdef DEVOTION_REFLECT_DAMAGE if (src && (sce = sc->data[SC_DEVOTION]) != NULL) { struct block_list *d_bl = map->id2bl(sce->val1); struct mercenary_data *d_md = BL_CAST(BL_MER, d_bl); struct map_session_data *d_sd = BL_CAST(BL_PC, d_bl); if (d_bl != NULL && ((d_md != NULL && d_md->master != NULL && d_md->master->bl.id == target->id) || (d_sd != NULL && d_sd->devotion[sce->val2] == target->id)) && check_distance_bl(target, d_bl, sce->val3) ) { // CUSTOM START if (hp > 1000000) hp = 1000000; // CUSTOM END clif->damage(d_bl, d_bl, 0, 0, hp, 0, BDT_NORMAL, 0); status_fix_damage(NULL, d_bl, hp, 0); return 0; } status_change_end(target, SC_DEVOTION, INVALID_TIMER); } #endif
  7. I think not. would need some additional code for it. Since Convex Mirror uses the property boss_monster from a permanent monster spawn to find these mobs. It is why LHZ mobs cannot be found using them, as they are created by scripts, not monster spawns.
  8. I suggest creating an in-game NPC which can transfer your voting credit to donation credit using sql_query
  9. Hi Kubix. Wanna let you know I use this edit on my server and it works great. It took a lot of work, but everything works perfect now and I'm doing good things with it. Not sure if you have any interest in continuing with it, but if you do, I think you should finish all the work for this. It is really good.
  10. Thank you @Happy I found it and got it to work.
  11. Sorry for always asking many questions. Is it possible to restrict certain party names from being made? E.g. if a player tries to make a party called "My Party" through @party or /organize it will always be rejected (even if this party doesn't exist). Thanks
  12. you should have tested before you went live. default herc fluxcp donation module seems to be broken
  13. Hello, I created this buildin which invites char id 2 to char id 1's party (CID1 must be online). It sends char id 2 an invite as if char id 1 clicked their name and invited them. What I want to know - is it possible to force join a character to a party without giving them the option to accept or decline? Thanks. /* *party_invite(<char id 1>, <char id 2>) Invites Char ID 2 to the party owned by Char ID 1. Char ID 1 must be online. Returns true on succession, false on failure. */ BUILDIN(party_invite) { struct map_session_data *sd = script->charid2sd(st, script_getnum(st, 2)); struct map_session_data *t_sd = script->charid2sd(st, script_getnum(st, 3)); if (sd == NULL || t_sd == NULL) return false; if (!script_hasdata(st, 2) && !script_hasdata(st, 2)) { ShowError("Both Char IDs must be supplied."); return true; } if (party->invite(sd, t_sd)) script_pushint(st, 1); else script_pushint(st, 0); return true; }
  14. What? Did you mean to PM this to somebody...? If not, you need to post the file(s), as this is custom content and we have no idea what you are talking about.
  15. MAKE SURE YOU BACK UP FIRST! mysqldump -u SQLUSER -p SQLDBNAME > mydb.sql 1. Truncate every table except char and login. 2. Run the following SQL query on your login table. UPDATE `login` SET `group_id` = 0, `logincount` = 0, `lastlogin` = NULL; If you want to delete all character data but keep characters as 1/1 fresh Novice. run: 3a. Run the following SQL query on your char table. Change STARTMAP, STARTCOORDX, STARTCOORDY to your server settings. UPDATE `char` SET `class` = 0, `base_level` = 1, `job_level` = 1, `base_exp` = 0, `job_exp` = 0, `zeny` = 0, `str` = 1, `agi` = 1, `vit` = 1, `int` = 1, `dex` = 1, `luk` = 1, `max_hp` = 40, `hp` = 40, `max_sp` = 11, `sp` = 11, `status_point` = 48, `skill_point` = 0, `option` = 0, `karma` = 0, `manner` = 0, `party_id` = 0, `guild_id` = 0, `pet_id` = 0, `homun_id` = 0, `elemental_id` = 0, `hair` = 0, `hair_color` = 0, `clothes_color` = 0, `body` = 0, `weapon` = 0, `shield` = 0, `head_top` = 0, `head_mid` = 0, `head_bottom` = 0, `robe` = 0, `last_map` = 'STARTMAP', `last_x` = STARTCOORDX, `last_y`= STARTCOORDY, `save_map` = 'STARTMAP', `save_x` = STARTCOORDX, `save_y` = STARTCOORDY, `partner_id` = 0, `online` = 0, `father` = 0, `mother` = 0, `child` = 0, `fame` = 0, `rename` = 0, `slotchange` = 0, `char_opt` = 0, `font` = 0, `unban_time` = 0, `uniqueitem_counter` = 0, `sex` = 'U',`hotkey_rowshift` = 0; 3b. If you want to delete all characters, just truncate char table.
  16. Seems some memory leaks caused by this plugin: Memory manager: Memory leaks found at 2017/06/30 00h34m30s (Git rev '42387612c796fab0bc3257c555b2401df0d13033'). 0001 : HPM.c line 282 size 8 address 0x0x51928e4 0002 : HPM.c line 1023 size 24 address 0x0x576658c 0003 : HPM.c line 274 size 24 address 0x0x57669cc 0004 : script.c line 19544 size 19 address 0x0x5b7d844 0005 : script.c line 19545 size 19 address 0x0x5b7d904 0006 : HPM.c line 274 size 24 address 0x0x5b7e2c4 0007 : script.c line 19544 size 19 address 0x0x5b7e984 0008 : script.c line 19545 size 19 address 0x0x5b7f304 0009 : HPM.c line 1023 size 24 address 0x0x5ca95b4 0010 : HPM.c line 274 size 24 address 0x0x68dcb7c 0011 : HPM.c line 1023 size 24 address 0x0x68dce3c 0012 : HPM.c line 1023 size 24 address 0x0x68dd37c 0013 : HPM.c line 1023 size 24 address 0x0x68e4a7c 0014 : ReduceSkillDamage.c line 61 size 40 address 0x0x6987474 0015 : ReduceSkillDamage.c line 61 size 40 address 0x0x6988d24 0016 : pc.c line 2219 size 38 address 0x0x6989d64 0017 : ReduceSkillDamage.c line 61 size 40 address 0x0x698a174 0018 : HPM.c line 1023 size 24 address 0x0x6ec8c3c 0019 : HPM.c line 282 size 8 address 0x0x6f37ad4 0020 : HPM.c line 282 size 8 address 0x0x6f37ec4 0021 : ReduceSkillDamage.c line 61 size 40 address 0x0x767e454 0022 : ReduceSkillDamage.c line 61 size 40 address 0x0x767ebd4 0023 : ReduceSkillDamage.c line 61 size 40 address 0x0x767f5d4 0024 : pc.c line 2219 size 38 address 0x0x767f624 0025 : ReduceSkillDamage.c line 61 size 40 address 0x0x767f714 0026 : ReduceSkillDamage.c line 61 size 40 address 0x0x7680164 0027 : ReduceSkillDamage.c line 61 size 40 address 0x0x7680e34 0028 : ReduceSkillDamage.c line 61 size 40 address 0x0x7683d64 0029 : ReduceSkillDamage.c line 61 size 40 address 0x0x76843f4 0030 : pc.c line 2218 size 25 address 0x0x77d2ef4 0031 : HPM.c line 274 size 24 address 0x0x77d6474 0032 : HPM.c line 274 size 24 address 0x0x77d8274 0033 : HPM.c line 274 size 24 address 0x0x77d85b4 0034 : HPM.c line 1023 size 24 address 0x0x77d8ab4 0035 : HPM.c line 274 size 24 address 0x0x77d8eb4 0036 : HPM.c line 274 size 24 address 0x0x77d9a74 0037 : HPM.c line 1023 size 24 address 0x0x77d9ff4 0038 : pc.c line 2218 size 25 address 0x0x77da3f4 0039 : HPM.c line 1023 size 24 address 0x0x77da4b4 0040 : pc.c line 9570 size 2 address 0x0x8e0ce9c 0041 : HPM.c line 282 size 8 address 0x0x8e0ec6c 0042 : HPM.c line 282 size 8 address 0x0x8e106dc 0043 : pc.c line 9570 size 2 address 0x0x8e12a4c 0044 : pc.c line 9570 size 2 address 0x0x8e147ec 0045 : pc.c line 9570 size 2 address 0x0x8e14abc 0046 : pc.c line 9570 size 2 address 0x0x8e14cfc 0047 : channel.c line 105 size 1104 address 0x0xacfcc1c 0048 : HPM.c line 282 size 8 address 0x0xaf18494 0049 : HPM.c line 282 size 8 address 0x0xaf18d04 0050 : HPM.c line 282 size 8 address 0x0xaf19094 0051 : HPM.c line 282 size 8 address 0x0xaf191e4 0052 : ReduceSkillDamage.c line 61 size 40 address 0x0xb1a68f4 0053 : ReduceSkillDamage.c line 61 size 40 address 0x0xb1aa2c4 0054 : pc.c line 9570 size 2 address 0x0xb3fe804 0055 : HPM.c line 282 size 8 address 0x0xb400784 0056 : HPM.c line 282 size 8 address 0x0xb400e14 0057 : HPM.c line 282 size 8 address 0x0xb401e94 0058 : HPM.c line 282 size 8 address 0x0xb4025e4 0059 : HPM.c line 282 size 8 address 0x0xb402fd4 0060 : pc.c line 9554 size 2 address 0x0xb404084 0061 : pc.c line 9570 size 2 address 0x0xb404534 0062 : HPM.c line 1023 size 24 address 0x0xba8fb24 0063 : script.c line 19544 size 19 address 0x0xc0b6e24 0064 : HPM.c line 274 size 24 address 0x0xc0b7324 0065 : script.c line 19544 size 19 address 0x0xc0b73a4 0066 : HPM.c line 274 size 24 address 0x0xc0b7924 0067 : HPM.c line 274 size 24 address 0x0xc0b7ee4 0068 : HPM.c line 1023 size 24 address 0x0xc0b80a4 0069 : HPM.c line 274 size 24 address 0x0xc0b8ca4 0070 : HPM.c line 1023 size 24 address 0x0xc0b9c64 0071 : script.c line 19545 size 19 address 0x0xc0ba064 0072 : script.c line 19545 size 19 address 0x0xc0ba2a4 0073 : HPM.c line 274 size 24 address 0x0xc0ba824 0074 : HPM.c line 274 size 24 address 0x0xc0bac64 0075 : HPM.c line 1023 size 24 address 0x0xc0bafe4 0076 : HPM.c line 1023 size 24 address 0x0xc0bb024 0077 : ReduceSkillDamage.c line 61 size 40 address 0x0xc11d344
  17. Hello, I am using 2014-10-22 client. I recently did a new diff with nemo, and now books don't work. This is the message I get when trying to read a book I have all the necessary files in my grf.
  18. baby come back any kinda fool could see i was wrong and i just can't live without ya
  19. I also use Notepad++ it works okay for lub.
  20. It depends. If you are adding headgears, you need to edit the accname / accesoryid lub files. If not, you only need to update itemInfo.lub. You can edit, save, then put inside your client's System folder.
  21. Thanks to @Smoke I made a source edit which will send a clif->message stating how long until ecall can be used again. Unfortunately I couldn't figure out how to send an announcement once the timer is up. PM me on herc discord if you are interested.
  22. Thanks Smoke. I found what I was looking for thanks to you. Much appreciated.
  23. I have a clif->message I want to display in chat when a character begins casting a certain skill: clif->message(sd->fd, "Starting now!"); I want this to occur before the user starts casting the skill. I.e. order: 1. Player uses skill. 2. Player receives message in chat "Starting now!". 3. Player begins casting skill.
  24. Logically through a script, you could initnpctimer() and then message() the AID. But I don't know how to do that through source. Edit: just skimming through some source, I think you can use a combination of timer->gettick() and something else to perform the time counter. Not sure about sending a msg to the guild leader though. I think you can achieve the GL ID through sql query, im not sure about the announcement part tho. Edit2: sorry, i dont actually have meaningful contribution, just rambling. Apologies.
  25. no to faction system. keep working hard at this. just my opinion.
×
×
  • Create New...

Important Information

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