brAthena / brAthena20180924

brAthena - Emulador Oficial
http://forum.brathena.org
GNU General Public License v3.0
53 stars 73 forks source link

override_mob_names não funciona #2

Open lucasfcosta opened 9 years ago

lucasfcosta commented 9 years ago

O override_mob_names não está funcionando, quero ligar ele para ler as configs de nome da minha mob_db em sql. O nome dos mobs sempre fica com o nome que está no arquivo.txt de spawn. Quando dou @summon no mob ele fica com o nome que quero (lido corretamente da coluna iName na mobDB).

Tentei fazer alguns tweaks no mob.c, mas C definitivamente não é o meu forte.

Não sei se vocês costumam usar o issue tracker do github, mas enfim, fica aí o report.

carloshenrq commented 9 years ago

Bom dia Lucas, tudo tranquilo contigo?

Agradeço teu report.

Vamos la, dei uma verificada no código fonte e me parece que realmente estão faltando alguns testes com essa variável de configuração que você disse.

Por esses dias, eu não tenho como testar essa modificação in-game, você poderia aplicar este .patch a sua fonte e confirmar se está funcionando de acordo?

 src/map/mob.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/src/map/mob.c b/src/map/mob.c
index 5b3a57b..6ef3e72 100644
--- a/src/map/mob.c
+++ b/src/map/mob.c
@@ -483,7 +483,7 @@ int mob_once_spawn(struct map_session_data* sd, int16 m, int16 x, int16 y, const
    for (count = 0; count < amount; count++) {
        int type = class_; 
        int c = (class_ >= 0) ? class_ : mob->get_random_id(-class_ - 1, (battle_config.random_monster_checklv) ? 3 : 1, lv);
-       mobname= (type >= 0) ? mobname:mob->db(c)->name;
+       mobname= (type >= 0) ? mobname:(battle_config.override_mob_names == 1 ? mob->db(c)->name : mob->db(c)->jname);
        md = mob->once_spawn_sub((sd) ? &sd->bl : NULL, m, x, y, mobname, c, event, size, ai);

        if (!md)
@@ -2919,7 +2919,10 @@ int mob_summonslave(struct mob_data *md2,int *value,int amount,uint16 skill_id)
            data.x = md2->bl.x;
            data.y = md2->bl.y;
        }
-       strcpy(data.name,mob->db(data.class_)->name);
+        if(battle_config.override_mob_names == 1)
+            strcpy(data.name,mob->db(data.class_)->name);
+        else
+            strcpy(data.name,mob->db(data.class_)->jname);

        if (!mob->parse_dataset(&data))
            continue;
lucasfcosta commented 9 years ago

@carloshenrq Olá, Carlos, estou tentando aplicar seu patch aqui e segundo o GIT tem um erro na linha 15.

Apliquei manualmente as alterações no diff que você postou e mesmo assim não funcionou. Continua tendo o mesmo comportamento que descrevi acima.

carloshenrq commented 9 years ago

Este patch é para uma source zerada do brA. Você deve ter modificações na source que está tentando aplicar.

Use uma source nova.

lucasfcosta commented 9 years ago

Apliquei numa source zerada e não funcionou com a DB SQL. Quando uso a DB .txt os nomes de fato são sobrescritos, mas com SQL não.

carloshenrq commented 9 years ago

Logo mais eu faço a correção deste problema :)

edcastroecmr commented 8 years ago

obrigaaadooooooooo pessoal do brAthena esse emulador é mais que perfeito!! muito obrigado mesmo :)