Назад

@silence

Автор: CityTrue: Дата: 11.26.2008

Кто знает, а точнее у кого есть сие чудо?

Автор: worms0950: Дата: 06.18.2009

Цитата(CityTrue @ 26.11.2008, 21:18)
Кто знает, а точнее у кого есть сие чудо?

Опиши хоть что эта команда делает...

Автор: dbImOk: Дата: 06.24.2009

Наверно он имел в виду "@guildmute и @mainmute".
Если да, то вот держи:
[release] Silense

atcommand.c

Ищем

int atcommand_main(const int fd, struct map_session_data* sd, const char* command, const char* message)
{


После вставляем
    if(pc_readglobalreg(sd, "block_mainchat"))
    {
        clif_displaymessage(fd, "You cannot send messages in Main Chat.");
        return -1;

    }


Ищем
/*==========================================
* Map Kill Steal Protection Setting
*------------------------------------------*/
int atcommand_allowks(const int fd, struct map_session_data *sd, const char *command, const char *message)
{
nullpo_retr(-1,sd);

if( map[sd->bl.m].flag.allowks ) {
map[sd->bl.m].flag.allowks = 0;
sprintf(atcmd_output, "[ Map K.S Protection Active ]");
} else {
map[sd->bl.m].flag.allowks = 1;
sprintf(atcmd_output, "[ Map K.S Protection Inactive ]");
}

clif_displaymessage(fd, atcmd_output);
return 0;
}


После вставляем
/*================================================
* @guildmute
*------------------------------------------------*/
int atcommand_guildmute(const int fd, struct map_session_data* sd, const char* command, const char* message)
{
    char output[128];
    char output1[128];
    struct guild *g;
    struct map_session_data *pl_sd = NULL;
    nullpo_retr(-1, sd);

    if (!message || !*message) {
        clif_displaymessage(fd, "Usage: @gmute .");
        return -1;
    }

    if (( (pl_sd = map_nick2sd(atcmd_player_name)) == NULL ) || pl_sd->status.guild_id != sd->status.guild_id) {
        clif_displaymessage(fd, "Character offline or not in your guild.");
        return -1;
    }

    if (sd->status.guild_id == 0 || (g = guild_search(sd->status.guild_id)) == NULL || strcmp(g->master,sd->status.name))
    {
        clif_displaymessage(fd, "You are not Guild Master.");
        return -1;
    }

    if ( (pl_sd = map_nick2sd(atcmd_player_name)) == NULL )
    {
        clif_displaymessage(fd, msg_txt(3)); // Character not found.
        return -1;
    }

    if(!pc_readglobalreg(pl_sd, "block_guildchat"))
    {
        pc_setglobalreg(pl_sd, "block_guildchat", 1);
        sprintf(output, "Player muted.");
        sprintf(output1, "You have been muted by Guild Master.");
    } else {
        pc_setglobalreg(pl_sd, "block_guildchat", 0);
        sprintf(output, "Player unmuted.");
        sprintf(output1, "Now you can send messages in Guild Chat.");
    }
    clif_disp_onlyself(sd, output, strlen(output));
    clif_disp_onlyself(pl_sd, output1, strlen(output1));

    return 0;
}

/*================================================
* @mainmute
*------------------------------------------------*/
int atcommand_mainmute(const int fd, struct map_session_data* sd, const char* command, const char* message)
{
    struct map_session_data *pl_sd = NULL;
    nullpo_retr(-1, sd);

    if (!message || !*message) {
        clif_displaymessage(fd, "Usage: @mmute .");
        return -1;
    }

    if ( (pl_sd = map_nick2sd(atcmd_player_name)) == NULL ) {
        clif_displaymessage(fd, "Character offline.");
        return -1;
    }

    if ( (pl_sd = map_nick2sd(atcmd_player_name)) == NULL )
    {
        clif_displaymessage(fd, msg_txt(3)); // Character not found.
        return -1;
    }

    if(!pc_readglobalreg(pl_sd, "block_mainchat"))
    {
        pc_setglobalreg(pl_sd, "block_mainchat", 1);
        clif_displaymessage(fd, "Character muted.");
        clif_displaymessage(sd->fd, "You have been muted by Game Master.");

    } else {
        pc_setglobalreg(pl_sd, "block_mainchat", 0);
        clif_displaymessage(fd, "Character unmuted.");
        clif_displaymessage(sd->fd, "Now you can send messages in Main Chat.");
    }

    return 0;
}


Ищем
{ "agitend2", 60, atcommand_agitend2 },


После вставляем
    { "guildmute",          0,     atcommand_guildmute },
    { "gmute",           0,     atcommand_guildmute },
    { "mainmute",            60,     atcommand_mainmute },
    { "mmute",             60,     atcommand_mainmute },

Cохраняем, закрываем.

clif.c

Ищем
// Main chat [LuzZza]
if(strcmpi(target, main_chat_nick) == 0)


После вставляем
    if(pc_readglobalreg(sd, "block_mainchat"))
    {
        clif_displaymessage(fd, "You cannot send messages in Main Chat.");
        return;

    }

Cохраняем закрываем.

guild.c

Ищем
int guild_send_message(struct map_session_data *sd,const char *mes,int len)
{


После вставляем
char output[128];


Ищем
if(sd->status.guild_id==0)
return 0;


После вставляем
    if(pc_readglobalreg(sd,"block_guildchat"))
        sprintf(output, "You cannot send messages in Guild Chat.");
        clif_disp_onlyself(sd, output, strlen(output));
        return 0;

Сохраняем, закрываем и рекомпилим сервер.

Enjoy!

Автор: Nikita54421: Дата: 03.28.2011

хотел себе очень поставить @mainmute вроде бы сделал всё правильно выше написанное,скампилил без ошибок)
когда захожу в игру спокойно могу кинуть на себя мут как захожу на сервер ещё с одним аком то выходит следующее "Character offline"
скажите пожалуйста в чём проблема)?

Автор: jorj: Дата: 03.28.2011

****if ( (pl_sd = map_nick2sd(atcmd_player_name)) == NULL ) {
********clif_displaymessage(fd, "Character offline.");
********return -1;
****}


Код уже давно устарел.

Хватит одного:

if ( (pl_sd = map_nick2sd(atcmd_player_name)) == NULL )
{
clif_displaymessage(fd, msg_txt(3)); // Character not found.
return -1;
}

Автор: Nikita54421: Дата: 03.28.2011

Цитата jorj;37043:
Код уже давно устарел.

Хватит одного:


Так я пробовал уже,не помогло:(:(