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

Гильдийные локации (Guild Locations)


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

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

Суть проста: данная модификация позволит гильдиям иметь свои собственные локации (Guild locations или гильдлоки). Это наипростейшая версия мода. Возможно, у него будет развитие. Пока что это просто перемещение на локацию, доступную для гильдии.

Состав: некоторые @команды + скриптовые команды + SQL запрос.

Описание скриптовых команд:

*guild_add_loc(<ID гильдии>,<Локация>,<x>,<y>);

*guild_add_loc("<Название гильдии>",<Локация>,<x>,<y>);

Данная команда добавляет указанной гильдии определённую локацию

с заданными координатами для перемещения.

Пример использования:

// Добавим гильдии персонажа локацию prontera

// с координатами 155 180 (~ центр)

if(getcharid(2))

guild_add_loc(getcharid(2),"prontera",155,180);

----------------------------------------

*guild_del_loc(<ID гильдии>);

*guild_del_loc("<Название гильдии>");

Данная команда удалаяет у указанной гильдии её локацию.

Пример использования:

// Удалим у гильдии персонажа локацию.

if(getcharid(2))

guild_del_loc(getcharid(2));

----------------------------------------

* guild_get_loc <ID гильдии>,<Тип>;

* guild_get_loc "<Название гильдии>",<Тип>;

Команда для получения информации о Гильдийной локации.

<Тип> :

0 - Название локации

1 - Координата X

2 - Координата Y

Пример использования:

// Узнаем координаты и название локации у гильдии персонажа.

if((set(@GID,getcharid(2))))

{

mes guild_get_loc(@GID,0); // Название локации

mes ""+guild_get_loc(@GID,1); // Координата X

mes ""+guild_get_loc(@GID,2); // Координата Y

}

----------------------------------------

*gogl();

Данная команда перемещает персонажа на гильдийную локацию.

Пример использования:

// Переместим персонажа на гильдийную локацию.

if(guild_get_loc(getcharid(2),0) != "")

gogl();

----------------------------------------

@команды:

@guild_add_loc <Название гильдии или ID> <Локация> - Добавление Гильдийной локации

@guild_del_loc <Название гильдии или ID> - Удаление Гильдийной локации

@gogl - Перемещение на Гильдийную локацию

Лилит, спасибо за публикацию, но столкнулся с проблемой, у меня на сервере стоит еАмод и в src/char/int_guild.h


Index: src/char/int_guild.h
===================================================================
--- src/char/int_guild.h (revision 17121)
+++ src/char/int_guild.h (working copy)
@@ -15,8 +15,9 @@
GS_CONNECT = 0x0080,
GS_LEVEL = 0x0100,
GS_MES = 0x0200,
- GS_MASK = 0x03FF,
- GS_BASIC_MASK = (GS_BASIC | GS_EMBLEM | GS_CONNECT | GS_LEVEL | GS_MES),
+ GS_LOCATION = 0x0400,// Изменение Гильдийной локации [Lilith]
+ GS_MASK = 0x07FF,
+ GS_BASIC_MASK = (GS_BASIC | GS_EMBLEM | GS_CONNECT | GS_LEVEL | GS_MES | GS_LOCATION),
GS_REMOVE = 0x8000,
};

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


GS_CONNECT = 0x0080,
GS_LEVEL = 0x0100,
GS_MES = 0x0200,
GS_RANKING = 0x0400,
GS_MASK = 0x07FF,
GS_BASIC_MASK = (GS_BASIC | GS_EMBLEM | GS_CONNECT | GS_LEVEL | GS_MES),
GS_REMOVE = 0x8000,
};

Я не очень шарю, но по логике понимаю, что примерно это все должно выглядеть так:


GS_CONNECT = 0x0080,
GS_LEVEL = 0x0100,
GS_MES = 0x0200,
GS_RANKING = 0x0400,
GS_LOCATION = 0x0800,// Изменение Гильдийной локации [Lilith]
GS_MASK = ????,
GS_BASIC_MASK = (GS_BASIC | GS_EMBLEM | GS_CONNECT | GS_LEVEL | GS_MES | GS_LOCATION),
GS_REMOVE = 0x8000,
};

Какое значение должно быть у GS=MASK ?

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

Какое значение должно быть у GS=MASK ?

0x0FFF

Благодарю.

А что вот тут:


int inter_recv_packet_length[] = {
-1,-1, 7,-1, -1,13,36, (2 + 4 + 4 + 4 + NAME_LENGTH), 0, 0, 0, 0, 0, 0, 0, 0, // 3000-
6,-1, 0, 0, 0, 0, 0, 0, 10,-1, 0, 0, 0, 0, 0, 0, // 3010-
-1,10,-1,14, 14,19, 6,-1, 14,14, 0, 0, 0, 0, 0, 0, // 3020- Party
-1, 6,-1,-1, 55,19, 6,-1, 14,-1,-1,-1, 18,19,186,-1, // 3030-
-1, 9,-1, 0, 10, 6,-1, 0, 7, 6,10,10, 10,-1, 0, 0, // 3040- [Zephyrus] 0x3042 Guild Rank
-1,-1,10,10, 0,-1, 0, 0, 0, 0, 6,-1, 0, 0, 0, 0, // 3050- Auction System [Zephyrus] + Achievement System
6,-1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 3060- Quest system [Kevin] [Inkfish]
-1,10, 6,-1, 0, 0, 0, 0, 0, 0, 0, 0, -1,10, 6,-1, // 3070- Mercenary packets [Zephyrus], Elemental packets [pakpil]
48,14,-1, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 3080-
-1,10,-1, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 3090- Homunculus packets [albator]
};

