Jump to content

Fou-lu

Members
  • Content Count

    144
  • Joined

  • Last visited

  • Days Won

    1

Reputation Activity

  1. Like
    Fou-lu got a reaction from Bluff in Bluff Mapping   
    Nice
  2. Like
    Fou-lu reacted to Bluff in Bluff Mapping   
    Hello Everyone 🖐️

    for those who are interested, I made a few maps and I am still working on others

    you can find all my work on my:

    🌐DISCORD 
    or here
    🛒 BLUFFSHOP
     
    I create videos to present my creations  :
    📽️BLUFF MAPPING

    Thank you to everyone who support my work 🔥
     




     
  3. Like
    Fou-lu reacted to 4144 in Remove transparency from map objects.   
    in game folder. this is brown or gray background rectangle image. in name should be word back
     
  4. Like
    Fou-lu reacted to 4144 in Remove transparency from map objects.   
    use this patch for hide empty space between buttons http://nemo.herc.ws/patches/SkipHiddenMenuButtons
    for reduce window size, edit background image size. i not remember how it named.
     
  5. Like
    Fou-lu reacted to 4144 in Remove transparency from map objects.   
    May be you already enabled this patch?http://nemo.herc.ws/patches/RestoreModelCulling
    Try disable this patch.
     
  6. Like
    Fou-lu reacted to sfosodkw2 in Where can I find a Complete Client?   
    https://rathena.org/board/topic/141200-froggo-rö-folder-everything-needed-to-run-the-latest-publicly-available-client/
  7. Upvote
    Fou-lu reacted to AnnieRuru in Change reading order of files.   
    so far I have never failed to convert anything into plugin
    mainly due to plugin allow function overload
    https://github.com/HerculesWS/Hercules/wiki/Hercules-Plugin-Manager
     
    although I still recommend using hooking instead of overloading as much as possible,
    as having 2 plugins overloading the same function might cause problems for your server
     
    EDIT: example of overload a function
    https://github.com/AnnieRuru/Release/blob/master/plugins/branch_displayname.c
  8. Upvote
    Fou-lu reacted to AnnieRuru in About dead / bloody branches   
    wait, I thought I answered this on rathena forum already ?
    https://rathena.org/board/topic/126009-deadbloody-branch-timer/
    same user name, I actually thought I helped a rathena member there
    if you come here and ask the same question again it means you are actually hercules user ?
     
    anyway hercules has plugin system that rathena don't, and rathena still hasn't implement plugin system yet, so here goes
    https://github.com/AnnieRuru/Release/blob/master/plugins/deadbranch_timerdelete/deadbranch_timerdelete.c
  9. Upvote
    Fou-lu reacted to meko in Google Translate Plugin   
    You can hook into the chat and whisper-related functions with a HPM plugin and then call the Google Cloud Translation API but this will be very costly because you have to translate every single message into the local language of every listening player so if you have a player speaking English and there's 50 players around them and they all use a different language you end up sending 50 translation requests to the API. You could do the translation client-side but you would have to build your google translate logic directly into the RO client. Keep in mind that this will also increase lag because you wait on API responses before displaying the message.
  10. Upvote
    Fou-lu reacted to meko in Google Translate Plugin   
    You'd want to do the translation offline (not on a live server, on-the-fly) using a HPM plugin (such as generate-translations) to generate your po files and then you would use a script (maybe in python, so you could use that python lib you linked) to call the google "cloud translation" api and translate your po file. You could also put both the po generator and translation routine in the same HPM plugin (using generate-translations as base and expanding from there)
  11. Upvote
    Fou-lu reacted to Like it~* in [Guia e orientação] Criando habilidades. PT-BR   
    Criando habilidades ou clonando-as   Introdução   Uma grande área onde os jogadores têm dificuldade é adicionar novas habilidades para a fonte e o cliente. Abaixo será documentado como implementar essas novas habilidades.   A habilidade   A habilidade que estaremos trabalhando é simples.  
    Nome: Earth Bolt Level Máx: 10 Tipo: Ativa Custo de SP: 20 + 5*SkillLV Alvo: 1 inimigo Tempo de conjuração: 2 seg Delay: 1 seg Duração: Instantânea Descrição: Causa dano mágico de elemento terra ao inimigo, conforme level da habilidade, a 150% MATK por hit. Basicamente, essa habilidade deve atingir 1 inimigo e lidar com 10 hits de 150% MATK, propriedade elemental da Terra e deve ser baseada em dano mágico.    
    Abra /src/map/skill.h Role para baixo até encontrar  
    EL_STONE_HAMMER, EL_ROCK_CRUSHER, EL_ROCK_CRUSHER_ATK, EL_STONE_RAIN,    
    Depois daqui é onde nós adicionamos quaisquer habilidades adicionais. É melhor dar às habilidades um ID personalizado para começar. Então, vamos adicionar a nossa habilidade "Earth Bolt". Depois disso, adicione MG_EARTHBOLT = 8443,    
    MG_ definição significa "Mago", você vai trabalhar para fora as siglas como você percorrer as habilidades. Definimos a base da habilidade. Como você pode ver, o id de habilidade é definido como '8443' desde Stone Elemental's Stone Rain é definido como 8442 (e é o última habilidade de jogador acessível).   Abra /src/map/skill.c   Esse arquivo é onde definimos as implementações de habilidades reais. Para habilidades de alvo único, todo o processamento dessa habilidade irá em skill_castend_damage_id (para habilidades prejudiciais) ou skill_castend_nodamage_id (para skills que não causam danos).   Habilidades baseadas em mágica ou mágia.   Como o Earth Bolt é baseado em danos, encontre a função skill_castend_damage_id e localize:  
        case AB_RENOVATIO:     case AB_HIGHNESSHEAL:     case AB_DUPLELIGHT_MAGIC:     case WM_METALICSOUND:     case MH_ERASER_CUTTER:     case KO_KAIHOU:    
    A razão pela qual estaremos colocando a case para Earth Bolt aqui é porque:    
           skill->attack(BF_MAGIC,src,src,bl,skill_id,skill_lv,tick,flag);    
    A definição BF_MAGIC significa que a habilidade é baseada em magia e deve ser calculada sob cálculos de batalha mágica. Assim, após a case NJ_HUUJIN adicionar:  
        case MG_EARTHBOLT:    
    Habilidades baseadas em armas   No caso de querer adicionar uma habilidade que é baseada em Arma, em vez de Magia, encontre:  
        case WM_GREAT_ECHO:     case GN_SLINGITEM_RANGEMELEEATK:     case KO_JYUMONJIKIRI:     case KO_SETSUDAN:     case GC_DARKCROW:     case LG_OVERBRAND_BRANDISH:     case LG_OVERBRAND:    
    E adicione a case depois disso. Se quiséssemos que o Earth Bolt fosse baseado em armas, ficaria assim:  
        case WM_GREAT_ECHO:     case GN_SLINGITEM_RANGEMELEEATK:     case KO_JYUMONJIKIRI:     case KO_SETSUDAN:     case GC_DARKCROW:     case LG_OVERBRAND_BRANDISH:     case LG_OVERBRAND:     case MG_EARTHBOLT:    
    No entanto, vamos manter a função Magic em vez disso.   Abra /src/map/battle.c   Nesta função, todos os cálculos de danos principais são realizados. E em funções separadas, as % modificadoras para as habilidades são armazenados. Portanto, para os nossos danos de 150%, adicionamos o extra de 50% (já que 100% é o padrão) na função apropriada. Ataques baseado em mágica Para ataques baseados em Magia, os modificadores são encontrados em battle_calc_magic_attack. Basta encontrar:  
    case NPC_EARTHQUAKE:     skillratio += 100 +100*skill_lv +100*(skill_lv/2);     break;    
    E adicione o modificador de danos abaixo. Como Earth Bolt é baseado em magia, nós adicionaremos-a aqui.  
        case MG_EARTHBOLT:         skillratio += 50;         break;    
    Isso agora significa que o Earth Bolt causará dano mágico de 150% MATK.   Átaques baseado em armas   Para ataques baseados em armas, os modificadores são encontrados em battle_calc_weapon_attack. Basta encontrar:  
        case NPC_VAMPIRE_GIFT:         skillratio += ((skill_lv-1)%5+1)*100;         break;    
    E adicione seu modificador de dano lá. Por exemplo, se o Earth Bolt fosse baseado em Weapon, acrescentaríamos:  
        case MG_EARTHBOLT:         skillratio += 50;         break;    
    O + = 50 significa simplesmente "Adicionar 50% ao 100%" para danos de ATK de 150%.   Suporte a banco de dados de habilidades   Tecnicamente falando, a base da habilidade está agora correta. Claro, se você quiser implementar habilidades mais complexas, há muito mais para isso. A seção separada será criada no futuro para isso. Mas, por enquanto, precisamos implementar as entradas do banco de dados de habilidades. Os arquivos abaixo podem ser encontrados em db / (pre / re) /. Apenas um de ambos (pre / re) precisa ser atualizado, é o qual você usa em seu servidor.   Nessa parte é sempre aconselhável que você tenha alguma habilidade escolhida para se utilizar como base, pois facilitará muito a criação e/ou clonagem de sua habilidade. Aqui há diferenças, então dependendo do emulador usado, cada forma será de um jeito, caso o seu emulador seja alguns dos abaixos, continue. Caso não, pule para a parte: ** p/ Hercules.   ** p/ rAthena, brAthena, Cronus.   Skill_db.txt   Para a nossa habilidade Earth Bolt, podemos agora digitar o seguinte: Estrutura:
    8443,5,8,1,2,0,0,10,1:2:3:4:5:6:7:8:9:10,yes,0,0,0,magic, 0, MG_EARTHBOLT, Earth Bolt    
    Isso define que: Earth Bolt tem um intervalo de 5 células, bate várias vezes, é elemento da Terra e alvos 1 inimigo. Ele pode ser interrompido, e é de dano de tipo mágico. A quantidade de acessos aumenta em 1 em cada nível, com um nível máximo de 10.   Skill_cast_db.txt   Para a nossa habilidade Earth Bolt, podemos agora digitar o seguinte: Estrutura:
    8443,2000,1,000,0,0,0    
    Isso define que: Earth Bolt tem um segundo tempo de ligação e um tempo de atraso de 1 segundo. Não há atraso de caminhada após o lançamento.   Skill_require_db.txt   Para o nosso Earth Bolt, podemos agora digitar o seguinte: Estrutura:
     
    8443,0,0,25: 30: 35: 40: 45: 50: 55: 60: 65: 70,0,0,0,0,0,0,0,0,0,0,0,0, 0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0    
    Isso define que: Earth Bolt requer 25 SP no nível 1, 30 SP no nível 2 .. 70 SP no nível 10. Pode ser lançado com qualquer arma, não requer nenhum estado e não requer nenhum item para ser consumido. =========================================================================== ** p/ Hercules.   Skill_db.txt  
     
     
     
    ===========================================================================   Skill_tree.txt   Esta parte do banco de dados não é necessária se não for lida por uma classe. No entanto, se você quiser que uma classe aprenda uma habilidade, você deve fazer uma entrada em skill_tree.txt. Um exemplo abaixo:
     
    MG_EARTHBOLT: { MaxLevel: 10 MG_FIREBOLT: 5 MG_LIGHTNINGBOLT: 5 }   Isso define que: Earth Bolt pode ser aprendido por Mago, tem um nível máximo de 10 (para esta classe), e requer habilidade MG_FIREBOLT no nível 5 e habilidade MG_LIGHTNINGBOLT no nível 5. Tecnicamente, estas são as partes geralmente utilizas com arquivos de banco de dados de habilidade. Há mais, mas isso ficará pra vocês explorarem.   Arquivos .lua e .lub   As seguintes implementações estão de acordo com a Revisão 228 do Projeto Lua (2012-05-23). A implementação é diferente entre muitas versões de cliente, mas geralmente há 2 implementações:   Sem arquivos skillinfoz   Em data/lua files/skillinfo/skilltreeview.lua encontre: {"MG_FIREWALL", 18; Pos = 19, MaxLv = 10, NeedSkillList = {6, 12}} Adicione a baixo:
    {"MG_EARTHBOLT",8443; Pos = 20, MaxLv = 10, NeedSkillList = {19,20}}  
    Com arquivos skillinfoz   Em skillid.lua encontre: ECLAGE_RECALL = 3035, Depois adicione:
    MG_EARTHBOLT = 8443, in data/lua files/skillinfo/skilldescript.lua localize:
    [SKID.MG_THUNDERSTORM] = { "Thunder Storm", "Max Level:^777777 10 ^000000", "Type:^777777 Offensive ^000000", "SP Cost:^777777 24 + 5*SkillLV ^000000", "Target:^777777 cell ^000000", "Range:^777777 9 cells ^000000", "Cast Time:^777777 1*SkillLV sec ^000000", "Cool Down:^777777 2 sec ^000000", "Duration:^777777 0.2*SkillLV sec ^000000", "Effect:^777777 Hits every Enemy in a 5x5 area around the targeted cell with 1 Wind Element Bolt per level at a rate of 1 bolt every 0.2 seconds. Each bolt does 0.8*MATK Wind element damage. ^000000", "[LV 1]^777777 1 Bolt ^000000", "[LV 2]^777777 2 Bolts ^000000", "[LV 3]^777777 3 Bolts ^000000", "[LV 4]^777777 4 Bolts ^000000", "[LV 5]^777777 5 Bolts ^000000", "[LV 6]^777777 6 Bolts ^000000", "[LV 7]^777777 7 Bolts ^000000", "[LV 8]^777777 8 Bolts ^000000", "[LV 9]^777777 9 Bolts ^000000", "[LV 10]^777777 10 Bolts ^000000", }, Depois adicione:
    [SKID.MG_EARTHBOLT] = { "Earth Bolt", "Max Level:^777777 10 ^000000" "Type:^77777 Active ^000000" "SP Cost:^777777 20 + 5*SkillLV ^000000" "Target:^777777 1 Enemy ^000000" "Cast Time:^777777 2 sec ^000000" "Cool Down:^777777 1 sec ^000000" "Duration:^777777 Instant ^000000" "Effect: ^777777 Deals SkillLV bolts of Earth magic damage to one enemy, at 150% MATK per hit.^000000", }, skilltreeview.lua mude:
    [JOBID.JT_MAGICIAN] = { [1] = SKID.MG_STONECURSE, [2] = SKID.MG_COLDBOLT, [3] = SKID.MG_LIGHTNINGBOLT, [4] = SKID.MG_NAPALMBEAT, [5] = SKID.MG_FIREBOLT, [6] = SKID.MG_SIGHT, [8] = SKID.MG_SRECOVERY, [9] = SKID.MG_FROSTDIVER, [10] = SKID.MG_THUNDERSTORM, [11] = SKID.MG_SOULSTRIKE, [12] = SKID.MG_FIREBALL, [13] = SKID.MG_ENERGYCOAT, [18] = SKID.MG_SAFETYWALL, [19] = SKID.MG_FIREWALL },  para:
    [JOBID.JT_MAGICIAN] = { [1] = SKID.MG_STONECURSE, [2] = SKID.MG_COLDBOLT, [3] = SKID.MG_LIGHTNINGBOLT, [4] = SKID.MG_NAPALMBEAT, [5] = SKID.MG_FIREBOLT, [6] = SKID.MG_SIGHT, [8] = SKID.MG_SRECOVERY, [9] = SKID.MG_FROSTDIVER, [10] = SKID.MG_THUNDERSTORM, [11] = SKID.MG_SOULSTRIKE, [12] = SKID.MG_FIREBALL, [13] = SKID.MG_ENERGYCOAT, [18] = SKID.MG_SAFETYWALL, [19] = SKID.MG_FIREWALL, [20] = SKID.MG_EARTHBOLT }, skillinfolist.lua Mude:
    [SKID.ECL_SEQUOIADUST] = { "ECL_SEQUOIADUST"; SkillName = "Sequoia Dust", MaxLv = 1, SpAmount = { 0 }, bSeperateLv = false, AttackRange = { 7 }, } Para:
    [SKID.ECL_SEQUOIADUST] = { "ECL_SEQUOIADUST"; SkillName = "Sequoia Dust", MaxLv = 1, SpAmount = { 0 }, bSeperateLv = false, AttackRange = { 7 }, }, [SKID.MG_EARTHBOLT] = { "MG_EARTHBOLT"; SkillName = "Earth Bolt", MaxLv = 10, SpAmount = { 25, 30, 35, 40, 45, 50, 55, 60, 65, 70 }, _NeedSkillList = { { SKID.MG_FIREBOLT, 5}, { SKID.MG_LIGHTNINGBOLT, 5} } Finalizando   Não se esqueça que você precisará de adicionar o arquivo Sprite e BMP apropriado para a habilidade. Use o nome MG_EARTHBOLT como o nome do arquivo em: data\texture\À¯ÀúÀÎÅÍÆäÀ̽º\item data\sprite\¾ÆÀÌÅÛ   Efeitos   Vá a src/map/skill.h, Procure a skill que deseja adicionar/editar o efeito:
     
            case WE_BABY:             if(sd) {                 struct map_session_data *f_sd = pc->get_father(sd);                 struct map_session_data *m_sd = pc->get_mother(sd);                 bool we_baby_parents = false;                 if(m_sd && check_distance_bl(bl,&m_sd->bl,AREA_SIZE)) {                     sc_start(src,&m_sd->bl,type,100,skill_lv,skill->get_time(skill_id,skill_lv));                     clif->specialeffect(&m_sd->bl,408,AREA);                     we_baby_parents = true;                 }     Aqui está sendo utilizado como exemplo a habilidade de convocação das classes bebês. Onde 408 é o efeito adicionado para que seja mostrado ao utilizar a skill. Para a sua habilidade customizada, como ela é uma habilidade nova, não há nenhum efeito, então você terá que adicioná-lo ao arquivo, seguindo de exemplo a mesma forma mostrada acima. Para saber a lista de todos os efeitos, basta utilizar doc/effect_list.txt.     Fontes e créditos   https://github.com/HerculesWS/ https://github.com/Cronus-Emulator/ https://github.com/brAthena/ https://github.com/rAthena/ http://forum.cronus-emulator.com/ https://forum.brathena.org/ http://herc.ws/wiki/Adding_new_skills http://herc.ws/ https://google.com/   Comentários   Decidi fazer esse tutorial pois percebi que ainda não há nenhum guia com esse assunto em PT-BR e havia uma grande demanda de pessoas procurando. Tinha dado uma olhada no Hercules e percebi que é um bom tutorial, mas ainda estava incompleto e bem desatualizado, então decidi usa-lo como base e também pensei, por que não criar um? Espero que esteja de boa compreensão, caso estiver faltando algo que eu esqueci ou que eu não saiba, por favor me informe para torná-lo o melhor possível. Estou aberto a sugestões e críticas construtivas. Façam um bom proveito 
  12. Upvote
    Fou-lu reacted to Sephus in Episode System   
    Yes you do (for developer positions). There is no fixed number, just go about making fixes and submit your application for the team to decide whether you're suitable or not for the position.
  13. Upvote
    Fou-lu reacted to Ragno in Limit Array   
    It has almost no limit:
     
     
    For more info about arrays on Hercules, please check: http://herc.ws/board/topic/3886-hercules-1st-2014-megapatch/
  14. Upvote
    Fou-lu reacted to 4144 in BrowEdit Erro!   
    Also try free more memory on pc. Error mean something happened in memory allocation
  15. Upvote
    Fou-lu reacted to Tokeiburu in BrowEdit Erro!   
    Sprites don't appear on the end map. It's possible to recover your map, but I'd start by just deleting/renaming your .extra file and see if that's enough to load it up.
  16. Upvote
    Fou-lu reacted to fxfreitas in Mobs ids past 3998   
    But there is no any ready diff for mob id range (only headgear) so you need to hex your client manually and seek for the mob sprite id range.
    Hex the client without a diff patcher is a hard work to do, but not impossible.
  17. Upvote
    Fou-lu reacted to chao93 in [Instance]Horror Toy Factory (Aegis Server)   
    Hm.. I am not sure, but Its one of the emulator like rAthena, Hercules and etc.. , named Aegis.
     
     
    http://forum.asb-sakray.net/index.php?showtopic=37653
     
  18. Upvote
    Fou-lu got a reaction from chao93 in [Instance]Horror Toy Factory (Aegis Server)   
    Very interesting this. This is the language of official emulator ? Where did you get access to this emulator ?
  19. Upvote
    Fou-lu reacted to Legend in BitBucket   
    Latest commits https://github.com/HerculesWS/Hercules/commits/master
  20. Upvote
    Fou-lu reacted to bWolfie in Dedicated hosting for international server.   
    Because it provides 150-200 ping for SEA players, without locking out Americans.
  21. Upvote
    Fou-lu got a reaction from JulioCF in Imagens da interface   
    Impossível vc ter procurado no Hexed, pois ele está em binário. E o que você quer fazer só é possível editando o Hexed.
  22. Upvote
    Fou-lu reacted to bWolfie in Dedicated hosting for international server.   
    vultr.com are good
  23. Upvote
    Fou-lu reacted to Kusan in Prevent Logout when use any Skill.   
    @EDIT   I edited and was the easiest thing in the world. for those who want to make a system Anti -Run PvP edit this   Search src/map/skill.c and find:    case TF_BACKSLIDING: clif->skill_nodamage(src,bl,skill_id,skill_lv,1); skill->blown(src,bl,skill->get_blewcount(skill_id,skill_lv),unit->getdir(bl),0); clif->fixpos(bl); break; and add after clif->fixpos(bl);
     
    case TF_BACKSLIDING: clif->skill_nodamage(src,bl,skill_id,skill_lv,1); skill->blown(src,bl,skill->get_blewcount(skill_id,skill_lv),unit->getdir(bl),0); clif->fixpos(bl); sd->canlog_tick = timer->gettick(); break;  
     
    So you can no longer logout when using this skill.
     

     
     
  24. Upvote
    Fou-lu reacted to Christopher Freitas in Harmony Shield / Gepard / Hashield   
    Sobre o Husky,
     
    Encontrei um servidor que utiliza, baixei , tentei usar algumas ferramentas e fui barrado.
    Na questão de bot's ainda não tentei, mas por ser um servidor com pouquíssimos players , acredito que não estão usando.
     
    Mas vou tentar e deixar um feed aqui ! 
  25. Upvote
    Fou-lu got a reaction from JulioCF in Harmony Shield / Gepard / Hashield   
    Julio sou o Fou-lu do NeoRagnarok e estou pensando seriamente em sair do Harmony e passar pra algum shield novo que está em desenvolvimento como o Gepard. O Harmony está sem atualização desde 2013 e não tem nada que mostre que o projeto voltará, por este motivo dele está desatualizado você não pode utilizar hexeds acima de 2012-04-10 pq o sistema não aceita.
     
    Não pretendo o HaShield pq já foi anunciado a descontinuação dele e estou saindo do Harmony pelo fato de está descontinuado. E venho pesquisando sobre o Gepard Shield e o Husky Shield.
     
    Gepard Shield:
     
    O Gepard é mais famoso, ou pelo menos mais conhecido aqui no ocidente. Já pude testar ele em servidores que possuem este shield e realmente o Bot passa por ele. Mas é aquilo que já falaram, qualquer shield é possível passar Bot e tbm existe vários tipos de Bot.
     
    Obs: Tive contato com o dono e tive retorno dele dizendo que o projeto é pra longo prazo e que ele trabalha para a criação do site e painel de controle dos usuários.
     
    Husky Shield:
     
    O Husky apresenta já um site e segundo ele o sistema do shield está todo pronto (informação do site), mas ainda não encontrei nenhum servidor que utilize ele, talvez ele seja mais famoso lá na Tailândia, pois o desenvolvedor dele é de lá. https://huskyshield.org/
     
    Obs: Tentei contato com o dono por Skype e FaceBook e não tive retorno.
     
     
    Experiência com Harmony:
     
    Quando comecei usar ele já estava descontinuado por final de 2013. Desde então o seu desenvolvedor nunca deu a cara no Fórum interno do Harmony. O ambiente é bem abandonado e vazio e creio eu que ele não vai responder seu contato nunca. Maioria dos Hacks já ultrapassam o Harmony, nunca peguei um bot nele, mas acredito existir sim Bots especiais para ultrapassar ele.
×
×
  • Create New...

Important Information

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