Перейти к содержанию

Просьба на удаление темы.


Рекомендуемые сообщения

Время перед сообщением.(При большом онлайне грузит сервер)
by Qwadrat

Открыть clif.c
Найти void clif_parse_GlobalMessage(int fd, struct map_session_data* sd)
После:

char *name, *message;
int namelen, messagelen;

Добавить:

char prefix[255]; // prefix for timestamp [Qwadrat]
time_t t = time(NULL); // time var [Qwadrat]

Дальше найти:

// send message to others (using the send buffer for temp. storage)
И перед ним вставь:

// timestamp feature by Qwadrat
strftime(prefix, 10, "[%H:%M] ", localtime(&t));
strcat(prefix,text);
textlen = strlen(prefix)+1;

Дальше:

// send message to others (using the send buffer for temp. storage)
Заменить оригинальный кусок кода на:

WFIFOHEAD(fd, 8 + textlen);
WFIFOW(fd,0) = 0x8d;
WFIFOW(fd,2) = 8 + textlen;
WFIFOL(fd,4) = sd->bl.id;
safestrncpy((char*)WFIFOP(fd,8), prefix, textlen);
clif_send(WFIFOP(fd,0), WFIFOW(fd,2), &sd->bl, sd->chatID ? CHAT_WOS : AREA_CHAT_WOC);
// send back message to the speaker
//memcpy(WFIFOP(fd,0), RFIFOP(fd,0), RFIFOW(fd,2));-original
memcpy(WFIFOP(fd,4), prefix, textlen); // [Qwadrat]
WFIFOW(fd,0) = 0x8e;
WFIFOW(fd,2) = RFIFOW(fd,2) + 8; // 8 - textlen [Qwadrat]
WFIFOSET(fd, WFIFOW(fd,2));

 

  • Upvote 6
Ссылка на комментарий
Поделиться на другие сайты

  • 2 недели спустя...
  • 3 недели спустя...

а у меня работает, всё норм

 

Скрытый текст

 

b-210.jpg

 

 

я увидел в твоём коде допущена ошибка int namelen, messagelen; (внимательно читай мини-гайд от виктора)

это для тебя был пример строки по находке, не означает что его надо было тоже пихать в свой clif.c

Изменено пользователем ucell-uz
Ссылка на комментарий
Поделиться на другие сайты

В 10.06.2016в1:26 PM, Victor сказал:

Время перед сообщением.(При большом онлайне грузит сервер)
by Qwadrat

скажите, чувак юзает самую последнюю версию герка с джита 07,2016г

многий код из-за libconfig поменялся в место 

WFIFOW

стало WBUFW

в место fd стало buf

что посоветуете?? как выровнять ваш код под 07,2016

 

Изменено пользователем ucell-uz
Ссылка на комментарий
Поделиться на другие сайты

clif.c

Функция

void clif_parse_GlobalMessage(int fd, struct map_session_data *sd)

 
Скрытый текст

После строки

	    int outlen = 0;

Добавить


	    char prefix[255]; // Time modification

	    time_t t = time(NULL);


 

 
Скрытый текст

Затем перед проверкой

	    if (sd->fakename[0] != '\0') {

Вставить


	    strftime(prefix, 10, "[%H:%M] ", localtime(&t)); // Time modification

а саму проверку заменить на:


if (sd->fakename[0] != '\0') {
        is_fakename = true;
        strcat(prefix, sd->fakename); // [kenik]
        outlen = (int)strlen(prefix) + (int)strlen(message) + 3 + 1;
    } else {
        strcat(prefix, full_message); // [kenik]
        outlen = (int)strlen(prefix) + 1;
    }

 
Скрытый текст

Затем код


if (is_fakename)

    safesnprintf(WFIFOP(fd, 12), outlen, "%s : %s", sd->fakename, message);

else

    safestrncpy(WFIFOP(fd, 12), full_message, outlen);

заменить на


	        if (is_fakename)

	            safesnprintf(WFIFOP(fd, 12), outlen, "%s : %s", prefix, message);

	        else

	            safestrncpy(WFIFOP(fd, 12), prefix, outlen);

 

Скрытый текст

Код


	        if (is_fakename)

	            safesnprintf(WBUFP(buf, 8), outlen, "%s : %s", sd->fakename , message);

	        else

	            safestrncpy(WBUFP(buf, 8), full_message, outlen);

заменить на


	        if (is_fakename)

	            safesnprintf(WBUFP(buf, 8), outlen, "%s : %s", prefix, message);

	        else

	            safestrncpy(WBUFP(buf, 8), prefix, outlen);

 

Скрытый текст

И наконец код:


	    if (is_fakename)

	        safesnprintf(WFIFOP(fd, 4), outlen, "%s : %s", sd->fakename, message);

	    else

	        safestrncpy(WFIFOP(fd, 4), full_message, outlen);

заменить на:


	    if (is_fakename)

	        safesnprintf(WFIFOP(fd, 4), outlen, "%s : %s", prefix, message);

	    else

	        safestrncpy(WFIFOP(fd, 4), prefix, outlen);

Сохранить, залить, рекомпилировать.

 

P.S. Редактор текста для сообщений в новом дизайне откровенно гуано :(

  • Upvote 1
Ссылка на комментарий
Поделиться на другие сайты

  • 1 месяц спустя...
  • 5 недель спустя...
×
×
  • Создать...
Яндекс.Метрика