Заранее спасибо.

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

Благодарю.

А что вот тут:

Заранее спасибо.

А тут пакет 3042 занят, используй 3043

-1, 9,-1,22, 10, 6,-1, 0, 7, 6,10,10, 10,-1, 0, 0, // 3040- [Zephyrus] 0x3042 Guild Rank

в функции intif_guild_location и в файле int_guild.c замени 0x3042 на 0x3043

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

Благодарю.

А что вот тут:

Заранее спасибо.

А тут пакет 3042 занят, используй 3043

-1, 9,-1,22, 10, 6,-1, 0, 7, 6,10,10, 10,-1, 0, 0, // 3040- [Zephyrus] 0x3042 Guild Rank

в функции intif_guild_location и в файле int_guild.c замени 0x3042 на 0x3043

Это я сделал сразу...


case 0x3041: mapif_parse_GuildCastleDataSave(fd,RFIFOW(fd,2),RFIFOB(fd,4),RFIFOL(fd,5)); break;
case 0x3042: mapif_parse_Guild_Save_Score(fd,RFIFOL(fd,4),RFIFOW(fd,8),(struct guild_rank_data *)RFIFOP(fd,10)); break;
case 0x3043: mapif_parse_GuildLocation(fd,RFIFOL(fd,2),(const char*)RFIFOP(fd,6),RFIFOL(fd,18),RFIFOL(fd,20)); break;
default:

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

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

Суть проста: данная модификация позволит гильдиям иметь свои собственные локации (Guild locations или гильдлоки). Это наипростейшая версия мода. Возможно, у него будет развитие. Пока что это просто перемещение на локацию, доступную для гильдии.

Состав: некоторые @команды + скриптовые команды + SQL запрос.

Описание скриптовых команд:

*guild_add_loc(<ID гильдии>,<Локация>,<x>,<y>);

*guild_add_loc("<Название гильдии>",<Локация>,<x>,<y>);

Данная команда добавляет указанной гильдии определённую локацию

с заданными координатами для перемещения.

Пример использования:

// Добавим гильдии персонажа локацию prontera

// с координатами 155 180 (~ центр)

if(getcharid(2))

guild_add_loc(getcharid(2),"prontera",155,180);

----------------------------------------

*guild_del_loc(<ID гильдии>);

*guild_del_loc("<Название гильдии>");

Данная команда удалаяет у указанной гильдии её локацию.

Пример использования:

// Удалим у гильдии персонажа локацию.

if(getcharid(2))

guild_del_loc(getcharid(2));

----------------------------------------

* guild_get_loc <ID гильдии>,<Тип>;

* guild_get_loc "<Название гильдии>",<Тип>;

Команда для получения информации о Гильдийной локации.

<Тип> :

0 - Название локации

1 - Координата X

2 - Координата Y

Пример использования:

// Узнаем координаты и название локации у гильдии персонажа.

if((set(@GID,getcharid(2))))

{

mes guild_get_loc(@GID,0); // Название локации

mes ""+guild_get_loc(@GID,1); // Координата X

mes ""+guild_get_loc(@GID,2); // Координата Y

}

----------------------------------------

*gogl();

Данная команда перемещает персонажа на гильдийную локацию.

Пример использования:

// Переместим персонажа на гильдийную локацию.

if(guild_get_loc(getcharid(2),0) != "")

gogl();

----------------------------------------

@команды:

@guild_add_loc <Название гильдии или ID> <Локация> - Добавление Гильдийной локации

@guild_del_loc <Название гильдии или ID> - Удаление Гильдийной локации

@gogl - Перемещение на Гильдийную локацию

Обновите ссылку, пожалуйста

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

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

Было бы классно, если бы Лилит модифицировал все под rA eAmod. (=

Зачем ему заниматся модификациям бесплатно и под баганое и платное говнище?

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

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

Благодарю.

А что вот тут:

Заранее спасибо.

А тут пакет 3042 занят, используй 3043

-1, 9,-1,22, 10, 6,-1, 0, 7, 6,10,10, 10,-1, 0, 0, // 3040- [Zephyrus] 0x3042 Guild Rank

в функции intif_guild_location и в файле int_guild.c замени 0x3042 на 0x3043

При запуске сервера вот что выдает (падает чар сервер), а так вроде работает.

[Error]: Unknown packet 0x1530 from map server, disconnecting.

[status]: Map-server #0 has disconnected.

[status]: Map Server is now online.

Да и забыл сказать, что при добавлении локации на сервер падает мап-сервер.

[Error]: Unknown packet 0x3043 from map server, disconnecting.
Изменено пользователем Break
Ссылка на комментарий
Поделиться на другие сайты

Решил переписать самого нпц и задействовать только @gogl

И возникли проблемы с падением сервера при использовании команды @gogl.

Вот сам нпц:

Команда:

Подскажите, что не так?

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

Было бы классно, если бы Лилит модифицировал все под rA eAmod. (=

Зачем ему заниматся модификациям бесплатно и под баганое и платное говнище?

Что-то я не заметил съёма лавэ за первый его пост. Делай выводы, зачем же ему этим заниматься.

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

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

Ошибка:

пишешь гогл и сразу падает мап сервер.

И в мап сервере: аля послан крашед пакет...

Могу поделиться рабочим вариантом-аналогом. Сюда выкладывать не буду из принципа.

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

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