Nihad

Members
  • Content count

    44
  • Joined

  • Last visited

  • Days Won

    3

Nihad last won the day on September 1 2016

Nihad had the most liked content!

1 Follower

About Nihad

  • Rank
    Advanced Member

Profile Information

  • Github
    nihadm89

Recent Profile Visitors

1749 profile views
  1. Thanks meko, that answers my question. I wanted to know if you can build checks like that into macros. Just tested this and confirmed it works.
  2. See I thought of that too. But as you can see in my quote above that I found while doing some research, macros are determined prior to compiling. So technically only one of those macros will count, it should not change the value once the server is live. Or have macros changed over time and are now flexible? Thanks meko, can you clarify if macros can change once the server is compiled. Here is a link explaining a bit of what I'm talking about. https://stackoverflow.com/questions/9274500/redefining-or-changing-macro-value If my understanding is correct, even what meko posted should technically not work. Once the server gets compiled normalize damage would be set in stone and would not change based on anything the server does.
  3. So I have been playing around with this a bit today and I'm trying to figure out the best way to do this. I need to convert the macro NORMALIZE_RDAMAGE to a function because I need it to offer 2 different options. For example to have capped max reflect damage on MvPs but not on normal monsters and players. Right now herc has #ifdef RENEWAL #define NORMALIZE_RDAMAGE(d) ( trdamage += rdamage = max(1, min(max_reflect_damage, (d))) ) #else #define NORMALIZE_RDAMAGE(d) ( trdamage += rdamage = max(1, (d)) ) #endif I want to change this to be if the target is an MvP or not. Doing if ( is_boss(src) ) { #define NORMALIZE_RDAMAGE(d) ( trdamage += rdamage = max(1, min(max_reflect_damage, (d))) ) } else { #define NORMALIZE_RDAMAGE(d) ( trdamage += rdamage = max(1, (d)) ) } This seems to work but it's wrong. "Preprocessor directives are interpreted before the results of the preprocessing step are compiled." I don't understand enough about source to explain why this edit works, but I know that it's not the right way to go about making this edit. VS and GCC throw out warnings about macro redefinition. Any help would be much appreciated.
  4. Or you can simply edit the Dracula mobskill and have him not summon so many familiars so it's not worth it. One of the problems with dracula is that he summons so many and so fast, you get a crazy amount of items. You could also remove his familiars entirely and avoid the issue, it's not like they contribute anything to his fighting power or to the strategy of fighting him.
  5. Not sure if you knew but github has this nifty feature called "History". When you click on a file, you can select several options at the top right of the file. For example morocc: https://github.com/HerculesWS/Hercules/commits/master/npc/cities/morocc.txt This displays all the commits made to that file, and you can click on a specific date and view the changes made then and the file as it was at that point by clicking "view". You can browse the entire herc repo as it was at that point by clicking "browse files". You will also need to find an older grf and extract the old city map and replace the new one and update your mapcache. Hop that helps a tiny bit.
  6. I agree with what was said above but to an extent. Would be neat if we could have some sort of reward system for people that contribute. There are a number of people here like Dastgir that have given so much back to the community. Not entirely sure what kind of reward system can be put in place though. But it might be worth it to consider encouraging contribution.
  7. Very nice, haven't updated my herc files in a while, glad to see some awesome changes. Thanks for the summary.
  8. Try using a clean player.conf from herc git. And see if you still get the issue. Also check console see what errors it's giving you, it will make figuring the bug out much easier.
  9. Ah didn't realize this was a custom shield, my bad. http://herc.ws/board/topic/1974-release-custom-job-custom-shield-patches/ Second half of this post.
  10. *rentitem(<item id>, <time>) *rentitem("<item name>", <time>) Creates a rental item in the attached character's inventory. The item will expire in <time> seconds and be automatically deleted. When receiving a rental item, the character will receive a message in their chat window. The character will also receive warning messages in their chat window before the item disappears. This command can not be used to rent stackable items. Rental items cannot be dropped, traded, sold to NPCs, or placed in guild storage (i.e. trade mask 75). Note: delitem() in an NPC script can still remove rental items. I believe the rent command already accomplishes what you are trying to.
  11. Check your iteminfo, and see what the classnum says It should be ClassNum = 6
  12. Well there ya go
  13. I assume you are using the plugin from here: https://github.com/dastgir/HPM-Plugins/tree/master/src/plugins Without needing to modify the plugin you could add a simple bindatcmd npc *bindatcmd("command", "<NPC object name>::<event label>"{, <group level>, <group level char>, <log>}) You can find more info in doc/script_commands.txt then when the player does @autoattack check their map using getmapxy. Then do an if statement checking if the map is the one you specified, if not then just end the script, if so then allow them to run the command using *atcommand("<command>") Otherwise someone who feels comfortable can offer advice how to modify the plugin, I am not confident enough to give that advice.
  14. You didn't convert your conf files properly. Same thing happened to me, I didn't pay attention when converting them. Most likely your conf/map/battle/player.conf is configured wrong.
  15. The tradeable part you simply edit in item_db.conf file The part where the skulls drop, as long as you do not need to keep the attached names, it can be very simple. You can use the OnPCDieEvent command, then simply count the skulls in the inventory. Then delete the items from the players inventory and drop that same amount on the floor using the following command: makeitem(<item id>, <amount>, "<map name>", <X>, <Y>) Maybe there is an easier way to do it, but this seems pretty simple to me.