Jump to content

Mikado

Members
  • Content Count

    26
  • Joined

  • Last visited

Everything posted by Mikado

  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;
  15. Hi all. I've got an atcommand which calls a TimerFunc function via iTimer-> add_timer() and so. If my TimerFunc is in atcommand.c it works fine, but if I use it from pc.c it doesn't work (it doesn't call it, neither crash or debugs). This is the call from the atcommand when the timer Function is in atcommand.c: sd->autopots_tid = iTimer->add_timer( iTimer->gettick() + 1000, autopots_timer, sd->bl.id, 0); And this is how I call it when the timer function is in pc.c sd->autopots_tid = iTimer->add_timer( iTimer->gettick() + 1000, pc->autopots_timer, sd->bl.id, 0); Registered in pc.h as: int (*autopots_timer) ( int tid, unsigned int tick, int id, intptr_t data); Thanks in advance.
  16. you should diff your client to enable SSO Login... Yep, that's it. Thank you.
  17. Does it support 2012 clients? Because I can make it run, but it prompts always my ID is unregistered.
  18. No problem, I found out a lua-to-lub converter and now it's working properly.The only "problem" now is the not translated button, looks like my data folder has wrong names for some of the files.
  19. Hi, 2 points: - I diff'd my client with "Load LUA before LUB", it's ok for the data folder part, but it's not reading my .lua files inside /System, asking for lub files. What do I do in this case? - Some parts of my client (specific buttons and sections) are not translated [source] I'm using the latest translations from here https://subversion.assembla.com/svn/client-side-translation/ Thank you.
  20. There are thousands of available dictionaries out there with md5 encrypted/decrypted passwords. This is the reason I guess Hercules should move to (or at least, make it available) some kind of "double hash" with salt. Something like md5( salt + md5( password )), where the salt is defined by the server owner with a custom conf setting.
  21. I've read on a eathena thread the client starts supporting it since 2010-11-16, so I'll assume the 2012-04-10 is the most reliable. Thank you very much.
  22. Hi, can somebody tell me from which version the client supports mounting and, along them, which one is the most stable an reliable (e.g. no random crashes, rcx support, etc?). Thank you.
  23. Hi, I'm making a command to change the name of a character. It's working fine by now, but to make it better I need a bit of help: - How can I, from atcommand.c and script.c get the char table name? This is stored in the variable chardb inside char.c, but I cannot access it and if I include it in those files, a lot of things go wrong. - How can I read the setting char_name_letters inside char_conf without implementing the method in those files? It's stored too in the variable "char_name_letters" inside char.c - How can I send the new name to the client? I've looking for something usefull inside clif.c but nothing sounds familiar. Thanks for your help.
×
×
  • Create New...

Important Information

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