Jump to content

Ind

Retired Staff
  • Content Count

    1655
  • Joined

  • Last visited

  • Days Won

    131

Reputation Activity

  1. Upvote
    Ind got a reaction from Aly in @reloadmapcache   
    oh clever o-o indeed that'd be much much much much much...much more efficient
  2. Upvote
    Ind got a reaction from Soraya M. Aguiar in Regras (em Portugues)   
    Agradecimento especial ao mkbu95 por traduzir
    (Jan 24th 0'13). Editado em (Mar 16th 0'16): corrigido formatação.


    Enquanto nós tentamos não tornar o fórum uma prisão federal, há algumas regras que apreciaríamos que fossem seguidas à risca para tornar sua experiência no Hercules a melhor possível. Todos os membros são esperados a seguir estas regras ou punições variando de um alerta verbal, aumento da barra de alerta, restrição moderativa (um moderador terá que aprovar seus posts), suspensão de postar (poderá ver o fórum mas não postar ou criar tópicos) e suspensão do fórum (não pode ver o fórum nem postar) poderão ocorrer.
     
     
    Orientações Gerais na Criação de Tópicos Tópicos não devem conter SPAM. Spam são posts de uma palavra, posts sem relação ao tópico, ou posts duplas/triplas sem motivo. Responder na seção incorreta também não será tolerado. Posts na seção Off Topic serão tratadas como exceção. Tópicos duplicados não são permitidos. Crie seu tópico uma única vez, na seção correta. Caso você crie um tópico acidentalmente na seção errada, use o botão Report para denunciar seu próprio tópico, nossos moderadores irão cuidar disto para você. Tópicos nas seções de suporte podem receber posts seguidos com maiores informações não menos do que 24 horas depois do seu último post; se você possuir novas informações em menos de 24 horas, edite seu tópico. Reviver tópicos mortos é proibido ao menos que haja algo construtivo para acrescentar ao tópico. Caso contrário, não o faça, afinal o tópico está morto por um motivo. Se um link estiver quebrado, envie uma Mensagem Pessoal (PM) ao membro que a enviou originalmente, não responda o tópico dizendo que 'o link está quebrado', pois será considerado spam.  
    Assinaturas e Avatares
    Assinaturas não devem exceder 650 píxeis em largura e 150 píxeis em altura no TOTAL. Isto inclui imagens e textos. Assinaturas não devem conter links para warez, esquemas para ganhar dinheiro, nudez ou qualquer coisa de caráter obsceno. Avatares não devem possuir natureza imprópria, e.x.: nudez ou qualquer coisa de caráter obsceno. Assinaturas e Avatares podem ser removidos por um moderador dependendo de seu conteúdo. Entenda que todas as regras do fórum também se aplicam a sua assinatura, seu avatar e seu título.  
    Idiomas
    O uso do inglês é obrigatório em qualquer seção em inglês. Caso tenha problemas em se comunicar em inglês, utilize a área internacional dedicada a um idioma de sua compreensão.  
    Regras Gerais de Etiqueta do Fórum
    Não faça respostas ou tópicos todo em maiusculo, nem use um número excessivo de emoticons, ou qualquer coisa que torne a leitura do tópico ou resposta difícil ou incômoda de ser realizada. Abuso de qualquer tipo não será tolerado. "Trollar" e "Flamear" outros usuários também não é permitido. Criar uma nova conta se a sua atual conta estiver banida não é permitido. Ao fazer isto a sua conta será banida instantaneamente. Links direcionando para pornografia, nudez, warez ou esquemas para ganhar dinheiro não são permitidos. Não faça o trabalho de um moderador se você não for um. Utilize o botão Report (disponível no canto inferior direito de cada resposta). Divulgação de qualquer tipo (exceto na seção de Divulgação e as seções de Divulgação das seções das áreas internacionais) é proibida. Pedir dinheiro (esmolar) via Mensagem Pessoal (PM) ou no fórum não será tolerada. Não edite seu post ou tópico para remover sua dúvida quando seu problema for resolvido.  
    Área para Serviços Pagos
    Novos tópicos na área Paid Services são invisíveis até que haja aprovação por um administrador.
    Membros só poderão possuir assinaturas com serviços pagos ou tópicos e posts feitos no fórum caso o tópico seja aprovado na seção Paid Services. A seção Paid Services é para única e exclusiva divulgação de seus Serviços Pagos. Não faça divulgação de seu servidor (Ragnarok Online). Uma exceção será aberta caso você queira usar um link para um servidor como referência de trabalho (design que você criou, ferramentas, etc). Não se aplica a serviços de modificações na source; apenas use o referido código. Todos os Serviços Pagos sérios devem possuir HTTPS em partes sensíveis da webpage (incluindo, mas não limitado a: formulários que coletam senhas, informações pessoais, e informações de pagamento). Todos os provedores de hospedagem devem possuir um webpage onde os usuários possam requerir serviços de você. Se você estiver oferecendo modificações na source ou em scripts, ou serviços sítio/gráficos, o sítio é opcional.  
    Que tipos de serviço são permitidos?
    Hospedagem de Servidores (VPS, webhosting) Serviços de Modificações na Source ou em Scripts Serviços Gráficos (mapas, sprites, web design, etc.) Serviços de Programação de Sites  
     
    Estas regras estão sujeitas à mudanças.
    A quebra de uma regra irá levar a uma infração/alerta. Três infrações resultam em banimento temporário e cinco irão resultar em banimento permanente. Dependendo das circunstâncias, um banimento permanente pode ser dado a qualquer momento. Você pode apelar sobre qualquer ação tomada por um Moderador ou Moderador Global contra você por Mensagem Pessoal (PM). Você dever ter uma razão válida e um link para o que você está apelando. Não envie uma mensagem ao Moderador que realizou a ação contra você, é provável que você se involva em maiores problemas.  
    As regras acima são enfasadas pela Equipe Hercules, respeite a Equipe e suas decisões.
  3. Upvote
    Ind got a reaction from Jedzkie in Skill ID Processing Overhaul   
    Skill ID Processing Overhaul
    Hello~! - What?!
    Yet another super-ultra-mega improvement, brought to you by Hercules. Improvement
    This is a monster improvement, map server's memory usage was dropped by no less than 38MB Processing on a number of areas that rely on this have improved, much faster e.g. skill tree calculation. This also prepares the game server to receive the new skills that have id of 5k or higher (e.g. Dragon Breath Water) Changes
    This changes how skills are stored during runtime for players, if you have any modifications on that you will want to update them before getting this update in your server. mob_max_skilllvl config was dropped, this limitation no longer exists (e.g. if you make a monster cast lvl 1000 jupitel thunder it'll do 1k hits) reintroduced, accidentally removed (misunderstood function) Special Thanks
    to Rytech, he brought up the topic of skill id processing which led me to do this Links~!
    Commit
  4. Upvote
    Ind got a reaction from Wolfeh 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
  5. Upvote
    Ind got a reaction from IndieRO 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
  6. Upvote
    Ind got a reaction from Jedzkie 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
    Ind got a reaction from Yoh Asakura 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
  8. Upvote
    Ind got a reaction from Yoh Asakura in Official Item Group/Package/Chain   
    Official Item Group/Package/Chain
     
    Overview
    Implementation of the official 'Item Packages', 'Item Group' redesign, 'Item Chain' implementation. item_group.conf : Overview / Sample
    The file was redesigned to make it attend the official equivalent's and to be more flexible, there are no more limitations on the number of groups or on how many items a group may contain, these limitations were lifted. Old_Card_Album: ( // <= <Container_Item_Name>     ("Poring_Card",8), // <= entries can be either ( "<Item_Name>", <Repeat_Count> )     "Sting_Card" // <= or "<Item_Name>" (no repeat) ) item_packages.conf : Overview / Sample
    The file was created to meet the requirements of the official 'Package Item' feature, there are no limitations on how many packages you may add either. Gift_Bundle: { // <= <Container_Item_Name>     White_Slim_Potion: {// <= <Entry_Item_Name>         Random: false //May be omit when not false, signs whether a item is random or should be given whenever the packageis consumed.         Count: 30 //May be omit when not higher than 1, stands for how many <White_Slim_Potion>     }     Muffler_: {         Expire: 2 //May be omit when none, signs how many hours this item will last (makes a rental item)         Announce: True //May be omit when false, signs whether to relay a special item obtain announce when this item comes out of the package.         Rate: 50 //May be omit when 'Random' is false, from 1 to 10000 (0.01% - 100%)         Named: True //May be omit when false, signs whether the item should have the owner's name in it.     } } item_chain.conf : Overview
    Officially this thing is called groups too but I found it'd be confuse to have 2 group files with entirely different functionality, named chains because the items in it are chained to each other, this file fixes quite a few stuff, for example before this patch having BS_FINDINGORE drop something was almost twice as rare than on official servers, also fixes Jewel_Sword, Gaia_Sword, Blazzer_Card, Tengu_Card and Bogy_Horn. New
    'packageitem' script command, it has only 1 param which is optional, for the package item id, when not provided it'll try to use the item id from the item it is being used from (if called from an item script), it runs a item package and grants the items accordingly to the attached player. Changes
    '#define MAX_RANDITEM' and '#define MAX_ITEMGROUP' were dropped, these limitations no longer exist and the server may support an unlimited number of item groups. 'item_findingore.txt' was dropped, its contents moved into 'item_chain.conf' 'item_bluebox.txt', 'item_cardalbum.txt', 'item_giftbox.txt', 'item_misc.txt', 'item_violetbox.txt' and 'item_group_db.txt' were dropped, its contents moved were updated and moved into 'item_group.conf' 'bonus2 bAddItemHealRate' changed; as group ids no longer exist. 'bAddMonsterDropItemGroup' was renamed to 'bAddMonsterDropChainItem' and changed from bonus 2/3 to bonus (0)/2 as the rate param was dropped because item chains have their own individual rates. Item names are now automatically made constants, so they may be used in any scripts throughout the server e.g. 'getitem Apple,1;', this works for all items except those having ' in their names (e.g. doesn't work for 'Monster's_Feed'). 'getrandgroupitem' and 'grouprandomitem' were modified since group ids no longer exist, item ids should be used instead (or constants as the item above mentions), e.g. 'getrandgroupitem Old_Blue_Box,1;' or 'getrandgroupitem 603,1;' Dropped conf/battle/drops.conf 'finding_ore_rate' for it has no place in the official formula (if you'd like to modify finding ore rates, edit them via item_chain.conf) Special Thanks
    Beret and hemagx for bringing this change up to discussion, and the data they contributed into it Yommy and Muad_Dib for all the new item data implemented in this commit (a hell of stuff! THANK YOU BOTH <3) Streusel for all the over 100 new items he converted Gepard for the group item repeat info Masao for his debugging of the monster spawn issue Mysterious for updating the documentation Link~u!
    Commit
  9. Upvote
    Ind got a reaction from Jedzkie 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
  10. Upvote
    Ind got a reaction from Tio Akima 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
  11. Upvote
    Ind got a reaction from Prourhildr in Hercules WPE Free - June 14th Patch   
    Hercules WPE Free - June 14th Patch
     
    Made Possible Thanks to Yommy
    We're only able to provide you with this feature thanks to Yommy, Thank you very much! WPE Free - Official Packet Obfuscation Support Packet spamming is no longer possible by normal means, with this feature each packet sent has its own id, so spamming (by sending the same packet more than once) is impossible. For this feature to function you MUST NOT use the 'disable packet obfuscation' client diff. conf/battle/client.conf
    // Whether to enable the official packet obfuscation support (good vs WPE)// 0: disabled// 1: optional (not recommended) -- identifies whether it is required// 2: enabled (recommended)packet_obfuscation: <value>
    Currently functional for over 44 clients (Thanks to Shakto!): 2011-08-17 - 2015-05-13 Special Thanks to Yommy ..Yommy ...The all-awesome Yommy~! Thank you again! Shakto for the 44 PacketKeys! Also - SQL DB Updates & DB2SQL For logical and performance reasons we've modified the structure of the renewal item db tables, atk and matk no longer share the same column, equip_level was replaced by equip_level_min so that we could add equip_level_max which is required by new renewal items. Note however that because of the previous atk:matk format, it was not possible to provide a upgrade file that would save the matk data Item script errors from sql dbs used to point to a inexistent line number, it was modified to display the item id instead. This update has shrunk the sizes of the item db .sql files, making it possible for tools such as phpmyadmin to parse them, once again. With this patch we're also introducing a new official plugin, db2sql, its purpose is to make it easier for our developers to keep the .sql db files up to date (but you may use that to convert your own if you so desire, too), to use this plugin (when it is enabled in plugins.conf) type server tools db2sql in the console. Link~u! Commit 1 Commit 2
  12. Upvote
    Ind got a reaction from Senos in Hercules Ultimate Localization Design   
    .@md_name$ = "Endless Tower";would have to become.@md_name$ = _("Endless Tower");
  13. Upvote
    Ind got a reaction from vitorvhm3 in Erro ao atacar monstros (Mapas Novos)   
    atualizada nao necessariamente resolve o problema, tem que ser o lua que corresponde a versão do seu client (se for velho pode ter coisa faltando; se for novo pode chamar funções que o seu cliente nao suporta, etca).
  14. Upvote
    Ind got a reaction from dhaisuke in Suggestion :D   
    Implemented in https://github.com/HerculesWS/Hercules/commit/36d0c789633da074f7e1a6add901278af513ad4b
  15. Upvote
    Ind got a reaction from Samuel in Homunculus AI Improvement?   
    wooo. I forgot to update this =x. Through the data Yommy harvested on November 29th, my findings:
    - The official ID ranges are dumb: mob/homun/merc/elem/skill-units share the 1-50k range (his script caps the range at 42k, thats wrong btw) aegis sucky design is able to maintain that, thus why officials run on so many servers, because the 50k range can be offset into multiple zones, on our design (thousand times better (and efficient), must I emphasise) it would limit the amount of such units (e.g. default settings have 47k mobs, by using the official range map servers would have little room for more or custom mobs, nevermind homuns/skill-units/etca)
    - Thanks to yommy again I was able to determine no client functionality is lost by us using custom ranges, the game clients do not rely on the ranges (have not for many years), instead it relies on objecttype -- this is used to determine what a unit is, not by its id.
    - Even though the ids are different, it doesn't mean the AI cannot be used (I was successful at getting it to work, with 6 edits, as I will demonstrate)
    -- all files that follow are located in his ./AI/USER_AI, do not mistake it for those in the ./AI/ folder.
    --- in AI_MAIN.lua
    ---- Find "if (v > MagicNumber2) then" change to "if (v >= MagicNumber2 and v <= MagicNumber3) then"
    ---- Find "if (v < MagicNumber) then" change to "if (v >= MagicNumber) then"
    ---- Find "elseif (v < MagicNumber) then" change to "elseif (v >= MagicNumber) then"
    --- in AzzyUtil.lua
    ---- Find "if (m < MagicNumber) then" change to "if (m >= MagicNumber) then"
    ---- Find "elseif (id > MagicNumber2) then" change to "elseif (id >= MagicNumber2 and id <= MagicNumber3) then"
    ---- Find "if (id>MagicNumber2) then" change to "if (id>=MagicNumber2 and id <= MagicNumber3) then"
    --- Lastly, in Defaults.lua
    ---- Find:
    MagicNumber =42000MagicNumber2 =100000Replace the chunk with:MagicNumber =110000000MagicNumber2 =2000000MagicNumber3 =100000000- Special Thanks to Yommy, Haru.
  16. Upvote
    Ind reacted to Haru in naviluagenerator not work on Hercules latest version version   
    The warnings you show don't seem to be a problem. The plugin should still compile.
     
    Line 150 and 155 are two lines that are the same as path.c in Hercules (and they cause a warning in your plugin because of different compiler settings -- you can disable sign comparison check warnings in your VS solution)
    Line 501, 566, 567, 568, 569, 570, 571 are recommending the use of a Microsoft-specific function instead of a standard function. For obvious reasons, we can't do that.
     
    You can either silence or ignore those warnings. The warnings we generally silence are:
    - 4018
    - 4100
    - 4800
    - 4996
    (or at the very least, 4018 and 4996 in this case).
     
    If there's any other issues that prevent the plugin from working correctly, please let me know.
  17. Upvote
    Ind reacted to Tokeiburu in [MAP] Size restrictions?   
    Short answer is : yes, the client supports larger maps, but you have to be careful when you make them!   2013-07-08 : Maximum map size : 1500 x 1500   2010-07-30 : Maximum map size : 1350 x 1350   These large maps take about 300 MB of memory, but I doubt people will go that high.   Apart from the client version, maps also have a limit on the number of "lightmap" references, which is 65536 (ushort). Each tile is associated with a lightmap. Let's assume you have a map of size 512 by 512, that would mean... Tiles Up = Width/2 * Height/2 = 256 * 256 = 65536 Maximum Tiles = 3 * Width/2 * Height/2 = 196608 (up, left and right) Lightmaps to fill = Maximum Tiles = 196608   That means that even a map of 512 by 512 can "break". If you don't use walls, then you only have 65536 max tiles and there are no issues in that case. You can reuse an existing lightmap (which gives you a much bigger margin to play with), but BrowEdit doesn't seem to support this when you recalculate the lightmaps (this is the common "Sanity error: lightmaps out of bounds" error people get).   Just for a quick comparison, the map schg_dun01 has 63854 lightmaps and it is 400 by 400 in size. The map has many lighting effects though and the complex background is what increases the amount so much.   Also, maps larger than 1350 require a minimal size of 80 MB (this is without lightmaps), which is unfortunately too much for cps.dll (the limit is around ~75 MB). I doubt this will be needed anyhow.   For further reference, these are the maps I've used to do my tests ingame (they do not have lightmaps for the reasons mentionned above) : http://www.mediafire.com/download/737b0u8dp9b6v3f/testmaps.grf   You could have maps of 2500 by 20, there are no problems with these for the client. I don't think BrowEdit is able to calculate quad trees which aren't in a square shape (I may be wrong on BrowEdit's capabilities though! I haven't tested with non-squared maps).
  18. Upvote
    Ind got a reaction from vBrenth in [MAP] Size restrictions?   
    I failed to figure on my own, does the client display any issues when utilizing a map greater than 512*512? I understand map server poses a restriction (which can be increased) for size purposes, but does the client impose any? knowing this would help me work on a feature for the herc.
    Thanks
  19. Like
    Ind got a reaction from Aruar in Hercules Ultimate Localization Design   
    Hercules Ultimate Localization Design
    Hello~! - What?!
    Servers are now able to run under any number of languages, without having any of the default files modified Designed by Haruna and Ind  
    Translating NPCs without editing them
    By launching map server with the --generate-translations param a .pot (.po template) file will be created with all of the servers translate-able strings (including all npc dialogue), this file can be edited in text mode or by utilising any .po editor (there are many out there; for a high range of OSes) A .po file does not need to be fully translated to be used, map server will know when loading the file, and will fallback to the hardcoded string in the npc files as necessary Users are able to change their language with the new @lang command, @lang controls what language users see in @commands (msg_txt stuff) as well as over npc dialogues map-server.conf has a new setting called default_language where server owners may specify which language should be used as a base When you have a new .po file you want map server to use, add it to db/translations.conf Easy to Maintain
    Since .po is a widely used format there are many tools that can help with merging for example Poedit, which easily consolidates a translated .po file with a newly generated .pot. For example when you have a translated .po and since it was created npc dialogs were added or modified all you have to do is launch map server to generate a new .pot, open your old .po in Poedit, go "Catalog -> Update from POT file" and it will insert the new translatable strings without touching your existing translations, it will also notify you of any "obsolete" strings that are in your .po file but that are no longer in use Script Command Macro
    Besides messages.conf, all the dialogue utilised by 'mes' and 'select' is included in the .pot automatically, this patch also introduces a mechanism for utilising strings outside of these commands, the script macro _() which can be employed just as if it were a script function, for example set .@status$,_("Available"); tells map server to export "Available" as a translate-able string when it is run with --generate-translations (when running map server normally the macro has no overhead during runtime) Special Thanks to
    Raizen and Roberto from Cronus, we would not have worked on this if it weren't for them Links~!
    Commit Editing Example
  20. Upvote
    Ind got a reaction from fogocalvoeua in Hercules Ultimate Localization Design   
    Hercules Ultimate Localization Design
    Hello~! - What?!
    Servers are now able to run under any number of languages, without having any of the default files modified Designed by Haruna and Ind  
    Translating NPCs without editing them
    By launching map server with the --generate-translations param a .pot (.po template) file will be created with all of the servers translate-able strings (including all npc dialogue), this file can be edited in text mode or by utilising any .po editor (there are many out there; for a high range of OSes) A .po file does not need to be fully translated to be used, map server will know when loading the file, and will fallback to the hardcoded string in the npc files as necessary Users are able to change their language with the new @lang command, @lang controls what language users see in @commands (msg_txt stuff) as well as over npc dialogues map-server.conf has a new setting called default_language where server owners may specify which language should be used as a base When you have a new .po file you want map server to use, add it to db/translations.conf Easy to Maintain
    Since .po is a widely used format there are many tools that can help with merging for example Poedit, which easily consolidates a translated .po file with a newly generated .pot. For example when you have a translated .po and since it was created npc dialogs were added or modified all you have to do is launch map server to generate a new .pot, open your old .po in Poedit, go "Catalog -> Update from POT file" and it will insert the new translatable strings without touching your existing translations, it will also notify you of any "obsolete" strings that are in your .po file but that are no longer in use Script Command Macro
    Besides messages.conf, all the dialogue utilised by 'mes' and 'select' is included in the .pot automatically, this patch also introduces a mechanism for utilising strings outside of these commands, the script macro _() which can be employed just as if it were a script function, for example set .@status$,_("Available"); tells map server to export "Available" as a translate-able string when it is run with --generate-translations (when running map server normally the macro has no overhead during runtime) Special Thanks to
    Raizen and Roberto from Cronus, we would not have worked on this if it weren't for them Links~!
    Commit Editing Example
  21. Upvote
    Ind got a reaction from Verno in Hercules Ultimate Localization Design   
    Hercules Ultimate Localization Design
    Hello~! - What?!
    Servers are now able to run under any number of languages, without having any of the default files modified Designed by Haruna and Ind  
    Translating NPCs without editing them
    By launching map server with the --generate-translations param a .pot (.po template) file will be created with all of the servers translate-able strings (including all npc dialogue), this file can be edited in text mode or by utilising any .po editor (there are many out there; for a high range of OSes) A .po file does not need to be fully translated to be used, map server will know when loading the file, and will fallback to the hardcoded string in the npc files as necessary Users are able to change their language with the new @lang command, @lang controls what language users see in @commands (msg_txt stuff) as well as over npc dialogues map-server.conf has a new setting called default_language where server owners may specify which language should be used as a base When you have a new .po file you want map server to use, add it to db/translations.conf Easy to Maintain
    Since .po is a widely used format there are many tools that can help with merging for example Poedit, which easily consolidates a translated .po file with a newly generated .pot. For example when you have a translated .po and since it was created npc dialogs were added or modified all you have to do is launch map server to generate a new .pot, open your old .po in Poedit, go "Catalog -> Update from POT file" and it will insert the new translatable strings without touching your existing translations, it will also notify you of any "obsolete" strings that are in your .po file but that are no longer in use Script Command Macro
    Besides messages.conf, all the dialogue utilised by 'mes' and 'select' is included in the .pot automatically, this patch also introduces a mechanism for utilising strings outside of these commands, the script macro _() which can be employed just as if it were a script function, for example set .@status$,_("Available"); tells map server to export "Available" as a translate-able string when it is run with --generate-translations (when running map server normally the macro has no overhead during runtime) Special Thanks to
    Raizen and Roberto from Cronus, we would not have worked on this if it weren't for them Links~!
    Commit Editing Example
  22. Upvote
    Ind got a reaction from Duzanjos in Hercules Ultimate Localization Design   
    Hercules Ultimate Localization Design
    Hello~! - What?!
    Servers are now able to run under any number of languages, without having any of the default files modified Designed by Haruna and Ind  
    Translating NPCs without editing them
    By launching map server with the --generate-translations param a .pot (.po template) file will be created with all of the servers translate-able strings (including all npc dialogue), this file can be edited in text mode or by utilising any .po editor (there are many out there; for a high range of OSes) A .po file does not need to be fully translated to be used, map server will know when loading the file, and will fallback to the hardcoded string in the npc files as necessary Users are able to change their language with the new @lang command, @lang controls what language users see in @commands (msg_txt stuff) as well as over npc dialogues map-server.conf has a new setting called default_language where server owners may specify which language should be used as a base When you have a new .po file you want map server to use, add it to db/translations.conf Easy to Maintain
    Since .po is a widely used format there are many tools that can help with merging for example Poedit, which easily consolidates a translated .po file with a newly generated .pot. For example when you have a translated .po and since it was created npc dialogs were added or modified all you have to do is launch map server to generate a new .pot, open your old .po in Poedit, go "Catalog -> Update from POT file" and it will insert the new translatable strings without touching your existing translations, it will also notify you of any "obsolete" strings that are in your .po file but that are no longer in use Script Command Macro
    Besides messages.conf, all the dialogue utilised by 'mes' and 'select' is included in the .pot automatically, this patch also introduces a mechanism for utilising strings outside of these commands, the script macro _() which can be employed just as if it were a script function, for example set .@status$,_("Available"); tells map server to export "Available" as a translate-able string when it is run with --generate-translations (when running map server normally the macro has no overhead during runtime) Special Thanks to
    Raizen and Roberto from Cronus, we would not have worked on this if it weren't for them Links~!
    Commit Editing Example
  23. Upvote
    Ind got a reaction from DoriTos Nacho in Hercules Ultimate Localization Design   
    Hercules Ultimate Localization Design
    Hello~! - What?!
    Servers are now able to run under any number of languages, without having any of the default files modified Designed by Haruna and Ind  
    Translating NPCs without editing them
    By launching map server with the --generate-translations param a .pot (.po template) file will be created with all of the servers translate-able strings (including all npc dialogue), this file can be edited in text mode or by utilising any .po editor (there are many out there; for a high range of OSes) A .po file does not need to be fully translated to be used, map server will know when loading the file, and will fallback to the hardcoded string in the npc files as necessary Users are able to change their language with the new @lang command, @lang controls what language users see in @commands (msg_txt stuff) as well as over npc dialogues map-server.conf has a new setting called default_language where server owners may specify which language should be used as a base When you have a new .po file you want map server to use, add it to db/translations.conf Easy to Maintain
    Since .po is a widely used format there are many tools that can help with merging for example Poedit, which easily consolidates a translated .po file with a newly generated .pot. For example when you have a translated .po and since it was created npc dialogs were added or modified all you have to do is launch map server to generate a new .pot, open your old .po in Poedit, go "Catalog -> Update from POT file" and it will insert the new translatable strings without touching your existing translations, it will also notify you of any "obsolete" strings that are in your .po file but that are no longer in use Script Command Macro
    Besides messages.conf, all the dialogue utilised by 'mes' and 'select' is included in the .pot automatically, this patch also introduces a mechanism for utilising strings outside of these commands, the script macro _() which can be employed just as if it were a script function, for example set .@status$,_("Available"); tells map server to export "Available" as a translate-able string when it is run with --generate-translations (when running map server normally the macro has no overhead during runtime) Special Thanks to
    Raizen and Roberto from Cronus, we would not have worked on this if it weren't for them Links~!
    Commit Editing Example
  24. Upvote
    Ind got a reaction from Senos in Hercules Ultimate Localization Design   
    Hercules Ultimate Localization Design
    Hello~! - What?!
    Servers are now able to run under any number of languages, without having any of the default files modified Designed by Haruna and Ind  
    Translating NPCs without editing them
    By launching map server with the --generate-translations param a .pot (.po template) file will be created with all of the servers translate-able strings (including all npc dialogue), this file can be edited in text mode or by utilising any .po editor (there are many out there; for a high range of OSes) A .po file does not need to be fully translated to be used, map server will know when loading the file, and will fallback to the hardcoded string in the npc files as necessary Users are able to change their language with the new @lang command, @lang controls what language users see in @commands (msg_txt stuff) as well as over npc dialogues map-server.conf has a new setting called default_language where server owners may specify which language should be used as a base When you have a new .po file you want map server to use, add it to db/translations.conf Easy to Maintain
    Since .po is a widely used format there are many tools that can help with merging for example Poedit, which easily consolidates a translated .po file with a newly generated .pot. For example when you have a translated .po and since it was created npc dialogs were added or modified all you have to do is launch map server to generate a new .pot, open your old .po in Poedit, go "Catalog -> Update from POT file" and it will insert the new translatable strings without touching your existing translations, it will also notify you of any "obsolete" strings that are in your .po file but that are no longer in use Script Command Macro
    Besides messages.conf, all the dialogue utilised by 'mes' and 'select' is included in the .pot automatically, this patch also introduces a mechanism for utilising strings outside of these commands, the script macro _() which can be employed just as if it were a script function, for example set .@status$,_("Available"); tells map server to export "Available" as a translate-able string when it is run with --generate-translations (when running map server normally the macro has no overhead during runtime) Special Thanks to
    Raizen and Roberto from Cronus, we would not have worked on this if it weren't for them Links~!
    Commit Editing Example
  25. Upvote
    Ind got a reaction from Nebraskka in Hercules Ultimate Localization Design   
    Hercules Ultimate Localization Design
    Hello~! - What?!
    Servers are now able to run under any number of languages, without having any of the default files modified Designed by Haruna and Ind  
    Translating NPCs without editing them
    By launching map server with the --generate-translations param a .pot (.po template) file will be created with all of the servers translate-able strings (including all npc dialogue), this file can be edited in text mode or by utilising any .po editor (there are many out there; for a high range of OSes) A .po file does not need to be fully translated to be used, map server will know when loading the file, and will fallback to the hardcoded string in the npc files as necessary Users are able to change their language with the new @lang command, @lang controls what language users see in @commands (msg_txt stuff) as well as over npc dialogues map-server.conf has a new setting called default_language where server owners may specify which language should be used as a base When you have a new .po file you want map server to use, add it to db/translations.conf Easy to Maintain
    Since .po is a widely used format there are many tools that can help with merging for example Poedit, which easily consolidates a translated .po file with a newly generated .pot. For example when you have a translated .po and since it was created npc dialogs were added or modified all you have to do is launch map server to generate a new .pot, open your old .po in Poedit, go "Catalog -> Update from POT file" and it will insert the new translatable strings without touching your existing translations, it will also notify you of any "obsolete" strings that are in your .po file but that are no longer in use Script Command Macro
    Besides messages.conf, all the dialogue utilised by 'mes' and 'select' is included in the .pot automatically, this patch also introduces a mechanism for utilising strings outside of these commands, the script macro _() which can be employed just as if it were a script function, for example set .@status$,_("Available"); tells map server to export "Available" as a translate-able string when it is run with --generate-translations (when running map server normally the macro has no overhead during runtime) Special Thanks to
    Raizen and Roberto from Cronus, we would not have worked on this if it weren't for them Links~!
    Commit Editing Example
×
×
  • Create New...

Important Information

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