29 сообщений в этой теме

eAthena Revision < r14477

- src\map\atcommand.c

/*==========================================
* @detach
*==========================================*/
int atcommand_detach( const int fd, struct map_session_data* sd, const char* command, const char* message)
{
nullpo_retr(-1, sd);
sd->state.monster_ignore = 0;
sd->state.autotrade = 1;
clif_authfail_fd(fd, 15);
return 0;
}

{ "detach", 1,1, atcommand_detach },

- conf\atcommand_athena.conf

detach: 0,40

eAthena Revision >= r14477

/*==========================================
* @detach
*==========================================*/
ACMD_FUNC(detach)
{
nullpo_retr(-1, sd);
sd->state.monster_ignore = 0;
sd->state.autotrade = 1;
clif_authfail_fd(fd, 15);
return 0;
}

{ "detach", 1,1, atcommand_detach },

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

eAthena Revision < r14477

- src\map\atcommand.c

/*==========================================
* @detach
*==========================================*/
int atcommand_detach( const int fd, struct map_session_data* sd, const char* command, const char* message)
{
nullpo_retr(-1, sd);
sd->state.monster_ignore = 0;
sd->state.autotrade = 1;
clif_authfail_fd(fd, 15);
return 0;
}

{ "detach", 1,1, atcommand_detach },

- conf\atcommand_athena.conf

detach: 0,40

eAthena Revision >= r14477

/*==========================================
* @detach
*==========================================*/
ACMD_FUNC(detach)
{
nullpo_retr(-1, sd);
sd->state.monster_ignore = 0;
sd->state.autotrade = 1;
clif_authfail_fd(fd, 15);
return 0;
}

{ "detach", 1,1, atcommand_detach },

Если детачер будет в пати с шарой итемов и опыта - ему будет шарится?

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Конечно будет. Но элементарная проверка в ф-ции шары пати, на стейт.автотрейд поможет тебе :)

1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Я так понимаю для последней ревизии rAthena 17704

вместо

{ "detach", 1,1, atcommand_detach },

нужно заменить на

ACMD_DEF(detach),

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

а что нужно добавить чтобы при детаче, чар не тупо стоял, а приэтом имел чат над бошкой? а лучше чтобы срабатывало @option 4 на чара который в детаче

Изменено пользователем Flitemaster
0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

После:

sd->state.autotrade = 1;

пишем:

sd->sc.opt1 = 4;
pc_setoption(sd, sd->sc.option);
chat_createpcchat(sd, "DETACH", "", 1, true);

1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

После:

sd->state.autotrade = 1;

пишем:

sd->sc.opt1 = 4;
pc_setoption(sd, sd->sc.option);
chat_createpcchat(sd, "DETACH", "", 1, true);

Большое спасибо!

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Ребят, помогите... я не силен в сорцах. Нужно две вещи:

1) Чтобы в детаче игрок становился темным как в стонкурсе.

2) Чтобы в детаче игрок не получал опыта.

Помогите пожалуйсто!

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

В src\map\pc.c

Находим pc_gainexp

И добавляем после:

return 0; // no exp on pvp maps

Это

if(sd->state.autotrade == 1)
return 0;

Изменено пользователем Victor
0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Пункт 2 выполнен, игрок не получает опыта... а вот еффекта нету.

В коде присутствует что-то, что дает еффект сна... ну типа Zzz..ZzZzzz... что отвечает за такой еффект?

а с кодом


clif_specialeffect(&sd->bl,23,SELF);

нету еффекта, совсем никакого...

Изменено пользователем Leprechaun
0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

После:

sd->state.autotrade = 1;

пишем:

sd->sc.opt1 = 4;
pc_setoption(sd, sd->sc.option);
chat_createpcchat(sd, "DETACH", "", 1, true);

Вместо 4 поставьте 1 и проверьте

Изменено пользователем Victor
1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Да! Сменив 4 на 1 все заработало, чар стает темным... и я так понимаю

clif_specialeffect(&sd->bl,23,SELF);
можна удалить, оно не нужно...

В принцыпе то что я хотел, вы мне погомли. Спасибо Вам!

Если знаете, чар стает черным в детаче... можно дать ему плюс к черноте и ту емоцию что была, когда значение было 4 в

sd->sc.opt1 = 4;

я о Zzz...ZzZzz....

Изменено пользователем Leprechaun
0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Вместо:


sd->sc.opt1 = 4;
pc_setoption(sd, sd->sc.option);

Пишем:


sd->sc.opt1 = OPT1_STONE;
pc_setoption(sd, sd->sc.option|OPT1_SLEEP);

Пробуй...

1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Что-то не то... чар как-то в хайд залез))) Совсем не видно))

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Проверил, всё намного проще чем казалось


sd->sc.opt1 = OPT1_STONE;
sd->sc.opt2 = OPT1_SLEEP;
pc_setoption(sd, sd->sc.option);

Изменено пользователем Victor
0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Вообшем ты молодец! Ты мне много чего показал, и я понял немного что к чему. Я понял откуда берутся все эти типа еффекты.

Ты мне скажы, мне нужно 2 еффекта. Один делается через

sd->sc.opt1 = 1;

, второй через

sd->sc.opt1 = 4;

.

Как прописать чтобы они вместе работали?


sd->sc.opt1 = 4;
sd->sc.opt1 = 1;

не работают :(

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах


sd->sc.opt1 = 4;
sd->sc.opt2 = 1;

Внимательней ;)

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Да нет, я все правильно написал... нужн еффект с *sd->sc.opt1 =4;* и с *sd->sc.opt2 =1;*, чтобы они вместе работали...

*sd->sc.opt2 =1;* - это уже другой еффект.

Спасибо за помощ, пока обойдусь только *sd->sc.opt1 = 1;*.

Изменено пользователем Leprechaun
0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Проверил, всё намного проще чем казалось


sd->sc.opt1 = OPT1_STONE;
sd->sc.opt2 = OPT1_SLEEP;
pc_setoption(sd, sd->sc.option);

Вроде как раз если так прописать (не через цифры а название статуса), то они будут вместе работать. Проверь.

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Так оно работает, проблем нету. Я просто хотел другой эффект получить. Если использовать цифровой, то там сон другой эффект показывает, он мне как раз нужен. А так как они вместе не работают, цифровые, то использую пока только еффект стоункурса.

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

\src\map\status.h

//opt1: Non stackable status changes.
enum {
OPT1_STONE = 1, //Petrified
OPT1_FREEZE,
OPT1_STUN,
OPT1_SLEEP,
//Aegis uses OPT1 = 5 to identify undead enemies (which also grants them immunity to the other opt1 changes)
OPT1_STONEWAIT=6, //Petrifying
OPT1_BURNING,
OPT1_IMPRISON,
};

//opt2: Stackable status changes.
enum {
OPT2_POISON = 0x0001,
OPT2_CURSE = 0x0002,
OPT2_SILENCE = 0x0004,
OPT2_SIGNUMCRUCIS = 0x0008,
OPT2_BLIND = 0x0010,
OPT2_ANGELUS = 0x0020,
OPT2_BLEEDING = 0x0040,
OPT2_DPOISON = 0x0080,
OPT2_FEAR = 0x0100,
};

Используй

sc_start(&sd->bl,SC_SLEEP,100,0,0);

Изменено пользователем Victor
0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Куда это добавить?


sc_start(&sd->bl,SC_SLEEP,100,0,0);

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

У меня вообще как то странно. После того как прописываю команду чар вроде как остается на сервере, тоесть при заходе показывает что 1 онлайн. Но там где он должен быть его просто нет((( Тоесть как в хайде

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Ты наверное использовал часть скрипта который тут был опубликован. Была такая штука. Почти мои сообщения, я об етом уже говорил.

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Ну да, я вот этот вариант использовал...


/*==========================================
* @detach
*==========================================*/
int atcommand_detach( const int fd, struct map_session_data* sd, const char* command, const char* message)
{
nullpo_retr(-1, sd);
sd->state.monster_ignore = 0;
sd->state.autotrade = 1;
clif_authfail_fd(fd, 15);
return 0;
}

Надо что то другое вписывать? Из сообщений если честно ничего не понял(((

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!


Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.


Войти сейчас