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

  • Skype
  • Website URL

Profile Information

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

Recent Profile Visitors

8393 profile views
  1. @raPalooza~ Hi, recently I just manage to switch to 2018-06-20 client. I noticed part of the spr doesn't show in game. The cursor went invisible when it point to "non-walkable" area. These animated cursor are missing.
  2. I have been waiting for this soooooo loooonnnnggggg tiimmmmeeee... anyway, just curious, since its just adding a new field "event_label", why not consider alter the existing "skill_db" and add the field there?
  3. 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
  4. 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.
  5. -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.
  6. 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.
  7. 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...
  8. https://github.com/HerculesWS/Hercules/blob/master/conf/global/console.conf#L60-L66
  9. sometime, I just don't understand why must official server check for Knife or 1000 weight but not the target item/weight
  10. @Eternity official script, but custom. @Will Su link are available in the description below the video.
  11. similar / related issue. https://github.com/HerculesWS/Hercules/issues/1221
  12. 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
  13. [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.