Support Leaders
  • Content count

  • Joined

  • Last visited

  • Days Won


Emistry last won the day on October 11 2017

Emistry had the most liked content!

About Emistry

  • Rank
    Advanced Member

Contact Methods

  • Website URL
  • Skype

Profile Information

  • Gender
  • Location:
  • Interests
    write NPC scripts.
  • Emulator:
  • Github

Recent Profile Visitors

7652 profile views
  1. Hi Habilis, this is my attempts.. https://pastebin.com/fksPdpFQ Feel free to comment -- EDIT Updated the campfire: - slowly decrease the effectiveness of healing rate and area range every 10 seconds. - may use item like wooden block, tree root, to prolong the campfire duration, or increase healing rate and area range too. v1.1
  2. I understand the need for it to trigger the OnNPCKillEvent for these event/quests. as many as we would need, and these efforts i believe it would be just the same if you compare with restructure the db to libconfig and others, just saying the effors true, but it could be still performance killing. If this statement are acceptable, the old mob controller and any other OnPCXXXEvent would have no problem getting it implemented into the emulator in the first place.
  3. -1 using mapflag like that are just a trick ... it's not a solution to solve the issues. i would have wish it was implemented with a different parameter in the *monster() for it to enable trigger the event or at least a custom mapflag or zone at least. i believe most of us sometime would write script the way we wouldn't want it to trigger server wide...and yet this changes make it trigger server wide...unless it was using the mapflag tricks.
  4. perhaps a new instance type for clan? we got type for char, party, guild, why not a new clan type? just attach the clan id, and everyone from the same clan will be able to join. if you mean who being the leader in the instance, i dont think its a mandatory to have one.
  5. callfunc( "F_CheckWeight", Knife, 1, 1000 ); function F_CheckWeight { [email protected] = getarg(0, Knife); [email protected] = getarg(1, 1); [email protected] = getarg(2, 1000); return (checkweight([email protected], [email protected]) && MaxWeight - Weight < [email protected]); } and callfunc( "F_CheckWeight2", [email protected]_nameid, [email protected]_amount, 1000 ); function F_CheckWeight2 { [email protected] = getarg(2, 1000); return (checkweight2(getarg(0), getarg(1)) && MaxWeight - Weight < [email protected]); } something like these i guess...
  6. https://github.com/HerculesWS/Hercules/blob/master/conf/global/console.conf#L60-L66
  7. sometime, I just don't understand why must official server check for Knife or 1000 weight but not the target item/weight
  8. @Eternity official script, but custom. @Will Su link are available in the description below the video.
  9. [RO] Central Lab Laboratory Available soon ...
  10. similar / related issue. https://github.com/HerculesWS/Hercules/issues/1221
  11. Hey, Rokimoki. It's been awhile since I last saw you in forum (probably back in eA forum) Some tips for you to improve it, if you want. 1. query_sql("SELECT `char_id` FROM `custom_pvprank` WHERE `char_id` = " + getcharid(0) + ";", [email protected][0]); if ([email protected][0]) { // create kill_count query_sql("INSERT INTO `custom_pvprank` (char_id, kill_count) VALUES ('" + getcharid(0) + "','" + kill_count + "');"); } else { // update kill_count query_sql("UPDATE `custom_pvprank` SET `kill_count` = " + kill_count + ";"); } this part can actually be simplified into 1 query.. which is INSERT INTO..... ON DUPLICATE KEY UPDATE ..... but, you have to set the `char_id` as primary key for the table. Since the ladder only store 1 row per characters, so you won't need to worry on duplicate `char_id`. Anyway you already made it as primary key... 2. cleararray [email protected]$[0], "", 10; // defining 10 positions cleararray [email protected]_count[0], 0, 10; if (strcmp([email protected]$[[email protected]], "") == 0) break; // if some is empty, stop printing these are not really necessary .... those npc scope variable will be auto cleared once the conversation with the NPC ended. char name shall never be empty unless somewhere in your query gone wrong... but yet you can skip this by adding another checking in the query which is better if you really need it. another reason for that would be, IF it happen one of the player having empty name, the ranking display will be a mess. 3. getmapxy([email protected]$,[email protected],[email protected],0); since the [email protected] and [email protected] variable are not used, you can actually replace the getmapxy() into strcharinfo(3) which work the same, return the current map name. 4. if (rid2name(killedrid) == strcharinfo(0)) { // prevent suicide for gaining points can be replace by this ... if ( killedrid == getcharid(0) ) 5. sleep 50; haha, you dont really need to update the waitingroom display that frequent, it keep resources. 1 seconds are better
  12. [RO] Pirate Ship Rescue Instance A pirate ship was assaulted by a groups of fearsome Sea King Monsters during the sail. The ship wrecked nearby the North area of Izlude. The captain manage to get to the Izlude town and seek for rescue. According to the Captain, the ship are heavily damaged. Players may get hurt caused by the swinging ship. Several Safety Wall will be casted from time to time to protect the players. Player have to stay within the Safety Wall, or he probably will die from serious injuries. The Sea King monsters will surround the ship and try to destroy it. So there are a time limit each round when the monsters appeared. Players have to defeat all the monsters within the time limit or the ship will be damaged and end up the quest failed.
  13. Reason to support implementation: as we can see here ... https://github.com/rathena/rathena/commit/d84d6ba I guess it's gonna be good to see it implement the job restriction within the map_zone that herc have? seem like required in WOE:TE ... or we could say that it come in handy to implement the WOE:TE?
  14. i got something similar that I made few years ago... it's based on Guild Rank/Position. http://upaste.me/27b6e4 leader can setup which position/rank can access the storage. no password are required.