[PHP] Shop Maker

Теги:
 
+
-
edit
 

CyClon

втянувшийся
Shop Maker предназначен для облегчения процесса создания своего магазина для L2 сервера.

Все, что требуется - внести свои значения в конфигурационные переменные скрипта и положить в каталог 'lists' файл с числовым именем (Например, '701'), в котором будут находится необходимые ID вещей.

Для настройки конфигурационных переменных откройте любым текстовым редактором файл 'sm.php' и измените следующие строки:

code text
  1. // CONFIG: BEGIN
  2. define('MYSQL_HOST', 'localhost');
  3. define('MYSQL_USER', 'root');
  4. define('MYSQL_PASSWORD', 'home');
  5. define('MYSQL_DATABASE', 'l2j_game');
  6. define('MAKER_RATES', 2);
  7. // CONFIG: END


MYSQL_HOST - адрес хоста, на котором расположен сервер базы данных MySQL.
MYSQL_USER - имя пользователя базы данных MySQL.
MYSQL_PASSWORD - пароль пользователя базы данных MySQL.
MYSQL_DATABASE - имя базы данных гейм-сервера.
MAKER_RATES - рейты на цены в магазине (первичная цена умножается на это значение, возможно использование как целых, так и дробных значений).

Далее идем в каталог 'lists'. В первой версии скрипта уже есть два файла ('700' и '701') для двуручного тупого оружия и двуручных мечей. Мы можем создать еще один или несколько список с другими именами или отредактировать существующие. Для редактирования - открываем любой из двух файлов любым текстовым редактором и редактируем/добавляем/удаляем ID предметов.

Как это все работает? Например, у нас в папке 'lists' есть файл '701'. Вот его содержание:

code text
  1. 70
  2. 71
  3. 5286
  4. 78
  5. 81
  6. 6372
  7. 6612


Мы запускаем скрипт и получаем несколько новых файлов в папке со скриптом. Некоторые из них - '701.xml' и 'merchant_buylists.sql'. Вот их содержание:

code text
  1. <?xml version='1.0' encoding='utf-8'?>
  2. <list>
  3.   <!-- Claymore for 3600000 adena -->
  4.   <item id="1">
  5.     <ingredient id="57" count="3600000" />
  6.     <production id="70" count="1" />
  7.   </item>
  8.   <!-- Flamberge for 4580000 adena -->
  9.   <item id="2">
  10.     <ingredient id="57" count="4580000" />
  11.     <production id="71" count="1" />
  12.   </item>
  13.   <!-- Berserker Blade for 12260000 adena -->
  14.   <item id="3">
  15.     <ingredient id="57" count="12260000" />
  16.     <production id="5286" count="1" />
  17.   </item>
  18.   <!-- Great Sword for 17360000 adena -->
  19.   <item id="4">
  20.     <ingredient id="57" count="17360000" />
  21.     <production id="78" count="1" />
  22.   </item>
  23.   <!-- Dragon Slayer for 54000000 adena -->
  24.   <item id="5">
  25.     <ingredient id="57" count="54000000" />
  26.     <production id="81" count="1" />
  27.   </item>
  28.   <!-- Heaven's Divider for 97600000 adena -->
  29.   <item id="6">
  30.     <ingredient id="57" count="97600000" />
  31.     <production id="6372" count="1" />
  32.   </item>
  33.   <!-- Infinity Cleaver for 114000000 adena -->
  34.   <item id="7">
  35.     <ingredient id="57" count="114000000" />
  36.     <production id="6612" count="1" />
  37.   </item>
  38. </list>


code text
  1. /* ID: 701 */
  2.  
  3. /* Claymore for 3600000 adena */
  4. INSERT INTO `merchant_buylists` (`item_id`, `price`, `shop_id`, `order`) VALUES (70, 3600000, 701, 1);
  5. /* Flamberge for 4580000 adena */
  6. INSERT INTO `merchant_buylists` (`item_id`, `price`, `shop_id`, `order`) VALUES (71, 4580000, 701, 2);
  7. /* Berserker Blade for 12260000 adena */
  8. INSERT INTO `merchant_buylists` (`item_id`, `price`, `shop_id`, `order`) VALUES (5286, 12260000, 701, 3);
  9. /* Great Sword for 17360000 adena */
  10. INSERT INTO `merchant_buylists` (`item_id`, `price`, `shop_id`, `order`) VALUES (78, 17360000, 701, 4);
  11. /* Dragon Slayer for 54000000 adena */
  12. INSERT INTO `merchant_buylists` (`item_id`, `price`, `shop_id`, `order`) VALUES (81, 54000000, 701, 5);
  13. /* Heaven's Divider for 97600000 adena */
  14. INSERT INTO `merchant_buylists` (`item_id`, `price`, `shop_id`, `order`) VALUES (6372, 97600000, 701, 6);
  15. /* Infinity Cleaver for 114000000 adena */
  16. INSERT INTO `merchant_buylists` (`item_id`, `price`, `shop_id`, `order`) VALUES (6612, 114000000, 701, 7);


Как видите, скрипт генерирует multisell-файл, совместимый с серверами Fortress и L2J SF (А так же, возможно и с другими), а так же SQL файл, который можно импортировать в MySQL. Так же эти файлы снабжены комментариями, которые позволяют легко редактировать созданные списки вручную.
Прикреплённые файлы:
sm-10.zip (скачать) [1,45 кБ]
 
 
L2JF User  
Это сообщение редактировалось 26.06.2007 в 13:32
+
-
edit
 

CyClon

втянувшийся
В следующих версиях, возможно, напишу свой вариант lists (правда только для C4, ибо C5 и C6 вещи на данный момент крайне не стабильны).
L2JF User  
RU SoulMaster #26.06.2007 14:15
+
-
edit
 

SoulMaster

втянувшийся

CyClon> (правда только для C4, ибо C5 и C6 вещи на данный момент крайне не стабильны).

Просто не все описаны, поэтому при создании итема в гс летят ошибки.
Клик по аватаре -> репутация -> +(-)1 если конечно помог =)  
+
-
edit
 

CyClon

втянувшийся
Так же в некоторых не вставляется SA, у некоторых бажные цены, а так же параметры.
L2JF User  
RU SoulMaster #27.06.2007 16:20  @CyClon#26.06.2007 15:59
+
-
edit
 

SoulMaster

втянувшийся

CyClon> Так же в некоторых не вставляется SA

По сути вещи с СА и без СА - это разные вещи. Без Са описаны, а с СА - нет, потому и не ставится.
Клик по аватаре -> репутация -> +(-)1 если конечно помог =)  
+
-
edit
 

CyClon

втянувшийся
Описаны с SA, просто нет описания в Multisell у кузнеца/маммона + если просто создать вещь уже с SA, то сам SA в большинстве случаев не работает. Только название.
L2JF User  

в начало страницы | новое
 
Поиск
Настройки
Твиттер сайта
Статистика
Рейтинг@Mail.ru