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

[src] Демонические монстры (обновлено 2015.09.4)


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

убрал все табы, не помогло :(

сборка 17704 rathena, откомпилил сервер без проблем

Зачем убирать, их нужно было там расставить! Изменено пользователем ProJect
  • Upvote 2
Ссылка на комментарий
Поделиться на другие сайты

  • 2 недели спустя...
  • 8 месяцев спустя...

clif.c

в еамоде нету

if(md->special_state.size==SZ_BIG) // tiny/big mobs [Valaris]

есть:

 {
TBL_MOB* md = (TBL_MOB*)bl;
if(md->special_state.size==2) // tiny/big mobs [Valaris]
clif_specialeffect_single(bl,423,sd->fd);
else if(md->special_state.size==1)
clif_specialeffect_single(bl,421,sd->fd);
if (md->option.hp_show == 1)
clif_hpmeter_single(sd->fd, md->bl.id, md->status.hp, md->status.max_hp);
}

если добавить

 /* NeoTemple Extra Mobs - Demonic */
if( md->special_state.demonic ) {
clif_specialeffect(&md->bl, 680, AREA);
}
/* --------------- */

выдает ошибки.

1> clif.c
1>..\src\map\clif.c(1610): error C2065: md: необъявленный идентификатор
1>..\src\map\clif.c(1610): error C2223: выражение слева от "->special_state" должно указывать на структуру или объединение
1>..\src\map\clif.c(1611): error C2065: md: необъявленный идентификатор
1>..\src\map\clif.c(1611): error C2223: выражение слева от "->bl" должно указывать на структуру или объединение
1>..\src\map\clif.c(1611): warning C4047: функция: "block_list *" отличается по уровням косвенного обращения от "int"
1>..\src\map\clif.c(1611): warning C4024: clif_specialeffect: различные типы для формального и фактического параметров 1
1>..\src\map\clif.c(1611): error C2198: clif_specialeffect: слишком мало аргументов для вызова
1>..\src\map\clif.c(1614): error C2275: TBL_MOB: недопустимое использование этого типа в качестве выражения
1> d:\1_ggro eamod\eamod\eathena оригинал\eathena\src\map\map.h(730): см. объявление "TBL_MOB"
1>..\src\map\clif.c(1614): error C2065: md: необъявленный идентификатор
1>..\src\map\clif.c(1615): error C2065: md: необъявленный идентификатор
1>..\src\map\clif.c(1615): error C2223: выражение слева от "->special_state" должно указывать на структуру или объединение
1>..\src\map\clif.c(1616): error C2065: md: необъявленный идентификатор
1>..\src\map\clif.c(1616): error C2223: выражение слева от "->bl" должно указывать на структуру или объединение
1>..\src\map\clif.c(1616): warning C4047: функция: "block_list *" отличается по уровням косвенного обращения от "int"
1>..\src\map\clif.c(1616): warning C4024: clif_specialeffect: различные типы для формального и фактического параметров 1
1>..\src\map\clif.c(1616): error C2198: clif_specialeffect: слишком мало аргументов для вызова
1>..\src\map\clif.c(1617): error C2065: md: необъявленный идентификатор
1>..\src\map\clif.c(1617): error C2223: выражение слева от "->special_state" должно указывать на структуру или объединение
1>..\src\map\clif.c(1618): error C2065: md: необъявленный идентификатор
1>..\src\map\clif.c(1618): error C2223: выражение слева от "->bl" должно указывать на структуру или объединение
1>..\src\map\clif.c(1618): warning C4047: функция: "block_list *" отличается по уровням косвенного обращения от "int"
1>..\src\map\clif.c(1618): warning C4024: clif_specialeffect: различные типы для формального и фактического параметров 1
1>..\src\map\clif.c(1618): error C2198: clif_specialeffect: слишком мало аргументов для вызова
1>..\src\map\clif.c(1619): error C2065: md: необъявленный идентификатор
1>..\src\map\clif.c(1619): error C2223: выражение слева от "->option" должно указывать на структуру или объединение
1>..\src\map\clif.c(1620): error C2065: md: необъявленный идентификатор
1>..\src\map\clif.c(1620): warning C4047: функция: "mob_data *" отличается по уровням косвенного обращения от "int"
1>..\src\map\clif.c(1620): warning C4024: clif_mobhpmeter: различные типы для формального и фактического параметров 1
1>..\src\map\clif.c(1826): error C2065: md: необъявленный идентификатор
1>..\src\map\clif.c(1826): error C2223: выражение слева от "->special_state" должно указывать на структуру или объединение
1>..\src\map\clif.c(1827): error C2065: md: необъявленный идентификатор
1>..\src\map\clif.c(1827): error C2223: выражение слева от "->bl" должно указывать на структуру или объединение
1>..\src\map\clif.c(1827): warning C4047: функция: "block_list *" отличается по уровням косвенного обращения от "int"
1>..\src\map\clif.c(1827): warning C4024: clif_specialeffect: различные типы для формального и фактического параметров 1
1>..\src\map\clif.c(1827): error C2198: clif_specialeffect: слишком мало аргументов для вызова
1>..\src\map\clif.c(1830): error C2275: TBL_MOB: недопустимое использование этого типа в качестве выражения
1> d:\1_ggro eamod\eamod\eathena оригинал\eathena\src\map\map.h(730): см. объявление "TBL_MOB"
1>..\src\map\clif.c(1830): error C2065: md: необъявленный идентификатор
1>..\src\map\clif.c(1831): error C2065: md: необъявленный идентификатор
1>..\src\map\clif.c(1831): error C2223: выражение слева от "->special_state" должно указывать на структуру или объединение
1>..\src\map\clif.c(1832): error C2065: md: необъявленный идентификатор
1>..\src\map\clif.c(1832): error C2223: выражение слева от "->bl" должно указывать на структуру или объединение
1>..\src\map\clif.c(1832): warning C4047: функция: "block_list *" отличается по уровням косвенного обращения от "int"
1>..\src\map\clif.c(1832): warning C4024: clif_specialeffect: различные типы для формального и фактического параметров 1
1>..\src\map\clif.c(1832): error C2198: clif_specialeffect: слишком мало аргументов для вызова
1>..\src\map\clif.c(1833): error C2065: md: необъявленный идентификатор
1>..\src\map\clif.c(1833): error C2223: выражение слева от "->special_state" должно указывать на структуру или объединение
1>..\src\map\clif.c(1834): error C2065: md: необъявленный идентификатор
1>..\src\map\clif.c(1834): error C2223: выражение слева от "->bl" должно указывать на структуру или объединение
1>..\src\map\clif.c(1834): warning C4047: функция: "block_list *" отличается по уровням косвенного обращения от "int"
1>..\src\map\clif.c(1834): warning C4024: clif_specialeffect: различные типы для формального и фактического параметров 1
1>..\src\map\clif.c(1834): error C2198: clif_specialeffect: слишком мало аргументов для вызова
1>..\src\map\clif.c(4361): error C2065: md: необъявленный идентификатор
1>..\src\map\clif.c(4361): error C2223: выражение слева от "->special_state" должно указывать на структуру или объединение
1>..\src\map\clif.c(4362): error C2065: md: необъявленный идентификатор
1>..\src\map\clif.c(4362): error C2223: выражение слева от "->bl" должно указывать на структуру или объединение
1>..\src\map\clif.c(4362): warning C4047: функция: "block_list *" отличается по уровням косвенного обращения от "int"
1>..\src\map\clif.c(4362): warning C4024: clif_specialeffect: различные типы для формального и фактического параметров 1
1>..\src\map\clif.c(4362): error C2198: clif_specialeffect: слишком мало аргументов для вызова
1>..\src\map\clif.c(4365): error C2275: TBL_MOB: недопустимое использование этого типа в качестве выражения
1> d:\1_ggro eamod\eamod\eathena оригинал\eathena\src\map\map.h(730): см. объявление "TBL_MOB"
1>..\src\map\clif.c(4365): error C2065: md: необъявленный идентификатор
1>..\src\map\clif.c(4366): error C2065: md: необъявленный идентификатор
1>..\src\map\clif.c(4366): error C2223: выражение слева от "->special_state" должно указывать на структуру или объединение
1>..\src\map\clif.c(4368): error C2065: md: необъявленный идентификатор
1>..\src\map\clif.c(4368): error C2223: выражение слева от "->special_state" должно указывать на структуру или объединение
1>..\src\map\clif.c(4370): error C2065: md: необъявленный идентификатор
1>..\src\map\clif.c(4370): error C2223: выражение слева от "->option" должно указывать на структуру или объединение
1>..\src\map\clif.c(4371): error C2065: md: необъявленный идентификатор
1>..\src\map\clif.c(4371): error C2223: выражение слева от "->bl" должно указывать на структуру или объединение
1>..\src\map\clif.c(4371): error C2065: md: необъявленный идентификатор
1>..\src\map\clif.c(4371): error C2223: выражение слева от "->status" должно указывать на структуру или объединение
1>..\src\map\clif.c(4371): error C2065: md: необъявленный идентификатор
1>..\src\map\clif.c(4371): error C2223: выражение слева от "->status" должно указывать на структуру или объединение
1>..\src\map\clif.c(4371): error C2198: clif_hpmeter_single: слишком мало аргументов для вызова

как исправить?

c clif.c вопрос решен.) не туда ставил и надо было убрать пробелы)

