Jump to content

Nihad

Members
  • Content Count

    58
  • Joined

  • Last visited

  • Days Won

    9

Reputation Activity

  1. Upvote
    Nihad got a reaction from wintermoon in Instances and Quests   
    Just a heads up I am very limited on time so releases will come slowly. Monster and Item releases will follow. Not all of the instances have been cleaned up yet so I won't add those until that has been done. These instances and quests were either released on Herc or rAthena and then translated and cleaned up by my team. We have invested months of our time in order to compile all of the information. Not much needs to be said here as it is all said in the git. 
     
    All I ask in return it to encourage sharing in the community.
     
    https://github.com/WoonRO/share
     
    Monster and item info was gathered from the following websites:
    http://www.divine-pride.net/
    http://ro.gnjoy.com/guide/runemidgarts/
    http://kafra.kr/#!/en/KRO/
    http://db.123ro.cn/
     
    And:
    https://github.com/rosfus/cRO
     
    Additional Instance information was gotten from forums such as:
    http://forum.gamer.com.tw/
     
    rAthena: I will not be making an official release topic on rA since I do not feel it is my place to release content that is not ready for you. Though some of you have already contacted me and started converting the instances to rAthena. If you send those to me I will add them to the git under an rAthena folder, don't be jerks and not share. rAthena deserves some love too. 
     
    Side note: Some of these instances require source edits such as getmobdata, setmobdata, specialeffects3, mobremove. I'm in the process of making these into plugins but my source knowledge is crap. All the information you need for these source edits can be found on the forums and some stuff you will have to search the web. If anyone wants to make plugin versions of these that would be much appreciated. It is possible btw, I know for a fact it is because I have a super messy version of getmobdata, but it works. 
  2. Upvote
    Nihad reacted to Habilis in @emotion @heart @show @hold @detach   
    Hello, here is the adapted version of 
    @emotion @heart @show @hold @detach
    commands so popular in the Russian eA, rA, Herc community.
     
    I don't claim to be the Author, credit for the work goes to each mod respective Author.
     
    I just made all of them into Hercules plugins and changed source code a little...
     
     
     
    emotion.c
    @emotion 0 - 81 without delay. Now, you can do nasty spam with emotions.

      #include <stdio.h> #include <stdlib.h> #include <string.h> #include <math.h> #include "../common/HPMi.h" #include "../map/clif.h" #include "../map/atcommand.h" #include "../map/script.h" #include "../map/pc.h" #include "../common/nullpo.h" #include "../common/HPMDataCheck.h" HPExport struct hplugin_info pinfo = { "@emotion", // Plugin name SERVER_TYPE_MAP,// Which server types this plugin works with? "0.1", // Plugin version HPM_VERSION, // HPM Version (don't change, macro is automatically updated) }; /*========================================== * @emotion X by Anarchist * => Displays the emotions without delay *------------------------------------------*/ int emotion_max = 81; // Set las emotion number available forr this command ACMD(emotion) { nullpo_retr(-1, sd); char err_msg[1024]; if(!message || !*message || atoi(message)<0 || atoi(message)>emotion_max) { sprintf(err_msg, "usage: @emotion 0-%d", emotion_max); clif->message(fd, err_msg); return -1; } clif->emotion(&sd->bl,atoi(message)); return 1; } /* Server Startup */ HPExport void plugin_init (void) { addAtcommand("emotion",emotion); }  
     
     
    heart.c
    @heart 1 or 2 (heart emotion without delay)

    #include <stdio.h> #include <stdlib.h> #include <string.h> #include <math.h> #include "../common/HPMi.h" #include "../map/clif.h" #include "../map/atcommand.h" #include "../map/script.h" #include "../map/pc.h" #include "../common/nullpo.h" #include "../common/HPMDataCheck.h" HPExport struct hplugin_info pinfo = { "@heart", // Plugin name SERVER_TYPE_MAP,// Which server types this plugin works with? "0.1", // Plugin version HPM_VERSION, // HPM Version (don't change, macro is automatically updated) }; /*========================================== @heart X by Anarchist => Displays the heart special effect ------------------------------------------ */ ACMD(heart) { nullpo_retr(-1, sd); if(!message || !*message || atoi(message)<0 || atoi(message)>2) { clif->message(fd, "usage: @heart 1 or 2"); return -1; } if(atoi(message)==1) { clif->specialeffect(&sd->bl,364,0); } else if(atoi(message)==2) { clif->specialeffect(&sd->bl,509,0); } return 1; } /* Server Startup */ HPExport void plugin_init (void) { addAtcommand("heart",heart); }  
     
    dance.c
    @dance 1 - 8 (character perform different tricks...)
    #include <stdio.h> #include <stdlib.h> #include <string.h> #include <math.h> #include "../common/HPMi.h" #include "../map/clif.h" #include "../map/atcommand.h" #include "../map/script.h" #include "../map/pc.h" #include "../common/nullpo.h" #include "../common/HPMDataCheck.h" HPExport struct hplugin_info pinfo = { "@dance", // Plugin name SERVER_TYPE_MAP,// Which server types this plugin works with? "0.1", // Plugin version HPM_VERSION, // HPM Version (don't change, macro is automatically updated) }; /*========================================== @dance X by Anarchist => Special effects with dance style ------------------------------------------ */ ACMD(dance) { nullpo_retr(-1, sd); if(!message || !*message || atoi(message)<0 || atoi(message)>9) { clif->message(fd, "usage: @dance 1-9"); return -1; } switch(atoi(message)) { case 1 : clif->specialeffect(&sd->bl,413,0); break; case 2 : clif->specialeffect(&sd->bl,414,0); break; case 3 : clif->specialeffect(&sd->bl,415,0); break; case 4 : clif->specialeffect(&sd->bl, 426,0); break; case 5 : clif->specialeffect(&sd->bl,458,0); break; case 6 : clif->specialeffect(&sd->bl,466,0); break; case 7 : clif->specialeffect(&sd->bl,501,0); break; case 8 : clif->specialeffect(&sd->bl,540,0); break; case 9 : clif->specialeffect(&sd->bl,550,0); break; } return 1; } /* Server Startup */ HPExport void plugin_init (void) { addAtcommand("dance",dance); }  
     
    show.c
    @show X Y (Displays a red dot on the minimap for the given coordinates, useful when searching for quest npc or a merchant selling needed items....)

     
    #include <stdio.h> #include <stdlib.h> #include <string.h> #include <math.h> #include "../common/HPMi.h" #include "../map/clif.h" #include "../map/atcommand.h" #include "../map/script.h" #include "../map/pc.h" #include "../common/nullpo.h" #include "../common/HPMDataCheck.h" HPExport struct hplugin_info pinfo = { "@show", // Plugin name SERVER_TYPE_MAP,// Which server types this plugin works with? "0.1", // Plugin version HPM_VERSION, // HPM Version (don't change, macro is automatically updated) }; /*========================================== * @show by KarLaeda * => Displays the point on minimap *------------------------------------------*/ ACMD(show) { int x = 0, y = 0; nullpo_retr(-1, sd); if(!message || !*message || (sscanf(message, "%d %d", &x, &y) != 2)) { clif->message(fd, "usage: @show <x> <y>"); return -1; } clif->viewpoint(sd, 1, 1, x, y, 2, 0xFF0000); return 1; } /* Server Startup */ HPExport void plugin_init (void) { addAtcommand("show",show); }  
    hold.c
    @hold (Disables / Enables character movement, useful on low rates to Archer/Mages when leveling on immobile monsters)
     
    #include <stdio.h> #include <stdlib.h> #include <string.h> #include <math.h> #include "../common/HPMi.h" #include "../map/clif.h" #include "../map/atcommand.h" #include "../map/script.h" #include "../map/pc.h" #include "../common/nullpo.h" #include "../common/HPMDataCheck.h" HPExport struct hplugin_info pinfo = { "@hold", // Plugin name SERVER_TYPE_MAP,// Which server types this plugin works with? "0.1", // Plugin version HPM_VERSION, // HPM Version (don't change, macro is automatically updated) }; /*========================================== * @hold by Voidless *==========================================*/ ACMD(hold) { nullpo_retr(-1, sd); if (!sd->state.blockedmove) { sd->state.blockedmove=1; clif->message(fd, "Character movement turned off"); } else { sd->state.blockedmove=0; clif->message(fd, "Character movement turned on"); } return 1; } /* Server Startup */ HPExport void plugin_init (void) { addAtcommand("hold",hold); }  
    For this plugin, I used the work : http://herc.ws/board/topic/2615-atcommand-afk/
    of Mhalicot : http://herc.ws/board/user/1582-mhalicot/
    To inspire myself...
    detach.c
    @detach (leaves character in game while client can be disconnected)

    #include <stdio.h> #include <stdlib.h> #include <string.h> #include "../common/HPMi.h" #include "../common/timer.h" #include "../common/nullpo.h" #include "../map/channel.h" #include "../map/script.h" #include "../map/pc.h" #include "../map/clif.h" #include "../map/chat.h" #include "../map/battle.h" #include "../map/status.h" #include "../common/HPMDataCheck.h" HPExport struct hplugin_info pinfo = { "@detach", // Plugin name SERVER_TYPE_MAP,// Which server types this plugin works with? "0.1", // Plugin version HPM_VERSION, // HPM Version (don't change, macro is automatically updated) }; /*========================================== * @detach *==========================================*/ ACMD(detach) { nullpo_retr(-1, sd); if( pc_isdead(sd) ) { clif->message(fd, "Cannot use @detach if you are dead."); return true; } if( map->list[sd->bl.m].flag.autotrade == battle->bc->autotrade_mapflag ) { if(map->list[sd->bl.m].flag.pvp || map->list[sd->bl.m].flag.gvg){ clif->message(fd, "You may not use @detach when you are on maps PVP or GVG."); return true; } sd->state.monster_ignore = 0; sd->state.autotrade = 1; chat->create_pc_chat(sd, "DETACH", "", 1, true); sd->sc.opt1 = OPT1_STONE; pc->setoption(sd, sd->sc.option); pc_setsit(sd); skill->sit(sd,1); clif->sitting(&sd->bl); channel->quit(sd); clif->authfail_fd(sd->fd, 15); return true; } else { clif->message(fd, "@detach is not allowed on this map."); return true; } } /* Server Startup */ HPExport void plugin_init (void) { addAtcommand("detach",detach); }  
    Put all .c files inside src/plugins
    in the file src/plugins/makefile.in include the plugins
     
    MYPLUGINS = show heart emotion dance hold detach
     
    run commmand : make plugins
     
    in file conf/plugins.conf
     
    add plugins
     
    plugins_list: [     /* Enable HPMHooking when plugins in use rely on Hooking */     //"HPMHooking",     //"db2sql",     //"sample",     //"other",     "show",     "heart",     "emotion",     "dance",     "hold",     "detach" ]   Start server, enhoy
  3. Upvote
    Nihad reacted to Samuel in PartyBuff Plugin   
    Hello everyone!
     
    Updated Annie's plugin and applied Functor's bug fix.

    With this plugin, it will display party member's special buffs in party list (Alt+Z)
    Buffs are:
    Look like
    [BAFS+]Player name
     
    See original : Topic
     
    Enjoy!
     
    Plugin Link
  4. Upvote
    Nihad reacted to thor1009 in Semi-Official Instances Package v0.3   
    Hi Hercules,
     
    I decided to share all my instance scripts with the community to thank back.
     
    I have spent mass of time to TRY TO write the official instance scripts.
    However, they are "semi-official" because:
    1. I only get information from youtube, so I cannot make sure everything is correct.
    2. some of them are from jRO, which has its own custom things.
     
     
    **WHAT YOU NEED TO KNOW**
     
    0. These scripts are NOT ready to use, you may need a lot of time to merge them into your servers. 
     
    1. All the NPC talks are written in Chinese because I am opening a server for Chinese players. My plan is to slowly translate it back to English, but I might not have enough time to do this, so it is very welcome if you can help to translate it.
     
    2. I have made some custom script commands for the scripts, I will provide a patch for these commands in this weekend.
     
    3. Some mobs and skills are not implemented in the Hercules yet
     
    4. You will find some of the scripts are really messy, I am sorry for that. I will slowly clean them up and update the package.
     
    5. I will slowly update this package, but you can use it if you want, and any help to merge it into Hercules will be greatly appreciated.
     
     
    **WHAT I CAN DO FURTHER WITH YOUR HELP**
     
    1. If you can provide some replay or video or some detailed information for official instances, I can correct the non-official part in these scripts
     
    2. If you can record npc talks in iRO, I can quickly replace the texts with the English ones.
     
    3. If you can record npc talks in kRO, I can slowly translate them into English, as well as Chinese.
     
     
     
    -------------------------------------------Update: 01/06/2016------------------------------------------------------------------
    Old Glast Heim, hard mode
     
    Comments:
    Texts in Old Glast Heim hard mode is replaced with Euphy's texts.
    Copied Euphy's entrance part for entering the Old Glast Heim (Hard mode), here if some one could provide information about the official entrance part, I can re-write this part.
    Skill Venom Fog is not implemented in Hercules yet, the patch is for this skill, but the behavior is not 100% official, more information is needed.
    Special skills for the MVPs are also not 100% official, the detailed information about this part is difficult to get.
    There should be an skill unit in this instance according to aegis, but I cannot find the proper one, so I assigned 2960 here, which is the same skill unit used in Devil tower (I named it Morroc Tower here).
     
    To have it run, there are still some work to do:
     
    1. The mob ids in OGH-HM are 3139 to 3152 and a skill unit (I used 2960), since my mobs are highly custom due to lack of info, I am not sharing these.
    You can simply copy the OGH monsters to these id and make them stronger.
     
    2. The map 1@gl_kh and 2@gl_kh is not in Hercules yet, you need add it to your maplist and run the map_cache for it.
     
    I am going to translate Faceworm script in this weekend, since it is easy to find iRO video for that.
    instances package v0.2 (Chinese).rar
    OldGlastHeim_HM_Eng.txt
    OGH-HM.patch
  5. Upvote
    Nihad got a reaction from minx123 in Help fix this script other one town invasion   
    "."      - A NPC variable.            They exist in the NPC and disappear when the server restarts or             the NPC is reloaded. Can be accessed from inside the NPC or by             calling 'getvariableofnpc'. Function objects can also have             .variables which are accessible from inside the function,             however 'getvariableofnpc' does NOT work on function objects.   In your herc folder look under doc/script_commands.txt line 438 starts the variable explanation.   That script is using .mvpid .itemid and so on. Look in that document for a more appropriate way of setting the variable. A lot of people here could just give you the answer but I think you will find it a lot more rewarding if you figure it out your self, just use replace all in notepad++   If you can't figure it out then let us know, if you do figure it out also let us know
  6. Upvote
    Nihad got a reaction from Garr in Oboro / Rebellion Quest and Skills   
    A few of us from my team have been in touch with some of the devs and we understand a bit how things work around here. Each dev has their own style and is a totally unique person. No one is paid for developing hercules to the next step, if they are paid it is because of a per project basis. Everyone chooses what they will work on and if they feel like working on it they will do it and if their time permits they will do it. If they have paid jobs pending then they will do those first. I have found a few of the devs to be extremely helpful and respond relatively quickly to my own scripting questions... as long as it's not the weekend. Judging from your post it seems you feel they are obligated to help you. Which is totally not the case since no one is going to build an RO server for you. 
     
    Could they prioritize better and work on different things? Possibly, but posts like that won't encourage them. 
  7. Upvote
    Nihad reacted to Aeromesi in On New Map gain EXP System (Currently only towns)   
    [On New Map EXP System]
     
    Special thanks to: BrianL
     
     
    Basically you enter a new town, and you gain Base & Job EXP!
    Supports ONLY towns currently
    I will update it with every map in the game, but be patient.


    If you download my work, the least I could get is a thanks or a rep up... C'mon hercules, don't leech, be nice leechers!
    onnewmapexp.txt
×
×
  • Create New...

Important Information

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