Jump to content

Mikado

Members
  • Content Count

    26
  • Joined

  • Last visited

About Mikado

  • Rank
    Member

Recent Profile Visitors

2024 profile views
  1. I've contacted the harmony developer. Looks like he is busy with college and exams, from what he said, he wants to resume the project with a bit different focus.
  2. It is compatible (as I've used it by myself in hercules) but it has bugs: changing options in your character removes the autopot timer. Also every time you use the command it will start a new timer over and over until running out of memory / your server lags like hell.
  3. In src/map/skill.c, find: case MO_BODYRELOCATION: if (unit->movepos(src, x, y, 1, 1)) { #if PACKETVER >= 20111005 clif->snap(src, src->x, src->y); #else clif->skill_poseffect(src,skill_id,skill_lv,src->x,src->y,tick); #endif if (sd) skill->blockpc_start (sd, MO_EXTREMITYFIST, 2000, false); } break; Remove: if (sd) skill->blockpc_start (sd, MO_EXTREMITYFIST, 2000, false); And recompile.
  4. Hello everyone, my client uses 0x0064,55 for login, and I want to change it like 0x0078. I already know what to change server side but, how I find it in my client to change it? What do I need to hex in the client? Thank you.
  5. Not showing for me. I cannot reproduce this. Note: I forgot to add a "break;" before the block of SC_ARMORPROPERTY ends. Check that.
  6. Yeah, it's a bit random so I can't figure why does it work that way. Edit: Move the status_change_start block code of SC_ARMORPROPERTY next to the block of SC_ITEMSCRIPT. That will fix it.
  7. Yes it is. Remember: Status.h: Find and change this SI_MAX,}; To this // Custom property icons SI_PROPERTY_FIRE = 0, SI_PROPERTY_WATER = 0, SI_PROPERTY_EARTH = 0, SI_PROPERTY_WIND = 0, SI_MAX,}; Change each one to suit your desired icon ID. status.c Find and change this case SC_ARMORPROPERTY: case SC_ARMOR_RESIST: break; to this case SC_ARMORPROPERTY: // val1 = water | val2 = earth | val3 = fire | val4 = wind if( sd ) { if (val1 > 0) clif->status_change(bl,SI_PROPERTY_WATER,1,tick,0,0,0); else clif->sc_end(&sd->bl, sd->bl.id, SELF, SI_PROPERTY_WATER); if (val2 > 0) clif->status_change(bl,SI_PROPERTY_EARTH,1,tick,0,0,0); else clif->sc_end(&sd->bl, sd->bl.id, SELF, SI_PROPERTY_EARTH); if (val3 > 0) clif->status_change(bl,SI_PROPERTY_FIRE,1,tick,0,0,0); else clif->sc_end(&sd->bl, sd->bl.id, SELF, SI_PROPERTY_FIRE); if (val4 > 0) clif->status_change(bl,SI_PROPERTY_WIND,1,tick,0,0,0); else clif->sc_end(&sd->bl, sd->bl.id, SELF, SI_PROPERTY_WIND); } case SC_ARMOR_RESIST: break; Find and change this (I've got to copy this entire block so you don't get lost, remember this is when status icons for SC_ITEMSCRIPT actually ENDS) case SC_ITEMSCRIPT: if( sd ) { switch( sce->val1 ) { //case 4121://Phree //case 4047://Ghostring case 4302://Gunka clif->sc_end(&sd->bl, sd->bl.id, SELF, SI_MVPCARD_TAOGUNKA); To this: case SC_ARMORPROPERTY: if( sd ) { if( sce->val1 ) clif->sc_end(&sd->bl, sd->bl.id, SELF, SI_PROPERTY_WATER); if( sce->val2 ) clif->sc_end(&sd->bl, sd->bl.id, SELF, SI_PROPERTY_EARTH); if( sce->val3 ) clif->sc_end(&sd->bl, sd->bl.id, SELF, SI_PROPERTY_FIRE); if( sce->val4 ) clif->sc_end(&sd->bl, sd->bl.id, SELF, SI_PROPERTY_WIND); } case SC_ITEMSCRIPT: if( sd ) { switch( sce->val1 ) { //case 4121://Phree //case 4047://Ghostring case 4302://Gunka clif->sc_end(&sd->bl, sd->bl.id, SELF, SI_MVPCARD_TAOGUNKA); And I think that will do the trick.
  8. You can do something similar as SC_ITEMSCRIPT does. Under status_change_start search for SC_PROPERTYELEMENT and paste below: if( sd ) { if (val1 > 0) clif->status_change(bl,SI_PROPERTY_WATER,1,tick,0,0,0); else clif->sc_end(&sd->bl, sd->bl.id, SELF, SI_PROPERTY_WATER); if (val2 > 0) clif->status_change(bl,SI_PROPERTY_EARTH,1,tick,0,0,0); else clif->sc_end(&sd->bl, sd->bl.id, SELF, SI_PROPERTY_EARTH); if (val3 > 0) clif->status_change(bl,SI_PROPERTY_FIRE,1,tick,0,0,0); else clif->sc_end(&sd->bl, sd->bl.id, SELF, SI_PROPERTY_FIRE); if (val4 > 0) clif->status_change(bl,SI_PROPERTY_WIND,1,tick,0,0,0); else clif->sc_end(&sd->bl, sd->bl.id, SELF, SI_PROPERTY_WIND);} Then, in status.h define each SI_PROPERTY_**** But it needs a bit of work, as needs to check when SC_ARMORPROPERTY ends too.
  9. I really doubt you can make separate icons for those. Unless you add a separate SC for each item.
  10. status.c, find: StatusIconChangeTable[SC_MONSTER_TRANSFORM] = SI_MONSTER_TRANSFORM; Add below: StatusIconChangeTable[SC_ARMOR_ELEMENT] = SI_ARMOR_ELEMENT; Now set an icon to SI_ARMOR_ELEMENT. In status.h find: SI_ARMOR_PROPERTY = 302, Add below: SI_ARMOR_ELEMENT = 302, This way SC_ARMOR_ELEMENT will use the same icon as SC_ARMORPROPERTY. If you want to set a custom icon read this: http://www.eathena.ws/board/index.php?showtopic=278904 Note: You'll can also personalize the icon info in-game with the client lua files / statusicon folder Note2: Hercules changed SC_ARMOR_ELEMENT to SC_ARMORPROPERTY, maybe an outdated revision?
  11. I want to edit it, so it uses my own keys.
  12. So, these are the packet keys for 2012-04-10 in packets.h #if PACKETVER >= 20120410 packetKeys(0x01581359,0x452D6FFA,0x6AFB6E2E); /* Thanks to Shakto */#endif Pretty easy to change, but, how to find and edit them in the client with an hex editor?
  13. If you use the message command two times, it will display two different lines. message strcharinfo(0),"First line.";message strcharinfo(0),"Second Line."; I don't know if it's the finest way of doing it, but works.
  14. The problem was I was not linking the function with the interface. This solved it: pc->autopots_timer = autopots_timer;
×
×
  • Create New...

Important Information

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