забыл в status.c нету

if (md->level > 0 && md->level <= MAX_LEVEL && md->level != md->db->lv)

компиляция прошла без ошибок. мобы появляются нормально.

еще вопрос можно ли это организовать в night время.

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

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

поставил этих мобов начали лезть такие ошибки.

[Warning]: npc_event: player's event queue is full, can't add event 'Rating::OnN PCKillEvent' !
[Warning]: npc_event: player's event queue is full, can't add event 'Hunting Mis sions::OnNPCKillEvent' !
[Warning]: npc_event: player's event queue is full, can't add event 'Rating::OnN PCKillEvent' !
[Warning]: npc_event: player's event queue is full, can't add event 'Hunting Mis sions::OnNPCKillEvent' !
[Warning]: npc_event: player's event queue is full, can't add event 'Rating::OnN PCKillEvent' !
[Warning]: npc_event: player's event queue is full, can't add event 'Hunting Mis sions::OnNPCKillEvent' !
[Warning]: npc_event: player's event queue is full, can't add event 'Rating::OnN PCKillEvent' !
[Warning]: npc_event: player's event queue is full, can't add event 'Hunting Mis sions::OnNPCKillEvent' !
[Warning]: npc_event: player's event queue is full, can't add event 'Rating::OnN PCKillEvent' !
[Warning]: npc_event: player's event queue is full, can't add event 'Hunting Mis sions::OnNPCKillEvent' !
[Warning]: npc_event: player's event queue is full, can't add event 'Rating::OnN PCKillEvent' !
[Warning]: npc_event: player's event queue is full, can't add event 'Hunting Mis sions::OnNPCKillEvent' !
[Warning]: npc_event: player's event queue is full, can't add event 'Rating::OnN PCKillEvent' !
[Warning]: npc_event: player's event queue is full, can't add event 'Hunting Mis sions::OnNPCKillEvent' !
[Warning]: npc_event: player's event queue is full, can't add event 'Rating::OnN PCKillEvent' !

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

  • 4 месяца спустя...

