Jump to content

rafoka

Members
  • Content Count

    1
  • Joined

  • Last visited


Reputation Activity

  1. Upvote
    rafoka reacted to Ind in BG Queue: Draw Scenario Info   
    oh i see o-o I added a maxDuration setting for each arena we can later modify when we find out the values.
    sneak peek:
    //====================================================//= _ _ _ //= | | | | | | //= | |_| | ___ _ __ ___ _ _| | ___ ___ //= | _ |/ _ '__/ __| | | | |/ _ / __|//= | | | | __/ | | (__| |_| | | __/__ //= _| |_/___|_| ___|__,_|_|___||___///= //= http://herc.ws/board/ //====================================================//= Link~u! <description> <link to wiki/topic>battlegrounds: ({ /* character variable for global bg delay */ global_delay_var: "BG_Delay_Tick" /* how many seconds to consider a player "afk" and kick him out? */ maximum_afk_seconds: 30 /* str used by the feature */ queue_invalid_name: "(Invalid Name)" queue_individual_name: "Individual" queue_party_name: "Party" queue_guild_name: "Guild" /* one can add as many as he wishes */ /* for custom ones, need to edit "lua files/entryqueue/entryqueuelist.lua" [Ind/Hercules] */ arenas: ({ name: "Tierra Gorge" //must match the name in client files event: "Tierra_BG2::OnPlayerListReady" minLevel: 80 maxLevel: 150 reward: {/* amount of badges awarded on each case */ win: 3 loss: 1 draw: 1 } minPlayers: 6 /* minimum amount of players to start */ maxPlayers: 60 /* maximum amount of players */ minTeamPlayers: 6 /* minimum amount of team members required for a team (party or guild) to join */ delay_var: "Tierra_BG_Tick" /* npc variable name that will store the delay for this match */ maxDuration: 30 /* maximum duration in minutes, if reached game ends and highest score wins (or calls a draw if scores are equal) */ },{ name: "Flavius" //must match the name in client files event: "Flavius_BG1::OnPlayerListReady" minLevel: 80 maxLevel: 150 reward: {/* amount of badges awarded on each case */ win: 9 loss: 3 draw: 3 } minPlayers: 6 /* minimum amount of players to start */ maxPlayers: 60 /* maximum amount of players */ minTeamPlayers: 6 /* minimum amount of team members required for a team (party or guild) to join */ delay_var: "Flavius_BG_Tick" /* npc variable name that will store the delay for this match */ maxDuration: 30 /* maximum duration in minutes, if reached game ends and highest score wins (or calls a draw if scores are equal) */ },{ name: "KVM (Level 80 and up)" //must match the name in client files event: "KvM03_BG::OnPlayerListReady" minLevel: 80 maxLevel: 150 reward: {/* amount of badges awarded on each case */ win: 5 loss: 1 draw: 1 } minPlayers: 4 /* minimum amount of players to start */ maxPlayers: 60 /* maximum amount of players */ minTeamPlayers: 5 /* minimum amount of team members required for a team (party or guild) to join */ delay_var: "KVM_BG_Tick" /* npc variable name that will store the delay for this match */ maxDuration: 30 /* maximum duration in minutes, if reached game ends and highest score wins (or calls a draw if scores are equal) */ },{ name: "KVM (Level 60~79)" //must match the name in client files event: "KvM03_BG::OnPlayerListReady" minLevel: 60 maxLevel: 79 reward: {/* amount of badges awarded on each case */ win: 2 loss: 0 draw: 1 } minPlayers: 4 /* minimum amount of players to start */ maxPlayers: 60 /* maximum amount of players */ minTeamPlayers: 5 /* minimum amount of team members required for a team (party or guild) to join */ delay_var: "KVM_BG_Tick" /* npc variable name that will store the delay for this match */ maxDuration: 30 /* maximum duration in minutes, if reached game ends and highest score wins (or calls a draw if scores are equal) */ },{ name: "KVM (Level 59 and below)" //must match the name in client files event: "KvM03_BG::OnPlayerListReady" minLevel: 1 maxLevel: 59 reward: {/* amount of badges awarded on each case */ win: 1 loss: 0 draw: 0 } minPlayers: 4 /* minimum amount of players to start */ maxPlayers: 60 /* maximum amount of players */ minTeamPlayers: 5 /* minimum amount of team members required for a team (party or guild) to join */ delay_var: "KVM_BG_Tick" /* npc variable name that will store the delay for this match */ maxDuration: 30 /* maximum duration in minutes, if reached game ends and highest score wins (or calls a draw if scores are equal) */ } )})
  2. Upvote
    rafoka reacted to GreenBox in multiple map-server support   
    1. Introduction
    I feel like we need this, as I don't have anything to do this month, I'll dedicate it to Hercules <3
    Our inter server communication is very buggy and exploitable, mainly when we put a second zone server in the game.
    I'll use this topic to manage TODOs and discuss about the implementation design.
     
    2. Implementation Steps
    Create a standard way of defining "classes": COBJ https://github.com/HerculesWS/Hercules/commit/5e018af1749be4b64e0c0bdf77d412eaa82dae57 Rewrite Inter code using COBJ Implement session_data synchronization between zones

    3. Further Work
    Rewrite already existing code to use COBJ Optimize inter server communication

    Branch: https://github.com/HerculesWS/Hercules/tree/zones
    Documentation: https://drive.google.com/#folders/0B1C53TZ4rjH7d3FXakhjeHRpZzQ
     
    ~in progress~
     
    * Moved to public section so we can take user input
  3. Upvote
    rafoka reacted to Jguy in rAthena devs/staff/members on Hercules   
    Hello,
     
    While we do not mind that rAthena developers, staff members and regular members register an account, post or send PM's on our forums, we do not take kindly to 'rAthena is better because x y and z' posts, or anything promoting rAthena as a superior emulator because of such and such. There is no such post on rAthena made by a Hercules staff member about Hercules and we intend to keep it that way, we would appreciate the same respect.
     
    Those who do not follow this simple clause listed above will have their post(s) deleted and/or hidden from view. Repeat offenders will be suspended from our forum with no further warnings or post manipulation.
     
    We do not appreciate, nor welcome drama here. While criticism is welcome in the form of 'why doesn't Hercules have such and such a feature', drama and belittling a project (hercules or not) will not be tolerated. This is a collaboration, not a drama infested 12 year old's contest.
     
    Thank you.
  4. Upvote
    rafoka reacted to Ind in Hercules Renewal: Phase Two   
    Hercules Renewal: Phase Two
    Hello~! - What?!
    "but phase one isn't complete yet!"its alright, we have been able to manage parallel projects and goals, we surely can take care of this one too and effort required on this one is pretty much less than on phase one "So whats this phase two about?"one of my favorite things: user friendliness Goal: user-friendliness
    This aims at rewriting all of our server-client packet building, making it much more user friendly to modify and add new ones. We'll be starting with map server <- -> client (clif.c) and then will move to char server <- -> client and later login server <- -> client Before
    void clif_authok(struct map_session_data *sd) { #if PACKETVER < 20080102     const int cmd = 0x73; #else     const int cmd = 0x2eb; #endif     int fd = sd->fd;     WFIFOHEAD(fd,packet_len(cmd));     WFIFOW(fd, 0) = cmd;     WFIFOL(fd, 2) = gettick();     WFIFOPOS(fd, 6, sd->bl.x, sd->bl.y, sd->ud.dir);     WFIFOB(fd, 9) = 5; // ignored     WFIFOB(fd,10) = 5; // ignored #if PACKETVER >= 20080102     WFIFOW(fd,11) = sd->user_font; #endif     WFIFOSET(fd,packet_len(cmd)); } After
    void clif_authok(struct map_session_data *sd) {     struct packet_authok pack;          pack.PacketType = authokType;     pack.startTime = gettick();     pack.PosDir[0] = sd->bl.x;     pack.PosDir[1] = sd->bl.y;     pack.PosDir[2] = sd->ud.dir;     pack.xSize = 5; //not used     pack.ySize = 5; //not used #if PACKETVER >= 20080102     pack.font = sd->user_font; #endif          clif->send(pack,sd->fd,blabla,SELF); } Special Thanks
    To Yommy for bringing this up!
  5. Upvote
    rafoka reacted to Ind in Introducing Hercules' Stress Test Server   
    Introducing Hercules' Stress Test Server
    Hello~!
     
    The "Stress" Part
    Over 1.000 IndAI units (equivalent to +1k online players) will be in the server playing 24/7, farming, going to pvp, doing woe, playing battlegrounds, doing anything a player does, this will create a perfect scenario for us to debug and test Hercules.
     
    The Development Benefits
    We'll be able to keep track of performance usage 24/7, making us able to detect whenever a update increases a server's usage, allowing us to further optimise said update in order to take the processing down. With the AI characters doing stuff non-stop 24/7 we'll be able to identify and fix any crashes existent. Hercules will gain a super stability boost thanks to this. How to connect / Moving in and out
    This is the fun part.
    No new clients, and no sclient/clientinfo/blablabla edits will be required. get to the test server by typing '@hercules warp', test whatever you like, and go back to your server with '@hercules leave'. This technology *might* also be employed in the future by us to create hercules-hosted inter-server events.
     
    Entirely Secure
    The only data your server will pass to our test server upon warp is the name of the character (and maybe hairstyle vals).
    The test server is unable to modify (or even access) any data on your server, it is entirely secure and damage-free.
     
    Unique to Hercules
    The ability to connect through your ordinary client will be made possible by our custom server hosted over at herc.ws, the code won't be made public.
     
    Coming
    I felt inspired to write about this feature, which is why this announce is out before the feature itself.
    This is one of the features to be powered by our Hercules Plugin Manager and will be made public once the HPM implementation reaches the level capable of sustaining it.

    FAQ
    what if i dont want my players to go to the test server?@hercules is a command like any other, you can restrict access by groups.conf (by default only gms will be able to use it) what if i dont have a test server to use as a gateway to the hercules stress test server?we will also provide clients for those who don't have/want to use a server as the gateway
  6. Upvote
    rafoka reacted to Ind in Introducing Hercules' Map Zone Database   
    Introducing Hercules' Map Zone Database
    Hello~! - What?!
    1st, it is a merge from item_noequip.txt and skill_nocast_db.txt functionality. 2nd, it is a major improvement on what these features did in both performance and usability. map_zone_db.txt format sample
    {     name: "My Zone"     inherit: ( "My Other Zone" )     disabled_skills: {         AL_HEAL: "PLAYER | MONSTER | ELEMENTAL"         AL_TELEPORT: "MONSTER"         MG_FIREBOLT: "NONE"         //MG_NAPALMBEAT: "PLAYER"         //ID11: "PLAYER"     }     disabled_items: {         Assumptio_5_Scroll: false         //Apple: true         //ID501: true     }     mapflags: (         "adjust_skill_damage    MG_FIREBOLT    250",         "adjust_unit_duration    PR_SANCTUARY    50"     )     /* "command:min-group-lv-to-override" e.g. "heal: 70" */     disabled_commands: {         //Example Below makes @heal be used in maps within this zone only by those group lv 70 and above         //heal: 70     }     skill_damage_cap: {         //Exemple Below caps firebolt damage in maps within this zone to a maximum 50 damage,         // (depends on HMAP_ZONE_DAMAGE_CAP_TYPE in src/config/core.h)         // when cast vs players and monsters.         //MG_COLDBOLT: (50,"PLAYER | MONSTER")     } } Notes on the format
    In disabled_skills the var following the name (: "PLAYER | MONSTER | HOMUN | MERCENARY | ELEMENTAL | PET | CLONE | MOB_BOSS") is what allows a zone to know what unit types should have this skill disabled. In the sample above, for example, in My Zone, player, monster and elemental unit types are unable to cast heal, while only monsters are unable to cast teleport. this variable may also be used to ignore skills from inheritance, for example if My Other Zone disabled a number of skills, including MG_FIREBOLT, in My Zone all of them will be disabled as well, except for MG_FIREBOLT since it is set as NONE. In disabled_items the var following the name (: true or : false) is what allows a zone to override what it inherited, for example if My Other Zone disables a number of items, including Assumptio_5_Scroll, in My Zone all of them will be disabled as well, except Assumptio_5_Scroll since it is as false. A zone may enforce an unlimited number of mapflags on all its maps, by using this sample all maps under My Zone will have Fire Bolt damage increased by 2.5x and Sanctuary will have its duration halved. A unlimited number of maps may be linked to a specific zone through a mapflag '<map name><tab>mapflag<tab>zone<tab><zone name>' Changes The mf_restrict (restrict) was dropped. item_noequip.txt and skill_nocast_db.txt were dropped, replaced by map_zone_db.txt. setmapflag script command was modified to support the new zones. @mapinfo was modified to support the new zones, also modified the formatting and made it include the amount of vendings. Improvements As opposed to item_noequip.txt and skill_nocast_db.txt, map_zone_db.txt supports an unlimited number of zones. map_zone_db.txt implementation surpasses the ones from item_noequip.txt and skill_nocast_db.txt, making item equipping (pc_useitem/status_calc_pc) and skill using (previously skillnotok, now status_check_skilluse) processing much faster and efficient. @mapinfo performance was improved (was doing chat room dbmap lookups without even checking if player was on the map in question) Special Thanks to Muad_Dib <3. to lighta for discussing the feature with me and helping design the unit-based restrictions on skills to Bahmut and Emistry for ideas on how to format the file. to kyeme for feature ideas. Links~! Commit Commit 2 (update) Map Zone Database File
  7. Upvote
    rafoka reacted to Ind in Hercules Renewal   
    Starting today we'll be going throughout all of our source code to modify how functions are called. so what?
    Benefit
    With this new implementation chances to have custom source modifications conflict when you update hercules will be drastically reduced. How? Instead of modifying existing functions users will be able to create a new version of them elsewhere, e.g. in a custom file, and have it replace the original one. How? very simple.
    battle->check_target = my_new_check_target_function; PluginsThis change opens the possibility for a new plugin implementation in the future.
    Project Vision
    We understand this move will conflict with some points in our project vision, we'll be modifying it soon.
    More
    We want Hercules to stand out, with that in mind we've been planning features exclusive to Hercules, features other projects won't be able to merge. And how is that even possible? features that will integrate with our forum is one example of them. For example a feature capable of automatically looking for new updates in scripts/modifications downloaded from our upcoming downloads section.
×
×
  • Create New...

Important Information

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