Jump to content

pan

Community Contributors
  • Content Count

    355
  • Joined

  • Last visited

  • Days Won

    13

Reputation Activity

  1. Upvote
    pan got a reaction from JulioCF in É possível restringir o acesso a um mapa mediante o uso de um equipamento específico (ou lista de equipamentos)?   
    Não precisa nem usar OnTouch só o OnPCLoadMapEvent + a mapflag loadevent que já dá para fazer todas as checagens com um getequipid c:
    OnPCLoadMapEvent: if(getequipid(EQI_HEAD_TOP) != .id_capacete) warp "prontera",150,150; end;OnInit: set .id_capacete, algum_id; end;nome_mapa mapflag loadevent // Só com essa mapflag o OnPCLoadMapEvent será habilitado no mapaEDIT:Adicionei uma descrição do getequipid para melhorar um pouquinho a resposta
  2. Upvote
    pan got a reaction from JulioCF in Erros no map-serv   
    E se não me engano ainda a estrutura do brAthena é diferente da do Hercules, mas parece que você está tentando utilizar algumas status changes que não existem no seu emulador.
    Você também tentou utilizar um sprite inexistente em um npcUm mapflag que não é suportado pelo brA (parece)Em algum script você tentou criar duas chat rooms em um npc só, o que não é possível, antes de fazer outra é sempre necessário deletar a primeiraMuitos scripts estão executando sem nenhum jogador anexado, e utilizando funções que dependem disso.São erros bem básicos de script... Da próxima vez que for usar esse fórum esteja utilizando Hercules, não temos como adivinhar o que o brA suporta ou deixa de suportar.
  3. Upvote
    pan got a reaction from theos851 in [Hexed E data.grf]   
    Quais configurações de diff você está usando? Se estiver com o 'read data folder first' tudo que estiver na sua pasta data sobrepujará os arquivos dos grfs, por exemplo se tem um clientinfo.xml na pasta é ele que será lido e não o da grf.
    Esse PACKETVER é igual a versão de seu hexed? Se não for você deve muda-lo e recompilar ou então seu emulador não se comportará corretamente com alguns packets.
  4. Upvote
    pan got a reaction from telles0808 in Spawn and Save NPC positions   
    It's doable, but using the client as a text editor would be awful... If you're having trouble to position a npc in the map just go to that place and type /where it'll give you your coordinates in-game. I'm not sure if you're aware of but there's an atcommand called @reloadscript.
  5. Upvote
    pan got a reaction from telles0808 in É possível utilizar skills via servidor para efeitos em NPCs?   
    Da sempre para você utilizar um padrão de OnTouch no npc e algum efeito da lista do doc/effect_list.txt, todas as skills estão computadas ali.
    Se não me engano algum desses efeitos deve tornar isso possível:
    102. Hammerfall183. Self Destruction241. Violent Gale (Visual Effect)432. Solar, Lunar and Stellar Perception (Visual Effect)Para usar o Ontouch:<map name>,<x>,<y>,<facing>%TAB%script%TAB%<NPC Name>%TAB%<sprite id>,<triggerX>,<triggerY>,{<code>}Os triggers que definem quais serão as dimensões da área em que o script será ativado. O X e o Y definem a distância do npc até as linhas das bordas do polígono que será formado, é como se o NPC estivesse no ponto (0,0) de um plano cartesiano e o tamanho dos quadrantes seria definido pelos triggers. Então se você definisse 2 e 2 você teria quatro quadrantes em torno de seu NPC sendo 2x2 cada um, além das linhas que definem o plano (que nesse caso são contadas também ao contrário da matemática), totalizando em uma área de 5x5.Por exemplo se eles forem 3 e 3, uma área de 7x7 será passível a ativação de seu OnTouch.

     
    EDIT: A sugestão do EvilPuncker falando do NPC_EARTHQUAKE é melhor que a minha dos efeitos... Acho que dará mais certo
    EDIT2: Com base nessa resposta eu reescrevi o artigo do wiki, acho que lá está mais completa a descrição, mas está em inglês: http://herc.ws/wiki/OnTouch
  6. Upvote
    pan reacted to Yommy in RO2 Client Source Code <3   
    RO2 Client source codes
    https://mega.co.nz/#!V9VTgR7R!b2XpJnTVvs_Ps_OkuX1eDElPf7N85aXih4StuIJ8Omk
     
    and the Saga server emu
    https://mega.co.nz/#!1w0nwCDL!MpQTbSfrAhcTBnyy4pi1XTw29BgTUcadD7LoSe3ANhk
     
     
    let me know if you find some goodies
  7. Upvote
    pan reacted to Ai4rei in DATA/GRF comparer   
    GUI or console?
  8. Upvote
    pan reacted to evilpuncker in Do not count @at as online player   
    I'm here to suggest a config se we can choose if we want to add them (@at players) to the online list (count), that is pretty useful (well, IMO it is since I've thought about this for years already lol but never proposed anything about it ), I hope someone agree with me
  9. Upvote
    pan got a reaction from JulioCF in PvP Master Ultimate   
    Tem que mexer nas tabelas a sintaxe padrão do MySQL não aceita mais TYPE no lugar de ENGINE desde a 5.0, então substitua todos os
    TYPE=MyISAM;porENGINE=MyISAM;Dei uma lida nas inserções e criações de tabelas copiei e modifiquei os problemas: http://pastebin.com/kDD6Lqke tenta utilizar essas queries para fazer as tabelas do PvpMaster e veja se funciona.Não se esqueça de modificar:
    set $@sound,3; Paraset $@sound,1;Se você não tiver os arquivos na sua pasta wav ou os sons podem dar gravity no seu client. Ah e não se esqueça de mudar a linha que tem "Announce" para "announce" o parser do Hercules é sensível à caixa (alta ou baixa). Não testei nada disso, mas espero que funcione
  10. Upvote
    pan got a reaction from Paramore~* in PvP Master Ultimate   
    Tem que mexer nas tabelas a sintaxe padrão do MySQL não aceita mais TYPE no lugar de ENGINE desde a 5.0, então substitua todos os
    TYPE=MyISAM;porENGINE=MyISAM;Dei uma lida nas inserções e criações de tabelas copiei e modifiquei os problemas: http://pastebin.com/kDD6Lqke tenta utilizar essas queries para fazer as tabelas do PvpMaster e veja se funciona.Não se esqueça de modificar:
    set $@sound,3; Paraset $@sound,1;Se você não tiver os arquivos na sua pasta wav ou os sons podem dar gravity no seu client. Ah e não se esqueça de mudar a linha que tem "Announce" para "announce" o parser do Hercules é sensível à caixa (alta ou baixa). Não testei nada disso, mas espero que funcione
  11. Upvote
    pan reacted to Ind in int functions behaving like void functions   
    yup, there are also many whose return value is irrelevant (e.g. timers), we haven't prioritised this kind of cleanup though (we usually fix those we pass by)
  12. Upvote
    pan reacted to evilpuncker in Kagerou Skills   
    use latest version of hercules and report every skill bug here
  13. Upvote
    pan reacted to Haru in Item DB file structure overhaul   
    Item DB file structure overhaul
     
    Hello~! Uguu~?!
    We noticed that the Item Database file format, unchanged for years, is less than optimal (read: terrible)
    The file is really hard to read (is it the fifteenth or the sixteenth zero? No wait, that line has an extra comma!!) Whenever you merge an update, if you had a customized entry, you're sure to encounter large conflicts that won't be trivial to solve How do we fix it?
    We're switching to a brand new, modern, file format, making use of the libconfig library we're already using for other configuration files.
    It uses libconfig. This means the parser is more solid and, perhaps not faster, but surely easier to maintain, with simpler code. And the file format is something you're already used to, since it's the same as many other configuration files we use! Empty fields and the long sequences of those hard to count commas are gone! You just specify the fields you need, and the others can be completely skipped. The item_db2 entries can be left incomplete and set to inherit the original item_db entry. If you have a custom script for your Knife[3], you can just write the script in your item_db, and let it read the other values from the item_db, so that if we update them, you get the update automatically Item scripts can be split into several lines, so they can made easier to read, especially the long ones. We can finally add more fields (to support new features) to the file at any time, easily and without having to edit all the lines (or force you to edit all the lines of your custom item_db2)! Pre-Renewal and Renewal Item databases now use the same format. This also means that you can make use of the min/max level feature in both renewal and pre-renewal (of course, pre-renewal servers will ignore the Matk field, if you specify it, since it's meaningless there) What does it look like?
     
    Each entry follows this structure:
    {     // =================== Mandatory fields ===============================     Id: ID                        (int)     AegisName: "Aegis_Name"       (string, optional if Inherit: true)     Name: "Item Name"             (string, optional if Inherit: true)     // =================== Optional fields ================================     Type: Item Type               (int, defaults to 3 = etc item)     Buy: Buy Price                (int, defaults to Sell * 2)     Sell: Sell Price              (int, defaults to Buy / 2)     Weight: Item Weight           (int, defaults to 0)     Atk: Attack                   (int, defaults to 0)     Matk: Magical Attack          (int, defaults to 0, ignored in pre-re)     Def: Defense                  (int, defaults to 0)     Range: Attack Range           (int, defaults to 0)     Slots: Slots                  (int, defaults to 0)     Job: Job mask                 (int, defaults to all jobs = 0xFFFFFFFF)     Upper: Upper mask             (int, defaults to any = 0x3f)     Gender: Gender                (int, defaults to both = 2)     Loc: Equip location           (int, required value for equipment)     WeaponLv: Weapon Level        (int, defaults to 0)     EquipLv: Equip required level (int, defaults to 0)     EquipLv: [min, max]           (alternative syntax with min / max level)     Refine: Refineable            (boolean, defaults to true)     View: View ID                 (int, defaults to 0)     Script: <"         Script         (it can be multi-line)     ">     OnEquipScript: <" OnEquip Script (can also be multi-line) ">     OnUnequipScript: <" OnUnequip Script (can also be multi-line) ">     // =================== Optional fields (item_db2 only) ================     Inherit: true/false           (boolean, if true, inherit the values                                   that weren't specified, from item_db.conf,                                   else override it and use default values) }, Here's a Red Potion in the old format:
    501,Red_Potion,Red Potion,0,50,,70,,,,,0xFFFFFFFF,7,2,,,,,,{ itemheal rand(45,65),0; },{},{} And here's the same Red Potion in the new format:
    {     Id: 501     AegisName: "Red_Potion"     Name: "Red Potion"     Type: 0     Buy: 50     Weight: 70     Script: <" itemheal rand(45,65),0; "> }, Not convinced yet it's easier to read? Okay, let's try a Poison Bottle:
    678,Poison_Bottle,Poison Bottle,2,5000,,100,,,,,0xFFFFFFFF,7,2,,,,,,{ if(Class==Job_Assassin_Cross) { sc_start SC_DPOISON,60000,0; sc_start SC_ATTHASTE_INFINITY,60000,0; } else percentheal -100,-100; },{},{} changes to:
    {     Id: 678     AegisName: "Poison_Bottle"     Name: "Poison Bottle"     Type: 2     Buy: 5000     Weight: 100     Script: <"         if(Class==Job_Assassin_Cross) {             sc_start SC_DPOISON,60000,0;             sc_start SC_ATTHASTE_INFINITY,60000,0;         }         else percentheal -100,-100;     "> }, Better, isn't it!? Let's now try a Jellopy:
    909,Jellopy,Jellopy,3,6,,10,,,,,,,,,,,,,,{},{},{} Count the commas! Did I miss any? An extra comma you say? No, I don't want to count them, thanks...
    {     Id: 909     AegisName: "Jellopy"     Name: "Jellopy"     Buy: 6     Weight: 10 }, Not even a comma!
    Now, help me read what this item does?
    13307,Krieger_Huuma_Shuriken1,Glorious Shuriken,4,20,,0,55,,1,0,0x02000000,7,2,34,4,80,1,22,{ bonus2 bAddRace,RC_DemiHuman,95; bonus2 bIgnoreDefRate,RC_DemiHuman,20; bonus bMatkRate,15; autobonus "{ bonus2 bSkillAtk,NJ_HUUMA,100; bonus2 bSkillAtk,NJ_ISSEN,100; }",50,10000; bonus bUnbreakableWeapon,0; if(getrefine()>5) { bonus2 bAddRace,RC_DemiHuman,(getrefine()-3)*(getrefine()-3); bonus2 bIgnoreDefRate,RC_DemiHuman,5; } if(getrefine()>8) { bonus5 bAutoSpellOnSkill,NJ_ISSEN,AL_HEAL,10,1000,1; bonus4 bAutoSpellOnSkill,NJ_HUUMA,NPC_CRITICALWOUND,2,200; } },{},{} {     Id: 13307     AegisName: "Krieger_Huuma_Shuriken1"     Name: "Glorious Shuriken"     Type: 4     Buy: 20     Atk: 55     Range: 1     Job: 0x02000000     Loc: 34     WeaponLv: 4     EquipLv: 80     View: 22     Script: <"         bonus2 bAddRace,RC_DemiHuman,95;         bonus2 bIgnoreDefRate,RC_DemiHuman,20;         bonus bMatkRate,15;         autobonus "{ bonus2 bSkillAtk,NJ_HUUMA,100; bonus2 bSkillAtk,NJ_ISSEN,100; }",50,10000;         bonus bUnbreakableWeapon,0;         if(getrefine()>5) {             bonus2 bAddRace,RC_DemiHuman,(getrefine()-3)*(getrefine()-3);             bonus2 bIgnoreDefRate,RC_DemiHuman,5;         }         if(getrefine()>8) {             bonus5 bAutoSpellOnSkill,NJ_ISSEN,AL_HEAL,10,1000,1;             bonus4 bAutoSpellOnSkill,NJ_HUUMA,NPC_CRITICALWOUND,2,200;         }     "> }, Which one did you find easier to read? Old or new format?
     
    Want to see an example that specifies both min and max levels? Here you go:
    {     Id: 2819     AegisName: "Swordman_Manual"     Name: "Swordman Manual"     Type: 5     Buy: 0     Weight: 100     Job: 0x00000001     Upper: 47     Loc: 136     EquipLv: [1, 12]     Refine: false     Script: <"         bonus bMaxSP,100;         skill SM_BASH,1;         skill SM_PROVOKE,1;         skill SM_MAGNUM,1;     "> }, Okay, one last example. Let's try to make an item_db2 entry for a Pupa Card that gives a bonus of 1000 HP rather than just 700.
    {     Id: 4003     Inherit: true     Script: <" bonus bMaxHP,1000; "> }, Done. No need to rewrite the name, location, prices... those are already in the item_db!
     
    But... I have several custom items, do I have to manually convert all of them...?
     
    Of course you do! No, I'm kidding, don't hate me
     
    It's true that you need to convert your item database to the new format, but we can do it for you!
    Go to http://haru.ws/hercules/itemdbconverter/ and paste (or upload) your item_db2.txt (or even your item_db.txt if you have custom entries there), press the Convert button, wait a few seconds and you're done! It's already converted for you. Easy, isn't it? Don't trust us? No, no, we don't need your custom items, you can sleep safe... But if you still don't want to paste anything on a website... well, we have provided the source code of the converter script! It's in the 'tools' folder of the Hercules repository. All you need is a Perl interpreter (and if you're running Linux or Mac OS, on either your server or your own computer, it's almost certain that you already have that). All you have to do is run it (example: perl tools/itemdbconverter.pl < db/item_db2.txt > db/item_db2.conf), and your item database will be converted in a split second! What if I was using SQL item databases?
     
    Well... Then you won't have to worry about the txt databases, unless you were creating the items in txt, then converting them to sql (if you're not doing this, maybe you should consider it, you know? It's easier to create and manage them in txt even if you use the sql version!)
     
    If you were converting your custom item databases from the txt version to sql through the db2sql plugin, there are good news for you! We just updated the plugin, and now it's able to create a .sql script rather than just inserting the entries into your database. This means that you can create the SQL entries in your own computer, without even needing a database (just a copy of Hercules), without risking to slow down your server, and then upload them whenever you want.
     
    And if you're relying on the .sql scripts we provide... well, there are still good news for you! Outdated item_db.sql files are a thing of the past now: those scripts will get updated automatically after every commit by our HerculesWS API bot, exactly like the HPM Hooks!
     
    As a final note, now the pre-re and re databases share the same structure in SQL as well! no more column mismatch if you're trying to import into your Renewal server an item that was meant for pre-renewal.
     
    If you have data already imported to your item_db2 SQL table, it'll be updated to the new table format through the regular upgrade sql mechanism (just run the provided script in the sql-files/upgrades folder). Please note that the script requires MySQL 5.0 or newer -- if you're still on MySQL 4.0, please open it in a text editor, read the comments and run the provided queries manually.
     
    I have this event item entry that came with an old script I downloaded...
     
    No worries, you can get it converted. Use the same script (or the provided web page) you'd use to convert an entire item database, it'll work just fine even for an item or two!
     
    Special thanks
    To Ind, for bringing up the idea and pushing it forward until it was implemented. And for his awesome work on the HerculesWS API and database converter plugin. To Yommy, for the original idea, and for some invaluable help finalizing the actual database format. Links~u!
    Main commit. Removed redundant item_db2_re.sql (now both have the same structure). db2sql plugin update. item_db2 inheritance. item_db2 SQL upgrade script.
  14. Upvote
    pan reacted to Ind in Hercules 1st 2014 MegaPatch   
    Hercules: 1st 2014 MEGAPATCH
    Helloooo! Starting 2014 with a boom, yet another outstanding patch from Hercules! Patch Item #1: Scripting Level UP
    Char and account variables overhaul They're no longer limited to #define ACCOUNT/GLOBAL_REG_NUM, they're now limitless Their storage capabilities have received a colossal improvement, each numeric variable now uses at least 1/10 the memory it did previously, and we achieved it while increasing speed, simply outstanding as expected from us. Thanks to their quantity no longer being limited, char and account variables now support arrays, i.e. setarray #accreg[y],...; Saving and loading procedures have been improved outstandingly! for instance, previously, if you had 100 char regs but only one had been modified or deleted, map server would need to send all of them and char server would have to re-insert all of them; now only modified or deleted ones are saving, increasing saving speed of both map and char server procedures and decreasing inter-server bandwidth by dinosaur steps. Magnificent Array Improvement (to all variable types) Size limit modified from 127 to ...2 billion! Speed of countless array operations have been improved thanks to new array handling, e.g. whereas previously upon deleting any array it'd set its 127 possible values to 0 (regardless of how many values it actually had) now it only deletes as many members as it possesses getarraysize (the-oh-misleading-function since it returns the arrays' highest index) has been sped up as well thanks to this, and it no longer wastes script stack room on every interaction And the futureThis improvement has open way for many other amazing features, for example, Haruna has designed a foreach implementation for scripting among some other useful enhancements Global account variable handling redesign To clarify, this is that ancient type used on multiple-char-server setups, ##varname, which are present in all servers an accounts logs into, as opposed to #varname which, while account-wide, are considered 'local' to a char server. Saving and loading have been modified to match char/local-acc variable new design, on its own it already is a major speed boost and bandwidth saver, however, it has also improved login servers overall processing speed, thanks to its processing no longer being attached to ordinary account handling, this means that all operations that required login server to use an accounts data (i.e. login/pincode change/ban/block/etca) have been sped up, and use less memory. '.', '.@' and ''' variables write operation speed up trying to write ''' variables outside instances will now print warnings instead of silently doing nothing runtime read/write operations of global/temporary(@) char variables, as well as account variables, have been considerably sped up, whereas previously it'd run a str lookup to find a match for read/write it now uses the variable id, furthermore it now relies on DBMaps to handle the lookup (whereas previously it was a normal loop). Database tables overhaulWe've analysed global reg data storage and we've decided that it not only is a memory waste, it is a processing one as well due to how int and str variables share the same storage, we've analysed global reg data for a number of large servers and have identified most variables are numbers, by a outstanding majority, with that in mind, this patch introduces 6 tables that will improve this drastically. You'll notice this patch's SQL upgrade file will take care of this, and thus migrate the data properly into the new tables. Special Thanks To:
    Haruna ! <3 wouldn't have gotten half of it done if it weren't for Haru, thank you so much sensei! jaBote, for proposing it! Emistry Yommy Streusel Patch Item #2: @autotrade Persistency
    Also known as: @at merchants survive server crashes/restart, as soon as the server starts again they're re-spawned. May be disabled on src/config/core.h by commenting out AUTOTRADE_PERSISTENCY Special Thanks To:
    Haruna! Michieru, this feature wouldn't be out now if it weren't for him, lets all thank him! Dekamaster/Nightroad for helping me on this features original design, 3-4 years ago. Thank you master <3! Link'u!
    Commit Upgrade files #1 (Autotrade) #2 (Scripting Level UP)
  15. Upvote
    pan got a reaction from Mumbles in countitem loop   
    Have you changed your
    getarraysize(.item[0])togetarraysize(.item)?What happens when you run your script?
  16. Upvote
    pan got a reaction from GM.PiXeL in Soul Link Modification   
    Everything is working now, I corrected my other post as well adding those changes in the knight snippet, the first one was very poorly coded, I did it in a hurry...
    Regards
  17. Upvote
    pan got a reaction from GM.PiXeL in Soul Link Modification   
    Haven't tested those mods, but they built without any errors.
    Regarding adding one soul skill to blacksmiths you can only mod your databases and it should work, but of course KN_CHARGEATK will stop being a quest skill and'll only work when a character is linked even when he is a knight... I've tried making some changes in the source-code to bypass this issue, but it seems that if the skill is not sent to the client with 0x8 as info it won't be activated when someone is linked. So I bypassed using a quite "unorthodox" way, it's not neat code as I don't like to force the client to do anything, but it works. I think the other modifications worked as they are fairly simple to make, so I haven't tested them in-game just the one that's complex.
    Open src/map/status.c and find:
    case SC_RAISINGDRAGON: sce->val2 = st->max_hp / 100;// Officially tested its 1%hp drain. [Jobbie] break;Add below: case SC_SOULLINK: // This is _not_ the best way to do that ): if( (sd->class_&MAPID_UPPERMASK) == MAPID_BLACKSMITH ) pc->skill(sd, KN_CHARGEATK, 1, 0); break;Find: case ITEMID_ORC_LOAD_CARD: clif->sc_end(&sd->bl, sd->bl.id, SELF, SI_MVPCARD_ORCLORD); break; } } break;Add below: case SC_SOULLINK: // This is _not_ the best way to do that ): if(/* pc->checkskill(sd, KN_CHARGEATK) && */(sd->class_&MAPID_UPPERMASK) == MAPID_BLACKSMITH) pc->skill(sd, KN_CHARGEATK, 0, 0); break;Open src/map/skill.c and find:Search for:
    if( require.weapon && !pc_check_weapontype(sd,require.weapon) ) { clif->skill_fail(sd,skill_id,USESKILL_FAIL_THIS_WEAPON,0); return 0; }Replace it with: // If linked, knights are able to use parrying with one handed swords (type 2) if( require.weapon && !pc_check_weapontype(sd,require.weapon) && !( skill_id == LK_PARRYING && sd->sc.data[SC_SOULLINK] && pc_check_weapontype(sd,1<<2) )) { clif->skill_fail(sd,skill_id,USESKILL_FAIL_THIS_WEAPON,0); return 0; }Find (again): if( require.weapon && !pc_check_weapontype(sd,require.weapon) ) { clif->skill_fail(sd,skill_id,USESKILL_FAIL_THIS_WEAPON,0); return 0; }Replace with: if( require.weapon && !pc_check_weapontype(sd,require.weapon) && !( skill_id == LK_PARRYING && sd->sc.data[SC_SOULLINK] && pc_check_weapontype(sd,1<<2) )) { clif->skill_fail(sd,skill_id,USESKILL_FAIL_THIS_WEAPON,0); return 0; }Open src/map/battle.c and search for: case SM_BASH: case MS_BASH: skillratio += 30 * skill_lv;Add below: // If linked, super novices will have SM_BASH's ratio increased by 50% if( sd->sc.data[SC_SOULLINK] && sd->sc.data[SC_SOULLINK]->val2 == SL_SUPERNOVICE ) skillratio += 50;Search for: case MO_FINGEROFFENSIVE: skillratio+= 50 * skill_lv;Add below: // If linked, monks will have MO_FINGEROFFENSIVE's ratio increased by 15% if( sd->sc.data[SC_SOULLINK] && sd->sc.data[SC_SOULLINK]->val2 == SL_MONK ) skillratio += 15;Search for: case CG_ARROWVULCAN: skillratio += 100 + 100 * skill_lv;Add below: // If linked, bards/dancers will have CG_ARROWVULCAN's damage increased by 15% if( sd->sc.data[SC_SOULLINK] && sd->sc.data[SC_SOULLINK]->val2 == SL_BARDDANCER ) skillratio += 15;Finally find: if (md.damage < 0 || md.damage > INT_MAX>>1) //Overflow prevention, will anyone whine if I cap it to a few billion? //Not capped to INT_MAX to give some room for further damage increase.Add above: // If linked, alchemists will have 15% increase in CR_ACIDDEMONSTRATION's damage if( sd->sc.data[SC_SOULLINK] && sd->sc.data[SC_SOULLINK]->val2 == SL_ALCHEMIST ) md.damage += md.damage*15/100;Open src/map/pc.c and search for: for (i = 0; i < ARRAYLENGTH(scw_list); i++) { // Skills requiring specific weapon types if( scw_list[i] == SC_DANCING && !battle_config.dancing_weaponswitch_fix ) continue;Add below: // If linked, knights are able to use parrying with one handed swords (type 2) if( scw_list[i] == SC_PARRYING && sd->sc.data[SC_SOULLINK] && sd->sc.data[SC_SOULLINK]->val2 == SL_KNIGHT && (!pc_check_weapontype(sd,skill->get_weapontype(status->sc2skill(scw_list[i]))) && !pc_check_weapontype(sd,2) ) ) { status_change_end(&sd->bl, scw_list[i], INVALID_TIMER); continue; // We don't want to fall under the next check }Save all files and build your map-server, test in-game and if you're having any trouble just post and I'll try to answer as quickly as possible c: 
    Regards.
     
    EDIT:
    Corrected mistake in knight related snippet
     
    EDIT2:
    Corrected error as reported in: http://herc.ws/board/topic/4360-custom-link-mods/
  18. Upvote
    pan reacted to Nameless2you in countitem loop   
    It should be able to, else it would error.
    http://upaste.me/8c97c0 ran on upaste without any issues.
     
    You missed a set in your second case ^^ ".@i++"
  19. Upvote
    pan reacted to AnnieRuru in Dynamic menu   
    prontera,150,180,5 script jfhskdfjs 100,{ if ( BaseLevel < 5 ) { mes "only level 5 or above"; close; } mes "asdasd"; next; for ( .@i = 0; .@i < 19; .@i++ ) { if ( countitem( 501 + .@i ) ) { .@menu$ = .@menu$ + "Option "+( .@i +1 )+"!:"; .@option[.@c] = .@i; .@itemid[.@c] = 501 + .@i; .@c++; } } .@s = select( .@menu$ ) -1; mes "selected option no: "+( .@option[.@s] +1 ); mes getitemname( .@itemid[.@s] ); close;}
  20. Upvote
    pan reacted to Olrox in [Showcase] Sword Art Online - Start City   
    1. Concept
     
     
    These days I've been working on a plenty amount of maps. Mind you, I don't show all the requests I have everytime, I kinda try to only show the ones I consider have something new to offer.
     
    Here comes a request I had, that is about a recreation of the starting city of Sword Art Online (SAO)
     

    Some screens of the reference. The screen #1 shows the idea of a circular map, with a square shaped water area on center.
     
    The screen #2 the main plaza and one structure made of gold or bronze I guess, that has a clock on it. The #3 shows the main idea of the houses, main roads, colors, nature eviroment. Last, the screen #4 shows the black mansion, a more detailed view of the arcs aswell.
     
     
    2. Features
    [*]this ended up by becoming a big map, x225 size. [*]A lot of work around modeling from scratch (the arcs, the black structure, the clock structure, those houses, fountains, etc) however, this is the first time I tried to improve more in the texturizing to fit a more RO style.

     
    3. Video *watch in HD 1080p*
     


     4. Screenshots
     
    Some screenshots. There isn't a particular order or purpose on the screens here, just some overview screenshots and maybe some others that has to do with close ups.
     
     

     

     

     

     

     

     

  21. Upvote
    pan reacted to mybitch in New Costumes   
    Will O Wisp and Decoration of Music
     
    Hi Herc,

    Because I'm so old school and don't know how to open pull request I'll upload the patch for the 2 new costumes. Hope this will help
     
    new costumes.patch
     
    Also, uploaded the files needed for the client
     
    data.rar
     
    preview

    new costumes.patch
  22. Upvote
    pan got a reaction from Angelmelody in Absorb spiritball stop asura in some map   
    The mod that's in the topic that you posted doesn't work at all :x So I've made some changes to fit what you want...  
    Built successfully and tested in-game c: If you want any map to have asuraabsorb just set the mapflag and it'll work.
     
    Happy holidays
  23. Upvote
    pan reacted to Ind in Christmas Patch! Gift'o   
    Gift'o! From Hercules, to your server!
    We wish you happy holidays, and thank you for your support.
    May the New Year bring you happiness and peace.
     
    2013-12-23c Client Support
    Thanks to Yommy and Rytech! NPC Market Support A new type of NPC Shop where item availability is limited, for example you can have a vender start with 50x Red Potions and set mechanics for the red potions to be refurbished (for example could be as simple as a OnClock, where Red Potions are refurbished every y hour, or elaborate e.g. be connected with a game quest where players need to help a merchant npc get to the shop in order for it to be resupplied) Available as a NPC Trader subset (details will follow) @costume Oktoberfest NPC Trader
    A whole different way to set up shops, they're easier to read and flexible to customize. Previous format still supported (in the scenario we drop the previous we'll provide a conversion tool) To begin with, 'trader' is a phony name, its only purpose is to sign the parser that 'this npc will open the shop when clicked'. the trader npc is in fact a 'script' type (and thus script types can create/manipulate trader shops, and open them with the help of openshop()). Normal Zeny Shop moc_ruins,93,53,2    trader    Item Collector#moc1    4_M_03,{ OnInit:     sellitem Scell;     sellitem Monster's_Feed;     sellitem Animal's_Skin;     sellitem Bill_Of_Birds; } Custom Shop Script has full control over currency, which allows for scripts to use anything, from quests, to items, variables, etca. For Example: prontera,153,152,1    trader    TestCustom2    952,{ OnInit:     tradertype(NST_CUSTOM);     sellitem Red_Potion;     end;   /* allows currency to be Red_Potion */ OnCountFunds:     setcurrency(countitem(Red_Potion));     end;   /* receives @price (total cost) */ OnPayFunds:     if( countitem(Red_Potion) < @price )         end;     delitem Red_Potion,@price;     purchaseok();     end; } NPC Market ShopThis is the type I mentioned earlier, where item availability is limited prontera,150,160,6    trader    HaiMarket    952,{ OnInit:     tradertype(NST_MARKET);     sellitem Red_Potion,-1,50;     end;   OnClock0000://resupplies red potions on midnight OnMyResupply://instead of midnight, a event could trigger HaiMarket::OnMyResupply     if( shopcount(Red_Potion) < 50 )         sellitem Red_Potion,-1,50;     end; }The quantity data is disaster-safe, I mean it is persistent to @reloadscript and server restarts (If there were 39 Red Potions on sale upon restart/reloadscript, it continues to be 39 instead of resetting back to 50). 7 script commands to help control (documentation for all of them is present in script_commands.txt): openshop,sellitem,stopselling,setcurrency,tradertype,purchaseok,shopcount Trader Design by
    Yommy Haru jaBote mkbu95 Gepard Emistry Ind Special Thanks To
    Haru Yommy JaBote Muad_Dib Link'u~!
    Commit: https://github.com/HerculesWS/Hercules/commit/cf19b26d50ac96111e44c33a80afd1f1ea935cec NPC Trader Samples: https://raw.github.com/herculesWS/Hercules/master/doc/sample/npc_trader_sample.txt (Upcoming) GM Interface for Cash Shop Control

    Found that on the new client, support is being worked on (Data thanks to Yommy <3).
  24. Upvote
    pan reacted to Yommy in 2013-12-23c kRO Client, Merry Christmas <3   
    Here is my christmas gift to Hercules. I wish you all have an awesome holiday and nice time with family.
    I have included an xdiff file, but I recommend (when he manage to fix the multiple grf) you to use NEMO Client Patcher made by Neo.

    You need to add the PacketShuffle stuff into src/map/packets.h, just follow the files pattern,
    then edit src/common/mmo.h and change the PACKETVER to 20131223
    do a recompile and the client will be able to connect.


    2013-12-23cRagexe_v2.zip 2.5 MB
    https://mega.co.nz/#!Yt1DQSQC!TWk1AQU8sTXpP_t57Uowpne2-ZYSPhTB2_4WT55PFcY


    2013-12-23cRagexe_v2.xdiff 102 KB
    https://mega.co.nz/#!ogUUFLQJ!CPbCaX29tJLe_JOoeQd1oR24ug8WL83B0z_2T1XTXfQ


    This is a very new client, and it will probably require resources from the latest kRO updates.
    so kRO will need to be fully updated, i recommend to use RO Patcher Lite made by Ai4rei.


    Special Thanks to Rytech and Ind


    See you in 2014.
    Yommy
     
    Ps
    Neo posted.an update here
    http://herc.ws/board/topic/3609-2013-12-23c-kro-client-merry-christmas-3/?p=24183
     
    Thank you
     
    Ps:
    Neo posted some update here 
  25. Upvote
    pan reacted to Ai4rei in RO Credentials (ROCred), v1.10.0 - last updated 2017/12/31   
    RO Credentials


    About
    Simple and tiny client launcher+login. Has no prerequisites and runs on all Windows versions. Known Issues
    [aavc] This tool is not safe for computers running Avast Anti-Virus. Download
    binary, reference source Q & A Is it customizable?
    Yes. How?
    With resource editing tools, such as ResourceHacker. All text and icons can be customized. Settings can be edited in an INI file, instructions on how to do that are provided in the example files together with the launcher. What is "reference source"?
    You cannot compile it (unless you provide the missing components), but see what functionality the latest binary contains. I want it to be xyz.exe, but it does not read the INI file. Why?
    You have to match the INI name to the EXE name. rocred.exe -> rocred.ini mytest.exe -> mytest.ini  
    How can I embed an INI file into the EXE?
    Add the INI file as RCDATA resource named CONFIG with ResourceHacker. How do I use background skinning?
    Create a file named bgskin.bmp (magenta #ff00ff is considered transparent). You can also embed the file as BITMAP resource with the name BGSKIN. Window size is adjusted to the bitmap size, position of controls must be set in the INI. Buttons can be skinned as well, see the INI for names.
    Can I add custom buttons, if so, how many?
    Yes, see the INI template for details. There is no defined limit on how many, the only constraints are available memory, GDI resources and INI size limit on some platforms. By the way, custom buttons can be skinned as well. Why does the client not auto-login when I press "Start" / Why do I have to login twice?
    The client must be 2010-08-04aRagexeRE or newer and must not have the "Restore Login Window" patch and should have the "Use SSO Login Packet" patch.
    This work is licensed under a Creative Commons Attribution-Noncommercial 3.0 Unported License.
     
×
×
  • Create New...

Important Information

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