Ммм... Решил поставить и столкнулся с непоняткой...

А именно вот с этим местом:

Идём дальше в src/map/status.h, находим:

MD_TARGETWEAK = 0x4000,

После добавляем:

MD_NODEMONIC = 0x8000, // NeoTemple Extra Demonic Mob

Это особый режим монстра, который можно прописывать в db/re/mob_db.txt указывая в поле Mode,

У меня это место выглядит вот так:

MD_CANMOVE = 0x000001,
MD_LOOTER = 0x000002,
MD_AGGRESSIVE = 0x000004,
MD_ASSIST = 0x000008,
MD_CASTSENSOR_IDLE = 0x000010,
MD_BOSS = 0x000020,
MD_PLANT = 0x000040,
MD_CANATTACK = 0x000080,
MD_DETECTOR = 0x000100,
MD_CASTSENSOR_CHASE = 0x000200,
MD_CHANGECHASE = 0x000400,
MD_ANGRY = 0x000800,
MD_CHANGETARGET_MELEE = 0x001000,
MD_CHANGETARGET_CHASE = 0x002000,

MD_TARGETWEAK = 0x004000,

MD_RANDOMTARGET = 0x008000,
MD_IGNOREMELEE = 0x010000,
MD_IGNOREMAGIC = 0x020000,
MD_IGNORERANGED = 0x040000,
MD_MVP = 0x080000,
MD_IGNOREMISC = 0x100000,
MD_KNOCKBACK_IMMUNE = 0x200000,
MD_NORANDOM_WALK = 0x400000,
MD_NOCAST_SKILL = 0x800000,

