wl.illusion

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

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

Табы? :blink:

0

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


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

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

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

0

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


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

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

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

Зачем убирать, их нужно было там расставить! Изменено пользователем ProJect
2

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


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

заработало, спасибо! действительно они самые "табы" +++

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

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


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

Классно но прописывать дофига))чтоб серв не запороть ахах

-1

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


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

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
0

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


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

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

[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' !

0

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


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

#define MAX_EVENTQUEUE 2 << Change This

izi

1

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


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

#define MAX_EVENTQUEUE 2 << Change This

izi

И что это значит? Никак не пойму.

0

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


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

Вместо 2 ставь 100+ и перекомпилируй сервер

1

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


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

Вместо 2 ставь 100+ и перекомпилируй сервер

спасибо.

сделал, скомпилил. посмотрим что будет)

0

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


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

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

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

Идём дальше в 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
0

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


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

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

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

Идём дальше в 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
0

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


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

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

: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

2

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


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

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

0

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


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

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

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

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

1

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


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

Всем спасибо! Всё заработало!!!

0

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


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

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

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

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

0

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


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

 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
0

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


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

В исходниках Вашего эмуля ID моба лежит в md->class_

0

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


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

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

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

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

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

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

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


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

md->class_ и есть ID.

j4i7vd2xy68oebazg.jpg

2

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


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

Thx you

0

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


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

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

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

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

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


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

Войти

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


Войти сейчас