Entre para seguir isso  
Seguidores 0
StiflerTaile

SOURCE
[Erro] Adicionando suporte a log

6 posts neste tópico

Fala ai galera o novo emulador do brAthena vem com o novo sistema de log que eu tanto tava querendo rsrs

porem o emulador que eu utilizo eo brAthena R:2807 eu fui sequindo os commits do github de desenvolvimento do sistema~~>

https://github.com/brAthena/brAthena/commit/18923d88719dbd716caa9ce4c6d756dad24decf2

 

quando adicionei deu uns 300 erros e 80 avisos mas fui corrigindo um por um e só sobrou 9 erro (PRINT A BAIXO DOS ERROS)

jA242l8.png

 

erros que no caso e da seguintes linhas do arquivo log.c:

obs: todos os erros estão no void log_pickdrop_sub_sql

 

 

void log_pickdrop_sub_sql (struct map_session_data* sd, struct mob_data *md, struct item* itm ,int amount,char * type,char * from){

ip_sd[20] = "",c_source[8],c_from[23]=""; // LINHA 328
struct block_list *src;
struct item_data* idata = itemdb_exists(itm->nameid);
if(!logs->should_log_item(itm->nameid, amount, itm->refine, idata))
return;
if(sd){
pc_get_ip(sd,ip_sd); // LINHA 336
src = &sd->bl;
strcpy(c_source,"Player");
}
else if(md){
src = &md->bl;
strcpy(c_source,"Monster"); // LINHA 338
}
else return;
if( SQL_ERROR == Sql_Query(logs->mysql_handle, LOG_QUERY " INTO `PickDrop_Log`"
"(`Date`,`Action`, `Mapname`,`PosX`,`PosY`,"
"`Subject`,`Source`,`AccountID`,`CharID`,`IP`,`Name`,"
"`ItemID`,`ItemName`,`Amount`,`ItemSerial`,"
"`ItemSlot1`,`ItemSlot2`,`ItemSlot3`,`ItemSlot4`,`ItemRefiningLevel`)"
"VALUES (NOW(),'%s','%s','%d','%d','%s','%s','%d','%d','%s','%s',"
"'%d','%s','%d','%"PRIu64"',"
"'%d','%d','%d','%d','%d')",
type,map->list[src->m].name,src->x,src->y,from,c_from,(sd)? sd->status.account_id : 0,
(sd)? sd->status.char_id : 0,ip_sd,(sd)? sd->status.name : md->name,
itm->nameid,idata->name,amount,itm->unique_id,
itm->card[0],itm->card[1],itm->card[2],itm->card[3],itm->refine))
{
Sql_ShowDebug(logs->mysql_handle);
return;
}
}

 

Quem puder me ajudar a acha as funções corretas pra revisão 2807 agradeço muito. vlw vlw.

obrigado.

0

Compartilhar este post


Link para o post
Compartilhar em outros sites
char ip_sd[20] = "",c_source[8],c_from[23]=""; // LINHA 328

 

*-* foi removeu varios erros só que apareceu esses 2 erros e esse aviso:

JXzsL0n.png

 

Linha do aviso:

 

void log_card_sub_sql( struct map_session_data* sd,int slot,char * type, struct item* itm){

char last_ip[20];
struct item_data *data = itemdb_exists(itm->nameid);
struct item_data *cd_data = itemdb_exists(itm->card[slot]);
if( !logs->should_log_item(itm->nameid, 1, itm->refine, data) && !logs->should_log_item(itm->card[slot], 1,0,cd_data))
return;
pc_get_ip(sd,last_ip); // LINHA 178
if( SQL_ERROR == Sql_Query(logs->mysql_handle, LOG_QUERY " INTO `Card_Log` (`Date`, `Mapname`,`PosX`,`PosY`, `AccountID`,`CharacterID`,`CharName`,`CharacterIPaddr`,`ItemID`,`ItemName`,`ItemSerial`,`Type`,`Slot`,`Card_ID`,`CardName`,`ItemSlot1`,`ItemSlot2`,`ItemSlot3`,`ItemSlot4`,`ItemRefiningLevel`)"
"VALUES (NOW(), '%s','%d','%d','%d','%d','%s','%s','%d','%s','%"PRIu64"','%s','%d','%d','%s','%d','%d','%d','%d','%d')",
mapindex_id2name(sd->mapindex), sd->bl.x, sd->bl.y, sd->status.account_id, sd->status.char_id,sd->status.name,last_ip,itm->nameid,
data->name,itm->unique_id,type,slot, itm->card[slot],cd_data->name, itm->card[0], itm->card[1], itm->card[2], itm->card[3], itm->refine))
{
Sql_ShowDebug(logs->mysql_handle);
return;
}
}

 

 

thank you.

0

Compartilhar este post


Link para o post
Compartilhar em outros sites

Verifique se declarou a função get_ip no pc.h e se a definiu em pc.c (no commit será algo do genero pc->get_ip = pc_get_ip;)

0

Compartilhar este post


Link para o post
Compartilhar em outros sites

Verifique se declarou a função get_ip no pc.h e se a definiu em pc.c (no commit será algo do genero pc->get_ip = pc_get_ip;)

não existe o void pc_defaults(void) { na versão 2807

então eu o criei e botei assim

 

void pc_defaults(void) {
pc->get_ip = pc_get_ip;
}

 

e tbm achei isso que no caso acho que eo void que determina o pc_get_ip:
void pc_get_ip(struct map_session_data *sd,char * str){
uint32 ip = session[sd->fd]->client_addr;
sprintf(str,"%d.%d.%d.%d",CONVIP(ip));
return;
}

 

 

e no pc.h só tem isso com o nome "get_ip":

 

void (*get_ip) (struct map_session_data *sd,char * str);

 

sendo que a função pc->get_ip não existe pra poder ser igualada a pc_get_ip
ai deu esses erros:
r27H2Xb.png
Editado por jonhparkou
0

Compartilhar este post


Link para o post
Compartilhar em outros sites
Visitante
Este tópico está impedido de receber novos posts.
Entre para seguir isso  
Seguidores 0