Популярный пост Incubus Опубликовано 1 апреля, 2012 Популярный пост Жалоба Поделиться Опубликовано 1 апреля, 2012 (изменено) Вдруг кому понадобится.Команда помогает в просмотре picklog(только в SQL таблице).вводится: @loginfo <ник>,<ид вещи>,<дата>дата вводится в виде: гггг-мм-ддТакже пишите как можно было бы улучшить эту команду. Изменено 1 апреля, 2012 пользователем Incubus 22 Ссылка на комментарий Поделиться на другие сайты Поделиться
Карласон Опубликовано 1 апреля, 2012 Жалоба Поделиться Опубликовано 1 апреля, 2012 Incubus, слов нету. Как всегда радуешь Ссылка на комментарий Поделиться на другие сайты Поделиться
Flitemaster Опубликовано 11 марта, 2016 Жалоба Поделиться Опубликовано 11 марта, 2016 Есть ссылка у кого? хочу эту комманду себе. Ссылка на комментарий Поделиться на другие сайты Поделиться
Break Опубликовано 27 октября, 2016 Жалоба Поделиться Опубликовано 27 октября, 2016 (изменено) Скрытый текст ACMD_FUNC(loginfo) { char name[NAME_LENGTH],date[10], cname[NAME_LENGTH], ref[5] = "+"; int char_id, nameid, year, month, day, i=0,k=1; struct { char map[50][50],type[50][1],time[50][20]; int amount[50],refine[50]; } log; char* data; size_t len; struct item_data* item; memset(&log, 0, sizeof(log)); if(sscanf(message, "%23[^,], %d, %23[^,]", name, &nameid, date) == 3) { if(sscanf(date,"%d-%d-%d",&year,&month,&day) !=3) { clif_displaymessage(fd,"Введи правильно дату"); clif_displaymessage(fd,"гггг-мм-дд"); return 0; } if( SQL_ERROR == Sql_Query(mmysql_handle,"SELECT `char_id`,`name` FROM `char` WHERE `name` = '%s'",name)) { Sql_ShowDebug(mmysql_handle); Sql_FreeResult(mmysql_handle); return 0; } if( SQL_SUCCESS == Sql_NextRow(mmysql_handle) ) Sql_GetData(mmysql_handle, 0, &data, &len); char_id = atoi(data); Sql_GetData(mmysql_handle, 1, &data, &len); strcpy(cname,data); Sql_FreeResult(mmysql_handle); if(strcmp(cname,name) != 0) { clif_displaymessage(fd,"Чар с таким ником не найден."); return 0; } if(!(item = itemdb_exists(nameid))) { clif_displaymessage(fd,"ID вещи введено не верно."); return 0; } if( SQL_ERROR == Sql_Query(mmysql_handle,"SELECT time,type,amount,refine,map FROM picklog WHERE char_id = '%d' AND nameid = '%d'",char_id,nameid)) { Sql_ShowDebug(mmysql_handle); Sql_FreeResult(mmysql_handle); return 0; } while( SQL_SUCCESS == Sql_NextRow(mmysql_handle) ) { Sql_GetData(mmysql_handle, 0, &data, &len); if(!strstr(data,date)) continue; strncpy(&log.time[i][20],data,strlen(data)); Sql_GetData(mmysql_handle, 1, &data, &len); log.type[i+1][0] = data[0]; Sql_GetData(mmysql_handle, 2, &data, &len); log.amount[i+1] = atoi(data); Sql_GetData(mmysql_handle, 3, &data, &len); log.refine[i+1] = atoi(data); Sql_GetData(mmysql_handle, 4, &data, &len); strcpy(&log.map[i][50],data); i++; } Sql_FreeResult(mmysql_handle); if(i == 0) { clif_displaymessage(fd,"По данному запросу ничего не найдено."); return 0; } while(k <= i) { int m=0; char operation[50], output[1024], char_name[NAME_LENGTH]; if(log.type[k][0] == 'T' || log.type[k][0] == 'V') { if( SQL_ERROR == Sql_Query(mmysql_handle, "SELECT `char`.`name` FROM `char`,`picklog` WHERE `time` = '%s' AND `picklog`.`char_id` != '%d' AND `type` = '%c' AND `nameid` = '%d' AND `map` = '%s' AND `picklog`.`char_id` = `char`.`char_id`",log.time[k],char_id,log.type[k][0],nameid,log.map[k])) { Sql_ShowDebug(mmysql_handle); Sql_FreeResult(mmysql_handle); return 0; } if( SQL_SUCCESS == Sql_NextRow(mmysql_handle) ) { Sql_GetData(mmysql_handle, 0, &data, &len); strcpy(char_name,data); } Sql_FreeResult(mmysql_handle); } memset(operation, '\0', sizeof(operation)); memset(output, '\0', sizeof(output)); memset(ref, '\0', sizeof(ref)); if(log.refine[k] > 0) sprintf(ref,"+%d",log.refine[k]); switch(log.type[k][0]) { case 'T': if(log.amount[k] > 0) sprintf(operation,"получил от %s",char_name); else sprintf(operation,"передал %s'у",char_name); break; case 'V': if(log.amount[k] > 0) sprintf(operation,"купил у %s",char_name); else sprintf(operation,"продал %s'у",char_name); break; case 'P': if(log.amount[k] > 0) strcpy(operation,"подобрал"); else strcpy(operation,"выкинул"); break; case 'S': if(log.amount[k] > 0) strcpy(operation,"купил"); else strcpy(operation,"продал"); break; case 'N': if(log.amount[k] > 0) strcpy(operation,"получил у НПЦ"); else strcpy(operation,"отдал НПЦ"); break; case 'D': // Может не использоваться на некоторых эмулях strcpy(operation,"украл"); break; case 'C': strcpy(operation,"использовал"); break; case 'O': // Может не использоваться на некоторых эмулях if(log.amount[k] > 0) strcpy(operation,"изготовил"); else strcpy(operation,"для изготовления отдал"); break; case 'U': // Может не использоваться на некоторых эмулях strcpy(operation,"получил с MvP"); break; case 'A': if(log.amount[k] > 0) strcpy(operation,"получил командой"); else strcpy(operation,"удалил командой"); break; case 'R': if(log.amount[k] > 0) strcpy(operation,"достал из кафры"); else strcpy(operation,"положил в кафру"); break; case 'G': if(log.amount[k] > 0) strcpy(operation,"достал из гильд кафры"); else strcpy(operation,"положил в гильд кафру"); break; case 'E': if(log.amount[k] > 0) strcpy(operation,"получил по почте"); else strcpy(operation,"передал по почте"); break; case 'I': // Может не использоваться на некоторых эмулях if(log.amount[k] > 0) strcpy(operation,"получил с аукциона"); else strcpy(operation,"отдал на аукцион"); break; } sprintf(output,"[%s] %s %s %s%s[%dшт.] на карте: %s",log.time[k],cname,operation,ref,item->jname,abs(log.amount[k]),log.map[k]); clif_displaymessage(fd,output); k++; } } return 0; } Изменено 27 октября, 2016 пользователем Sky 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
cyro Опубликовано 25 января, 2018 Жалоба Поделиться Опубликовано 25 января, 2018 (изменено) someone have this compatible with rathena? Изменено 5 февраля, 2018 пользователем cyro Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения