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

[SRC] @detach


Qunis

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

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 },

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

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 },

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

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

  • 2 года спустя...

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

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

  • 1 год спустя...

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

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

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

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

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

В src\map\pc.c

Находим pc_gainexp

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

return 0; // no exp on pvp maps

Это

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

Изменено пользователем Victor
  • Upvote 1
  • Downvote 1
Ссылка на комментарий
Поделиться на другие сайты

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

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

а с кодом


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

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

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

После:

sd->state.autotrade = 1;

пишем:

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

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

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

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

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

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

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

sd->sc.opt1 = 4;

я о Zzz...ZzZzz....

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

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


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

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

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

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

sd->sc.opt1 = 1;

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

sd->sc.opt1 = 4;

.

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


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

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

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

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

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

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

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

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


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

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

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

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

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

\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
Ссылка на комментарий
Поделиться на другие сайты

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

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

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

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

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


/*==========================================
* @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;
}

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

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

×
×
  • Создать...
Яндекс.Метрика