Пробелом выделено нужная строка

Логичный вопрос, как это туда вставить?

Логично, что скорее всего это не очень обязательно, но всё же.

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

Ммм... Решил поставить и столкнулся с непоняткой...

А именно вот с этим местом:

Идём дальше в src/map/status.h, находим:

MD_TARGETWEAK = 0x4000,

После добавляем:

MD_NODEMONIC = 0x8000, // NeoTemple Extra Demonic Mob

Это особый режим монстра, который можно прописывать в db/re/mob_db.txt указывая в поле Mode,

У меня это место выглядит вот так:

MD_CANMOVE = 0x000001,
MD_LOOTER = 0x000002,
MD_AGGRESSIVE = 0x000004,
MD_ASSIST = 0x000008,
MD_CASTSENSOR_IDLE = 0x000010,
MD_BOSS = 0x000020,
MD_PLANT = 0x000040,
MD_CANATTACK = 0x000080,
MD_DETECTOR = 0x000100,
MD_CASTSENSOR_CHASE = 0x000200,
MD_CHANGECHASE = 0x000400,
MD_ANGRY = 0x000800,
MD_CHANGETARGET_MELEE = 0x001000,
MD_CHANGETARGET_CHASE = 0x002000,

MD_TARGETWEAK = 0x004000,
MD_NODEMONIC = 0x8000,

MD_RANDOMTARGET = 0x008000,
MD_IGNOREMELEE = 0x010000,
MD_IGNOREMAGIC = 0x020000,
MD_IGNORERANGED = 0x040000,
MD_MVP = 0x080000,
MD_IGNOREMISC = 0x100000,
MD_KNOCKBACK_IMMUNE = 0x200000,
MD_NORANDOM_WALK = 0x400000,
MD_NOCAST_SKILL = 0x800000,

Пробелом выделено нужная строка

Логичный вопрос, как это туда вставить?

Логично, что скорее всего это не очень обязательно, но всё же.

Ну вставил и всё вот так)

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

Ну вставил и всё вот так)

:D

Открываем ../src/map/status.h и после:


MD_NOCAST_SKILL = 0x800000,

добавляем:


MD_NODEMONIC = 0x40000000, // NeoTemple Extra Demonic Mob

Это особый режим монстра, который можно прописывать в db/re/mob_db.txt указывая в поле Mode, к примеру, вот так выглядит запись Poring'а:


1002,PORING,Poring,Poring,1,60,1,27,20,1,8,9,2,5,6,1,1,0,6,5,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,909,7000,1202,100,938,400,512,1000,713,1500,512,150,619,20,0,0,0,0,4001,1

Если указать этот режим, то моб никогда не будет Демоническим. Пример Poring'а после модификации:


1002,PORING,Poring,Poring,1,60,1,27,20,1,8,9,2,5,6,1,1,0,6,5,10,12,1,3,21,0x40008083,400,1872,672,480,0,0,0,0,0,0,0,909,7000,1202,100,938,400,512,1000,713,1500,512,150,619,20,0,0,0,0,4001,1

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

Тагда тот кто писал гайд ошибся) но по его словам я верно вставил )

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

Функтору спасибо за поддержку, может потом актуализирую версию.

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

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

Как вы этим пользовались, оно же клиент крешит из-за моей опечатки.

Functor, дружище, ну хоть бы ты старого дурака поправил.

Скомпилил под последнюю ревизию, на днях выложу новый гайд. .patch традиционно делать влом, простите.

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

  • 1 месяц спустя...
Дальше находим:

 if(md->db->option)
// Added for carts, falcons and pecos for cloned monsters. [Valaris]
md->sc.option = md->db->option;

не подскажете как обозначить условие на id моба дабы не зависеть от уровня моба?

ревизия eathena 15269

к примеру диапазон id особых монстров 6000-10000

if(/*id моба*/ > 5999 & /*id моба*/ < 10001)

много копался в mob_data, но так и не понял как вытащить id или name в функции mob_spawn

один кусок привлек внимание, но как им пользоваться не получается понять

struct mob_db *db; //For quick data access (saves doing mob_db(md->class_) all the time) [Skotlex]

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

md->class_ , а дальше как?

пробовал md->class_->ID; md->class_.id; и тп

моя проблема в том что саму структуру пока увидеть не получается :(

или md->class_ и есть id?

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

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