Skip to forum content

You are not logged in. Please login or register.


Pages 1

You must login or register to post a reply

RSS topic feed

Posts: 11

1

Topic: /tmpop

Помогите сделать команду /tmpop чтоб при пере заходе на канал она оставалась.

2

Re: /tmpop

/op не?

Добавлено: 28.01.2014 07:22

нашел в connection.cpp

    if (c->protocol.chat.tmpOP_channel)
    {
      xfree((void *)c->protocol.chat.tmpOP_channel);
      c->protocol.chat.tmpOP_channel = NULL;
    }

    if (tmpOP_channel)
      c->protocol.chat.tmpOP_channel = xstrdup(tmpOP_channel);

вроде бы тмпоп не записывается в бд, значит его надо записывать в бд.
по коду xfree очищает память? а xstrdup записывает?

3

Re: /tmpop

Suite wrote:

вроде бы тмпоп не записывается в бд, значит его надо записывать в бд.

Именно. Нужно в Account-wrap.cpp добавить строки для tmpop, точно так же как для mute. И в самой команде (command.cpp) tmpop добавить значение на 1 (выдать на всегда) и на 0 (забрать).

4

Re: /tmpop

extern int account_set_auth_tmpop(t_account * account, char const * channelname, int val)
{
    char temp[256];

    if (!channelname)
    return account_set_boolattr(account, "BNET\\auth\\tmpop", val);

    std::sprintf(temp,"BNET\\auth\\tmpop\\%.100s",channelname);
    return account_set_boolattr(account, temp, val);
}

5

Re: /tmpop

OnlyMen wrote:

Помогите сделать команду /tmpop чтоб при пере заходе на канал она оставалась.

Зачем? /tmpop для того и сделан чтобы временно давался, при перезаходе на канал исчезал, как бы дать временно сделать оператором канала, а обычный /op навсегда.

Объясню для чего это в пвпгн-е, когда создаешь клан, первый зашедший на новый канал получает /tmpop.

6

Re: /tmpop

Да просто хочу отдельную команду постоянного tmpop

7

Re: /tmpop

Suite wrote:
extern int account_set_auth_tmpop(t_account * account, char const * channelname, int val)
{
    char temp[256];

    if (!channelname)
    return account_set_boolattr(account, "BNET\\auth\\tmpop", val);

    std::sprintf(temp,"BNET\\auth\\tmpop\\%.100s",channelname);
    return account_set_boolattr(account, temp, val);
}

Неа, в connection.cpp править нужно.

8

Re: /tmpop

если так то вроде комментируем эти строки.

 /*   if (c->protocol.chat.tmpOP_channel)
    {
      xfree((void *)c->protocol.chat.tmpOP_channel);
      c->protocol.chat.tmpOP_channel = NULL;
    }
*/

Добавлено: 28.01.2014 18:24

xfree очищает вроде, я прав?

9 (edited by kucc 28.01.2014 19:32)

Re: /tmpop

Все равно не въехал для чего это нужно, используйте команду /op она же делает тоже самое только на постоянку?

tmpOP - и есть Temp(временный) OP, для того чтобы именно эту команду модифицировать, тебе нужно будет делать запись в бд, и при логине чтение из бд и указания флага снова (кокраз это и есть команда /op).


А так это все было сделано по аналогии с IRC, и его же исходники запиханы в ПВПГН.
Правда старая версия ещё по самому началу, где мало функций.

Я доработал до современного IRC где есть,  Operator сервера, а на канале OP,HALF.VOICE.
К ним доработки tmpOP,tmpHALF,tmpVoice - где после перезахода флаг пропадает.

10

Re: /tmpop

kucc wrote:

Все равно не въехал для чего это нужно, используйте команду /op она же делает тоже самое только на постоянку?

tmpOP - и есть Temp(временный) OP, для того чтобы именно эту команду модифицировать, тебе нужно будет делать запись в бд, и при логине чтение из бд и указания флага снова (кокраз это и есть команда /op).


А так это все было сделано по аналогии с IRC, и его же исходники запиханы в ПВПГН.
Правда старая версия ещё по самому началу, где мало функций.

Я доработал до современного IRC где есть,  Operator сервера, а на канале OP,HALF.VOICE.
К ним доработки tmpOP,tmpHALF,tmpVoice - где после перезахода флаг пропадает.

Ну /op это ведь выдача картинки "Battle.net" почти тоже самое что и /operator. А /tmpop - это рамка жёлтая.

11

Re: /tmpop

XOM91K wrote:

Ну /op это ведь выдача картинки "Battle.net" почти тоже самое что и /operator. А /tmpop - это рамка жёлтая.

Открываем исходники и глядим сюды:

  if (account_get_auth_admin(acc,channel) == 1 || account_get_auth_admin(acc,NULL) == 1)
    newflags = MF_BLIZZARD;
  else if (account_get_auth_operator(acc,channel) == 1 ||
       account_get_auth_operator(acc,NULL) == 1)
    newflags = MF_BNET;
  else if (channel_conn_is_tmpOP(conn_get_channel(c),c))
    newflags = MF_GAVEL;

Posts: 11

Pages 1

You must login or register to post a reply

Who now at forum

Currently view post: 1 guest, 0 registered users