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

[SCRIPT][SRC][CUSTOM] Квас — один глоток сделает вас монстром!


wl.illusion

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

[script][src][custom] Квас — один глоток сделает вас монстром

kvass_disg_1.png

Встречал на ЛюмиРо, очень понравилась идея.

Описание

Отличный мод для внесения кое-какого разнообразия в игру — из мобов выпадает особый предмет, который позволяет игроку принимать облик этого моба. Работает до перезахода в игру.

Можно создавать интересные ивенты и квесты.

Необходимо скачать

PHP-скрипт для конвертации: conv_mobtosql.php (2.00)

(после сохранения удалите расширение файла .txt)

eA-скрипт для выпадения предметов: drop_kvass.txt

Установка

Правим только один файл src/map/pc.c, находим:

 sd->itemindex = n;

Добавляем после:

 /* NeoTemple Extra - Kvass */
if( sd->status.inventory[n].card[0] == 254 || sd->status.inventory[n].card[0] == 255 ) {
pc_setglobalreg(sd, "useditemsign", ((sd->status.inventory[n].card[3]<<16)+sd->status.inventory[n].card[2]) );
}
/* end of NeoTemple Extra */

Готово, теперь нам нужно немного изменить базу предметов, открываем db/re/item_db.txt находим строку:

12233,Kvass,Kvass,0,20,,200,,,,,0xFFFFFFFF,7,2,,,,,,{ percentheal 100,100; },{},{}

И заменяем её на:

12233,Kvass,Kvass,0,200,,50,,,,,0xFFFFFFFF,7,2,,,,,,{ disguise useditemsign-140000; },{},{}

(настройки веса и стоимости продажи можете сами поменять на нужные вам)

Шаманим с базой монстров

Теперь нам понадобится скаченный ранее файлик .php, запускать его нужно на сервере, но для начала необходимо сделать настройки. В самом файле есть такие строчки:

// Измените эти данные в соответствие с вашими настройками сервера MySQL
$mysql_host = "localhost";
$mysql_name = "ragnarok";
$mysql_pass = "ragnarok";
$mysql_db = "ragnarok";

$chardb_start_id = 140000; // С какого ID будет стартовать список мобов
$mob_account_id = 1999999; // ID аккаунта, которое выставляется для мобов

Основные настройки — это данные для подключения к базе MySQL, внестите необходимые изменения в переменные:

$mysql_host — сервер для подлючения к MySQL

$mysql_name — имя пользователя MySQL

$mysql_pass — пароль

$mysql_db — название базы данных

Следующие две переменных можно не изменять, но всё равно расскажу о них:

$chardb_start_id — каждый персонаж имеет уникальный ID, чтобы подпись к предмету работала, нам нужно создать псевдо-персонажей с именами монстров, с данного ID они будут начинаться (если не знаете, что это, то настоятельно рекомендую ничего не менять)

$mob_account_id — у персонажей должен быть уникальный аккаунт, это идентификатор (тоже самое предупреждение, что и в предыдущем пункте)

Так же необходимо поместить вместе с файлом и файл базы монстров — mob_db.txt.

Если создание пройдёт успешно, то мы увидим на экране заветное:

All Done

Остаётся только подгрузить скрипт выпадения предметов:

- script kvassDrop -1,{

OnNPCKillEvent:

if (rand(10000) <= 40) {
set .@itemdrop, killedrid+140000;
getitem2 12233,1,1,4,0,254,0,.@itemdrop&0xffff,(.@itemdrop>>16)&0xffff;
}

end;
}

И всё будет готово, в скрипте выставлен шанс выпадения предмета 0.40 (<= 40), вы можете поменять его на любое удобное для вас.

Как это работает

Небольшой сорц-мод создаёт глобальную переменную персонажа: useditemsign — это сделано потому, что разработчики eA не сильно заботились мыслью о том, что кому-то могут понадобиться данные об используемом предмете внутри скрипта предмета. Более того, если предмет последний в инвентаре, то до вызова скрипта будут удалены его данные и даже зная его порядковый номер в инвентаре уже ничего нельзя получить. Поэтому, данная переменная сразу делает то, что нам нужно — вычисляет ID подписанного персонажа (в нашем случае — это псевдо-персонаж с ID монстра).

Но данный фикс был бы неполный, если бы не скрипт выпадения предмета, который создаёт данную подпись персонажа. Впринципе, можно немного дописать скрипт и сделать, чтобы изменение сохранялось (допустим) на продолжительный срок даже после перезахода. Перспективы тут достаточно интересные.

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

Спасибо за данный мод. Только возник вопрос на счет пшп скрипта. Как запустить? Если можно чуток поподробнее.

Спасибо.

Если у вас купленный хостинг, то там скорее всего уже есть php, тогда просто копируйте файл и mob_db.txt на сервер. Если у вас там уже крутится какой-то сайт, то просто поместите в корень папки с сайтом и выполните <url сайта>/conv_mobtosql.php (не забудьте потом удалить файлы), если у вас есть SSH доступ и вы знаете что это такое и как им примерно пользоваться, то можно выполнить консольную команду:

php conv_mobtosql.php

Нужно находиться в директории с файлом, разумеется. В остальном установка зависит от того, каким хостингом вы обладает, что за ПО там стоит.

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

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